hypnagaga/packages/graphics-components/docs/assets/ReferralBlock-BGN_l1hf.js

3 lines
6 KiB
JavaScript

import{p as c,c as ae,a as g,f as P}from"./props-b4vEeO_8.js";import{o as le}from"./index-client-BAw8T8-V.js";import{a4 as D,ae as re,C as se,G as oe,B as de,k as e,a3 as E,I as r,F as k,J as I}from"./runtime-C3rQLW--.js";import{i as F,s as h}from"./svelte-component-C8Ginrj8.js";import{e as ce,i as fe}from"./each-CVpBMMjG.js";import{s as v,a as y}from"./attributes-Cg6aLqN3.js";import{b as ue}from"./size-DMdj3-I9.js";import{g as me}from"./time-7uMnD1vs.js";import{B as ve}from"./Block-D3Ui8rd-.js";const ye=o=>{const t="https://www.reuters.com";try{return new URL(o)}catch{try{return new URL(o,t)}catch{return null}}},J=o=>{if(typeof window>"u"||typeof window.location>"u")return!1;const t=ye(o);return t?window.location.origin===t.origin&&window.location.pathname===t.pathname:!1},pe=o=>{const{redirect_url:t,canonical_url:p}=o;return t?!J(t):p?!J(p):!0};var we=P("<div> </div>"),ge=P('<div class="referral svelte-1fkj9me"><a class="svelte-1fkj9me"><div class="referral-pack flex justify-around my-0 mx-auto"><div><div class="kicker m-0 body-caption leading-tighter svelte-1fkj9me" data-chromatic="ignore"> </div> <div class="title m-0 body-caption leading-tighter svelte-1fkj9me" data-chromatic="ignore"> </div> <div class="publish-time body-caption leading-tighter svelte-1fkj9me" data-chromatic="ignore"> </div></div> <div><img class="block object-cover m-0 w-full svelte-1fkj9me" data-chromatic="ignore"/></div></div></a></div>'),ke=P("<div><!> <div></div></div>");function he(o,t){de(t,!0);let p=c(t,"section",3,"/world/"),R=c(t,"number",3,4),U=c(t,"linkTarget",3,"_self"),A=c(t,"heading",3,""),M=c(t,"width",3,"wide"),q=c(t,"id",3,""),G=c(t,"class",3,"fmy-8"),a=D(0);const H="recent-stories-by-sections-v1",K="articles-by-collection-alias-or-id-v1";let b=D(re([]));le(async()=>{var x;if(typeof window>"u"||((x=window==null?void 0:window.location)==null?void 0:x.hostname)!=="www.reuters.com")return;const d=!!t.collection,_=d?K:H;try{const w=(await(await fetch(`https://www.reuters.com/pf/api/v3/content/fetch/${_}?`+new URLSearchParams({query:JSON.stringify({section_ids:d?void 0:p(),collection_alias:d?t.collection:void 0,size:20,website:"reuters"})}))).json()).result.articles.filter(i=>{var l;return(i==null?void 0:i.headline_category)||((l=i==null?void 0:i.kicker)==null?void 0:l.name)}).filter(i=>{var l;return(l=i==null?void 0:i.thumbnail)==null?void 0:l.url}).filter(i=>{var l;return!((l=i==null?void 0:i.content)!=null&&l.third_party)}).filter(pe).slice(0,R());E(b,w,!0)}catch{console.warn("Unable to fetch referral links.")}});var L=ae(),Q=se(L);{var X=d=>{ve(d,{get width(){return M()},get id(){return q()},get class(){return`referrals-block ${G()??""}`},children:(_,x)=>{var u=ke();let j;var w=r(u);{var i=s=>{var n=we();let m;var f=r(n);I(C=>{m=y(n,1,"heading h4 font-bold svelte-1fkj9me",null,m,C),h(f,A())},[()=>({stacked:e(a)&&e(a)<750})]),g(s,n)};F(w,s=>{A()&&s(i)})}var l=k(w,2);let T;ce(l,21,()=>e(b),fe,(s,n)=>{var m=ge(),f=r(m),C=r(f),S=r(C);let B;var N=r(S),Y=r(N),V=k(N,2),Z=r(V),$=k(V,2),ee=r($),O=k(S,2);let W;var z=r(O);I((te,ie,ne)=>{v(f,"href",`https://www.reuters.com${e(n).canonical_url??""}`),v(f,"target",U()),v(f,"rel",U()==="_blank"?"noreferrer":null),B=y(S,1,"headline svelte-1fkj9me",null,B,te),h(Y,e(n).headline_category||e(n).kicker.name),h(Z,e(n).title),h(ee,ie),W=y(O,1,"image-container block m-0 overflow-hidden relative svelte-1fkj9me",null,W,ne),v(z,"src",e(n).thumbnail.url),v(z,"alt",e(n).thumbnail.alt_text||e(n).thumbnail.caption)},[()=>({xs:e(a)&&e(a)<450}),()=>me(new Date(e(n).display_time)),()=>({xs:e(a)&&e(a)<450})]),g(s,m)}),I((s,n)=>{j=y(u,1,"block-container svelte-1fkj9me",null,j,s),T=y(l,1,"referral-container inline-flex flex-wrap w-full justify-between svelte-1fkj9me",null,T,n)},[()=>({stacked:e(a)&&e(a)<750}),()=>({stacked:e(a)&&e(a)<750,xs:e(a)&&e(a)<450})]),ue(u,"clientWidth",s=>E(a,s)),g(_,u)},$$slots:{default:!0}})};F(Q,d=>{e(b).length===R()&&d(X)})}g(o,L),oe()}he.__docgen={data:[{name:"section",visibility:"public",description:`Section ID, which is often the URL path to the section page on reuters.com.
Note that not all section pages will be available in the recent stories by section API.`,keywords:[],kind:"let",type:{kind:"type",type:"string",text:"string"},static:!1,readonly:!1,defaultValue:'"/world/"'},{name:"collection",visibility:"public",description:"Collection alias, as defined in Arc Collections editor.",keywords:[],kind:"let",type:{kind:"type",type:"string",text:"string"},static:!1,readonly:!1},{name:"number",visibility:"public",description:"Number of referrals to show.",keywords:[],kind:"let",type:{kind:"type",type:"number",text:"number"},static:!1,readonly:!1,defaultValue:"4"},{name:"linkTarget",visibility:"public",description:"Link [target](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/a#attr-target), e.g., `_blank` or `_parent`.",keywords:[],kind:"let",type:{kind:"type",type:"string",text:"string"},static:!1,readonly:!1,defaultValue:'"_self"'},{name:"heading",visibility:"public",description:"Add a heading to the referral block.",keywords:[],kind:"let",type:{kind:"type",type:"string",text:"string"},static:!1,readonly:!1,defaultValue:'""'},{name:"width",visibility:"public",description:"Width of the component within the text well: 'normal' | 'wide' | 'wider' | 'widest' | 'fluid'",keywords:[],kind:"let",type:{kind:"union",type:[{kind:"const",type:"string",value:"normal",text:'"normal"'},{kind:"const",type:"string",value:"wide",text:'"wide"'},{kind:"const",type:"string",value:"wider",text:'"wider"'},{kind:"const",type:"string",value:"widest",text:'"widest"'},{kind:"const",type:"string",value:"fluid",text:'"fluid"'}],text:'"normal" | "wide" | "wider" | "widest" | "fluid"'},static:!1,readonly:!1,defaultValue:'"wide"'},{name:"id",visibility:"public",description:"Add an ID to target with SCSS.",keywords:[],kind:"let",type:{kind:"type",type:"string",text:"string"},static:!1,readonly:!1,defaultValue:'""'},{name:"class",visibility:"public",description:"Add a class to target with SCSS.",keywords:[],kind:"let",type:{kind:"type",type:"string",text:"string"},static:!1,readonly:!1}],name:"ReferralBlock.svelte"};export{he as R};