PageSourceSearch

https://wildforkfoods.com/_next/static/chunks/pages/collections/%5BcategorySlug%5D-52066198b7443fbb.js

js wildforkfoods.com collected 2026-10-01 11:33:01 UTC 162,886 bytes, 3,326 lines download raw bytes

1(self["webpackChunk_N_E"] = self["webpackChunk_N_E"] || []).push([[8077,7967,2599],{
2
3/***/ 374129:
4/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
5
6"use strict";
7
8
9Object.defineProperty(exports, "__esModule", ({ value: true }));
10
11function _interopDefault (ex) { return (ex && (typeof ex === 'object') && 'default' in ex) ? ex['default'] : ex; }
12
13var React = __webpack_require__(667294);
14var React__default = _interopDefault(React);
15
16/*! *****************************************************************************
17Copyright (c) Microsoft Corporation.
18
19Permission to use, copy, modify, and/or distribute this software for any
20purpose with or without fee is hereby granted.
21
22THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
23REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
24AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
25INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
26LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
27OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
28PERFORMANCE OF THIS SOFTWARE.
29***************************************************************************** */
30
31var __assign = function() {
32    __assign = Object.assign || function __assign(t) {
33        for (var s, i = 1, n = arguments.length; i < n; i++) {
34            s = arguments[i];
35            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
36        }
37        return t;
38    };
39    return __assign.apply(this, arguments);
40};
41
42var commonjsGlobal = typeof globalThis !== 'undefined' ? globalThis : typeof window !== 'undefined' ? window : typeof __webpack_require__.g !== 'undefined' ? __webpack_require__.g : typeof self !== 'undefined' ? self : {};
43
44function unwrapExports (x) {
45	return x && x.__esModule && Object.prototype.hasOwnProperty.call(x, 'default') ? x['default'] : x;
46}
47
48function createCommonjsModule(fn, module) {
49	return module = { exports: {} }, fn(module, module.exports), module.exports;
50}
51
52var blocks = createCommonjsModule(function (module, exports) {
53Object.defineProperty(exports, "__esModule", { value: true });
54exports.BLOCKS = void 0;
55/**
56 * Map of all Contentful block types. Blocks contain inline or block nodes.
57 */
58var BLOCKS;
59(function (BLOCKS) {
60    BLOCKS["DOCUMENT"] = "document";
61    BLOCKS["PARAGRAPH"] = "paragraph";
62    BLOCKS["HEADING_1"] = "heading-1";
63    BLOCKS["HEADING_2"] = "heading-2";
64    BLOCKS["HEADING_3"] = "heading-3";
65    BLOCKS["HEADING_4"] = "heading-4";
66    BLOCKS["HEADING_5"] = "heading-5";
67    BLOCKS["HEADING_6"] = "heading-6";
68    BLOCKS["OL_LIST"] = "ordered-list";
69    BLOCKS["UL_LIST"] = "unordered-list";
70    BLOCKS["LIST_ITEM"] = "list-item";
71    BLOCKS["HR"] = "hr";
72    BLOCKS["QUOTE"] = "blockquote";
73    BLOCKS["EMBEDDED_ENTRY"] = "embedded-entry-block";
74    BLOCKS["EMBEDDED_ASSET"] = "embedded-asset-block";
75    BLOCKS["TABLE"] = "table";
76    BLOCKS["TABLE_ROW"] = "table-row";
77    BLOCKS["TABLE_CELL"] = "table-cell";
78    BLOCKS["TABLE_HEADER_CELL"] = "table-header-cell";
79})(BLOCKS = exports.BLOCKS || (exports.BLOCKS = {}));
80
81});
82
83unwrapExports(blocks);
84var blocks_1 = blocks.BLOCKS;
85
86var inlines = createCommonjsModule(function (module, exports) {
87Object.defineProperty(exports, "__esModule", { value: true });
88exports.INLINES = void 0;
89/**
90 * Map of all Contentful inline types. Inline contain inline or text nodes.
91 */
92var INLINES;
93(function (INLINES) {
94    INLINES["HYPERLINK"] = "hyperlink";
95    INLINES["ENTRY_HYPERLINK"] = "entry-hyperlink";
96    INLINES["ASSET_HYPERLINK"] = "asset-hyperlink";
97    INLINES["EMBEDDED_ENTRY"] = "embedded-entry-inline";
98})(INLINES = exports.INLINES || (exports.INLINES = {}));
99
100});
101
102unwrapExports(inlines);
103var inlines_1 = inlines.INLINES;
104
105var marks = createCommonjsModule(function (module, exports) {
106Object.defineProperty(exports, "__esModule", { value: true });
107/**
108 * Map of all Contentful marks.
109 */
110var MARKS;
111(function (MARKS) {
112    MARKS["BOLD"] = "bold";
113    MARKS["ITALIC"] = "italic";
114    MARKS["UNDERLINE"] = "underline";
115    MARKS["CODE"] = "code";
116    MARKS["SUPERSCRIPT"] = "superscript";
117    MARKS["SUBSCRIPT"] = "subscript";
118})(MARKS || (MARKS = {}));
119exports.default = MARKS;
120
121});
122
123unwrapExports(marks);
124
125var schemaConstraints = createCommonjsModule(function (module, exports
125) {
126var __spreadArray = (commonjsGlobal && commonjsGlobal.__spreadArray) || function (to, from, pack) {
127    if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {
128        if (ar || !(i in from)) {
129            if (!ar) ar = Array.prototype.slice.call(from, 0, i);
130            ar[i] = from[i];
131        }
132    }
133    return to.concat(ar || Array.prototype.slice.call(from));
134};
135var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
136    return (mod && mod.__esModule) ? mod : { "default": mod };
137};
138var _a;
139Object.defineProperty(exports, "__esModule", { value: true });
140exports.V1_MARKS = exports.V1_NODE_TYPES = exports.TEXT_CONTAINERS = exports.HEADINGS = exports.CONTAINERS = exports.VOID_BLOCKS = exports.TABLE_BLOCKS = exports.LIST_ITEM_BLOCKS = exports.TOP_LEVEL_BLOCKS = void 0;
141
142
143var marks_1 = __importDefault(marks);
144/**
145 * Array of all top level block types.
146 * Only these block types can be the direct children of the document.
147 */
148exports.TOP_LEVEL_BLOCKS = [
149    blocks.BLOCKS.PARAGRAPH,
150    blocks.BLOCKS.HEADING_1,
151    blocks.BLOCKS.HEADING_2,
152    blocks.BLOCKS.HEADING_3,
153    blocks.BLOCKS.HEADING_4,
154    blocks.BLOCKS.HEADING_5,
155    blocks.BLOCKS.HEADING_6,
156    blocks.BLOCKS.OL_LIST,
157    blocks.BLOCKS.UL_LIST,
158    blocks.BLOCKS.HR,
159    blocks.BLOCKS.QUOTE,
160    blocks.BLOCKS.EMBEDDED_ENTRY,
161    blocks.BLOCKS.EMBEDDED_ASSET,
162    blocks.BLOCKS.TABLE,
163];
164/**
165 * Array of all allowed block types inside list items
166 */
167exports.LIST_ITEM_BLOCKS = [
168    blocks.BLOCKS.PARAGRAPH,
169    blocks.BLOCKS.HEADING_1,
170    blocks.BLOCKS.HEADING_2,
171    blocks.BLOCKS.HEADING_3,
172    blocks.BLOCKS.HEADING_4,
173    blocks.BLOCKS.HEADING_5,
174    blocks.BLOCKS.HEADING_6,
175    blocks.BLOCKS.OL_LIST,
176    blocks.BLOCKS.UL_LIST,
177    blocks.BLOCKS.HR,
178    blocks.BLOCKS.QUOTE,
179    blocks.BLOCKS.EMBEDDED_ENTRY,
180    blocks.BLOCKS.EMBEDDED_ASSET,
181];
182exports.TABLE_BLOCKS = [
183    blocks.BLOCKS.TABLE,
184    blocks.BLOCKS.TABLE_ROW,
185    blocks.BLOCKS.TABLE_CELL,
186    blocks.BLOCKS.TABLE_HEADER_CELL,
187];
188/**
189 * Array of all void block types
190 */
191exports.VOID_BLOCKS = [blocks.BLOCKS.HR, blocks.BLOCKS.EMBEDDED_ENTRY, blocks.BLOCKS.EMBEDDED_ASSET];
192/**
193 * Dictionary of all container block types, and the set block types they accept as children.
194 *
195 * Note: This does not include `[BLOCKS.DOCUMENT]: TOP_LEVEL_BLOCKS`
196 */
197exports.CONTAINERS = (_a = {},
198    _a[blocks.BLOCKS.OL_LIST] = [blocks.BLOCKS.LIST_ITEM],
199    _a[blocks.BLOCKS.UL_LIST] = [blocks.BLOCKS.LIST_ITEM],
200    _a[blocks.BLOCKS.LIST_ITEM] = exports.LIST_ITEM_BLOCKS,
201    _a[blocks.BLOCKS.QUOTE] = [blocks.BLOCKS.PARAGRAPH],
202    _a[blocks.BLOCKS.TABLE] = [blocks.BLOCKS.TABLE_ROW],
203    _a[blocks.BLOCKS.TABLE_ROW] = [blocks.BLOCKS.TABLE_CELL, blocks.BLOCKS.TABLE_HEADER_CELL],
204    _a[blocks.BLOCKS.TABLE_CELL] = [blocks.BLOCKS.PARAGRAPH],
205    _a[blocks.BLOCKS.TABLE_HEADER_CELL] = [blocks.BLOCKS.PARAGRAPH],
206    _a);
207/**
208 * Array of all heading levels
209 */
210exports.HEADINGS = [
211    blocks.BLOCKS.HEADING_1,
212    blocks.BLOCKS.HEADING_2,
213    blocks.BLOCKS.HEADING_3,
214    blocks.BLOCKS.HEADING_4,
215    blocks.BLOCKS.HEADING_5,
216    blocks.BLOCKS.HEADING_6,
217];
218/**
219 * Array of all block types that may contain text and inline nodes.
220 */
221exports.TEXT_CONTAINERS = __spreadArray([blocks.BLOCKS.PARAGRAPH], exports.HEADINGS, true);
222/**
223 * Node types before `tables` release.
224 */
225exports.V1_NODE_TYPES = [
226    blocks.BLOCKS.DOCUMENT,
227    blocks.BLOCKS.PARAGRAPH,
228    blocks.BLOCKS.HEADING_1,
229    blocks.BLOCKS.HEADING_2,
230    blocks.BLOCKS.HEADING_3,
231    blocks.BLOCKS.HEADING_4,
232    blocks.BLOCKS.HEADING_5,
233    blocks.BLOCKS.HEADING_6,
234    blocks.BLOCKS.OL_LIST,
235    blocks.BLOCKS.UL_LIST,
236    blocks.BLOCKS.LIST_ITEM,
237    blocks.BLOCKS.HR,
238    blocks.BLOCKS.QUOTE,
239    blocks.BLOCKS.EMBEDDED_ENTRY,
240    blocks.BLOCKS.EMBEDDED_ASSET,
241    inlines.INLINES.HYPERLINK,
242    inlines.INLINES.ENTRY_HYPERLINK,
243    inlines.INLINES.ASSET_HYPERLINK,
244    inlines.INLINES.EMBEDDED_ENTRY,
245    'text',
246];
247/**
248 * Marks before `superscript` & `subscript` release.
249 */
250exports.V1_MARKS = [marks_1.default.BOLD, marks_1.default.CODE, marks_1.default.ITALIC, marks_1.default.UNDERLINE];
251
252}
252);
253
254unwrapExports(schemaConstraints);
255var schemaConstraints_1 = schemaConstraints.V1_MARKS;
256var schemaConstraints_2 = schemaConstraints.V1_NODE_TYPES;
257var schemaConstraints_3 = schemaConstraints.TEXT_CONTAINERS;
258var schemaConstraints_4 = schemaConstraints.HEADINGS;
259var schemaConstraints_5 = schemaConstraints.CONTAINERS;
260var schemaConstraints_6 = schemaConstraints.VOID_BLOCKS;
261var schemaConstraints_7 = schemaConstraints.TABLE_BLOCKS;
262var schemaConstraints_8 = schemaConstraints.LIST_ITEM_BLOCKS;
263var schemaConstraints_9 = schemaConstraints.TOP_LEVEL_BLOCKS;
264
265var types = createCommonjsModule(function (module, exports) {
266Object.defineProperty(exports, "__esModule", { value: true });
267
268});
269
270unwrapExports(types);
271
272var nodeTypes = createCommonjsModule(function (module, exports) {
273Object.defineProperty(exports, "__esModule", { value: true });
274
275});
276
277unwrapExports(nodeTypes);
278
279var emptyDocument = createCommonjsModule(function (module, exports) {
280Object.defineProperty(exports, "__esModule", { value: true });
281
282/**
283 * A rich text document considered to be empty.
284 * Any other document structure than this is not considered empty.
285 */
286var EMPTY_DOCUMENT = {
287    nodeType: blocks.BLOCKS.DOCUMENT,
288    data: {},
289    content: [
290        {
291            nodeType: blocks.BLOCKS.PARAGRAPH,
292            data: {},
293            content: [
294                {
295                    nodeType: 'text',
296                    value: '',
297                    marks: [],
298                    data: {},
299                },
300            ],
301        },
302    ],
303};
304exports.default = EMPTY_DOCUMENT;
305
306});
307
308unwrapExports(emptyDocument);
309
310var helpers = createCommonjsModule(function (module, exports) {
311Object.defineProperty(exports, "__esModule", { value: true });
312exports.isText = exports.isBlock = exports.isInline = void 0;
313
314
315/**
316 * Tiny replacement for Object.values(object).includes(key) to
317 * avoid including CoreJS polyfills
318 */
319function hasValue(obj, value) {
320    for (var _i = 0, _a = Object.keys(obj); _i < _a.length; _i++) {
321        var key = _a[_i];
322        if (value === obj[key]) {
323            return true;
324        }
325    }
326    return false;
327}
328/**
329 * Checks if the node is an instance of Inline.
330 */
331function isInline(node) {
332    return hasValue(inlines.INLINES, node.nodeType);
333}
334exports.isInline = isInline;
335/**
336 * Checks if the node is an instance of Block.
337 */
338function isBlock(node) {
339    return hasValue(blocks.BLOCKS, node.nodeType);
340}
341exports.isBlock = isBlock;
342/**
343 * Checks if the node is an instance of Text.
344 */
345function isText(node) {
346    return node.nodeType === 'text';
347}
348exports.isText = isText;
349
350});
351
352unwrapExports(helpers);
353var helpers_1 = helpers.isText;
354var helpers_2 = helpers.isBlock;
355var helpers_3 = helpers.isInline;
356
357var dist = createCommonjsModule(function (module, exports) {
358var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
359    if (k2 === undefined) k2 = k;
360    var desc = Object.getOwnPropertyDescriptor(m, k);
361    if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
362      desc = { enumerable: true, get: function() { return m[k]; } };
363    }
364    Object.defineProperty(o, k2, desc);
365}) : (function(o, m, k, k2) {
366    if (k2 === undefined) k2 = k;
367    o[k2] = m[k];
368}));
369var __setModuleDefault = (commonjsGlobal && commonjsGlobal.__setModuleDefault) || (Object.create ? (function(o, v) {
370    Object.defineProperty(o, "default", { enumerable: true, value: v });
371}) : function(o, v) {
372    o["default"] = v;
373});
374var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) {
375    for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
376};
377var __importStar = (commonjsGlobal && commonjsGlobal.__importStar) || function (mod) {
378    if (mod && mod.__esModule) return mod;
379    var result = {};
380    if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
381    __setModuleDefault(result, mod);
382    return result;
383};
384var __importDefault = (commonjsGlobal && commonjsGlobal.__importDefault) || function (mod) {
385    return (mod && mod.__esModule) ? mod : { "default": mod };
386};
387Object.defineProperty(exports, "__esModule", { value: true });
388exports.helpers = exports.EMPTY_DOCUMENT = exports.MARKS = exports.INLINES = exports.BLOCKS = void 0;
389
390Object.defineProperty(exports, "BLOCKS", { enumerable: true, get: function () { return blocks.BLOCKS; } });
391
392Object.defineProperty(exports, "INLINES", { enumerable: true, get: function () { return inlines.INLINES; } });
393
394Object.defineProperty(exports, "MARKS", { enumerable: true, get: function () { return __importDefault(marks).default; } });
395__exportStar(schemaConstraints, exports);
396__exportStar(types, exports);
397__exportStar(nodeTypes, exports);
398
399Object.defineProperty(exports, "EMPTY_DOCUMENT", { enumerable: true, get: function () { return __importDefault(emptyDocument).default; } });
400var helpers$1 = __importStar(helpers);
401exports.helpers = helpers$1;
402
403});
404
405unwrapExports(dist);
406var dist_1 = dist.helpers;
407var dist_2 = dist.EMPTY_DOCUMENT;
408var dist_3 = dist.MARKS;
409var dist_4 = dist.INLINES;
410var dist_5 = dist.BLOCKS;
411
412function appendKeyToValidElement(element, key) {
413    if (React.isValidElement(element) && element.key === null) {
414        return React.cloneElement(element, { key: key });
415    }
416    return element;
417}
418
419function nodeListToReactComponents(nodes, options) {
420    return nodes.map(function (node, index) {
421        return appendKeyToValidElement(nodeToReactComponent(node, options), index);
422    });
423}
424function nodeToReactComponent(node, options) {
425    var renderNode = options.renderNode, renderMark = options.renderMark, renderText = options.renderText;
426    if (dist_1.isText(node)) {
427        return node.marks.reduce(function (value, mark) {
428            if (!renderMark[mark.type]) {
429                return value;
430            }
431            return renderMark[mark.type](value);
432        }, renderText ? renderText(node.value) : node.value);
433    }
434    else {
435        var children = nodeListToReactComponents(node.content, options);
436        if (!node.nodeType || !renderNode[node.nodeType]) {
437            return React__default.createElement(React__default.Fragment, null, children);
438        }
439        return renderNode[node.nodeType](node, children);
440    }
441}
442
443var _a, _b;
444var defaultNodeRenderers = (_a = {},
445    _a[dist_5.DOCUMENT] = function (node, children) { return children; },
446    _a[dist_5.PARAGRAPH] = function (node, children) { return React__default.createElement("p", null, children); },
447    _a[dist_5.HEADING_1] = function (node, children) { return React__default.createElement("h1", null, children); },
448    _a[dist_5.HEADING_2] = function (node, children) { return React__default.createElement("h2", null, children); },
449    _a[dist_5.HEADING_3] = function (node, children) { return React__default.createElement("h3", null, children); },
450    _a[dist_5.HEADING_4] = function (node, children) { return React__default.createElement("h4", null, children); },
451    _a[dist_5.HEADING_5] = function (node, children) { return React__default.createElement("h5", null, children); },
452    _a[dist_5.HEADING_6] = function (node, children) { return React__default.createElement("h6", null, children); },
453    _a[dist_5.EMBEDDED_ENTRY] = function (node, children) { return React__default.createElement("div", null, children); },
454    _a[dist_5.UL_LIST] = function (node, children) { return React__default.createElement("ul", null, children); },
455    _a[dist_5.OL_LIST] = function (node, children) { return React__default.createElement("ol", null, children); },
456    _a[dist_5.LIST_ITEM] = function (node, children) { return React__default.createElement("li", null, children); },
457    _a[dist_5.QUOTE] = function (node, children) { return React__default.createElement("blockquote", null, children); },
458    _a[dist_5.HR] = function () { return React__default.createElement("hr", null); },
459    _a[dist_5.TABLE] = function (node, children) { return (React__default.createElement("table", null,
460        React__default.createElement("tbody", null, children))); },
461    _a[dist_5.TABLE_ROW] = function (node, children) { return React__default.createElement("tr", null, children); },
462    _a[dist_5.TABLE_HEADER_CELL] = function (node, children) { return React__default.createElement("th", null, children); },
463    _a[dist_5.TABLE_CELL] = function (node, children) { return React__default.createElement("td", null, children); },
464    _a[dist_4.ASSET_HYPERLINK] = function (node) { return defaultInline(dist_4.ASSET_HYPERLINK, node); },
465    _a[dist_4.ENTRY_HYPERLINK] = function (node) { return defaultInline(dist_4.ENTRY_HYPERLINK, node); },
466    _a[dist_4.EMBEDDED_ENTRY] = function (node) { return defaultInline(dist_4.EMBEDDED_ENTRY, node); },
467    _a[dist_4.HYPERLINK] = function (node, children) { return React__default.createElement("a", { href: node.data.uri }, children); },
468    _a);
469var defaultMarkRenderers = (_b = {},
470    _b[dist_3.BOLD] = function (text) { return React__default.createElement("b", null, text); },
471    _b[dist_3.ITALIC] = function (text) { return React__default.createElement("i", null, text); },
472    _b[dist_3.UNDERLINE] = function (text) { return React__default.createElement("u", null, text); },
473    _b[dist_3.CODE] = function (text) { return React__default.createElement("code", null, text); },
474    _b[dist_3.SUPERSCRIPT] = function (text) { return React__default.createElement("sup", null, text); },
475    _b[dist_3.SUBSCRIPT] = function (text) { return React__default.createElement("sub", null, text); },
476    _b);
477function defaultInline(type, node) {
478    return (React__default.createElement("span", { key: node.data.target.sys.id },
479        "type: ",
480        node.nodeType,
481        " id: ",
482        node.data.target.sys.id));
483}
484/**
485 * Serialize a Contentful Rich Text `document` to React tree
486 */
487function documentToReactComponents(richTextDocument, options) {
488    if (options === void 0) { options = {}; }
489    if (!richTextDocument) {
490        return null;
491    }
492    return nodeToReactComponent(richTextDocument, {
493        renderNode: __assign(__assign({}, defaultNodeRenderers), options.renderNode),
494        renderMark: __assign(__assign({}, defaultMarkRenderers), options.renderMark),
495        renderText: options.renderText,
496    });
497}
498
499exports.documentToReactComponents = documentToReactComponents;
500//# sourceMappingURL=rich-text-react-renderer.es5.js.map
501
502
503/***/ }),
504
505/***/ 857305:
506/***/ (function(__unused_webpack_module, exports) {
507
508"use strict";
509
510Object.defineProperty(exports, "__esModule", ({ value: true }));
511const useGetUrlsInfo = ({ desktopMedia, mobileMedia, includeHttps = true, }) => {
512    const desktopAsset = desktopMedia?.fields?.asset;
513    const mobileAsset = mobileMedia?.fields?.asset ?? desktopMedia?.fields?.asset;
514    if (!desktopAsset) {
515        return {
516            source: null,
517            mobileSource: null,
518            altText: '',
519        };
520    }
521    const altText = desktopAsset?.fields?.title || '';
522    let desktopSrc = desktopAsset.fields.file.url;
523    let mobileSrc = mobileAsset?.fields.file.url ?? desktopSrc;
524    if (includeHttps) {
525        desktopSrc = desktopSrc.startsWith('http')
526            ? desktopSrc
527            : `https:${desktopSrc}`;
528        mobileSrc = mobileSrc.startsWith('http') ? mobileSrc : `https:${mobileSrc}`;
529    }
530    return {
531        source: desktopSrc,
532        mobileSource: mobileSrc,
533        altText,
534    };
535};
536exports["default"] = useGetUrlsInfo;
537
538
539/***/ }),
540
541/***/ 723474:
542/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
543
544"use strict";
545
546var __importDefault = (this && this.__importDefault) || function (mod) {
547    return (mod && mod.__esModule) ? mod : { "default": mod };
548};
549Object.defineProperty(exports, "__esModule", ({ value: true }));
550exports.ResponsiveMediaPod = void 0;
551const jsx_runtime_1 = __webpack_require__(785893);
552const clsx_1 = __importDefault(__webpack_require__(557966));
553const image_1 = __webpack_require__(425675);
554const bannerFormat_1 = __webpack_require__(137305);
555const useGetUrlsInfo_1 = __importDefault(__webpack_require__(857305));
556const ImageOptimized_1 = __importDefault(__webpack_require__(83521));
557const ResponsiveMediaPod = ({ mediaPod, mobileMediaPod, className, imageProps, improveLCP = false, keepOriginalImage = false, }) => {
558    const { source, mobileSource, altText } = (0, useGetUrlsInfo_1.default)({
559        desktopMedia: mediaPod,
560        mobileMedia: mobileMediaPod,
561    });
562    if (!source)
563        return null;
564    const common = {
565        alt: altText,
566        fill: true,
567        loader: ({ src }) => src,
568        src: source,
569        unoptimized: true,
570        ...imageProps,
571    };
572    const { props } = (0, image_1.getImageProps)({ ...common });
573    return ((0, jsx_runtime_1.jsx)(ImageOptimized_1.default, { url: source, urlMobile: mobileSource, className: (0, clsx_1.default)('responsive-media-pod', className), imageFormats: bannerFormat_1.bannerFormat, improveLCP: improveLCP, keepOriginalImage: keepOriginalImage, ...props }));
574};
575exports.ResponsiveMediaPod = ResponsiveMediaPod;
576
577
578/***/ }),
579
580/***/ 137305:
581/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
582
583"use strict";
584
585Object.defineProperty(exports, "__esModule", ({ value: true }));
586exports.bannerFormat = void 0;
587const breakpoints_1 = __webpack_require__(298222);
588const usePictureSources_1 = __webpack_require__(626931);
589exports.bannerFormat = [
590    {
591        urlProps: {
592            fm: usePictureSources_1.FORMAT_TYPES.WEBP,
593            w: breakpoints_1.BREAKPOINTS.MOBILE_M.toString(),
594            h: breakpoints_1.BREAKPOINTS.MOBILE_M.toString(),
595            q: breakpoints_1.QUALITY.DEFAULT,
596            fit: breakpoints_1.FIT_SIZE.THUMB,
597        },
598        bp: breakpoints_1.BREAKPOINTS.MOBILE_M,
599        media: breakpoints_1.MEDIA.MOBILE_M,
600        isMobile: true,
601    },
602    {
603        urlProps: {
604            fm: usePictureSources_1.FORMAT_TYPES.AVIF,
605            w: breakpoints_1.BREAKPOINTS.MOBILE_M.toString(),
606            h: breakpoints_1.BREAKPOINTS.MOBILE_M.toString(),
607            q: breakpoints_1.QUALITY.DEFAULT,
608            fit: breakpoints_1.FIT_SIZE.THUMB,
609        },
610        bp: breakpoints_1.BREAKPOINTS.MOBILE_M,
611        media: breakpoints_1.MEDIA.MOBILE_M,
612        isMobile: true,
613    },
614    {
615        urlProps: {
616            fm: usePictureSources_1.FORMAT_TYPES.WEBP,
617            w: breakpoints_1.BREAKPOINTS.MOBILE_W.toString(),
618            h: breakpoints_1.BREAKPOINTS.MOBILE_W.toString(),
619            q: breakpoints_1.QUALITY.DEFAULT,
620            fit: breakpoints_1.FIT_SIZE.THUMB,
621        },
622        bp: breakpoints_1.BREAKPOINTS.MOBILE_W,
623        media: breakpoints_1.MEDIA.MOBILE_W,
624        isMobile: true,
625    },
626    {
627        urlProps: {
628            fm: usePictureSources_1.FORMAT_TYPES.AVIF,
629            w: breakpoints_1.BREAKPOINTS.MOBILE_W.toString(),
630            h: breakpoints_1.BREAKPOINTS.MOBILE_W.toString(),
631            q: breakpoints_1.QUALITY.DEFAULT,
632            fit: breakpoints_1.FIT_SIZE.THUMB,
633        },
634        bp: breakpoints_1.BREAKPOINTS.MOBILE_W,
635        media: breakpoints_1.MEDIA.MOBILE_W,
636        isMobile: true,
637    },
638    {
639        urlProps: {
640            fm: usePictureSources_1.FORMAT_TYPES.WEBP,
641            w: breakpoints_1.BREAKPOINTS.TABLET_S.toString(),
642            h: breakpoints_1.BREAKPOINTS.TABLET_S.toString(),
643            q: breakpoints_1.QUALITY.DEFAULT,
644            fit: breakpoints_1.FIT_SIZE.THUMB,
645        },
646        bp: breakpoints_1.BREAKPOINTS.TABLET_S,
647        media: breakpoints_1.MEDIA.TABLET_S,
648        isMobile: true,
649    },
650    {
651        urlProps: {
652            fm: usePictureSources_1.FORMAT_TYPES.AVIF,
653            w: breakpoints_1.BREAKPOINTS.TABLET_S.toString(),
654            h: breakpoints_1.BREAKPOINTS.TABLET_S.toString(),
655            q: breakpoints_1.QUALITY.DEFAULT,
656            fit: breakpoints_1.FIT_SIZE.THUMB,
657        },
658        bp: breakpoints_1.BREAKPOINTS.TABLET_S,
659        media: breakpoints_1.MEDIA.TABLET_S,
660        isMobile: true,
661    },
662    {
663        urlProps: {
664            fm: usePictureSources_1.FORMAT_TYPES.WEBP,
665            w: breakpoints_1.BREAKPOINTS.TABLET_M.toString(),
666        },
667        bp: breakpoints_1.BREAKPOINTS.TABLET_M,
668        media: breakpoints_1.MEDIA.TABLET_M,
669        isMobile: false,
670    },
671    {
672        urlProps: {
673            fm: usePictureSources_1.FORMAT_TYPES.AVIF,
674            w: breakpoints_1.BREAKPOINTS.TABLET_M.toString(),
675        },
676        bp: breakpoints_1.BREAKPOINTS.TABLET_M,
677        media: breakpoints_1.MEDIA.TABLET_M,
678        isMobile: false,
679    },
680    {
681        urlProps: {
682            fm: usePictureSources_1.FORMAT_TYPES.WEBP,
683            w: breakpoints_1.BREAKPOINTS.LAPTOP_S.toString(),
684        },
685        bp: breakpoints_1.BREAKPOINTS.LAPTOP_S,
686        media: breakpoints_1.MEDIA.LAPTOP_S,
687        isMobile: false,
688    },
689    {
690        urlProps: {
691            fm: usePictureSources_1.FORMAT_TYPES.AVIF,
692            w: breakpoints_1.BREAKPOINTS.LAPTOP_S.toString(),
693        },
694        bp: breakpoints_1.BREAKPOINTS.LAPTOP_S,
695        media: breakpoints_1.MEDIA.LAPTOP_S,
696        isMobile: false,
697    },
698    {
699        urlProps: {
700            fm: usePictureSources_1.FORMAT_TYPES.WEBP,
701            w: breakpoints_1.BREAKPOINTS.LAPTOP_M.toString(),
702        },
703        bp: breakpoints_1.BREAKPOINTS.LAPTOP_M,
704        media: breakpoints_1.MEDIA.LAPTOP_M,
705        isMobile: false,
706    },
707    {
708        urlProps: {
709            fm: usePictureSources_1.FORMAT_TYPES.AVIF,
710            w: breakpoints_1.BREAKPOINTS.LAPTOP_M.toString(),
711        },
712        bp: breakpoints_1.BREAKPOINTS.LAPTOP_M,
713        media: breakpoints_1.MEDIA.LAPTOP_M,
714        isMobile: false,
715    },
716    {
717        urlProps: {
718            fm: usePictureSources_1.FORMAT_TYPES.WEBP,
719            w: breakpoints_1.BREAKPOINTS.HD.toString(),
720        },
721        bp: breakpoints_1.BREAKPOINTS.HD,
722        media: breakpoints_1.MEDIA.LAPTOP_HD,
723        isMobile: false,
724    },
725    {
726        urlProps: {
727            fm: usePictureSources_1.FORMAT_TYPES.AVIF,
728            w: breakpoints_1.BREAKPOINTS.HD.toString(),
729        },
730        bp: breakpoints_1.BREAKPOINTS.HD,
731        media: breakpoints_1.MEDIA.LAPTOP_HD,
732        isMobile: false,
733    },
734];
735
736
737/***/ }),
738
739/***/ 859315:
740/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
741
742"use strict";
743
744var __importDefault = (this && this.__importDefault) || function (mod) {
745    return (mod && mod.__esModule) ? mod : { "default": mod };
746};
747Object.defineProperty(exports, "__esModule", ({ value: true }));
748exports.RichTextPod = void 0;
749const jsx_runtime_1 = __webpack_require__(785893);
750const rich_text_react_renderer_1 = __webpack_require__(374129);
751const clsx_1 = __importDefault(__webpack_require__(557966));
752const stringUtils_1 = __webpack_require__(782219);
753const RichTextPod = (props) => {
754    const { richTextContent: content, designVariationTextColor: textColor, designVariationTextAlignment: textAlignment, }
754 = props?.data?.fields || {};
755    const classes = (0, clsx_1.default)(textColor &&
756        `rich-text-pod__text-color--${(0, stringUtils_1.hyphenateSpaces)(textColor?.toLowerCase())}`, textAlignment &&
757        `rich-text-pod__text-alignment--${(0, stringUtils_1.hyphenateSpaces)(textAlignment?.toLowerCase())}`);
758    if (!content) {
759        return null;
760    }
761    return (0, jsx_runtime_1.jsx)("div", { className: classes, children: (0, rich_text_react_renderer_1.documentToReactComponents)(content) });
762};
763exports.RichTextPod = RichTextPod;
764
765
766/***/ }),
767
768/***/ 352599:
769/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
770
771"use strict";
772
773Object.defineProperty(exports, "__esModule", ({ value: true }));
774const RichTextPod_1 = __webpack_require__(859315);
775exports["default"] = RichTextPod_1.RichTextPod;
776
777
778/***/ }),
779
780/***/ 649900:
781/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
782
783"use strict";
784
785var __importDefault = (this && this.__importDefault) || function (mod) {
786    return (mod && mod.__esModule) ? mod : { "default": mod };
787};
788Object.defineProperty(exports, "__esModule", ({ value: true }));
789exports.VerticalBannerTile = void 0;
790const jsx_runtime_1 = __webpack_require__(785893);
791const link_1 = __importDefault(__webpack_require__(741664));
792const VerticalBannerContainer_1 = __webpack_require__(262750);
793const VerticalBannerTile = (props) => {
794    const { data } = props;
795    return (
796    // Despite the content type configuration, entire vertical banner should be linkeable
797    (0, jsx_runtime_1.jsx)(link_1.default, { href: data.fields.callToAction?.fields?.target || '', children: (0, jsx_runtime_1.jsx)("div", { className: "vertical-banner-tile", children: (0, jsx_runtime_1.jsx)(VerticalBannerContainer_1.VerticalBannerContainer, { ...data, asBackground: true }) }) }));
798};
799exports.VerticalBannerTile = VerticalBannerTile;
800
801
802/***/ }),
803
804/***/ 202665:
805/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
806
807"use strict";
808
809var __importDefault = (this && this.__importDefault) || function (mod) {
810    return (mod && mod.__esModule) ? mod : { "default": mod };
811};
812Object.defineProperty(exports, "__esModule", ({ value: true }));
813exports.BannerCollection = exports.getSettings = exports.NextArrow = exports.PrevArrow = void 0;
814const jsx_runtime_1 = __webpack_require__(785893);
815const react_1 = __webpack_require__(667294);
816const react_slick_1 = __importDefault(__webpack_require__(446066));
817const stringUtils_1 = __webpack_require__(782219);
818const BannerContainer_1 = __webpack_require__(343213);
819const Icon_1 = __importDefault(__webpack_require__(229818));
820const handleLeftArrowClick = (currentSlide, callBack) => {
821    if (callBack && currentSlide && currentSlide > 0)
822        callBack(currentSlide - 1);
823};
824const handleRightArrowClick = (slideCount, currentSlide, callBack) => {
825    if (slideCount && currentSlide !== undefined && currentSlide < slideCount)
826        if (callBack !== undefined)
827            callBack(currentSlide + 1);
828};
829const PrevArrow = (props) => {
830    const { currentSlide, callBack = () => null } = props;
831    const disabledArrow = currentSlide !== undefined && currentSlide < 1;
832    const arrowClass = disabledArrow
833        ? `${'arrow arrow-left disabled-arrow'}`
834        : `${'arrow arrow-left'}`;
835    return ((0, jsx_runtime_1.jsx)("button", { className: arrowClass, onClick: () => handleLeftArrowClick(currentSlide, callBack), children: (0, jsx_runtime_1.jsx)(Icon_1.default, { id: 'arrow-left-thin', iconName: "arrow-left-thin" }) }));
836};
837exports.PrevArrow = PrevArrow;
838const NextArrow = (props) => {
839    const { slideCount, currentSlide, callBack = () => null } = props;
840    const disabledArrow = currentSlide !== undefined &&
841        slideCount !== undefined &&
842        currentSlide >= slideCount - 1;
843    const arrowClass = disabledArrow
844        ? `${'arrow arrow-right disabled-arrow'}`
845        : `${'arrow arrow-right'}`;
846    return ((0, jsx_runtime_1.jsx)("button", { className: arrowClass, onClick: () => handleRightArrowClick(slideCount, currentSlide, callBack), children: (0, jsx_runtime_1.jsx)(Icon_1.default, { iconName: "arrow-right-thin" }) }));
847};
848exports.NextArrow = NextArrow;
849const getSettings = (currentSlide, callBack) => ({
850    infinite: false,
851    lazyLoad: 'progressive',
852    swipeDirection: 'down',
853    speed: 500,
854    slidesToShow: 1,
855    slidesToScroll: 1,
856    arrows: true,
857    adaptiveHeight: false,
858    prevArrow: (0, jsx_runtime_1.jsx)(exports.PrevArrow, { currentSlide: currentSlide, callBack: callBack }),
859    nextArrow: (0, jsx_runtime_1.jsx)(exports.NextArrow, { currentSlide: currentSlide, callBack: callBack }),
860    dots: false,
861    className: 'container-slider',
862    initialSlide: currentSlide,
863    beforeChange: (prev, next) => {
864        if (next !== prev) {
865            callBack(next);
866        }
867    },
868});
869exports.getSettings = getSettings;
870const BannerCollection = (props) => {
871    const sliderRef = (0, react_1.useRef)(null);
872    const [currentSlide, setCurrentSlide] = (0, react_1.useState)(0);
873    (0, react_1.useEffect)(() => {
874        if (sliderRef.current)
875            sliderRef.current.slickGoTo(currentSlide);
876    }, [currentSlide]);
877    const { data, keepOriginalImage = false } = props;
878    if (!data.fields) {
879        return null;
880    }
881    const tiles = data?.fields?.bannerContainers;
882    const { designVariationBannerHeight } = data?.fields;
883    const bannerHeightClass = designVariationBannerHeight &&
884        'banner-title--height-' +
885            (0, stringUtils_1.hyphenateSpaces)(designVariationBannerHeight ?? '');
886    const settings = (0, exports.getSettings)(currentSlide, setCurrentSlide);
887    if (!tiles?.length)
888        return null;
889    const asBackground = !bannerHeightClass?.includes('fit-to-image');
890    const id = data.sys.id;
891    // Rendering a single tile as a banner without Slider
892    // allows us to prerender the banner and avoid flickering
893    if (tiles?.length === 1) {
894        return (
895        // slider-wrapper may not be a good class name
896        // but DY may be using it
897        (0, jsx_runtime_1.jsx)("div", { className: "slider-wrapper", id: id, children: (0, jsx_runtime_1.jsx)(BannerTileItem, { asBackground: asBackground, className: bannerHeightClass, item: tiles[0], keepOriginalImage: keepOriginalImage }) }));
898    }
899    return ((0, jsx_runtime_1.jsx)("div", { className: "slider-wrapper", id: id, children: (0, jsx_runtime_1.jsx)(react_slick_1.default, { ...settings, ref: sliderRef, children: tiles?.map((item, idx) => ((0, jsx_runtime_1.jsx)(BannerTileItem, { asBackground: asBackground, className: bannerHeightClass, item: item, keepOriginalImage: keepOriginalImage }, idx))) }) }));
900};
901exports.BannerCollection = BannerCollection;
902const BannerTileItem = ({ item, className = '', asBackground = true, keepOriginalImage = false, }) => {
903    return ((0, jsx_runtime_1.jsx)("div", { className: `banner-media-tile ${className}`, children: (0, jsx_runtime_1.jsx)(BannerContainer_1.BannerContainer, { ...item, asBackground: asBackground, keepOriginalImage: keepOriginalImage }) }));
904};
905
906
907/***/ }),
908
909/***/ 457967:
910/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
911
912"use strict";
913
914Object.defineProperty(exports, "__esModule", ({ value: true }));
915const BannerCollection_1 = __webpack_require__(202665);
916exports["default"] = BannerCollection_1.BannerCollection;
917
918
919/***/ }),
920
921/***/ 266311:
922/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
923
924"use strict";
925
926var __importDefault = (this && this.__importDefault) || function (mod) {
927    return (mod && mod.__esModule) ? mod : { "default": mod };
928};
929Object.defineProperty(exports, "__esModule", ({ value: true }));
930const jsx_runtime_1 = __webpack_require__(785893);
931const link_1 = __importDefault(__webpack_require__(741664));
932const breakpoints_1 = __webpack_require__(298222);
933const Carousel_1 = __webpack_require__(345582);
934const MediaPod_1 = __webpack_require__(693075);
935const PlpMiniNav = ({ data }) => {
936    const { TABLET, TABLET_M, LAPTOP } = breakpoints_1.BREAKPOINTS;
937    if (!data.fields || !data.fields.miniNavItemsCarousel)
938        return null;
939    const slidesToShowLaptop = data.fields.miniNavItemsCarousel?.length < 8
940        ? data.fields.miniNavItemsCarousel.length
941        : 8;
942    const slidesToShowTabletW = data.fields.miniNavItemsCarousel?.length < 6
943        ? data.fields.miniNavItemsCarousel.length
944        : 6;
945    const buildResponsiveProps = () => [
946        {
947            breakpoint: LAPTOP,
948            settings: {
949                slidesToShow: slidesToShowLaptop,
950            },
951        },
952        {
953            breakpoint: 1024,
954            settings: {
955                slidesToShow: slidesToShowTabletW,
956            },
957        },
958        {
959            breakpoint: 900,
960            settings: {
961                slidesToShow: 8,
962            },
963        },
964        {
965            breakpoint: TABLET,
966            settings: {
967                slidesToShow: 5,
968            },
969        },
970        {
971            breakpoint: TABLET_M,
972            settings: {
973                slidesToShow: 5.6,
974            },
975        },
976        {
977            breakpoint: 480,
978            settings: {
979                slidesToShow: 3,
980            },
981        },
982        {
983            breakpoint: 425,
984            settings: {
985                slidesToShow: 2.6,
986            },
987        },
988        {
989            breakpoint: 360,
990            settings: {
991                slidesToShow: 2,
992            },
993        },
994    ];
995    const DEFAULT_CAROUSEL_SETTINGS = {
996        slidesToShow: 8,
997    };
998    return ((0, jsx_runtime_1.jsx)(Carousel_1.Carousel, { ...DEFAULT_CAROUSEL_SETTINGS, dots: false, className: "mini-nav-carousel", arrows: true, responsive: buildResponsiveProps(), draggable: false, swipe: true, initialSlide: 0, children: data.fields.miniNavItemsCarousel
999            ?.filter((e) => e.fields?.linkToCollection)
1000            .map((e) => ((0, jsx_runtime_1.jsxs)(link_1.default, { href: sanitizeUrl(`/collections/${e.fields?.linkToCollection}`), children: [(0, jsx_runtime_1.jsx)(MediaPod_1.MediaPod, { ...e.fields.media, height: 100, width: 100, className: "mini-nav-carousel__image" }), (0, jsx_runtime_1.jsx)("p", { className: "mini-nav-carousel__text", children: e.fields.displayTitle })] }, e.sys.id))) }, data.sys.id));
1001};
1002exports["default"] = PlpMiniNav;
1003const sanitizeUrl = (path) => {
1004    return path.replace(/([^:]\/)\/+/g, '$1');
1005};
1006
1007
1008/***/ }),
1009
1010/***/ 343213:
1011/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1012
1013"use strict";
1014
1015var __importDefault = (this && this.__importDefault) || function (mod) {
1016    return (mod && mod.__esModule) ? mod : { "default": mod };
1017};
1018Object.defineProperty(exports, "__esModule", ({ value: true }));
1019exports.BannerContainer = void 0;
1020const react_1 = __webpack_require__(667294);
1021const jsx_runtime_1 = __webpack_require__(785893);
1022const clsx_1 = __importDefault(__webpack_require__(557966));
1023const FlatTextPod_1 = __webpack_require__(777700);
1024const ResponsiveMediaPod_1 = __webpack_require__(723474);
1025const RichTextPod_1 = __importDefault(__webpack_require__(352599));
1026const LinkPod_1 = __importDefault(__webpack_require__(937740));
1027const BannerContainer = (props) => {
1028    if (!props.fields)
1029        return null;
1030    const { fields, keepOriginalImage = false } = props;
1031    const { media, backgroundMobile, overlayText, callToAction, designVariationTextAlignment, } = fields;
1032    const textAlignmentClass = designVariationTextAlignment?.includes('Left')
1033        ? 'caption--left'
1034        : 'caption--center';
1035    const isIPodFlatText = (content) => content?.fields?.textContent ? true : false;
1036    const isIRichTextPod = (content) => content?.fields?.richTextContent?.content ? true : false;
1037    const BannerContainerText = ({ content, }) => {
1038        return isIPodFlatText(content) ? ((0, jsx_runtime_1.jsx)(FlatTextPod_1.FlatTextPod, { ...content })) : isIRichTextPod(content) ? ((0, jsx_runtime_1.jsx)(RichTextPod_1.default, { data: content })) : null;
1039    };
1040    const bannerContentClassNames = (0, clsx_1.default)('caption', textAlignmentClass, 'banner-content');
1041    return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [media && ((0, jsx_runtime_1.jsx)(ResponsiveMediaPod_1.ResponsiveMediaPod, { mediaPod: media, mobileMediaPod: backgroundMobile, className: "media--default", imageProps: {
1042                    priority: true,
1043                }, improveLCP: true, keepOriginalImage: keepOriginalImage })), (0, jsx_runtime_1.jsxs)("div", { className: bannerContentClassNames, children: [overlayText?.length &&
1044                        overlayText.map((title, i) => ((0, jsx_runtime_1.jsx)(BannerContainerText, { content: title }, `TextPod-${i}`))), (0, jsx_runtime_1.jsx)("div", { className: "banner-content__cta-wrapper", children: callToAction && Array.isArray(callToAction)
1045                            ? callToAction.map((item, idx) => ((0, react_1.createElement)(LinkPod_1.default, { ...item, key: `call-to-action-${idx}` })))
1046                            : null })] })] }));
1047};
1048exports.BannerContainer = BannerContainer;
1049
1050
1051/***/ }),
1052
1053/***/ 262750:
1054/***/ (function(__unused_webpack_module, exports, __webpack_require__) {
1055
1056"use strict";
1057
1058var __importDefault = (this && this.__importDefault) || function (mod) {
1059    return (mod && mod.__esModule) ? mod : { "default": mod };
1060};
1061Object.defineProperty(exports, "__esModule", ({ value: true }));
1062exports.VerticalBannerContainer = void 0;
1063const jsx_runtime_1 = __webpack_require__(785893);
1064const FlatTextPod_1 = __webpack_require__(777700);
1065const ResponsiveMediaPod_1 = __webpack_require__(723474);
1066const RichTextPod_1 = __importDefault(__webpack_require__(352599));
1067const LinkPod_1 = __importDefault(__webpack_require__(937740));
1068const VerticalBannerContainer = (props) => {
1069    if (!props.fields)
1070        return null;
1071    const { media, backgroundMobile, overlayText, callToAction } = props.fields;
1072    const isIPodFlatText = (content) => content?.fields?.textContent ? true : false;
1073    const isIRichTextPod = (content) => content?.fields?.richTextContent?.content ? true : false;
1074    const BannerContainerText = ({ content, }) => {
1075        return isIPodFlatText(content) ? ((0, jsx_runtime_1.jsx)(FlatTextPod_1.FlatTextPod, { ...content })) : isIRichTextPod(content) ? ((0, jsx_runtime_1.jsx)(RichTextPod_1.default, { data: content })) : null;
1076    };
1077    return ((0, jsx_runtime_1.jsxs)("div", { children: [(0, jsx_runtime_1.jsx)(ResponsiveMediaPod_1.ResponsiveMediaPod, { mediaPod: media, mobileMediaPod: backgroundMobile, className: "vertical-banner-media" }), (0, jsx_runtime_1.jsx)("div", { className: "caption vertical-banner-caption", children: (0, jsx_runtime_1.jsxs)("div", { children: [overlayText?.length &&
1078                            overlayText.map((title, i) => ((0, jsx_runtime_1.jsx)(BannerContainerText, { content: title }, `TextPod-${i}`))), callToAction && (0, jsx_runtime_1.jsx)(LinkPod_1.default, { ...callToAction })] }) })] }));
1079};
1080exports.VerticalBannerContainer = VerticalBannerContainer;
1081
1082
1083/***/ }),
1084
1085/***/ 532417:
1086/***/ (function(__unused_webpack_module, __unused_webpack_exports, __webpack_require__) {
1087
1088
1089    (window.__NEXT_P = window.__NEXT_P || []).push([
1090      "/collections/[categorySlug]",
1091      function () {
1092        return __webpack_require__(18995);
1093      }
1094    ]);
1095    if(false) {}
1096  
1097
1098/***/ }),
1099
1100/***/ 514421:
1101/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1102
1103"use strict";
1104/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1105/* harmony export */   T: function() { return /* binding */ Configure; }
1106/* harmony export */ });
1107/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
1108/* harmony import */ var react_instantsearch__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(32174);
1109
1110
1111//this component re-wraps the Configure component
1112//from Algolia to get around the current bugs with Typescript
1113const Configure = (props)=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(react_instantsearch__WEBPACK_IMPORTED_MODULE_1__/* .Configure */ .T, {
1114        ...props
1115    });
1116
1117
1118/***/ }),
1119
1120/***/ 892270:
1121/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1122
1123"use strict";
1124
1125// EXPORTS
1126__webpack_require__.d(__webpack_exports__, {
1127  S: function() { return /* binding */ FilterRenderer; }
1128});
1129
1130// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
1131var jsx_runtime = __webpack_require__(785893);
1132// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/hooks/useRouteChange.js
1133var useRouteChange = __webpack_require__(723484);
1134// EXTERNAL MODULE: ./node_modules/react-instantsearch-core/dist/es/connectors/useClearRefinements.js
1135var useClearRefinements = __webpack_require__(457829);
1136;// CONCATENATED MODULE: ./src/components/ProductListingPage/ClearFilters.tsx
1137
1138
1139
1140const ClearFilters = ()=>{
1141    const { refine: clearRefinements } = (0,useClearRefinements/* useClearRefinements */.n)();
1142    (0,useRouteChange.useRouteChange)({
1143        callback: clearRefinements
1144    });
1145    return /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
1146        children: /*#__PURE__*/ (0,jsx_runtime.jsx)("button", {
1147            className: "clear-filters__button",
1148            onClick: ()=>clearRefinements(),
1149            children: "Clear all filters"
1150        })
1151    });
1152};
1153
1154// EXTERNAL MODULE: ./src/components/ProductListingPage/Configure.tsx
1155var Configure = __webpack_require__(514421);
1156// EXTERNAL MODULE: ./src/components/ProductListingPage/RefinementFilter.tsx
1157var RefinementFilter = __webpack_require__(913362);
1158;// CONCATENATED MODULE: ./src/components/ProductListingPage/FilterRenderer.tsx
1159
1160
1161
1162
1163const FilterRenderer = (param)=>{
1164    let { filterOptionList } = param;
1165    if (!filterOptionList) return null;
1166    return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
1167        children: [
1168            /*#__PURE__*/ (0,jsx_runtime.jsx)(ClearFilters, {}),
1169            /*#__PURE__*/ (0,jsx_runtime.jsx)(Configure/* Configure */.T, {
1170                maxValuesPerFacet: 1000
1171            }),
1172            filterOptionList.map((param, index)=>{
1173                let { key, value } = param;
1174                return /*#__PURE__*/ (0,jsx_runtime.jsx)(RefinementFilter/* default */.Z, {
1175                    filterText: value,
1176                    filterValue: key
1177                }, "".concat(key, "-").concat(index));
1178            })
1179        ]
1180    });
1181};
1182
1183
1184/***/ }),
1185
1186/***/ 738222:
1187/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1188
1189"use strict";
1190
1191// EXPORTS
1192__webpack_require__.d(__webpack_exports__, {
1193  z: function() { return /* binding */ MobileFilter; }
1194});
1195
1196// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
1197var jsx_runtime = __webpack_require__(785893);
1198// EXTERNAL MODULE: ./node_modules/react/index.js
1199var react = __webpack_require__(667294);
1200// EXTERNAL MODULE: ./node_modules/@mui/icons-material/Close.js
1201var Close = __webpack_require__(450594);
1202// EXTERNAL MODULE: ./node_modules/@mui/icons-material/ExpandMore.js
1203var ExpandMore = __webpack_require__(823508);
1204// EXTERNAL MODULE: ./node_modules/@mui/icons-material/Tune.js
1205var Tune = __webpack_require__(875395);
1206// EXTERNAL MODULE: ./node_modules/@mui/material/Accordion/Accordion.js
1207var Accordion = __webpack_require__(86532);
1208// EXTERNAL MODULE: ./node_modules/@mui/material/AccordionDetail
1208s/AccordionDetails.js
1209var AccordionDetails = __webpack_require__(963083);
1210// EXTERNAL MODULE: ./node_modules/@mui/material/AccordionSummary/AccordionSummary.js
1211var AccordionSummary = __webpack_require__(361250);
1212// EXTERNAL MODULE: ./node_modules/@mui/material/Avatar/Avatar.js
1213var Avatar = __webpack_require__(827995);
1214// EXTERNAL MODULE: ./node_modules/@mui/material/Box/Box.js
1215var Box = __webpack_require__(999226);
1216// EXTERNAL MODULE: ./node_modules/@mui/material/Button/Button.js
1217var Button = __webpack_require__(669397);
1218// EXTERNAL MODULE: ./node_modules/@mui/material/Divider/Divider.js
1219var Divider = __webpack_require__(467720);
1220// EXTERNAL MODULE: ./node_modules/@mui/material/Drawer/Drawer.js
1221var Drawer = __webpack_require__(619058);
1222// EXTERNAL MODULE: ./node_modules/@mui/material/FormControl/FormControl.js
1223var FormControl = __webpack_require__(453640);
1224// EXTERNAL MODULE: ./node_modules/@mui/material/FormControlLabel/FormControlLabel.js
1225var FormControlLabel = __webpack_require__(620847);
1226// EXTERNAL MODULE: ./node_modules/@mui/material/Grid/Grid.js + 1 modules
1227var Grid = __webpack_require__(448263);
1228// EXTERNAL MODULE: ./node_modules/@mui/material/IconButton/IconButton.js
1229var IconButton = __webpack_require__(554799);
1230// EXTERNAL MODULE: ./node_modules/@mui/material/List/List.js
1231var List = __webpack_require__(618843);
1232// EXTERNAL MODULE: ./node_modules/@mui/material/Radio/Radio.js + 1 modules
1233var Radio = __webpack_require__(599942);
1234// EXTERNAL MODULE: ./node_modules/@mui/material/RadioGroup/RadioGroup.js
1235var RadioGroup = __webpack_require__(668061);
1236// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/constants/breakpoints.js
1237var breakpoints = __webpack_require__(298222);
1238// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/hooks/useRouteChange.js
1239var useRouteChange = __webpack_require__(723484);
1240// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/utils/classNames.js
1241var classNames = __webpack_require__(221504);
1242// EXTERNAL MODULE: ./node_modules/react-instantsearch-core/dist/es/connectors/useSortBy.js
1243var useSortBy = __webpack_require__(96890);
1244// EXTERNAL MODULE: ./node_modules/react-instantsearch-core/dist/es/connectors/useCurrentRefinements.js
1245var useCurrentRefinements = __webpack_require__(141391);
1246// EXTERNAL MODULE: ./node_modules/react-instantsearch-core/dist/es/connectors/useClearRefinements.js
1247var useClearRefinements = __webpack_require__(457829);
1248// EXTERNAL MODULE: ./src/components/search/AlgoliaConstants.ts
1249var AlgoliaConstants = __webpack_require__(858885);
1250// EXTERNAL MODULE: ./src/lib/fonts.ts
1251var fonts = __webpack_require__(623376);
1252// EXTERNAL MODULE: ./src/lib/hooks/useWindowDimensions.tsx
1253var useWindowDimensions = __webpack_require__(845623);
1254// EXTERNAL MODULE: ./src/lib/store/hooks.ts
1255var hooks = __webpack_require__(267097);
1256// EXTERNAL MODULE: ./src/lib/store/zipcodeSlice.tsx
1257var zipcodeSlice = __webpack_require__(480326);
1258// EXTERNAL MODULE: ./node_modules/@mui/material/Chip/Chip.js
1259var Chip = __webpack_require__(58308);
1260// EXTERNAL MODULE: ./node_modules/react-instantsearch-core/dist/es/connectors/useRefinementList.js
1261var useRefinementList = __webpack_require__(441281);
1262;// CONCATENATED MODULE: ./src/components/ProductListingPage/components/ActiveFilterChip.tsx
1263
1264
1265
1266
1267
1268
1269const ActiveFilterChip = (param)=>{
1270    let { filterValue } = param;
1271    const { items, refine } = (0,useRefinementList/* useRefinementList */.c)({
1272        attribute: filterValue,
1273        limit: 100,
1274        operator: "or",
1275        showMore: true,
1276        showMoreLimit: 1000,
1277        sortBy: [
1278            "name:asc"
1279        ]
1280    });
1281    return /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
1282        children: items.filter((item)=>item.isRefined).map((refinement)=>{
1283            return /*#__PURE__*/ (0,jsx_runtime.jsx)(Chip/* default */.Z, {
1284                label: refinement.label,
1285                variant: "outlined",
1286                sx: {
1287                    border: "1px solid #3D3935",
1288                    borderRadius: "8px",
1289                    margin: "0 10px 10px 0",
1290                    color: "black",
1291                    "& .MuiChip-avatar": {
1292                        color: "black"
1293                    },
1294                    "& .MuiChip-label": {
1295                        fontSize: "14px",
1296                        fontWeight: 500,
1297                        color: "#3D3935",
1298                        fontFamily: fonts/* CSS_VAR_FONT_OSWALD */.pl,
1299                        textTransform: "uppercase"
1300                    }
1301                },
1302                onDelete: ()=>refine(refinement.value),
1303                deleteIcon: /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, {
1304                    size: "small",
1305                    children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Close["default"], {
1306                        fontSize: "small",
1307                        sx: {
1308                            color: "#3D3935"
1309                        }
1310                    })
1311                })
1312            }, refinement.value);
1313        })
1314    });
1315};
1316
1317// EXTERNAL MODULE: ./src/components/ProductListingPage/Filter.module.scss
1318var Filter_module = __webpack_require__(205498);
1319var Filter_module_default = /*#__PURE__*/__webpack_require__.n(Filter_module);
1320// EXTERNAL MODULE: ./src/components/ProductListingPage/RefinementFilter.tsx
1321var RefinementFilter = __webpack_require__(913362);
1322;// CONCATENATED MODULE: ./src/components/ProductListingPage/MobileFilter.tsx
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355const { TABLET_W } = breakpoints.BREAKPOINTS;
1356const MobileFilter = (param)=>{
1357    let { filterOptionList = [] } = param;
1358    var _options_find;
1359    const { regionId } = (0,hooks/* useAppSelector */.C)(zipcodeSlice/* ZipCodeSelector */.pz);
1360    const { currentRefinement, options, refine } = (0,useSortBy/* useSortBy */.s)((0,AlgoliaConstants/* getSortByOptions */.yC)(regionId));
1361    const { items: activeRefinements } = (0,useCurrentRefinements/* useCurrentRefinements */.b)();
1362    const { refine: clearAll } = (0,useClearRefinements/* useClearRefinements */.n)();
1363    (0,useRouteChange.useRouteChange)({
1364        callback: clearAll
1365    });
1366    const [drawerKey, setDrawerKey] = (0,react.useState)(0);
1367    const [showDrawer, setShowDrawer] = (0,react.useState)(false);
1368    (0,react.useEffect)(()=>{
1369        if (showDrawer) {
1370            setDrawerKey((prev)=>
1370prev + 1);
1371        }
1372    }, [
1373        showDrawer
1374    ]);
1375    const [orderBy, setOrderBy] = (0,react.useState)(((_options_find = options.find((option)=>option.value === currentRefinement)) === null || _options_find === void 0 ? void 0 : _options_find.value) || "");
1376    const selectedOrderBy = options.find((option)=>option.value === orderBy);
1377    const { width = 1000 } = (0,useWindowDimensions/* default */.Z)();
1378    const handleOrderByChange = (event)=>{
1379        setOrderBy(event);
1380    };
1381    const onClose = ()=>{
1382        setShowDrawer(false);
1383    };
1384    const onApply = ()=>{
1385        refine(orderBy);
1386        onClose();
1387    };
1388    const onClearAll = ()=>{
1389        clearAll();
1390        setOrderBy("");
1391    };
1392    if (width > TABLET_W) {
1393        return null;
1394    }
1395    return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
1396        children: [
1397            /*#__PURE__*/ (0,jsx_runtime.jsxs)(Button/* default */.Z, {
1398                variant: "outlined",
1399                startIcon: /*#__PURE__*/ (0,jsx_runtime.jsx)(Tune/* default */.Z, {}),
1400                sx: {
1401                    borderRadius: 20,
1402                    color: "#3D3935",
1403                    borderColor: "#3D3935",
1404                    "&:hover": {
1405                        borderColor: "#3D3935",
1406                        backgroundColor: "#F5F5F5"
1407                    }
1408                },
1409                onClick: ()=>setShowDrawer(true),
1410                className: (Filter_module_default()).buttonFilter,
1411                children: [
1412                    "Filter",
1413                    !!activeRefinements.length && /*#__PURE__*/ (0,jsx_runtime.jsx)(Avatar/* default */.Z, {
1414                        sx: {
1415                            bgcolor: "black",
1416                            color: "white",
1417                            width: 20,
1418                            height: 20,
1419                            marginLeft: 1,
1420                            "& .MuiAvatar-root": {
1421                                fontSize: 8
1422                            }
1423                        },
1424                        children: /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
1425                            className: (Filter_module_default()).numberOfFilter,
1426                            children: activeRefinements.length
1427                        })
1428                    })
1429                ]
1430            }),
1431            /*#__PURE__*/ (0,jsx_runtime.jsxs)(Drawer/* default */.ZP, {
1432                anchor: "bottom",
1433                open: showDrawer,
1434                onClose: onClose,
1435                ModalProps: {
1436                    keepMounted: true
1437                },
1438                PaperProps: {
1439                    sx: {
1440                        top: 64,
1441                        borderRadius: "20px 20px 0 0",
1442                        overflow: "hidden"
1443                    }
1444                },
1445                children: [
1446                    /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, {
1447                        paddingX: {
1448                            xs: 2
1449                        },
1450                        paddingY: 1,
1451                        children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(Grid/* default */.ZP, {
1452                            container: true,
1453                            justifyContent: "space-between",
1454                            alignItems: "center",
1455                            children: [
1456                                /*#__PURE__*/ (0,jsx_runtime.jsx)(Grid/* default */.ZP, {
1457                                    item: true,
1458                                    children: /*#__PURE__*/ (0,jsx_runtime.jsx)(IconButton/* default */.Z, {
1459                                        edge: "start",
1460                                        sx: {
1461                                            color: "#000"
1462                                        },
1463                                        onClick: onClose,
1464                                        children: /*#__PURE__*/ (0,jsx_runtime.jsx)(Close["default"], {})
1465                                    })
1466                                }),
1467                                /*#__PURE__*/ (0,jsx_runtime.jsx)(Grid/* default */.ZP, {
1468                                    item: true,
1469                                    children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(Box/* default */.Z, {
1470                                        sx: {
1471                                            display: "flex",
1472                                            alignItems: "center",
1473                                            color: "#000"
1474                                        },
1475                                        children: [
1476                                            /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
1477                                                className: (Filter_module_default()).title,
1478                                                children: "Filter"
1479                                            }),
1480                                            !!activeRefinements.length && /*#__PURE__*/ (0,jsx_runtime.jsx)(Avatar/* default */.Z, {
1481                                                sx: {
1482                                                    bgcolor: "black",
1483                                                    color: "white",
1484                                                    width: 20,
1485                                                    height: 20,
1486                                                    marginLeft: 1,
1487                                                    "& .MuiAvatar-root": {
1488                                                        fontSize: 8
1489                                                    }
1490                                                },
1491                                                children: /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
1492                                                    className: (Filter_module_default()).numberOfFilter,
1493                                                    children: activeRefinements.length
1494                                                })
1495                                            })
1496                                        ]
1497                                    })
1498                                }),
1499                                /*#__PURE__*/ (0,jsx_runtime.jsx)(Grid/* default */.ZP, {
1500                                    item: true,
1501                                    children: /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
1502                                        color: "primary",
1503                                        className: (Filter_module_default()).clearAll,
1504                                        onClick: onClearAll,
1505                                        children: "Clear All"
1506                                    })
1507                                })
1508                            ]
1509                        })
1510                    }),
1511                    /*#__PURE__*/ (0,jsx_runtime.jsx)(Box/* default */.Z, {
1512                        sx: {
1513                            overflow: "auto"
1514                        },
1515                        paddingX: {
1516                            xs: 2
1517                        },
1518                        children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(List/* default */.Z, {
1519                            children: [
1520                                /*#__PURE__*/ (0,jsx_runtime.jsxs)(Accordion/* default */.Z, {
1521                                    elevation: 0,
1522                                    disableGutters: true,
1523                                    children: [
1524                                        /*#__PURE__*/ (0,jsx_runtime.jsx)(AccordionSummary/* default */.Z, {
1525                                            expandIcon: /*#__PURE__*/ (0,jsx_runtime.jsx)(ExpandMore["default"], {}),
1526                                            sx: {
1527                                                padding: 0
1528                                            },
1529                                            children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(Grid/* default */.ZP, {
1530                                                container: true,
1531                                                justifyContent: "space-between",
1532                                                flexDirection: "column",
1533                                                children: [
1534                                                    /*#__PURE__*/ (0,jsx_runtime.jsx)(Grid/* default */.ZP, {
1535                                                        item: true,
1536                                                        children: /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
1537                                                            className: (Filter_module_default()).title,
1538                                                            children: "Sort By"
1539                                                        })
1540                                                    }),
1541                                                    /*#__PURE__*/ (0,jsx_runtime.jsx)(Grid/* default */.ZP, {
1542                                                        item: true,
1543                                                        children: /*#__PURE__*/ (0,jsx_runtime.jsx)("span", {
1544                                                            className: (Filter_module_default()).selectedSortBy,
1545                                                            children: selectedOrderBy === null || selectedOrderBy === void 0 ? void 0 : selectedOrderBy.label
1546                                                        })
1547                                                    })
1548                                                ]
1549                                            })
1550                                        }),
1551                                        /*#__PURE__*/ (0,jsx_runtime.jsx)(AccordionDetail
1551s/* default */.Z, {
1552                                            children: /*#__PURE__*/ (0,jsx_runtime.jsx)(FormControl/* default */.Z, {
1553                                                component: "fieldset",
1554                                                children: /*#__PURE__*/ (0,jsx_runtime.jsx)(RadioGroup/* default */.Z, {
1555                                                    "aria-label": "sort-by",
1556                                                    name: "sort-by",
1557                                                    value: orderBy,
1558                                                    onChange: (e)=>handleOrderByChange(e.target.value),
1559                                                    defaultValue: currentRefinement,
1560                                                    children: options.filter((option)=>!(option.label === "Sort By")).map((option)=>/*#__PURE__*/ (0,jsx_runtime.jsx)(FormControlLabel/* default */.Z, {
1561                                                            value: option.value,
1562                                                            sx: {
1563                                                                "& .MuiFormControlLabel-label": {
1564                                                                    fontSize: "14px",
1565                                                                    fontWeight: 400,
1566                                                                    color: "#3D3935",
1567                                                                    fontFamily: fonts/* CSS_VAR_FONT_MONTSERRAT */.Y
1568                                                                }
1569                                                            },
1570                                                            control: /*#__PURE__*/ (0,jsx_runtime.jsx)(Radio/* default */.Z, {
1571                                                                sx: {
1572                                                                    "& .MuiSvgIcon-root": {
1573                                                                        fontSize: 18
1574                                                                    },
1575                                                                    "&.Mui-checked": {
1576                                                                        color: "#000"
1577                                                                    }
1578                                                                }
1579                                                            }),
1580                                                            label: option.label
1581                                                        }, option.label))
1582                                                })
1583                                            })
1584                                        })
1585                                    ]
1586                                }, drawerKey),
1587                                /*#__PURE__*/ (0,jsx_runtime.jsx)("h4", {
1588                                    className: (0,classNames.clsx)((Filter_module_default()).title, (Filter_module_default()).filterTItle),
1589                                    children: "Filters"
1590                                }),
1591                                /*#__PURE__*/ (0,jsx_runtime.jsx)(Divider/* default */.Z, {
1592                                    sx: {
1593                                        margin: "10px 0 10px 0"
1594                                    }
1595                                }),
1596                                filterOptionList.map((param, index)=>{
1597                                    let { key } = param;
1598                                    return /*#__PURE__*/ (0,jsx_runtime.jsx)(ActiveFilterChip, {
1599                                        filterValue: key
1600                                    }, "".concat(key, "-").concat(index));
1601                                }),
1602                                filterOptionList.map((param, index)=>{
1603                                    let { key, value } = param;
1604                                    return /*#__PURE__*/ (0,jsx_runtime.jsx)(RefinementFilter/* default */.Z, {
1605                                        filterText: value,
1606                                        filterValue: key
1607                                    }, "".concat(key, "-").concat(index));
1608                                })
1609                            ]
1610                        })
1611                    }),
1612                    /*#__PURE__*/ (0,jsx_runtime.jsx)(Grid/* default */.ZP, {
1613                        item: true,
1614                        paddingY: 1,
1615                        sx: {
1616                            textAlign: "center",
1617                            marginTop: "auto"
1618                        },
1619                        boxShadow: 3,
1620                        children: /*#__PURE__*/ (0,jsx_runtime.jsx)("button", {
1621                            className: (0,classNames.clsx)("action", (Filter_module_default()).applyFilterButton),
1622                            onClick: onApply,
1623                            children: "Apply"
1624                        })
1625                    })
1626                ]
1627            })
1628        ]
1629    });
1630};
1631
1632
1633/***/ }),
1634
1635/***/ 379787:
1636/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1637
1638"use strict";
1639/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
1640/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_components_atoms_ProductTile_ProductTile__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(573360);
1641/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_components_atoms_ProductTile_ProductTile__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(_wildfork_commercetools_core_ui_dist_src_components_atoms_ProductTile_ProductTile__WEBPACK_IMPORTED_MODULE_1__);
1642/* harmony import */ var _Components_account_hooks_useCustomerOrders__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(896212);
1643/* harmony import */ var _Lib_utils_productUtils__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(183498);
1644/* harmony import */ var _Lib_utils_useStructureAlgoliaData__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(675333);
1645
1646
1647
1648
1649
1650const ProductTileWrapper = (param)=>{
1651    let { product, onConversion = ()=>{} } = param;
1652    const formattedProduct = (0,_Lib_utils_useStructureAlgoliaData__WEBPACK_IMPORTED_MODULE_4__/* ["default"] */ .Z)(product);
1653    const { purchasedSkusByDate } = (0,_Components_account_hooks_useCustomerOrders__WEBPACK_IMPORTED_MODULE_2__/* .useCustomerOrders */ .P)();
1654    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_wildfork_commercetools_core_ui_dist_src_components_atoms_ProductTile_ProductTile__WEBPACK_IMPORTED_MODULE_1__.ProductTile, {
1655        product: formattedProduct,
1656        swipe: true,
1657        previouslyPurchasedDate: (0,_Lib_utils_productUtils__WEBPACK_IMPORTED_MODULE_3__/* .getFormattedPurchaseDate */ .d)(product.
1657sku, purchasedSkusByDate),
1658        onConversion: onConversion
1659    });
1660};
1661/* harmony default export */ __webpack_exports__.Z = (ProductTileWrapper);
1662
1663
1664/***/ }),
1665
1666/***/ 913362:
1667/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1668
1669"use strict";
1670/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
1671/* harmony import */ var _mui_icons_material_ExpandMore__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(823508);
1672/* harmony import */ var _mui_material_Accordion__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(86532);
1673/* harmony import */ var _mui_material_AccordionDetails__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(963083);
1674/* harmony import */ var _mui_material_AccordionSummary__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(361250);
1675/* harmony import */ var _mui_material_Checkbox__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(470459);
1676/* harmony import */ var _mui_material_List__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(618843);
1677/* harmony import */ var _mui_material_ListItemButton__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(598619);
1678/* harmony import */ var _mui_material_ListItemIcon__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(48885);
1679/* harmony import */ var _mui_material_ListItemText__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(459334);
1680/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_constants_countries__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(264560);
1681/* harmony import */ var react_instantsearch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(441281);
1682/* harmony import */ var _Components_search_AlgoliaConstants__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(858885);
1683/* harmony import */ var _Lib_fonts__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(623376);
1684/* harmony import */ var _Lib_tracking_trackingEvents__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(538933);
1685/* harmony import */ var _Filter_module_scss__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(205498);
1686/* harmony import */ var _Filter_module_scss__WEBPACK_IMPORTED_MODULE_8___default = /*#__PURE__*/__webpack_require__.n(_Filter_module_scss__WEBPACK_IMPORTED_MODULE_8__);
1687
1688
1689
1690
1691
1692
1693
1694
1695
1696
1697
1698
1699
1700
1701
1702
1703const RefinementFilter = (param)=>{
1704    let { filterText, filterValue } = param;
1705    const { items, refine } = (0,react_instantsearch__WEBPACK_IMPORTED_MODULE_4__/* .useRefinementList */ .c)({
1706        attribute: filterValue,
1707        limit: 100,
1708        operator: "or",
1709        showMore: true,
1710        showMoreLimit: 1000,
1711        sortBy: [
1712            "name:asc"
1713        ],
1714        transformItems: filterValue === _Components_search_AlgoliaConstants__WEBPACK_IMPORTED_MODULE_2__/* .FACETS */ .Xr.COUNTRY_OF_ORIGIN.VALUE ? transformCountryItems : undefined
1715    });
1716    if (!items.length) return null;
1717    const onFilterClick = (item)=>{
1718        const { isRefined = false, value = "" } = item || {};
1719        if (!isRefined) {
1720            (0,_Lib_tracking_trackingEvents__WEBPACK_IMPORTED_MODULE_3__/* .GTMCollectionsFilter */ .Ch)(filterText, value);
1721        }
1722        refine(value);
1723    };
1724    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material_Accordion__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
1725        disableGutters: true,
1726        elevation: 0,
1727        sx: {
1728            "&.MuiAccordion-root:before": {
1729                display: "none"
1730            }
1731        },
1732        children: [
1733            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_AccordionSummary__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
1734                expandIcon: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_icons_material_ExpandMore__WEBPACK_IMPORTED_MODULE_7__["default"], {}),
1735                sx: {
1736                    padding: 0
1737                },
1738                children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("span", {
1739                    className: (_Filter_module_scss__WEBPACK_IMPORTED_MODULE_8___default().facetTitle),
1740                    children: filterText
1741                })
1742            }),
1743            /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_AccordionDetail
1743s__WEBPACK_IMPORTED_MODULE_9__/* ["default"] */ .Z, {
1744                sx: {
1745                    "&.MuiAccordionDetails-root": {
1746                        padding: 0
1747                    }
1748                },
1749                children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_List__WEBPACK_IMPORTED_MODULE_10__/* ["default"] */ .Z, {
1750                    sx: {
1751                        "&.MuiList-root": {
1752                            padding: 0
1753                        }
1754                    },
1755                    children: items.map((item, index)=>{
1756                        return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsxs)(_mui_material_ListItemButton__WEBPACK_IMPORTED_MODULE_11__/* ["default"] */ .Z, {
1757                            onClick: ()=>onFilterClick(item),
1758                            sx: {
1759                                "&.MuiListItemButton-root": {
1760                                    padding: "0"
1761                                }
1762                            },
1763                            children: [
1764                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_ListItemIcon__WEBPACK_IMPORTED_MODULE_12__/* ["default"] */ .Z, {
1765                                    sx: {
1766                                        "&.MuiListItemIcon-root": {
1767                                            minWidth: "auto"
1768                                        }
1769                                    },
1770                                    children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_Checkbox__WEBPACK_IMPORTED_MODULE_13__/* ["default"] */ .Z, {
1771                                        edge: "start",
1772                                        sx: {
1773                                            "& .MuiSvgIcon-root": {
1774                                                fontSize: 18
1775                                            },
1776                                            "&.Mui-checked": {
1777                                                color: "#000"
1778                                            }
1779                                        },
1780                                        value: item.value,
1781                                        onChange: ()=>refine(item.value),
1782                                        checked: item === null || item === void 0 ? void 0 : item.isRefined,
1783                                        onClick: ()=>refine(item.value)
1784                                    })
1785                                }),
1786                                /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_ListItemText__WEBPACK_IMPORTED_MODULE_14__/* ["default"] */ .Z, {
1787                                    primary: item.label.toLowerCase(),
1788                                    sx: {
1789                                        "&.MuiListItemText-root span": {
1790                                            fontSize: "14px",
1791                                            fontWeight: 400,
1792                                            color: "#3D3935",
1793                                            fontFamily: _Lib_fonts__WEBPACK_IMPORTED_MODULE_15__/* .CSS_VAR_FONT_MONTSERRAT */ .Y,
1794                                            cursor: "pointer",
1795                                            textTransform: "capitalize"
1796                                        }
1797                                    }
1798                                })
1799                            ]
1800                        }, "".concat(item.value, "-").concat(index));
1801                    })
1802                })
1803            })
1804        ]
1805    });
1806};
1807/* harmony default export */ __webpack_exports__.Z = (RefinementFilter);
1808const transformCountryItems = (items)=>{
1809    return items.map((item)=>{
1810        var _COUNTRIES_LOOKUP_US;
1811        return {
1812            ...item,
1813            label: ((_COUNTRIES_LOOKUP_US = _wildfork_commercetools_core_ui_dist_src_lib_constants_countries__WEBPACK_IMPORTED_MODULE_1__.COUNTRIES_LOOKUP.US) === null || _COUNTRIES_LOOKUP_US === void 0 ? void 0 : _COUNTRIES_LOOKUP_US[item.value]) || item.label
1814        };
1815    });
1816};
1817
1818
1819/***/ }),
1820
1821/***/ 855486:
1822/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1823
1824"use strict";
1825/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1826/* harmony export */   x: function() { return /* binding */ SortByIndex; }
1827/* harmony export */ });
1828/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
1829/* harmony import */ var _mui_material_Box__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(999226);
1830/* harmony import */ var _mui_material_FormControl__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(453640);
1831/* harmony import */ var _mui_material_MenuItem__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(863931);
1832/* harmony import */ var _mui_material_Select__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(769587);
1833/* harmony import */ var react_instantsearch__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(96890);
1834/* harmony import */ var _Components_search_AlgoliaConstants__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(858885);
1835/* harmony import */ var _Lib_fonts__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(623376);
1836/* harmony import */ var _Lib_store_hooks__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(267097);
1837/* harmony import */ var _Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(480326);
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848const SortByIndex = ()=>{
1849    const { regionId } = (0,_Lib_store_hooks__WEBPACK_IMPORTED_MODULE_2__/* .useAppSelector */ .C)(_Lib_store_zipcodeSlice__WEBPACK_IMPORTED_MODULE_3__/* .ZipCodeSelector */ .pz);
1850    const { currentRefinement, options, refine } = (0,react_instantsearch__WEBPACK_IMPORTED_MODULE_4__/* .useSortBy */ .s)((0,_Components_search_AlgoliaConstants__WEBPACK_IMPORTED_MODULE_1__/* .getSortByOptions */ .yC)(regionId));
1851    const activeClass = (option)=>{
1852        if (option.value === currentRefinement) {
1853            return "sort-component__option--active";
1854        }
1855        return "";
1856    };
1857    const handleSelectChange = (event)=>{
1858        refine(event.target.value);
1859    };
1860    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
1861        className: "sort-component",
1862        children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_Box__WEBPACK_IMPORTED_MODULE_5__/* ["default"] */ .Z, {
1863            sx: {
1864                minWidth: 120
1865            },
1866            children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_FormControl__WEBPACK_IMPORTED_MODULE_6__/* ["default"] */ .Z, {
1867                children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_Select__WEBPACK_IMPORTED_MODULE_7__/* ["default"] */ .Z, {
1868                    labelId: "sort-by-label",
1869                    id: "sort-by-select",
1870                    label: "Sort By",
1871                    style: {
1872                        color: "#d14124"
1873                    },
1874                    className: "sort-component__select",
1875                    disableUnderline: true,
1876                    variant: "standard",
1877                    value: currentRefinement,
1878                    onChange: handleSelectChange,
1879                    defaultValue: "Most Popular",
1880                    displayEmpty: true,
1881                    renderValue: ()=>/*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("h5", {
1882                            className: "sort-by__title",
1883                            children: "Sort By"
1884                        }),
1885                    children: options.filter((option)=>!(option.label === "Sort By")).map((option)=>{
1886                        return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)(_mui_material_MenuItem__WEBPACK_IMPORTED_MODULE_8__/* ["default"] */ .Z, {
1887                            className: "sort-component__option ".concat(activeClass(option)),
1888                            value: option.value,
1889                            style: {
1890                                backgroundColor: "inherit",
1891                                fontWeight: option.value === currentRefinement ? "500" : "400",
1892                                fontFamily: _Lib_fonts__WEBPACK_IMPORTED_MODULE_9__/* .CSS_VAR_FONT_MONTSERRAT */ .Y
1893                            },
1894                            children: option.label
1895                        }, option.label);
1896                    })
1897                })
1898            })
1899        })
1900    });
1901};
1902
1903
1904/***/ }),
1905
1906/***/ 597318:
1907/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1908
1909"use strict";
1910/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1911/* harmony export */   E: function() { return /* binding */ GoToTopIcon; }
1912/* harmony export */ });
1913/* harmony import */ var react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(785893);
1914/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(667294);
1915
1916
1917const GoToTopIcon = (param)=>{
1918    let { goToTopMediaPod, productTilesRef } = param;
1919    var _goToTopMediaPod_fields_asset, _goToTopMediaPod_fields;
1920    const [isVisible, setIsVisible] = (0,react__WEBPACK_IMPORTED_MODULE_1__.useState)(false);
1921    var _goToTopMediaPod_fields_asset_fields_file_url;
1922    const url = (_goToTopMediaPod_fields_asset_fields_file_url = goToTopMediaPod === null || goToTopMediaPod === void 0 ? void 0 : (_goToTopMediaPod_fields = goToTopMediaPod.fields) === null || _goToTopMediaPod_fields === void 0 ? void 0 : (_goToTopMediaPod_fields_asset = _goToTopMediaPod_fields.asset) === null || _goToTopMediaPod_fields_asset === void 0 ? void 0 : _goToTopMediaPod_fields_asset.fields.file.url) !== null && _goToTopMediaPod_fields_asset_fields_file_url !== void 0 ? _goToTopMediaPod_fields_asset_fields_file_url : "";
1923    const goToTop = ()=>{
1924        window.scrollTo(0, 0);
1925    };
1926    (0,react__WEBPACK_IMPORTED_MODULE_1__.useEffect)(()=>{
1927        const handleScroll = ()=>{
1928            if (!productTilesRef || !productTilesRef.current) return;
1929            const rect = productTilesRef.current.getBoundingClientRect();
1930            setIsVisible(!(rect.top > 0));
1931        };
1932        window.addEventListener("scroll", handleScroll);
1933        return ()=>{
1934            window.removeEventListener("scroll", handleScroll);
1935        };
1936    }, [
1937        productTilesRef
1938    ]);
1939    if (!isVisible) return null;
1940    return /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("div", {
1941        className: "go-to-top__container",
1942        children: /*#__PURE__*/ (0,react_jsx_runtime__WEBPACK_IMPORTED_MODULE_0__.jsx)("button", {
1943            className: "go-to-top__button",
1944            style: {
1945                background: "url(".concat(url, ")"),
1946                backgroundSize: "cover",
1947                border: "none",
1948                width: "70px",
1949                height: "100%",
1950                cursor: "pointer"
1951            },
1952            onClick: goToTop
1953        })
1954    });
1955};
1956
1957
1958/***/ }),
1959
1960/***/ 858885:
1961/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
1962
1963"use strict";
1964/* harmony export */ __webpack_require__.d(__webpack_exports__, {
1965/* harmony export */   E2: function() { return /* binding */ algoliaSearchClient; },
1966/* harmony export */   Xr: function() { return /* binding */ FACETS; },
1967/* harmony export */   yC: function() { return /* binding */ getSortByOptions; }
1968/* harmony export */ });
1969/* unused harmony exports querySuggestionIndex, filterByOptions */
1970/* harmony import */ var algoliasearch_lite__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(70290);
1971/* harmony import */ var algoliasearch_lite__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(algoliasearch_lite__WEBPACK_IMPORTED_MODULE_1__);
1972/* harmony import */ var _Lib_configs_environment__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(208891);
1973
1974
1975const algoliaSearchClient = algoliasearch_lite__WEBPACK_IMPORTED_MODULE_1___default()(_Lib_configs_environment__WEBPACK_IMPORTED_MODULE_0__.nextAppEnv.algolia.appId, _Lib_configs_environment__WEBPACK_IMPORTED_MODULE_0__.nextAppEnv.algolia.apiKey);
1976const getSortByOptions = (regionId)=>{
1977    const { algolia: { index, indexRegionalPrice, indexProductBestSeller, indexProductNewArrival } } = _Lib_configs_environment__WEBPACK_IMPORTED_MODULE_0__.nextAppEnv;
1978    const defaultRegionId = "default";
1979    const regionSpecificId = regionId || defaultRegionId;
1980    const pricePrefix = "".concat(indexRegionalPrice, "_").concat(regionSpecificId, "_");
1981    const priceIndex = {
1982        LH: "".concat(pricePrefix, "LH"),
1983        HL: "".concat(pricePrefix, "HL")
1984    };
1985    const items = [
1986        {
1987            value: index,
1988            label: "Sort By"
1989        },
1990        {
1991            value: indexProductBestSeller,
1992            label: "Best Sellers"
1993        },
1994        {
1995            value: indexProductNewArrival,
1996            label: "New Arrivals"
1997        },
1998        {
1999            value: priceIndex.LH,
2000            label: "Price (Low to High)"
2001        },
2002        {
2003            value: priceIndex.HL,
2004            label: "Price (High to Low)"
2005        }
2006    ];
2007    return {
2008        items
2009    };
2010};
2011const querySuggestionIndex = "".concat(_Lib_configs_environment__WEBPACK_IMPORTED_MODULE_0__.nextAppEnv.algolia.indexSuggestions);
2012const filterByOptions = (/* unused pure expression or super */ null && ([
2013    "BADGE",
2014    "BREED",
2015    "COURSE",
2016    "CUT",
2017    "GRADE",
2018    "GLOBAL CATEGORY",
2019    "OCCASION",
2020    "SPECIES",
2021    "CUSTOMERPROFILE",
2022    "FROZENDRY"
2023]));
2024const FACETS = {
2025    COUNTRY_OF_ORIGIN: {
2026        VALUE: "countryOfOrigin"
2027    }
2028};
2029
2030
2031/***/ }),
2032
2033/***/ 623376:
2034/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2035
2036"use strict";
2037/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2038/* harmony export */   Y: function() { return /* binding */ CSS_VAR_FONT_MONTSERRAT; },
2039/* harmony export */   pl: function() { return /* binding */ CSS_VAR_FONT_OSWALD; }
2040/* harmony export */ });
2041
2042
2043const CSS_VAR_FONT_OSWALD = "var(--font-oswald)";
2044const CSS_VAR_FONT_MONTSERRAT = "var(--font-montserrat)";
2045
2046
2047
2048
2049/***/ }),
2050
2051/***/ 619443:
2052/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2053
2054"use strict";
2055/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2056/* harmony export */   r: function() { return /* binding */ useScrollTrigger; }
2057/* harmony export */ });
2058/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(667294);
2059
2060const useScrollTrigger = (param)=>{
2061    let { ref, position, callbackFn, debounceTime = 200, condition = true } = param;
2062    const timeoutRef = (0,react__WEBPACK_IMPORTED_MODULE_0__.useRef)(null);
2063    (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
2064        const handleScroll = ()=>{
2065            if (!condition) return;
2066            if (timeoutRef && timeoutRef.current) {
2067                clearTimeout(timeoutRef.current);
2068            }
2069            timeoutRef.current = setTimeout(()=>{
2070                if (!ref.current) return;
2071                const coords = ref.current.getBoundingClientRect()[position] + window.scrollY;
2072                const currentScrollPosition = window.scrollY + window.innerHeight;
2073                if (currentScrollPosition >= coords) {
2074                    callbackFn();
2075                }
2076            }, debounceTime);
2077        };
2078        window.addEventListener("scroll", handleScroll);
2079        return ()=>{
2080            window.removeEventListener("scroll", handleScroll);
2081            if (timeoutRef.current) {
2082                clearTimeout(timeoutRef.current);
2083            }
2084        };
2085    }, [
2086        ref,
2087        position,
2088        callbackFn,
2089        debounceTime,
2090        condition
2091    ]);
2092};
2093/* harmony default export */ __webpack_exports__.Z = (useScrollTrigger);
2094
2095
2096/***/ }),
2097
2098/***/ 845623:
2099/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2100
2101"use strict";
2102/* harmony import */ var react__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(667294);
2103/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(23279);
2104/* harmony import */ var lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(lodash_debounce__WEBPACK_IMPORTED_MODULE_1__);
2105
2106
2107const DEBOUNCE_TIME = 300;
2108const useWindowDimensions = ()=>{
2109    const [windowDimensions, setWindowDimensions] = (0,react__WEBPACK_IMPORTED_MODULE_0__.useState)({
2110        width: undefined,
2111        height: undefined
2112    });
2113    (0,react__WEBPACK_IMPORTED_MODULE_0__.useEffect)(()=>{
2114        const handleResize = lodash_debounce__WEBPACK_IMPORTED_MODULE_1___default()(()=>{
2115            setWindowDimensions({
2116                width: window.innerWidth,
2117                height: window.innerHeight
2118            });
2119        }, DEBOUNCE_TIME);
2120        handleResize();
2121        window.addEventListener("resize", handleResize);
2122        return ()=>window.removeEventListener("resize", handleResize);
2123    }, []);
2124    return windowDimensions;
2125};
2126/* harmony default export */ __webpack_exports__.Z = (useWindowDimensions);
2127
2128
2129/***/ }),
2130
2131/***/ 183498:
2132/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2133
2134"use strict";
2135/* harmony export */ __webpack_require__.d(__webpack_exports__, {
2136/* harmony export */   d: function() { return /* binding */ getFormattedPurchaseDate; }
2137/* harmony export */ });
2138/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils_time__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(940024);
2139/* harmony import */ var _wildfork_commercetools_core_ui_dist_src_lib_utils_time__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_wildfork_commercetools_core_ui_dist_src_lib_utils_time__WEBPACK_IMPORTED_MODULE_0__);
2140
2141const getFormattedPurchaseDate = (sku, purchasedSkusByDate)=>{
2142    var _purchasedSkusByDate_find;
2143    const rawDate = (_purchasedSkusByDate_find = purchasedSkusByDate.find((e)=>e.sku === sku)) === null || _purchasedSkusByDate_find === void 0 ? void 0 : _purchasedSkusByDate_find.date;
2144    return rawDate && (0,_wildfork_commercetools_core_ui_dist_src_lib_utils_time__WEBPACK_IMPORTED_MODULE_0__.formatDate)(rawDate, {
2145        year: "numeric",
2146        month: "short",
2147        day: "numeric"
2148    });
2149};
2150
2151
2152/***/ }),
2153
2154/***/ 18995:
2155/***/ (function(__unused_webpack_module, __webpack_exports__, __webpack_require__) {
2156
2157"use strict";
2158// ESM COMPAT FLAG
2159__webpack_require__.r(__webpack_exports__);
2160
2161// EXPORTS
2162__webpack_require__.d(__webpack_exports__, {
2163  __N_SSG: function() { return /* binding */ __N_SSG; },
2164  "default": function() { return /* binding */ _categorySlug_; }
2165});
2166
2167// EXTERNAL MODULE: ./node_modules/react/jsx-runtime.js
2168var jsx_runtime = __webpack_require__(785893);
2169// EXTERNAL MODULE: ./node_modules/react/index.js
2170var react = __webpack_require__(667294);
2171// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/components/corporate-gifts/Popup/index.js
2172var Popup = __webpack_require__(908410);
2173var Popup_default = /*#__PURE__*/__webpack_require__.n(Popup);
2174// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/constants/corporate-gift.js
2175var corporate_gift = __webpack_require__(995268);
2176// EXTERNAL MODULE: ./node_modules/lodash/debounce.js
2177var debounce = __webpack_require__(23279);
2178var debounce_default = /*#__PURE__*/__webpack_require__.n(debounce);
2179// EXTERNAL MODULE: ./node_modules/next/dynamic.js
2180var dynamic = __webpack_require__(505152);
2181var dynamic_default = /*#__PURE__*/__webpack_require__.n(dynamic);
2182// EXTERNAL MODULE: ./node_modules/next/router.js
2183var next_router = __webpack_require__(811163);
2184// EXTERNAL MODULE: ./node_modules/react-instantsearch-core/dist/es/components/InstantSearch.js + 2 modules
2185var InstantSearch = __webpack_require__(809935);
2186// EXTERNAL MODULE: ./src/components/layout/AppPage.tsx + 10 modules
2187var AppPage = __webpack_require__(422832);
2188// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/components/atoms/Icon/Icon.js
2189var Icon = __webpack_require__(882074);
2190// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/hooks/useHomePath.js
2191var useHomePath = __webpack_require__(160073);
2192// EXTERNAL MODULE: ./node_modules/next/link.js
2193var next_link = __webpack_require__(741664);
2194var link_default = /*#__PURE__*/__webpack_require__.n(next_link);
2195// EXTERNAL MODULE: ./src/components/providers/context/core-ui/EnvironmentContextProvider.tsx
2196var EnvironmentContextProvider = __webpack_require__(630807);
2197;// CONCATENATED MODULE: ./src/components/ProductListingPage/components/PlpBreadcrumbs.tsx
2198
2199
2200
2201
2202
2203const Breadcrumb = (param)=>{
2204    let { name, slug } = param;
2205    if (!name) return null;
2206    return /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {
2207        href: "/collections/".concat(slug),
2208        children: name.toUpperCase()
2209    });
2210};
2211const PlpBreadcrumbs = (param)=>{
2212    let { categoryNameData: { categoryName, parentCategoryName, categorySlug, parentCategorySlug } } = param;
2213    const [homePath] = (0,useHomePath.useHomePath)();
2214    const category = {
2215        name: categoryName,
2216        slug: categorySlug
2217    };
2218    const parent = {
2219        name: parentCategoryName,
2220        slug: parentCategorySlug
2221    };
2222    const breadcrumbNames = [
2223        parent,
2224        category
2225    ];
2226    return /*#__PURE__*/ (0,jsx_runtime.jsx)(EnvironmentContextProvider/* EnvironmentContextContextProvider */.U, {
2227        children: /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
2228            className: "category-breadcrumbs",
2229            children: [
2230                /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {
2231                    href: homePath,
2232                    children: "HOME"
2233                }),
2234                breadcrumbNames.map((name, index)=>{
2235                    return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
2236                        children: [
2237                            !!breadcrumbNames[index++].name && /*#__PURE__*/ (0,jsx_runtime.jsx)(Icon.Icon, {
2238                                iconName: "arrow-right"
2239                            }),
2240                            /*#__PURE__*/ (0,jsx_runtime.jsx)(Breadcrumb, {
2241                                name: name.name,
2242                                slug: name.slug
2243                            }, name.name)
2244                        ]
2245                    });
2246                })
2247            ]
2248        })
2249    });
2250};
2251/* harmony default export */ var components_PlpBreadcrumbs = (PlpBreadcrumbs);
2252
2253// EXTERNAL MODULE: ./src/components/ProductListingPage/Configure.tsx
2254var Configure = __webpack_require__(514421);
2255// EXTERNAL MODULE: ./node_modules/@mui/material/CircularProgress/CircularProgress.js
2256var CircularProgress = __webpack_require__(466489);
2257// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/components/
2257atoms/ProductTile/ProductTile.js
2258var ProductTile = __webpack_require__(573360);
2259// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/components/atoms/VerticalBannerTile/VerticalBannerTile.js
2260var VerticalBannerTile = __webpack_require__(649900);
2261// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/components/page-sections/BannerCollection/index.js
2262var BannerCollection = __webpack_require__(457967);
2263// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/constants/breakpoints.js
2264var breakpoints = __webpack_require__(298222);
2265// EXTERNAL MODULE: ./node_modules/clsx/dist/clsx.mjs
2266var clsx = __webpack_require__(490512);
2267// EXTERNAL MODULE: ./node_modules/react-instantsearch-core/dist/es/connectors/useInfiniteHits.js
2268var useInfiniteHits = __webpack_require__(192694);
2269// EXTERNAL MODULE: ./node_modules/react-instantsearch-core/dist/es/connectors/useHitsPerPage.js
2270var useHitsPerPage = __webpack_require__(727603);
2271// EXTERNAL MODULE: ./src/components/account/hooks/useCustomerOrders.ts
2272var useCustomerOrders = __webpack_require__(896212);
2273// EXTERNAL MODULE: ./src/components/ProductListingPage/SortByIndex.tsx
2274var SortByIndex = __webpack_require__(855486);
2275// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/utils/Logger.js
2276var Logger = __webpack_require__(101914);
2277var Logger_default = /*#__PURE__*/__webpack_require__.n(Logger);
2278// EXTERNAL MODULE: ./src/lib/utils/commercetoolsUtils.ts
2279var commercetoolsUtils = __webpack_require__(575602);
2280// EXTERNAL MODULE: ./src/lib/utils/typeUtils.ts
2281var typeUtils = __webpack_require__(726373);
2282;// CONCATENATED MODULE: ./src/lib/hooks/useGetCTProductsBySkus.ts
2283
2284
2285
2286
2287const useGetCTProductsBySkus = (skus)=>{
2288    const [ctProducts, setCTProducts] = (0,react.useState)([]);
2289    (0,react.useEffect)(()=>{
2290        let shouldUpdate = true;
2291        const getCTProductsBySKU = async ()=>{
2292            try {
2293                const promises = await Promise.allSettled(skus.map((sku)=>(0,commercetoolsUtils/* getCTProductWithImagesBySKU */.Ox)(sku)));
2294                const successfulPromises = promises.filter(typeUtils/* isFulfilled */.KD).map((promise)=>promise.value).filter(typeUtils/* isCTProductWithImages */.I1);
2295                if (!shouldUpdate) return null;
2296                setCTProducts((prevProducts)=>[
2297                        ...prevProducts,
2298                        ...successfulPromises
2299                    ]);
2300            } catch (error) {
2301                Logger_default().error("Couldn't fetch products by SKU", error);
2302            }
2303        };
2304        skus.length && getCTProductsBySKU();
2305        return ()=>{
2306            shouldUpdate = false;
2307            setCTProducts([]);
2308        };
2309    }, [
2310        skus
2311    ]);
2312    return ctProducts;
2313};
2314
2315// EXTERNAL MODULE: ./src/lib/hooks/useScrollTrigger.ts
2316var useScrollTrigger = __webpack_require__(619443);
2317// EXTERNAL MODULE: ./src/lib/hooks/useStructureProductData/useStructureProductData.ts + 3 modules
2318var useStructureProductData = __webpack_require__(223966);
2319// EXTERNAL MODULE: ./src/lib/hooks/useWindowDimensions.tsx
2320var useWindowDimensions = __webpack_require__(845623);
2321// EXTERNAL MODULE: ./src/lib/hooks/useZipCode.ts
2322var useZipCode = __webpack_require__(455489);
2323// EXTERNAL MODULE: ./src/lib/store/hooks.ts
2324var hooks = __webpack_require__(267097);
2325// EXTERNAL MODULE: ./src/lib/store/zipcodeSlice.tsx
2326var zipcodeSlice = __webpack_require__(480326);
2327// EXTERNAL MODULE: ./src/lib/utils/productResultsUtils.ts
2328var productResultsUtils = __webpack_require__(877377);
2329// EXTERNAL MODULE: ./src/lib/utils/productUtils.ts
2330var productUtils = __webpack_require__(183498);
2331// EXTERNAL MODULE: ./src/components/ProductListingPage/components/GoTopIcon.tsx
2332var GoTopIcon = __webpack_require__(597318);
2333// EXTERNAL MODULE: ./src/components/ProductListingPage/FilterRenderer.tsx + 1 modules
2334var FilterRenderer = __webpack_require__(892270);
2335// EXTERNAL MODULE: ./src/components/ProductListingPage/MobileFilter.tsx + 1 modules
2336var MobileFilter = __webpack_require__(738222);
2337;// CONCATENATED MODULE: ./src/components/ProductListingPage/PlpTileRendererCT.tsx
2338
2339
2340
2341
2342
2343
2344
2345
2346
2347
2348
2349
2350
2351
2352
2353
2354
2355
2356
2357
2358
2359
2360
2361
2362
2363
2364const { TABLET_W } = breakpoints.BREAKPOINTS;
2365var BannerDisplayType;
2366(function(BannerDisplayType) {
2367    BannerDisplayType["HORIZONTAL"] = "containerBannerTile";
2368    BannerDisplayType["VERTICAL"] = "containerVerticalBannerTile";
2369})(BannerDisplayType || (BannerDisplayType = {}));
2370const PlpTileRenderer = (props)=>{
2371    var _useAppSelector_stores_, _useAppSelector_stores, _useAppSelector;
2372    const { hits: preFilteredHits, isLastPage, showMore, results } = (0,useInfiniteHits/* useInfiniteHits */.a)();
2373    const { zipcode } = (0,useZipCode/* useZipCode */.lH)();
2374    const selectedListingStoreId = (_useAppSelector = (0,hooks/* useAppSelector */.C)(zipcodeSlice/* storeDetailsSelector */.W$)) === null || _useAppSelector === void 0 ? void 0 : (_useAppSelector_stores = _useAppSelector.stores) === null || _useAppSelector_stores === void 0 ? void 0 : (_useAppSelector_stores_ = _useAppSelector_stores[0]) === null || _useAppSelector_stores_ === void 0 ? void 0 : _useAppSelector_stores_.id;
2375    const { filteredProducts: infiniteHits, numOfHitsFilteredFromFE } = (0,react.useMemo)(()=>(0,productResultsUtils/* filterOutRestrictedProducts */.$E)({
2376            products: preFilteredHits,
2377            zipcode,
2378            storeId: selectedListingStoreId
2379        }), [
2380        preFilteredHits,
2381        zipcode,
2382        selectedListingStoreId
2383    ]);
2384    const skus = (0,react.useMemo)(()=>infiniteHits === null || infiniteHits === void 0 ? void 0 : infiniteHits.map((hit)=>{
2385            const sku = hit.sku;
2386            return sku;
2387        }), [
2388        infiniteHits
2389    ]);
2390    const categoryProducts = useGetCTProductsBySkus((skus === null || skus === void 0 ? void 0 : skus.length) ? skus : []);
2391    const [fetchedProducts, setFetchedProducts] = (0,react.useState)([]);
2392    (0,useHitsPerPage/* useHitsPerPage */.Y)(productResultsUtils/* HITS_PER_PAGE_CONFIG */.xW);
2393    const loadMoreProducts = ()=>{
2394        showMore();
2395    };
2396    const fetchedAllProducts = fetchedProducts.length === categoryProducts.length;
2397    const { width = 0 } = (0,useWindowDimensions/* default */.Z)();
2398    const productTilesRef = (0,react.useRef)(null);
2399    (0,useScrollTrigger/* useScrollTrigger */.r)({
2400        ref: productTilesRef,
2401        position: "bottom",
2402        callbackFn: loadMoreProducts,
2403        debounceTime: 300,
2404        condition: !isLastPage && fetchedAllProducts
2405    });
2406    const isMobileDisplay = width < TABLET_W;
2407    const productsPerPage = 28;
2408    const pageNumber = 3;
2409    const displayGuard = fetchedProducts.length > productsPerPage * pageNumber;
2410    const { categoryName, globalCampaignTileList, globalFilterOptions, mobileViewTwoColumns = false, mediaPodEntry: goToTopMediaPod } = props;
2411    const { filterPlpList = [] } = (globalFilterOptions === null || globalFilterOptions === void 0 ? void 0 : globalFilterOptions.fields) || {};
2412    const convertBannerTileToBannerCollection = (bannerTile)=>{
2413        return {
2414            fields: {
2415                bannerContainers: [
2416                    bannerTile
2417                ]
2418            },
2419            // The following attributes are unused, but required by Contentful types
2420            sys: "",
2421            metadata: "",
2422            toPlainObject: ()=>Object,
2423            update: ()=>null
2424        };
2425    };
2426    const { asPath } = (0,next_router.useRouter)();
2427    const [bannerTiles, setBannerTiles] = (0,react.useState)([]);
2428    (0,react.useEffect)(()=>{
2429        setBannerTiles([]);
2430        setFetchedProducts([]);
2431    }, [
2432        asPath
2433    ]);
2434    (0,react.useEffect)(()=>{
2435        if (categoryProducts.length > 0) {
2436            setFetchedProducts(categoryProducts);
2437        }
2438    }, [
2439        categoryProducts
2440    ]);
2441    const newDisplayProductList = [
2442        ...fetchedProducts
2443    ];
2444    (0,react.useEffect)(()=>{
2445        if (globalCampaignTileList) {
2446            globalCampaignTileList === null || globalCampaignTileList === void 0 ? void 0 : globalCampaignTileList.map(async (item)=>{
2447                var _item_fields, _item_fields1;
2448                const collectionSlug = (item === null || item === void 0 ? void 0 : (_item_fields = item.fields) === null || _item_fields === void 0 ? void 0 : _item_fields.collection) ? item === null || item === void 0 ? void 0 : (_item_fields1 = item.fields) === null || _item_fields1 === void 0 ? void 0 : _item_fields1.collection : "";
2449                if (collectionSlug && // More than one collection is capable to be selected to display vertical banner tiles.
2450                collectionSlug.split(",").some(// Adding checks in callback to grant promos showing up if:
2451                // - Unwanted trailing slash is added via Contentful prop (slice sanitization).
2452                // - Trailing slash is missing in browser entered URL or redirect (asPath check).
2453                (e)=>{
2454                    if (e.slice(-1) === "/") e.slice(0, -1);
2455                    return (asPath === null || asPath === void 0 ? void 0 : asPath.endsWith("".concat(e, "/"))) || (asPath === null || asPath === void 0 ? void 0 : asPath.endsWith("".concat(e)));
2456                })) {
2457                    setBannerTiles((prevBanners)=>{
2458                        var _item_fields, _item_fields_bannerTile_sys_contentType_sys, _item_fields_bannerTile_sys_contentType, _item_fields_bannerTile_sys, _item_fields_bannerTile, _item_fields1;
2459                        return [
2460                            ...prevBanners,
2461                            {
2462                                bannerTile: item,
2463                                bannerPosition: item === null || item === void 0 ? void 0 : (_item_fields = item.fields) === null || _item_fields === void 0 ? void 0 : _item_fields.locationOfCampaignTileInCollection,
2464                                displayType: item === null || item === void 0 ? void 0 : (_item_fields1 = item.fields) === null || _item_fields1 === void 0 ? void 0 : (_item_fields_bannerTile = _item_fields1.bannerTile) === null || _item_fields_bannerTile === void 0 ? void 0 : (_item_fields_bannerTile_sys = _item_fields_bannerTile.sys) === null || _item_fields_bannerTile_sys === void 0 ? void 0 : (_item_fields_bannerTile_sys_contentType = _item_fields_bannerTile_sys.contentType) === null || _item_fields_bannerTile_sys_contentType === void 0 ? void 0 : (_item_fields_bannerTile_sys_contentType_sys = _item_fields_bannerTile_sys_contentType.sys) === null || _item_fields_bannerTile_sys_contentType_sys === void 0 ? void 0 : _item_fields_bannerTile_sys_contentType_sys.id
2465                            }
2466                        ];
2467                    });
2468                }
2469            });
2470        }
2471    }, [
2472        globalCampaignTileList,
2473        asPath
2474    ]);
2475    // Insert the banner objects in the positions specified via Contentful
2476    // For VERTICAL banners, bannerPosition represents actual position amongst products (product placement)
2477    // For HORIZONTAL banners, bannerPosition represents the row position (banner placement)
2478    if (bannerTiles.length > 0 && categoryProducts.length > 0) {
2479        bannerTiles.forEach((tile)=>{
2480            if (tile.displayType === "containerVerticalBannerTile") {
2481                newDisplayProductList === null || newDisplayProductList === void 0 ? void 0 : newDisplayProductList.splice(tile.bannerPosition - 1, 0, tile.bannerTile);
2482            }
2483            if (tile.displayType === "containerBannerTile") {
2484                // Custom calc to determine row position, for grid 3 column display
2485                newDisplayProductList === null || newDisplayProductList === void 0 ? void 0 : newDisplayProductList.splice((tile.bannerPosition - 1) * 3, 0, tile.bannerTile);
2486            }
2487        });
2488    }
2489    const getBannerTargetLink = (banner)=>{
2490        var _banner_fields_callToAction, _banner_fields;
2491        const targetLinks = (_banner_fields = banner.fields) === null || _banner_fields === void 0 ? void 0 : (_banner_fields_callToAction = _banner_fields.callToAction) === null || _banner_fields_callToAction === void 0 ? void 0 : _banner_fields_callToAction.map((item)=>item.fields.target);
2492        return targetLinks && targetLinks[0] ? targetLinks[0] : "";
2493    };
2494    if (!width) return null;
2495    var _results_nbHits;
2496    const resultsNum = ((_results_nbHits = results === null || results === void 0 ? void 0 : results.nbHits) !== null && _results_nbHits !== void 0 ? _results_nbHits : 0) - numOfHitsFilteredFromFE;
2497    return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
2498        children: [
2499            /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
2500                className: "category-page__header",
2501                children: [
2502                    /*#__PURE__*/ (0,jsx_runtime.jsx)("h1", {
2503                        className: "category-product-page__title",
2504                        children: categoryName
2505                    }),
2506                    isMobileDisplay && /*#__PURE__*/ (0,jsx_runtime.jsx)(MobileFilter/* MobileFilter */.z, {
2507                        filterOptionList: filterPlpList
2508                    })
2509                ]
2510            }),
2511            /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
2512                className: "category-page-data",
2513                children: [
2514                    /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
2515                        className: "category-page-data__header",
2516                        children: [
2517                            /*#__PURE__*/ (0,jsx_runtime.jsx)("h5", {
2518                                className: "search-results__qty",
2519                                children: "".concat(resultsNum, " results")
2520                            }),
2521                            !isMobileDisplay && /*#__PURE__*/ (0,jsx_runtime.jsx)(SortByIndex/* SortByIndex */.x, {}, categoryName)
2522                        ]
2523                    }),
2524                    !isMobileDisplay && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
2525                        className: "category-filters",
2526                        children: /*#__PURE__*/ (0,jsx_runtime.jsx)(FilterRenderer/* FilterRenderer */.S, {
2527                            filterOptionList: filterPlpList
2528                        })
2529                    }),
2530                    /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
2531                        className: (0,clsx/* default */.Z)("category-product-tiles", mobileViewTwoColumns && "category-product-tiles--two-columns"),
2532                        ref: productTilesRef,
2533                        children: [
2534                            newDisplayProductList === null || newDisplayProductList === void 0 ? void 0 : newDisplayProductList.map((product, i)=>{
2535                                var _product_fields, _product_fields_bannerTile_sys, _product_fields_bannerTile, _product_fields1, _product_ctData_masterData_current_masterVariant, _product_ctData_masterData_current, _product_ctData_masterData, _product_ctData, _product_sys, _product_fields_locationOfCampaignTileInCollection, _product_fields2, _product_fields3, _product_ctData_masterData_current_masterVariant1, _product_ctData_masterData_current1, _product_ctData_masterData1, _product_ctData1, _product_ctData_masterData_current_masterVariant2, _product_ctData_masterData_current2, _product_ctData_masterData2, _product_ctData2, _product_fields4, _product_fields5, _product_sys1;
2536                                const renderCampaignTile = (0,typeUtils/* isICampaignTile */.L8)(product) && (product === null || product === void 0 ? void 0 : (_product_fields = product.fields) === null || _product_fields === void 0 ? void 0 : _product_fields.bannerTile);
2537                                const renderProductTile = (0,typeUtils/* isCTProductWithImages */.I1)(product);
2538                                const renderVerticalBannerTile = (0,typeUtils/* isICampaignVerticalBannerTile */.yJ)(product);
2539                                const wrapperKey = renderCampaignTile ? "".concat(product === null || product === void 0 ? void 0 : (_product_fields1 = product.fields) === null || _product_fields1 === void 0 ? void 0 : (_product_fields_bannerTile = _product_fields1.bannerTile) === null || _product_fields_bannerTile === void 0 ? void 0 : (_product_fields_bannerTile_sys = _product_fields_bannerTile.sys) === null || _product_fields_bannerTile_sys === void 0 ? void 0 : _product_fields_bannerTile_sys.id, "-").concat(i) : renderProductTile ? product === null || product === void 0 ? void 0 : (_product_ctData = product.ctData) === null || _product_ctData === void 0 ? void 0 : (_product_ctData_masterData = _product_ctData.masterData) === null || _product_ctData_masterData === void 0 ? void 0 : (_product_ctData_masterData_current = _product_ctData_masterData.current) === null || _product_ctData_masterData_current === void 0 ? void 0 : (_product_ctData_masterData_current_masterVariant = _product_ctData_masterData_current.masterVariant) === null || _product_ctData_masterData_current_masterVariant === void 0 ? void 0 : _product_ctData_masterData_current_masterVariant.sku : renderVerticalBannerTile ? "".concat(product === null || product === void 0 ? void 0 : (_product_sys = product.sys) === null || _product_sys === void 0 ? void 0 : _product_sys.id, "-").concat(i) : i;
2540                                return(// Data attribute to be used in Dynamic Yield campaigns
2541                                /*#__PURE__*/ (0,jsx_runtime.jsxs)(react.Fragment, {
2542                                    children: [
2543                                        renderCampaignTile && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
2544                                            className: "product-banner-collection",
2545                                            // Custom style property to complement the provided class
2546                                            // and enforce the horizontal banner position in the grid layout, avoiding blanks.
2547                                            style: {
2548                                                gridRow: product === null || product === void 0 ? void 0 : (_product_fields2 = product.fields) === null || _product_fields2 === void 0 ? void 0 : (_product_fields_locationOfCampaignTileInCollection = _product_fields2.locationOfCampaignTileInCollection) === null || _product_fields_locationOfCampaignTileInCollection === void 0 ? void 0 : _product_fields_locationOfCampaignTileInCollection.toString()
2549                                            },
2550                                            children: /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {
2551                                                href: getBannerTargetLink(product.fields.bannerTile),
2552                                                children: /*#__PURE__*/ (0,jsx_runtime.jsx)(BannerCollection["default"], {
2553                                                    data: convertBannerTileToBannerCollection(product === null || product === void 0 ? void 0 : (_product_fields3 = product.fields) === null || _product_fields3 === void 0 ? void 0 : _product_fields3.bannerTile),
2554                                                    keepOriginalImage: true
2555                                                })
2556                                            })
2557                                        }),
2558                                        renderProductTile && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
2559                                            "data-product-sku": product === null || product === void 0 ? void 0 : (_product_ctData1 = product.ctData) === null || _product_ctData1 === void 0 ? void 0 : (_product_ctData_masterData1 = _product_ctData1.masterData) === null || _product_ctData_masterData1 === void 0 ? void 0 : (_product_ctData_masterData_current1 = _product_ctData_masterData1.current) === null || _product_ctData_masterData_current1 === void 0 ? void 0 : (_product_ctData_masterData_current_masterVariant1 = _product_ctData_masterData_current1.masterVariant) === null || _product_ctData_masterData_current_masterVariant1 === void 0 ? void 0 : _product_ctData_masterData_current_masterVariant1.sku,
2560                                            className: "category-product-tiles-wrapper",
2561                                            children: /*#__PURE__*/ (0,jsx_runtime.jsx)(ProductTileWrapper, {
2562                                                product: product
2563                                            })
2564                                        }, product === null || product === void 0 ? void 0 : (_product_ctData2 = product.ctData) === null || _product_ctData2 === void 0 ? void 0 : (_product_ctData_masterData2 = _product_ctData2.masterData) === null || _product_ctData_masterData2 === void 0 ? void 0 : (_product_ctData_masterData_current2 = _product_ctData_masterData2.current) === null || _product_ctData_masterData_current2 === void 0 ? void 0 : (_product_ctData_masterData_current_masterVariant2 = _product_ctData_masterData_current2.masterVariant) === null || _product_ctData_masterData_current_masterVariant2 === void 0 ? void 0 : _product_ctData_masterData_current_masterVariant2.sku),
2565                                        renderVerticalBannerTile && (product === null || product === void 0 ? void 0 : (_product_fields4 = product.fields) === null || _product_fields4 === void 0 ? void 0 : _product_fields4.bannerTile) && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
2566                                            children: /*#__PURE__*/ (0,jsx_runtime.jsx)(VerticalBannerTile.VerticalBannerTile, {
2567                                                data: product === null || product === void 0 ? void 0 : (_product_fields5 = product.fields) === null || _product_fields5 === void 0 ? void 0 : _product_fields5.bannerTile
2568                                            })
2569                                        }, "".concat(product === null || product === void 0 ? void 0 : (_product_sys1 = product.sys) === null || _product_sys1 === void 0 ? void 0 : _product_sys1.id, "-").concat(i))
2570                                    ]
2571                                }, wrapperKey));
2572                            }),
2573                            displayGuard && /*#__PURE__*/ (0,jsx_runtime.jsx)(GoTopIcon/* GoToTopIcon */.E, {
2574                                goToTopMediaPod: goToTopMediaPod,
2575                                productTilesRef: productTilesRef
2576                            }),
2577                            /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
2578                                className: "show-more__container",
2579                                children: !fetchedAllProducts && /*#__PURE__*/ (0,jsx_runtime.jsx)(CircularProgress/* default */.Z, {
2580                                    color: "inherit"
2581                                })
2582                            })
2583                        ]
2584                    })
2585                ]
2586            })
2587        ]
2588    });
2589};
2590/* harmony default export */ var PlpTileRendererCT = (PlpTileRenderer);
2591const ProductTileWrapper = (param)=>{
2592    let { product } = param;
2593    var _product_ctData_masterData_current_masterVariant, _product_ctData_masterData_current, _product_ctData_masterData, _product_ctData;
2594    const { regionId, regionIdMapped } = (0,hooks/* useAppSelector */.C)(zipcodeSlice/* ZipCodeSelector */.pz);
2595    const blurPrices =  false && 0; // TODO Jared: remove false condition if/when ready
2596    const formattedProduct = (0,useStructureProductData/* default */.Z)({
2597        ctData: product.ctData,
2598        itemMedia: product.itemMedia
2599    });
2600    const { purchasedSkusByDate } = (0,useCustomerOrders/* useCustomerOrders */.P)();
2601    return /*#__PURE__*/ (0,jsx_runtime.jsx)(ProductTile.ProductTile, {
2602        product: formattedProduct,
2603        swipe: false,
2604        previouslyPurchasedDate: (0,productUtils/* getFormattedPurchaseDate */.d)(product === null || product === void 0 ? void 0 : (_product_ctData = product.ctData) === null || _product_ctData === void 0 ? void 0 : (_product_ctData_masterData = _product_ctData.masterData) === null || _product_ctData_masterData === void 0 ? void 0 : (_product_ctData_masterData_current = _product_ctData_masterData.current) === null || _product_ctData_masterData_current === void 0 ? void 0 : (_product_ctData_masterData_current_masterVariant = _product_ctData_masterData_current.masterVariant) === null || _product_ctData_masterData_current_masterVariant === void 0 ? void 0 : _product_ctData_masterData_current_masterVariant.sku, purchasedSkusByDate),
2605        blurPrices: blurPrices
2606    });
2607};
2608
2609// EXTERNAL MODULE: ./src/components/search/AlgoliaConstants.ts
2610var AlgoliaConstants = __webpack_require__(858885);
2611// EXTERNAL MODULE: ./src/lib/configs/environment.ts
2612var environment = __webpack_require__(208891);
2613// EXTERNAL MODULE: ./src/lib/corporateGifts/handlers/index.ts + 8 modules
2614var handlers = __webpack_require__(398736);
2615// EXTERNAL MODULE: ./src/lib/dynamic-yield/dynamicYield.ts + 1 modules
2616var dynamicYield = __webpack_require__(85325);
2617// EXTERNAL MODULE: ./src/lib/hooks/index.ts + 13 modules
2618var lib_hooks = __webpack_require__(130414);
2619// EXTERNAL MODULE: ./src/lib/store/cartSlice.ts + 1 modules
2620var cartSlice = __webpack_require__(484725);
2621// EXTERNAL MODULE: ./src/lib/store/customerInfoSlice.ts
2622var customerInfoSlice = __webpack_require__(680921);
2623// EXTERNAL MODULE: ./src/lib/store/environmentSlice.ts
2624var environmentSlice = __webpack_require__(221473);
2625// EXTERNAL MODULE: ./src/lib/store/trackingSlice.ts
2626var trackingSlice = __webpack_require__(962133);
2627// EXTERNAL MODULE: ./src/lib/tracking/trackingEvents.ts + 1 modules
2628var trackingEvents = __webpack_require__(538933);
2629// EXTERNAL MODULE: ./src/lib/utils/cartUtils.tsx
2630var cartUtils = __webpack_require__(729890);
2631// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/components/page-sections/PlpMiniNav/PlpMiniNav.js
2632var PlpMiniNav = __webpack_require__(266311);
2633var PlpMiniNav_default = /*#__PURE__*/__webpack_require__.n(PlpMiniNav);
2634// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/lib/constants/locale.js
2635var locale = __webpack_require__(808439);
2636// EXTERNAL MODULE: ./node_modules/react-instantsearch-core/dist/es/hooks/useInstantSearch.js + 2 modules
2637var useInstantSearch = __webpack_require__(754942);
2638// EXTERNAL MODULE: ./src/components/ProductListingPage/ProductTileWrapper.tsx
2639var ProductListingPage_ProductTileWrapper = __webpack_require__(379787);
2640;// CONCATENATED MODULE: ./src/components/ProductListingPage/PlpTileRenderer.tsx
2641
2642
2643
2644
2645
2646
2647
2648
2649
2650
2651
2652
2653
2654
2655
2656
2657
2658
2659
2660
2661
2662
2663
2664
2665
2666const { TABLET_W: PlpTileRenderer_TABLET_W } = breakpoints.BREAKPOINTS;
2667var PlpTileRenderer_BannerDisplayType;
2668(function(BannerDisplayType) {
2669    BannerDisplayType["HORIZONTAL"] = "containerBannerTile";
2670    BannerDisplayType["VERTICAL"] = "containerVerticalBannerTile";
2671})(PlpTileRenderer_BannerDisplayType || (PlpTileRenderer_BannerDisplayType = {}));
2672const PlpTileRenderer_PlpTileRenderer = (props)=>{
2673    var _useAppSelector_stores_, _useAppSelector_stores, _useAppSelector, _collectionCampaignTiles;
2674    const { hits: preFilteredHits, isLastPage, showMore, results, sendEvent } = (0,useInfiniteHits/* useInfiniteHits */.a)();
2675    const { zipcode } = (0,useZipCode/* useZipCode */.lH)();
2676    const { storeId } = (0,hooks/* useAppSelector */.C)(cartSlice/* cartSliceSelector */.Ew);
2677    const selectedListingStoreId = (_useAppSelector = (0,hooks/* useAppSelector */.C)(zipcodeSlice/* storeDetailsSelector */.W$)) === null || _useAppSelector === void 0 ? void 0 : (_useAppSelector_stores = _useAppSelector.stores) === null || _useAppSelecto
2677r_stores === void 0 ? void 0 : (_useAppSelector_stores_ = _useAppSelector_stores[0]) === null || _useAppSelector_stores_ === void 0 ? void 0 : _useAppSelector_stores_.id;
2678    const { filteredProducts: infiniteHits, numOfHitsFilteredFromFE } = (0,react.useMemo)(()=>(0,productResultsUtils/* filterOutRestrictedProducts */.$E)({
2679            products: preFilteredHits,
2680            zipcode,
2681            storeId: selectedListingStoreId
2682        }), [
2683        preFilteredHits,
2684        zipcode,
2685        selectedListingStoreId
2686    ]);
2687    const { inStockProducts, outOfStockProducts } = (0,react.useMemo)(()=>(0,productResultsUtils/* separateProductsByStock */.s3)({
2688            products: infiniteHits,
2689            storeId
2690        }), [
2691        infiniteHits,
2692        storeId
2693    ]);
2694    var _results_nbHits;
2695    const resultsNum = ((_results_nbHits = results === null || results === void 0 ? void 0 : results.nbHits) !== null && _results_nbHits !== void 0 ? _results_nbHits : 0) - numOfHitsFilteredFromFE;
2696    const { status } = (0,useInstantSearch/* useInstantSearch */.b)();
2697    const showSpinner = (status === "loading" || status === "idle") && !isLastPage;
2698    (0,useHitsPerPage/* useHitsPerPage */.Y)(productResultsUtils/* HITS_PER_PAGE_CONFIG */.xW);
2699    const loadMoreProducts = ()=>{
2700        showMore();
2701    };
2702    const { asPath } = (0,next_router.useRouter)();
2703    const { width = 0 } = (0,useWindowDimensions/* default */.Z)();
2704    const productTilesRef = (0,react.useRef)(null);
2705    (0,useScrollTrigger/* useScrollTrigger */.r)({
2706        ref: productTilesRef,
2707        position: "bottom",
2708        callbackFn: loadMoreProducts,
2709        debounceTime: 300,
2710        condition: !isLastPage
2711    });
2712    const isMobileDisplay = width < PlpTileRenderer_TABLET_W;
2713    const { categoryName, globalCampaignTileList, globalFilterOptions, mobileViewTwoColumns = false, mediaPodEntry: goToTopMediaPod, miniNavs } = props;
2714    const { filterPlpList = [] } = (globalFilterOptions === null || globalFilterOptions === void 0 ? void 0 : globalFilterOptions.fields) || {};
2715    const convertBannerTileToBannerCollection = (bannerTile)=>{
2716        return {
2717            fields: {
2718                bannerContainers: [
2719                    bannerTile
2720                ]
2721            },
2722            // The following attributes are unused, but required by Contentful types
2723            sys: "",
2724            metadata: "",
2725            toPlainObject: ()=>Object,
2726            update: ()=>null
2727        };
2728    };
2729    const collectionCampaignTiles = (tiles)=>{
2730        if (!tiles) return null;
2731        const activeCampaignTiles = tiles.filter((tile)=>{
2732            var _tile_fields, _tile_fields1;
2733            const collectionSlug = (tile === null || tile === void 0 ? void 0 : (_tile_fields = tile.fields) === null || _tile_fields === void 0 ? void 0 : _tile_fields.collection) ? tile === null || tile === void 0 ? void 0 : (_tile_fields1 = tile.fields) === null || _tile_fields1 === void 0 ? void 0 : _tile_fields1.collection : "";
2734            if (collectionSlug && // More than one collection is capable to be selected to display vertical banner tiles.
2735            collectionSlug.split(",").some(// Adding a double check in callback to prevent promos not showing up when trailing
2736            // slash is missing via Contentful prop or manually entered URL.
2737            (e)=>(asPath === null || asPath === void 0 ? void 0 : asPath.endsWith("".concat(e, "/"))) || (asPath === null || asPath === void 0 ? void 0 : asPath.endsWith("".concat(e)))) && asPath.includes("collections")) {
2738                return true;
2739            } else {
2740                return false;
2741            }
2742        });
2743        if (activeCampaignTiles.length === 0) {
2744            return [];
2745        } else {
2746            return activeCampaignTiles.map((tile)=>{
2747                var _tile_fields, _tile_fields_bannerTile_sys_contentType_sys, _tile_fields_bannerTile_sys_contentType, _tile_fields_bannerTile_sys, _tile_fields_bannerTile, _tile_fields1;
2748                return {
2749                    bannerTile: tile,
2750                    bannerPosition: tile === null || tile === void 0 ? void 0 : (_tile_fields = tile.fields) === null || _tile_fields === void 0 ? void 0 : _tile_fields.locationOfCampaignTileInCollection,
2751                    displayType: tile === null || tile === void 0 ? void 0 : (_tile_fields1 = tile.fields) === null || _tile_fields1 === void 0 ? void 0 : (_tile_fields_bannerTile = _tile_fields1.bannerTile) === null || _tile_fields_bannerTile === void 0 ? void 0 : (_tile_fields_bannerTile_sys = _tile_fields_bannerTile.sys) === null || _tile_fields_bannerTile_sys === void 0 ? void 0 : (_tile_fields_bannerTile_sys_contentType = _tile_fields_bannerTile_sys.contentType) === null || _tile_fields_bannerTile_sys_contentType === void 0 ? void 0 : (_tile_fields_bannerTile_sys_contentType_sys = _tile_fields_bannerTile_sys_contentType.sys) === null || _tile_fields_bannerTile_sys_contentType_sys === void 0 ? void 0 : _tile_fields_bannerTile_sys_contentType_sys.id
2752                };
2753            });
2754        }
2755    };
2756    const validCampaignTiles = (_collectionCampaignTiles = collectionCampaignTiles(globalCampaignTileList)) === null || _collectionCampaignTiles === void 0 ? void 0 : _collectionCampaignTiles.filter(Boolean);
2757    // Combine products: in-stock first, then out-of-stock at the end (only when all pages are fetched)
2758    // Start with in-stock products as a mutable array for banner insertion
2759    const mergedProductList = (0,react.useMemo)(()=>{
2760        // Create a mutable copy of in-stock products for banner insertion
2761        const products = [
2762            ...inStockProducts
2763        ];
2764        var _inStockProducts_length;
2765        // Insert the banner objects in the positions specified via Contentful
2766        // For VERTICAL banners, bannerPosition represents actual position amongst products (product placement)
2767        // For HORIZONTAL banners, bannerPosition represents the row position (banner placement)
2768        if ((validCampaignTiles === null || validCampaignTiles === void 0 ? void 0 : validCampaignTiles.length) > 0 && ((_inStockProducts_length = inStockProducts === null || inStockProducts === void 0 ? void 0 : inStockProducts.length) !== null && _inStockProducts_length !== void 0 ? _inStockProducts_length : 0) > 0) {
2769            validCampaignTiles.forEach((tile)=>{
2770                if (tile.displayType === "containerVerticalBannerTile") {
2771                    products.splice(tile.bannerPosition - 1, 0, tile.bannerTile);
2772                }
2773                if (tile.displayType === "containerBannerTile") {
2774                    // Custom calc to determine row position, for grid 3 column display
2775                    products.splice((tile.bannerPosition - 1) * 3, 0, tile.bannerTile);
2776                }
2777            });
2778        }
2779        // Only show out-of-stock products at the end when all pages are fetched
2780        if (isLastPage && outOfStockProducts.length > 0) {
2781            products.push(...outOfStockProducts);
2782        }
2783        return products;
2784    }, [
2785        inStockProducts,
2786        outOfStockProducts,
2787        isLastPage,
2788        validCampaignTiles
2789    ]);
2790    const showGoToTop = mergedProductList.length > productResultsUtils/* TILES_WITHOUT_GO_TO_TOP */.Ak;
2791    const getBannerTargetLink = (banner)=>{
2792        var _banner_fields_callToAction, _banner_fields;
2793        const targetLinks = (_banner_fields = banner.fields) === null || _banner_fields === void 0 ? void 0 : (_banner_fields_callToAction = _banner_fields.callToAction) === null || _banner_fields_callToAction === void 0 ? void 0 : _banner_fields_callToAction.map((item)=>item.fields.target);
2794        return targetLinks && targetLinks[0] ? targetLinks[0] : "";
2795    };
2796    const handleConversion = (product)=>{
2797        sendEvent("conversion", product, "Add to Cart - PLP", {
2798            // Special subtype
2799            eventSubtype: "addToCart"
2800        });
2801    };
2802    const getMiniNavForCategory = (miniNavs)=>{
2803        const cleanPath = asPath.split("?")[0].replace("/collections", "").replace(/\/$/, "");
2804        return miniNavs.find((nav)=>{
2805            return nav.fields.collections.split(",").includes(cleanPath);
2806        });
2807    };
2808    const miniNavForCategory = miniNavs && getMiniNavForCategory(miniNavs);
2809    if (!width) return null;
2810    return /*#__PURE__*/ (0,jsx_runtime.jsxs)(jsx_runtime.Fragment, {
2811        children: [
2812            /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
2813                className: "category-page__new-header ".concat(!miniNavForCategory && "no-mininav", " "),
2814                children: [
2815                    /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
2816                        className: "category-page__header__title-wrapper",
2817                        children: [
2818                            /*#__PURE__*/ (0,jsx_runtime.jsx)("h1", {
2819                                className: "category-product-page__title",
2820                                children: categoryName
2821                            }),
2822                            isMobileDisplay && /*#__PURE__*/ (0,jsx_runtime.jsx)(MobileFilter/* MobileFilter */.z, {
2823                                filterOptionList: filterPlpList
2824                            })
2825                        ]
2826                    }),
2827                    miniNavForCategory && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
2828                        className: "category-page-mini-nav-wrapper",
2829                        children: /*#__PURE__*/ (0,jsx_runtime.jsx)((PlpMiniNav_default()), {
2830                            data: miniNavForCategory
2831                        })
2832                    })
2833                ]
2834            }),
2835            /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
2836                className: "category-page-data",
2837                children: [
2838                    /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
2839                        className: "category-page-data__header",
2840                        children: [
2841                            /*#__PURE__*/ (0,jsx_runtime.jsx)("h5", {
2842                                className: "search-results__qty",
2843                                children: resultsNum === 0 ? "NO RESULTS FOUND" : "".concat(resultsNum, " results")
2844                            }),
2845                            !isMobileDisplay && /*#__PURE__*/ (0,jsx_runtime.jsx)(SortByIndex/* SortByIndex */.x, {}, categoryName)
2846                        ]
2847                    }),
2848                    !isMobileDisplay && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
2849                        className: "category-filters",
2850                        children: /*#__PURE__*/ (0,jsx_runtime.jsx)(FilterRenderer/* FilterRenderer */.S, {
2851                            filterOptionList: filterPlpList
2852                        })
2853                    }),
2854                    /*#__PURE__*/ (0,jsx_runtime.jsxs)("div", {
2855                        className: (0,clsx/* default */.Z)("category-product-tiles", mobileViewTwoColumns && "category-product-tiles--two-columns", locale.isCALocale && "canada"),
2856                        ref: productTilesRef,
2857                        children: [
2858                            mergedProductList === null || mergedProductList === void 0 ? void 0 : mergedProductList.map((product, i)=>{
2859                                var _product_fields, _product_fields_bannerTile_sys, _product_fields_bannerTile, _product_fields1, _product_sys, _product_fields_locationOfCampaignTileInCollection, _product_fields2, _product_fields3, _product_fields4, _product_fields5, _product_sys1;
2860                                const renderCampaignTile = (0,typeUtils/* isICampaignTile */.L8)(product) && (product === null || product === void 0 ? void 0 : (_product_fields = product.fields) === null || _product_fields === void 0 ? void 0 : _product_fields.bannerTile);
2861                                const renderProductTile = (0,typeUtils/* isAlgoliaDataWithImages */.BH)(product);
2862                                const renderVerticalBannerTile = (0,typeUtils/* isICampaignVerticalBannerTile */.yJ)(product);
2863                                const wrapperKey = renderCampaignTile ? "".concat(product === null || product === void 0 ? void 0 : (_product_fields1 = product.fields) === null || _product_fields1 === void 0 ? void 0 : (_product_fields_bannerTile = _product_fields1.bannerTile) === null || _product_fields_bannerTile === void 0 ? void 0 : (_product_fields_bannerTile_sys = _product_fields_bannerTile.sys) === null || _product_fields_bannerTile_sys === void 0 ? void 0 : _product_fields_bannerTile_sys.id, "-").concat(i) : renderProductTile ? product === null || product === void 0 ? void 0 : product.sku : renderVerticalBannerTile ? "".concat(product === null || product === void 0 ? void 0 : (_product_sys = product.sys) === null || _product_sys === void 0 ? void 0 : _product_sys.id, "-").concat(i) : i;
2864                                return(// Data attribute to be used in Dynamic Yield campaigns
2865                                /*#__PURE__*/ (0,jsx_runtime.jsxs)(react.Fragment, {
2866                                    children: [
2867                                        renderCampaignTile && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
2868                                            className: "product-banner-collection",
2869                                            // Custom style property to complement the provided class
2870                                            // and enforce the horizontal banner position in the grid layout, avoiding blanks.
2871                                            style: {
2872                                                gridRow: product === null || product === void 0 ? void 0 : (_product_fields2 = product.fields) === null || _product_fields2 === void 0 ? void 0 : (_product_fields_locationOfCampaignTileInCollection = _product_fields2.locationOfCampaignTileInCollection) === null || _product_fields_locationOfCampaignTileInCollection === void 0 ? void 0 : _product_fields_locationOfCampaignTileInCollection.toString()
2873                                            },
2874                                            children: /*#__PURE__*/ (0,jsx_runtime.jsx)((link_default()), {
2875                                                href: getBannerTargetLink(product.fields.bannerTile),
2876                                                children: /*#__PURE__*/ (0,jsx_runtime.jsx)(BannerCollection["default"], {
2877                                                    data: convertBannerTileToBannerCollection(product === null || product === void 0 ? void 0 : (_product_fields3 = product.fields) === null || _product_fields3 === void 0 ? void 0 : _product_fields3.bannerTile),
2878                                                    keepOriginalImage: true
2879                                                })
2880                                            })
2881                                        }),
2882                                        renderProductTile && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
2883                                            "data-product-sku": product === null || product === void 0 ? void 0 : product.sku,
2884                                            className: "category-product-tiles-wrapper",
2885                                            // We need to explicitly send click events when using infinite hits for Algolia.
2886                                            onClick: ()=>sendEvent("click", product, "Product Tile Click - PLP"),
2887                                            children: /*#__PURE__*/ (0,jsx_runtime.jsx)(ProductListingPage_ProductTileWrapper/* default */.Z, {
2888                                                product: product,
2889                                                onConversion: ()=>handleConversion(product)
2890                                            })
2891                                        }, product === null || product === void 0 ? void 0 : product.sku),
2892                                        renderVerticalBannerTile && (product === null || product === void 0 ? void 0 : (_product_fields4 = product.fields) === null || _product_fields4 === void 0 ? void 0 : _product_fields4.bannerTile) && /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
2893                                            children: /*#__PURE__*/ (0,jsx_runtime.jsx)(VerticalBannerTile.VerticalBannerTile, {
2894                                                data: product === null || product === void 0 ? void 0 : (_product_fields5 = product.fields) === null || _product_fields5 === void 0 ? void 0 : _product_fields5.bannerTile
2895                                            })
2896                                        }, "".concat(product === null || product === void 0 ? void 0 : (_product_sys1 = product.sys) === null || _product_sys1 === void 0 ? void 0 : _product_sys1.id, "-").concat(i))
2897                                    ]
2898                                }, wrapperKey));
2899                            }),
2900                            showGoToTop && /*#__PURE__*/ (0,jsx_runtime.jsx)(GoTopIcon/* GoToTopIcon */.E, {
2901                                goToTopMediaPod: goToTopMediaPod,
2902                                productTilesRef: productTilesRef
2903                            }),
2904                            /*#__PURE__*/ (0,jsx_runtime.jsx)("div", {
2905                                className: "show-more__container",
2906                                children: showSpinner && /*#__PURE__*/ (0,jsx_runtime.jsx)(CircularProgress/* default */.Z, {
2907                                    color: "inherit"
2908                                })
2909                            })
2910                        ]
2911                    })
2912                ]
2913            })
2914        ]
2915    });
2916};
2917/* harmony default export */ var ProductListingPage_PlpTileRenderer = ((/* unused pure expression or super */ null && (PlpTileRenderer_PlpTileRenderer)));
2918
2919;// CONCATENATED MODULE: ./src/lib/corporateGifts/hooks/useParseUrlParms.ts
2920
2921
2922/**
2923 * Safely decodes a URI component with error handling
2924 */ const safeDecodeURIComponent = (str)=>{
2925    try {
2926        return decodeURIComponent(str);
2927    } catch (e) {
2928        return str;
2929    }
2930};
2931/**
2932 * Custom hook for parsing URL parameters to extract corporate gift voucher data
2933 * Extracts email and voucher_code from URL search parameters and returns a validated payload
2934 * Uses Pages Router API (useRouter) for compatibility with pages directory
2935 *
2936 * @returns A memoized function that returns VoucherValidationPayload or empty object
2937 *
2938 * @example
2939 * ```tsx
2940 * const { parseUrlParams } = useParseUrlParams();
2941 * const params = parseUrlParams();
2942 * Returns voucher validation payload: { email: '[email protected]', voucherCode: 'ABC123' } or empty object if no valid parameters are found
2943 * ```
2944 */ const useParseUrlParams = ()=>{
2945    const router = (0,next_router.useRouter)();
2946    /**
2947   * Parse URL parameters and extract recipient data using Next.js Pages Router
2948   */ const parseUrlParams = (0,react.useCallback)(()=>{
2949        // Wait for router to be ready before accessing query params
2950        if (!router.isReady) {
2951            return {};
2952        }
2953        const email = typeof router.query.email === "string" ? router.query.email : "";
2954        const voucherCode = typeof router.query.voucher_code === "string" ? router.query.voucher_code : "";
2955        if (!email || !voucherCode || email.trim() === "" || voucherCode.trim() === "") {
2956            return {};
2957        }
2958        const decodedEmail = safeDecodeURIComponent(email);
2959        const decodedVoucherCode = safeDecodeURIComponent(voucherCode);
2960        // Validate decoded values are not empty
2961        if (decodedEmail.trim() === "" || decodedVoucherCode.trim() === "") {
2962            return {};
2963        }
2964        return {
2965            email: decodedEmail,
2966            voucherCode: decodedVoucherCode
2967        };
2968    }, [
2969        router.isReady,
2970        router.query.email,
2971        router.query.voucher_code
2972    ]);
2973    return {
2974        parseUrlParams
2975    };
2976};
2977
2978// EXTERNAL MODULE: ./node_modules/@wildfork/commercetools-core-ui/dist/src/hooks/corporate-gift/useRecipientData.js
2979var useRecipientData = __webpack_require__(173273);
2980;// CONCATENATED MODULE: ./src/lib/corporateGifts/hooks/useSetRecipientData.ts
2981
2982const useSetRecipientData = ()=>{
2983    const { updateRecipientData } = (0,useRecipientData.useRecipientData)();
2984    /**
2985   * Sets recipient data by extracting and validating relevant fields from a VoucherValidationResponse object,
2986   * formats data as needed, and sends it to updateRecipientData.
2987   *
2988   * @param {VoucherValidationResponse} recipientData - The recipient data from the voucher validation response.
2989   *        It is expected to contain the recipient's name, email, campaignId, expiryDate, giftAmount, and user existence.
2990   * @param {string} voucherCode - The voucher code used for validation.
2991   *
2992   * Fields used:
2993   *   - name: Split into firstName and lastName (first two space-separated parts; empty string if missing)
2994   *   - email: Recipient email, defaults to empty string
2995   *   - campaignId: Numeric campaign identifier, defaults to 0
2996   *   - expiryDate: Voucher expiry date (timestamp or value), defaults to 0
2997   *   - giftAmount: Amount of the voucher, coerced to number, defaults to 0
2998   *   - userExists: Boolean flag if the user exists, defaults to false
2999   *   - voucherCode: The voucher code provided by the caller
3000   */ const setRecipientData = (recipientData, voucherCode)=>{
3001        var _recipientData_name, _recipientData_name1;
3002        if (!recipientData) {
3003            updateRecipientData(null);
3004            return;
3005        }
3006        const firstName = (recipientData === null || recipientData === void 0 ? void 0 : (_recipientData_name = recipientData.name) === null || _recipientData_name === void 0 ? void 0 : _recipientData_name.split(" ")[0]) || "";
3007        const lastName = (recipientData === null || recipientData === void 0 ? void 0 : (_recipientData_name1 = recipientData.name) === null || _recipientData_name1 === void 0 ? void 0 : _recipientData_name1.split(" ")[1]) || "";
3008        const validateRecipientData = {
3009            firstName: firstName,
3010            lastName: lastName,
3011            email: (recipientData === null || recipientData === void 0 ? void 0 : recipientData.email) || "",
3012            campaignId: (recipientData === null || recipientData === void 0 ? void 0 : recipientData.campaignId) || 0,
3013            expiryDate: (recipientData === null || recipientData === void 0 ? void 0 : recipientData.expiryDate) || 0,
3014            giftAmount: Number(recipientData === null || recipientData === void 0 ? void 0 : recipientData.giftAmount) || 0,
3015            isUserExists: (recipientData === null || recipientData === void 0 ? void 0 : recipientData.userExists) || false,
3016            voucherCode: voucherCode || ""
3017        };
3018        updateRecipientData(validateRecipientData);
3019    };
3020    return {
3021        setRecipientData
3022    };
3023};
3024
3025;// CONCATENATED MODULE: ./src/pages/collections/[categorySlug].tsx
3026
3027
3028
3029
3030
3031
3032
3033
3034
3035
3036
3037
3038
3039
3040
3041
3042
3043
3044
3045
3046
3047
3048
3049
3050
3051
3052
3053
3054const ContentfulLivePreviewWrapper = dynamic_default()(()=>Promise.all(/* import() */[__webpack_require__.e(3590), __webpack_require__.e(9092)]).then(__webpack_require__.bind(__webpack_require__, 779092)).then((mod)=>mod.ContentfulLivePreviewWrapper), {
3055    loadableGenerated: {
3056        webpack: ()=>[
3057                /*require.resolve*/(779092)
3058            ]
3059    },
3060    ssr: false
3061});
3062const ALGOLIA_PLP_REFACTOR_ENABLED = environment.nextAppEnv.feature_toggle.US.algoliaPLPRefactor;
3063const sendTrackingEventFromComponent = debounce_default()((emarsysContext)=>{
3064    (0,trackingEvents/* setEmarsysContext */.lq)({
3065        ...emarsysContext
3066    });
3067}, trackingEvents/* COMPONENT_EVENT_TRACKING_DEBOUNCE_WAIT_TIME */.hK);
3068const CategorySlug = (props)=>{
3069    var _props_pageMetadata, _props_pageMetadata1, _props_globalData;
3070    const cartStoreData = (0,hooks/* useAppSelector */.C)(cartSlice/* cartSliceSelector */.Ew);
3071    const zipCodeStoreData = (0,hooks/* useAppSelector */.C)(zipcodeSlice/* ZipCodeSelector */.pz);
3072    const customerInfo = (0,hooks/* useAppSelector */.C)(customerInfoSlice/* CustomerInfoSelector */.fP);
3073    const customerEmail = customerInfo.email;
3074    const dispatch = (0,hooks/* useAppDispatch */.T)();
3075    const router = (0,next_router.useRouter)();
3076    const cartUtilsForProductTile = (0,cartUtils/* structureCartUtils */.t1)(cartStoreData, zipCodeStoreData, dispatch);
3077    const { categoryName, categoryDisplayName, categorySlug, parentCategoryName, parentCategorySlug, grandParentCategoryName, grandParentCategorySlug, isMainCategory, mediaPodEntry } = props;
3078    const indexName = environment.nextAppEnv.algolia.index;
3079    const showBreadcrumbs = environment.nextAppEnv.feature_toggle.US.breadcrumbs === "show";
3080    const { isCorporateGiftingRecipientFlowEnabled } = (0,lib_hooks/* useEnvironmentFlags */.R6)();
3081    const configureFilter = isMainCategory ? 'categories:"'.concat(categoryName, '"') : 'categories:"'.concat(grandParentCategoryName || parentCategoryName, '" AND subCategories:"').concat(categoryName, '"');
3082    const { getFavoritesList } = (0,lib_hooks/* useFavorites */.rc)();
3083    const { parseUrlParams } = useParseUrlParams();
3084    const urlParams = parseUrlParams();
3085    const contentfuLivePreview = (0,hooks/* useAppSelector */.C)(environmentSlice/* selectContentfulLivePreview */.Yw);
3086    const { setRecipientData } = useSetRecipientData();
3087    const hasValidatedVoucherRef = (0,react.useRef)(false);
3088    const voucherValidationHandlers = (0,react.useMemo)(()=>(0,handlers/* createVoucherValidationHandlers */.nZ)(), []);
3089    /**
3090   * Indicates whether the current flow involves a recipient/campaign,
3091   * such as gifting or a promotional process.
3092   * Determined by the presence of recipient data from the custom hook.
3093   */ const [isCampaignFlow, setIsCampaignFlow] = (0,react.useState)(false);
3094    /**
3095   * State for tracking whether the campaign (e.g., gifting event) is expired.
3096   * Initialized to false and set to true when voucher validation returns
3097   * error code WF_CORPORATE_GIFTING_011 (Voucher has expired).
3098   * Used to control the campaign expired popup display.
3099   */ const [isCampaignExpiredState, setIsCampaignExpiredState] = (0,react.useState)(false);
3100    /**
3101   * State for tracking whether the gift amount has already been redeemed.
3102   * Initialized to false and set to true when voucher validation returns
3103   * error code WF_CORPORATE_GIFTING_012 (Voucher is no more active).
3104   * Used to control the gift already claimed popup display.
3105   */ const [isGiftAmountRedeemed, setIsGiftAmountRedeemed] = (0,react.useState)(false);
3106    (0,react.useEffect)(()=>{
3107        (0,dynamicYield/* setDYContext */.al)("CATEGORY", [
3108            categoryName
3109        ]);
3110        getFavoritesList();
3111    }, [
3112        categoryName,
3113        getFavoritesList
3114    ]);
3115    (0,react.useEffect)(()=>{
3116        router.beforePopState(()=>{
3117            dispatch((0,trackingSlice/* setGTMCategoryNavigationDetail
3117s */.nS)(null));
3118            return true;
3119        });
3120        (0,trackingEvents/* GTMNavigationClicked */.IG)();
3121        return ()=>{
3122            router.beforePopState(()=>true);
3123        };
3124    }, [
3125        dispatch,
3126        router
3127    ]);
3128    (0,react.useEffect)(()=>{
3129        const categoryContext = {
3130            isMainCategory,
3131            categoryName,
3132            parentCategoryName,
3133            grandParentCategoryName
3134        };
3135        const emarsysContext = {
3136            customerEmail,
3137            categoryContext
3138        };
3139        sendTrackingEventFromComponent(emarsysContext);
3140    }, [
3141        categoryName,
3142        customerEmail,
3143        isMainCategory,
3144        parentCategoryName,
3145        grandParentCategoryName
3146    ]);
3147    (0,react.useEffect)(()=>{
3148        // Wait for router to be ready before attempting to parse URL params
3149        if (!router.isReady) {
3150            return;
3151        }
3152        // Prevent duplicate validations - only run once when user lands via email link
3153        if (hasValidatedVoucherRef.current) {
3154            return;
3155        }
3156        // Validate urlParams structure before using
3157        if (urlParams && typeof urlParams === "object" && "email" in urlParams && "voucherCode" in urlParams && typeof urlParams.email === "string" && typeof urlParams.voucherCode === "string" && urlParams.email !== "" && urlParams.voucherCode !== "") {
3158            const handleVoucherValidation = async ()=>{
3159                const result = await voucherValidationHandlers.validateVoucher(urlParams);
3160                setIsCampaignFlow(true);
3161                // Mark as attempted regardless of success/failure to prevent retries
3162                hasValidatedVoucherRef.current = true;
3163                if (result.success && result.data) {
3164                    setRecipientData(result.data, urlParams.voucherCode);
3165                } else {
3166                    setRecipientData(null);
3167                    // If the voucher validation error code indicates an expired campaign,
3168                    // set the campaign expired state to true so the UI can display an appropriate message.
3169                    if (result.error === handlers/* voucherErrorCodes */.aH[1]) {
3170                        setIsCampaignExpiredState(true);
3171                    }
3172                    // If the voucher validation error code indicates the gift amount has already been redeemed,
3173                    // update state to reflect redemption so the UI can notify the user.
3174                    if (result.error === handlers/* voucherErrorCodes */.aH[2]) {
3175                        setIsGiftAmountRedeemed(true);
3176                    }
3177                }
3178            };
3179            if (isCorporateGiftingRecipientFlowEnabled) {
3180                handleVoucherValidation();
3181            } else {
3182                setRecipientData(null);
3183            }
3184        }
3185    }, [
3186        router.isReady,
3187        urlParams,
3188        setRecipientData,
3189        voucherValidationHandlers,
3190        setIsCampaignExpiredState,
3191        setIsGiftAmountRedeemed,
3192        isCorporateGiftingRecipientFlowEnabled
3193    ]);
3194    const pageInfo = {
3195        pageTitle: ((_props_pageMetadata = props.pageMetadata) === null || _props_pageMetadata === void 0 ? void 0 : _props_pageMetadata.title) || "",
3196        pageDescription: ((_props_pageMetadata1 = props.pageMetadata) === null || _props_pageMetadata1 === void 0 ? void 0 : _props_pageMetadata1.description) || "",
3197        headerEntry: props.globalData.headerEntry,
3198        footerEntry: props.globalData.footerEntry,
3199        mainClass: "category-page",
3200        ctCategoryNameMap: props.ctCategoryNameMap
3201    };
3202    const { isLoggedIn } = (0,lib_hooks/* useCustomer */.ON)();
3203    const favoriteUtils = {
3204        isLoggedInUser: isLoggedIn,
3205        useFavorites: lib_hooks/* useFavorites */.rc
3206    };
3207    const globalCollectionEntry = props === null || props === void 0 ? void 0 : (_props_globalData = props.globalData) === null || _props_globalData === void 0 ? void 0 : _props_globalData.globalCollectionEntry;
3208    if (!globalCollectionEntry) return null;
3209    const { globalCampaignTileList, globalFilterOptions, mobileViewTwoColumns = false, miniNavs } = globalCollectionEntry === null || globalCollectionEntry === void 0 ? void 0 : globalCollectionEntry.fields;
3210    const categoryNameData = {
3211        categoryName,
3212        categorySlug,
3213        parentCategoryName,
3214        parentCategorySlug,
3215        grandParentCategoryName,
3216        grandParentCategorySlug
3217    };
3218    const plpTileRendererProps = {
3219        categoryName,
3220        parentCategoryName,
3221        categoryDisplayName,
3222        cartUtils: cartUtilsForProductTile,
3223        favoriteUtils,
3224        globalCampaignTileList,
3225        globalFilterOptions,
3226        mobileViewTwoColumns,
3227        mediaPodEntry,
3228        miniNavs
3229    };
3230    const storeId = cartStoreData === null || cartStoreData === void 0 ? void 0 : cartStoreData.storeId;
3231    const instantSearchKey = "".concat(categorySlug, "-").concat((zipCodeStoreData === null || zipCodeStoreData === void 0 ? void 0 : zipCodeStoreData.zipcode) || "", "-").concat(storeId || "");
3232    return /*#__PURE__*/ (0,jsx_runtime.jsxs)(AppPage/* default */.Z, {
3233        ...pageInfo,
3234        pageMetadata: props.pageMetadata,
3235        children: [
3236            showBreadcrumbs && /*#__PURE__*/ (0,jsx_runtime.jsx)(components_PlpBreadcrumbs, {
3237                categoryNameData: categoryNameData
3238            }),
3239            /*#__PURE__*/ (0,jsx_runtime.jsx)("section", {
3240                className: "category-product-page",
3241                children: /*#__PURE__*/ (0,jsx_runtime.jsxs)(InstantSearch/* InstantSearch */.p, {
3242                    indexName: indexName,
3243                    searchClient: AlgoliaConstants/* algoliaSearchClient */.E2,
3244                    insights: true,
3245                    children: [
3246                        /*#__PURE__*/ (0,jsx_runtime.jsx)(Configure/* Configure */.T, {
3247                            filters: configureFilter,
3248                            hitsPerPage: 28
3249                        }),
3250                        ALGOLIA_PLP_REFACTOR_ENABLED ? contentfuLivePreview ? /*#__PURE__*/ (0,jsx_runtime.jsx)(ContentfulLivePreviewWrapper, {
3251                            entries: [
3252                                globalCollectionEntry
3253                            ],
3254                            children: (param)=>{
3255                                let { updatedEntries } = param;
3256                                const [updatedCollectionPage] = updatedEntries;
3257                                const { globalCampaignTileList, globalFilterOptions, mobileViewTwoColumns = false, miniNavs } = updatedCollectionPage === null || updatedCollectionPage === void 0 ? void 0 : updatedCollectionPage.fields;
3258                                return /*#__PURE__*/ (0,jsx_runtime.jsx)(PlpTileRenderer_PlpTileRenderer, {
3259                                    ...plpTileRendererProps,
3260                                    globalCampaignTileList: globalCampaignTileList,
3261                                    globalFilterOptions: globalFilterOptions,
3262                                    mobileViewTwoColumns: mobileViewTwoColumns,
3263                                    miniNavs: miniNavs
3264                                });
3265                            }
3266                        }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(PlpTileRenderer_PlpTileRenderer, {
3267                            ...plpTileRendererProps
3268                        }) : /*#__PURE__*/ (0,jsx_runtime.jsx)(PlpTileRendererCT, {
3269                            categoryName: categoryName,
3270                            parentCategoryName: parentCategoryName,
3271                            categoryDisplayName: categoryDisplayName,
3272                            cartUtils: cartUtilsForProductTile,
3273                            favoriteUtils: favoriteUtils,
3274                            globalCampaignTileList: globalCampaignTileList,
3275                            globalFilterOptions: globalFilterOptions,
3276                            mobileViewTwoColumns: mobileViewTwoColumns,
3277                            mediaPodEntry: mediaPodEntry
3278                        })
3279                    ]
3280                }, instantSearchKey)
3281            }),
3282            isCampaignFlow && /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
3283                children: isCampaignExpiredState && /*#__PURE__*/ (0,jsx_runtime.jsx)((Popup_default()), {
3284                    isOpen: isCampaignExpiredState,
3285                    onClose: ()=>setIsCampaignExpiredState(false),
3286                    onClick: ()=>setIsCampaignExpiredState(false),
3287                    textMessage: corporate_gift.CORPORATE_GIFT_POPUP_MESSAGES.CAMPAIGN_EXPIRED.textMessage,
3288                    buttonText: corporate_gift.CORPORATE_GIFT_POPUP_MESSAGES.CAMPAIGN_EXPIRED.buttonText,
3289                    title: corporate_gift.CORPORATE_GIFT_POPUP_MESSAGES.CAMPAIGN_EXPIRED.title
3290                })
3291            }),
3292            isCampaignFlow && /*#__PURE__*/ (0,jsx_runtime.jsx)(jsx_runtime.Fragment, {
3293                children: isGiftAmountRedeemed && /*#__PURE__*/ (0,jsx_runtime.jsx)((Popup_default()), {
3294                    isOpen: isGiftAmountRedeemed,
3295                    onClose: ()=>setIsGiftAmountRedeemed(false),
3296                    onClick: ()=>setIsGiftAmountRedeemed(false),
3297                    textMessage: corporate_gift.CORPORATE_GIFT_POPUP_MESSAGES.GIFT_ALREADY_CLAIMED.textMessage,
3298                    buttonText: corporate_gift.CORPORATE_GIFT_POPUP_MESSAGES.GIFT_ALREADY_CLAIMED.buttonText,
3299                    title: corporate_gift.CORPORATE_GIFT_POPUP_MESSAGES.GIFT_ALREADY_CLAIMED.title
3300                })
3301            })
3302        ]
3303    });
3304};
3305var __N_SSG = true;
3306/* harmony default export */ var _categorySlug_ = (CategorySlug);
3307
3308
3309/***/ }),
3310
3311/***/ 205498:
3312/***/ (function(module) {
3313
3314// extracted by mini-css-extract-plugin
3315module.exports = {"title":"Filter_title__AyFqC","filterTItle":"Filter_filterTItle__pfbLQ","categoryTitle":"Filter_categoryTitle__fMrfU","facetTitle":"Filter_facetTitle__BaCms","clearAll":"Filter_clearAll__sO3pn","selectedSortBy":"Filter_selectedSortBy__hVl3u","buttonFilter":"Filter_buttonFilter__lULjG","applyFilterButton":"Filter_applyFilterButton__L0O45","numberOfFilter":"Filter_numberOfFilter__95ogq"};
3316
3317/***/ })
3318
3319},
3320/******/ function(__webpack_require__) { // webpackRuntimeModules
3321/******/ var __webpack_exec__ = function(moduleId) { return __webpack_require__(__webpack_require__.s = moduleId); }
3322/******/ __webpack_require__.O(0, [8075,5432,1255,8867,3153,3949,3326,6382,68,4772,7987,5450,4523,737,6609,3436,9539,4483,2611,4263,1650,9786,5551,9013,3038,170,9277,29,5098,4243,4778,9864,8764,6246,4927,4935,1433,7723,6593,2678,4582,4885,1061,71,678,641,9352,1772,5401,2914,3483,8735,6576,5218,9774,480,179], function() { return __webpack_exec__(532417); });
3323/******/ var __webpack_exports__ = __webpack_require__.O();
3324/******/ _N_E = __webpack_exports__;
3325/******/ }
3326]);

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.