@intenque/network-sdk 2.2.0-beta.1 → 2.2.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +50 -1
- package/dist/capture/index.cjs +1 -1
- package/dist/capture/index.js +1 -1
- package/dist/cli/index.js +9 -6
- package/dist/cli/index.js.map +1 -1
- package/dist/{constants-LVhc0PNb.d.cts → constants-C_6Zxu_k.d.cts} +1 -1
- package/dist/{constants-LVhc0PNb.d.ts → constants-C_6Zxu_k.d.ts} +1 -1
- package/dist/react/index.cjs +2 -2
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.d.cts +2 -2
- package/dist/react/index.d.ts +2 -2
- package/dist/react/index.js +2 -2
- package/dist/react/index.js.map +1 -1
- package/dist/server/index.cjs +1 -1
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.d.cts +14 -9
- package/dist/server/index.d.ts +14 -9
- package/dist/server/index.js +1 -1
- package/dist/server/index.js.map +1 -1
- package/package.json +1 -1
package/dist/react/index.d.cts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import { S as SiteChannel } from '../constants-
|
|
4
|
-
export { D as DEFAULT_CDN_BASE, M as MANIFEST_SCHEMA_MAJOR, a as SDK_VERSION } from '../constants-
|
|
3
|
+
import { S as SiteChannel } from '../constants-C_6Zxu_k.cjs';
|
|
4
|
+
export { D as DEFAULT_CDN_BASE, M as MANIFEST_SCHEMA_MAJOR, a as SDK_VERSION } from '../constants-C_6Zxu_k.cjs';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Trusted root public keys — spec §4.5 (`rootPublicKeys`, "an array to allow overlap").
|
package/dist/react/index.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as react from 'react';
|
|
2
2
|
import { ReactNode } from 'react';
|
|
3
|
-
import { S as SiteChannel } from '../constants-
|
|
4
|
-
export { D as DEFAULT_CDN_BASE, M as MANIFEST_SCHEMA_MAJOR, a as SDK_VERSION } from '../constants-
|
|
3
|
+
import { S as SiteChannel } from '../constants-C_6Zxu_k.js';
|
|
4
|
+
export { D as DEFAULT_CDN_BASE, M as MANIFEST_SCHEMA_MAJOR, a as SDK_VERSION } from '../constants-C_6Zxu_k.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* Trusted root public keys — spec §4.5 (`rootPublicKeys`, "an array to allow overlap").
|
package/dist/react/index.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import {createContext,useRef,useEffect,useState,useContext,useCallback,useMemo}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var Je=createContext(null),Q=createContext(null),ee=createContext(null);function $n(e){return jsx(Je.Provider,{value:e.config,children:e.children})}function V(e){let n=useContext(Je);return e??n}var F="2.2.0-beta.1",We=2,pe="https://inr-network-public.nyc3.cdn.digitaloceanspaces.com/network/v1";var ge={medium:"network",campaign:"cross-promo"},Xe=1e4,ne=2e3,ye=1e3,ze=300,ke=.5,Ye=864e5,qe=2e4,be=24,Ze=8,he=4096,Qe=10,en=64,j={webdriver:1,noLanguages:2,zeroPlugins:4,headlessUa:8,noOuterWindow:16},nn=["sig_fail","rev_rollback","stale_cache","fallback_invalid","fallback_key_expired","sitekey_from_fallback","sdk_outdated"];function tn(e,n,t){return `${e.replace(/\/+$/,"")}/${t==="preview"?"preview/":""}sites/${n}/manifest.json`}var te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";function Fn(e){let n="";for(let t=0;t<e.length;t+=3){let r=e[t]<<16|(e[t+1]??0)<<8|(e[t+2]??0);n+=te[r>>18]+te[r>>12&63],t+1<e.length&&(n+=te[r>>6&63]),t+2<e.length&&(n+=te[r&63]);}return n}function re(e){try{return crypto.getRandomValues(new Uint8Array(e))}catch{return null}}function rn(e=re){let n=e(16);if(!n||n.length<16)return null;n[6]=n[6]&15|64,n[8]=n[8]&63|128;let t=Array.from(n.subarray(0,16),r=>r.toString(16).padStart(2,"0")).join("");return `${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function on(e,n,t,r=re){let i=g=>Number.isInteger(g)&&g>=0&&g<=65535,o=Math.floor(t/6e4);if(!i(e)||!i(n)||!(o>=0&&o<=4294967295))return null;let s=r(16);if(!s||s.length<16)return null;let a=new Uint8Array(24);return a[0]=e>>>8,a[1]=e&255,a[2]=n>>>8,a[3]=n&255,a[4]=o>>>24,a[5]=o>>>16&255,a[6]=o>>>8&255,a[7]=o&255,a.set(s.subarray(0,16),8),Fn(a)}function ve(e,n){let t=e.indexOf("#"),r=t<0?e:e.slice(0,t),i=t<0?"":e.slice(t),o=r.indexOf("?"),s=o<0?[]:r.slice(o+1).split("&").filter(a=>a!==""&&a.split("=")[0]!=="inr");return s.push(`${"inr"}=${n}`),`${o<0?r:r.slice(0,o)}?${s.join("&")}${i}`}var we=[],jn=[{kid:"root-dev-a01e0d",jwk:{kty:"EC",crv:"P-256",x:"4dO5Ybuh3aMQMYvVUYd82CZ2y-tM2wM4SeunZvxMKHQ",y:"Tw6MyboNkggXo9jV7_Tng8tCGNMin7Dxuept8AY0Anc"}}];var Hn=["section","container","heading","accentWord","subheading","grid","card","imageBox","image","placeholder","body","name","meta","description","button","buttonIcon"],sn=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);function an(e){return !!e&&/^(localhost|.+\.localhost|127\.0\.0\.1|\[::1\]|::1)$/i.test(e)}function Gn(e){try{return !!e&&an(new URL(e).hostname)}catch{return false}}function Se(e,n,t){return e.channel!=="preview"&&(e.dev||an(n))&&!Gn(t)}function Jn(e){let n=sn(e.fallback)?e.fallback:null,t=n&&typeof n.site=="string"?n.site:"",r=typeof e.siteKey=="string"&&e.siteKey?e.siteKey:t,i=e.channel==="preview"?"preview":"production",o=n&&typeof n.cdnBase=="string"?n.cdnBase:void 0,s=n&&sn(n.analytics)?n.analytics:null,a=s&&typeof s.endpoint=="string"?s.endpoint:null,g=e.dev===true,p=Se({dev:g,channel:i},void 0,a)?null:a,y=e.consentMode==="require-consent"?"require-consent":"session-default";return {siteKey:r,siteKeyFromFallback:!e.siteKey&&!!t,channel:i,manifestUrl:e.manifestUrl??tn(e.cdnBase??o??pe,r,i),fallback:e.fallback,roots:e.manifestRootKeys??we,consent:e.consent,consentMode:y,theme:e.theme??{},unstyled:e.unstyled===true,verifySignature:e.verifySignature!==false,allowInsecureFallback:e.allowInsecureFallback===true,dev:g,onEvent:e.onEvent,capture:{siteKey:r,endpoint:p,consent:e.consent,consentMode:y}}}function ln(e,n,t){let r=o=>{try{t?.(o);}catch{}return o};try{if(location.protocol=="https:"&&/^http:/i.test(e))return r(!1)}catch{}try{if(navigator.sendBeacon(e,n))return r(!0)}catch{}let i=o=>fetch(e,{method:"POST",mode:"no-cors",keepalive:o,credentials:"omit",body:n});try{return i(!0).then(()=>r(!0),()=>{try{if(document.visibilityState=="visible")return void i(!1).then(()=>r(!0),()=>r(!1))}catch{}r(!1);}),!0}catch{return r(false)}}var dn={now:()=>Date.now(),random:re,roll:()=>Math.random(),send:ln,later:(e,n)=>{let t=setTimeout(e,n);return ()=>clearTimeout(t)},doc:()=>typeof document>"u"?void 0:document,win:()=>typeof window>"u"?void 0:window,nav:()=>typeof navigator>"u"?void 0:navigator,host:()=>typeof location>"u"?void 0:location.hostname,IO:()=>typeof IntersectionObserver=="function"?IntersectionObserver:void 0},cn=e=>({el:e,inter:false,since:null,ms:0,seen:false,fv:null}),un=e=>Math.min(Ye,Math.max(0,Math.round(e))),fn=e=>typeof e=="number"&&e>0?Math.min(qe,Math.round(e)):0,Wn=.005,Xn=new Set(nn);function zn(e,n){let t=0;try{e&&(e.webdriver===!0&&(t|=j.webdriver),(!e.languages||e.languages.length===0)&&(t|=j.noLanguages),e.plugins&&e.plugins.length===0&&(t|=j.zeroPlugins),/HeadlessChrome/.test(e.userAgent??"")&&(t|=j.headlessUa)),n&&n.outerWidth===0&&n.outerHeight===0&&(t|=j.noOuterWindow);}catch{}return t}function Yn(e){let n=[];for(let t of e){let r=t==="sig_revoked"?"sig_fail":t;Xn.has(r)&&!n.includes(r)&&n.push(r);}return n.slice(0,Ze)}var R=e=>{try{e();}catch{}};function mn(e,n){let t=rn(n.random);if(!t)return null;let r=e.manifest.analytics,i=Math.round(n.now()),o=r.enabled&&r.impressions&&r.samplePermille>0&&n.roll()*1e3<r.samplePermille?1:0,s=zn(n.nav(),n.win()),a=Yn(e.flags),g=e.rr!==null&&(a.includes("rev_rollback")||a.includes("stale_cache"))?e.rr:null,p=()=>{try{return e.withhold?.()===!0}catch{return true}},y=new Map,b=cn(null),c=[],k=[],h=false,v=0,f="",x="",d=null,w=null,S=false,I=false,L=false,fe=true,Ve=(l,m,u)=>{if(m)l.since===null&&(l.since=u,l.fv===null&&(l.fv=un(u-i)));else if(l.since!==null){let E=Math.max(0,u-l.since);l.ms+=E,E>=ye&&(l.seen=true),l.since=null;}},Fe=(l,m)=>{if(!l)return {seen:false,ms:0,fv:null};let u=l.since===null?0:Math.max(0,m-l.since);return {seen:l.seen||u>=ye,ms:un(l.ms+u),fv:l.fv}},N=()=>{let l=n.now(),m=L&&fe&&n.doc()?.visibilityState==="visible",u=false;for(let E of y.values()){let T=m&&E.inter&&E.el!==null;u=u||T,Ve(E,T,l);}Ve(b,m&&(b.inter||u),l),b.fv!==null&&!h&&!w&&!S&&(w=n.later(()=>R(()=>{w=null,S=!0,N(),K("timer");}),Xe));},On=l=>{for(let m of l){let u=b.el===m.target?b:[...y.values()].find(E=>E.el===m.target);u&&(u.inter=m.isIntersecting&&m.intersectionRatio>=ke-Wn);}N();},je=l=>({v:2,k:e.manifest.site,pv:t,r:e.manifest.revision,src:e.src,sdk:F,tok:r.token,sp:r.samplePermille,smp:o,t:Math.round(l),hd:p()?0:s,m:i}),He=(l,m,u=null)=>n.send(`${r.endpoint.replace(/\/+$/,"")}/${l}`,JSON.stringify(m),E=>R(()=>e.onSignal(l,E,u))),Bn=(l,m)=>JSON.stringify([l.seen,l.ms>=ze,m.map(u=>[u.seen,u.fv!==null])]),K=l=>{if(!L||!d||v>=Qe||h&&l==="timer")return false;let m=n.now(),u=Fe(b,m);if(b.fv===null||u.ms<1)return false;let E=k.map((U,de)=>({id:U,pos:de,...Fe(y.get(U),m)})),T=JSON.stringify([u,E]);if(h&&T===f)return false;let z=Bn(u,E);if(h&&l==="click"&&z===x)return false;w?.(),w=null,h=true,v+=1,f=T,x=z;let O=n.win(),$={...je(m),items:E,ss:u.seen,sm:u.ms,vp:p()?{w:0,h:0}:{w:fn(O?.innerWidth),h:fn(O?.innerHeight)},why:l};if(a.length&&($.fl=a),g!==null&&($.rr=g),JSON.stringify($).length>he){let U=E.filter(de=>de.fv!==null);for($.items=U;JSON.stringify($).length>he&&U.length;)U.pop();}return He("impression",$,l),true},Ge=()=>{let l=n.IO(),m=n.doc(),u=n.win();if(!I||L||!l||!m)return;L=true,d??=new l(O=>R(()=>On(O)),{threshold:ke}),b.el&&d.observe(b.el);for(let O of y.values())O.el&&d.observe(O.el);let E=()=>R(()=>{N(),m.visibilityState==="hidden"&&K("hidden");}),T=()=>R(()=>{N(),K("pagehide"),fe=!1,N();}),z=()=>R(()=>{fe=!0,N();});m.addEventListener("visibilitychange",E),u?.addEventListener("pagehide",T),u?.addEventListener("pageshow",z),c.push(()=>m.removeEventListener("visibilitychange",E),()=>u?.removeEventListener("pagehide",T),()=>u?.removeEventListener("pageshow",z)),N();};return {pv:t,m:i,smp:o,hd:s,get sent(){return h},setOrder(l){k=l.slice(0,be);},pos(l){let m=k.indexOf(l.id);return m>=0?m:Math.min(Math.max(0,l.position),be-1)},observe(l,m){R(()=>{let u=y.get(l);u&&u.el===m||(u?.el&&d?.unobserve(u.el),u?(u.el=m,u.inter=!1,N()):m&&y.set(l,cn(m)),m&&d&&L&&d.observe(m));});},start(l){R(()=>{l&&(b.el=l);let m=n.doc();if(!(I||o===0||!m))if(I=!0,m.prerendering){let u=()=>R(Ge);m.addEventListener("prerenderingchange",u,{once:!0}),c.push(()=>m.removeEventListener("prerenderingchange",u));}else Ge();});},stop(){R(()=>{if(I){N(),K("hidden"),I=!1,L=!1,w?.(),w=null,d?.disconnect();for(let l of c.splice(0))l();N();}});},common:je,post:He,flushForClick(){return R(()=>{N(),K("click");}),h},flush:K}}var qn=5*6e4;function pn(e,n,t=dn){let r=c=>{try{e()?.onEvent?.(c);}catch{}},i=n.manifest,o=n.source,s=null;try{let c=e(),k=c!==null&&Se(c,t.host?.(),i?.analytics.endpoint??null);i&&!k&&i.analytics.enabled&&(o==="live"||o==="fallback")&&(s=mn({manifest:i,src:o,flags:n.flags,rr:n.rr,onSignal:(h,v,f)=>r({type:"signal",payload:f?{kind:h,sent:v,why:f}:{kind:h,sent:v}}),withhold:()=>{let h=e();return h?.consentMode==="require-consent"&&!(h.consent?.get()==="granted"&&t.nav()?.globalPrivacyControl!==!0)}},t));}catch{s=null;}let a=s!==null&&i!==null&&i.analytics.clicks,g=new Map,p=[],y=c=>i?on(i.siteIndex,c.idx,t.now(),t.random):null,b=c=>{try{c();}catch{}};return {page:s,rendered(c){r({type:"impression",payload:{ids:c,revision:i?.revision??null}});},pointerDown(c,k){let h=null;return b(()=>{if(!a)return;let v=y(c);v&&(g.set(c.id,{id:v,at:t.now()}),c.instrumentation!=="none"&&(h=ve(k,v)));}),h},click(c,k,h,v){let f=k;return b(()=>{if(!a||!s)return;let x=g.get(c.id);g.delete(c.id);let d=x&&t.now()-x.at<=qn?x.id:y(c);if(!d||(c.instrumentation!=="none"&&(f=ve(k,d)),p.includes(d)))return;p.push(d),p.length>en&&p.shift();let w=s.flushForClick();s.post("click",{...s.common(t.now()),c:d,b:c.id,pos:s.pos(c),btn:v,via:h,ip:w});}),r({type:"click",payload:{id:c.id,href:k,via:h}}),f},observe:(c,k)=>b(()=>s?.observe(c,k)),setOrder:c=>b(()=>s?.setOrder(c)),start:c=>b(()=>s?.start(c)),stop:()=>b(()=>s?.stop())}}var Zn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",gn={};for(let e=0;e<64;e++)gn[Zn[e]]=e;function Qn(e){return /^[A-Za-z0-9_-]*$/.test(e)}function xe(e,n){if(typeof e!="string"||!Qn(e)||e.length!==Math.ceil(n*4/3))return null;let t=new Uint8Array(n),r=0,i=0,o=0;for(let s=0;s<e.length;s++)if(r=(r<<6|gn[e[s]])&65535,i+=6,i>=8){if(i-=8,o>=n)return null;t[o++]=r>>i&255;}return o!==n||i>0&&(r&(1<<i)-1)!==0?null:t}function Ee(e){let n="";for(let t of e)n+=t.toString(16).padStart(2,"0");return n}var kn=BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),et=kn>>1n;function Me(){let e=globalThis.crypto;return e&&e.subtle?e.subtle:null}function nt(e){let n=xe(e,64);if(!n)return "encoding";let t=BigInt(`0x${Ee(n.subarray(0,32))}`),r=BigInt(`0x${Ee(n.subarray(32))}`);return t===0n||t>=kn||r===0n||r>et?"range":null}var yn=new WeakMap;async function tt(e,n){let t=yn.get(e);if(t)return t;let r=n.importKey("jwk",{kty:"EC",crv:"P-256",x:e.x,y:e.y,ext:true},{name:"ECDSA",namedCurve:"P-256"},false,["verify"]);return yn.set(e,r),r}async function _e(e,n,t){try{let r=Me();if(!r||nt(t)!==null)return !1;let i=xe(t,64),o=await tt(e,r);return await r.verify({name:"ECDSA",hash:"SHA-256"},o,i,new TextEncoder().encode(n))}catch{return false}}var ie=/^[a-z0-9]+(-[a-z0-9]+)*$/,Ce=48,Re=24,Y=/^[a-z0-9][a-z0-9-]{1,63}$/,Le=/^[A-Za-z0-9_-]{85}[AQgw]$/,Ae=/^[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$/,se=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$/,rt=/^[a-z0-9-]+\.\d+\.\d{8}\.[0-9a-f]{12}$/,bn=/^[a-z0-9.-]+$/,Ne=class extends Error{},_=()=>{throw new Ne};function P(e,n){(e===null||typeof e!="object"||Array.isArray(e))&&_();let t=e;for(let r of Object.keys(t))n.includes(r)||_();for(let r of n)r in t||_();return t}function ot(e){let n=0;for(let t of e)n++;return n}function A(e,n,t){typeof e!="string"&&_();let r=ot(e);return (r<n||r>t)&&_(),e}function M(e,n,t=1024){let r=A(e,0,t);return n.test(r)||_(),r}function q(e,n,t){return (typeof e!="number"||!Number.isInteger(e)||e<n||e>t)&&_(),e}function H(e){return typeof e!="boolean"&&_(),e}function oe(e,n){return e===null?null:n(e)}function G(e,n){return e!==n&&_(),n}function hn(e,n){return (typeof e!="string"||!n.includes(e))&&_(),e}function vn(e){let n;try{n=new URL(e);}catch{return "must be an absolute URL"}let t=n.hostname==="localhost"||n.hostname==="127.0.0.1";return n.protocol!=="https:"&&!(n.protocol==="http:"&&t)?"must be https":n.username||n.password||n.search||n.hash?"no userinfo, query or fragment":null}function ae(e){let n=A(e,1,1024);return vn(n)!==null&&_(),n}function wn(e){if(e.length>200)return "must be at most 200 characters";let n;try{n=new URL(e);}catch{return "must be an absolute URL"}if(n.protocol!=="https:")return "must use https";if(n.username||n.password)return "must not contain credentials";if(n.port!==""&&n.port!=="443")return "port must be 443";let t=n.hostname;return t.startsWith("[")||/^\d+(\.\d+){3}$/.test(t)?"IP addresses are not allowed":!bn.test(t)||!t.includes(".")||t.startsWith(".")||t.endsWith(".")?"invalid hostname":n.toString()!==e?"must be normalised":null}function it(e){let n=A(e,1,200);return wn(n)!==null&&_(),n}function Sn(e){let n=P(e,["kty","crv","x","y"]);return {kty:G(n.kty,"EC"),crv:G(n.crv,"P-256"),x:M(n.x,Ae),y:M(n.y,Ae)}}function st(e){let n=P(e,["src","src2x","alt","width","height"]);return {src:ae(n.src),src2x:ae(n.src2x),alt:A(n.alt,1,120),width:G(n.width,640),height:G(n.height,360)}}var at=["id","idx","name","description","url","domain","image","category","location","region","tags","pinned","position","instrumentation"];function lt(e){let n=P(e,at),t=A(n.name,2,60);/^[=+@]/.test(t)&&_();let r=M(n.domain,bn,253);(r.length<1||r.startsWith("www."))&&_();let i=n.tags;return (!Array.isArray(i)||i.length>10)&&_(),{id:M(n.id,ie,Ce),idx:q(n.idx,1,65535),name:t,description:A(n.description,1,140),url:it(n.url),domain:r,image:st(n.image),category:oe(n.category,o=>A(o,0,40)),location:oe(n.location,o=>A(o,0,60)),region:oe(n.region,o=>A(o,0,40)),tags:i.map(o=>A(o,0,24)),pinned:H(n.pinned),position:q(n.position,0,Re-1),instrumentation:hn(n.instrumentation,["none","landings","conversions"])}}function ct(e){let n=P(e,["kid","jwk","notBefore","notAfter","rootKid","rootSig","revokedKids"]),t=n.revokedKids;return Array.isArray(t)||_(),{kid:M(n.kid,Y),jwk:Sn(n.jwk),notBefore:M(n.notBefore,se),notAfter:M(n.notAfter,se),rootKid:M(n.rootKid,Y),rootSig:M(n.rootSig,Le),revokedKids:t.map(r=>M(r,Y))}}var ut=["schema","revision","publishedAt","site","siteIndex","channel","cdnBase","minSdkVersion","analytics","links","section","businesses","signer","sig"];function J(e){try{let n=P(e,ut),t=P(n.analytics,["enabled","endpoint","impressions","clicks","landings","samplePermille","token"]),r=P(n.links,["utmMedium","utmCampaign","utmSource","refParam","nofollow"]),i=P(n.section,["title","subtitle"]),o=P(n.sig,["alg","kid","value"]),s=n.businesses;return (!Array.isArray(s)||s.length>Re)&&_(),{schema:G(n.schema,2),revision:q(n.revision,1,Number.MAX_SAFE_INTEGER),publishedAt:M(n.publishedAt,se),site:M(n.site,ie,Ce),siteIndex:q(n.siteIndex,1,65535),channel:hn(n.channel,["production","preview"]),cdnBase:ae(n.cdnBase),minSdkVersion:M(n.minSdkVersion,/^\d+\.\d+\.\d+$/),analytics:{enabled:H(t.enabled),endpoint:ae(t.endpoint),impressions:H(t.impressions),clicks:H(t.clicks),landings:H(t.landings),samplePermille:q(t.samplePermille,0,1e3),token:M(t.token,rt)},links:{utmMedium:A(r.utmMedium,1,40),utmCampaign:A(r.utmCampaign,1,40),utmSource:M(r.utmSource,ie,Ce),refParam:M(r.refParam,/^[a-z]{1,8}$/),nofollow:H(r.nofollow)},section:{title:A(i.title,1,60),subtitle:oe(i.subtitle,a=>A(a,0,120))},businesses:s.map(lt),signer:ct(n.signer),sig:{alg:G(o.alg,"ES256"),kid:M(o.kid,Y),value:M(o.value,Le)}}}catch{return null}}var B=class extends Error{constructor(t,r){super(`${t} at ${r||"$"}`);this.path=r;this.name="CanonicalJsonError";}path};function W(e){return Ie(e,"$")}function Ie(e,n){if(e===null)return "null";switch(typeof e){case "boolean":return e?"true":"false";case "string":return JSON.stringify(e);case "number":if(!Number.isSafeInteger(e))throw new B(`non-integer or unsafe number ${String(e)}`,n);return String(e);case "object":{if(Array.isArray(e))return `[${e.map((i,o)=>Ie(i,`${n}[${o}]`)).join(",")}]`;let t=Object.getPrototypeOf(e);if(t!==Object.prototype&&t!==null)throw new B("unsupported object type",n);let r=e;return `{${Object.keys(r).sort().map(i=>{let o=r[i];if(o===void 0)throw new B(`undefined value for key "${i}" (use null)`,n);return `${JSON.stringify(i)}:${Ie(o,`${n}.${i}`)}`}).join(",")}}`}default:throw new B(`unsupported type ${typeof e}`,n)}}function _n(e){return W({kid:e.kid,jwk:{kty:e.jwk.kty,crv:e.jwk.crv,x:e.jwk.x,y:e.jwk.y},notBefore:e.notBefore,notAfter:e.notAfter,rootKid:e.rootKid})}function Cn(e){let{sig:n,...t}=e;return W(t)}var En=e=>Array.isArray(e)&&e.every(n=>typeof n=="string");function Mn(e){return Date.parse(e)}async function Z(e,n){try{if(!n||typeof n!="object")return {ok:!1,reason:"malformed"};let t=n.now instanceof Date?n.now.getTime():NaN;if(!Number.isFinite(t))return {ok:!1,reason:"malformed"};if(n.source!=="live"&&n.source!=="fallback")return {ok:!1,reason:"malformed"};if(!n.expect||typeof n.expect.site!="string"||typeof n.expect.channel!="string")return {ok:!1,reason:"malformed"};if(n.source==="live"&&!En(n.revokedKids))return {ok:!1,reason:"malformed"};if(n.revokedKids!==void 0&&!En(n.revokedKids))return {ok:!1,reason:"malformed"};let r=J(e);if(!r)return {ok:!1,reason:"malformed"};if(r.site!==n.expect.site||r.channel!==n.expect.channel||r.links.utmSource!==n.expect.site)return {ok:!1,reason:"identity"};let i=r.signer,s=(Array.isArray(n.roots)?n.roots:[]).find(p=>p&&p.kid===i.rootKid);if(!s)return {ok:!1,reason:"root_unknown"};if(!await _e(s.jwk,_n(i),i.rootSig))return {ok:!1,reason:"root_sig"};let a=Mn(i.notBefore),g=Mn(i.notAfter);return !Number.isFinite(a)||!Number.isFinite(g)||g<a?{ok:!1,reason:"malformed"}:n.source==="live"&&(t<a||t>g+6048e5)?{ok:!1,reason:"window"}:r.sig.kid!==i.kid?{ok:!1,reason:"kid_mismatch"}:await _e(i.jwk,Cn(r),r.sig.value)?(n.revokedKids??[]).includes(r.sig.kid)||i.revokedKids.includes(r.sig.kid)?{ok:!1,reason:"revoked"}:{ok:!0,manifest:r}:{ok:!1,reason:"sig"}}catch{return {ok:false,reason:"malformed"}}}async function le(e,n){try{let t;if(typeof e=="string"){if(e.length>24576||new TextEncoder().encode(e).length>24576)return {ok:!1,reason:"malformed"};t=e;}else {if(!(e instanceof Uint8Array)||e.length>24576)return {ok:!1,reason:"malformed"};t=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(e);}let r=JSON.parse(t);return W(r)!==t?{ok:!1,reason:"malformed"}:await Z(r,n)}catch{return {ok:false,reason:"malformed"}}}var Te={businesses:[],loading:true,source:"empty",revision:null,manifest:null,flags:[],rr:null};function dt(e){if(e===null||typeof e!="object")return false;let n=e;return n.schema===2&&n.revision===0&&Array.isArray(n.businesses)&&n.businesses.length===0&&!("sig"in n)}function mt(e,n){let t=e.split("-")[0].split(".").map(Number),r=n.split("-")[0].split(".").map(Number);for(let i=0;i<3;i++){let o=t[i]??0,s=r[i]??0;if(o!==s)return o>s}return false}function Pe(e,n){let t=J(e);return t?t.site!==n.site||t.channel!==n.channel||t.links.utmSource!==n.site?{ok:false,reason:"identity"}:{ok:true,manifest:t}:{ok:false,reason:"malformed"}}async function An(e,n,t){let r=new AbortController,i=setTimeout(()=>r.abort(),4e3);try{let o=await e(n,{mode:"cors",credentials:"omit",cache:t,signal:r.signal});return o.ok?new Uint8Array(await o.arrayBuffer()):null}catch{return null}finally{clearTimeout(i);}}function Nn(e,n){return e.revision<n.revision||Date.parse(e.publishedAt)<Date.parse(n.publishedAt)}var pt=e=>e==="revoked"?"sig_revoked":"sig_fail";async function De(e,n={}){let t=[],r=null,i=n.warn??(a=>console.warn(`[network-sdk] ${a}`)),o=a=>{e.dev&&i(a);};try{let a=n.fetch??(typeof fetch=="function"?fetch.bind(globalThis):void 0),g=(n.now??(()=>new Date))(),p={site:e.siteKey,channel:e.channel},y=e.roots;if(e.siteKeyFromFallback&&t.push("sitekey_from_fallback"),!e.siteKey)return o("no siteKey and no fallback.site: rendering nothing (\xA74.6)"),s("empty",null,t);let b="full",c=Me()===null;if(!e.verifySignature)b="unverified",o("verifySignature is false: signatures are NOT checked");else if(c)if(t.push("insecure_context"),e.dev)b="unverified",i("crypto.subtle is unavailable (insecure context): signature verification skipped in dev (\xA74.6)");else if(e.allowInsecureFallback){let S=Pe(e.fallback,p);return S.ok?s("fallback",S.manifest,t):s("empty",null,t)}else return s("empty",null,t);let k=(S,I,L)=>b==="full"?Z(S,{roots:y,now:g,expect:p,source:I,revokedKids:L}):Promise.resolve(Pe(S,p)),h=(S,I)=>b==="full"?le(S,{roots:y,now:g,expect:p,source:"live",revokedKids:I}):(()=>{try{let L=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(S);return Promise.resolve(Pe(JSON.parse(L),p))}catch{return Promise.resolve({ok:!1,reason:"malformed"})}})(),v=null;if(e.fallback!==void 0&&!dt(e.fallback)){let S=await k(e.fallback,"fallback",[]);S.ok?v=S.manifest:(t.push("fallback_invalid"),o(`bundled fallback rejected (${S.reason}): floor ignored, fallback will not render (\xA74.6)`));}let f=v?v.signer.revokedKids:[],x=()=>v?(Date.parse(v.signer.notAfter)<g.getTime()&&t.push("fallback_key_expired"),s("fallback",v,t)):s("empty",null,t);if(!a)return t.push("fetch_fail"),x();let d=await An(a,e.manifestUrl,"default");if(d===null)return t.push("fetch_fail"),o(`manifest fetch failed (${e.manifestUrl}): rendering the fallback`),x();let w=await h(d,f);if(!w.ok)return t.push(pt(w.reason)),o(`live manifest rejected (${w.reason}): rendering the fallback`),x();if(v&&Nn(w.manifest,v)){d=await An(a,e.manifestUrl,"reload");let S=d===null?null:await h(d,f);if(S&&S.ok&&!Nn(S.manifest,v))t.push("stale_cache"),r=w.manifest.revision,w=S;else return t.push("rev_rollback"),r=S&&S.ok?S.manifest.revision:w.manifest.revision,o(`live manifest revision ${w.manifest.revision} is below the bundled floor ${v.revision}: rendering the fallback (rev_rollback)`),x()}return mt(w.manifest.minSdkVersion,F)&&(t.push("sdk_outdated"),o(`manifest requires SDK \u2265 ${w.manifest.minSdkVersion}, this is ${F}`)),s("live",w.manifest,t)}catch{return s("empty",null,t)}function s(a,g,p){let y=(n.hostname??gt()).replace(/^www\./,""),c={businesses:g?g.businesses.filter(k=>k.domain!==y&&k.id!==e.siteKey&&k.url.startsWith("https:")):[],loading:false,source:g?a:"empty",revision:g?g.revision:null,manifest:g,flags:p,rr:r};try{e.onEvent?.({type:"directory",payload:{source:c.source,revision:c.revision,flags:[...p]}});}catch{}return c}}function gt(){try{return typeof location<"u"?location.hostname.toLowerCase():""}catch{return ""}}var bt=e=>{if(e===null||typeof e!="object")return [typeof e];let n=e,t=n.sig&&typeof n.sig=="object"?n.sig:{};return [n.site,n.revision,n.publishedAt,t.value]};function ht(e){if(!e)return null;try{return JSON.stringify([e.siteKey,e.siteKeyFromFallback,e.channel,e.manifestUrl,e.verifySignature,e.allowInsecureFallback,e.dev,e.roots.map(n=>[n.kid,n.jwk.x,n.jwk.y]),bt(e.fallback)])}catch{return `${e.siteKey}|${e.manifestUrl}`}}function vt(e,n){return !e.loading&&e.source===n.source&&e.revision===n.revision&&e.rr===n.rr&&e.manifest?.sig.value===n.manifest?.sig.value&&e.businesses.length===n.businesses.length&&e.flags.join()===n.flags.join()}function Oe(e){let n=V(e),t=useRef(n);useEffect(()=>{t.current=n;});let r=ht(n),[i,o]=useState(Te);return useEffect(()=>{let s=t.current;if(!s){o(p=>!p.loading&&!p.manifest?p:{...Te,loading:false});return}let a=true,g={...s,onEvent:p=>t.current?.onEvent?.(p)};return De(g).then(p=>{a&&o(y=>vt(y,p)?y:p);}),()=>{a=false;}},[r]),i}function Tn(e,n,t){let r=new URLSearchParams({utm_source:n.utmSource,utm_medium:n.utmMedium,utm_campaign:n.utmCampaign,utm_content:t}).toString(),i=e.indexOf("#"),o=i>=0?e.slice(0,i):e,s=i>=0?e.slice(i):"";return `${o}${o.includes("?")?"&":"?"}${r}${s}`}function ce(e,n){try{let t=e.currentTarget;n&&t&&typeof t=="object"&&typeof t.href=="string"&&t.href!==n&&(t.href=n);}catch{}}var In=e=>e==="click"?0:e==="auxclick"?1:2,xt=["pointerDown","click","observe"];function Pn(e){return typeof e=="object"&&e!==null&&xt.every(n=>typeof e[n]=="function")}var D=e=>(...n)=>{try{e(...n);}catch{}};function Be(e,n){let t=useContext(Q),r=V(),i=useContext(ee),o=n===null?null:Pn(n)?n:Pn(i)?i:null,s=typeof n=="function"?n:null,a=e.id,g=useCallback(p=>{try{o?.observe(a,p);}catch{}},[o,a]);return useMemo(()=>{let p=t?.links??{utmSource:r?.siteKey??"",utmMedium:ge.medium,utmCampaign:ge.campaign,nofollow:false},y=Tn(e.url,p,e.id),b=null,c=()=>{b?.(),b=null;},k=(f,x)=>{c();let d={currentTarget:f.currentTarget};if(x<=0)return ce(d,y);let w=setTimeout(()=>{b=null,ce(d,y);},x);b=()=>clearTimeout(w);},h=(f,x)=>{o&&(ce(f,o.click(e,y,x,In(x))),k(f,ne));},v=(f="click",x)=>{let d=y;try{o&&(d=o.click(e,y,f,x??In(f)));}catch{d=y;}if(s)try{let w=s(e,d,f);if(typeof w=="string"&&w)return w}catch{}return d};return {href:y,linkProps:{href:y,target:"_blank",rel:`noopener noreferrer${p.nofollow?" nofollow":""}`,"aria-label":`Visit ${e.name} website (opens in a new tab)`,onPointerDown:D(f=>{c(),o&&ce(f,o.pointerDown(e,y));}),onPointerUp:D(f=>k(f,ne)),onPointerCancel:D(f=>k(f,ne)),onBlur:D(f=>k(f,0)),onClick:D(f=>h(f,"click")),onAuxClick:D(f=>{f.button===1&&h(f,"auxclick");}),onContextMenu:D(f=>h(f,"contextmenu")),onDragStart:D(f=>h(f,"drag"))},trackClick:v,observe:g}},[e,t,r,o,s,g])}var Ue="discover-businesses-heading",Dn=e=>e.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`);function Mt(e,n,t){let r=n[e];return t?r||void 0:r?`inr-${Dn(e)} ${r}`:`inr-${Dn(e)}`}function _t(e){let n=e.trimEnd().lastIndexOf(" ");return n<0?["",e]:[e.slice(0,n+1),e.slice(n+1)]}function Ct(e){let n=V(e.config),t=e.onEvent??n?.onEvent,r=useMemo(()=>n?t===n.onEvent?n:{...n,onEvent:t}:null,[n,t]),i=useRef(r);useEffect(()=>{i.current=r;});let o=Oe(r),s=useMemo(()=>pn(()=>i.current,o),[o]),a=useMemo(()=>{let d=e.maxItems&&e.maxItems>0?e.maxItems:o.businesses.length;return o.businesses.slice(0,d)},[o.businesses,e.maxItems]),g=useRef(false);useEffect(()=>{a.length>0&&!g.current&&(g.current=true,s.rendered(a.map(d=>d.id)));},[a,s]),useEffect(()=>{s.setOrder(a.map(d=>d.id));},[a,s]);let p=!!r&&!o.loading&&a.length>0&&!!o.manifest,y=useRef(null);if(useEffect(()=>{if(p)return s.start(y.current),()=>s.stop()},[s,p]),!r||o.loading||a.length===0||!o.manifest)return null;let b=e.theme?{...r.theme,...e.theme}:r.theme,c=e.unstyled??r.unstyled,k=d=>Mt(d,b,c),h=e.title??o.manifest.section.title,v=e.subtitle===void 0?o.manifest.section.subtitle:e.subtitle,[f,x]=_t(h);return jsx(Q.Provider,{value:o.manifest,children:jsx(ee.Provider,{value:s,children:jsx("section",{ref:y,className:k("section"),"aria-labelledby":Ue,"data-inr-rev":o.revision??void 0,"data-inr-source":o.source,children:jsxs("div",{className:k("container"),children:[jsxs("h2",{id:Ue,className:k("heading"),children:[f,jsx("span",{className:k("accentWord"),children:x})]}),v?jsx("p",{className:k("subheading"),children:v}):null,jsx("div",{className:k("grid"),children:a.map(d=>jsx(At,{business:d,cls:k,renderCard:e.renderCard},d.id))})]})})})})}function At(e){let{business:n,cls:t}=e,r=Be(n),[i,o]=useState(false);if(e.renderCard)return jsx(Fragment,{children:e.renderCard(n,r)});let s=[n.category,n.location].filter(Boolean).join(" \xB7 ");return jsxs("article",{ref:r.observe,className:t("card"),"data-inr-id":n.id,children:[jsx("div",{className:t("imageBox"),children:i?jsx("div",{className:t("placeholder"),role:"img","aria-label":n.image.alt,children:n.name.trim().charAt(0).toUpperCase()}):jsx("img",{className:t("image"),src:n.image.src,srcSet:`${n.image.src} 1x, ${n.image.src2x} 2x`,alt:n.image.alt,width:n.image.width,height:n.image.height,loading:"lazy",decoding:"async",onError:()=>o(true)})}),jsxs("div",{className:t("body"),children:[jsx("h3",{className:t("name"),children:n.name}),s?jsx("p",{className:t("meta"),children:s}):null,jsx("p",{className:t("description"),children:n.description}),jsxs("a",{...r.linkProps,className:t("button"),children:["Visit Website",jsxs("svg",{className:t("buttonIcon"),"aria-hidden":"true",focusable:"false",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("path",{d:"M15 3h6v6"}),jsx("path",{d:"M10 14 21 3"}),jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})]})]})]})}
|
|
2
|
-
export{
|
|
1
|
+
import {createContext,useRef,useEffect,useState,useContext,useCallback,useMemo}from'react';import {jsx,jsxs,Fragment}from'react/jsx-runtime';var We=createContext(null),Q=createContext(null),ee=createContext(null);function $n(e){return jsx(We.Provider,{value:e.config,children:e.children})}function V(e){let n=useContext(We);return e??n}var F="2.2.0-beta.2",Xe=2,ge="https://inr-network-public.nyc3.cdn.digitaloceanspaces.com/network/v1";var ye={medium:"network",campaign:"cross-promo"},ze=1e4,ne=2e3,ke=1e3,Ye=300,be=.5,qe=864e5,Ze=2e4,he=24,Qe=8,we=4096,en=10,nn=64,j={webdriver:1,noLanguages:2,zeroPlugins:4,headlessUa:8,noOuterWindow:16},tn=["sig_fail","rev_rollback","stale_cache","fallback_invalid","fallback_key_expired","sitekey_from_fallback","sdk_outdated"];function rn(e,n,t){return `${e.replace(/\/+$/,"")}/${t==="preview"?"preview/":""}sites/${n}/manifest.json`}var te="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_";function Fn(e){let n="";for(let t=0;t<e.length;t+=3){let r=e[t]<<16|(e[t+1]??0)<<8|(e[t+2]??0);n+=te[r>>18]+te[r>>12&63],t+1<e.length&&(n+=te[r>>6&63]),t+2<e.length&&(n+=te[r&63]);}return n}function re(e){try{return crypto.getRandomValues(new Uint8Array(e))}catch{return null}}function on(e=re){let n=e(16);if(!n||n.length<16)return null;n[6]=n[6]&15|64,n[8]=n[8]&63|128;let t=Array.from(n.subarray(0,16),r=>r.toString(16).padStart(2,"0")).join("");return `${t.slice(0,8)}-${t.slice(8,12)}-${t.slice(12,16)}-${t.slice(16,20)}-${t.slice(20)}`}function sn(e,n,t,r=re){let i=g=>Number.isInteger(g)&&g>=0&&g<=65535,o=Math.floor(t/6e4);if(!i(e)||!i(n)||!(o>=0&&o<=4294967295))return null;let s=r(16);if(!s||s.length<16)return null;let a=new Uint8Array(24);return a[0]=e>>>8,a[1]=e&255,a[2]=n>>>8,a[3]=n&255,a[4]=o>>>24,a[5]=o>>>16&255,a[6]=o>>>8&255,a[7]=o&255,a.set(s.subarray(0,16),8),Fn(a)}function ve(e,n){let t=e.indexOf("#"),r=t<0?e:e.slice(0,t),i=t<0?"":e.slice(t),o=r.indexOf("?"),s=o<0?[]:r.slice(o+1).split("&").filter(a=>a!==""&&a.split("=")[0]!=="inr");return s.push(`${"inr"}=${n}`),`${o<0?r:r.slice(0,o)}?${s.join("&")}${i}`}var Se=[],jn=[{kid:"root-dev-a01e0d",jwk:{kty:"EC",crv:"P-256",x:"4dO5Ybuh3aMQMYvVUYd82CZ2y-tM2wM4SeunZvxMKHQ",y:"Tw6MyboNkggXo9jV7_Tng8tCGNMin7Dxuept8AY0Anc"}}];var Hn=["section","container","heading","accentWord","subheading","grid","card","imageBox","image","placeholder","body","name","meta","description","button","buttonIcon"],an=e=>e!==null&&typeof e=="object"&&!Array.isArray(e);function ln(e){return !!e&&/^(localhost|.+\.localhost|127\.0\.0\.1|\[::1\]|::1)$/i.test(e)}function Gn(e){try{return !!e&&ln(new URL(e).hostname)}catch{return false}}function xe(e,n,t){return e.channel!=="preview"&&(e.dev||ln(n))&&!Gn(t)}function Jn(e){let n=an(e.fallback)?e.fallback:null,t=n&&typeof n.site=="string"?n.site:"",r=typeof e.siteKey=="string"&&e.siteKey?e.siteKey:t,i=e.channel==="preview"?"preview":"production",o=n&&typeof n.cdnBase=="string"?n.cdnBase:void 0,s=n&&an(n.analytics)?n.analytics:null,a=s&&typeof s.endpoint=="string"?s.endpoint:null,g=e.dev===true,p=xe({dev:g,channel:i},void 0,a)?null:a,y=e.consentMode==="require-consent"?"require-consent":"session-default";return {siteKey:r,siteKeyFromFallback:!e.siteKey&&!!t,channel:i,manifestUrl:e.manifestUrl??rn(e.cdnBase??o??ge,r,i),fallback:e.fallback,roots:e.manifestRootKeys??Se,consent:e.consent,consentMode:y,theme:e.theme??{},unstyled:e.unstyled===true,verifySignature:e.verifySignature!==false,allowInsecureFallback:e.allowInsecureFallback===true,dev:g,onEvent:e.onEvent,capture:{siteKey:r,endpoint:p,consent:e.consent,consentMode:y}}}function cn(e,n,t){let r=o=>{try{t?.(o);}catch{}return o};try{if(location.protocol=="https:"&&/^http:/i.test(e))return r(!1)}catch{}try{if(navigator.sendBeacon(e,n))return r(!0)}catch{}let i=o=>fetch(e,{method:"POST",mode:"no-cors",keepalive:o,credentials:"omit",body:n});try{return i(!0).then(()=>r(!0),()=>{try{if(document.visibilityState=="visible")return void i(!1).then(()=>r(!0),()=>r(!1))}catch{}r(!1);}),!0}catch{return r(false)}}var mn={now:()=>Date.now(),random:re,roll:()=>Math.random(),send:cn,later:(e,n)=>{let t=setTimeout(e,n);return ()=>clearTimeout(t)},doc:()=>typeof document>"u"?void 0:document,win:()=>typeof window>"u"?void 0:window,nav:()=>typeof navigator>"u"?void 0:navigator,host:()=>typeof location>"u"?void 0:location.hostname,IO:()=>typeof IntersectionObserver=="function"?IntersectionObserver:void 0},un=e=>({el:e,inter:false,since:null,ms:0,seen:false,fv:null}),fn=e=>Math.min(qe,Math.max(0,Math.round(e))),dn=e=>typeof e=="number"&&e>0?Math.min(Ze,Math.round(e)):0,Wn=.005,Xn=new Set(tn);function zn(e,n){let t=0;try{e&&(e.webdriver===!0&&(t|=j.webdriver),(!e.languages||e.languages.length===0)&&(t|=j.noLanguages),e.plugins&&e.plugins.length===0&&(t|=j.zeroPlugins),/HeadlessChrome/.test(e.userAgent??"")&&(t|=j.headlessUa)),n&&n.outerWidth===0&&n.outerHeight===0&&(t|=j.noOuterWindow);}catch{}return t}function Yn(e){let n=[];for(let t of e){let r=t==="sig_revoked"?"sig_fail":t;Xn.has(r)&&!n.includes(r)&&n.push(r);}return n.slice(0,Qe)}var R=e=>{try{e();}catch{}};function pn(e,n){let t=on(n.random);if(!t)return null;let r=e.manifest.analytics,i=Math.round(n.now()),o=r.enabled&&r.impressions&&r.samplePermille>0&&n.roll()*1e3<r.samplePermille?1:0,s=zn(n.nav(),n.win()),a=Yn(e.flags),g=e.rr!==null&&(a.includes("rev_rollback")||a.includes("stale_cache"))?e.rr:null,p=()=>{try{return e.withhold?.()===!0}catch{return true}},y=new Map,b=un(null),c=[],k=[],h=false,w=0,f="",x="",d=null,v=null,S=false,I=false,L=false,de=true,Fe=(l,m,u)=>{if(m)l.since===null&&(l.since=u,l.fv===null&&(l.fv=fn(u-i)));else if(l.since!==null){let M=Math.max(0,u-l.since);l.ms+=M,M>=ke&&(l.seen=true),l.since=null;}},je=(l,m)=>{if(!l)return {seen:false,ms:0,fv:null};let u=l.since===null?0:Math.max(0,m-l.since);return {seen:l.seen||u>=ke,ms:fn(l.ms+u),fv:l.fv}},N=()=>{let l=n.now(),m=L&&de&&n.doc()?.visibilityState==="visible",u=false;for(let M of y.values()){let T=m&&M.inter&&M.el!==null;u=u||T,Fe(M,T,l);}Fe(b,m&&(b.inter||u),l),b.fv!==null&&!h&&!v&&!S&&(v=n.later(()=>R(()=>{v=null,S=!0,N(),K("timer");}),ze));},On=l=>{for(let m of l){let u=b.el===m.target?b:[...y.values()].find(M=>M.el===m.target);u&&(u.inter=m.isIntersecting&&m.intersectionRatio>=be-Wn);}N();},He=l=>({v:2,k:e.manifest.site,pv:t,r:e.manifest.revision,src:e.src,sdk:F,tok:r.token,sp:r.samplePermille,smp:o,t:Math.round(l),hd:p()?0:s,m:i}),Ge=(l,m,u=null)=>n.send(`${r.endpoint.replace(/\/+$/,"")}/${l}`,JSON.stringify(m),M=>R(()=>e.onSignal(l,M,u))),Bn=(l,m)=>JSON.stringify([l.seen,l.ms>=Ye,m.map(u=>[u.seen,u.fv!==null])]),K=l=>{if(!L||!d||w>=en||h&&l==="timer")return false;let m=n.now(),u=je(b,m);if(b.fv===null||u.ms<1)return false;let M=k.map((U,me)=>({id:U,pos:me,...je(y.get(U),m)})),T=JSON.stringify([u,M]);if(h&&T===f)return false;let z=Bn(u,M);if(h&&l==="click"&&z===x)return false;v?.(),v=null,h=true,w+=1,f=T,x=z;let O=n.win(),$={...He(m),items:M,ss:u.seen,sm:u.ms,vp:p()?{w:0,h:0}:{w:dn(O?.innerWidth),h:dn(O?.innerHeight)},why:l};if(a.length&&($.fl=a),g!==null&&($.rr=g),JSON.stringify($).length>we){let U=M.filter(me=>me.fv!==null);for($.items=U;JSON.stringify($).length>we&&U.length;)U.pop();}return Ge("impression",$,l),true},Je=()=>{let l=n.IO(),m=n.doc(),u=n.win();if(!I||L||!l||!m)return;L=true,d??=new l(O=>R(()=>On(O)),{threshold:be}),b.el&&d.observe(b.el);for(let O of y.values())O.el&&d.observe(O.el);let M=()=>R(()=>{N(),m.visibilityState==="hidden"&&K("hidden");}),T=()=>R(()=>{N(),K("pagehide"),de=!1,N();}),z=()=>R(()=>{de=!0,N();});m.addEventListener("visibilitychange",M),u?.addEventListener("pagehide",T),u?.addEventListener("pageshow",z),c.push(()=>m.removeEventListener("visibilitychange",M),()=>u?.removeEventListener("pagehide",T),()=>u?.removeEventListener("pageshow",z)),N();};return {pv:t,m:i,smp:o,hd:s,get sent(){return h},setOrder(l){k=l.slice(0,he);},pos(l){let m=k.indexOf(l.id);return m>=0?m:Math.min(Math.max(0,l.position),he-1)},observe(l,m){R(()=>{let u=y.get(l);u&&u.el===m||(u?.el&&d?.unobserve(u.el),u?(u.el=m,u.inter=!1,N()):m&&y.set(l,un(m)),m&&d&&L&&d.observe(m));});},start(l){R(()=>{l&&(b.el=l);let m=n.doc();if(!(I||o===0||!m))if(I=!0,m.prerendering){let u=()=>R(Je);m.addEventListener("prerenderingchange",u,{once:!0}),c.push(()=>m.removeEventListener("prerenderingchange",u));}else Je();});},stop(){R(()=>{if(I){N(),K("hidden"),I=!1,L=!1,v?.(),v=null,d?.disconnect();for(let l of c.splice(0))l();N();}});},common:He,post:Ge,flushForClick(){return R(()=>{N(),K("click");}),h},flush:K}}var qn=5*6e4;function gn(e,n,t=mn){let r=c=>{try{e()?.onEvent?.(c);}catch{}},i=n.manifest,o=n.source,s=null;try{let c=e(),k=c!==null&&xe(c,t.host?.(),i?.analytics.endpoint??null);i&&!k&&i.analytics.enabled&&(o==="live"||o==="fallback")&&(s=pn({manifest:i,src:o,flags:n.flags,rr:n.rr,onSignal:(h,w,f)=>r({type:"signal",payload:f?{kind:h,sent:w,why:f}:{kind:h,sent:w}}),withhold:()=>{let h=e();return h?.consentMode==="require-consent"&&!(h.consent?.get()==="granted"&&t.nav()?.globalPrivacyControl!==!0)}},t));}catch{s=null;}let a=s!==null&&i!==null&&i.analytics.clicks,g=new Map,p=[],y=c=>i?sn(i.siteIndex,c.idx,t.now(),t.random):null,b=c=>{try{c();}catch{}};return {page:s,rendered(c){r({type:"impression",payload:{ids:c,revision:i?.revision??null}});},pointerDown(c,k){let h=null;return b(()=>{if(!a)return;let w=y(c);w&&(g.set(c.id,{id:w,at:t.now()}),c.instrumentation!=="none"&&(h=ve(k,w)));}),h},click(c,k,h,w){let f=k;return b(()=>{if(!a||!s)return;let x=g.get(c.id);g.delete(c.id);let d=x&&t.now()-x.at<=qn?x.id:y(c);if(!d||(c.instrumentation!=="none"&&(f=ve(k,d)),p.includes(d)))return;p.push(d),p.length>nn&&p.shift();let v=s.flushForClick();s.post("click",{...s.common(t.now()),c:d,b:c.id,pos:s.pos(c),btn:w,via:h,ip:v});}),r({type:"click",payload:{id:c.id,href:k,via:h}}),f},observe:(c,k)=>b(()=>s?.observe(c,k)),setOrder:c=>b(()=>s?.setOrder(c)),start:c=>b(()=>s?.start(c)),stop:()=>b(()=>s?.stop())}}var Zn="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_",yn={};for(let e=0;e<64;e++)yn[Zn[e]]=e;function Qn(e){return /^[A-Za-z0-9_-]*$/.test(e)}function Ee(e,n){if(typeof e!="string"||!Qn(e)||e.length!==Math.ceil(n*4/3))return null;let t=new Uint8Array(n),r=0,i=0,o=0;for(let s=0;s<e.length;s++)if(r=(r<<6|yn[e[s]])&65535,i+=6,i>=8){if(i-=8,o>=n)return null;t[o++]=r>>i&255;}return o!==n||i>0&&(r&(1<<i)-1)!==0?null:t}function Me(e){let n="";for(let t of e)n+=t.toString(16).padStart(2,"0");return n}var ie=/^[a-z0-9]+(-[a-z0-9]+)*$/,_e=48,Ne=24,Y=/^[a-z0-9][a-z0-9-]{1,63}$/,Re=/^[A-Za-z0-9_-]{85}[AQgw]$/,Ce=/^[A-Za-z0-9_-]{42}[AEIMQUYcgkosw048]$/,se=/^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(\.\d{3})?Z$/,et=/^[a-z0-9-]+\.\d+\.\d{8}\.[0-9a-f]{12}$/,kn=/^[a-z0-9.-]+$/,nt=/^([\w.~!$&'()*+,;=:@/?-]|%[\da-f]{2})*(#([\w.~!$&'()*+,;=:@/?-]|%[\da-f]{2})*)?$/i,Ae=class extends Error{},E=()=>{throw new Ae};function P(e,n){(e===null||typeof e!="object"||Array.isArray(e))&&E();let t=e;for(let r of Object.keys(t))n.includes(r)||E();for(let r of n)r in t||E();return t}function tt(e){let n=0;for(let t of e)n++;return n}function A(e,n,t){typeof e!="string"&&E();let r=tt(e);return (r<n||r>t)&&E(),e}function _(e,n,t=1024){let r=A(e,0,t);return n.test(r)||E(),r}function q(e,n,t){return (typeof e!="number"||!Number.isInteger(e)||e<n||e>t)&&E(),e}function H(e){return typeof e!="boolean"&&E(),e}function oe(e,n){return e===null?null:n(e)}function G(e,n){return e!==n&&E(),n}function bn(e,n){return (typeof e!="string"||!n.includes(e))&&E(),e}function hn(e){let n;try{n=new URL(e);}catch{return "must be an absolute URL"}let t=n.hostname==="localhost"||n.hostname==="127.0.0.1";return n.protocol!=="https:"&&!(n.protocol==="http:"&&t)?"must be https":n.username||n.password||n.search||n.hash?"no userinfo, query or fragment":null}function ae(e){let n=A(e,1,1024);return hn(n)!==null&&E(),n}function wn(e){if(e.length>200)return "must be at most 200 characters";let n;try{n=new URL(e);}catch{return "must be an absolute URL"}if(n.protocol!=="https:")return "must use https";if(n.username||n.password)return "must not contain credentials";if(n.port!==""&&n.port!=="443")return "port must be 443";let t=n.hostname;return t.startsWith("[")||/^\d+(\.\d+){3}$/.test(t)?"IP addresses are not allowed":!kn.test(t)||!t.includes(".")||t.startsWith(".")||t.endsWith(".")?"invalid hostname":n.toString()!==e||!nt.test(e.slice(n.origin.length))?"must be normalised":null}function rt(e){let n=A(e,1,200);return wn(n)!==null&&E(),n}function le(e){let n=P(e,["kty","crv","x","y"]);return {kty:G(n.kty,"EC"),crv:G(n.crv,"P-256"),x:_(n.x,Ce),y:_(n.y,Ce)}}function ot(e){let n=P(e,["src","src2x","alt","width","height"]);return {src:ae(n.src),src2x:ae(n.src2x),alt:A(n.alt,1,120),width:G(n.width,640),height:G(n.height,360)}}var it=["id","idx","name","description","url","domain","image","category","location","region","tags","pinned","position","instrumentation"];function st(e){let n=P(e,it),t=A(n.name,2,60);/^[=+@]/.test(t)&&E();let r=_(n.domain,kn,253);(r.length<1||r.startsWith("www."))&&E();let i=n.tags;return (!Array.isArray(i)||i.length>10)&&E(),{id:_(n.id,ie,_e),idx:q(n.idx,1,65535),name:t,description:A(n.description,1,140),url:rt(n.url),domain:r,image:ot(n.image),category:oe(n.category,o=>A(o,0,40)),location:oe(n.location,o=>A(o,0,60)),region:oe(n.region,o=>A(o,0,40)),tags:i.map(o=>A(o,0,24)),pinned:H(n.pinned),position:q(n.position,0,Ne-1),instrumentation:bn(n.instrumentation,["none","landings","conversions"])}}function at(e){let n=P(e,["kid","jwk","notBefore","notAfter","rootKid","rootSig","revokedKids"]),t=n.revokedKids;return Array.isArray(t)||E(),{kid:_(n.kid,Y),jwk:le(n.jwk),notBefore:_(n.notBefore,se),notAfter:_(n.notAfter,se),rootKid:_(n.rootKid,Y),rootSig:_(n.rootSig,Re),revokedKids:t.map(r=>_(r,Y))}}var lt=["schema","revision","publishedAt","site","siteIndex","channel","cdnBase","minSdkVersion","analytics","links","section","businesses","signer","sig"];function J(e){try{let n=P(e,lt),t=P(n.analytics,["enabled","endpoint","impressions","clicks","landings","samplePermille","token"]),r=P(n.links,["utmMedium","utmCampaign","utmSource","refParam","nofollow"]),i=P(n.section,["title","subtitle"]),o=P(n.sig,["alg","kid","value"]),s=n.businesses;return (!Array.isArray(s)||s.length>Ne)&&E(),{schema:G(n.schema,2),revision:q(n.revision,1,Number.MAX_SAFE_INTEGER),publishedAt:_(n.publishedAt,se),site:_(n.site,ie,_e),siteIndex:q(n.siteIndex,1,65535),channel:bn(n.channel,["production","preview"]),cdnBase:ae(n.cdnBase),minSdkVersion:_(n.minSdkVersion,/^\d+\.\d+\.\d+$/),analytics:{enabled:H(t.enabled),endpoint:ae(t.endpoint),impressions:H(t.impressions),clicks:H(t.clicks),landings:H(t.landings),samplePermille:q(t.samplePermille,0,1e3),token:_(t.token,et)},links:{utmMedium:A(r.utmMedium,1,40),utmCampaign:A(r.utmCampaign,1,40),utmSource:_(r.utmSource,ie,_e),refParam:_(r.refParam,/^[a-z]{1,8}$/),nofollow:H(r.nofollow)},section:{title:A(i.title,1,60),subtitle:oe(i.subtitle,a=>A(a,0,120))},businesses:s.map(st),signer:at(n.signer),sig:{alg:G(o.alg,"ES256"),kid:_(o.kid,Y),value:_(o.value,Re)}}}catch{return null}}var Sn=BigInt("0xffffffff00000000ffffffffffffffffbce6faada7179e84f3b9cac2fc632551"),ct=Sn>>1n;function Le(){let e=globalThis.crypto;return e&&e.subtle?e.subtle:null}function ut(e){let n=Ee(e,64);if(!n)return "encoding";let t=BigInt(`0x${Me(n.subarray(0,32))}`),r=BigInt(`0x${Me(n.subarray(32))}`);return t===0n||t>=Sn||r===0n||r>ct?"range":null}var vn=new WeakMap;async function ft(e,n){let t=vn.get(e);if(t)return t;let{kty:r,crv:i,x:o,y:s}=e,a=n.importKey("jwk",{...le({kty:r,crv:i,x:o,y:s}),ext:true},{name:"ECDSA",namedCurve:"P-256"},false,["verify"]);return vn.set(e,a),a}async function Ie(e,n,t){try{let r=Le();if(!r||ut(t)!==null)return !1;let i=Ee(t,64),o=await ft(e,r);return await r.verify({name:"ECDSA",hash:"SHA-256"},o,i,new TextEncoder().encode(n))}catch{return false}}var B=class extends Error{constructor(t,r){super(`${t} at ${r||"$"}`);this.path=r;this.name="CanonicalJsonError";}path};function W(e){return Pe(e,"$")}function Pe(e,n){if(e===null)return "null";switch(typeof e){case "boolean":return e?"true":"false";case "string":return JSON.stringify(e);case "number":if(!Number.isSafeInteger(e))throw new B(`non-integer or unsafe number ${String(e)}`,n);return String(e);case "object":{if(Array.isArray(e))return `[${e.map((i,o)=>Pe(i,`${n}[${o}]`)).join(",")}]`;let t=Object.getPrototypeOf(e);if(t!==Object.prototype&&t!==null)throw new B("unsupported object type",n);let r=e;return `{${Object.keys(r).sort().map(i=>{let o=r[i];if(o===void 0)throw new B(`undefined value for key "${i}" (use null)`,n);return `${JSON.stringify(i)}:${Pe(o,`${n}.${i}`)}`}).join(",")}}`}default:throw new B(`unsupported type ${typeof e}`,n)}}function _n(e){return W({kid:e.kid,jwk:{kty:e.jwk.kty,crv:e.jwk.crv,x:e.jwk.x,y:e.jwk.y},notBefore:e.notBefore,notAfter:e.notAfter,rootKid:e.rootKid})}function Cn(e){let{sig:n,...t}=e;return W(t)}var En=e=>Array.isArray(e)&&e.every(n=>typeof n=="string");function Mn(e){let n=Date.parse(e);return new Date(n).toISOString().startsWith(e.slice(0,19))||E(),n}async function Z(e,n){try{if(!n||typeof n!="object")return {ok:!1,reason:"malformed"};let t=n.now instanceof Date?n.now.getTime():NaN;if(!Number.isFinite(t))return {ok:!1,reason:"malformed"};if(n.source!=="live"&&n.source!=="fallback")return {ok:!1,reason:"malformed"};if(!n.expect||typeof n.expect.site!="string"||typeof n.expect.channel!="string")return {ok:!1,reason:"malformed"};if(n.source==="live"&&!En(n.revokedKids))return {ok:!1,reason:"malformed"};if(n.revokedKids!==void 0&&!En(n.revokedKids))return {ok:!1,reason:"malformed"};let r=J(e);if(!r)return {ok:!1,reason:"malformed"};if(r.site!==n.expect.site||r.channel!==n.expect.channel||r.links.utmSource!==n.expect.site)return {ok:!1,reason:"identity"};let i=r.signer,s=(Array.isArray(n.roots)?n.roots:[]).find(p=>p&&p.kid===i.rootKid);if(!s)return {ok:!1,reason:"root_unknown"};if(!await Ie(s.jwk,_n(i),i.rootSig))return {ok:!1,reason:"root_sig"};let a=Mn(i.notBefore),g=Mn(i.notAfter);return g<a?{ok:!1,reason:"malformed"}:n.source==="live"&&(t<a||t>g+6048e5)?{ok:!1,reason:"window"}:r.sig.kid!==i.kid?{ok:!1,reason:"kid_mismatch"}:await Ie(i.jwk,Cn(r),r.sig.value)?(n.revokedKids??[]).includes(r.sig.kid)||i.revokedKids.includes(r.sig.kid)?{ok:!1,reason:"revoked"}:{ok:!0,manifest:r}:{ok:!1,reason:"sig"}}catch{return {ok:false,reason:"malformed"}}}async function ce(e,n){try{let t;if(typeof e=="string"){if(e.length>24576||new TextEncoder().encode(e).length>24576)return {ok:!1,reason:"malformed"};t=e;}else {if(!(e instanceof Uint8Array)||e.length>24576)return {ok:!1,reason:"malformed"};t=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(e);}let r=JSON.parse(t);return W(r)!==t?{ok:!1,reason:"malformed"}:await Z(r,n)}catch{return {ok:false,reason:"malformed"}}}var De={businesses:[],loading:true,source:"empty",revision:null,manifest:null,flags:[],rr:null};function mt(e){if(e===null||typeof e!="object")return false;let n=e;return n.schema===2&&n.revision===0&&Array.isArray(n.businesses)&&n.businesses.length===0&&!("sig"in n)}function pt(e,n){let t=e.split("-")[0].split(".").map(Number),r=n.split("-")[0].split(".").map(Number);for(let i=0;i<3;i++){let o=t[i]??0,s=r[i]??0;if(o!==s)return o>s}return false}function Te(e,n){let t=J(e);return t?t.site!==n.site||t.channel!==n.channel||t.links.utmSource!==n.site?{ok:false,reason:"identity"}:{ok:true,manifest:t}:{ok:false,reason:"malformed"}}async function An(e,n,t){let r=new AbortController,i=setTimeout(()=>r.abort(),4e3);try{let o=await e(n,{mode:"cors",credentials:"omit",cache:t,signal:r.signal});return o.ok?new Uint8Array(await o.arrayBuffer()):null}catch{return null}finally{clearTimeout(i);}}function Nn(e,n){return e.revision<n.revision||Date.parse(e.publishedAt)<Date.parse(n.publishedAt)}var gt=e=>e==="revoked"?"sig_revoked":"sig_fail";async function Oe(e,n={}){let t=[],r=null,i=n.warn??(a=>console.warn(`[network-sdk] ${a}`)),o=a=>{e.dev&&i(a);};try{let a=n.fetch??(typeof fetch=="function"?fetch.bind(globalThis):void 0),g=(n.now??(()=>new Date))(),p={site:e.siteKey,channel:e.channel},y=e.roots;if(e.siteKeyFromFallback&&t.push("sitekey_from_fallback"),!e.siteKey)return o("no siteKey and no fallback.site: rendering nothing (\xA74.6)"),s("empty",null,t);let b="full",c=Le()===null;if(!e.verifySignature)b="unverified",o("verifySignature is false: signatures are NOT checked");else if(c)if(t.push("insecure_context"),e.dev)b="unverified",i("crypto.subtle is unavailable (insecure context): signature verification skipped in dev (\xA74.6)");else if(e.allowInsecureFallback){let S=Te(e.fallback,p);return S.ok?s("fallback",S.manifest,t):s("empty",null,t)}else return s("empty",null,t);let k=(S,I,L)=>b==="full"?Z(S,{roots:y,now:g,expect:p,source:I,revokedKids:L}):Promise.resolve(Te(S,p)),h=(S,I)=>b==="full"?ce(S,{roots:y,now:g,expect:p,source:"live",revokedKids:I}):(()=>{try{let L=new TextDecoder("utf-8",{fatal:!0,ignoreBOM:!0}).decode(S);return Promise.resolve(Te(JSON.parse(L),p))}catch{return Promise.resolve({ok:!1,reason:"malformed"})}})(),w=null;if(e.fallback!==void 0&&!mt(e.fallback)){let S=await k(e.fallback,"fallback",[]);S.ok?w=S.manifest:(t.push("fallback_invalid"),o(`bundled fallback rejected (${S.reason}): floor ignored, fallback will not render (\xA74.6)`));}let f=w?w.signer.revokedKids:[],x=()=>w?(Date.parse(w.signer.notAfter)<g.getTime()&&t.push("fallback_key_expired"),s("fallback",w,t)):s("empty",null,t);if(!a)return t.push("fetch_fail"),x();let d=await An(a,e.manifestUrl,"default");if(d===null)return t.push("fetch_fail"),o(`manifest fetch failed (${e.manifestUrl}): rendering the fallback`),x();let v=await h(d,f);if(!v.ok)return t.push(gt(v.reason)),o(`live manifest rejected (${v.reason}): rendering the fallback`),x();if(w&&Nn(v.manifest,w)){d=await An(a,e.manifestUrl,"reload");let S=d===null?null:await h(d,f);if(S&&S.ok&&!Nn(S.manifest,w))t.push("stale_cache"),r=v.manifest.revision,v=S;else return t.push("rev_rollback"),r=S&&S.ok?S.manifest.revision:v.manifest.revision,o(`live manifest revision ${v.manifest.revision} is below the bundled floor ${w.revision}: rendering the fallback (rev_rollback)`),x()}return pt(v.manifest.minSdkVersion,F)&&(t.push("sdk_outdated"),o(`manifest requires SDK \u2265 ${v.manifest.minSdkVersion}, this is ${F}`)),s("live",v.manifest,t)}catch{return s("empty",null,t)}function s(a,g,p){let y=(n.hostname??yt()).replace(/^www\./,""),c={businesses:g?g.businesses.filter(k=>k.domain!==y&&k.id!==e.siteKey&&k.url.startsWith("https:")):[],loading:false,source:g?a:"empty",revision:g?g.revision:null,manifest:g,flags:p,rr:r};try{e.onEvent?.({type:"directory",payload:{source:c.source,revision:c.revision,flags:[...p]}});}catch{}return c}}function yt(){try{return typeof location<"u"?location.hostname.toLowerCase():""}catch{return ""}}var ht=e=>{if(e===null||typeof e!="object")return [typeof e];let n=e,t=n.sig&&typeof n.sig=="object"?n.sig:{};return [n.site,n.revision,n.publishedAt,t.value]};function wt(e){if(!e)return null;try{return JSON.stringify([e.siteKey,e.siteKeyFromFallback,e.channel,e.manifestUrl,e.verifySignature,e.allowInsecureFallback,e.dev,e.roots.map(n=>[n.kid,n.jwk.x,n.jwk.y]),ht(e.fallback)])}catch{return `${e.siteKey}|${e.manifestUrl}`}}function vt(e,n){return !e.loading&&e.source===n.source&&e.revision===n.revision&&e.rr===n.rr&&e.manifest?.sig.value===n.manifest?.sig.value&&e.businesses.length===n.businesses.length&&e.flags.join()===n.flags.join()}function Be(e){let n=V(e),t=useRef(n);useEffect(()=>{t.current=n;});let r=wt(n),[i,o]=useState(De);return useEffect(()=>{let s=t.current;if(!s){o(p=>!p.loading&&!p.manifest?p:{...De,loading:false});return}let a=true,g={...s,onEvent:p=>t.current?.onEvent?.(p)};return Oe(g).then(p=>{a&&o(y=>vt(y,p)?y:p);}),()=>{a=false;}},[r]),i}function Tn(e,n,t){let r=new URLSearchParams({utm_source:n.utmSource,utm_medium:n.utmMedium,utm_campaign:n.utmCampaign,utm_content:t}).toString(),i=e.indexOf("#"),o=i>=0?e.slice(0,i):e,s=i>=0?e.slice(i):"";return `${o}${o.includes("?")?"&":"?"}${r}${s}`}function ue(e,n){try{let t=e.currentTarget;n&&t&&typeof t=="object"&&typeof t.href=="string"&&t.href!==n&&(t.href=n);}catch{}}var In=e=>e==="click"?0:e==="auxclick"?1:2,Et=["pointerDown","click","observe"];function Pn(e){return typeof e=="object"&&e!==null&&Et.every(n=>typeof e[n]=="function")}var D=e=>(...n)=>{try{e(...n);}catch{}};function Ke(e,n){let t=useContext(Q),r=V(),i=useContext(ee),o=n===null?null:Pn(n)?n:Pn(i)?i:null,s=typeof n=="function"?n:null,a=e.id,g=useCallback(p=>{try{o?.observe(a,p);}catch{}},[o,a]);return useMemo(()=>{let p=t?.links??{utmSource:r?.siteKey??"",utmMedium:ye.medium,utmCampaign:ye.campaign,nofollow:false},y=Tn(e.url,p,e.id),b=null,c=()=>{b?.(),b=null;},k=(f,x)=>{c();let d={currentTarget:f.currentTarget};if(x<=0)return ue(d,y);let v=setTimeout(()=>{b=null,ue(d,y);},x);b=()=>clearTimeout(v);},h=(f,x)=>{o&&(ue(f,o.click(e,y,x,In(x))),k(f,ne));},w=(f="click",x)=>{let d=y;try{o&&(d=o.click(e,y,f,x??In(f)));}catch{d=y;}if(s)try{let v=s(e,d,f);if(typeof v=="string"&&v)return v}catch{}return d};return {href:y,linkProps:{href:y,target:"_blank",rel:`noopener noreferrer${p.nofollow?" nofollow":""}`,"aria-label":`Visit ${e.name} website (opens in a new tab)`,onPointerDown:D(f=>{c(),o&&ue(f,o.pointerDown(e,y));}),onPointerUp:D(f=>k(f,ne)),onPointerCancel:D(f=>k(f,ne)),onBlur:D(f=>k(f,0)),onClick:D(f=>h(f,"click")),onAuxClick:D(f=>{f.button===1&&h(f,"auxclick");}),onContextMenu:D(f=>h(f,"contextmenu")),onDragStart:D(f=>h(f,"drag"))},trackClick:w,observe:g}},[e,t,r,o,s,g])}var Ve="discover-businesses-heading",Dn=e=>e.replace(/[A-Z]/g,n=>`-${n.toLowerCase()}`);function _t(e,n,t){let r=n[e];return t?r||void 0:r?`inr-${Dn(e)} ${r}`:`inr-${Dn(e)}`}function Ct(e){let n=e.trimEnd().lastIndexOf(" ");return n<0?["",e]:[e.slice(0,n+1),e.slice(n+1)]}function At(e){let n=V(e.config),t=e.onEvent??n?.onEvent,r=useMemo(()=>n?t===n.onEvent?n:{...n,onEvent:t}:null,[n,t]),i=useRef(r);useEffect(()=>{i.current=r;});let o=Be(r),s=useMemo(()=>gn(()=>i.current,o),[o]),a=useMemo(()=>{let d=e.maxItems&&e.maxItems>0?e.maxItems:o.businesses.length;return o.businesses.slice(0,d)},[o.businesses,e.maxItems]),g=useRef(false);useEffect(()=>{a.length>0&&!g.current&&(g.current=true,s.rendered(a.map(d=>d.id)));},[a,s]),useEffect(()=>{s.setOrder(a.map(d=>d.id));},[a,s]);let p=!!r&&!o.loading&&a.length>0&&!!o.manifest,y=useRef(null);if(useEffect(()=>{if(p)return s.start(y.current),()=>s.stop()},[s,p]),!r||o.loading||a.length===0||!o.manifest)return null;let b=e.theme?{...r.theme,...e.theme}:r.theme,c=e.unstyled??r.unstyled,k=d=>_t(d,b,c),h=e.title??o.manifest.section.title,w=e.subtitle===void 0?o.manifest.section.subtitle:e.subtitle,[f,x]=Ct(h);return jsx(Q.Provider,{value:o.manifest,children:jsx(ee.Provider,{value:s,children:jsx("section",{ref:y,className:k("section"),"aria-labelledby":Ve,"data-inr-rev":o.revision??void 0,"data-inr-source":o.source,children:jsxs("div",{className:k("container"),children:[jsxs("h2",{id:Ve,className:k("heading"),children:[f,jsx("span",{className:k("accentWord"),children:x})]}),w?jsx("p",{className:k("subheading"),children:w}):null,jsx("div",{className:k("grid"),children:a.map(d=>jsx(Nt,{business:d,cls:k,renderCard:e.renderCard},d.id))})]})})})})}function Nt(e){let{business:n,cls:t}=e,r=Ke(n),[i,o]=useState(false);if(e.renderCard)return jsx(Fragment,{children:e.renderCard(n,r)});let s=[n.category,n.location].filter(Boolean).join(" \xB7 ");return jsxs("article",{ref:r.observe,className:t("card"),"data-inr-id":n.id,children:[jsx("div",{className:t("imageBox"),children:i?jsx("div",{className:t("placeholder"),role:"img","aria-label":n.image.alt,children:n.name.trim().charAt(0).toUpperCase()}):jsx("img",{className:t("image"),src:n.image.src,srcSet:`${n.image.src} 1x, ${n.image.src2x} 2x`,alt:n.image.alt,width:n.image.width,height:n.image.height,loading:"lazy",decoding:"async",onError:()=>o(true)})}),jsxs("div",{className:t("body"),children:[jsx("h3",{className:t("name"),children:n.name}),s?jsx("p",{className:t("meta"),children:s}):null,jsx("p",{className:t("description"),children:n.description}),jsxs("a",{...r.linkProps,className:t("button"),children:["Visit Website",jsxs("svg",{className:t("buttonIcon"),"aria-hidden":"true",focusable:"false",width:"16",height:"16",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",children:[jsx("path",{d:"M15 3h6v6"}),jsx("path",{d:"M10 14 21 3"}),jsx("path",{d:"M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6"})]})]})]})]})}
|
|
2
|
+
export{ge as DEFAULT_CDN_BASE,jn as DEV_ROOT_PUBLIC_KEYS,At as DiscoverBusinesses,Ve as HEADING_ID,Xe as MANIFEST_SCHEMA_MAJOR,$n as NetworkProvider,F as SDK_VERSION,Hn as THEME_SLOTS,Tn as buildHref,W as canonicalJson,Jn as defineNetworkConfig,Oe as loadDirectory,J as parseManifest,Se as rootPublicKeys,Be as useNetworkDirectory,Ke as useNetworkLink,Z as verifyManifest,ce as verifyManifestBytes};//# sourceMappingURL=index.js.map
|
|
3
3
|
//# sourceMappingURL=index.js.map
|