@asantemedia-org/leybold-design-system 1.0.19 → 1.0.21
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/assets/search-product.png +0 -0
- package/dist/index.css +5559 -0
- package/dist/index.esm.css +5559 -0
- package/dist/index.esm.js +1032 -418
- package/dist/index.esm.js.map +1 -1
- package/dist/index.esm.scss +2562 -1169
- package/dist/index.js +1031 -416
- package/dist/index.js.map +1 -1
- package/dist/index.scss +2562 -1169
- package/dist/src/components/Button/Button.d.ts +1 -1
- package/dist/src/components/Button/Button.stories.d.ts +0 -4
- package/dist/src/components/Filters/Filter.types.d.ts +28 -0
- package/dist/src/components/Filters/FiltersPanel.d.ts +4 -0
- package/dist/src/components/ProductCardVertical/ProductCardVertical.d.ts +22 -0
- package/dist/src/components/ProductCardVertical/ProductCardVertical.types.d.ts +50 -0
- package/dist/src/components/ProductCardVertical/index.d.ts +2 -0
- package/dist/src/components/SearchBar/SearchSubmitButton.d.ts +1 -0
- package/dist/src/experience/algolia-dynamic-search/AlgoliaDynamicSearch.d.ts +0 -1
- package/dist/src/experience/federated-search/components/AssistanceBanner/AssistanceBanner.d.ts +22 -0
- package/dist/src/experience/federated-search/components/AssistanceBanner/AssistanceBanner.types.d.ts +29 -0
- package/dist/src/experience/federated-search/components/AssistanceBanner/AssistanceIcon.d.ts +2 -0
- package/dist/src/experience/federated-search/components/AssistanceBanner/index.d.ts +3 -0
- package/dist/src/experience/federated-search/components/FilterDrawer/FilterDrawer.d.ts +24 -0
- package/dist/src/experience/federated-search/components/FilterDrawer/FilterDrawer.types.d.ts +22 -0
- package/dist/src/experience/federated-search/components/FilterDrawer/index.d.ts +2 -0
- package/dist/src/experience/federated-search/components/TabButton/TabButton.d.ts +31 -0
- package/dist/src/experience/federated-search/components/TabButton/TabButton.types.d.ts +32 -0
- package/dist/src/experience/federated-search/components/TabButton/index.d.ts +2 -0
- package/dist/src/experience/qr-form-journey/QrFormJourney.d.ts +0 -1
- package/dist/src/experience/qr-form-journey/QrFormJourney.stories.d.ts +1 -0
- package/dist/src/hooks/useFederatedSearchMock.d.ts +9 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/types/cards.d.ts +2 -0
- package/dist/src/types/search.d.ts +12 -4
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
package/dist/index.esm.js
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import React, { useMemo, useState, useCallback, useRef, useEffect } from 'react';
|
|
2
2
|
import { FontAwesomeIcon } from '@fortawesome/react-fontawesome';
|
|
3
|
-
import { faArrowLeft, faArrowLeftLong, faArrowRight, faArrowRightLong, faChevronRight, faChevronLeft, faArrowUpRightFromSquare, faGlobe } from '@fortawesome/free-solid-svg-icons';
|
|
3
|
+
import { faArrowLeft, faArrowLeftLong, faArrowRight, faArrowRightLong, faChevronRight, faChevronLeft, faArrowUpRightFromSquare, faGlobe, faXmark as faXmark$1 } from '@fortawesome/free-solid-svg-icons';
|
|
4
4
|
import { faInstagram, faYoutube, faLinkedinIn, faXTwitter, faFacebookF } from '@fortawesome/free-brands-svg-icons';
|
|
5
|
+
import { faChevronRight as faChevronRight$1, faArrowUpRightFromSquare as faArrowUpRightFromSquare$1 } from '@fortawesome/pro-solid-svg-icons';
|
|
5
6
|
import { ProductDetailsCard, AlgoliaDynamicSearchRaw, QrForm } from '@asantemedia-org/edwardsvacuum-design-system';
|
|
6
7
|
|
|
7
8
|
function _extends() {
|
|
@@ -53,7 +54,7 @@ typeof SuppressedError === "function" ? SuppressedError : function (error, suppr
|
|
|
53
54
|
return e.name = "SuppressedError", e.error = error, e.suppressed = suppressed, e;
|
|
54
55
|
};
|
|
55
56
|
|
|
56
|
-
var styles$
|
|
57
|
+
var styles$k = {"button":"Button-module__button___18Bed","button--primary":"Button-module__button--primary___VuF-P","button--disabled":"Button-module__button--disabled___IuOY8","button--secondary":"Button-module__button--secondary___lD5E3","button--solid-grey":"Button-module__button--solid-grey___oRbEy","button--solid-black":"Button-module__button--solid-black___1Ma5K","button--solid-white":"Button-module__button--solid-white___bE-Z0","button--outlined-grey":"Button-module__button--outlined-grey___xWGbB","button--outlined-black":"Button-module__button--outlined-black___qfX5o","button--outlined-white":"Button-module__button--outlined-white___QLXNP","button--link-text":"Button-module__button--link-text___R2kun","button__icon":"Button-module__button__icon___hlcHo","button--link-text-alt":"Button-module__button--link-text-alt___1p7wH","button--external-link":"Button-module__button--external-link___Mhxuk","button--carousel-arrow-left":"Button-module__button--carousel-arrow-left___Wx-Jo","button--carousel-arrow-right":"Button-module__button--carousel-arrow-right___3ZtgT","button__icon__default":"Button-module__button__icon__default___0qlF1","button__icon__hover":"Button-module__button__icon__hover___3xPGT","button--extra-small":"Button-module__button--extra-small___R0QTM","button--small":"Button-module__button--small___ADJQe","button--medium":"Button-module__button--medium___ZuR4Z","button--large":"Button-module__button--large___-FaV5","button__icon--left":"Button-module__button__icon--left___wMCeH","button__icon--right":"Button-module__button__icon--right___-pGHl"};
|
|
57
58
|
|
|
58
59
|
function getDefaultExportFromCjs (x) {
|
|
59
60
|
return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
|
|
@@ -180,8 +181,6 @@ var getDefaultIcon = function (variant) {
|
|
|
180
181
|
*/
|
|
181
182
|
var mapVariantToClass = function (variant) {
|
|
182
183
|
switch (variant) {
|
|
183
|
-
case "outline":
|
|
184
|
-
return "outlined-red";
|
|
185
184
|
case "text":
|
|
186
185
|
return "link-text";
|
|
187
186
|
default:
|
|
@@ -219,8 +218,8 @@ var Button = function (_a) {
|
|
|
219
218
|
var isIconOnly = variant === "carousel-arrow-left" || variant === "carousel-arrow-right";
|
|
220
219
|
var isCarouselLeft = variant === "carousel-arrow-left";
|
|
221
220
|
var isCarouselRight = variant === "carousel-arrow-right";
|
|
222
|
-
var buttonClasses = classNames(styles$
|
|
223
|
-
var iconClasses = classNames(styles$
|
|
221
|
+
var buttonClasses = classNames(styles$k.button, styles$k["button--".concat(cssVariant)], styles$k["button--".concat(size)], (_b = {}, _b[styles$k["button--disabled"]] = disabled, _b), className);
|
|
222
|
+
var iconClasses = classNames(styles$k.button__icon, styles$k["button__icon--".concat(iconPosition)]);
|
|
224
223
|
// Generate accessible label for icon-only buttons
|
|
225
224
|
var accessibleLabel = ariaLabel || (isIconOnly ? variant === "carousel-arrow-left" ? "Previous" : "Next" : undefined);
|
|
226
225
|
return /*#__PURE__*/React.createElement("button", _extends({
|
|
@@ -234,24 +233,24 @@ var Button = function (_a) {
|
|
|
234
233
|
className: iconClasses
|
|
235
234
|
}, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
236
235
|
icon: faArrowLeft,
|
|
237
|
-
className: styles$
|
|
236
|
+
className: styles$k.button__icon__default
|
|
238
237
|
}), /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
239
238
|
icon: faArrowLeftLong,
|
|
240
|
-
className: styles$
|
|
239
|
+
className: styles$k.button__icon__hover
|
|
241
240
|
})), isCarouselRight && /*#__PURE__*/React.createElement("span", {
|
|
242
241
|
className: iconClasses
|
|
243
242
|
}, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
244
243
|
icon: faArrowRight,
|
|
245
|
-
className: styles$
|
|
244
|
+
className: styles$k.button__icon__default
|
|
246
245
|
}), /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
247
246
|
icon: faArrowRightLong,
|
|
248
|
-
className: styles$
|
|
247
|
+
className: styles$k.button__icon__hover
|
|
249
248
|
})), !isIconOnly && iconElement && /*#__PURE__*/React.createElement("span", {
|
|
250
249
|
className: iconClasses
|
|
251
250
|
}, iconElement));
|
|
252
251
|
};
|
|
253
252
|
|
|
254
|
-
var styles$
|
|
253
|
+
var styles$j = {"footer":"Footer-module__footer___Oavyx","footer--mobile":"Footer-module__footer--mobile___9HQC-","footer__container":"Footer-module__footer__container___ohvnm","footer__links":"Footer-module__footer__links___DdVK8","footer__linkGroup":"Footer-module__footer__linkGroup___1B7JA","footer__linkList":"Footer-module__footer__linkList___j-DWF","footer__linkHeading":"Footer-module__footer__linkHeading___LtE6X","footer__link":"Footer-module__footer__link___G5HPW","footer__cta":"Footer-module__footer__cta___MRJLr","footer__socialIcons":"Footer-module__footer__socialIcons___j0aRp","footer__socialIcon":"Footer-module__footer__socialIcon___1uVTm","footer__countrySelector":"Footer-module__footer__countrySelector___pVtN5","footer__bottom":"Footer-module__footer__bottom___77bPL","footer__bottomLeft":"Footer-module__footer__bottomLeft___tlst1","footer__bottomLinks":"Footer-module__footer__bottomLinks___s22h7","footer__bottomLink":"Footer-module__footer__bottomLink___SLzwY","footer__copyright":"Footer-module__footer__copyright___4bZOF","footer__brandSection":"Footer-module__footer__brandSection___BBr5f","footer__logo":"Footer-module__footer__logo___mv-9M","footer__leftCol":"Footer-module__footer__leftCol___vmKNN","footer__motto":"Footer-module__footer__motto___QtB2m","footer__main":"Footer-module__footer__main___NSU9d","footer__badge":"Footer-module__footer__badge___faejb","footer__badgeIcon":"Footer-module__footer__badgeIcon___xJ519","footer__badgeText":"Footer-module__footer__badgeText___imXgG","footer__linkText":"Footer-module__footer__linkText___Gc18Z","footer__linkIcon":"Footer-module__footer__linkIcon___IZzJM","footer__countrySelectorIcon":"Footer-module__footer__countrySelectorIcon___hhEd4"};
|
|
255
254
|
|
|
256
255
|
/**
|
|
257
256
|
* External link icon (↗) for footer links that open in new tabs
|
|
@@ -324,7 +323,7 @@ var FooterLink = function (_a) {
|
|
|
324
323
|
className = _a.className,
|
|
325
324
|
_b = _a.variant,
|
|
326
325
|
variant = _b === void 0 ? 'default' : _b;
|
|
327
|
-
var baseClass = variant === 'bottom' ? styles$
|
|
326
|
+
var baseClass = variant === 'bottom' ? styles$j.footer__bottomLink : styles$j.footer__link;
|
|
328
327
|
var linkClasses = classNames(baseClass, className);
|
|
329
328
|
var handleClick = function (e) {
|
|
330
329
|
if (item.onClick) {
|
|
@@ -340,9 +339,9 @@ var FooterLink = function (_a) {
|
|
|
340
339
|
target: '_blank',
|
|
341
340
|
rel: 'noopener noreferrer'
|
|
342
341
|
}), /*#__PURE__*/React.createElement("span", {
|
|
343
|
-
className: styles$
|
|
342
|
+
className: styles$j.footer__linkText
|
|
344
343
|
}, item.label), item.external && /*#__PURE__*/React.createElement("span", {
|
|
345
|
-
className: styles$
|
|
344
|
+
className: styles$j.footer__linkIcon
|
|
346
345
|
}, /*#__PURE__*/React.createElement(ExternalLinkIcon, {
|
|
347
346
|
size: 15
|
|
348
347
|
})));
|
|
@@ -353,11 +352,11 @@ var FooterLinkGroup = function (_a) {
|
|
|
353
352
|
className = _a.className,
|
|
354
353
|
children = _a.children;
|
|
355
354
|
return /*#__PURE__*/React.createElement("div", {
|
|
356
|
-
className: classNames(styles$
|
|
355
|
+
className: classNames(styles$j.footer__linkGroup, className)
|
|
357
356
|
}, /*#__PURE__*/React.createElement("h3", {
|
|
358
|
-
className: styles$
|
|
357
|
+
className: styles$j.footer__linkHeading
|
|
359
358
|
}, heading), /*#__PURE__*/React.createElement("ul", {
|
|
360
|
-
className: styles$
|
|
359
|
+
className: styles$j.footer__linkList
|
|
361
360
|
}, links.map(function (link, index) {
|
|
362
361
|
return /*#__PURE__*/React.createElement("li", {
|
|
363
362
|
key: index
|
|
@@ -370,12 +369,12 @@ var FooterSocialIcons = function (_a) {
|
|
|
370
369
|
var links = _a.links,
|
|
371
370
|
className = _a.className;
|
|
372
371
|
return /*#__PURE__*/React.createElement("div", {
|
|
373
|
-
className: classNames(styles$
|
|
372
|
+
className: classNames(styles$j.footer__socialIcons, className)
|
|
374
373
|
}, links.map(function (link, index) {
|
|
375
374
|
return /*#__PURE__*/React.createElement("a", {
|
|
376
375
|
key: index,
|
|
377
376
|
href: link.href,
|
|
378
|
-
className: styles$
|
|
377
|
+
className: styles$j.footer__socialIcon,
|
|
379
378
|
"aria-label": link.ariaLabel,
|
|
380
379
|
target: "_blank",
|
|
381
380
|
rel: "noopener noreferrer"
|
|
@@ -387,7 +386,7 @@ var FooterSocialIcons = function (_a) {
|
|
|
387
386
|
var FooterSocialIcon = function (_a) {
|
|
388
387
|
var platform = _a.platform,
|
|
389
388
|
className = _a.className;
|
|
390
|
-
var iconClasses = classNames(styles$
|
|
389
|
+
var iconClasses = classNames(styles$j.footer__socialIcon, className);
|
|
391
390
|
return /*#__PURE__*/React.createElement("span", {
|
|
392
391
|
className: iconClasses
|
|
393
392
|
}, /*#__PURE__*/React.createElement(SocialIconComponent, {
|
|
@@ -400,11 +399,11 @@ var FooterBottom = function (_a) {
|
|
|
400
399
|
countrySelector = _a.countrySelector,
|
|
401
400
|
className = _a.className;
|
|
402
401
|
return /*#__PURE__*/React.createElement("div", {
|
|
403
|
-
className: classNames(styles$
|
|
402
|
+
className: classNames(styles$j.footer__bottom, className)
|
|
404
403
|
}, /*#__PURE__*/React.createElement("div", {
|
|
405
|
-
className: styles$
|
|
404
|
+
className: styles$j.footer__bottomLeft
|
|
406
405
|
}, /*#__PURE__*/React.createElement("div", {
|
|
407
|
-
className: styles$
|
|
406
|
+
className: styles$j.footer__bottomLinks
|
|
408
407
|
}, links.map(function (link, index) {
|
|
409
408
|
return /*#__PURE__*/React.createElement(FooterLink, {
|
|
410
409
|
key: index,
|
|
@@ -412,12 +411,12 @@ var FooterBottom = function (_a) {
|
|
|
412
411
|
variant: "bottom"
|
|
413
412
|
});
|
|
414
413
|
})), /*#__PURE__*/React.createElement("p", {
|
|
415
|
-
className: styles$
|
|
414
|
+
className: styles$j.footer__copyright
|
|
416
415
|
}, copyright)), countrySelector && /*#__PURE__*/React.createElement("a", {
|
|
417
416
|
href: countrySelector.href || '#',
|
|
418
|
-
className: styles$
|
|
417
|
+
className: styles$j.footer__countrySelector
|
|
419
418
|
}, countrySelector.showIcon !== false && /*#__PURE__*/React.createElement("span", {
|
|
420
|
-
className: styles$
|
|
419
|
+
className: styles$j.footer__countrySelectorIcon
|
|
421
420
|
}, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
422
421
|
icon: faGlobe
|
|
423
422
|
})), countrySelector.label));
|
|
@@ -450,13 +449,13 @@ var Footer = function (_a) {
|
|
|
450
449
|
countrySelector = _a.countrySelector,
|
|
451
450
|
className = _a.className;
|
|
452
451
|
var isMobile = variant === 'mobile';
|
|
453
|
-
var footerClasses = classNames(styles$
|
|
452
|
+
var footerClasses = classNames(styles$j.footer, isMobile && styles$j['footer--mobile'], className);
|
|
454
453
|
var LogoWrapper = logo.href ? 'a' : 'div';
|
|
455
454
|
var logoProps = logo.href ? {
|
|
456
455
|
href: logo.href,
|
|
457
|
-
className: styles$
|
|
456
|
+
className: styles$j.footer__logo
|
|
458
457
|
} : {
|
|
459
|
-
className: styles$
|
|
458
|
+
className: styles$j.footer__logo
|
|
460
459
|
};
|
|
461
460
|
// Logo + Motto + Badge component (used in both layouts)
|
|
462
461
|
var LogoSection = function () {
|
|
@@ -464,17 +463,17 @@ var Footer = function (_a) {
|
|
|
464
463
|
src: logo.src,
|
|
465
464
|
alt: logo.alt
|
|
466
465
|
})), /*#__PURE__*/React.createElement("div", {
|
|
467
|
-
className: styles$
|
|
466
|
+
className: styles$j.footer__leftCol
|
|
468
467
|
}, /*#__PURE__*/React.createElement("h2", {
|
|
469
|
-
className: styles$
|
|
468
|
+
className: styles$j.footer__motto
|
|
470
469
|
}, motto), atlasCopcoBadge && /*#__PURE__*/React.createElement("div", {
|
|
471
|
-
className: styles$
|
|
470
|
+
className: styles$j.footer__badge
|
|
472
471
|
}, atlasCopcoBadge.showIcon !== false && /*#__PURE__*/React.createElement("span", {
|
|
473
|
-
className: styles$
|
|
472
|
+
className: styles$j.footer__badgeIcon
|
|
474
473
|
}, /*#__PURE__*/React.createElement(AtlasCopcoIcon, {
|
|
475
474
|
size: 14
|
|
476
475
|
})), /*#__PURE__*/React.createElement("span", {
|
|
477
|
-
className: styles$
|
|
476
|
+
className: styles$j.footer__badgeText
|
|
478
477
|
}, atlasCopcoBadge.text))));
|
|
479
478
|
};
|
|
480
479
|
// Mobile layout: Links at top, logo/motto at bottom
|
|
@@ -482,9 +481,9 @@ var Footer = function (_a) {
|
|
|
482
481
|
return /*#__PURE__*/React.createElement("footer", {
|
|
483
482
|
className: footerClasses
|
|
484
483
|
}, /*#__PURE__*/React.createElement("div", {
|
|
485
|
-
className: styles$
|
|
484
|
+
className: styles$j.footer__container
|
|
486
485
|
}, /*#__PURE__*/React.createElement("div", {
|
|
487
|
-
className: styles$
|
|
486
|
+
className: styles$j.footer__links
|
|
488
487
|
}, /*#__PURE__*/React.createElement(FooterLinkGroup, {
|
|
489
488
|
heading: quickLinksHeading,
|
|
490
489
|
links: quickLinks
|
|
@@ -492,7 +491,7 @@ var Footer = function (_a) {
|
|
|
492
491
|
heading: contactHeading,
|
|
493
492
|
links: contactLinks
|
|
494
493
|
})), contactFormButton && /*#__PURE__*/React.createElement("div", {
|
|
495
|
-
className: styles$
|
|
494
|
+
className: styles$j.footer__cta
|
|
496
495
|
}, /*#__PURE__*/React.createElement("a", {
|
|
497
496
|
href: contactFormButton.href,
|
|
498
497
|
style: {
|
|
@@ -500,7 +499,7 @@ var Footer = function (_a) {
|
|
|
500
499
|
width: '100%'
|
|
501
500
|
}
|
|
502
501
|
}, /*#__PURE__*/React.createElement(Button, {
|
|
503
|
-
variant: "
|
|
502
|
+
variant: "primary",
|
|
504
503
|
style: {
|
|
505
504
|
width: '100%'
|
|
506
505
|
}
|
|
@@ -511,33 +510,33 @@ var Footer = function (_a) {
|
|
|
511
510
|
copyright: copyright,
|
|
512
511
|
countrySelector: countrySelector
|
|
513
512
|
}), /*#__PURE__*/React.createElement("div", {
|
|
514
|
-
className: styles$
|
|
513
|
+
className: styles$j.footer__brandSection
|
|
515
514
|
}, /*#__PURE__*/React.createElement(LogoSection, null))));
|
|
516
515
|
}
|
|
517
516
|
// Desktop layout: Logo at top, 3-column main content
|
|
518
517
|
return /*#__PURE__*/React.createElement("footer", {
|
|
519
518
|
className: footerClasses
|
|
520
519
|
}, /*#__PURE__*/React.createElement("div", {
|
|
521
|
-
className: styles$
|
|
520
|
+
className: styles$j.footer__container
|
|
522
521
|
}, /*#__PURE__*/React.createElement(LogoWrapper, logoProps, /*#__PURE__*/React.createElement("img", {
|
|
523
522
|
src: logo.src,
|
|
524
523
|
alt: logo.alt
|
|
525
524
|
})), /*#__PURE__*/React.createElement("div", {
|
|
526
|
-
className: styles$
|
|
525
|
+
className: styles$j.footer__main
|
|
527
526
|
}, /*#__PURE__*/React.createElement("div", {
|
|
528
|
-
className: styles$
|
|
527
|
+
className: styles$j.footer__leftCol
|
|
529
528
|
}, /*#__PURE__*/React.createElement("h2", {
|
|
530
|
-
className: styles$
|
|
529
|
+
className: styles$j.footer__motto
|
|
531
530
|
}, motto), atlasCopcoBadge && /*#__PURE__*/React.createElement("div", {
|
|
532
|
-
className: styles$
|
|
531
|
+
className: styles$j.footer__badge
|
|
533
532
|
}, atlasCopcoBadge.showIcon !== false && /*#__PURE__*/React.createElement("span", {
|
|
534
|
-
className: styles$
|
|
533
|
+
className: styles$j.footer__badgeIcon
|
|
535
534
|
}, /*#__PURE__*/React.createElement(AtlasCopcoIcon, {
|
|
536
535
|
size: 14
|
|
537
536
|
})), /*#__PURE__*/React.createElement("span", {
|
|
538
|
-
className: styles$
|
|
537
|
+
className: styles$j.footer__badgeText
|
|
539
538
|
}, atlasCopcoBadge.text))), /*#__PURE__*/React.createElement("div", {
|
|
540
|
-
className: styles$
|
|
539
|
+
className: styles$j.footer__links
|
|
541
540
|
}, /*#__PURE__*/React.createElement(FooterLinkGroup, {
|
|
542
541
|
heading: quickLinksHeading,
|
|
543
542
|
links: quickLinks
|
|
@@ -553,7 +552,7 @@ var Footer = function (_a) {
|
|
|
553
552
|
})));
|
|
554
553
|
};
|
|
555
554
|
|
|
556
|
-
var styles$
|
|
555
|
+
var styles$i = {"pagination":"Pagination-module__pagination___Kih79","dividerLine":"Pagination-module__dividerLine___85LAX","paginationList":"Pagination-module__paginationList___-lZpm","paginationItem":"Pagination-module__paginationItem___VsGFa","pageButton":"Pagination-module__pageButton___b6UNF","pageButtonActive":"Pagination-module__pageButtonActive___D9m18","navButton":"Pagination-module__navButton___ZCIai","navButtonDisabled":"Pagination-module__navButtonDisabled___IZK8H","navIcon":"Pagination-module__navIcon___-BVJ3","ellipsis":"Pagination-module__ellipsis___iAsGN","ellipsisText":"Pagination-module__ellipsisText___fd6u1"};
|
|
557
556
|
|
|
558
557
|
var PaginationItem = function (_a) {
|
|
559
558
|
var page = _a.page,
|
|
@@ -572,12 +571,12 @@ var PaginationItem = function (_a) {
|
|
|
572
571
|
}
|
|
573
572
|
};
|
|
574
573
|
return /*#__PURE__*/React.createElement("li", {
|
|
575
|
-
className: styles$
|
|
574
|
+
className: styles$i.paginationItem
|
|
576
575
|
}, /*#__PURE__*/React.createElement("button", {
|
|
577
576
|
type: "button",
|
|
578
577
|
onClick: handleClick,
|
|
579
578
|
onKeyDown: handleKeyDown,
|
|
580
|
-
className: "".concat(styles$
|
|
579
|
+
className: "".concat(styles$i.pageButton, " ").concat(isActive ? styles$i.pageButtonActive : "", " ").concat(className || ""),
|
|
581
580
|
"aria-current": isActive ? "page" : undefined,
|
|
582
581
|
"aria-label": "Page ".concat(page),
|
|
583
582
|
disabled: isActive,
|
|
@@ -601,53 +600,29 @@ var PaginationButton = function (_a) {
|
|
|
601
600
|
}
|
|
602
601
|
};
|
|
603
602
|
return /*#__PURE__*/React.createElement("li", {
|
|
604
|
-
className: styles$
|
|
603
|
+
className: styles$i.paginationItem
|
|
605
604
|
}, /*#__PURE__*/React.createElement("button", {
|
|
606
605
|
type: "button",
|
|
607
606
|
onClick: onClick,
|
|
608
607
|
onKeyDown: handleKeyDown,
|
|
609
608
|
disabled: disabled,
|
|
610
|
-
className: "".concat(styles$
|
|
609
|
+
className: "".concat(styles$i.navButton, " ").concat(styles$i["navButton--".concat(direction)], " ").concat(disabled ? styles$i.navButtonDisabled : "", " ").concat(className || ""),
|
|
611
610
|
"aria-label": ariaLabel || label,
|
|
612
611
|
tabIndex: disabled ? -1 : 0
|
|
613
|
-
}, direction === "
|
|
614
|
-
|
|
615
|
-
|
|
616
|
-
height: "12",
|
|
617
|
-
viewBox: "0 0 8 12",
|
|
618
|
-
fill: "none",
|
|
619
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
612
|
+
}, /*#__PURE__*/React.createElement("span", null, label), direction === "next" && /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
613
|
+
icon: faChevronRight$1,
|
|
614
|
+
className: styles$i.navIcon,
|
|
620
615
|
"aria-hidden": "true"
|
|
621
|
-
}
|
|
622
|
-
d: "M6 10L2 6L6 2",
|
|
623
|
-
stroke: "currentColor",
|
|
624
|
-
strokeWidth: "2",
|
|
625
|
-
strokeLinecap: "round",
|
|
626
|
-
strokeLinejoin: "round"
|
|
627
|
-
})), /*#__PURE__*/React.createElement("span", null, label), direction === "next" && /*#__PURE__*/React.createElement("svg", {
|
|
628
|
-
className: styles$e.navIcon,
|
|
629
|
-
width: "8",
|
|
630
|
-
height: "12",
|
|
631
|
-
viewBox: "0 0 8 12",
|
|
632
|
-
fill: "none",
|
|
633
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
634
|
-
"aria-hidden": "true"
|
|
635
|
-
}, /*#__PURE__*/React.createElement("path", {
|
|
636
|
-
d: "M2 2L6 6L2 10",
|
|
637
|
-
stroke: "currentColor",
|
|
638
|
-
strokeWidth: "2",
|
|
639
|
-
strokeLinecap: "round",
|
|
640
|
-
strokeLinejoin: "round"
|
|
641
|
-
}))));
|
|
616
|
+
})));
|
|
642
617
|
};
|
|
643
618
|
|
|
644
619
|
var PaginationEllipsis = function (_a) {
|
|
645
620
|
var className = _a.className;
|
|
646
621
|
return /*#__PURE__*/React.createElement("li", {
|
|
647
|
-
className: "".concat(styles$
|
|
622
|
+
className: "".concat(styles$i.paginationItem, " ").concat(styles$i.ellipsis),
|
|
648
623
|
"aria-hidden": "true"
|
|
649
624
|
}, /*#__PURE__*/React.createElement("span", {
|
|
650
|
-
className: "".concat(styles$
|
|
625
|
+
className: "".concat(styles$i.ellipsisText, " ").concat(className || "")
|
|
651
626
|
}, "..."));
|
|
652
627
|
};
|
|
653
628
|
|
|
@@ -732,11 +707,13 @@ var Pagination = function (_a) {
|
|
|
732
707
|
return null;
|
|
733
708
|
}
|
|
734
709
|
return /*#__PURE__*/React.createElement("nav", {
|
|
735
|
-
className: "".concat(styles$
|
|
710
|
+
className: "".concat(styles$i.pagination, " ").concat(className || ""),
|
|
736
711
|
"aria-label": ariaLabel,
|
|
737
712
|
role: "navigation"
|
|
738
|
-
}, /*#__PURE__*/React.createElement("
|
|
739
|
-
className: styles$
|
|
713
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
714
|
+
className: styles$i.dividerLine
|
|
715
|
+
}), /*#__PURE__*/React.createElement("ul", {
|
|
716
|
+
className: styles$i.paginationList
|
|
740
717
|
}, showPrevious && /*#__PURE__*/React.createElement(PaginationButton, {
|
|
741
718
|
label: previousLabel,
|
|
742
719
|
disabled: currentPage === 1,
|
|
@@ -764,9 +741,9 @@ var Pagination = function (_a) {
|
|
|
764
741
|
})));
|
|
765
742
|
};
|
|
766
743
|
|
|
767
|
-
var styles$
|
|
744
|
+
var styles$h = {"productCard":"ProductCardHorizontal-module__productCard___Nl4jK","productWrapper":"ProductCardHorizontal-module__productWrapper___gs8fn","withImage":"ProductCardHorizontal-module__withImage___pPFw2","productTitle":"ProductCardHorizontal-module__productTitle___xBuu7","productPrice":"ProductCardHorizontal-module__productPrice___lf32A","productImage":"ProductCardHorizontal-module__productImage___sQsUO","productId":"ProductCardHorizontal-module__productId___3oOQV","productTitleDescriptionWrapper":"ProductCardHorizontal-module__productTitleDescriptionWrapper___Obv-j","productPriceCtaWrapper":"ProductCardHorizontal-module__productPriceCtaWrapper___Npkfl","productArrowIcon":"ProductCardHorizontal-module__productArrowIcon___1-A76"};
|
|
768
745
|
|
|
769
|
-
var styles$
|
|
746
|
+
var styles$g = {"imageContainer":"Image-module__imageContainer___iD5Kd","loading":"Image-module__loading___Sh1zO","image":"Image-module__image___1pa50","error":"Image-module__error___0LGZ2","skeleton":"Image-module__skeleton___0bGS6","shimmer":"Image-module__shimmer___aanrl","errorState":"Image-module__errorState___TjV-8","errorIcon":"Image-module__errorIcon___QCKvj","errorText":"Image-module__errorText___Q8pnb"};
|
|
770
747
|
|
|
771
748
|
var Image = function (_a) {
|
|
772
749
|
var src = _a.src,
|
|
@@ -837,15 +814,15 @@ var Image = function (_a) {
|
|
|
837
814
|
objectPosition: objectPosition
|
|
838
815
|
};
|
|
839
816
|
return /*#__PURE__*/React.createElement("div", {
|
|
840
|
-
className: "".concat(styles$
|
|
817
|
+
className: "".concat(styles$g.imageContainer, " ").concat(className, " ").concat(isLoading ? styles$g.loading : "", " ").concat(hasError ? styles$g.error : ""),
|
|
841
818
|
style: containerStyle
|
|
842
819
|
}, isLoading && /*#__PURE__*/React.createElement("div", {
|
|
843
|
-
className: styles$
|
|
820
|
+
className: styles$g.skeleton,
|
|
844
821
|
"aria-hidden": "true"
|
|
845
822
|
}, /*#__PURE__*/React.createElement("div", {
|
|
846
|
-
className: styles$
|
|
823
|
+
className: styles$g.shimmer
|
|
847
824
|
})), hasError && !fallbackSrc ? /*#__PURE__*/React.createElement("div", {
|
|
848
|
-
className: styles$
|
|
825
|
+
className: styles$g.errorState,
|
|
849
826
|
role: "img",
|
|
850
827
|
"aria-label": alt || "Image failed to load"
|
|
851
828
|
}, /*#__PURE__*/React.createElement("svg", {
|
|
@@ -856,7 +833,7 @@ var Image = function (_a) {
|
|
|
856
833
|
strokeWidth: "1.5",
|
|
857
834
|
strokeLinecap: "round",
|
|
858
835
|
strokeLinejoin: "round",
|
|
859
|
-
className: styles$
|
|
836
|
+
className: styles$g.errorIcon,
|
|
860
837
|
"aria-hidden": "true"
|
|
861
838
|
}, /*#__PURE__*/React.createElement("rect", {
|
|
862
839
|
x: "3",
|
|
@@ -872,7 +849,7 @@ var Image = function (_a) {
|
|
|
872
849
|
}), /*#__PURE__*/React.createElement("polyline", {
|
|
873
850
|
points: "21 15 16 10 5 21"
|
|
874
851
|
})), /*#__PURE__*/React.createElement("span", {
|
|
875
|
-
className: styles$
|
|
852
|
+
className: styles$g.errorText
|
|
876
853
|
}, "Image unavailable")) : /*#__PURE__*/React.createElement("img", _extends({
|
|
877
854
|
src: currentSrc
|
|
878
855
|
}, accessibilityProps, {
|
|
@@ -882,20 +859,32 @@ var Image = function (_a) {
|
|
|
882
859
|
decoding: decoding,
|
|
883
860
|
onLoad: handleLoad,
|
|
884
861
|
onError: handleError,
|
|
885
|
-
className: styles$
|
|
862
|
+
className: styles$g.image,
|
|
886
863
|
style: imageStyle,
|
|
887
864
|
srcSet: srcSet,
|
|
888
865
|
sizes: sizes
|
|
889
866
|
})));
|
|
890
867
|
};
|
|
891
868
|
|
|
869
|
+
/*!
|
|
870
|
+
* Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com
|
|
871
|
+
* License - https://fontawesome.com/license (Commercial License)
|
|
872
|
+
* Copyright 2024 Fonticons, Inc.
|
|
873
|
+
*/
|
|
874
|
+
const faArrowUpRight = {
|
|
875
|
+
prefix: 'far',
|
|
876
|
+
iconName: 'arrow-up-right',
|
|
877
|
+
icon: [384, 512, [], "e09f", "M328 96c13.3 0 24 10.7 24 24l0 240c0 13.3-10.7 24-24 24s-24-10.7-24-24l0-182.1L73 409c-9.4 9.4-24.6 9.4-33.9 0s-9.4-24.6 0-33.9l231-231L88 144c-13.3 0-24-10.7-24-24s10.7-24 24-24l240 0z"]
|
|
878
|
+
};
|
|
879
|
+
|
|
892
880
|
var ProductCardHorizontal = function (_a) {
|
|
893
881
|
_a.id;
|
|
894
882
|
var imageUrl = _a.imageUrl,
|
|
895
883
|
url = _a.url,
|
|
896
|
-
title = _a.title
|
|
897
|
-
|
|
898
|
-
price = _a.price,
|
|
884
|
+
title = _a.title;
|
|
885
|
+
_a.description;
|
|
886
|
+
var price = _a.price,
|
|
887
|
+
productId = _a.productId,
|
|
899
888
|
button = _a.button,
|
|
900
889
|
_b = _a.className,
|
|
901
890
|
className = _b === void 0 ? "" : _b;
|
|
@@ -904,41 +893,46 @@ var ProductCardHorizontal = function (_a) {
|
|
|
904
893
|
}
|
|
905
894
|
return /*#__PURE__*/React.createElement("a", {
|
|
906
895
|
href: url,
|
|
907
|
-
className: "".concat(styles$
|
|
896
|
+
className: "".concat(styles$h.productCard, " ").concat(className),
|
|
908
897
|
"aria-label": "View product: ".concat(title)
|
|
909
898
|
}, /*#__PURE__*/React.createElement("div", {
|
|
910
|
-
className: "".concat(styles$
|
|
899
|
+
className: "".concat(styles$h.productWrapper, " ").concat(imageUrl ? styles$h.withImage : "")
|
|
911
900
|
}, imageUrl && /*#__PURE__*/React.createElement("div", {
|
|
912
|
-
className: styles$
|
|
901
|
+
className: styles$h.productImage
|
|
913
902
|
}, /*#__PURE__*/React.createElement(Image, {
|
|
914
903
|
src: imageUrl,
|
|
915
904
|
alt: title
|
|
916
905
|
})), /*#__PURE__*/React.createElement("div", {
|
|
917
|
-
className: styles$
|
|
906
|
+
className: styles$h.productTitleDescriptionWrapper
|
|
918
907
|
}, /*#__PURE__*/React.createElement("h3", {
|
|
919
|
-
className: styles$
|
|
920
|
-
}, title),
|
|
921
|
-
className: styles$
|
|
922
|
-
},
|
|
923
|
-
className: styles$
|
|
908
|
+
className: styles$h.productTitle
|
|
909
|
+
}, title), productId && /*#__PURE__*/React.createElement("p", {
|
|
910
|
+
className: styles$h.productId
|
|
911
|
+
}, productId)), /*#__PURE__*/React.createElement("div", {
|
|
912
|
+
className: styles$h.productPriceCtaWrapper
|
|
924
913
|
}, /*#__PURE__*/React.createElement("p", {
|
|
925
|
-
className: styles$
|
|
926
|
-
}, price || " "), button
|
|
927
|
-
className: styles$
|
|
914
|
+
className: styles$h.productPrice
|
|
915
|
+
}, price || " "), button ? /*#__PURE__*/React.createElement(Button, {
|
|
916
|
+
className: styles$h.productButton,
|
|
928
917
|
onClick: button.onClick,
|
|
929
918
|
size: "extra-small"
|
|
930
|
-
}, button.label)
|
|
919
|
+
}, button.label) : /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
920
|
+
icon: faArrowUpRight,
|
|
921
|
+
className: styles$h.productArrowIcon,
|
|
922
|
+
"aria-hidden": "true"
|
|
923
|
+
}))));
|
|
931
924
|
};
|
|
932
925
|
// Alias for backward compatibility
|
|
933
926
|
var ProductCardHorizontalParts = ProductCardHorizontal;
|
|
934
927
|
|
|
935
|
-
var styles$
|
|
928
|
+
var styles$f = {"productDetails":"ProductCardDetails-module__productDetails___-sx2l"};
|
|
936
929
|
|
|
937
930
|
// Adapter to map design system props to ProductCardHorizontalParts props
|
|
938
931
|
var SpareCardAdapter = function (props) {
|
|
939
932
|
var spare = props.spare,
|
|
940
933
|
rest = __rest(props, ["spare"]);
|
|
941
934
|
return /*#__PURE__*/React.createElement(ProductCardHorizontalParts, {
|
|
935
|
+
className: styles$f.spareCard,
|
|
942
936
|
url: (spare === null || spare === void 0 ? void 0 : spare.url) || (spare === null || spare === void 0 ? void 0 : spare.link) || "#",
|
|
943
937
|
title: (spare === null || spare === void 0 ? void 0 : spare.name) || (spare === null || spare === void 0 ? void 0 : spare.title) || "",
|
|
944
938
|
description: (spare === null || spare === void 0 ? void 0 : spare.description) || "",
|
|
@@ -964,7 +958,8 @@ var ProductCardDetails = function (_a) {
|
|
|
964
958
|
hit = _a.hit,
|
|
965
959
|
_b = _a.className,
|
|
966
960
|
className = _b === void 0 ? "" : _b,
|
|
967
|
-
ProductCardComponent = _a.ProductCardComponent
|
|
961
|
+
ProductCardComponent = _a.ProductCardComponent,
|
|
962
|
+
hidespares = _a.hidespares;
|
|
968
963
|
// Build the hit object expected by ProductDetailsCard
|
|
969
964
|
var hitData = hit || {
|
|
970
965
|
id: id,
|
|
@@ -975,7 +970,7 @@ var ProductCardDetails = function (_a) {
|
|
|
975
970
|
image: imageUrl
|
|
976
971
|
};
|
|
977
972
|
return /*#__PURE__*/React.createElement("div", {
|
|
978
|
-
className: styles$
|
|
973
|
+
className: styles$f.productDetails
|
|
979
974
|
}, /*#__PURE__*/React.createElement(ProductDetailsCard, {
|
|
980
975
|
className: "".concat(className),
|
|
981
976
|
title: title,
|
|
@@ -984,7 +979,8 @@ var ProductCardDetails = function (_a) {
|
|
|
984
979
|
hit: hitData,
|
|
985
980
|
facets: facets,
|
|
986
981
|
usePlainClasses: true,
|
|
987
|
-
ProductCardComponent: ProductCardComponent || SpareCardAdapter
|
|
982
|
+
ProductCardComponent: ProductCardComponent || SpareCardAdapter,
|
|
983
|
+
hidespares: hidespares
|
|
988
984
|
}));
|
|
989
985
|
};
|
|
990
986
|
|
|
@@ -1032,7 +1028,8 @@ var ProductCardDetailsAdapter = function (props) {
|
|
|
1032
1028
|
var className = props.className,
|
|
1033
1029
|
code = props.code,
|
|
1034
1030
|
facets = props.facets,
|
|
1035
|
-
related_products = props.related_products
|
|
1031
|
+
related_products = props.related_products,
|
|
1032
|
+
hidespares = props.hidespares;
|
|
1036
1033
|
if (!title) {
|
|
1037
1034
|
return null;
|
|
1038
1035
|
}
|
|
@@ -1045,7 +1042,8 @@ var ProductCardDetailsAdapter = function (props) {
|
|
|
1045
1042
|
hit: hit,
|
|
1046
1043
|
className: className,
|
|
1047
1044
|
facets: facets,
|
|
1048
|
-
relatedProducts: (hit === null || hit === void 0 ? void 0 : hit.related_products) || related_products
|
|
1045
|
+
relatedProducts: (hit === null || hit === void 0 ? void 0 : hit.related_products) || related_products,
|
|
1046
|
+
hidespares: hidespares
|
|
1049
1047
|
});
|
|
1050
1048
|
};
|
|
1051
1049
|
var AlgoliaDynamicSearchLeybold = function (props) {
|
|
@@ -1110,7 +1108,7 @@ var QrFormLeybold = function (props) {
|
|
|
1110
1108
|
})));
|
|
1111
1109
|
};
|
|
1112
1110
|
|
|
1113
|
-
var styles$
|
|
1111
|
+
var styles$e = {"overlay":"SearchModal-module__overlay___Vbvg9","modal":"SearchModal-module__modal___1k5gO","closeButton":"SearchModal-module__closeButton___AN0zt","closeButton__icon":"SearchModal-module__closeButton__icon___vISSw","closeButton__text":"SearchModal-module__closeButton__text___-4EH1","closeButtonDesktop":"SearchModal-module__closeButtonDesktop___Lxxb0","closeButtonMobile":"SearchModal-module__closeButtonMobile___WIIMS","stickyHeader":"SearchModal-module__stickyHeader___wp-gA","scrollableContent":"SearchModal-module__scrollableContent___lrZP3"};
|
|
1114
1112
|
|
|
1115
1113
|
var ModalCloseButton = function (_a) {
|
|
1116
1114
|
var onClick = _a.onClick,
|
|
@@ -1122,7 +1120,9 @@ var ModalCloseButton = function (_a) {
|
|
|
1122
1120
|
type: "button",
|
|
1123
1121
|
onClick: onClick,
|
|
1124
1122
|
"aria-label": ariaLabel,
|
|
1125
|
-
className: "".concat(styles$
|
|
1123
|
+
className: "".concat(styles$e.closeButton, " ").concat(className)
|
|
1124
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
1125
|
+
className: styles$e.closeButton__icon
|
|
1126
1126
|
}, /*#__PURE__*/React.createElement("svg", {
|
|
1127
1127
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1128
1128
|
viewBox: "0 0 24 24",
|
|
@@ -1142,7 +1142,9 @@ var ModalCloseButton = function (_a) {
|
|
|
1142
1142
|
y1: "6",
|
|
1143
1143
|
x2: "18",
|
|
1144
1144
|
y2: "18"
|
|
1145
|
-
})))
|
|
1145
|
+
}))), /*#__PURE__*/React.createElement("span", {
|
|
1146
|
+
className: styles$e.closeButton__text
|
|
1147
|
+
}, "CLOSE X"));
|
|
1146
1148
|
};
|
|
1147
1149
|
|
|
1148
1150
|
var SearchModal = function (_a) {
|
|
@@ -1152,7 +1154,8 @@ var SearchModal = function (_a) {
|
|
|
1152
1154
|
title = _b === void 0 ? 'Search' : _b,
|
|
1153
1155
|
children = _a.children,
|
|
1154
1156
|
_c = _a.className,
|
|
1155
|
-
className = _c === void 0 ? '' : _c
|
|
1157
|
+
className = _c === void 0 ? '' : _c,
|
|
1158
|
+
stickyHeaderContent = _a.stickyHeaderContent;
|
|
1156
1159
|
var modalRef = useRef(null);
|
|
1157
1160
|
var previouslyFocusedElement = useRef(null);
|
|
1158
1161
|
useEffect(function () {
|
|
@@ -1223,7 +1226,7 @@ var SearchModal = function (_a) {
|
|
|
1223
1226
|
}
|
|
1224
1227
|
};
|
|
1225
1228
|
return /*#__PURE__*/React.createElement("div", {
|
|
1226
|
-
className: styles$
|
|
1229
|
+
className: styles$e.overlay,
|
|
1227
1230
|
onClick: handleOverlayClick,
|
|
1228
1231
|
"aria-hidden": "true"
|
|
1229
1232
|
}, /*#__PURE__*/React.createElement("div", {
|
|
@@ -1232,25 +1235,27 @@ var SearchModal = function (_a) {
|
|
|
1232
1235
|
"aria-modal": "true",
|
|
1233
1236
|
"aria-label": title,
|
|
1234
1237
|
tabIndex: -1,
|
|
1235
|
-
className: "".concat(styles$
|
|
1238
|
+
className: "".concat(styles$e.modal, " ").concat(className)
|
|
1236
1239
|
}, /*#__PURE__*/React.createElement("div", {
|
|
1237
|
-
className: styles$
|
|
1238
|
-
}, /*#__PURE__*/React.createElement(
|
|
1239
|
-
|
|
1240
|
-
|
|
1241
|
-
|
|
1242
|
-
|
|
1243
|
-
|
|
1244
|
-
|
|
1240
|
+
className: styles$e.stickyHeader
|
|
1241
|
+
}, /*#__PURE__*/React.createElement(ModalCloseButton, {
|
|
1242
|
+
onClick: onClose,
|
|
1243
|
+
className: styles$e.closeButtonMobile
|
|
1244
|
+
}), stickyHeaderContent), /*#__PURE__*/React.createElement("div", {
|
|
1245
|
+
className: styles$e.scrollableContent
|
|
1246
|
+
}, /*#__PURE__*/React.createElement(ModalCloseButton, {
|
|
1247
|
+
onClick: onClose,
|
|
1248
|
+
className: styles$e.closeButtonDesktop
|
|
1249
|
+
}), children)));
|
|
1245
1250
|
};
|
|
1246
1251
|
|
|
1247
|
-
var styles$
|
|
1252
|
+
var styles$d = {"searchBar":"SearchBar-module__searchBar___5ak1g","inputWrapper":"SearchBar-module__inputWrapper___-4wrM","searchIcon":"SearchBar-module__searchIcon___VAuDz","searchInput":"SearchBar-module__searchInput___1K4GN","clearButton":"SearchBar-module__clearButton___JQYg-","submitButton":"SearchBar-module__submitButton___DZWsQ","submitButton__text":"SearchBar-module__submitButton__text___WkUsL","submitButton__icon":"SearchBar-module__submitButton__icon___s-ltv"};
|
|
1248
1253
|
|
|
1249
1254
|
var SearchIcon = function (_a) {
|
|
1250
1255
|
var _b = _a.className,
|
|
1251
1256
|
className = _b === void 0 ? '' : _b;
|
|
1252
1257
|
return /*#__PURE__*/React.createElement("svg", {
|
|
1253
|
-
className: "".concat(styles$
|
|
1258
|
+
className: "".concat(styles$d.searchIcon, " ").concat(className),
|
|
1254
1259
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1255
1260
|
viewBox: "0 0 24 24",
|
|
1256
1261
|
fill: "none",
|
|
@@ -1289,7 +1294,7 @@ var SearchInput = function (_a) {
|
|
|
1289
1294
|
placeholder: placeholder,
|
|
1290
1295
|
autoFocus: autoFocus,
|
|
1291
1296
|
"aria-label": "Search",
|
|
1292
|
-
className: "".concat(styles$
|
|
1297
|
+
className: "".concat(styles$d.searchInput, " ").concat(className)
|
|
1293
1298
|
});
|
|
1294
1299
|
};
|
|
1295
1300
|
|
|
@@ -1300,16 +1305,21 @@ var SearchSubmitButton = function (_a) {
|
|
|
1300
1305
|
_c = _a.ariaLabel,
|
|
1301
1306
|
ariaLabel = _c === void 0 ? 'Search' : _c,
|
|
1302
1307
|
_d = _a.label,
|
|
1303
|
-
label = _d === void 0 ? 'Search' : _d
|
|
1304
|
-
|
|
1305
|
-
|
|
1308
|
+
label = _d === void 0 ? 'Search' : _d;
|
|
1309
|
+
_a.variant;
|
|
1310
|
+
var _f = _a.className,
|
|
1311
|
+
className = _f === void 0 ? '' : _f;
|
|
1306
1312
|
return /*#__PURE__*/React.createElement("button", {
|
|
1307
1313
|
type: "submit",
|
|
1308
1314
|
onClick: onClick,
|
|
1309
1315
|
disabled: disabled,
|
|
1310
1316
|
"aria-label": ariaLabel,
|
|
1311
|
-
className: "".concat(styles$
|
|
1312
|
-
},
|
|
1317
|
+
className: "".concat(styles$d.submitButton, " ").concat(className)
|
|
1318
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
1319
|
+
className: styles$d.submitButton__text
|
|
1320
|
+
}, label), /*#__PURE__*/React.createElement("span", {
|
|
1321
|
+
className: styles$d.submitButton__icon
|
|
1322
|
+
}, /*#__PURE__*/React.createElement(SearchIcon, null)));
|
|
1313
1323
|
};
|
|
1314
1324
|
|
|
1315
1325
|
var SearchBar = function (_a) {
|
|
@@ -1320,7 +1330,9 @@ var SearchBar = function (_a) {
|
|
|
1320
1330
|
_b = _a.autoFocus,
|
|
1321
1331
|
autoFocus = _b === void 0 ? false : _b,
|
|
1322
1332
|
_c = _a.className,
|
|
1323
|
-
className = _c === void 0 ? '' : _c
|
|
1333
|
+
className = _c === void 0 ? '' : _c,
|
|
1334
|
+
_d = _a.variant,
|
|
1335
|
+
variant = _d === void 0 ? 'instant' : _d;
|
|
1324
1336
|
var handleSubmit = function (event) {
|
|
1325
1337
|
event.preventDefault();
|
|
1326
1338
|
onSubmit();
|
|
@@ -1331,23 +1343,169 @@ var SearchBar = function (_a) {
|
|
|
1331
1343
|
onSubmit();
|
|
1332
1344
|
}
|
|
1333
1345
|
};
|
|
1346
|
+
var handleClear = function () {
|
|
1347
|
+
onChange('');
|
|
1348
|
+
};
|
|
1349
|
+
var showClearButton = value.length > 0;
|
|
1334
1350
|
return /*#__PURE__*/React.createElement("form", {
|
|
1335
1351
|
onSubmit: handleSubmit,
|
|
1336
|
-
className: "".concat(styles$
|
|
1352
|
+
className: "".concat(styles$d.searchBar, " ").concat(className)
|
|
1337
1353
|
}, /*#__PURE__*/React.createElement("div", {
|
|
1338
|
-
className: styles$
|
|
1354
|
+
className: styles$d.inputWrapper
|
|
1339
1355
|
}, /*#__PURE__*/React.createElement(SearchIcon, null), /*#__PURE__*/React.createElement(SearchInput, {
|
|
1340
1356
|
value: value,
|
|
1341
1357
|
onChange: onChange,
|
|
1342
1358
|
onKeyDown: handleKeyDown,
|
|
1343
1359
|
placeholder: placeholder,
|
|
1344
1360
|
autoFocus: autoFocus
|
|
1345
|
-
})
|
|
1346
|
-
|
|
1361
|
+
}), showClearButton && /*#__PURE__*/React.createElement("button", {
|
|
1362
|
+
type: "button",
|
|
1363
|
+
onClick: handleClear,
|
|
1364
|
+
className: styles$d.clearButton,
|
|
1365
|
+
"aria-label": "Clear search"
|
|
1366
|
+
}, "CLEAR X")), /*#__PURE__*/React.createElement(SearchSubmitButton, {
|
|
1367
|
+
onClick: onSubmit,
|
|
1368
|
+
label: "SEE ALL RESULTS",
|
|
1369
|
+
variant: variant
|
|
1347
1370
|
}));
|
|
1348
1371
|
};
|
|
1349
1372
|
|
|
1350
|
-
var styles$
|
|
1373
|
+
var styles$c = {"contentCard":"ContentCardHorizontal-module__contentCard___l-Kim","contentCard--instant-view":"ContentCardHorizontal-module__contentCard--instant-view___4wK9-","contentExcerpt":"ContentCardHorizontal-module__contentExcerpt___tqg1v","contentCard--results-view":"ContentCardHorizontal-module__contentCard--results-view___oBP2u","contentMeta":"ContentCardHorizontal-module__contentMeta___rEW-X","contentCategory":"ContentCardHorizontal-module__contentCategory___NssVD","contentMetaText":"ContentCardHorizontal-module__contentMetaText___muYBN","contentTitle":"ContentCardHorizontal-module__contentTitle___54gEo"};
|
|
1374
|
+
|
|
1375
|
+
var ContentCardHorizontal = function (_a) {
|
|
1376
|
+
_a.id;
|
|
1377
|
+
var title = _a.title,
|
|
1378
|
+
url = _a.url,
|
|
1379
|
+
category = _a.category,
|
|
1380
|
+
meta = _a.meta,
|
|
1381
|
+
excerpt = _a.excerpt,
|
|
1382
|
+
_b = _a.className,
|
|
1383
|
+
className = _b === void 0 ? "" : _b,
|
|
1384
|
+
_c = _a.variant,
|
|
1385
|
+
variant = _c === void 0 ? "instant-view" : _c;
|
|
1386
|
+
var cardClasses = classNames(styles$c.contentCard, styles$c["contentCard--".concat(variant)], className);
|
|
1387
|
+
return /*#__PURE__*/React.createElement("a", {
|
|
1388
|
+
href: url,
|
|
1389
|
+
className: cardClasses,
|
|
1390
|
+
"aria-label": "View content: ".concat(title)
|
|
1391
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
1392
|
+
className: styles$c.contentMeta
|
|
1393
|
+
}, category && /*#__PURE__*/React.createElement("span", {
|
|
1394
|
+
className: styles$c.contentCategory
|
|
1395
|
+
}, category), meta && /*#__PURE__*/React.createElement("span", {
|
|
1396
|
+
className: styles$c.contentMetaText
|
|
1397
|
+
}, meta)), /*#__PURE__*/React.createElement("h3", {
|
|
1398
|
+
className: styles$c.contentTitle
|
|
1399
|
+
}, title), excerpt && /*#__PURE__*/React.createElement("p", {
|
|
1400
|
+
className: styles$c.contentExcerpt
|
|
1401
|
+
}, excerpt));
|
|
1402
|
+
};
|
|
1403
|
+
|
|
1404
|
+
var styles$b = {"instantResultsLayout":"InstantResults-module__instantResultsLayout___oy-o4","columnsGrid":"InstantResults-module__columnsGrid___bHRUM","resultsColumn":"InstantResults-module__resultsColumn___ZBSlT","columnHeader":"InstantResults-module__columnHeader___VYYhi","showingText":"InstantResults-module__showingText___lECiA","seeAllButton":"InstantResults-module__seeAllButton___xEDAX","chevronIcon":"InstantResults-module__chevronIcon___bjb3q","resultsList":"InstantResults-module__resultsList___7s3PT","divider":"InstantResults-module__divider___Ky6zK","loadingState":"InstantResults-module__loadingState___l0fMq","errorState":"InstantResults-module__errorState___hTBbE","spinner":"InstantResults-module__spinner___85jF-"};
|
|
1405
|
+
|
|
1406
|
+
var FederatedInstantResultsLayout = function (_a) {
|
|
1407
|
+
_a.query;
|
|
1408
|
+
var products = _a.products,
|
|
1409
|
+
contents = _a.contents,
|
|
1410
|
+
isLoadingProducts = _a.isLoadingProducts,
|
|
1411
|
+
isLoadingContents = _a.isLoadingContents,
|
|
1412
|
+
productsError = _a.productsError,
|
|
1413
|
+
contentsError = _a.contentsError,
|
|
1414
|
+
onSeeAllProducts = _a.onSeeAllProducts,
|
|
1415
|
+
onSeeAllContents = _a.onSeeAllContents;
|
|
1416
|
+
_a.onSeeAllCombined;
|
|
1417
|
+
products.length + contents.length;
|
|
1418
|
+
// Show first 3 results from each category
|
|
1419
|
+
var displayProducts = products.slice(0, 3);
|
|
1420
|
+
var displayContents = contents.slice(0, 3);
|
|
1421
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
1422
|
+
className: styles$b.instantResultsLayout
|
|
1423
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
1424
|
+
className: styles$b.columnsGrid
|
|
1425
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
1426
|
+
className: styles$b.resultsColumn
|
|
1427
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
1428
|
+
className: styles$b.columnHeader
|
|
1429
|
+
}, /*#__PURE__*/React.createElement("p", {
|
|
1430
|
+
className: styles$b.showingText
|
|
1431
|
+
}, "SHOWING ", displayProducts.length, " OF ", products.length, " RESULTS"), /*#__PURE__*/React.createElement("button", {
|
|
1432
|
+
type: "button",
|
|
1433
|
+
className: styles$b.seeAllButton,
|
|
1434
|
+
onClick: onSeeAllProducts
|
|
1435
|
+
}, /*#__PURE__*/React.createElement("svg", {
|
|
1436
|
+
className: styles$b.chevronIcon,
|
|
1437
|
+
width: "12",
|
|
1438
|
+
height: "6",
|
|
1439
|
+
viewBox: "0 0 12 6",
|
|
1440
|
+
fill: "none",
|
|
1441
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1442
|
+
"aria-hidden": "true"
|
|
1443
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
1444
|
+
d: "M1 1L6 5L11 1",
|
|
1445
|
+
stroke: "currentColor",
|
|
1446
|
+
strokeWidth: "2",
|
|
1447
|
+
strokeLinecap: "round",
|
|
1448
|
+
strokeLinejoin: "round"
|
|
1449
|
+
})), /*#__PURE__*/React.createElement("span", null, "See all products"))), isLoadingProducts ? /*#__PURE__*/React.createElement("div", {
|
|
1450
|
+
className: styles$b.loadingState
|
|
1451
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
1452
|
+
className: styles$b.spinner,
|
|
1453
|
+
"aria-label": "Loading..."
|
|
1454
|
+
}), /*#__PURE__*/React.createElement("p", null, "Loading products...")) : productsError ? /*#__PURE__*/React.createElement("div", {
|
|
1455
|
+
className: styles$b.errorState
|
|
1456
|
+
}, /*#__PURE__*/React.createElement("p", null, productsError)) : displayProducts.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
1457
|
+
className: styles$b.resultsList
|
|
1458
|
+
}, displayProducts.map(function (product, index) {
|
|
1459
|
+
return /*#__PURE__*/React.createElement(React.Fragment, {
|
|
1460
|
+
key: product.id
|
|
1461
|
+
}, /*#__PURE__*/React.createElement(ProductCardHorizontal, product), index < displayProducts.length - 1 && /*#__PURE__*/React.createElement("hr", {
|
|
1462
|
+
className: styles$b.divider
|
|
1463
|
+
}));
|
|
1464
|
+
})) : null), /*#__PURE__*/React.createElement("div", {
|
|
1465
|
+
className: styles$b.resultsColumn
|
|
1466
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
1467
|
+
className: styles$b.columnHeader
|
|
1468
|
+
}, /*#__PURE__*/React.createElement("p", {
|
|
1469
|
+
className: styles$b.showingText
|
|
1470
|
+
}, "SHOWING ", displayContents.length, " OF ", contents.length, " RESULTS"), /*#__PURE__*/React.createElement("button", {
|
|
1471
|
+
type: "button",
|
|
1472
|
+
className: styles$b.seeAllButton,
|
|
1473
|
+
onClick: onSeeAllContents
|
|
1474
|
+
}, /*#__PURE__*/React.createElement("svg", {
|
|
1475
|
+
className: styles$b.chevronIcon,
|
|
1476
|
+
width: "12",
|
|
1477
|
+
height: "6",
|
|
1478
|
+
viewBox: "0 0 12 6",
|
|
1479
|
+
fill: "none",
|
|
1480
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1481
|
+
"aria-hidden": "true"
|
|
1482
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
1483
|
+
d: "M1 1L6 5L11 1",
|
|
1484
|
+
stroke: "currentColor",
|
|
1485
|
+
strokeWidth: "2",
|
|
1486
|
+
strokeLinecap: "round",
|
|
1487
|
+
strokeLinejoin: "round"
|
|
1488
|
+
})), /*#__PURE__*/React.createElement("span", null, "See all"))), isLoadingContents ? /*#__PURE__*/React.createElement("div", {
|
|
1489
|
+
className: styles$b.loadingState
|
|
1490
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
1491
|
+
className: styles$b.spinner,
|
|
1492
|
+
"aria-label": "Loading..."
|
|
1493
|
+
}), /*#__PURE__*/React.createElement("p", null, "Loading content...")) : contentsError ? /*#__PURE__*/React.createElement("div", {
|
|
1494
|
+
className: styles$b.errorState
|
|
1495
|
+
}, /*#__PURE__*/React.createElement("p", null, contentsError)) : displayContents.length > 0 ? /*#__PURE__*/React.createElement("div", {
|
|
1496
|
+
className: styles$b.resultsList
|
|
1497
|
+
}, displayContents.map(function (content, index) {
|
|
1498
|
+
return /*#__PURE__*/React.createElement(React.Fragment, {
|
|
1499
|
+
key: content.id
|
|
1500
|
+
}, /*#__PURE__*/React.createElement(ContentCardHorizontal, _extends({}, content, {
|
|
1501
|
+
variant: "instant-view"
|
|
1502
|
+
})), index < displayContents.length - 1 && /*#__PURE__*/React.createElement("hr", {
|
|
1503
|
+
className: styles$b.divider
|
|
1504
|
+
}));
|
|
1505
|
+
})) : null)));
|
|
1506
|
+
};
|
|
1507
|
+
|
|
1508
|
+
var styles$a = {"resultsCount":"ResultsCount-module__resultsCount___cNM6f"};
|
|
1351
1509
|
|
|
1352
1510
|
var ResultsCount = function (_a) {
|
|
1353
1511
|
var count = _a.count,
|
|
@@ -1356,11 +1514,11 @@ var ResultsCount = function (_a) {
|
|
|
1356
1514
|
className = _b === void 0 ? '' : _b;
|
|
1357
1515
|
var label = count === 1 ? type.slice(0, -1) : type;
|
|
1358
1516
|
return /*#__PURE__*/React.createElement("span", {
|
|
1359
|
-
className: "".concat(styles$
|
|
1517
|
+
className: "".concat(styles$a.resultsCount, " ").concat(className)
|
|
1360
1518
|
}, count, " ", label);
|
|
1361
1519
|
};
|
|
1362
1520
|
|
|
1363
|
-
var styles$
|
|
1521
|
+
var styles$9 = {"seeAllButton":"SeeAllLinkButton-module__seeAllButton___eAQqJ"};
|
|
1364
1522
|
|
|
1365
1523
|
var SeeAllLinkButton = function (_a) {
|
|
1366
1524
|
var onClick = _a.onClick,
|
|
@@ -1371,7 +1529,7 @@ var SeeAllLinkButton = function (_a) {
|
|
|
1371
1529
|
return /*#__PURE__*/React.createElement("button", {
|
|
1372
1530
|
type: "button",
|
|
1373
1531
|
onClick: onClick,
|
|
1374
|
-
className: "".concat(styles$
|
|
1532
|
+
className: "".concat(styles$9.seeAllButton, " ").concat(className)
|
|
1375
1533
|
}, label, /*#__PURE__*/React.createElement("svg", {
|
|
1376
1534
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1377
1535
|
viewBox: "0 0 24 24",
|
|
@@ -1386,7 +1544,7 @@ var SeeAllLinkButton = function (_a) {
|
|
|
1386
1544
|
})));
|
|
1387
1545
|
};
|
|
1388
1546
|
|
|
1389
|
-
var styles$
|
|
1547
|
+
var styles$8 = {"resultsColumn":"ResultsColumn-module__resultsColumn___AexF5","columnHeader":"ResultsColumn-module__columnHeader___-aUWU","columnTitle":"ResultsColumn-module__columnTitle___Gddr-","resultsList":"ResultsColumn-module__resultsList___BkEie","columnFooter":"ResultsColumn-module__columnFooter___4zJUp","loadingState":"ResultsColumn-module__loadingState___wme5F","errorState":"ResultsColumn-module__errorState___NI4fW","emptyState":"ResultsColumn-module__emptyState___tvefj","spinner":"ResultsColumn-module__spinner___hhntn"};
|
|
1390
1548
|
|
|
1391
1549
|
var ResultsColumn = function (_a) {
|
|
1392
1550
|
var title = _a.title,
|
|
@@ -1398,118 +1556,51 @@ var ResultsColumn = function (_a) {
|
|
|
1398
1556
|
_b = _a.className,
|
|
1399
1557
|
className = _b === void 0 ? '' : _b;
|
|
1400
1558
|
return /*#__PURE__*/React.createElement("div", {
|
|
1401
|
-
className: "".concat(styles$
|
|
1559
|
+
className: "".concat(styles$8.resultsColumn, " ").concat(className)
|
|
1402
1560
|
}, /*#__PURE__*/React.createElement("div", {
|
|
1403
|
-
className: styles$
|
|
1561
|
+
className: styles$8.columnHeader
|
|
1404
1562
|
}, /*#__PURE__*/React.createElement("h3", {
|
|
1405
|
-
className: styles$
|
|
1563
|
+
className: styles$8.columnTitle
|
|
1406
1564
|
}, title), !isLoading && !error && count > 0 && /*#__PURE__*/React.createElement(ResultsCount, {
|
|
1407
1565
|
count: count,
|
|
1408
1566
|
type: title.toLowerCase().includes('product') ? 'products' : 'content'
|
|
1409
1567
|
})), isLoading && /*#__PURE__*/React.createElement("div", {
|
|
1410
|
-
className: styles$
|
|
1568
|
+
className: styles$8.loadingState
|
|
1411
1569
|
}, /*#__PURE__*/React.createElement("div", {
|
|
1412
|
-
className: styles$
|
|
1570
|
+
className: styles$8.spinner,
|
|
1413
1571
|
"aria-label": "Loading..."
|
|
1414
1572
|
}), /*#__PURE__*/React.createElement("p", null, "Loading ", title.toLowerCase(), "...")), error && /*#__PURE__*/React.createElement("div", {
|
|
1415
|
-
className: styles$
|
|
1573
|
+
className: styles$8.errorState
|
|
1416
1574
|
}, /*#__PURE__*/React.createElement("p", null, error)), !isLoading && !error && count === 0 && /*#__PURE__*/React.createElement("div", {
|
|
1417
|
-
className: styles$
|
|
1575
|
+
className: styles$8.emptyState
|
|
1418
1576
|
}, /*#__PURE__*/React.createElement("p", null, "No ", title.toLowerCase(), " found")), !isLoading && !error && count > 0 && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("div", {
|
|
1419
|
-
className: styles$
|
|
1577
|
+
className: styles$8.resultsList
|
|
1420
1578
|
}, children), /*#__PURE__*/React.createElement("div", {
|
|
1421
|
-
className: styles$
|
|
1579
|
+
className: styles$8.columnFooter
|
|
1422
1580
|
}, /*#__PURE__*/React.createElement(SeeAllLinkButton, {
|
|
1423
1581
|
onClick: onSeeAll,
|
|
1424
1582
|
label: "See all ".concat(title.toLowerCase())
|
|
1425
1583
|
}))));
|
|
1426
1584
|
};
|
|
1427
1585
|
|
|
1428
|
-
var styles$
|
|
1586
|
+
var styles$7 = {"filtersPanel":"Filters-module__filtersPanel___T3SlK","filtersList":"Filters-module__filtersList___jPgkP","filterAccordion":"Filters-module__filterAccordion___Mf9Oe","accordionHeader":"Filters-module__accordionHeader___DtPJx","accordionTitle":"Filters-module__accordionTitle___YtHXW","accordionIcon":"Filters-module__accordionIcon___zRGrv","accordionIconExpanded":"Filters-module__accordionIconExpanded___pkkjv","accordionContent":"Filters-module__accordionContent___SqhIu","accordionSearch":"Filters-module__accordionSearch___V0A74","filterSearch":"Filters-module__filterSearch___Jc8AX","searchIcon":"Filters-module__searchIcon___pas1t","searchInput":"Filters-module__searchInput___nzOMK","clearButton":"Filters-module__clearButton___tHl6L","filterList":"Filters-module__filterList___TLqBu","filterItem":"Filters-module__filterItem___lA2rv","filterCheckboxInput":"Filters-module__filterCheckboxInput___NAcGz","filterCheckbox":"Filters-module__filterCheckbox___9In3q","filterLabel":"Filters-module__filterLabel___w-M8J","filterCount":"Filters-module__filterCount___XMsmy","filterItemMobile":"Filters-module__filterItemMobile___bqRMi","filterItemMobileRefined":"Filters-module__filterItemMobileRefined___VnLfK","filterItemDesktopNoCheckbox":"Filters-module__filterItemDesktopNoCheckbox___rX7Vy","filterItemDesktopRefined":"Filters-module__filterItemDesktopRefined___XaVGp","noResults":"Filters-module__noResults___ZdZ4V","loadingState":"Filters-module__loadingState___k6olr","spinner":"Filters-module__spinner___hvTaP","appliedFilters":"Filters-module__appliedFilters___hP4x-","appliedFiltersTitle":"Filters-module__appliedFiltersTitle___k6VbJ","appliedFiltersList":"Filters-module__appliedFiltersList___-fx9D","appliedFilterTag":"Filters-module__appliedFilterTag___hd5yc","tagLabel":"Filters-module__tagLabel___0ImQk","tagRemoveButton":"Filters-module__tagRemoveButton___JaA8M"};
|
|
1429
1587
|
|
|
1430
|
-
|
|
1431
|
-
|
|
1432
|
-
|
|
1433
|
-
|
|
1434
|
-
|
|
1435
|
-
|
|
1436
|
-
|
|
1437
|
-
|
|
1438
|
-
|
|
1439
|
-
return /*#__PURE__*/React.createElement("a", {
|
|
1440
|
-
href: url,
|
|
1441
|
-
className: "".concat(styles$5.contentCard, " ").concat(className),
|
|
1442
|
-
"aria-label": "View content: ".concat(title)
|
|
1443
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
1444
|
-
className: styles$5.contentMeta
|
|
1445
|
-
}, category && /*#__PURE__*/React.createElement("span", {
|
|
1446
|
-
className: styles$5.contentCategory
|
|
1447
|
-
}, category), meta && /*#__PURE__*/React.createElement("span", {
|
|
1448
|
-
className: styles$5.contentMetaText
|
|
1449
|
-
}, meta)), /*#__PURE__*/React.createElement("h3", {
|
|
1450
|
-
className: styles$5.contentTitle
|
|
1451
|
-
}, title), excerpt && /*#__PURE__*/React.createElement("p", {
|
|
1452
|
-
className: styles$5.contentExcerpt
|
|
1453
|
-
}, excerpt));
|
|
1588
|
+
/*!
|
|
1589
|
+
* Font Awesome Pro 6.7.2 by @fontawesome - https://fontawesome.com
|
|
1590
|
+
* License - https://fontawesome.com/license (Commercial License)
|
|
1591
|
+
* Copyright 2024 Fonticons, Inc.
|
|
1592
|
+
*/
|
|
1593
|
+
const faMagnifyingGlass = {
|
|
1594
|
+
prefix: 'fal',
|
|
1595
|
+
iconName: 'magnifying-glass',
|
|
1596
|
+
icon: [512, 512, [128269, "search"], "f002", "M384 208A176 176 0 1 0 32 208a176 176 0 1 0 352 0zM343.3 366C307 397.2 259.7 416 208 416C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208c0 51.7-18.8 99-50 135.3L507.3 484.7c6.2 6.2 6.2 16.4 0 22.6s-16.4 6.2-22.6 0L343.3 366z"]
|
|
1454
1597
|
};
|
|
1455
|
-
|
|
1456
|
-
|
|
1457
|
-
|
|
1458
|
-
|
|
1459
|
-
var query = _a.query,
|
|
1460
|
-
products = _a.products,
|
|
1461
|
-
contents = _a.contents,
|
|
1462
|
-
isLoadingProducts = _a.isLoadingProducts,
|
|
1463
|
-
isLoadingContents = _a.isLoadingContents,
|
|
1464
|
-
productsError = _a.productsError,
|
|
1465
|
-
contentsError = _a.contentsError,
|
|
1466
|
-
onSeeAllProducts = _a.onSeeAllProducts,
|
|
1467
|
-
onSeeAllContents = _a.onSeeAllContents,
|
|
1468
|
-
onSeeAllCombined = _a.onSeeAllCombined;
|
|
1469
|
-
var totalResults = products.length + contents.length;
|
|
1470
|
-
var hasResults = totalResults > 0;
|
|
1471
|
-
var showCombinedButton = hasResults && !isLoadingProducts && !isLoadingContents;
|
|
1472
|
-
// Show first 3 results from each category
|
|
1473
|
-
var displayProducts = products.slice(0, 3);
|
|
1474
|
-
var displayContents = contents.slice(0, 3);
|
|
1475
|
-
return /*#__PURE__*/React.createElement("div", {
|
|
1476
|
-
className: styles$4.instantResultsLayout
|
|
1477
|
-
}, query && /*#__PURE__*/React.createElement("div", {
|
|
1478
|
-
className: styles$4.queryHeader
|
|
1479
|
-
}, /*#__PURE__*/React.createElement("h2", {
|
|
1480
|
-
className: styles$4.queryText
|
|
1481
|
-
}, "Results for ", /*#__PURE__*/React.createElement("span", {
|
|
1482
|
-
className: styles$4.queryHighlight
|
|
1483
|
-
}, "\"", query, "\"")), showCombinedButton && /*#__PURE__*/React.createElement(SeeAllLinkButton, {
|
|
1484
|
-
onClick: onSeeAllCombined,
|
|
1485
|
-
label: "See all results"
|
|
1486
|
-
})), /*#__PURE__*/React.createElement("div", {
|
|
1487
|
-
className: styles$4.columnsGrid
|
|
1488
|
-
}, /*#__PURE__*/React.createElement(ResultsColumn, {
|
|
1489
|
-
title: "Products",
|
|
1490
|
-
count: products.length,
|
|
1491
|
-
isLoading: isLoadingProducts,
|
|
1492
|
-
error: productsError,
|
|
1493
|
-
onSeeAll: onSeeAllProducts
|
|
1494
|
-
}, displayProducts.map(function (product) {
|
|
1495
|
-
return /*#__PURE__*/React.createElement(ProductCardHorizontal, _extends({
|
|
1496
|
-
key: product.id
|
|
1497
|
-
}, product));
|
|
1498
|
-
})), /*#__PURE__*/React.createElement(ResultsColumn, {
|
|
1499
|
-
title: "Content",
|
|
1500
|
-
count: contents.length,
|
|
1501
|
-
isLoading: isLoadingContents,
|
|
1502
|
-
error: contentsError,
|
|
1503
|
-
onSeeAll: onSeeAllContents
|
|
1504
|
-
}, displayContents.map(function (content) {
|
|
1505
|
-
return /*#__PURE__*/React.createElement(ContentCardHorizontal, _extends({
|
|
1506
|
-
key: content.id
|
|
1507
|
-
}, content));
|
|
1508
|
-
}))));
|
|
1598
|
+
const faXmark = {
|
|
1599
|
+
prefix: 'fal',
|
|
1600
|
+
iconName: 'xmark',
|
|
1601
|
+
icon: [384, 512, [128473, 10005, 10006, 10060, 215, "close", "multiply", "remove", "times"], "f00d", "M324.5 411.1c6.2 6.2 16.4 6.2 22.6 0s6.2-16.4 0-22.6L214.6 256 347.1 123.5c6.2-6.2 6.2-16.4 0-22.6s-16.4-6.2-22.6 0L192 233.4 59.6 100.9c-6.2-6.2-16.4-6.2-22.6 0s-6.2 16.4 0 22.6L169.4 256 36.9 388.5c-6.2 6.2-6.2 16.4 0 22.6s16.4 6.2 22.6 0L192 278.6 324.5 411.1z"]
|
|
1509
1602
|
};
|
|
1510
1603
|
|
|
1511
|
-
var styles$3 = {"filtersPanel":"Filters-module__filtersPanel___T3SlK","filtersPanelHeader":"Filters-module__filtersPanelHeader___XOBTi","filtersPanelTitle":"Filters-module__filtersPanelTitle___Mnn10","filtersList":"Filters-module__filtersList___jPgkP","filterAccordion":"Filters-module__filterAccordion___Mf9Oe","accordionHeader":"Filters-module__accordionHeader___DtPJx","accordionTitle":"Filters-module__accordionTitle___YtHXW","accordionIcon":"Filters-module__accordionIcon___zRGrv","accordionIconExpanded":"Filters-module__accordionIconExpanded___pkkjv","accordionContent":"Filters-module__accordionContent___SqhIu","accordionSearch":"Filters-module__accordionSearch___V0A74","filterSearch":"Filters-module__filterSearch___Jc8AX","searchIcon":"Filters-module__searchIcon___pas1t","searchInput":"Filters-module__searchInput___nzOMK","clearButton":"Filters-module__clearButton___tHl6L","filterList":"Filters-module__filterList___TLqBu","filterItem":"Filters-module__filterItem___lA2rv","filterCheckbox":"Filters-module__filterCheckbox___9In3q","filterLabel":"Filters-module__filterLabel___w-M8J","filterCount":"Filters-module__filterCount___XMsmy","noResults":"Filters-module__noResults___ZdZ4V","loadingState":"Filters-module__loadingState___k6olr","spinner":"Filters-module__spinner___hvTaP","appliedFilters":"Filters-module__appliedFilters___hP4x-","appliedFiltersHeader":"Filters-module__appliedFiltersHeader___w-ZBN","appliedFiltersTitle":"Filters-module__appliedFiltersTitle___k6VbJ","appliedFiltersCount":"Filters-module__appliedFiltersCount___UQikX","clearAllButton":"Filters-module__clearAllButton___yviGV","appliedFiltersList":"Filters-module__appliedFiltersList___-fx9D","appliedFilterTag":"Filters-module__appliedFilterTag___hd5yc","tagLabel":"Filters-module__tagLabel___0ImQk","tagRemoveButton":"Filters-module__tagRemoveButton___JaA8M"};
|
|
1512
|
-
|
|
1513
1604
|
/**
|
|
1514
1605
|
* FilterSearch - Search input for filtering facet values
|
|
1515
1606
|
*/
|
|
@@ -1526,61 +1617,51 @@ var FilterSearch = function (_a) {
|
|
|
1526
1617
|
onChange("");
|
|
1527
1618
|
};
|
|
1528
1619
|
return /*#__PURE__*/React.createElement("div", {
|
|
1529
|
-
className: "".concat(styles$
|
|
1530
|
-
}, /*#__PURE__*/React.createElement(
|
|
1531
|
-
|
|
1532
|
-
|
|
1533
|
-
height: "16",
|
|
1534
|
-
viewBox: "0 0 16 16",
|
|
1535
|
-
fill: "none",
|
|
1536
|
-
xmlns: "http://www.w3.org/2000/svg",
|
|
1620
|
+
className: "".concat(styles$7.filterSearch, " ").concat(className || "")
|
|
1621
|
+
}, !value && /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
1622
|
+
icon: faMagnifyingGlass,
|
|
1623
|
+
className: styles$7.searchIcon,
|
|
1537
1624
|
"aria-hidden": "true"
|
|
1538
|
-
}, /*#__PURE__*/React.createElement("
|
|
1539
|
-
d: "M7 13C10.3137 13 13 10.3137 13 7C13 3.68629 10.3137 1 7 1C3.68629 1 1 3.68629 1 7C1 10.3137 3.68629 13 7 13Z",
|
|
1540
|
-
stroke: "currentColor",
|
|
1541
|
-
strokeWidth: "2",
|
|
1542
|
-
strokeLinecap: "round",
|
|
1543
|
-
strokeLinejoin: "round"
|
|
1544
|
-
}), /*#__PURE__*/React.createElement("path", {
|
|
1545
|
-
d: "M15 15L11.5 11.5",
|
|
1546
|
-
stroke: "currentColor",
|
|
1547
|
-
strokeWidth: "2",
|
|
1548
|
-
strokeLinecap: "round",
|
|
1549
|
-
strokeLinejoin: "round"
|
|
1550
|
-
})), /*#__PURE__*/React.createElement("input", {
|
|
1625
|
+
}), /*#__PURE__*/React.createElement("input", {
|
|
1551
1626
|
type: "text",
|
|
1552
1627
|
value: value,
|
|
1553
1628
|
onChange: handleChange,
|
|
1554
1629
|
placeholder: placeholder,
|
|
1555
|
-
className: styles$
|
|
1630
|
+
className: styles$7.searchInput,
|
|
1556
1631
|
"aria-label": placeholder
|
|
1557
1632
|
}), value && /*#__PURE__*/React.createElement("button", {
|
|
1558
1633
|
type: "button",
|
|
1559
1634
|
onClick: handleClear,
|
|
1560
|
-
className: styles$
|
|
1635
|
+
className: styles$7.clearButton,
|
|
1561
1636
|
"aria-label": "Clear search"
|
|
1562
|
-
}, /*#__PURE__*/React.createElement(
|
|
1563
|
-
|
|
1564
|
-
|
|
1565
|
-
viewBox: "0 0 12 12",
|
|
1566
|
-
fill: "none",
|
|
1567
|
-
xmlns: "http://www.w3.org/2000/svg"
|
|
1568
|
-
}, /*#__PURE__*/React.createElement("path", {
|
|
1569
|
-
d: "M9 3L3 9M3 3L9 9",
|
|
1570
|
-
stroke: "currentColor",
|
|
1571
|
-
strokeWidth: "2",
|
|
1572
|
-
strokeLinecap: "round",
|
|
1573
|
-
strokeLinejoin: "round"
|
|
1574
|
-
}))));
|
|
1637
|
+
}, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
1638
|
+
icon: faXmark$1
|
|
1639
|
+
})));
|
|
1575
1640
|
};
|
|
1576
1641
|
|
|
1642
|
+
var CheckIcon = function () {
|
|
1643
|
+
return /*#__PURE__*/React.createElement("svg", {
|
|
1644
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1645
|
+
width: "9",
|
|
1646
|
+
height: "7",
|
|
1647
|
+
viewBox: "0 0 9 7",
|
|
1648
|
+
fill: "none"
|
|
1649
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
1650
|
+
d: "M8.73456 0.104504C9.02185 0.279451 9.08614 0.615889 8.8772 0.856441L3.7342 6.77774C3.62371 6.90558 3.45294 6.98465 3.2641 6.99811C3.07525 7.01156 2.89244 6.95269 2.75984 6.84166L0.188342 4.68846C-0.0627808 4.47819 -0.0627808 4.13671 0.188342 3.92643C0.439465 3.71616 0.847289 3.71616 1.09841 3.92643L3.13753 5.63385L7.83856 0.222257C8.04749 -0.0182957 8.44929 -0.0721258 8.73658 0.102822L8.73456 0.104504Z",
|
|
1651
|
+
fill: "#E2001A"
|
|
1652
|
+
}));
|
|
1653
|
+
};
|
|
1577
1654
|
/**
|
|
1578
1655
|
* FilterItem - Individual facet item with checkbox and count
|
|
1579
1656
|
*/
|
|
1580
1657
|
var FilterItem = function (_a) {
|
|
1581
1658
|
var value = _a.value,
|
|
1582
1659
|
onToggle = _a.onToggle,
|
|
1583
|
-
className = _a.className
|
|
1660
|
+
className = _a.className,
|
|
1661
|
+
_b = _a.variant,
|
|
1662
|
+
variant = _b === void 0 ? 'desktop' : _b,
|
|
1663
|
+
_c = _a.showCheckbox,
|
|
1664
|
+
showCheckbox = _c === void 0 ? true : _c;
|
|
1584
1665
|
var handleChange = function () {
|
|
1585
1666
|
onToggle(value.value);
|
|
1586
1667
|
};
|
|
@@ -1590,19 +1671,50 @@ var FilterItem = function (_a) {
|
|
|
1590
1671
|
onToggle(value.value);
|
|
1591
1672
|
}
|
|
1592
1673
|
};
|
|
1674
|
+
// Mobile variant: Plain button (no checkbox)
|
|
1675
|
+
if (variant === 'mobile') {
|
|
1676
|
+
return /*#__PURE__*/React.createElement("button", {
|
|
1677
|
+
type: "button",
|
|
1678
|
+
className: "".concat(styles$7.filterItemMobile, " ").concat(value.isRefined ? styles$7.filterItemMobileRefined : '', " ").concat(className || ""),
|
|
1679
|
+
onClick: handleChange,
|
|
1680
|
+
onKeyDown: handleKeyDown,
|
|
1681
|
+
"aria-pressed": value.isRefined
|
|
1682
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
1683
|
+
className: styles$7.filterLabel
|
|
1684
|
+
}, value.value), value.count > 0 && /*#__PURE__*/React.createElement("span", {
|
|
1685
|
+
className: styles$7.filterCount
|
|
1686
|
+
}, "(", value.count, ")"));
|
|
1687
|
+
}
|
|
1688
|
+
// Desktop without checkbox (Content tab): Plain button with red text when selected
|
|
1689
|
+
if (!showCheckbox) {
|
|
1690
|
+
return /*#__PURE__*/React.createElement("button", {
|
|
1691
|
+
type: "button",
|
|
1692
|
+
className: "".concat(styles$7.filterItemDesktopNoCheckbox, " ").concat(value.isRefined ? styles$7.filterItemDesktopRefined : '', " ").concat(className || ""),
|
|
1693
|
+
onClick: handleChange,
|
|
1694
|
+
onKeyDown: handleKeyDown,
|
|
1695
|
+
"aria-pressed": value.isRefined
|
|
1696
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
1697
|
+
className: styles$7.filterLabel
|
|
1698
|
+
}, value.value), value.count > 0 && /*#__PURE__*/React.createElement("span", {
|
|
1699
|
+
className: styles$7.filterCount
|
|
1700
|
+
}, "(", value.count, ")"));
|
|
1701
|
+
}
|
|
1702
|
+
// Desktop with checkbox (Products tab): Multi-select checkboxes
|
|
1593
1703
|
return /*#__PURE__*/React.createElement("label", {
|
|
1594
|
-
className: "".concat(styles$
|
|
1704
|
+
className: "".concat(styles$7.filterItem, " ").concat(className || ""),
|
|
1595
1705
|
onKeyDown: handleKeyDown
|
|
1596
1706
|
}, /*#__PURE__*/React.createElement("input", {
|
|
1597
1707
|
type: "checkbox",
|
|
1598
1708
|
checked: value.isRefined,
|
|
1599
1709
|
onChange: handleChange,
|
|
1600
|
-
className: styles$
|
|
1710
|
+
className: styles$7.filterCheckboxInput,
|
|
1601
1711
|
"aria-label": "".concat(value.value, " (").concat(value.count, " results)")
|
|
1602
|
-
}), /*#__PURE__*/React.createElement("
|
|
1603
|
-
className: styles$
|
|
1712
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
1713
|
+
className: styles$7.filterCheckbox
|
|
1714
|
+
}, value.isRefined && /*#__PURE__*/React.createElement(CheckIcon, null)), /*#__PURE__*/React.createElement("span", {
|
|
1715
|
+
className: styles$7.filterLabel
|
|
1604
1716
|
}, value.value), /*#__PURE__*/React.createElement("span", {
|
|
1605
|
-
className: styles$
|
|
1717
|
+
className: styles$7.filterCount
|
|
1606
1718
|
}, "(", value.count, ")"));
|
|
1607
1719
|
};
|
|
1608
1720
|
|
|
@@ -1614,10 +1726,14 @@ var FilterAccordion = function (_a) {
|
|
|
1614
1726
|
isExpanded = _a.isExpanded,
|
|
1615
1727
|
onToggle = _a.onToggle,
|
|
1616
1728
|
onValueToggle = _a.onValueToggle,
|
|
1617
|
-
className = _a.className
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1729
|
+
className = _a.className,
|
|
1730
|
+
_b = _a.variant,
|
|
1731
|
+
variant = _b === void 0 ? 'desktop' : _b,
|
|
1732
|
+
_c = _a.showCheckbox,
|
|
1733
|
+
showCheckbox = _c === void 0 ? true : _c;
|
|
1734
|
+
var _d = useState(""),
|
|
1735
|
+
searchQuery = _d[0],
|
|
1736
|
+
setSearchQuery = _d[1];
|
|
1621
1737
|
// Filter facet values based on search query
|
|
1622
1738
|
var filteredValues = useMemo(function () {
|
|
1623
1739
|
if (!searchQuery.trim()) {
|
|
@@ -1645,18 +1761,18 @@ var FilterAccordion = function (_a) {
|
|
|
1645
1761
|
onValueToggle(facet.attribute, value);
|
|
1646
1762
|
};
|
|
1647
1763
|
return /*#__PURE__*/React.createElement("div", {
|
|
1648
|
-
className: "".concat(styles$
|
|
1764
|
+
className: "".concat(styles$7.filterAccordion, " ").concat(className || "")
|
|
1649
1765
|
}, /*#__PURE__*/React.createElement("button", {
|
|
1650
1766
|
type: "button",
|
|
1651
|
-
className: "".concat(styles$
|
|
1767
|
+
className: "".concat(styles$7.accordionHeader, " ").concat(isExpanded ? styles$7.accordionHeaderExpanded : ""),
|
|
1652
1768
|
onClick: handleToggle,
|
|
1653
1769
|
onKeyDown: handleKeyDown,
|
|
1654
1770
|
"aria-expanded": isExpanded,
|
|
1655
1771
|
"aria-controls": "accordion-".concat(facet.id)
|
|
1656
1772
|
}, /*#__PURE__*/React.createElement("span", {
|
|
1657
|
-
className: styles$
|
|
1773
|
+
className: styles$7.accordionTitle
|
|
1658
1774
|
}, facet.label), /*#__PURE__*/React.createElement("svg", {
|
|
1659
|
-
className: "".concat(styles$
|
|
1775
|
+
className: "".concat(styles$7.accordionIcon, " ").concat(isExpanded ? styles$7.accordionIconExpanded : ""),
|
|
1660
1776
|
width: "16",
|
|
1661
1777
|
height: "16",
|
|
1662
1778
|
viewBox: "0 0 16 16",
|
|
@@ -1671,23 +1787,25 @@ var FilterAccordion = function (_a) {
|
|
|
1671
1787
|
strokeLinejoin: "round"
|
|
1672
1788
|
}))), isExpanded && /*#__PURE__*/React.createElement("div", {
|
|
1673
1789
|
id: "accordion-".concat(facet.id),
|
|
1674
|
-
className: styles$
|
|
1675
|
-
}, facet.searchable && facet.values.length > 5 && /*#__PURE__*/React.createElement("div", {
|
|
1676
|
-
className: styles$
|
|
1790
|
+
className: styles$7.accordionContent
|
|
1791
|
+
}, variant === 'desktop' && facet.searchable && facet.values.length > 5 && /*#__PURE__*/React.createElement("div", {
|
|
1792
|
+
className: styles$7.accordionSearch
|
|
1677
1793
|
}, /*#__PURE__*/React.createElement(FilterSearch, {
|
|
1678
1794
|
value: searchQuery,
|
|
1679
1795
|
onChange: setSearchQuery,
|
|
1680
1796
|
placeholder: "Search"
|
|
1681
1797
|
})), /*#__PURE__*/React.createElement("div", {
|
|
1682
|
-
className: styles$
|
|
1798
|
+
className: styles$7.filterList
|
|
1683
1799
|
}, filteredValues.length > 0 ? filteredValues.map(function (value) {
|
|
1684
1800
|
return /*#__PURE__*/React.createElement(FilterItem, {
|
|
1685
1801
|
key: value.value,
|
|
1686
1802
|
value: value,
|
|
1687
|
-
onToggle: handleValueToggle
|
|
1803
|
+
onToggle: handleValueToggle,
|
|
1804
|
+
variant: variant,
|
|
1805
|
+
showCheckbox: showCheckbox
|
|
1688
1806
|
});
|
|
1689
1807
|
}) : /*#__PURE__*/React.createElement("div", {
|
|
1690
|
-
className: styles$
|
|
1808
|
+
className: styles$7.noResults
|
|
1691
1809
|
}, "No results found"))));
|
|
1692
1810
|
};
|
|
1693
1811
|
|
|
@@ -1710,26 +1828,26 @@ var AppliedFilterTag = function (_a) {
|
|
|
1710
1828
|
}
|
|
1711
1829
|
};
|
|
1712
1830
|
return /*#__PURE__*/React.createElement("div", {
|
|
1713
|
-
className: "".concat(styles$
|
|
1831
|
+
className: "".concat(styles$7.appliedFilterTag, " ").concat(className || "")
|
|
1714
1832
|
}, /*#__PURE__*/React.createElement("span", {
|
|
1715
|
-
className: styles$
|
|
1833
|
+
className: styles$7.tagLabel
|
|
1716
1834
|
}, label || value), /*#__PURE__*/React.createElement("button", {
|
|
1717
1835
|
type: "button",
|
|
1718
1836
|
onClick: handleRemove,
|
|
1719
1837
|
onKeyDown: handleKeyDown,
|
|
1720
|
-
className: styles$
|
|
1838
|
+
className: styles$7.tagRemoveButton,
|
|
1721
1839
|
"aria-label": "Remove ".concat(label || value, " filter")
|
|
1722
1840
|
}, /*#__PURE__*/React.createElement("svg", {
|
|
1723
|
-
width: "
|
|
1724
|
-
height: "
|
|
1725
|
-
viewBox: "0 0
|
|
1841
|
+
width: "10",
|
|
1842
|
+
height: "10",
|
|
1843
|
+
viewBox: "0 0 10 10",
|
|
1726
1844
|
fill: "none",
|
|
1727
1845
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1728
1846
|
"aria-hidden": "true"
|
|
1729
1847
|
}, /*#__PURE__*/React.createElement("path", {
|
|
1730
|
-
d: "
|
|
1848
|
+
d: "M8 2L2 8M2 2L8 8",
|
|
1731
1849
|
stroke: "currentColor",
|
|
1732
|
-
strokeWidth: "
|
|
1850
|
+
strokeWidth: "1.5",
|
|
1733
1851
|
strokeLinecap: "round",
|
|
1734
1852
|
strokeLinejoin: "round"
|
|
1735
1853
|
}))));
|
|
@@ -1740,9 +1858,9 @@ var AppliedFilterTag = function (_a) {
|
|
|
1740
1858
|
*/
|
|
1741
1859
|
var AppliedFilters = function (_a) {
|
|
1742
1860
|
var facets = _a.facets,
|
|
1743
|
-
onRemove = _a.onRemove
|
|
1744
|
-
|
|
1745
|
-
className = _a.className;
|
|
1861
|
+
onRemove = _a.onRemove;
|
|
1862
|
+
_a.onClearAll;
|
|
1863
|
+
var className = _a.className;
|
|
1746
1864
|
// Extract all refined (selected) filters
|
|
1747
1865
|
var appliedFilters = useMemo(function () {
|
|
1748
1866
|
var filters = [];
|
|
@@ -1764,31 +1882,12 @@ var AppliedFilters = function (_a) {
|
|
|
1764
1882
|
if (appliedFilters.length === 0) {
|
|
1765
1883
|
return null;
|
|
1766
1884
|
}
|
|
1767
|
-
var handleClearAll = function () {
|
|
1768
|
-
if (onClearAll) {
|
|
1769
|
-
onClearAll();
|
|
1770
|
-
} else {
|
|
1771
|
-
// If no clearAll handler, remove each filter individually
|
|
1772
|
-
appliedFilters.forEach(function (filter) {
|
|
1773
|
-
onRemove(filter.attribute, filter.value);
|
|
1774
|
-
});
|
|
1775
|
-
}
|
|
1776
|
-
};
|
|
1777
1885
|
return /*#__PURE__*/React.createElement("div", {
|
|
1778
|
-
className: "".concat(styles$
|
|
1779
|
-
}, /*#__PURE__*/React.createElement("div", {
|
|
1780
|
-
className: styles$3.appliedFiltersHeader
|
|
1886
|
+
className: "".concat(styles$7.appliedFilters, " ").concat(className || "")
|
|
1781
1887
|
}, /*#__PURE__*/React.createElement("h4", {
|
|
1782
|
-
className: styles$
|
|
1783
|
-
}, "Applied filters",
|
|
1784
|
-
className: styles$
|
|
1785
|
-
}, "(", appliedFilters.length, ")")), appliedFilters.length > 1 && /*#__PURE__*/React.createElement("button", {
|
|
1786
|
-
type: "button",
|
|
1787
|
-
onClick: handleClearAll,
|
|
1788
|
-
className: styles$3.clearAllButton,
|
|
1789
|
-
"aria-label": "Clear all filters"
|
|
1790
|
-
}, "Clear all")), /*#__PURE__*/React.createElement("div", {
|
|
1791
|
-
className: styles$3.appliedFiltersList
|
|
1888
|
+
className: styles$7.appliedFiltersTitle
|
|
1889
|
+
}, "Applied filters"), /*#__PURE__*/React.createElement("div", {
|
|
1890
|
+
className: styles$7.appliedFiltersList
|
|
1792
1891
|
}, appliedFilters.map(function (filter) {
|
|
1793
1892
|
return /*#__PURE__*/React.createElement(AppliedFilterTag, {
|
|
1794
1893
|
key: "".concat(filter.attribute, "-").concat(filter.value),
|
|
@@ -1802,15 +1901,23 @@ var AppliedFilters = function (_a) {
|
|
|
1802
1901
|
|
|
1803
1902
|
/**
|
|
1804
1903
|
* FiltersPanel - Main container for all filters
|
|
1904
|
+
*
|
|
1905
|
+
* Fully controlled component - renders based on facets prop.
|
|
1906
|
+
* When facets change (e.g., after API refetch), component re-renders with new data.
|
|
1907
|
+
* Accordion expansion state persists across refetches, with new facets respecting defaultExpanded.
|
|
1805
1908
|
*/
|
|
1806
1909
|
var FiltersPanel = function (_a) {
|
|
1807
1910
|
var facets = _a.facets,
|
|
1808
1911
|
onFacetToggle = _a.onFacetToggle,
|
|
1809
1912
|
_b = _a.isLoading,
|
|
1810
1913
|
isLoading = _b === void 0 ? false : _b,
|
|
1811
|
-
className = _a.className
|
|
1812
|
-
|
|
1813
|
-
|
|
1914
|
+
className = _a.className,
|
|
1915
|
+
_c = _a.variant,
|
|
1916
|
+
variant = _c === void 0 ? 'desktop' : _c,
|
|
1917
|
+
_d = _a.showCheckbox,
|
|
1918
|
+
showCheckbox = _d === void 0 ? true : _d;
|
|
1919
|
+
// Track which accordions are expanded (transient UI state)
|
|
1920
|
+
var _e = useState(function () {
|
|
1814
1921
|
// Initialize with default expanded facets
|
|
1815
1922
|
var expanded = new Set();
|
|
1816
1923
|
facets.forEach(function (facet) {
|
|
@@ -1820,8 +1927,30 @@ var FiltersPanel = function (_a) {
|
|
|
1820
1927
|
});
|
|
1821
1928
|
return expanded;
|
|
1822
1929
|
}),
|
|
1823
|
-
expandedAccordions =
|
|
1824
|
-
setExpandedAccordions =
|
|
1930
|
+
expandedAccordions = _e[0],
|
|
1931
|
+
setExpandedAccordions = _e[1];
|
|
1932
|
+
// Sync expansion state when facets change (e.g., new facets appear after refetch)
|
|
1933
|
+
useEffect(function () {
|
|
1934
|
+
setExpandedAccordions(function (prev) {
|
|
1935
|
+
var next = new Set(prev);
|
|
1936
|
+
// Add new facets with defaultExpanded
|
|
1937
|
+
facets.forEach(function (facet) {
|
|
1938
|
+
if (facet.defaultExpanded && !next.has(facet.id)) {
|
|
1939
|
+
next.add(facet.id);
|
|
1940
|
+
}
|
|
1941
|
+
});
|
|
1942
|
+
// Remove facets that no longer exist
|
|
1943
|
+
var currentFacetIds = new Set(facets.map(function (f) {
|
|
1944
|
+
return f.id;
|
|
1945
|
+
}));
|
|
1946
|
+
next.forEach(function (id) {
|
|
1947
|
+
if (!currentFacetIds.has(id)) {
|
|
1948
|
+
next.delete(id);
|
|
1949
|
+
}
|
|
1950
|
+
});
|
|
1951
|
+
return next;
|
|
1952
|
+
});
|
|
1953
|
+
}, [facets]);
|
|
1825
1954
|
var handleAccordionToggle = useCallback(function (facetId) {
|
|
1826
1955
|
setExpandedAccordions(function (prev) {
|
|
1827
1956
|
var next = new Set(prev);
|
|
@@ -1851,32 +1980,24 @@ var FiltersPanel = function (_a) {
|
|
|
1851
1980
|
}, [facets, onFacetToggle]);
|
|
1852
1981
|
if (isLoading) {
|
|
1853
1982
|
return /*#__PURE__*/React.createElement("div", {
|
|
1854
|
-
className: "".concat(styles$
|
|
1983
|
+
className: "".concat(styles$7.filtersPanel, " ").concat(className || "")
|
|
1855
1984
|
}, /*#__PURE__*/React.createElement("div", {
|
|
1856
|
-
className: styles$
|
|
1857
|
-
}, /*#__PURE__*/React.createElement("h3", {
|
|
1858
|
-
className: styles$3.filtersPanelTitle
|
|
1859
|
-
}, "Filters")), /*#__PURE__*/React.createElement("div", {
|
|
1860
|
-
className: styles$3.loadingState
|
|
1985
|
+
className: styles$7.loadingState
|
|
1861
1986
|
}, /*#__PURE__*/React.createElement("div", {
|
|
1862
|
-
className: styles$
|
|
1987
|
+
className: styles$7.spinner
|
|
1863
1988
|
}), /*#__PURE__*/React.createElement("p", null, "Loading filters...")));
|
|
1864
1989
|
}
|
|
1865
1990
|
if (!facets || facets.length === 0) {
|
|
1866
1991
|
return null;
|
|
1867
1992
|
}
|
|
1868
1993
|
return /*#__PURE__*/React.createElement("div", {
|
|
1869
|
-
className: "".concat(styles$
|
|
1870
|
-
}, /*#__PURE__*/React.createElement(
|
|
1871
|
-
className: styles$3.filtersPanelHeader
|
|
1872
|
-
}, /*#__PURE__*/React.createElement("h3", {
|
|
1873
|
-
className: styles$3.filtersPanelTitle
|
|
1874
|
-
}, "Filters")), /*#__PURE__*/React.createElement(AppliedFilters, {
|
|
1994
|
+
className: "".concat(styles$7.filtersPanel, " ").concat(className || "")
|
|
1995
|
+
}, showCheckbox && /*#__PURE__*/React.createElement(AppliedFilters, {
|
|
1875
1996
|
facets: facets,
|
|
1876
1997
|
onRemove: handleRemoveFilter,
|
|
1877
1998
|
onClearAll: handleClearAll
|
|
1878
1999
|
}), /*#__PURE__*/React.createElement("div", {
|
|
1879
|
-
className: styles$
|
|
2000
|
+
className: styles$7.filtersList
|
|
1880
2001
|
}, facets.map(function (facet) {
|
|
1881
2002
|
return /*#__PURE__*/React.createElement(FilterAccordion, {
|
|
1882
2003
|
key: facet.id,
|
|
@@ -1885,12 +2006,87 @@ var FiltersPanel = function (_a) {
|
|
|
1885
2006
|
onToggle: function () {
|
|
1886
2007
|
return handleAccordionToggle(facet.id);
|
|
1887
2008
|
},
|
|
1888
|
-
onValueToggle: handleValueToggle
|
|
2009
|
+
onValueToggle: handleValueToggle,
|
|
2010
|
+
variant: variant,
|
|
2011
|
+
showCheckbox: showCheckbox
|
|
1889
2012
|
});
|
|
1890
2013
|
})));
|
|
1891
2014
|
};
|
|
1892
2015
|
|
|
1893
|
-
var styles$
|
|
2016
|
+
var styles$6 = {"productCardVertical":"ProductCardVertical-module__productCardVertical___kXgmt","productCardVertical--hover":"ProductCardVertical-module__productCardVertical--hover___8Nsyp","productCardVertical__button":"ProductCardVertical-module__productCardVertical__button___oQPJG","productCardVertical--focus":"ProductCardVertical-module__productCardVertical--focus___8U57I","productCardVertical__imageWrapper":"ProductCardVertical-module__productCardVertical__imageWrapper___SgKoZ","productCardVertical__image":"ProductCardVertical-module__productCardVertical__image___kg-QU","productCardVertical__content":"ProductCardVertical-module__productCardVertical__content___sZdOs","productCardVertical__title":"ProductCardVertical-module__productCardVertical__title___PPKWb","productCardVertical__description":"ProductCardVertical-module__productCardVertical__description___Ai90p","productCardVertical__footer":"ProductCardVertical-module__productCardVertical__footer___rv6BH"};
|
|
2017
|
+
|
|
2018
|
+
/**
|
|
2019
|
+
* ProductCardVertical - Vertical product card for grid layouts
|
|
2020
|
+
*
|
|
2021
|
+
* Used in full results view with 4-column grid (desktop) or 2-column grid (mobile).
|
|
2022
|
+
* Figma spec: Default (no shadow) → Hover (shadow + grey button) → Focus (border + shadow)
|
|
2023
|
+
*
|
|
2024
|
+
* @example
|
|
2025
|
+
* ```tsx
|
|
2026
|
+
* <ProductCardVertical
|
|
2027
|
+
* title="TURBOVAC i - High vacuum turbopump"
|
|
2028
|
+
* url="/products/turbovac-i"
|
|
2029
|
+
* imageUrl="/assets/search-product.png"
|
|
2030
|
+
* productId="21312VISH"
|
|
2031
|
+
* description="Premium high-performance turbomolecular pump"
|
|
2032
|
+
* buttonLabel="BUY ONLINE"
|
|
2033
|
+
* />
|
|
2034
|
+
* ```
|
|
2035
|
+
*/
|
|
2036
|
+
var ProductCardVertical = function (_a) {
|
|
2037
|
+
var _b;
|
|
2038
|
+
var id = _a.id,
|
|
2039
|
+
title = _a.title,
|
|
2040
|
+
url = _a.url,
|
|
2041
|
+
imageUrl = _a.imageUrl;
|
|
2042
|
+
_a.productId;
|
|
2043
|
+
var description = _a.description,
|
|
2044
|
+
_c = _a.buttonLabel,
|
|
2045
|
+
buttonLabel = _c === void 0 ? 'BUY ONLINE' : _c,
|
|
2046
|
+
onButtonClick = _a.onButtonClick,
|
|
2047
|
+
className = _a.className,
|
|
2048
|
+
_d = _a.variant,
|
|
2049
|
+
variant = _d === void 0 ? 'desktop' : _d,
|
|
2050
|
+
forceState = _a["data-force-state"];
|
|
2051
|
+
var handleButtonClick = function (e) {
|
|
2052
|
+
e.preventDefault(); // Prevent card link navigation
|
|
2053
|
+
e.stopPropagation(); // Stop event bubbling
|
|
2054
|
+
onButtonClick === null || onButtonClick === void 0 ? void 0 : onButtonClick();
|
|
2055
|
+
};
|
|
2056
|
+
var cardClasses = classNames(styles$6.productCardVertical, styles$6["productCardVertical--".concat(variant)], (_b = {}, _b[styles$6['productCardVertical--hover']] = forceState === 'hover', _b[styles$6['productCardVertical--focus']] = forceState === 'focus', _b), className);
|
|
2057
|
+
return /*#__PURE__*/React.createElement("a", {
|
|
2058
|
+
href: url,
|
|
2059
|
+
className: cardClasses,
|
|
2060
|
+
"aria-label": "View product: ".concat(title),
|
|
2061
|
+
"data-product-id": id
|
|
2062
|
+
}, imageUrl && /*#__PURE__*/React.createElement("div", {
|
|
2063
|
+
className: styles$6.productCardVertical__imageWrapper
|
|
2064
|
+
}, /*#__PURE__*/React.createElement(Image, {
|
|
2065
|
+
src: imageUrl,
|
|
2066
|
+
alt: title,
|
|
2067
|
+
className: styles$6.productCardVertical__image,
|
|
2068
|
+
objectFit: "contain",
|
|
2069
|
+
objectPosition: "center",
|
|
2070
|
+
loading: "lazy"
|
|
2071
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
2072
|
+
className: styles$6.productCardVertical__content
|
|
2073
|
+
}, /*#__PURE__*/React.createElement("h3", {
|
|
2074
|
+
className: styles$6.productCardVertical__title
|
|
2075
|
+
}, title), description && /*#__PURE__*/React.createElement("p", {
|
|
2076
|
+
className: styles$6.productCardVertical__description
|
|
2077
|
+
}, description)), /*#__PURE__*/React.createElement("button", {
|
|
2078
|
+
type: "button",
|
|
2079
|
+
onClick: handleButtonClick,
|
|
2080
|
+
className: styles$6.productCardVertical__button,
|
|
2081
|
+
"aria-label": "".concat(buttonLabel, " - ").concat(title),
|
|
2082
|
+
tabIndex: -1
|
|
2083
|
+
}, /*#__PURE__*/React.createElement("span", null, buttonLabel), /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
2084
|
+
icon: faArrowUpRightFromSquare$1,
|
|
2085
|
+
"aria-hidden": "true"
|
|
2086
|
+
})));
|
|
2087
|
+
};
|
|
2088
|
+
|
|
2089
|
+
var styles$5 = {"resultsView":"ResultsView-module__resultsView___S4Wh2","searchBarWrapper":"ResultsView-module__searchBarWrapper___XNtwR","tabsContainer":"ResultsView-module__tabsContainer___mB-Q2","tabs":"ResultsView-module__tabs___rOexd","tabSeparator":"ResultsView-module__tabSeparator___MSq9p","mobileFilterButton":"ResultsView-module__mobileFilterButton___ZrMQY","resultsContainer":"ResultsView-module__resultsContainer___J4URa","sidebar":"ResultsView-module__sidebar___nQq5J","assistanceBanner":"ResultsView-module__assistanceBanner___1r72a","mainContent":"ResultsView-module__mainContent___S9eIG","productsGrid":"ResultsView-module__productsGrid___gnAQ-","contentsList":"ResultsView-module__contentsList___tcfNG","contentDivider":"ResultsView-module__contentDivider___5n6sl","resultsList":"ResultsView-module__resultsList___8eYNX","resultsSection":"ResultsView-module__resultsSection___sCUaO","sectionTitle":"ResultsView-module__sectionTitle___mfvH3","loadingState":"ResultsView-module__loadingState___W5YXx","errorState":"ResultsView-module__errorState___UkkG-","emptyState":"ResultsView-module__emptyState___D0Iyn","spinner":"ResultsView-module__spinner___nk8E5","emptyIcon":"ResultsView-module__emptyIcon___fes8T","paginationWrapper":"ResultsView-module__paginationWrapper___mDTyl","searchBarDesktopOnly":"ResultsView-module__searchBarDesktopOnly___dZHUw","tabsContainerDesktopOnly":"ResultsView-module__tabsContainerDesktopOnly___-MQpa"};
|
|
1894
2090
|
|
|
1895
2091
|
var ResultsList = function (_a) {
|
|
1896
2092
|
var type = _a.type,
|
|
@@ -1904,15 +2100,15 @@ var ResultsList = function (_a) {
|
|
|
1904
2100
|
className = _d === void 0 ? '' : _d;
|
|
1905
2101
|
if (isLoading) {
|
|
1906
2102
|
return /*#__PURE__*/React.createElement("div", {
|
|
1907
|
-
className: "".concat(styles$
|
|
2103
|
+
className: "".concat(styles$5.loadingState, " ").concat(className)
|
|
1908
2104
|
}, /*#__PURE__*/React.createElement("div", {
|
|
1909
|
-
className: styles$
|
|
2105
|
+
className: styles$5.spinner,
|
|
1910
2106
|
"aria-label": "Loading..."
|
|
1911
2107
|
}), /*#__PURE__*/React.createElement("p", null, "Loading results..."));
|
|
1912
2108
|
}
|
|
1913
2109
|
if (error) {
|
|
1914
2110
|
return /*#__PURE__*/React.createElement("div", {
|
|
1915
|
-
className: "".concat(styles$
|
|
2111
|
+
className: "".concat(styles$5.errorState, " ").concat(className)
|
|
1916
2112
|
}, /*#__PURE__*/React.createElement("p", null, error));
|
|
1917
2113
|
}
|
|
1918
2114
|
var hasProducts = products.length > 0;
|
|
@@ -1920,7 +2116,7 @@ var ResultsList = function (_a) {
|
|
|
1920
2116
|
var hasResults = hasProducts || hasContents;
|
|
1921
2117
|
if (!hasResults) {
|
|
1922
2118
|
return /*#__PURE__*/React.createElement("div", {
|
|
1923
|
-
className: "".concat(styles$
|
|
2119
|
+
className: "".concat(styles$5.emptyState, " ").concat(className)
|
|
1924
2120
|
}, /*#__PURE__*/React.createElement("svg", {
|
|
1925
2121
|
xmlns: "http://www.w3.org/2000/svg",
|
|
1926
2122
|
viewBox: "0 0 24 24",
|
|
@@ -1929,7 +2125,7 @@ var ResultsList = function (_a) {
|
|
|
1929
2125
|
strokeWidth: "2",
|
|
1930
2126
|
strokeLinecap: "round",
|
|
1931
2127
|
strokeLinejoin: "round",
|
|
1932
|
-
className: styles$
|
|
2128
|
+
className: styles$5.emptyIcon
|
|
1933
2129
|
}, /*#__PURE__*/React.createElement("circle", {
|
|
1934
2130
|
cx: "11",
|
|
1935
2131
|
cy: "11",
|
|
@@ -1941,42 +2137,322 @@ var ResultsList = function (_a) {
|
|
|
1941
2137
|
// Render based on type
|
|
1942
2138
|
if (type === 'products') {
|
|
1943
2139
|
return /*#__PURE__*/React.createElement("div", {
|
|
1944
|
-
className: "".concat(styles$
|
|
2140
|
+
className: "".concat(styles$5.productsGrid, " ").concat(className)
|
|
1945
2141
|
}, products.map(function (product) {
|
|
1946
|
-
return /*#__PURE__*/React.createElement(
|
|
2142
|
+
return /*#__PURE__*/React.createElement(ProductCardVertical, _extends({
|
|
1947
2143
|
key: product.id
|
|
1948
|
-
}, product
|
|
2144
|
+
}, product, {
|
|
2145
|
+
buttonLabel: "BUY ONLINE"
|
|
2146
|
+
}));
|
|
1949
2147
|
}));
|
|
1950
2148
|
}
|
|
1951
2149
|
if (type === 'content') {
|
|
1952
2150
|
return /*#__PURE__*/React.createElement("div", {
|
|
1953
|
-
className: "".concat(styles$
|
|
1954
|
-
}, contents.map(function (content) {
|
|
1955
|
-
return /*#__PURE__*/React.createElement(
|
|
2151
|
+
className: "".concat(styles$5.contentsList, " ").concat(className)
|
|
2152
|
+
}, contents.map(function (content, index) {
|
|
2153
|
+
return /*#__PURE__*/React.createElement(React.Fragment, {
|
|
1956
2154
|
key: content.id
|
|
1957
|
-
},
|
|
2155
|
+
}, index > 0 && /*#__PURE__*/React.createElement("hr", {
|
|
2156
|
+
className: styles$5.contentDivider
|
|
2157
|
+
}), /*#__PURE__*/React.createElement(ContentCardHorizontal, _extends({}, content, {
|
|
2158
|
+
variant: "results-view"
|
|
2159
|
+
})));
|
|
1958
2160
|
}));
|
|
1959
2161
|
}
|
|
1960
|
-
// type === 'all' - Show mixed results
|
|
2162
|
+
// type === 'all' - Show mixed results (not in current Figma design, but keep for compatibility)
|
|
1961
2163
|
return /*#__PURE__*/React.createElement("div", {
|
|
1962
|
-
className: "".concat(styles$
|
|
2164
|
+
className: "".concat(styles$5.resultsList, " ").concat(className)
|
|
1963
2165
|
}, hasProducts && /*#__PURE__*/React.createElement("div", {
|
|
1964
|
-
className: styles$
|
|
2166
|
+
className: styles$5.resultsSection
|
|
1965
2167
|
}, /*#__PURE__*/React.createElement("h3", {
|
|
1966
|
-
className: styles$
|
|
1967
|
-
}, "Products (", products.length, ")"),
|
|
1968
|
-
|
|
2168
|
+
className: styles$5.sectionTitle
|
|
2169
|
+
}, "Products (", products.length, ")"), /*#__PURE__*/React.createElement("div", {
|
|
2170
|
+
className: styles$5.productsGrid
|
|
2171
|
+
}, products.map(function (product) {
|
|
2172
|
+
return /*#__PURE__*/React.createElement(ProductCardVertical, _extends({
|
|
1969
2173
|
key: product.id
|
|
1970
|
-
}, product
|
|
1971
|
-
|
|
1972
|
-
|
|
2174
|
+
}, product, {
|
|
2175
|
+
buttonLabel: "BUY ONLINE"
|
|
2176
|
+
}));
|
|
2177
|
+
}))), hasContents && /*#__PURE__*/React.createElement("div", {
|
|
2178
|
+
className: styles$5.resultsSection
|
|
1973
2179
|
}, /*#__PURE__*/React.createElement("h3", {
|
|
1974
|
-
className: styles$
|
|
1975
|
-
}, "Content (", contents.length, ")"),
|
|
1976
|
-
|
|
2180
|
+
className: styles$5.sectionTitle
|
|
2181
|
+
}, "Content (", contents.length, ")"), /*#__PURE__*/React.createElement("div", {
|
|
2182
|
+
className: styles$5.contentsList
|
|
2183
|
+
}, contents.map(function (content, index) {
|
|
2184
|
+
return /*#__PURE__*/React.createElement(React.Fragment, {
|
|
1977
2185
|
key: content.id
|
|
1978
|
-
},
|
|
1979
|
-
|
|
2186
|
+
}, index > 0 && /*#__PURE__*/React.createElement("hr", {
|
|
2187
|
+
className: styles$5.contentDivider
|
|
2188
|
+
}), /*#__PURE__*/React.createElement(ContentCardHorizontal, _extends({}, content, {
|
|
2189
|
+
variant: "results-view"
|
|
2190
|
+
})));
|
|
2191
|
+
}))));
|
|
2192
|
+
};
|
|
2193
|
+
|
|
2194
|
+
var styles$4 = {"tabButton":"TabButton-module__tabButton___cMU45","tabButton__count":"TabButton-module__tabButton__count___nlS1p","tabButton__label":"TabButton-module__tabButton__label___YGpiC","tabButton__results":"TabButton-module__tabButton__results___Nr6gr","tabButton--desktop":"TabButton-module__tabButton--desktop___fbAaC","tabButton--active":"TabButton-module__tabButton--active___gj6Jp","tabButton--mobile":"TabButton-module__tabButton--mobile___AnLwy"};
|
|
2195
|
+
|
|
2196
|
+
/**
|
|
2197
|
+
* TabButton - Tab navigation component with result counts
|
|
2198
|
+
*
|
|
2199
|
+
* Supports two layout variants:
|
|
2200
|
+
* - Desktop: Background colours, top red underline when active, rounded corners
|
|
2201
|
+
* - Mobile: Text-only with bottom border underline when active
|
|
2202
|
+
*
|
|
2203
|
+
* @example
|
|
2204
|
+
* ```tsx
|
|
2205
|
+
* // Desktop variant
|
|
2206
|
+
* <TabButton
|
|
2207
|
+
* label="WEB SHOP RESULTS"
|
|
2208
|
+
* count={542}
|
|
2209
|
+
* isActive={true}
|
|
2210
|
+
* onClick={() => setActiveTab('products')}
|
|
2211
|
+
* variant="desktop"
|
|
2212
|
+
* />
|
|
2213
|
+
*
|
|
2214
|
+
* // Mobile variant
|
|
2215
|
+
* <TabButton
|
|
2216
|
+
* label="WEB SHOP"
|
|
2217
|
+
* isActive={false}
|
|
2218
|
+
* onClick={() => setActiveTab('content')}
|
|
2219
|
+
* variant="mobile"
|
|
2220
|
+
* />
|
|
2221
|
+
* ```
|
|
2222
|
+
*/
|
|
2223
|
+
var TabButton = function (_a) {
|
|
2224
|
+
var _b;
|
|
2225
|
+
var label = _a.label,
|
|
2226
|
+
count = _a.count,
|
|
2227
|
+
isActive = _a.isActive,
|
|
2228
|
+
onClick = _a.onClick,
|
|
2229
|
+
_c = _a.variant,
|
|
2230
|
+
variant = _c === void 0 ? 'desktop' : _c,
|
|
2231
|
+
className = _a.className;
|
|
2232
|
+
var buttonClasses = classNames(styles$4.tabButton, styles$4["tabButton--".concat(variant)], (_b = {}, _b[styles$4['tabButton--active']] = isActive, _b), className);
|
|
2233
|
+
// Split label to hide " RESULTS" on mobile
|
|
2234
|
+
var labelParts = label.split(' RESULTS');
|
|
2235
|
+
var mainLabel = labelParts[0];
|
|
2236
|
+
var hasResults = labelParts.length > 1;
|
|
2237
|
+
return /*#__PURE__*/React.createElement("button", {
|
|
2238
|
+
type: "button",
|
|
2239
|
+
role: "tab",
|
|
2240
|
+
"aria-selected": isActive,
|
|
2241
|
+
"aria-controls": "tabpanel-".concat(label.toLowerCase().replace(/\s+/g, '-')),
|
|
2242
|
+
onClick: onClick,
|
|
2243
|
+
className: buttonClasses
|
|
2244
|
+
}, count !== undefined && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("span", {
|
|
2245
|
+
className: styles$4.tabButton__count
|
|
2246
|
+
}, count), ' '), /*#__PURE__*/React.createElement("span", {
|
|
2247
|
+
className: styles$4.tabButton__label
|
|
2248
|
+
}, mainLabel, hasResults && /*#__PURE__*/React.createElement("span", {
|
|
2249
|
+
className: styles$4.tabButton__results
|
|
2250
|
+
}, " RESULTS")));
|
|
2251
|
+
};
|
|
2252
|
+
|
|
2253
|
+
var AssistanceIcon = function (props) {
|
|
2254
|
+
return /*#__PURE__*/React.createElement("svg", _extends({
|
|
2255
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2256
|
+
width: "87",
|
|
2257
|
+
height: "87",
|
|
2258
|
+
viewBox: "0 0 87 87",
|
|
2259
|
+
fill: "none"
|
|
2260
|
+
}, props), /*#__PURE__*/React.createElement("path", {
|
|
2261
|
+
d: "M10.875 4.83247H47.125C50.463 4.83247 53.1667 7.53564 53.1667 10.8731V39.8679C53.1667 43.2053 50.463 45.9085 47.125 45.9085H33.6068C31.6281 45.9085 29.7099 46.6032 28.1844 47.8717L19.3333 55.2412V48.3247C19.3333 46.9958 18.2458 45.9085 16.9167 45.9085H10.875C7.53698 45.9085 4.83333 43.2053 4.83333 39.8679V10.8731C4.83333 7.53564 7.53698 4.83247 10.875 4.83247ZM0 10.8731V39.8679C0 45.8783 4.86354 50.741 10.875 50.741H14.5V60.4059C14.5 61.3422 15.0437 62.203 15.8896 62.5956C16.7354 62.9883 17.7474 62.8675 18.4573 62.2634L31.2807 51.5867C31.9302 51.043 32.7609 50.741 33.6068 50.741H47.125C53.1365 50.741 58 45.8783 58 39.8679V10.8731C58 4.86268 53.1365 0 47.125 0H10.875C4.86354 0 0 4.86268 0 10.8731ZM33.8333 64.0303V58.8958L29 62.9279V64.0454C29 70.0558 33.8635 74.9184 39.875 74.9184H53.3932C54.2391 74.9184 55.0698 75.2205 55.7193 75.7641L68.5427 86.4409C69.2677 87.0449 70.2646 87.1657 71.1104 86.7731C71.9563 86.3804 72.5 85.5197 72.5 84.5834V74.9184H76.125C82.1365 74.9184 87 70.0558 87 64.0454V35.0505C87 29.0401 82.1365 24.1775 76.125 24.1775H65.25V29.0099H76.125C79.463 29.0099 82.1667 31.7131 82.1667 35.0505V64.0454C82.1667 67.3828 79.463 70.086 76.125 70.086H70.0833C68.7542 70.086 67.6667 71.1733 67.6667 72.5022V79.4187L58.8156 72.034C57.2901 70.7655 55.3719 70.0709 53.3932 70.0709H39.875C36.537 70.0709 33.8333 67.3677 33.8333 64.0303ZM29 13.2893C32.1115 13.2893 34.6188 15.8112 34.6188 18.907C34.6188 21.5951 32.9573 22.9844 31.1146 23.815C28.8943 24.8117 26.5682 27.0618 26.5682 30.203C26.5682 31.5319 27.6557 32.6192 28.9849 32.6192C30.3141 32.6192 31.4016 31.5319 31.4016 30.203C31.4016 29.6291 31.9151 28.7532 33.0781 28.2247C35.7667 27.0165 39.437 24.3134 39.437 18.907C39.437 13.1383 34.7547 8.45683 28.9849 8.45683C23.2151 8.45683 18.5328 13.1383 18.5328 18.907C18.5328 20.236 19.6203 21.3233 20.9495 21.3233C22.2786 21.3233 23.3661 20.236 23.3661 18.907C23.3813 15.8112 25.8885 13.2893 29 13.2893ZM32.0208 39.8679C32.0208 38.2067 30.6615 36.8476 29 36.8476C27.3385 36.8476 25.9792 38.2067 25.9792 39.8679C25.9792 41.5291 27.3385 42.8882 29 42.8882C30.6615 42.8882 32.0208 41.5291 32.0208 39.8679Z",
|
|
2262
|
+
fill: "#39788E"
|
|
2263
|
+
}));
|
|
2264
|
+
};
|
|
2265
|
+
|
|
2266
|
+
var styles$3 = {"assistanceBanner":"AssistanceBanner-module__assistanceBanner___b97es","assistanceBanner__icon":"AssistanceBanner-module__assistanceBanner__icon___8NzJj","assistanceBanner__title":"AssistanceBanner-module__assistanceBanner__title___Wtkkt","assistanceBanner__description":"AssistanceBanner-module__assistanceBanner__description___AjoOr","assistanceBanner__link":"AssistanceBanner-module__assistanceBanner__link___5L45N","assistanceBanner__chevron":"AssistanceBanner-module__assistanceBanner__chevron___4km-f"};
|
|
2267
|
+
|
|
2268
|
+
/**
|
|
2269
|
+
* AssistanceBanner - Help widget for search sidebar
|
|
2270
|
+
*
|
|
2271
|
+
* Displays a call-to-action for users who need assistance finding products.
|
|
2272
|
+
* Features chat icon, heading, description, and contact link with chevron.
|
|
2273
|
+
*
|
|
2274
|
+
* Desktop only - hidden on mobile to save space.
|
|
2275
|
+
*
|
|
2276
|
+
* @example
|
|
2277
|
+
* ```tsx
|
|
2278
|
+
* <AssistanceBanner
|
|
2279
|
+
* title="Need Assistance?"
|
|
2280
|
+
* description="Can't find what you're looking for? Our team is ready to help."
|
|
2281
|
+
* linkText="Contact support"
|
|
2282
|
+
* linkUrl="/contact"
|
|
2283
|
+
* />
|
|
2284
|
+
* ```
|
|
2285
|
+
*/
|
|
2286
|
+
var AssistanceBanner = function (_a) {
|
|
2287
|
+
var _b = _a.title,
|
|
2288
|
+
title = _b === void 0 ? 'Need Assistance?' : _b,
|
|
2289
|
+
_c = _a.description,
|
|
2290
|
+
description = _c === void 0 ? "Can't find what you're looking for? Our team is ready to help." : _c,
|
|
2291
|
+
_d = _a.linkText,
|
|
2292
|
+
linkText = _d === void 0 ? 'Contact support' : _d,
|
|
2293
|
+
_e = _a.linkUrl,
|
|
2294
|
+
linkUrl = _e === void 0 ? '/contact' : _e,
|
|
2295
|
+
onLinkClick = _a.onLinkClick,
|
|
2296
|
+
className = _a.className;
|
|
2297
|
+
var handleLinkClick = function (e) {
|
|
2298
|
+
if (onLinkClick) {
|
|
2299
|
+
e.preventDefault();
|
|
2300
|
+
onLinkClick();
|
|
2301
|
+
}
|
|
2302
|
+
};
|
|
2303
|
+
var bannerClasses = classNames(styles$3.assistanceBanner, className);
|
|
2304
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
2305
|
+
className: bannerClasses
|
|
2306
|
+
}, /*#__PURE__*/React.createElement(AssistanceIcon, {
|
|
2307
|
+
className: styles$3.assistanceBanner__icon,
|
|
2308
|
+
"aria-hidden": "true"
|
|
2309
|
+
}), /*#__PURE__*/React.createElement("h3", {
|
|
2310
|
+
className: styles$3.assistanceBanner__title
|
|
2311
|
+
}, title), /*#__PURE__*/React.createElement("p", {
|
|
2312
|
+
className: styles$3.assistanceBanner__description
|
|
2313
|
+
}, description), /*#__PURE__*/React.createElement("a", {
|
|
2314
|
+
href: linkUrl,
|
|
2315
|
+
onClick: onLinkClick ? handleLinkClick : undefined,
|
|
2316
|
+
className: styles$3.assistanceBanner__link
|
|
2317
|
+
}, /*#__PURE__*/React.createElement("span", null, linkText), /*#__PURE__*/React.createElement("svg", {
|
|
2318
|
+
className: styles$3.assistanceBanner__chevron,
|
|
2319
|
+
width: "12",
|
|
2320
|
+
height: "6",
|
|
2321
|
+
viewBox: "0 0 12 6",
|
|
2322
|
+
fill: "none",
|
|
2323
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2324
|
+
"aria-hidden": "true"
|
|
2325
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
2326
|
+
d: "M1 1L6 5L11 1",
|
|
2327
|
+
stroke: "currentColor",
|
|
2328
|
+
strokeWidth: "2",
|
|
2329
|
+
strokeLinecap: "round",
|
|
2330
|
+
strokeLinejoin: "round"
|
|
2331
|
+
}))));
|
|
2332
|
+
};
|
|
2333
|
+
|
|
2334
|
+
var styles$2 = {"drawerOverlay":"FilterDrawer-module__drawerOverlay___P6M4y","drawerOverlay--open":"FilterDrawer-module__drawerOverlay--open___blJZo","drawerPanel":"FilterDrawer-module__drawerPanel___35h-U","drawerPanel--open":"FilterDrawer-module__drawerPanel--open___Fw1SY","drawerCloseButton":"FilterDrawer-module__drawerCloseButton___cfMmf","drawerContent":"FilterDrawer-module__drawerContent___KBff6"};
|
|
2335
|
+
|
|
2336
|
+
/**
|
|
2337
|
+
* FilterDrawer - Mobile slide-in filter panel
|
|
2338
|
+
*
|
|
2339
|
+
* Slides in from the right with a dark overlay. Used on mobile to show filters
|
|
2340
|
+
* when screen space is limited. Includes focus trap, escape key handling, and
|
|
2341
|
+
* body scroll prevention.
|
|
2342
|
+
*
|
|
2343
|
+
* Desktop: Hidden (filters shown in sidebar)
|
|
2344
|
+
* Mobile: Slide-in drawer overlay
|
|
2345
|
+
*
|
|
2346
|
+
* @example
|
|
2347
|
+
* ```tsx
|
|
2348
|
+
* <FilterDrawer
|
|
2349
|
+
* isOpen={isFilterDrawerOpen}
|
|
2350
|
+
* onClose={() => setIsFilterDrawerOpen(false)}
|
|
2351
|
+
* >
|
|
2352
|
+
* <FiltersPanel facets={facets} onFacetToggle={handleToggle} />
|
|
2353
|
+
* </FilterDrawer>
|
|
2354
|
+
* ```
|
|
2355
|
+
*/
|
|
2356
|
+
var FilterDrawer = function (_a) {
|
|
2357
|
+
var _b, _c;
|
|
2358
|
+
var isOpen = _a.isOpen,
|
|
2359
|
+
onClose = _a.onClose,
|
|
2360
|
+
children = _a.children,
|
|
2361
|
+
className = _a.className;
|
|
2362
|
+
var drawerRef = useRef(null);
|
|
2363
|
+
var previouslyFocusedElement = useRef(null);
|
|
2364
|
+
// Focus management
|
|
2365
|
+
useEffect(function () {
|
|
2366
|
+
if (isOpen) {
|
|
2367
|
+
// Store previously focused element
|
|
2368
|
+
previouslyFocusedElement.current = document.activeElement;
|
|
2369
|
+
// Focus the drawer
|
|
2370
|
+
if (drawerRef.current) {
|
|
2371
|
+
drawerRef.current.focus();
|
|
2372
|
+
}
|
|
2373
|
+
// Prevent body scroll
|
|
2374
|
+
document.body.style.overflow = 'hidden';
|
|
2375
|
+
} else {
|
|
2376
|
+
// Restore body scroll
|
|
2377
|
+
document.body.style.overflow = '';
|
|
2378
|
+
// Return focus to previously focused element
|
|
2379
|
+
if (previouslyFocusedElement.current) {
|
|
2380
|
+
previouslyFocusedElement.current.focus();
|
|
2381
|
+
}
|
|
2382
|
+
}
|
|
2383
|
+
return function () {
|
|
2384
|
+
document.body.style.overflow = '';
|
|
2385
|
+
};
|
|
2386
|
+
}, [isOpen]);
|
|
2387
|
+
// Escape key handler
|
|
2388
|
+
useEffect(function () {
|
|
2389
|
+
var handleEscape = function (event) {
|
|
2390
|
+
if (event.key === 'Escape' && isOpen) {
|
|
2391
|
+
onClose();
|
|
2392
|
+
}
|
|
2393
|
+
};
|
|
2394
|
+
document.addEventListener('keydown', handleEscape);
|
|
2395
|
+
return function () {
|
|
2396
|
+
return document.removeEventListener('keydown', handleEscape);
|
|
2397
|
+
};
|
|
2398
|
+
}, [isOpen, onClose]);
|
|
2399
|
+
// Focus trap implementation
|
|
2400
|
+
useEffect(function () {
|
|
2401
|
+
if (!isOpen || !drawerRef.current) return;
|
|
2402
|
+
var drawer = drawerRef.current;
|
|
2403
|
+
var focusableElements = drawer.querySelectorAll('button, [href], input, select, textarea, [tabindex]:not([tabindex="-1"])');
|
|
2404
|
+
var firstElement = focusableElements[0];
|
|
2405
|
+
var lastElement = focusableElements[focusableElements.length - 1];
|
|
2406
|
+
var handleTab = function (event) {
|
|
2407
|
+
if (event.key !== 'Tab') return;
|
|
2408
|
+
if (event.shiftKey) {
|
|
2409
|
+
// Shift + Tab
|
|
2410
|
+
if (document.activeElement === firstElement) {
|
|
2411
|
+
event.preventDefault();
|
|
2412
|
+
lastElement === null || lastElement === void 0 ? void 0 : lastElement.focus();
|
|
2413
|
+
}
|
|
2414
|
+
} else {
|
|
2415
|
+
// Tab
|
|
2416
|
+
if (document.activeElement === lastElement) {
|
|
2417
|
+
event.preventDefault();
|
|
2418
|
+
firstElement === null || firstElement === void 0 ? void 0 : firstElement.focus();
|
|
2419
|
+
}
|
|
2420
|
+
}
|
|
2421
|
+
};
|
|
2422
|
+
drawer.addEventListener('keydown', handleTab);
|
|
2423
|
+
return function () {
|
|
2424
|
+
return drawer.removeEventListener('keydown', handleTab);
|
|
2425
|
+
};
|
|
2426
|
+
}, [isOpen]);
|
|
2427
|
+
if (!isOpen) return null;
|
|
2428
|
+
var handleOverlayClick = function (event) {
|
|
2429
|
+
if (event.target === event.currentTarget) {
|
|
2430
|
+
onClose();
|
|
2431
|
+
}
|
|
2432
|
+
};
|
|
2433
|
+
var overlayClasses = classNames(styles$2.drawerOverlay, (_b = {}, _b[styles$2['drawerOverlay--open']] = isOpen, _b));
|
|
2434
|
+
var panelClasses = classNames(styles$2.drawerPanel, (_c = {}, _c[styles$2['drawerPanel--open']] = isOpen, _c), className);
|
|
2435
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
2436
|
+
className: overlayClasses,
|
|
2437
|
+
onClick: handleOverlayClick,
|
|
2438
|
+
"aria-hidden": "true"
|
|
2439
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
2440
|
+
type: "button",
|
|
2441
|
+
onClick: onClose,
|
|
2442
|
+
"aria-label": "Close filters",
|
|
2443
|
+
className: styles$2.drawerCloseButton
|
|
2444
|
+
}, /*#__PURE__*/React.createElement(FontAwesomeIcon, {
|
|
2445
|
+
icon: faXmark
|
|
2446
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
2447
|
+
ref: drawerRef,
|
|
2448
|
+
role: "dialog",
|
|
2449
|
+
"aria-modal": "true",
|
|
2450
|
+
"aria-label": "Filter options",
|
|
2451
|
+
tabIndex: -1,
|
|
2452
|
+
className: panelClasses
|
|
2453
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
2454
|
+
className: styles$2.drawerContent
|
|
2455
|
+
}, children)));
|
|
1980
2456
|
};
|
|
1981
2457
|
|
|
1982
2458
|
var FederatedResultsView = function (_a) {
|
|
@@ -1995,58 +2471,112 @@ var FederatedResultsView = function (_a) {
|
|
|
1995
2471
|
totalPages = _a.totalPages,
|
|
1996
2472
|
onPageChange = _a.onPageChange,
|
|
1997
2473
|
facets = _a.facets,
|
|
1998
|
-
onFacetToggle = _a.onFacetToggle
|
|
1999
|
-
|
|
2000
|
-
|
|
2001
|
-
|
|
2002
|
-
count: products.length
|
|
2003
|
-
}, {
|
|
2004
|
-
id: "content",
|
|
2005
|
-
label: "Content",
|
|
2006
|
-
count: contents.length
|
|
2007
|
-
}];
|
|
2474
|
+
onFacetToggle = _a.onFacetToggle,
|
|
2475
|
+
isFilterDrawerOpen = _a.isFilterDrawerOpen,
|
|
2476
|
+
onFilterDrawerToggle = _a.onFilterDrawerToggle,
|
|
2477
|
+
onFilterDrawerClose = _a.onFilterDrawerClose;
|
|
2008
2478
|
var isLoading = activeTab === "products" && isLoadingProducts || activeTab === "content" && isLoadingContents;
|
|
2009
2479
|
var error = activeTab === "products" ? productsError : contentsError;
|
|
2010
2480
|
// Filter results based on active tab
|
|
2011
2481
|
var displayProducts = activeTab === "content" ? [] : products;
|
|
2012
2482
|
var displayContents = activeTab === "products" ? [] : contents;
|
|
2483
|
+
// Content tab single-select handler (clears all others when selecting)
|
|
2484
|
+
var handleContentCategorySelect = useCallback(function (attribute, value) {
|
|
2485
|
+
var facet = facets.find(function (f) {
|
|
2486
|
+
return f.attribute === attribute;
|
|
2487
|
+
});
|
|
2488
|
+
if (!facet) return;
|
|
2489
|
+
// Clear ALL values in this facet first
|
|
2490
|
+
facet.values.forEach(function (v) {
|
|
2491
|
+
if (v.isRefined) {
|
|
2492
|
+
onFacetToggle(attribute, v.value); // Unselect
|
|
2493
|
+
}
|
|
2494
|
+
});
|
|
2495
|
+
// Then select the clicked value (if not already selected)
|
|
2496
|
+
var clickedValue = facet.values.find(function (v) {
|
|
2497
|
+
return v.value === value;
|
|
2498
|
+
});
|
|
2499
|
+
if (clickedValue && !clickedValue.isRefined) {
|
|
2500
|
+
onFacetToggle(attribute, value); // Select
|
|
2501
|
+
}
|
|
2502
|
+
}, [facets, onFacetToggle]);
|
|
2503
|
+
// Track if any filters applied
|
|
2504
|
+
var hasAppliedFilters = useMemo(function () {
|
|
2505
|
+
return facets.some(function (facet) {
|
|
2506
|
+
return facet.values.some(function (value) {
|
|
2507
|
+
return value.isRefined;
|
|
2508
|
+
});
|
|
2509
|
+
});
|
|
2510
|
+
}, [facets]);
|
|
2511
|
+
// Track previous filter state to detect transitions
|
|
2512
|
+
var prevHasAppliedFilters = useRef(hasAppliedFilters);
|
|
2513
|
+
// Auto-close drawer when transitioning FROM filters applied TO no filters (mobile only)
|
|
2514
|
+
useEffect(function () {
|
|
2515
|
+
// Only close if we HAD filters and now have NONE (not on initial open)
|
|
2516
|
+
if (prevHasAppliedFilters.current && !hasAppliedFilters && isFilterDrawerOpen && onFilterDrawerClose) {
|
|
2517
|
+
onFilterDrawerClose();
|
|
2518
|
+
}
|
|
2519
|
+
prevHasAppliedFilters.current = hasAppliedFilters;
|
|
2520
|
+
}, [hasAppliedFilters, isFilterDrawerOpen, onFilterDrawerClose]);
|
|
2013
2521
|
return /*#__PURE__*/React.createElement("div", {
|
|
2014
|
-
className: styles$
|
|
2522
|
+
className: styles$5.resultsView
|
|
2015
2523
|
}, /*#__PURE__*/React.createElement("div", {
|
|
2016
|
-
className: styles$
|
|
2524
|
+
className: "".concat(styles$5.searchBarWrapper, " ").concat(styles$5.searchBarDesktopOnly)
|
|
2017
2525
|
}, /*#__PURE__*/React.createElement(SearchBar, {
|
|
2018
2526
|
value: query,
|
|
2019
2527
|
onChange: onQueryChange,
|
|
2020
2528
|
onSubmit: onSearchSubmit,
|
|
2021
|
-
placeholder: "Refine your search..."
|
|
2529
|
+
placeholder: "Refine your search...",
|
|
2530
|
+
variant: "results"
|
|
2022
2531
|
})), /*#__PURE__*/React.createElement("div", {
|
|
2023
|
-
className: styles$
|
|
2532
|
+
className: "".concat(styles$5.tabsContainer, " ").concat(styles$5.tabsContainerDesktopOnly)
|
|
2024
2533
|
}, /*#__PURE__*/React.createElement("div", {
|
|
2025
|
-
className: styles$
|
|
2534
|
+
className: styles$5.tabs,
|
|
2026
2535
|
role: "tablist"
|
|
2027
|
-
},
|
|
2028
|
-
|
|
2029
|
-
|
|
2030
|
-
|
|
2031
|
-
|
|
2032
|
-
"
|
|
2033
|
-
|
|
2034
|
-
|
|
2035
|
-
|
|
2036
|
-
|
|
2037
|
-
|
|
2038
|
-
|
|
2039
|
-
|
|
2040
|
-
|
|
2041
|
-
|
|
2042
|
-
|
|
2536
|
+
}, /*#__PURE__*/React.createElement(TabButton, {
|
|
2537
|
+
label: "WEB SHOP RESULTS",
|
|
2538
|
+
count: products.length,
|
|
2539
|
+
isActive: activeTab === "products",
|
|
2540
|
+
onClick: function () {
|
|
2541
|
+
return onTabChange("products");
|
|
2542
|
+
},
|
|
2543
|
+
variant: "desktop"
|
|
2544
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
2545
|
+
className: styles$5.tabSeparator
|
|
2546
|
+
}), /*#__PURE__*/React.createElement(TabButton, {
|
|
2547
|
+
label: "WEBSITE RESULTS",
|
|
2548
|
+
count: contents.length,
|
|
2549
|
+
isActive: activeTab === "content",
|
|
2550
|
+
onClick: function () {
|
|
2551
|
+
return onTabChange("content");
|
|
2552
|
+
},
|
|
2553
|
+
variant: "desktop"
|
|
2554
|
+
})), onFilterDrawerToggle && /*#__PURE__*/React.createElement("button", {
|
|
2555
|
+
type: "button",
|
|
2556
|
+
className: styles$5.mobileFilterButton,
|
|
2557
|
+
onClick: onFilterDrawerToggle
|
|
2558
|
+
}, /*#__PURE__*/React.createElement("svg", {
|
|
2559
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2560
|
+
width: "15",
|
|
2561
|
+
height: "11",
|
|
2562
|
+
viewBox: "0 0 15 11",
|
|
2563
|
+
fill: "none",
|
|
2564
|
+
"aria-hidden": "true"
|
|
2565
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
2566
|
+
d: "M0 0.6875C0 0.30651 0.313477 0 0.703125 0H14.2969C14.6865 0 15 0.30651 15 0.6875C15 1.06849 14.6865 1.375 14.2969 1.375H0.703125C0.313477 1.375 0 1.06849 0 0.6875ZM2.8125 5.5C2.8125 5.11901 3.12598 4.8125 3.51562 4.8125H11.4844C11.874 4.8125 12.1875 5.11901 12.1875 5.5C12.1875 5.88099 11.874 6.1875 11.4844 6.1875H3.51562C3.12598 6.1875 2.8125 5.88099 2.8125 5.5ZM9.375 10.3125C9.375 10.6935 9.06152 11 8.67188 11H6.32812C5.93848 11 5.625 10.6935 5.625 10.3125C5.625 9.93151 5.93848 9.625 6.32812 9.625H8.67188C9.06152 9.625 9.375 9.93151 9.375 10.3125Z",
|
|
2567
|
+
fill: "currentColor"
|
|
2568
|
+
})), /*#__PURE__*/React.createElement("span", null, "Filter"))), /*#__PURE__*/React.createElement("div", {
|
|
2569
|
+
className: styles$5.resultsContainer
|
|
2043
2570
|
}, /*#__PURE__*/React.createElement("aside", {
|
|
2044
|
-
className: styles$
|
|
2571
|
+
className: styles$5.sidebar
|
|
2045
2572
|
}, /*#__PURE__*/React.createElement(FiltersPanel, {
|
|
2046
2573
|
facets: facets,
|
|
2047
|
-
onFacetToggle: onFacetToggle
|
|
2574
|
+
onFacetToggle: activeTab === "products" ? onFacetToggle : handleContentCategorySelect,
|
|
2575
|
+
showCheckbox: activeTab === "products"
|
|
2576
|
+
}), /*#__PURE__*/React.createElement(AssistanceBanner, {
|
|
2577
|
+
className: styles$5.assistanceBanner
|
|
2048
2578
|
})), /*#__PURE__*/React.createElement("main", {
|
|
2049
|
-
className: styles$
|
|
2579
|
+
className: styles$5.mainContent
|
|
2050
2580
|
}, /*#__PURE__*/React.createElement("div", {
|
|
2051
2581
|
id: "tabpanel-".concat(activeTab),
|
|
2052
2582
|
role: "tabpanel",
|
|
@@ -2058,17 +2588,26 @@ var FederatedResultsView = function (_a) {
|
|
|
2058
2588
|
isLoading: isLoading,
|
|
2059
2589
|
error: error
|
|
2060
2590
|
}), !isLoading && !error && (displayProducts.length > 0 || displayContents.length > 0) && /*#__PURE__*/React.createElement("div", {
|
|
2061
|
-
className: styles$
|
|
2591
|
+
className: styles$5.paginationWrapper
|
|
2062
2592
|
}, /*#__PURE__*/React.createElement(Pagination, {
|
|
2063
2593
|
currentPage: currentPage,
|
|
2064
2594
|
totalPages: totalPages,
|
|
2065
2595
|
onPageChange: onPageChange,
|
|
2066
2596
|
maxVisiblePages: 10,
|
|
2597
|
+
showPrevious: false,
|
|
2067
2598
|
ariaLabel: "".concat(activeTab === "products" ? "Products" : "Content", " pagination")
|
|
2068
|
-
})))))
|
|
2599
|
+
}))))), onFilterDrawerClose && /*#__PURE__*/React.createElement(FilterDrawer, {
|
|
2600
|
+
isOpen: isFilterDrawerOpen || false,
|
|
2601
|
+
onClose: onFilterDrawerClose
|
|
2602
|
+
}, /*#__PURE__*/React.createElement(FiltersPanel, {
|
|
2603
|
+
facets: facets,
|
|
2604
|
+
onFacetToggle: activeTab === "products" ? onFacetToggle : handleContentCategorySelect,
|
|
2605
|
+
variant: "mobile",
|
|
2606
|
+
showCheckbox: activeTab === "products"
|
|
2607
|
+
})));
|
|
2069
2608
|
};
|
|
2070
2609
|
|
|
2071
|
-
var styles$1 = {"searchExperience":"FederatedSearchExperience-module__searchExperience___gug9X","searchBarSection":"FederatedSearchExperience-module__searchBarSection___f0Ykq","instantResultsSection":"FederatedSearchExperience-module__instantResultsSection___AG3qn","fullResultsSection":"FederatedSearchExperience-module__fullResultsSection___NH16U"};
|
|
2610
|
+
var styles$1 = {"searchExperience":"FederatedSearchExperience-module__searchExperience___gug9X","searchBarSection":"FederatedSearchExperience-module__searchBarSection___f0Ykq","searchBarDesktopOnly":"FederatedSearchExperience-module__searchBarDesktopOnly___CetKZ","searchBarMobileOnly":"FederatedSearchExperience-module__searchBarMobileOnly___Ityxp","resultsHeaderMobileOnly":"FederatedSearchExperience-module__resultsHeaderMobileOnly___09ef-","tabsContainerSticky":"FederatedSearchExperience-module__tabsContainerSticky___-HdY5","tabs":"FederatedSearchExperience-module__tabs___Vatv8","tabSeparator":"FederatedSearchExperience-module__tabSeparator___AUjhW","mobileFilterButtonWrapper":"FederatedSearchExperience-module__mobileFilterButtonWrapper___JkRtk","mobileFilterButton":"FederatedSearchExperience-module__mobileFilterButton___sRc-w","filterIndicatorDot":"FederatedSearchExperience-module__filterIndicatorDot___vqVi2","instantResultsSection":"FederatedSearchExperience-module__instantResultsSection___AG3qn","fullResultsSection":"FederatedSearchExperience-module__fullResultsSection___NH16U"};
|
|
2072
2611
|
|
|
2073
2612
|
/**
|
|
2074
2613
|
* FederatedSearchExperience - Top-level search experience component
|
|
@@ -2129,21 +2668,93 @@ var FederatedSearchExperience = function (_a) {
|
|
|
2129
2668
|
totalPages = _a.totalPages,
|
|
2130
2669
|
onPageChange = _a.onPageChange,
|
|
2131
2670
|
facets = _a.facets,
|
|
2132
|
-
onFacetToggle = _a.onFacetToggle
|
|
2671
|
+
onFacetToggle = _a.onFacetToggle,
|
|
2672
|
+
isFilterDrawerOpen = _a.isFilterDrawerOpen,
|
|
2673
|
+
onFilterDrawerToggle = _a.onFilterDrawerToggle,
|
|
2674
|
+
onFilterDrawerClose = _a.onFilterDrawerClose;
|
|
2675
|
+
// Track if any filters are active (for red dot indicator)
|
|
2676
|
+
var hasAppliedFilters = useMemo(function () {
|
|
2677
|
+
return facets.some(function (facet) {
|
|
2678
|
+
return facet.values.some(function (value) {
|
|
2679
|
+
return value.isRefined;
|
|
2680
|
+
});
|
|
2681
|
+
});
|
|
2682
|
+
}, [facets]);
|
|
2133
2683
|
return /*#__PURE__*/React.createElement(SearchModal, {
|
|
2134
2684
|
isOpen: isOpen,
|
|
2135
2685
|
onClose: onClose,
|
|
2136
|
-
title: "Search"
|
|
2686
|
+
title: "Search",
|
|
2687
|
+
stickyHeaderContent: activeView === "instant" ? /*#__PURE__*/React.createElement("div", {
|
|
2688
|
+
className: styles$1.searchBarMobileOnly
|
|
2689
|
+
}, /*#__PURE__*/React.createElement(SearchBar, {
|
|
2690
|
+
value: query,
|
|
2691
|
+
onChange: onQueryChange,
|
|
2692
|
+
onSubmit: onSearchSubmit,
|
|
2693
|
+
placeholder: "Discover products, innovations, and resources...",
|
|
2694
|
+
autoFocus: true,
|
|
2695
|
+
variant: "instant"
|
|
2696
|
+
})) : activeView === "results" ? /*#__PURE__*/React.createElement("div", {
|
|
2697
|
+
className: styles$1.resultsHeaderMobileOnly
|
|
2698
|
+
}, /*#__PURE__*/React.createElement(SearchBar, {
|
|
2699
|
+
value: query,
|
|
2700
|
+
onChange: onQueryChange,
|
|
2701
|
+
onSubmit: onSearchSubmit,
|
|
2702
|
+
placeholder: "Refine your search...",
|
|
2703
|
+
variant: "results"
|
|
2704
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
2705
|
+
className: styles$1.tabsContainerSticky
|
|
2706
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
2707
|
+
className: styles$1.tabs,
|
|
2708
|
+
role: "tablist"
|
|
2709
|
+
}, /*#__PURE__*/React.createElement(TabButton, {
|
|
2710
|
+
label: "WEB SHOP RESULTS",
|
|
2711
|
+
count: products.length,
|
|
2712
|
+
isActive: activeTab === "products",
|
|
2713
|
+
onClick: function () {
|
|
2714
|
+
return onTabChange("products");
|
|
2715
|
+
},
|
|
2716
|
+
variant: "mobile"
|
|
2717
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
2718
|
+
className: styles$1.tabSeparator
|
|
2719
|
+
}), /*#__PURE__*/React.createElement(TabButton, {
|
|
2720
|
+
label: "WEBSITE RESULTS",
|
|
2721
|
+
count: contents.length,
|
|
2722
|
+
isActive: activeTab === "content",
|
|
2723
|
+
onClick: function () {
|
|
2724
|
+
return onTabChange("content");
|
|
2725
|
+
},
|
|
2726
|
+
variant: "mobile"
|
|
2727
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
2728
|
+
className: styles$1.mobileFilterButtonWrapper
|
|
2729
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
2730
|
+
type: "button",
|
|
2731
|
+
className: styles$1.mobileFilterButton,
|
|
2732
|
+
onClick: onFilterDrawerToggle
|
|
2733
|
+
}, /*#__PURE__*/React.createElement("svg", {
|
|
2734
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2735
|
+
width: "15",
|
|
2736
|
+
height: "11",
|
|
2737
|
+
viewBox: "0 0 15 11",
|
|
2738
|
+
fill: "none",
|
|
2739
|
+
"aria-hidden": "true"
|
|
2740
|
+
}, /*#__PURE__*/React.createElement("path", {
|
|
2741
|
+
d: "M0 0.6875C0 0.30651 0.313477 0 0.703125 0H14.2969C14.6865 0 15 0.30651 15 0.6875C15 1.06849 14.6865 1.375 14.2969 1.375H0.703125C0.313477 1.375 0 1.06849 0 0.6875ZM2.8125 5.5C2.8125 5.11901 3.12598 4.8125 3.51562 4.8125H11.4844C11.874 4.8125 12.1875 5.11901 12.1875 5.5C12.1875 5.88099 11.874 6.1875 11.4844 6.1875H3.51562C3.12598 6.1875 2.8125 5.88099 2.8125 5.5ZM9.375 10.3125C9.375 10.6935 9.06152 11 8.67188 11H6.32812C5.93848 11 5.625 10.6935 5.625 10.3125C5.625 9.93151 5.93848 9.625 6.32812 9.625H8.67188C9.06152 9.625 9.375 9.93151 9.375 10.3125Z",
|
|
2742
|
+
fill: "currentColor"
|
|
2743
|
+
})), /*#__PURE__*/React.createElement("span", null, "Filter")), hasAppliedFilters && /*#__PURE__*/React.createElement("span", {
|
|
2744
|
+
className: styles$1.filterIndicatorDot,
|
|
2745
|
+
"aria-hidden": "true"
|
|
2746
|
+
})))) : undefined
|
|
2137
2747
|
}, /*#__PURE__*/React.createElement("div", {
|
|
2138
2748
|
className: styles$1.searchExperience
|
|
2139
2749
|
}, activeView === "instant" && /*#__PURE__*/React.createElement("div", {
|
|
2140
|
-
className: styles$1.searchBarSection
|
|
2750
|
+
className: "".concat(styles$1.searchBarSection, " ").concat(styles$1.searchBarDesktopOnly)
|
|
2141
2751
|
}, /*#__PURE__*/React.createElement(SearchBar, {
|
|
2142
2752
|
value: query,
|
|
2143
2753
|
onChange: onQueryChange,
|
|
2144
2754
|
onSubmit: onSearchSubmit,
|
|
2145
2755
|
placeholder: "Discover products, innovations, and resources...",
|
|
2146
|
-
autoFocus: true
|
|
2756
|
+
autoFocus: true,
|
|
2757
|
+
variant: "instant"
|
|
2147
2758
|
})), activeView === "instant" && /*#__PURE__*/React.createElement("div", {
|
|
2148
2759
|
className: styles$1.instantResultsSection
|
|
2149
2760
|
}, query ? /*#__PURE__*/React.createElement(FederatedInstantResultsLayout, {
|
|
@@ -2195,7 +2806,10 @@ var FederatedSearchExperience = function (_a) {
|
|
|
2195
2806
|
totalPages: totalPages,
|
|
2196
2807
|
onPageChange: onPageChange,
|
|
2197
2808
|
facets: facets,
|
|
2198
|
-
onFacetToggle: onFacetToggle
|
|
2809
|
+
onFacetToggle: onFacetToggle,
|
|
2810
|
+
isFilterDrawerOpen: isFilterDrawerOpen,
|
|
2811
|
+
onFilterDrawerToggle: onFilterDrawerToggle,
|
|
2812
|
+
onFilterDrawerClose: onFilterDrawerClose
|
|
2199
2813
|
}))));
|
|
2200
2814
|
};
|
|
2201
2815
|
|
|
@@ -2241,5 +2855,5 @@ var SearchTriggerButton = function (_a) {
|
|
|
2241
2855
|
}, label));
|
|
2242
2856
|
};
|
|
2243
2857
|
|
|
2244
|
-
export { AlgoliaDynamicSearchLeybold as AlgoliaDynamicSearch, AlgoliaDynamicSearchLeybold, AppliedFilterTag, AppliedFilters, Button, ContentCardHorizontal, FederatedInstantResultsLayout, FederatedResultsView, FederatedSearchExperience, FilterAccordion, FilterItem, FilterSearch, FiltersPanel, Footer, FooterBottom, FooterLink, FooterLinkGroup, FooterSocialIcon, FooterSocialIcons, ModalCloseButton, Pagination, PaginationButton, PaginationEllipsis, PaginationItem, ProductCardHorizontal, QrFormLeybold as QrForm, QrFormLeybold, ResultsColumn, ResultsCount, ResultsList, SearchBar, SearchIcon, SearchInput, SearchModal, SearchSubmitButton, SearchTriggerButton, SeeAllLinkButton };
|
|
2858
|
+
export { AlgoliaDynamicSearchLeybold as AlgoliaDynamicSearch, AlgoliaDynamicSearchLeybold, AppliedFilterTag, AppliedFilters, Button, ContentCardHorizontal, FederatedInstantResultsLayout, FederatedResultsView, FederatedSearchExperience, FilterAccordion, FilterItem, FilterSearch, FiltersPanel, Footer, FooterBottom, FooterLink, FooterLinkGroup, FooterSocialIcon, FooterSocialIcons, ModalCloseButton, Pagination, PaginationButton, PaginationEllipsis, PaginationItem, ProductCardHorizontal, ProductCardVertical, QrFormLeybold as QrForm, QrFormLeybold, ResultsColumn, ResultsCount, ResultsList, SearchBar, SearchIcon, SearchInput, SearchModal, SearchSubmitButton, SearchTriggerButton, SeeAllLinkButton };
|
|
2245
2859
|
//# sourceMappingURL=index.esm.js.map
|