1"use strict";(self.webpackChunk=self.webpackChunk||[]).push([[5692],{52692:function(e,t,r){r.d(t,{A:function(){return g}});var l=r(96540),a=r(41607),n=r(85945),i=r(51543),o=r(67233),c=r(91936),s=r(23590),u=r(23148),d=r(41226),m=r.p+"static/swipe-hint-0c7d42f3bc7f1a3e0f452a4248744902.gif",f=["Jan.","Feb.","Mar.","Apr.","May","Jun.","Jul.","Aug.","Sep.","Oct.","Nov.","Dec."],p=e=>{var t,r,a=e.media,n=(0,l.useRef)(null),i=(0,l.useState)(!0),o=i[0],c=i[1];if((0,l.useEffect)(()=>{c(!0)},[null==a?void 0:a.fullSrc]),(0,l.useEffect)(()=>{n.current&&(n.current.muted=o)},[o,null==a?void 0:a.fullSrc]),!a)return null;var s=(null===(t=a.review)||void 0===t?void 0:t.title)||(null===(r=a.review)||void 0===r?void 0:r.productTitle)||"Review image";if("video"===a.type){var u=a.thumbSrc&&a.thumbSrc!==a.fullSrc?a.thumbSrc:void 0;return l.createElement("video",{key:a.fullSrc,ref:n,src:a.fullSrc,poster:u,autoPlay:!0,loop:!0,muted:o,playsInline:!0,controls:!o,onClick:()=>c(!1),className:"w-full h-full object-contain cursor-pointer"})}return l.createElement("img",{key:a.fullSrc,src:a.fullSrc,alt:s,className:"w-full h-full object-contain"})},v=e=>{var t=e.media;return t?l.createElement("img",{src:t.thumbSrc||t.fullSrc,alt:"",className:"w-full h-full object-contain"}):null},g=e=>{var t=e.isOpen,r=void 0!==t&&t,g=e.onClose,h=void 0===g?()=>{}:g,x=e.images,w=void 0===x?[]:x,b=e.startIndex,y=void 0===b?0:b,E=e.product,N=e.renderProductCard,k=(0,l.useState)(y),S=k[0],A=k[1],j=(0,l.useState)(!1),M=j[0],_=j[1],O=(0,l.useState)(0),P=O[0],R=O[1],C=(0,l.useState)(!1),T=C[0],z=C[1],L=(0,l.useRef)(null),H=(0,l.useRef)(null),B=(0,l.useRef)(0),F=(0,l.useRef)(!1),I=(0,l.useRef)(null),D=(0,l.useRef)(null),Z=(0,l.useContext)(u.A).setAddToBagClicked,G=w.length,U=w[S],Y=null==U?void 0:U.review,J=G>1,V=G>0?(S-1+G)%G:0,W=G>0?(S+1)%G:0,X={transform:"translate3d(calc(-100% "+((P>=0?"+":"-")+" "+Math.abs(P)+"px")+"), 0, 0)",transition:T?"transform 300ms ease-out":"none"};(0,l.useEffect)(()=>{r&&A(y)},[r,y]),(0,l.useEffect)(()=>{if(r&&!(G<=1)){_(!0);var e=setTimeout(()=>_(!1),4e3);return()=>clearTimeout(e)}_(!1)},[r,G,y]);var q=()=>{A(e=>(e-1+G)%G)},K=()=>{A(e=>(e+1)%G)},Q=(e=>{if(!e)return"";var t=new Date(e);return Number.isNaN(t.getTime())?"":f[t.getMonth()]+" "+t.getDate()+", "+t.getFullYear()})(null==Y?void 0:Y.dateCreated);return l.createElement(a.lG,{open:r,onClose:h,className:"relative z-[100]"},l.createElement(a.Xi,{transition:!0,className:"fixed inset-0 bg-black/80 transition-opacity duration-300 ease-out data-[closed]:opacity-0"}),l.createElement("div",{className:"fixed inset-0 w-screen overflow-y-auto"},l.createElement("div",{className:"flex min-h-full items-stretch lg:items-center justify-center p-0 lg:p-4"},l.createElement(a.Lj,{transition:!0,className:"relative w-full h-[100dvh] max-w-none rounded-none bg-[#0a0a0a] lg:h-[559px] lg:max-h-[90vh] lg:max-w-[1000px] lg:rounded-[2px] lg:bg-white transform transition-all duration-300 ease-out data-[closed]:scale-95 data-[closed]:opacity-0"},l.createElement("button",{type:"button",onClick:h,"aria-label":"Close",className:"hidden lg:block absolute top-0 right-0 z-20 p-[18px] drop-shadow-[0px_1px_1.5px_rgba(0,0,0,0.1),0px_1px_1px_rgba(0,0,0,0.06)]"},l.createElement(n.u,{size:24,weight:"light",className:"text-primary"})),l.createElement("div",{className:"hidden lg:flex flex-row h-full w-full"},l.createElement("div",{className:"flex-1 min-h-0 bg-black rounded-[2px] flex items-center justify-center overflow-hidden"},l.createElement(p,{media:U})),l.createElement("div",{className:"flex-1 min-h-0 flex flex-col items-end px-4 py-8"},l.createElement("div",{className:"flex-1 min-h-0 w-full flex flex-col gap-4 py-10"},l.createElement("div",{className:"flex-1 min-h-0 w-full flex flex-col gap-4 overflow-y-auto"},l.createElement("div",{className:"flex gap-[14px] items-start w-full"},l.createElement("p",{className:"flex-1 min-w-0 m-0 text-[14px] leading-[20px] font-medium text-[#3d3d3d] break-words"},null==Y?void 0:Y.author,null!=Y&&Y.region?", "+Y.region:""),l.createElement("div",{className:"shrink-0 flex items-center gap-1"},l.createElement(i.G,{size:14,weight:"fill",className:"text-primary"}
1),l.createElement("span",{className:"text-[12px] leading-[16px] text-[#3d3d3d]"},null==Y?void 0:Y.rating))),(null==Y?void 0:Y.title)&&l.createElement("p",{className:"m-0 text-[14px] leading-[20px] font-medium text-[#3d3d3d] break-words"},null==Y?void 0:Y.title),l.createElement("p",{className:"m-0 text-[14px] leading-[20px] text-[#3d3d3d] break-words"},null==Y?void 0:Y.body)),l.createElement("div",{className:"flex gap-[14px] items-start w-full"},l.createElement("p",{className:"flex-1 min-w-0 m-0 text-[12px] leading-[16px] text-[#3d3d3d]"},Q)),N&&U&&l.createElement("div",{className:"w-full shrink-0 flex flex-col gap-4"},l.createElement("div",{className:"h-px w-full bg-[#e7e7e7]"}),N(U))))),l.createElement("div",{className:"flex lg:hidden flex-col h-full w-full bg-[#0a0a0a]"},l.createElement("button",{type:"button",onClick:h,"aria-label":"Back",className:"shrink-0 flex items-center gap-3 p-4 z-20"},l.createElement(o.A,{size:20,weight:"regular",className:"text-white"}),l.createElement("span",{className:"text-[14px] leading-[20px] text-white"},"BACK")),l.createElement("div",{ref:H,className:"relative flex-1 min-h-0 bg-black overflow-hidden touch-pan-y",onTouchStart:e=>{var t;if(!(G<=1)){"next"===D.current?K():"prev"===D.current&&q(),D.current=null;var r=e.touches[0];L.current={x:r.clientX,y:r.clientY},B.current=(null===(t=H.current)||void 0===t?void 0:t.offsetWidth)||0,F.current=!1,I.current=null,z(!1),R(0),_(!1)}},onTouchMove:e=>{if(L.current&&!(G<=1)){var t=e.touches[0],r=t.clientX-L.current.x,l=t.clientY-L.current.y;if(!I.current){if(Math.abs(r)<8&&Math.abs(l)<8)return;I.current=Math.abs(r)>Math.abs(l)?"x":"y"}"x"===I.current&&(F.current=!0,R(r))}},onTouchEnd:e=>{if(!L.current||G<=1)L.current=null;else{var t=e.changedTouches[0],r=t.clientX-L.current.x,l=t.clientY-L.current.y,a=F.current;if(L.current=null,a)if(Math.abs(r)>Math.abs(l)&&Math.abs(r)>=45){var n=B.current||0;D.current=r<0?"next":"prev",z(!0),R(r<0?-n:n)}else D.current=null,z(!0),R(0)}}},G>1?l.createElement("div",{className:"flex h-full w-full",style:X,onTransitionEnd:e=>{if(e.target===e.currentTarget){var t=D.current;D.current=null,"next"===t?K():"prev"===t&&q(),z(!1),R(0)}}},l.createElement("div",{className:"shrink-0 w-full h-full flex items-center justify-center"},l.createElement(v,{media:w[V]})),l.createElement("div",{className:"shrink-0 w-full h-full flex items-center justify-center"},l.createElement(p,{media:U})),l.createElement("div",{className:"shrink-0 w-full h-full flex items-center justify-center"},l.createElement(v,{media:w[W]}))):l.createElement("div",{className:"h-full w-full flex items-center justify-center"},l.createElement(p,{media:U})),G>1&&l.createElement("div",{className:"pointer-events-none absolute inset-x-0 bottom-6 flex items-end justify-center transition-opacity duration-500 "+(M?"opacity-100":"opacity-0")},l.createElement("img",{src:m,alt:"",className:"w-[71px] h-[71px]"}))),l.createElement("div",{className:"shrink-0 px-4 pt-4"},l.createElement("div",{className:"relative h-[120px]"},l.createElement("div",{className:"h-full overflow-y-auto scrollbar-hide flex flex-col gap-2 pb-6"},l.createElement("div",{className:"flex gap-[14px] items-start w-full"},l.createElement("p",{className:"flex-1 min-w-0 m-0 text-[14px] leading-[20px] font-medium text-white break-words"},null==Y?void 0:Y.author,null!=Y&&Y.region?", "+Y.region:""),l.createElement("div",{className:"shrink-0 flex items-center gap-1"},l.createElement(i.G,{size:14,weight:"fill",className:"text-white"}),l.createElement("span",{className:"text-[12px] leading-[16px] text-white"},null==Y?void 0:Y.rating))),(null==Y?void 0:Y.title)&&l.createElement("p",{className:"m-0 text-[14px] leading-[20px] font-medium text-white break-words"},null==Y?void 0:Y.title),l.createElement("p",{className:"m-0 text-[14px] leading-[20px] text-white break-words"},null==Y?void 0:Y.body)),l.createElement("div",{className:"pointer-events-none absolute inset-x-0 bottom-0 h-10",style:{backgroundImage:"linear-gradient(180deg, rgba(255,255,255,0) 0%, #0a0a0a 90%)"}}))),l.createElement("div",{className:"shrink-0 px-4 pb-2"}
1,l.createElement("p",{className:"m-0 text-[12px] leading-[16px] text-white"},Q)),N&&U&&l.createElement("div",{className:"shrink-0 bg-white p-4 drop-shadow-[0px_-2px_12px_rgba(0,0,0,0.1)]"},N(U,{mobile:!0})),E&&l.createElement("div",{className:"shrink-0 bg-white flex items-center gap-2 p-4 drop-shadow-[0px_-2px_12px_rgba(0,0,0,0.1)]"},l.createElement("button",{type:"button",onClick:()=>{E&&(Z(E),h())},className:"flex-1 bg-black text-white flex items-center justify-center gap-3 px-4 py-3"},l.createElement(c.t,{size:20,weight:"light"}),l.createElement("span",{className:"text-[16px] leading-[24px]"},"Add to Bag")),l.createElement("div",{className:"flex items-center justify-center w-12 self-stretch border border-[#d1d1d1] bg-white"},l.createElement(d.A,{data:E,noRoundedBg:!0,disableTooltip:!0,heartSize:20,className:"flex items-center justify-center w-full h-full text-black"})))),J&&l.createElement(l.Fragment,null,l.createElement("button",{type:"button",onClick:q,"aria-label":"Previous review image",className:"hidden lg:flex absolute top-1/2 -translate-y-1/2 left-[-30px] z-20 items-center justify-center p-[18px] rounded-full bg-[#0a0a0a]"},l.createElement(o.A,{size:24,weight:"regular",className:"text-white"})),l.createElement("button",{type:"button",onClick:K,"aria-label":"Next review image",className:"hidden lg:flex absolute top-1/2 -translate-y-1/2 right-[-30px] z-20 items-center justify-center p-[18px] rounded-full bg-[#0a0a0a]"},l.createElement(s.f,{size:24,weight:"regular",className:"text-white"})))))))}},67233:function(e,t,r){r.d(t,{n:function(){return u},A:function(){return s}});var l=r(54705),a=r(96540),n=r(68340),i=new Map([["bold",a.createElement(a.Fragment,null,a.createElement("path",{d:"M228,128a12,12,0,0,1-12,12H69l51.52,51.51a12,12,0,0,1-17,17l-72-72a12,12,0,0,1,0-17l72-72a12,12,0,0,1,17,17L69,116H216A12,12,0,0,1,228,128Z"}))],["duotone",a.createElement(a.Fragment,null,a.createElement("path",{d:"M112,56V200L40,128Z",opacity:"0.2"}),a.createElement("path",{d:"M216,120H120V56a8,8,0,0,0-13.66-5.66l-72,72a8,8,0,0,0,0,11.32l72,72A8,8,0,0,0,120,200V136h96a8,8,0,0,0,0-16ZM104,180.69,51.31,128,104,75.31Z"}))],["fill",a.createElement(a.Fragment,null,a.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H120v64a8,8,0,0,1-13.66,5.66l-72-72a8,8,0,0,1,0-11.32l72-72A8,8,0,0,1,120,56v64h96A8,8,0,0,1,224,128Z"}))],["light",a.createElement(a.Fragment,null,a.createElement("path",{d:"M222,128a6,6,0,0,1-6,6H54.49l61.75,61.76a6,6,0,1,1-8.48,8.48l-72-72a6,6,0,0,1,0-8.48l72-72a6,6,0,0,1,8.48,8.48L54.49,122H216A6,6,0,0,1,222,128Z"}))],["regular",a.createElement(a.Fragment,null,a.createElement("path",{d:"M224,128a8,8,0,0,1-8,8H59.31l58.35,58.34a8,8,0,0,1-11.32,11.32l-72-72a8,8,0,0,1,0-11.32l72-72a8,8,0,0,1,11.32,11.32L59.31,120H216A8,8,0,0,1,224,128Z"}))],["thin",a.createElement(a.Fragment,null,a.createElement("path",{d:"M220,128a4,4,0,0,1-4,4H49.66l65.17,65.17a4,4,0,0,1-5.66,5.66l-72-72a4,4,0,0,1,0-5.66l72-72a4,4,0,0,1,5.66,5.66L49.66,124H216A4,4,0,0,1,220,128Z"}))]]);function o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var l=Object.getOwnPropertySymbols(e);t&&(l=l.filter(function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable})),r.push.apply(r,l)}return r}function c(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{};t%2?o(Object(r),!0).forEach(function(t){(0,l.A)(e,t,r[t])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):o(Object(r)).forEach(function(t){Object.defineProperty(e,t,Object.getOwnPropertyDescriptor(r,t))})}return e}var s=a.forwardRef((e,t)=>a.createElement(n.A,c(c({ref:t},e),{},{weights:i})));s.displayName="ArrowLeftIcon";var u=s},72714:function(e,t,r){r.d(t,{Be:function(){return h},H5:function(){return M},Mj:function(){return d},Pl:function(){return p},Ut:function(){return A},ZS:function(){return m},_x:function(){return N},do:function(){return w},ey:function(){return f},h6:function(){return _},nO:function(){return E},sT:function(){return b},yR:function(){return j},zu:function(){return k}});var l=r(60436),a=r(10467),n=(r(26910),"https://reviews-api.blackboughswim.com/".replace(/\/+$/,"")),i="0x4AAAAAADtMIGHLupkOQBGs",o=["image/jpeg","image/png","image/webp","image/gif"],c=["video/mp4","video/webm","video/quicktime"],s=["too_small","slightly_small","perfect","slightly_big","too_big"],u=["Runs small","Runs slightly small","Fits true to size","Runs slightly large","Runs large"],d=()=>!0,m=()=>i,f=e=>s[Math.max(0,Math.min(4,e))],p=e=>{if(!e)return"#";try{var t="undefined"!=typeof window?window.location.origin:"https://blackboughswim.com",r=new URL(e,t);return["http:","https:","mailto:"].includes(r.protocol)?e:"#"}catch(l){return"#"}},v=e=>{var t,r,l=null==e||null===(t=e.collection)||void 0===t?void 0:t.trim();return l?{collection:l}:{product_id:String(null!==(r=null==e?void 0:e.productId)&&void 0!==r?r:"")}},g=e=>!!(null!=e&&e.collection||null!=e&&e.productId),h=function(){var e=(0,a.A)(function*(e){var t={total:0,average_rating:0,fit:null};if(!n||!g(e))return t;
1try{var r=new URLSearchParams(v(e)),l=yield fetch(n+"/api/reviews/summary?"+r.toString());return l.ok?yield l.json():t}catch(a){return console.error("Error fetching review summary:",null==a?void 0:a.message),t}});return function(t){return e.apply(this,arguments)}}(),x=function(){var e=(0,a.A)(function*(e){var t=e.target,r=e.page,l=void 0===r?1:r,a=e.limit,i=void 0===a?50:a,o=e.sort,c=void 0===o?"recent":o,s={reviews:[],page:l,limit:i,total:0,total_pages:1};if(!n||!g(t))return s;try{null!=t&&t.collection&&(t.collection=t.collection.replace("'",""));var u=new URLSearchParams(Object.assign({},v(t),{page:String(l),limit:String(i),sort:c})),d=yield fetch(n+"/api/reviews?"+u.toString());return d.ok?yield d.json():s}catch(m){return console.error("Error fetching reviews:",null==m?void 0:m.message),s}});return function(t){return e.apply(this,arguments)}}(),w=48,b=function(){var e=(0,a.A)(function*(e){var t=void 0===e?{}:e,r=t.page,l=void 0===r?1:r,a=t.limit,i=void 0===a?w:a,o=t.sort,c={reviews:[],page:l,limit:i,total:0,total_pages:1};if(!n)return c;try{var s=new URLSearchParams({page:String(l),limit:String(i)});s.set("region","PH"),"highest_rated"!==o&&"lowest_rated"!==o||s.set("sort",o);var u=yield fetch(n+"/api/reviews?"+s.toString());return u.ok?yield u.json():c}catch(d){return console.error("Error fetching reviews wall:",null==d?void 0:d.message),c}});return function(t){return e.apply(this,arguments)}}(),y=["Top","Bottoms","One Piece","Swim Shorts","Board Shorts"],E=e=>{var t=String(e||"").split(" / ")[0].trim().toLowerCase();return[].concat(y).sort((e,t)=>t.length-e.length).find(e=>t.endsWith(e.toLowerCase()))||null},N=(e,t)=>((e=>String(e||"").split(" / ")[0].trim().split(/\s+/)[0]||"")(e)+" "+t).trim().toLowerCase().replace(/\s+/g,"-"),k=function(){var e=(0,a.A)(function*(e){for(var t=yield x({target:e,page:1}),r=(0,l.A)((null==t?void 0:t.reviews)||[]),a=Math.min((null==t?void 0:t.total_pages)||1,10),n=2;n<=a;n++){var i=yield x({target:e,page:n});r.push.apply(r,(0,l.A)((null==i?void 0:i.reviews)||[]))}if(((null==t?void 0:t.total_pages)||1)>10){var o=null!=e&&e.collection?"collection "+e.collection:"product "+(null==e?void 0:e.productId);console.warn("Review pagination capped at 10 pages for "+o)}return r.map(S)});return function(t){return e.apply(this,arguments)}}(),S=e=>{var t,r;return{id:null==e?void 0:e.id,review:{rating:null==e?void 0:e.rating,title:null==e?void 0:e.title,body:null==e?void 0:e.body,author:null==e?void 0:e.author_name,region:null==e?void 0:e.region,productTitle:null==e||null===(t=e.product)||void 0===t?void 0:t.title,dateCreated:null==e?void 0:e.created_at,verified:null==e||null===(r=e.verification)||void 0===r?void 0:r.verified},media:Array.isArray(null==e?void 0:e.media)?e.media:[],attributes:Array.isArray(null==e?void 0:e.attributes)?e.attributes:[]}},A=e=>{var t={5:0,4:0,3:0,2:0,1:0};return null==e||e.forEach(e=>{var r,l=Number(null==e||null===(r=e.review)||void 0===r?void 0:r.rating);void 0!==t[l]&&t[l]++}),{ratings:Object.entries(t).map(e=>{var t=e[0],r=e[1];return{star:Number(t),total:r}})}},j=e=>{if(null==e||!e.fit||null==e.fit.average_index)return null;var t=Math.max(0,Math.min(4,Math.round(e.fit.average_index)));return{activeIndex:t,label:e.fit.label||u[t],responses:e.fit.responses||0}},M=e=>{var t=Array.isArray(e)?e:[];if(0===t.length)return{ok:!0};var r=t.filter(e=>o.includes(null==e?void 0:e.type)),l=t.filter(e=>c.includes(null==e?void 0:e.type));return r.length+l.length!==t.length?{ok:!1,error:"Unsupported file type. Use JPG, PNG, WEBP, GIF, MP4, WEBM or MOV."}:r.length>0&&l.length>0?{ok:!1,error:"Please upload either photos or a video, not both."}:r.length>3?{ok:!1,error:"You can upload up to 3 photos."}:l.length>1?{ok:!1,error:"You can upload up to 1 video."}:t.some(e=>(null==e?void 0:e.size)>5242880)?{ok:!1,error:"Each file must be under 5MB."}:{ok:!0}},_=function(){var e=(0,a.A)(function*(e){var t=e.productId,r=e.rating,l=e.body,a=e.title,i=e.authorName,o=e.authorEmail,c=e.region,s=void 0===c?"US":c,u=e.fit,d=e.media,m=e.turnstileToken;if(!n)throw Object.assign(new Error("Reviews API is not configured."),{code:"not_configured"});var f=new FormData;for(var p of(f.set("product_id",String(t)),f.set("rating",String(r)),f.set("body",l),a&&f.set("title",a),f.set("author_name",i),o&&f.set("author_email",o),f.set("region",s),u&&f.set("fit",u),d||[]))f.append("media",p,p.name);m&&f.set("cf-turnstile-response",m);var v=yield fetch(n+"/api/reviews",{method:"POST",body:f}),g=null;try{g=yield v.json()}catch(b){g=null}if(!v.ok){var h,x,w=(null===(h=g)||void 0===h?void 0:h.error)||"empty";throw Object.assign(new Error(w),{code:w,field:null===(x=g)||void 0===x?void 0:x.field,status:v.status})}return g});return function(t){return e.apply(this,arguments)}}()}}]); 2//# sourceMappingURL=e6fb538642817bdd1ee2b2dd4b5afcb07bb64ba2-505d22c0b94919c89f87.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.