1import{r as P,u as h,j as u,S as L,q as I}from"./elements-5kxJS_4j.js";import{t as v}from"./trackEvent-CeNPAPKA.js";import{A as T}from"./authorization-DRCBMAi9.js";import{b4 as C,b5 as _,b6 as j,b7 as O,b8 as N,j as g,N as D,R}from"./index-CtCeyryw.js";import{u as W}from"./useHomeOffersEnabled-CrYKd7YT.js";import"./useAuthorization-XS6cSJ0I.js";import"./grids-DGmfp9GI.js";import"./startOfDay-AazlW55I.js";let k=!1,w=null;const A=i=>k?Promise.resolve():(w||(w=new Promise((a,s)=>{const c=document.querySelector("head");if(!c)return s(new Error("Failed to find <head> element"));let o=c.querySelector(`script[src="${i}"]`);const t=()=>{k=!0,a()},r=()=>{w=null,s(new Error("Failed to load PerkSpot widget script"))};if(o){if(window.PerkSpotWidget){t();return}o.addEventListener("load",t,{once:!0}),o.addEventListener("error",r,{once:!0});return}o=document.createElement("script"),o.src=i,o.defer=!0,o.addEventListener("load",t,{once:!0}),o.addEventListener("error",r,{once:!0}),c.appendChild(o)})),w);function K({customerSlug:i,userId:a,email:s,enabled:c=!0}){const[o,t]=P.useState("idle"),r=i&&a!=null?`${i}:${a}`:null,m=C&&r!==null;return P.useEffect(()=>{if(!c){t("idle");return}if(!m&&!s){t("missing-external-id");return}let l=!1;return t("loading"),A(N).then(()=>{if(!l){if(!window.PerkSpotWidget){t("error");return}try{window.PerkSpotWidget.init({apiKey:O,endpoint:j,placementIds:_,onDealClick:e=>{v("offers.deal.clicked",{dealUrl:e,customer:i??null,userId:a??null})},...m?{externalId:r,subcommunity:i??void 0}:{email:s??void 0}}),t("ready")}catch(e){console.warn("PerkSpot widget init failed",e),t("error")}}}).catch(e=>{l||(console.warn("PerkSpot widget script failed to load",e),t("error"))}),()=>{l=!0}},[c,r,s,i,a,m]),{status:o,externalId:r}}const y='[role="tab"], [data-tab], .ps-tab, .tab',z={title:"Offers",subtitle:"Member discounts powered by PerkSpot",showPropertySelector:!1,showAi:!1};function Y(){const{t:i}=h(),a=W(),s=g(e=>e.user),c=g(e=>e.userSettings),{embedded:o}=D(),t=(c==null?void 0:c.customerSlug)??null,r=(s==null?void 0:s.userId)??null,m=(s==null?void 0:s.email)??null,{status:l}=K({customerSlug:t,userId:r,email:m,enabled:a});return P.useEffect(()=>{a&&v("offers.opened",{customer:t??null,userId:r??null})},[a,t,r]),P.useEffect(()=>{if(l!=="ready")return;const e=document.getElementById("perkspot-widget");if(!e)return;const p=n=>{var x;if(n.querySelector("img"))return!1;const d=((x=n.textContent)==null?void 0:x.trim().toLowerCase())??"";return d.includes("explore")&&d.includes("deals")},E=()=>{for(const n of e.querySelectorAll("a"))if(p(n))return n;return null},b=()=>{var n;(n=E())==null||n.classList.add("V3-offers-cta")},f=n=>{if(!(n.target instanceof Element))return;const d=n.target.closest("a");!(d instanceof HTMLAnchorElement)||!e.contains(d)||!p(d)||v("offers.cta.clicked",{customer:t??null,userId:r??null})},S=new MutationObserver(()=>{b()});return S.observe(e,{childList:!0,subtree:!0}),e.addEventListener("click",f),b(),()=>{e.removeEventListener("click",f),S.disconnect()}},[l,t,r]),P.useEffect(()=>{if(l!=="ready")return;const e=document.getElementById("perkspot-widget");if(!e)return;const p=S=>{var x;if(!(S.target instanceof Element))return;const n=S.target.closest(y);if(!n||!e.contains(n))return;const d=(x=n.textContent)==null?void 0:x.trim();d&&v("offers.tab.clicked",{tab:d,customer:t??null,userId:r??null})};let E=!1;const b=()=>{E||!e.querySelector(y)||(e.addEventListener("click",p),E=!0,f.disconnect())},f=new MutationObserver(b);return f.observe(e,{childList:!0,subtree:!0}),b(),()=>{E&&e.removeEventListener("click",p),f.disconnect()}},[l,t,r]),a?u.jsx(T,{children:u.jsxs("div",{className:I("V3-offers",o&&"pt-10"),"data-feature":"v3-offers-page",children:[l==="loading"&&u.jsx("div",{className:"w-full py-16 flex items-center justify-center",children:u.jsx(L,{})}),l==="error"&&u.jsx("div",{role:"alert",className:"w-full py-16 flex items-center justify-center text-base-body",children:i("main.offers.error.scriptLoad")}),l==="missing-external-id"&&u.jsx("div",{role:"alert",className:"w-full py-16 flex items-center justify-center text-base-body",children:i("main.offers.error.missingExternalId")}),u.jsx("div",{id:"perkspot-widget"})]})}):u.jsx(R,{to:"/dashboard",replace:!0})}export{Y as Component,z as handle};
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.