PageSourceSearch

https://brewdog.com/cdn/shop/t/271/assets/index-Qx5q438i.js

js brewdog.com collected 2026-09-24 08:41:54 UTC 36,714 bytes, 19 lines download raw bytes

1import{p,F as F$1,_,P as P$1,g as g$1,y,A as A$1,T as T$2,q as q$1,x as x$1,V as V$1,r as register}from"./hooks.module-Cc20K0Ba.js";import{J as J$1,g,k as k$1,l,w as w$1,T as T$1,m,D as D$1,E as E$1,G as G$1}from"./preact.module-B5ZnQuyU.js";import{g as getProducts}from"./index-8UhTnbf1.js";import{P as Price}from"./ProductPrice--l97YCzz.js";import{i as isAuthorized}from"./utils-D8tYCXRD.js";import"./section-rendering-Bf2mDQN0.js";import"./storefront-Bthd_nt4.js";import"./klevu-BVC2pWRs.js";import"./currency-DRNmrEpZ.js";const CollectionContext=J$1(void 0),CollectionProvider=({children,productsPerPage,currentPage})=>{const searchParams=new URLSearchParams(window.location.search),initialFilters=[];searchParams.forEach((value,key)=>{key.startsWith("filter")&&initialFilters.push({param_name:key,values:value.split(","),type:"checkbox"})});const[products,setProducts]=p("pending"),[productCount,setProductCount]=p(0),[pagination,setPagination]=p({currentPage:searchParams.has("page")?Number(searchParams.get("page")):currentPage,perPage:productsPerPage,pages:1}),[filters,setFilters]=p([]),[selectedFilters,setSelectedFilters]=p(initialFilters),[selectedSort,setSelectedSort]=p(searchParams.has("sort")&&searchParams.get("sort")||"manual"),isFirstRender=F$1(!0);_(()=>{let currentPagination=pagination;isFirstRender.current||(setPagination(prevPagination=>({...prevPagination,currentPage:1})),currentPagination={...pagination,currentPage:1}),(async()=>{if(await fetchProducts(selectedFilters,currentPagination,selectedSort),isFirstRender.current&&currentPagination.currentPage!==1){const productHandle=sessionStorage.getItem("productHandle");if(productHandle){const productCard=document.getElementById(productHandle);productCard&&(productCard.scrollIntoView(),sessionStorage.removeItem("productHandle"))}}isFirstRender.current&&(isFirstRender.current=!1)})()},[selectedFilters,selectedSort]);const fetchProducts=async(selectedFilters2,pagination2,selectedSort2,append,prepend)=>{const data=await getProducts("SECTION_RENDERING",selectedFilters2,pagination2,selectedSort2),searchParams2=new URLSearchParams(window.location.search);prepend||searchParams2.set("page",pagination2.currentPage?pagination2.currentPage.toString():"1"),searchParams2.set("sort",selectedSort2||"manual");for(const key of searchParams2.keys())key.startsWith("filter")&&!selectedFilters2.some(filter=>filter.param_name===key)&&searchParams2.delete(key);if(selectedFilters2.length>0)for(const filter of selectedFilters2)searchParams2.set(filter.param_name,filter.values.join(","));window.history.replaceState({},"",`${window.location.pathname}?${searchParams2.toString()}`),setProducts(prevProducts=>Array.isArray(prevProducts)&&Array.isArray(data.products)?append?[...prevProducts,...data.products]:prepend?[...data.products,...prevProducts]:data.products:data.products),setProductCount(data.productCount),prepend||setPagination(data.pagination),setFilters(data.filters)},clearFilters=()=>{setSelectedFilters([])};return g(CollectionContext.Provider,{value:{products,productCount,pagination,filters,selectedFilters,selectedSort,setPagination,setSelectedSort,setSelectedFilters,fetchProducts,clearFilters}},children)},useCollection=()=>{const context=P$1(CollectionContext);if(context===void 0)throw new Error("useCollection must be used within a CollectionProvider");return context};function FiltersForm(query){const{filters,selectedFilters,setSelectedFilters}=useCollection(),handleOpenFilterOptions=event=>{const filterTitle=event.target.closest(".filters__title");if(!filterTitle)return;const filterGroup=filterTitle.closest(".filters__group");filterGroup&&filterGroup.classList.toggle("filters__group--open");const allFilters=document.querySelectorAll(".filters__group");allFilters.forEach(filter=>{filter!==filterGroup&&filter.classList.remove("filters__group--open")}),document.addEventListener("click",e=>{e.target.closest(".filters")||allFilters.forEach(filter=>{filter.classList.remove("filters__group--open")})})},handleFilterChange=(param_name,type,label,event)=>{const target=event.target;if(!target)return;const isChecked=target.checked;setSelectedFilters((currentFilters=>{const newFilters=[...currentFilters],existingFilterIndex=newFilters.findIndex(filter=>filter.param_name===param_name);if(existingFilterIndex!==-1){const newValues=isChecked?[...newFilters[existingFilterIndex].values,label]:newFilters[existingFilterIndex].values.filter(v=>v!==label);newValues.length>0?newFilters[existingFilterIndex]={...newFilters[existingFilterIndex],values:newValues}:newFilters.splice(existingFilterIndex,1)}else isChecked&&newFilters.push({param_name,values:[label],type});return newFilters})(selectedFilters))},template=window.themeVars.store.template;let showFilterLoadingState=!1;return filters.length||(showFilterLoadingState=!0,template==="search"&&!query.query&&(showFilterLoadingState=!1)),showFilterLoadingState?g("div",{className:`
2        filters
3        is-loading__skeleton
4      `}):g("div",{className:"filters",onClick:handleOpenFilterOptions},filters.map(filter=>g("div",{className:"filters__group",key:filter.param_name},g("p",{className:"filters__title text-md-body--semi-bold"},filter.label,g("span",{className:"filters__chevron",dangerouslySetInnerHTML:{__html:window.themeVars.icons.chevronDown}})),g("div",{className:"filters__options"},filter.values.map(option=>g("label",{key:option.label},g("input",{type:"checkbox",value:option.label,checked:selectedFilters.some(f=>f.param_name===filter.param_name&&f.values.includes(option.label)),onChange:event=>handleFilterChange(filter.param_name,filter.type,option.label,event)}),option.label))))))}function S(n,t){for(var e in t)n[e]=t[e];return n}function C(n,t){for(var e in n)if(e!=="__source"&&!(e in t))return!0;for(var r in t)if(r!=="__source"&&n[r]!==t[r])return!0;return!1}function E(n,t){this.props=n,this.context=t}function w(n,e){function r(n2){var t=this.props.ref,r2=t==n2.ref;return!r2&&t&&(t.call?t(null):t.current=null),e?!e(this.props,n2)||!r2:C(this.props,n2)}function u(e2){return this.shouldComponentUpdate=r,g(n,e2)}return u.displayName="Memo("+(n.displayName||n.name)+")",u.prototype.isReactComponent=!0,u.__f=!0,u}(E.prototype=new k$1).isPureReactComponent=!0,E.prototype.shouldComponentUpdate=function(n,t){return C(this.props,n)||C(this.state,t)};var x=l.__b;l.__b=function(n){n.type&&n.type.__f&&n.ref&&(n.props.ref=n.ref,n.ref=null),x&&x(n)};var R=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.forward_ref")||3911;function N(n){function t(t2){var e=S({},t2);return delete e.ref,n(e,t2.ref||null)}return t.$$typeof=R,t.render=t,t.prototype.isReactComponent=t.__f=!0,t.displayName="ForwardRef("+(n.displayName||n.name)+")",t}var k=function(n,t){return n==null?null:T$1(T$1(n).map(t))},A={map:k,forEach:k,count:function(n){return n?T$1(n).length:0},only:function(n){var t=T$1(n);if(t.length!==1)throw"Children.only";return t[0]},toArray:T$1},M=l.__e;l.__e=function(n,t,e,r){if(n.then){for(var u,o=t;o=o.__;)if((u=o.__c)&&u.__c)return t.__e==null&&(t.__e=e.__e,t.__k=e.__k),u.__c(n,t)}M(n,t,e,r)};var O=l.unmount;function T(n,t,e){return n&&(n.__c&&n.__c.__H&&(n.__c.__H.__.forEach(function(n2){typeof n2.__c=="function"&&n2.__c()}),n.__c.__H=null),(n=S({},n)).__c!=null&&(n.__c.__P===e&&(n.__c.__P=t),n.__c=null),n.__k=n.__k&&n.__k.map(function(n2){return T(n2,t,e)})),n}function F(n,t,e){return n&&e&&(n.__v=null,n.__k=n.__k&&n.__k.map(function(n2){return F(n2,t,e)}),n.__c&&n.__c.__P===t&&(n.__e&&e.appendChild(n.__e),n.__c.__e=!0,n.__c.__P=e)),n}function I(){this.__u=0,this.t=null,this.__b=null}function L(n){var t=n.__.__c;return t&&t.__a&&t.__a(n)}function U(n){var e,r,u;function o(o2){if(e||(e=n()).then(function(n2){r=n2.default||n2},function(n2){u=n2}),u)throw u;if(!r)throw e;return g(r,o2)}return o.displayName="Lazy",o.__f=!0,o}function D(){this.u=null,this.o=null}l.unmount=function(n){var t=n.__c;t&&t.__R&&t.__R(),t&&32&n.__u&&(n.type=null),O&&O(n)},(I.prototype=new k$1).__c=function(n,t){var e=t.__c,r=this;r.t==null&&(r.t=[]),r.t.push(e);var u=L(r.__v),o=!1,i=function(){o||(o=!0,e.__R=null,u?u(l2):l2())};e.__R=i;var l2=function(){if(!--r.__u){if(r.state.__a){var n2=r.state.__a;r.__v.__k[0]=F(n2,n2.__c.__P,n2.__c.__O)}var t2;for(r.setState({__a:r.__b=null});t2=r.t.pop();)t2.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),n.then(i,i)},I.prototype.componentWillUnmount=function(){this.t=[]},I.prototype.render=function(n,e){if(this.__b){if(this.__v.__k){var r=document.createElement("div"),o=this.__v.__k[0].__c;this.__v.__k[0]=T(this.__b,r,o.__O=o.__P)}this.__b=null}var i=e.__a&&g(w$1,null,n.fallback);return i&&(i.__u&=-33),[g(w$1,null,e.__a?null:n.children),i]};var V=function(n,t,e){if(++e[1]===e[0]&&n.o.delete(t),n.props.revealOrder&&(n.props.revealOrder[0]!=="t"||!n.o.size))for(e=n.u;e;){for(;e.length>3;)e.pop()();if(e[1]<e[0])break;n.u=e=e[2]}};function W(n){return this.getChildContext=function(){return n.context},n.children}function P(n){var e=this,r=n.i;e.componentWillUnmount=function(){D$1(null,e.l),e.l=null,e.i=null},e.i&&e.i!==r&&e.componentWillUnmount(),e.l||(e.i=r,e.l={nodeType:1,parentNode:r,childNodes:[],appendChild:function(n2){this.childNodes.push(n2),e.i.appendChild(n2)},insertBefore:function(n2,t){this.childNodes.push(n2),e.i.appendChild(n2)},removeChild:function(n2){this.childNodes.splice(this.childNodes.indexOf(n2)>>>1,1),e.i.removeChild(n2)}}),D$1(g(W,{context:e.context},n.__v),e.l)}function j(n,e){var r=g(P,{__v:n,i:e});return r.containerInfo=e,r}(D.prototype=new k$1).__a=function(n){var t=this,e=L(t.__v),r=t.o.get(n);return r[0]++,function(u){var o=function(){t.props.revealOrder?(r.push(u),V(t,n,r)):u()};e?e(o):o()}},D.prototype.render=function(n){this.u=null,this.o=new Map;var t=T$1(n.children);n.revealOrder&&n.revealOrder[0]==="b"&&t.reverse();for(var e=t.length;e--;)this.o.set(t[e],this.u=[1,0,this.u]);return n.children},D.prototype.componentDidUpdate=D.prototype.componentDidMount=function(){var n=this;this.o.forEach(function(t,e){V(n,e,t)})};var z=typeof Symbol<"u"&&Symbol.for&&Symbol.for("react.element")||60103,B=/^(?:accent|alignment|arabic|baseline|cap|clip(?!PathU)|color|dominant|fill|flood|font|glyph(?!R)|horiz|image(!S)|letter|lighting|marker(?!H|W|U)|overline|paint|pointer|shape|stop|strikethrough|stroke|text(?!L)|transform|underline|unicode|units|v|vector|vert|word|writing|x(?!C))[A-Z]/,H=/^on(Ani|Tra|Tou|BeforeInp|Compo)/,Z=/[A-Z0-9]/g,Y=typeof document<"u",$=function(n){return(typeof Symbol<"u"&&typeof Symbol()=="symbol"?/fil|che|rad/:/fil|che|ra/).test(n)};function q(n,t,e){return t.__k==null&&(t.textContent=""),D$1(n,t),typeof e=="function"&&e(),n?n.__c:null}function G(n,t,e){return E$1(n,t),typeof e=="function"&&e(),n?n.__c:null}k$1.prototype.isReactComponent={},["componentWillMount","componentWillReceiveProps","componentWillUpdate"].forEach(function(t){Object.defineProperty(k$1.prototype,t,{configurable:!0,get:function(){return this["UNSAFE_"+t]}
4,set:function(n){Object.defineProperty(this,t,{configurable:!0,writable:!0,value:n})}})});var J=l.event;function K(){}function Q(){return this.cancelBubble}function X(){return this.defaultPrevented}l.event=function(n){return J&&(n=J(n)),n.persist=K,n.isPropagationStopped=Q,n.isDefaultPrevented=X,n.nativeEvent=n};var nn,tn={enumerable:!1,configurable:!0,get:function(){return this.class}},en=l.vnode;l.vnode=function(n){typeof n.type=="string"&&(function(n2){var t=n2.props,e=n2.type,u={};for(var o in t){var i=t[o];if(!(o==="value"&&"defaultValue"in t&&i==null||Y&&o==="children"&&e==="noscript"||o==="class"||o==="className")){var l2=o.toLowerCase();o==="defaultValue"&&"value"in t&&t.value==null?o="value":o==="download"&&i===!0?i="":l2==="translate"&&i==="no"?i=!1:l2==="ondoubleclick"?o="ondblclick":l2!=="onchange"||e!=="input"&&e!=="textarea"||$(t.type)?l2==="onfocus"?o="onfocusin":l2==="onblur"?o="onfocusout":H.test(o)?o=l2:e.indexOf("-")===-1&&B.test(o)?o=o.replace(Z,"-$&").toLowerCase():i===null&&(i=void 0):l2=o="oninput",l2==="oninput"&&u[o=l2]&&(o="oninputCapture"),u[o]=i}}e=="select"&&u.multiple&&Array.isArray(u.value)&&(u.value=T$1(t.children).forEach(function(n3){n3.props.selected=u.value.indexOf(n3.props.value)!=-1})),e=="select"&&u.defaultValue!=null&&(u.value=T$1(t.children).forEach(function(n3){n3.props.selected=u.multiple?u.defaultValue.indexOf(n3.props.value)!=-1:u.defaultValue==n3.props.value})),t.class&&!t.className?(u.class=t.class,Object.defineProperty(u,"className",tn)):(t.className&&!t.class||t.class&&t.className)&&(u.class=u.className=t.className),n2.props=u})(n),n.$$typeof=z,en&&en(n)};var rn=l.__r;l.__r=function(n){rn&&rn(n),nn=n.__c};var un=l.diffed;l.diffed=function(n){un&&un(n);var t=n.props,e=n.__e;e!=null&&n.type==="textarea"&&"value"in t&&t.value!==e.value&&(e.value=t.value==null?"":t.value),nn=null};var on={ReactCurrentDispatcher:{current:{readContext:function(n){return nn.__n[n.__c].props.value}}}};function cn(n){return g.bind(null,n)}function fn(n){return!!n&&n.$$typeof===z}function an(n){return fn(n)&&n.type===w$1}function sn(n){return!!n&&!!n.displayName&&(typeof n.displayName=="string"||n.displayName instanceof String)&&n.displayName.startsWith("Memo(")}function hn(n){return fn(n)?G$1.apply(null,arguments):n}function vn(n){return!!n.__k&&(D$1(null,n),!0)}function dn(n){return n&&(n.base||n.nodeType===1&&n)||null}var pn=function(n,t){return n(t)},mn=function(n,t){return n(t)},yn=w$1;function _n(n){n()}function bn(n){return n}function gn(){return[!1,_n]}var Sn=A$1,Cn=fn;function En(n,t){var e=t(),r=p({h:{__:e,v:t}}),u=r[0].h,o=r[1];return A$1(function(){u.__=e,u.v=t,wn(u)&&o({h:u})},[n,e,t]),_(function(){return wn(u)&&o({h:u}),n(function(){wn(u)&&o({h:u})})},[n]),e}function wn(n){var t,e,r=n.v,u=n.__;try{var o=r();return!((t=u)===(e=o)&&(t!==0||1/t==1/e)||t!=t&&e!=e)}catch{return!0}}var xn={useState:p,useId:g$1,useReducer:y,useEffect:_,useLayoutEffect:A$1,useInsertionEffect:Sn,useTransition:gn,useDeferredValue:bn,useSyncExternalStore:En,startTransition:_n,useRef:F$1,useImperativeHandle:T$2,useMemo:q$1,useCallback:x$1,useContext:P$1,useDebugValue:V$1,version:"17.0.2",Children:A,render:q,hydrate:G,unmountComponentAtNode:vn,createPortal:j,createElement:g,createContext:J$1,createFactory:cn,cloneElement:hn,createRef:m,Fragment:w$1,isValidElement:fn,isElement:Cn,isFragment:an,isMemo:sn,findDOMNode:dn,Component:k$1,PureComponent:E,memo:w,forwardRef:N,flushSync:mn,unstable_batchedUpdates:pn,StrictMode:yn,Suspense:I,SuspenseList:D,lazy:U,__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED:on};const ProductCard=({columns,product})=>{var _a;const baseClass=columns===1?"product-card-stacked":"product-card",cardClass=isAuthorized(product,window.themeVars.customer)?baseClass:`${baseClass} ${baseClass}--locked`,isSingleVariantOutOfStock=!product.available&&((_a=product.tags)==null?void 0:_a.includes("single-variant-out-of-stock")),hasBisEnabled=isSingleVariantOutOfStock&&product.tags.includes("back-in-stock"),finalCardClass=isSingleVariantOutOfStock?`${cardClass} ${baseClass}--single-variant-out-of-stock`:cardClass;let imageClass="";const hidePrice=product.hidePricePlp==="true";product.images.length===1&&(imageClass=`${baseClass}__images--single`),isSingleVariantOutOfStock&&(imageClass+=` ${baseClass}__images--out-of-stock`);let personalised=!1,detailsBtnText=window.themeVars.strings.product.btnDetails;product.tags.includes("personalised")&&(personalised=!0,detailsBtnText=window.themeVars.strings.product.btnPersonalise);let showEfpBadge=!0;product.variants.every(variant=>variant.real_compare_at_price)&&(showEfpBadge=!1);const getProductLockText=accessRestriction=>{const restrictions=window.themeVars.strings.customer.restrictions;
4return restrictions?(restrictions[accessRestriction]??window.themeVars.strings.customer.restrictions.default.title).title:void 0},ProductContent=()=>{var _a2,_b,_c;return g("div",{className:`${baseClass}__content`},g("div",{className:`${baseClass}__images ${imageClass}`},g("div",{className:`${baseClass}__badge-wrapper`},isSingleVariantOutOfStock&&g("span",{className:`${baseClass}__badge badge badge-yellow`,style:{backgroundColor:"#FEF3C7",color:"#000000"}},window.themeVars.strings.product.soldOut),product.customBadge&&product.customBadge!=="no input"&&!isSingleVariantOutOfStock&&g("span",{className:`${baseClass}__badge badge badge-orange`},product.customBadge),product.saleBadge&&!isSingleVariantOutOfStock&&g("span",{className:`${baseClass}__badge badge badge-red`},product.saleBadge)),product.landscapeImg&&columns===1?g("div",{className:`responsive-image ${baseClass}__image ${baseClass}__landscape-image`},g("a",{className:"product-card__link",href:`${window.Shopify.routes.root}products/${product.handle}`},g("img",{width:315,height:315,src:product.landscapeImg,alt:product.title}))):g(xn.Fragment,null,g("div",{className:`responsive-image ${baseClass}__image`},g("a",{className:"product-card__link",href:`${window.Shopify.routes.root}products/${product.handle}`},g("img",{width:315,height:315,src:(_a2=product.images[0])==null?void 0:_a2.src,alt:product.title}))),product.images.length>1&&g("div",{className:`responsive-image ${baseClass}__image ${baseClass}__image--rollover`},g("a",{className:"product-card__link",href:`${window.Shopify.routes.root}products/${product.handle}`},g("img",{width:315,height:315,src:(_b=product.images[1])==null?void 0:_b.src,alt:`${product.title} rollover`})))),!isAuthorized(product,window.themeVars.customer)&&g("div",{className:"product-lock","aria-hidden":"true"},g("div",{className:"product-lock__wrapper"},g("div",{className:"product-lock__content"},g("span",{"aria-hidden":"true",dangerouslySetInnerHTML:{__html:window.themeVars.icons.lock}}),g("div",{className:"product-lock__text"},g("p",{className:"product-lock__title"},getProductLockText(product.accessRestriction)),g("p",{className:"product-lock__desc"},g("a",{href:window.themeVars.strings.product.logInLink},window.themeVars.strings.product.logIn),"\xA0",window.themeVars.strings.product.lockedText,"\xA0",g("a",{href:window.themeVars.strings.product.signUpLink},window.themeVars.strings.product.signUp)))),g("div",{className:"product-lock__buttons"},g("a",{href:window.themeVars.strings.product.logInLink,className:"product__log-in btn btn-white btn-white--outline"},window.themeVars.strings.product.logIn),g("a",{href:window.themeVars.strings.product.signUpLink,className:"product__sign-up btn btn-white btn-white--outline"},window.themeVars.strings.product.signUp))))),(product.abv||product.style||product.size&&String(product.size)!=="0")&&g("div",{className:`${baseClass}__info outside`},g("ul",{className:`
5            ${baseClass}__info-wrapper
6            ${baseClass}__info-wrapper--${[product.abv&&1,product.style&&1,product.size&&String(product.size)!=="0"&&1].filter(Boolean).length}-items`},product.abv&&g("li",{className:`${baseClass}__info-item`},g("span",{className:`${baseClass}__info-label`},window.themeVars.strings.product.details.abv),g("span",{className:`${baseClass}__info-value`},product.abv,"%")),product.style&&g("li",{className:`${baseClass}__info-item`},g("span",{className:`${baseClass}__info-label`},window.themeVars.strings.product.details.style),g("span",{className:`${baseClass}__info-value`},product.style)),product.size&&String(product.size)!=="0"&&g("li",{className:`${baseClass}__info-item`},g("span",{className:`${baseClass}__info-label`},window.themeVars.strings.product.details.size),g("span",{className:`${baseClass}__info-value`},product.size)))),g("div",{className:`${baseClass}__details-buttons`},g("div",{className:`${baseClass}__details-wrapper`},g("div",{className:`${baseClass}__details`},g("div",{className:`${baseClass}__wrapper`},g("a",{className:"product-card__link",href:`${window.Shopify.routes.root}products/${product.handle}`},g("h3",{className:`${baseClass}__title heading-4`,dangerouslySetInnerHTML:{__html:product.title}}
6)),g("p",{className:`${baseClass}__subtitle text-md-body`},product.subtitle),(product.abv||product.style||product.size&&String(product.size)!=="0")&&g("div",{className:`${baseClass}__info inside`},g("ul",{className:`
7                    ${baseClass}__info-wrapper
8                    ${baseClass}__info-wrapper--${[product.abv&&1,product.style&&1,product.size&&String(product.size)!=="0"&&1].filter(Boolean).length}-items`},product.abv&&g("li",{className:`${baseClass}__info-item`},g("span",{className:`${baseClass}__info-label`},window.themeVars.strings.product.details.abv),g("span",{className:`${baseClass}__info-value`},product.abv,"%")),product.style&&g("li",{className:`${baseClass}__info-item`},g("span",{className:`${baseClass}__info-label`},window.themeVars.strings.product.details.style),g("span",{className:`${baseClass}__info-value`},product.style)),product.size&&String(product.size)!=="0"&&g("li",{className:`${baseClass}__info-item`},g("span",{className:`${baseClass}__info-label`},window.themeVars.strings.product.details.size),g("span",{className:`${baseClass}__info-value`},product.size)))),window.themeVars.customer.staff&&showEfpBadge?g("p",{className:`${baseClass}__staff-member-badge staff-member-badge`},g("span",{dangerouslySetInnerHTML:{__html:window.themeVars.icons.checkmark}}),window.themeVars.strings.product.staffDiscount):window.themeVars.customer.efpMember&&showEfpBadge?g("p",{className:`${baseClass}__efp-member-badge efp-member-badge`},g("span",{dangerouslySetInnerHTML:{__html:window.themeVars.icons.checkmark}}),window.themeVars.strings.product.efpDiscount):null,!hidePrice&&g("p",{className:`${baseClass}__price`},g(Price,{product})))),g("div",{className:`${baseClass}__buttons`},personalised===!1&&(product.stockistButtonLink&&product.stockistButtonText?g("a",{href:product.stockistButtonLink,className:`${baseClass}__options-cta btn btn-black btn-small`,"aria-label":`${product.stockistButtonText} ${product.title}`},product.stockistButtonText):isSingleVariantOutOfStock?hasBisEnabled?g("button",{type:"button",className:`${baseClass}__options-cta btn btn-black btn-small`,"data-bis-trigger":!0,"data-product":product.id,"data-variant":(_c=product.variants[0])==null?void 0:_c.id},g("span",null,window.themeVars.strings.product.notifyMe)):g("button",{type:"button",className:`${baseClass}__options-cta btn btn-black btn-small`,disabled:!0},g("span",null,window.themeVars.strings.product.soldOut)):!hidePrice&&g(w$1,null,g("uwp-quickshop-button",{"data-product":JSON.stringify(product)},g("button",{"aria-label":String(window.themeVars.strings.product.quickshopLabel).concat(product.title),"data-quickshop":product.handle,className:"product-card__options-cta btn btn-black btn-small"},product.preOrder!="true"?window.themeVars.strings.product.btnOptions:window.themeVars.strings.product.pre_order)))),g("a",{href:`${window.Shopify.routes.root}products/${product.handle}`,className:`${baseClass}__details-cta btn btn-transparent btn-small`,"aria-label":`${window.themeVars.strings.product.linkLabel}${product.title}`,...personalised&&{style:{width:"100%"}}},isSingleVariantOutOfStock?window.themeVars.strings.product.readMore:detailsBtnText)),(hasBisEnabled||!hidePrice)&&g("uwp-product-notify-me",{"data-product-id":product.id,"data-variant-id":"","product-data":JSON.stringify(product),"is-visible":"false"}))))};return _(()=>{const bisButton=document.querySelector(`[data-bis-trigger][data-product="${product.id}"]`),bisPopup=document.querySelector(`uwp-product-notify-me[data-product-id="${product.id}"]`);if(bisButton&&bisPopup){const handleBisClick=()=>{bisPopup.setAttribute("is-visible","true")};return bisButton.addEventListener("click",handleBisClick),()=>{bisButton.removeEventListener("click",handleBisClick)}}},[product.id]),g("article",{className:finalCardClass,"aria-label":`product-title-${product.title}`,id:product.handle},isAuthorized(product,window.themeVars.customer)?g(ProductContent,null):g(ProductContent,null))},PromoBanner=({title,text,colorClass})=>g("div",{className:`product-grid__promo-banner ${colorClass}`},g("h2",{className:"product-grid__promo-banner__heading heading-2",dangerouslySetInnerHTML:{__html:title}}),g("p",{className:"product-grid__promo-banner__text text-md-body"},text)),PromoCard=({title,button_link,button_text,img,row,column,position="center middle",text_color="white",button_color="black"})=>{const positionClasses=position.split(" ").map(pos=>`product-grid__promo-card--${pos.trim()}`).join(" "),gridStyle=row!==void 0&&column!==void 0?{"--row":row,"--column":column}:{};return g("div",{className:`product-grid__promo-card ${positionClasses}`,style:gridStyle},g("img",{src:img,alt:title,loading:"lazy"}),g("div",{className:"product-grid__promo-card__content"},g("h3",{className:`product-grid__promo-card__heading heading-3 text--${text_color}`},title),g("a",{href:button_link,className:`product-grid__promo-card__button btn btn-${button_color}`},button_text)))},ProductGrid=({columns,query=""})=>{const{products,fetchProducts,pagination,selectedFilters,selectedSort}=useCollection(),[currentPage,setCurrentPage]=p(Number(pagination.currentPage)||1),[previousPage,setPreviousPage]=p(Number(pagination.currentPage)?Number(pagination.currentPage)-1:0),template=window.themeVars.store.template;let content;_(()=>{setCurrentPage(Number(pagination.currentPage))},[pagination]);const handleLoadMore=()=>{const newPage=currentPage+1;fetchProducts(selectedFilters,{...pagination,currentPage:newPage},selectedSort,!0),setCurrentPage(newPage)},handleLoadPrevious=()=>{fetchProducts(selectedFilters,{...pagination,currentPage:previousPage},selectedSort,!1,!0),setPreviousPage(previousPage-1)},renderProductsWithBanners=products2=>{const items=[];window.themeVars.strings.collection.promos.forEach(promo=>{items.push(g(PromoCard,{key:promo.id,title:promo.title,button_link:promo.button.url,button_text:promo.button.text,img:promo.image,row:promo.row,column:promo.column}))});const showPromoBannerOne=window.themeVars.strings.collection.showPromoBannerOne,collectionHidePromoBannerOne=window.themeVars.strings.collection.collectionHidePromoBanner1,showPromoBannerTwo=window.themeVars.strings.collection.showPromoBannerTwo,collectionHidePromoBannerTwo=window.themeVars.strings.collection.collectionHidePromoBanner2;let promoBannerOneTitle=window.themeVars.collection.promo_banner_one.title?window.themeVars.collection.promo_banner_one.title:window.themeVars.strings.collection.promoBannerOneTitle;const promoBannerOneUrl=window.themeVars.collection.promo_banner_one.url;promoBannerOneUrl&&(promoBannerOneTitle=`<a href="${promoBannerOneUrl}">${promoBannerOneTitle}</a>`);const promoBannerOneText=window.themeVars.collection.promo_banner_one.text?window.themeVars.collection.promo_banner_one.text:window.themeVars.strings.collection.promoBannerOneText,promoBannerOneColor=window.themeVars.collection.promo_banner_one.color?window.themeVars.collection.promo_banner_one.color:"orange";let promoBannerTwoTitle=window.themeVars.collection.promo_banner_two.title?window.themeVars.collection.promo_banner_two.title:window.themeVars.strings.collection.promoBannerTwoTitle;const promoBannerTwoUrl=window.themeVars.collection.promo_banner_two.url;promoBannerTwoUrl&&(promoBannerTwoTitle=`<a href="${promoBannerTwoUrl}">${promoBannerTwoTitle}</a>`);const promoBannerTwoText=window.themeVars.collection.promo_banner_two.text?window.themeVars.collection.promo_banner_two.text:window.themeVars.strings.collection.promoBannerTwoText,promoBannerTwoColor=window.themeVars.collection.promo_banner_two.color?window.themeVars.collection.promo_banner_two.color:"blue",promoGridPosition=window.themeVars.strings.collection.promo_grid_position!=null?Number(window.themeVars.strings.collection.promo_grid_position):12;return products2.forEach((product,index)=>{collectionHidePromoBannerOne||index===4&&showPromoBannerOne&&items.push(g(PromoBanner,{key:"promo1",title:promoBannerOneTitle,text:promoBannerOneText,colorClass:`product-grid__promo-banner product-grid__promo-banner--${promoBannerOneColor}`})),collectionHidePromoBannerTwo||index===8&&showPromoBannerTwo&&items.push(g(PromoBanner,{key:"promo2",title:promoBannerTwoTitle,text:promoBannerTwoText,colorClass:`product-grid__promo-banner product-grid__promo-banner--${promoBannerTwoColor}`})),index===promoGridPosition&&window.themeVars.strings.collection.promo_image.includes("no-image")!==!0&&items.push(g(PromoCard,{key:"promoCard",title:window.themeVars.strings.collection.promo_title,button_link:window.themeVars.strings.collection.promo_button_link,button_text:window.themeVars.strings.collection.promo_button_text,img:window.themeVars.strings.collection.promo_image,position:`${window.themeVars.strings.collection.promo_position_horizontal} ${window.themeVars.strings.collection.promo_position_vertical}`,text_color:window.themeVars.strings.collection.promo_text_color,button_color:window.themeVars.strings.collection.promo_button_color})),items.push(g(ProductCard,{key:product.id,product,columns}))}),items},renderProductGridLoadingState=()=>[g("div",{key:"loading-state",className:`
9        container
10        product-grid__container
11        product-grid__columns--${columns}
12      `},Array.from({length:pagination.perPage}).map((_2,index)=>g("div",{className:`
13              product-card
14              is-loading__skeleton
15            `,key:index})))];if(products==="pending"&&(content=renderProductGridLoadingState()),template==="search")query?query&&products==="pending"?content=renderProductGridLoadingState():query&&!products?.length?content=g("div",{className:"container product-grid__container product-grid__container--no-results"},g("p",{className:"text-sm"},window.themeVars.strings.search.noResultsFound.replace("{{terms}}",query))):Array.isArray(products)&&(content=g("div",{className:`container product-grid__container product-grid__columns--${columns}`},renderProductsWithBanners(products))):content=g("div",{className:"container product-grid__container product-grid__container--pending"},g("p",{className:"text-sm"},window.themeVars.strings.search.searchPending));else if(Array.isArray(products)){const columnsClass=`container product-grid__container product-grid__columns--${columns}`;content=g(w$1,null,currentPage>1&&previousPage>0&&g("div",{className:"product-grid__load-previous-container"},g("button",{className:"product-grid__load-previous btn btn-black",onClick:handleLoadPrevious},window.themeVars.strings.collection.loadPrevious)),g("div",{className:columnsClass},renderProductsWithBanners(products)),currentPage<Number(pagination.pages)&&g("div",{className:"product-grid__load-more-container"},g("button",{className:"product-grid__load-more btn btn-black",onClick:handleLoadMore},window.themeVars.strings.collection.loadMore)))}return g("section",{className:"product-grid"},content)},sortOptions=[{value:"manual",label:window.themeVars.strings.collection.sortByManual},{value:"title-ascending",label:window.themeVars.strings.collection.sortByTitleAsc},{value:"title-descending",label:window.themeVars.strings.collection.sortByTitleDesc},{value:"price-ascending",label:window.themeVars.strings.collection.sortByPriceAsc},{value:"price-descending",label:window.themeVars.strings.collection.sortByPriceDesc},{value:"created-ascending",label:window.themeVars.strings.collection.sortByCreatedAsc},{value:"created-descending",label:window.themeVars.strings.collection.sortByCreatedDesc},{value:"best-selling",label:window.themeVars.strings.collection.sortByBestSelling}],SortSelect=()=>{const{selectedSort,setSelectedSort}=useCollection(),handleSortChange=event=>{const target=event.target;setSelectedSort(target.value)};return g("div",{className:"sort-select"},g("label",{className:"text-md-body--semi-bold",htmlFor:"product-sort"},window.themeVars.strings.collection.sortBy),g("select",{id:"product-sort",value:selectedSort,onChange:handleSortChange,className:"sort-select__select text-sm"},sortOptions.map(option=>g("option",{key:option.value,value:option.value},option.label))),g("span",{className:"sort-select__chevron",dangerouslySetInnerHTML:{__html:window.themeVars.icons.chevronDown}}))},GridSwitch=({onSwitch,switcherClass})=>{const[selectedColumns,setSelectedColumns]=p(4),handleSwitch=columns=>{setSelectedColumns(columns),onSwitch(columns)};return g("div",{className:`collection__grid-switcher ${switcherClass}`},g("button",{dangerouslySetInnerHTML:{__html:window.themeVars.icons.singleColumn},onClick:()=>handleSwitch(4),className:`collection__grid-switcher__button ${selectedColumns===4?"selected":""}`,"aria-label":window.themeVars.strings.collection.singleColumn,value:window.themeVars.strings.collection.singleColumn}),g("button",{dangerouslySetInnerHTML:{__html:window.themeVars.icons.fourColumns},onClick:()=>handleSwitch(1),className:`collection__grid-switcher__button ${selectedColumns===1?"selected":""}`,"aria-label":window.themeVars.strings.collection.fourColumns,value:window.themeVars.strings.collection.fourColumns}))},Collection=({searchTerm})=>{const[columns,setColumns]=p(4),handleFilterDrawerToggle=()=>{const drawer=document.querySelector(".collection__filters-wrapper");drawer?.classList.toggle("collection__filters-wrapper--open");const overlay=document.querySelector(".collection__filters-overlay");overlay?.classList.toggle("collection__filters-overlay--open"),overlay?.addEventListener("click",()=>{drawer?.classList.remove("collection__filters-wrapper--open"),overlay?.classList.remove("collection__filters-overlay--open")})},handleGridSwitch=cols=>{setColumns(cols)},{clearFilters,selectedFilters}=useCollection();return g("div",{className:"collection"},g("div",{className:"collection__actions"},g("div",{className:"container collection__actions-container"},g("div",{className:"collection__filters-wrapper"},g("div",{className:"collection__filters-header hide-on-desktop"},g("h3",{className:"collection__filters-title heading-3 hide-on-desktop",dangerouslySetInnerHTML:{__html:window.themeVars.strings.collection.filtersButton}}),g("button",{className:"collection__filters-close hide-on-desktop",onClick:handleFilterDrawerToggle,dangerouslySetInnerHTML:{__html:window.themeVars.icons.close}})),g(CollectionInfo,{query:searchTerm}),g(FiltersForm,{query:searchTerm}),g(SortSelect,null),g("button",{className:"collection__filters-apply btn btn-black hide-on-desktop",onClick:handleFilterDrawerToggle,dangerouslySetInnerHTML:{__html:window.themeVars.strings.collection.applyFilters}}),selectedFilters.length>1&&g("button",{className:"collection__filters-clear btn btn-trans
15parent",onClick:clearFilters,dangerouslySetInnerHTML:{__html:window.themeVars.strings.collection.clearFilters}}),g(GridSwitch,{onSwitch:handleGridSwitch,switcherClass:"hide-on-mobile"})),g("div",{className:"collection__filters-overlay"}),g("button",{className:"collection__filter-button btn btn-transparent hide-on-desktop",onClick:handleFilterDrawerToggle,dangerouslySetInnerHTML:{__html:window.themeVars.strings.collection.filtersButton}}),g(GridSwitch,{onSwitch:handleGridSwitch,switcherClass:"hide-on-desktop"})),g(SelectedFilters,null)),g(ProductGrid,{columns,query:searchTerm}))},CollectionInfo=({query})=>{const{productCount,products}=useCollection(),template=window.themeVars.store.template;let showLoadingState=!1;return products==="pending"&&(showLoadingState=!0,template==="search"&&!query&&(showLoadingState=!1)),showLoadingState?g("div",{className:`
16        collection__product-count
17        is-loading__skeleton
18      `}):g("h4",{className:"collection__product-count heading-4"},productCount," ",window.themeVars.strings.collection.products)},SelectedFilters=()=>{const{selectedFilters,setSelectedFilters}=useCollection(),handleFilterValueRemove=(param_name,value)=>{const newFilters=selectedFilters.map(filter=>{if(filter.param_name===param_name){const newValues=filter.values.filter(v=>v!==value);return{...filter,values:newValues}}return filter}).filter(filter=>filter.values.length>0);setSelectedFilters(newFilters)};return selectedFilters.length?g("div",{className:"collection__selected-filters"},g("div",{className:"collection__selected-filters container"},g("ul",{className:"collection__selected-filter-values"},selectedFilters.flatMap(filter=>filter.values.map(value=>g("li",{key:`${filter.param_name}-${value}`},g("span",null,value),g("button",{className:"collection__selected-filter-remove",dangerouslySetInnerHTML:{__html:window.themeVars.icons.close},onClick:()=>handleFilterValueRemove(filter.param_name,value)}))))))):null},CollectionWrapper=props=>g(CollectionProvider,{currentPage:1,pages:props.pages,productsPerPage:props.productsPerPage,searchTerm:props.searchTerm,collectionId:props.collectionId},g(Collection,{...props}));register(CollectionWrapper,"uwp-collection",["collection-handle"]);
19//# sourceMappingURL=/cdn/shop/t/271/assets/index-Qx5q438i.js.map

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.