@playpilot/tpi 5.1.1 → 5.2.0-beta.1

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.
@@ -5,7 +5,7 @@ var mi=e=>{throw TypeError(e)};var pi=(e,t,n)=>t.has(e)||mi("Cannot "+n);var Cn=
5
5
  opacity: ${l-u*p}`}}function Bt(e,{delay:t=0,duration:n=400,easing:i=si,axis:r="y"}={}){const a=getComputedStyle(e),o=+a.opacity,s=r==="y"?"height":"width",l=parseFloat(a[s]),d=r==="y"?["top","bottom"]:["left","right"],u=d.map(y=>`${y[0].toUpperCase()}${y.slice(1)}`),f=parseFloat(a[`padding${u[0]}`]),_=parseFloat(a[`padding${u[1]}`]),m=parseFloat(a[`margin${u[0]}`]),g=parseFloat(a[`margin${u[1]}`]),v=parseFloat(a[`border${u[0]}Width`]),p=parseFloat(a[`border${u[1]}Width`]);return{delay:t,duration:n,easing:i,css:y=>`overflow: hidden;opacity: ${Math.min(y*20,1)*o};${s}: ${y*l}px;padding-${d[0]}: ${y*f}px;padding-${d[1]}: ${y*_}px;margin-${d[0]}: ${y*m}px;margin-${d[1]}: ${y*g}px;border-${d[0]}-width: ${y*v}px;border-${d[1]}-width: ${y*p}px;min-${s}: 0`}}function ol(e,{delay:t=0,duration:n=400,easing:i=si,start:r=0,opacity:a=0}={}){const o=getComputedStyle(e),s=+o.opacity,l=o.transform==="none"?"":o.transform,d=1-r,u=s*(1-a);return{delay:t,duration:n,easing:i,css:(f,_)=>`
6
6
  transform: ${l} scale(${1-d*_});
7
7
  opacity: ${s-u*_}
8
- `}}Ta();var ll=Ne('<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M14 2L2 14M2 2L14 14" stroke="currentColor" stroke-width="1.33" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function qr(e){var t=ll();k(e,t)}function ci(e,t){ae(t,!0);const n=N(t,"size",3,"margin(2)"),i=N(t,"onclick",3,()=>null),r=Wo(t,["$$slots","$$events","$$legacy","children","size","onclick"]);var a=Fe(),o=ne(a);Ao(o,()=>t.href?"a":"button",!1,(s,l)=>{let d;L(()=>{d=Mo(s,d,{role:t.href?"link":"button",onclick:i(),class:"button",...r},"svelte-1qqv88o",s.namespaceURI===Gi,s.nodeName.includes("-")),xn(s,"--size",n())});var u=Fe(),f=ne(u);Ct(f,()=>t.children??st),k(l,u)}),k(e,a),oe()}function sl(e){P(e,e.v+1)}function cl(e){let t=0,n=Ee(0),i;return()=>{Ya()&&(c(n),yn(()=>(t===0&&(i=Ke(()=>e(()=>sl(n)))),t+=1,()=>{Bn().then(()=>{t-=1,t===0&&(i==null||i(),i=void 0)})})))}}var Ut,zt;class ul{constructor(t,n){Pn(this,Ut);Pn(this,zt);jn(this,Ut,t),jn(this,zt,cl(n))}get current(){return Cn(this,zt).call(this),Cn(this,Ut).call(this)}}Ut=new WeakMap,zt=new WeakMap;const dl=/\(.+\)/;class fl extends ul{constructor(t,n){let i=dl.test(t)?t:`(${t})`;const r=window.matchMedia(i);super(()=>r.matches,a=>wo(r,"change",a))}}const ui=new fl("(prefers-reduced-motion: reduce)");var vl=(e,t)=>t()(),_l=I('<div class="modal svelte-aqwna4"><div class="dialog svelte-aqwna4" role="dialog" aria-labelledby="title" data-view-transition-new=""><div class="close svelte-aqwna4"><!></div> <!></div> <div class="backdrop svelte-aqwna4"></div></div>');function Hr(e,t){ae(t,!0);const n=N(t,"onclose",3,()=>null),i=N(t,"onscroll",3,()=>null);wr("scope","modal"),Je(()=>{const f=document.body.style.overflowY;return document.body.style.overflowY="hidden",()=>document.body.style.overflowY=f||""});function r(f){return ui.current?Ht(f,{duration:0}):window.innerWidth<600?En(f,{duration:250,y:window.innerHeight}):ol(f,{duration:150,start:.85})}var a=_l();ce("keydown",pe,({key:f})=>{f==="Escape"&&n()()});var o=b(a),s=b(o),l=b(s);ci(l,{onclick:()=>n()(),children:(f,_)=>{qr(f)},$$slots:{default:!0}});var d=E(s,2);Ct(d,()=>t.children);var u=E(o,2);u.__click=[vl,n],ce("scroll",o,function(...f){var _;(_=i())==null||_.apply(this,f)}),je(7,o,()=>r),je(7,a,()=>Ht,()=>({duration:150})),k(e,a),oe()}fe(["click"]);const hl=[{slug:"100",name:"All",categories:{movie:100,series:100,documentary:100,kids:100,cinema:100,podcasts:100}},{slug:"999",name:"Unscripted",categories:{},media_format:"video"},{slug:"900",name:"Independent",categories:{},media_format:"video"},{slug:"113",name:"Game Show",categories:{series:36,kids:28},media_format:"video"},{slug:"112",name:"Film Noir",categories:{movie:37},media_format:"video"},{slug:"212",name:"Entertainment",categories:{kids:80,series:42,movie:42},media_format:"video"},{slug:"120",name:"News",categories:{series:26,documentary:36,kids:38},media_format:"video"},{slug:"208",name:"Short",categories:{movie:21,documentary:30,kids:36},media_format:"video"},{slug:"902",name:"Bollywood",categories:{},media_format:"video"},{slug:"240",name:"Concert",categories:{movie:45},media_format:"video"},{slug:"901",name:"Arthouse",categories:{},media_format:"video"},{slug:"903",name:"Alternate Version",categories:{},media_format:"video"},{slug:"121",name:"Reality TV",categories:{series:24},media_format:"video"},{slug:"202",name:"Culture",categories:{kids:40,documentary:84,series:44},media_format:"video"},{slug:"107",name:"Drama",categories:{series:82,movie:82,cinema:88,documentary:44},media_format:"video"},{slug:"105",name:"Crime",categories:{series:84,documentary:86,cinema:64,movie:84},media_format:"video"},{slug:"128",name:"Western",categories:{movie:12,series:12,documentary:24},media_format:"video"},{slug:"127",name:"Thriller",categories:{series:70,documentary:28,cinema:80,movie:70},media_format:"video"},{slug:"102",name:"Animation",categories:{series:50,cinema:50,kids:90,documentary:48,movie:50},media_format:"video"},{slug:"119",name:"Mystery",categories:{movie:76,cinema:70,kids:26,documentary:38,series:76},media_format:"video"},{slug:"227",name:"Science",categories:{series:22,kids:46,documentary:74},media_format:"video"},{slug:"108",name:"Nature",categories:{kids:48,documentary:76,series:28},media_format:"video"},{slug:"116",name:"War",categories:{movie:14,documentary:68,series:14,cinema:66},media_format:"video"},{slug:"123",name:"Sci-Fi",categories:{series:72,movie:72,cinema:68,kids:70,documentary:32},media_format:"video"},{slug:"106",name:"Documentary",categories:{kids:50},media_format:"video"},{slug:"232",name:"Stand-up",categories:{movie:18,series:18},media_format:"video"},{slug:"126",name:"Talk Show",categories:{kids:34,series:16},media_format:"video"},{slug:"111",name:"Fantasy",categories:{kids:78,cinema:74,documentary:42,movie:38,series:38},media_format:"video"},{slug:"114",name:"History",categories:{movie:35,kids:44,cinema:10,series:80,documentary:90},media_format:"video"},{slug:"109",name:"Adventure",categories:{kids:88,cinema:86,documentary:82,series:88,movie:88},media_format:"video"},{slug:"101",name:"Action",categories:{documentary:50,kids:86,series:90,cinema:90,movie:90},media_format:"video"},{slug:"124",name:"Horror",categories:{cinema:76,documentary:40,series:78,movie:80},media_format:"video"},{slug:"115",name:"Comedy",categories:{cinema:84,documentary:46,series:86,kids:82,movie:86},media_format:"video"},{slug:"104",name:"Biography",categories:{series:46,documentary:88,cinema:10,movie:46},media_format:"video"},{slug:"118",name:"Music",categories:{kids:72,cinema:9,documentary:78,movie:32,series:32},media_format:"video"},{slug:"125",name:"Sport",categories:{cinema:7,kids:68,series:20,documentary:70,movie:20},media_format:"video"},{slug:"122",name:"Romance",categories:{documentary:34,cinema:78,movie:74,series:74},media_format:"video"},{slug:"103",name:"Kids",categories:{kids:76},media_format:"video"},{slug:"222",name:"Lifestyle",categories:{documentary:80,kids:74,series:34},media_format:"video"},{slug:"117",name:"Musical",categories:{kids:30,movie:78,cinema:8,series:30},media_format:"video"},{slug:"129",name:"Anime",categories:{cinema:5,movie:48,kids:84,series:48},media_format:"video"},{slug:"110",name:"Family",categories:{series:40,cinema:40,movie:40},media_format:"video"}];var gl=I('<div class="genre svelte-1ebula3"> </div>'),ml=(e,t)=>P(t,!0),pl=I('<button class="genre expand svelte-1ebula3"> </button>'),yl=I("<!> <!>",1);function wl(e,t){ae(t,!0);let n=U(!1);const i=K(()=>c(n)?t.genres:[t.genres[0]]);var r=yl(),a=ne(r);at(a,17,()=>c(i),bt,(l,d)=>{var u=Fe();const f=K(()=>{var g;return(g=hl.find(v=>v.slug===c(d)))==null?void 0:g.name});var _=ne(u);{var m=g=>{var v=gl(),p=b(v);L(()=>G(p,ke(c(f)))),k(g,v)};q(_,g=>{c(f)&&g(m)})}k(l,u)});var o=E(a,2);{var s=l=>{var d=pl();d.__click=[ml,n];var u=b(d);L(()=>G(u,`+${t.genres.length-1}`)),k(l,d)};q(o,l=>{!c(n)&&t.genres.length>1&&l(s)})}k(e,r),oe()}fe(["click"]);function kl(e){let t=[];for(const n of e){let i=n;const r=t.find(s=>s.name===i.name),a=r==null?void 0:r.extra_info.category,o=i.extra_info.category;(a==="RENT"&&o==="BUY"||a==="BUY"&&o==="RENT")&&(t=t.filter(s=>s.name!==i.name),i={...i,extra_info:{...i.extra_info,category:"TVOD"}}),t.push(i)}return t}function xe(e,t=1){e.role="heading",e.ariaLevel=t.toString()}var bl=Ne('<svg width="6" height="12" viewBox="0 0 6 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 11L5 6L0 1" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function xl(e){var t=bl();k(e,t)}function Ft(e){return e?e.replace("/src/img",""):null}var Sl=(e,t,n)=>t(n()),El=I('<div class="arrow svelte-g63n1y"><!></div>'),Tl=I('<a target="_blank" class="playlink svelte-g63n1y" rel="sponsored"><img alt="" height="32" width="32" class="svelte-g63n1y"> <div><span class="name svelte-g63n1y"> </span> <div class="category svelte-g63n1y"> </div></div> <!></a>'),Il=I('<div class="playlink empty svelte-g63n1y"> </div>'),Al=I('<div class="heading svelte-g63n1y"> </div> <div class="playlinks svelte-g63n1y"><!> <!></div>',1);function Cl(e,t){ae(t,!0);const n=N(t,"list",3,!1),i=lo("scope")==="modal",r=K(()=>t.playlinks.filter(v=>!!v.logo_url)),a=K(()=>kl(c(r))),o={SVOD:ke("Stream"),BUY:ke("Buy"),RENT:ke("Rent"),TVOD:ke("Rent Or Buy")};function s(v){be(i?ye.TitleModalPlaylinkClick:ye.TitlePopoverPlaylinkClick,t.title,{playlink:v})}var l=Al(),d=ne(l),u=b(d);L(()=>G(u,ke("Where To Stream Online"))),Jt(d,(v,p)=>xe==null?void 0:xe(v,p),()=>3);var f=E(d,2),_=b(f);at(_,17,()=>c(a),bt,(v,p)=>{let y=()=>c(p).name,w=()=>c(p).url,S=()=>c(p).logo_url,j=()=>c(p).highlighted,x=()=>c(p).cta_text,T=()=>c(p).extra_info.category;var H=Tl();H.__click=[Sl,s,y];var M=b(H);L(()=>ue(M,"src",Ft(S())));var C=E(M,2),D=b(C),A=b(D),B=E(D,2),O=b(B);L(()=>G(O,x()||o[T()]||ke("Stream")));var z=E(C,2);{var F=V=>{var W=El(),J=b(W);xl(J),k(V,W)};q(z,V=>{n()&&V(F)})}L(()=>{ue(H,"href",w()),ue(H,"data-playlink",y()),se(H,"highlighted",j()&&x()),G(A,y())}),k(v,H)});var m=E(_,2);{var g=v=>{var p=Il(),y=b(p);L(()=>G(y,ke("Title Unavailable"))),k(v,p)};q(m,v=>{t.playlinks.length||v(g)})}L(()=>se(f,"list",n())),k(e,l),oe()}fe(["click"]);var Pl=(e,t)=>P(t,!0),jl=I('<button class="show-more svelte-1u3je71">Show more</button>'),Ml=I('<div class="paragraph svelte-1u3je71" role="paragraph"> </div>'),Nl=I('<div><span class="paragraph svelte-1u3je71" role="paragraph"> <!> <!></span> <!></div>');function Ll(e,t){ae(t,!0);const n=N(t,"blurb",3,""),i=N(t,"limit",3,200);let r=U(!1);const a=K(()=>t.text.slice(0,i()));var o=Nl(),s=b(o),l=b(s),d=E(l);{var u=v=>{var p=Be("...");k(v,p)};q(d,v=>{!c(r)&&t.text.length>i()&&v(u)})}var f=E(d,2);{var _=v=>{var p=jl();p.__click=[Pl,r],k(v,p)};q(f,v=>{!c(r)&&(t.text.length>i()||n())&&v(_)})}var m=E(s,2);{var g=v=>{var p=Ml(),y=b(p);L(()=>G(y,n())),k(v,p)};q(m,v=>{c(r)&&v(g)})}L(()=>G(l,c(r)?t.text:c(a))),k(e,o),oe()}fe(["click"]);var Ol=Ne('<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7 0.351929L9.163 4.72803L14 5.43408L10.5 8.8385L11.326 13.648L7 11.3761L2.674 13.648L3.5 8.8385L0 5.43408L4.837 4.72803L7 0.351929Z" fill="#F6C045"></path></svg>');function Br(e){var t=Ol();k(e,t)}var Dl=I('<div class="top svelte-1026zg0"><img class="poster svelte-1026zg0"></div>'),Rl=I("<div> </div>"),ql=I('<img alt="" class="svelte-1026zg0">'),Hl=I('<div class="content svelte-1026zg0" data-playpilot-link-injections-title=""><div class="header svelte-1026zg0"><!> <div class="heading svelte-1026zg0" id="title"> </div> <div class="info svelte-1026zg0"><div class="imdb svelte-1026zg0"><!> </div> <!> <div> </div> <div class="capitalize svelte-1026zg0"> </div> <!></div></div> <div class="main"><!> <!></div></div> <div class="background svelte-1026zg0"><!></div>',1);function Fr(e,t){ae(t,!0);const n=N(t,"small",3,!1),i=N(t,"compact",3,!1);let r=U(!1),a=U(!1),o=U(!1);var s=Hl(),l=ne(s),d=b(l),u=b(d);{var f=F=>{var V=Dl(),W=b(V);L(()=>ue(W,"src",Ft(t.title.standing_poster))),L(()=>{ue(W,"alt",`Movie poster for '${t.title.title??""}'`),se(W,"loaded",c(r))}),ce("load",W,()=>P(r,!0)),k(F,V)};q(u,F=>{i()||F(f)})}var _=E(u,2),m=b(_);Jt(_,(F,V)=>xe==null?void 0:xe(F,V),()=>2);var g=E(_,2),v=b(g),p=b(v);Br(p);var y=E(p),w=E(v,2);wl(w,{get genres(){return t.title.genres}});var S=E(w,2),j=b(S),x=E(S,2),T=b(x);L(()=>G(T,ke(`Type: ${t.title.type}`)));var H=E(x,2);{var M=F=>{var V=Rl(),W=b(V);L(()=>G(W,`${t.title.length??""} ${ke("Minutes")??""}`)),k(F,V)};q(H,F=>{!n()&&t.title.length&&F(M)})}var C=E(d,2),D=b(C);Cl(D,{get playlinks(){return t.title.providers},get title(){return t.title},list:!0});var A=E(D,2);{var B=F=>{Ll(F,{get text(){return t.title.description},get blurb(){return t.title.blurb}})};q(A,F=>{n()||F(B)})}var O=E(l,2),z=b(O);Er(z,()=>c(o),F=>{var V=ql();L(()=>ue(V,"src",Ft(c(o)?t.title.standing_poster:t.title.medium_poster))),L(()=>{se(V,"loaded",c(a)),se(V,"blur",c(o))}),ce("load",V,()=>P(a,!0)),ce("error",V,()=>P(o,!0)),k(F,V)}),L(()=>{se(l,"small",n()),se(l,"compact",i()),se(_,"truncate",n()),G(m,t.title.title),G(y,` ${t.title.imdb_score??""}`),G(j,t.title.year),se(O,"faded",i())}),k(e,s),oe()}function Bl(e,t){ae(t,!0),be(ye.TitleModalView,t.title);let n=!1;function i(){n||(be(ye.TitleModalScroll,t.title),n=!0)}Hr(e,{get onclose(){return t.onclose},onscroll:i,children:(r,a)=>{Fr(r,{get title(){return t.title}})},$$slots:{default:!0}}),oe()}var Fl=I('<div class="popover svelte-tb2xdq" tabindex="-1" aria-hidden="true"><div class="dialog svelte-tb2xdq" data-view-transition-old=""><!></div></div>');function Vl(e,t){ae(t,!0);let n=N(t,"maxHeight",15);wr("scope","popover");let i=U(null),r=U(!1);Je(async()=>{await Bn(),a(),await Bn(),o()});function a(){if(!c(i))return;const{top:f,right:_,bottom:m,height:g}=c(i).getBoundingClientRect(),v=s();P(r,X(f-v<0&&window.innerHeight-m>f+g));const p=window.innerWidth-_-v;_+v>window.innerWidth&&(c(i).style.left=`${p}px`)}function o(){if(!c(i))return;const{top:f,height:_}=c(i).getBoundingClientRect(),m=s(),g=c(r)?window.innerHeight-f-m:f+_-m;n(Math.min(g,window.innerHeight*.8))}function s(){return parseFloat(getComputedStyle(document.documentElement).fontSize)}var l=Fl(),d=b(l),u=b(d);Ct(u,()=>t.children),Qt(l,f=>P(i,f),()=>c(i)),L(()=>{se(l,"flip",c(r)),xn(l,"--max-height",n()?n()+"px":null)}),je(7,d,()=>En,()=>({duration:ui.current?0:100,y:10})),k(e,l),oe()}var Ul=I('<div class="title-popover svelte-d86q0q" data-playpilot-title-popover="" role="region" aria-labelledby="title"><!></div>');function zl(e,t){ae(t,!0);let n=U(0),i=U(null);be(ye.TitlePopoverView,t.title),Je(r);function r(){const s=t.event.target;if(!(s!=null&&s.getClientRects))return;const l=Array.from(s.getClientRects()),u=l.map(_=>_.x).map(_=>Math.abs(_-t.event.clientX)),f=l[u.indexOf(Math.min(...u))];c(i).style.top=f.top+window.scrollY+"px",c(i).style.left=f.left+window.scrollX+"px",c(i).style.height=f.height+"px"}var a=Ul(),o=b(a);Vl(o,{get maxHeight(){return c(n)},set maxHeight(s){P(n,X(s))},children:(s,l)=>{var d=K(()=>!!c(n)&&c(n)<250);Fr(s,{get title(){return t.title},small:!0,get compact(){return c(d)}})},$$slots:{default:!0}}),Qt(a,s=>P(i,s),()=>c(i)),k(e,a),oe()}var Wl=e=>e.stopPropagation(),Kl=(e,t,n,i)=>t(e,c(n).title_details,c(i)),Yl=I(' <span class="svelte-pfvkex"><button class="svelte-pfvkex"> </button></span>',1),Zl=(e,t,n,i)=>t(c(n).title_details,i()),Gl=I('<!> <a target="_blank"> </a>',1),Xl=I(" <!>.",1),Jl=I("<!> <br>",1),Ql=I(" <br>",1),$l=I('<span class="svelte-pfvkex"><!></span>'),es=I('<p class="svelte-pfvkex"></p>');function ts(e,t){ae(t,!0);const n=N(t,"onclickmodal",3,()=>null);function i(l,d){be(ye.AfterArticlePlaylinkClick,l,{playlink:d})}function r(l,d,u){be(ye.AfterArticleModalButtonClick,d),n()(l,u)}var a=Fe(),o=ne(a);{var s=l=>{var d=es();at(d,21,()=>t.linkInjections,bt,(u,f)=>{var _=$l();const m=K(()=>{const{key:w,title:S,title_details:j,after_article_style:x}=c(f);return{key:w,title:S,title_details:j,after_article_style:x}}),g=K(()=>{var w;return((w=c(m).title_details)==null?void 0:w.providers)||[]});var v=b(_);{var p=w=>{var S=Jl(),j=ne(S);{var x=H=>{var M=Yl(),C=ne(M);L(()=>G(C,`"${c(m).title??""}" ${ke("Is Available To Stream")??""} `));var D=E(C);D.__click=[Wl];var A=b(D);A.__click=[Kl,r,m,f];var B=b(A);L(()=>G(B,ke("View Streaming Options"))),k(H,M)},T=H=>{var M=Xl(),C=ne(M);L(()=>G(C,`"${c(m).title??""}" ${ke("Is Available To Stream On")??""} `));var D=E(C);at(D,17,()=>c(g),bt,(A,B,O)=>{let z=()=>c(B).name,F=()=>c(B).url;var V=Gl(),W=ne(V);{var J=de=>{var Ae=Be();L(()=>G(Ae,O===c(g).length-1?`, ${ke("And")}`:",")),k(de,Ae)};q(W,de=>{O&&de(J)})}var ee=E(W,2);ee.__click=[Zl,i,m,z];var re=b(ee);L(()=>{ue(ee,"href",F()),G(re,z())}),k(A,V)}),k(H,M)};q(j,H=>{c(m).after_article_style==="modal_button"?H(x):H(T,!1)})}k(w,S)},y=w=>{var S=Ql(),j=ne(S);L(()=>G(j,`"${c(m).title??""}" ${ke("Title Unavailable Suffix")??""} `)),k(w,S)};q(v,w=>{c(g).length?w(p):w(y,!1)})}L(()=>ue(_,"data-playpilot-injection-key",c(m).key)),k(u,_)}),k(l,d)};q(o,l=>{t.linkInjections.length&&l(s)})}k(e,a),oe()}fe(["click"]);function ns(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}function di(e){const t=document.createElement("div");return t.innerHTML=e,t.textContent||""}function Ni(e,t,n=[]){var a,o;const i=document.createTreeWalker(t);let r;for(;(r=i.nextNode())&&!((a=r.nodeValue)!=null&&a.includes(e)&&!n.includes(((o=r.parentNode)==null?void 0:o.nodeName)||"")););return r}function Li(e){const t=e.parentNode;return t?t.nodeName==="A"||!!t.closest("a"):!1}function is(e,t,n,i){const r=ns(t),a=di(t),o=e.slice(0,i),s=e.slice(i),l=/[-/\\^$*+?.()|[\]{}]/g,d=new RegExp(`${a.replace(l,"\\$&")}|${r.replace(l,"\\$&")}`),u=s.replace(d,n);return o+u}function rs(e,t,n,i){return e.substring(0,n)+t+e.substring(i)}function Te(e){return di(e).toLowerCase().replace(/\s+/g,"")}function Vr(e,t,n){const r=e.indexOf(t),a=Math.floor((n-t.length)/2);let o=Math.max(0,r-a),s=o+n;s>e.length&&(s=e.length,o=Math.max(0,s-n));let l=e.slice(o,s).trim();return o>0&&(l="…"+l),s<e.length&&(l+="…"),l}function as(e,t,n){const i=e.nodeType===Node.TEXT_NODE&&e.parentNode?e.parentElement:e;if(!i||!e.textContent)return{before:"",after:""};const r=i.innerText.indexOf(e.textContent),a=Oi(i.innerText.slice(0,t+r)),o=i.innerText.slice(n+r),s=Oi(Di(a,2)),l=Di(o,2);return{before:s,after:l}}function Oi(e){return e.split("").reverse().join("")}function Di(e,t=1){const n=e.match(/[^\s]+/g);return n?n.slice(0,t).join(" ").replace(/[.,!?;:]+$/u,""):""}function os(e,t){let n=0,i=0;for(;(i=e.indexOf(t,i))!==-1;)n++,i+=t.length;return n}function ls(e,t,n){const i=[];let r=0;for(;r<=e.length;){const a=t?e.indexOf(t,r):r;if(a===-1&&t)break;const o=t?a+t.length:a,s=n?e.indexOf(n,o):e.length;if(n&&s===-1)break;const l=e.slice(o,s);i.push({match:l,index:o}),r=n?s+n.length:e.length+1}return i}function ss(e,t,n,i){const a=ls(e,n,i).filter(({match:s})=>di(s).includes(t));return a.length?a.reduce((s,l)=>!s||l.match.length<s.match.length?l:s):null}function cs(e){var t,n;return{leadingSpaces:((t=e.match(/^\s*/))==null?void 0:t[0].length)||0,trailingSpaces:((n=e.match(/\s*$/))==null?void 0:n[0].length)||0}}function Ur(e){return e.ctrlKey||e.metaKey||e.button!==0}function us(e,t){if(!document.startViewTransition||!t){e();return}document.startViewTransition(()=>{const n=document.querySelector("[data-view-transition-old]");if(!n)return;const i=window.getComputedStyle(n).getPropertyValue("view-transition-name");n.style.viewTransitionName="none",e();const r=document.querySelector("[data-view-transition-new]");r&&(r.style.viewTransitionName=i)})}const xt="data-playpilot-injection-key",fn=`[${xt}]`;let vn=null,ut=null,Nt=null,Lt=null;function zr(e,t=""){const n=[],i=[e];for(;i.length>0;){const r=i.pop();if(n.includes(r)||t&&r.matches(t)||/^(A|BUTTON|SCRIPT|NOSCRIPT|STYLE|IFRAME|FIGCAPTION|TIME|H1)$/.test(r.tagName)||r.offsetWidth<=1)continue;const a=Array.from(r.childNodes).some(l=>{var d;return l.nodeType===Node.TEXT_NODE&&((d=l.nodeValue)==null?void 0:d.trim())!==""});if(a&&r.tagName==="LI"){const l=r.closest("ul, ol");l&&!n.includes(l)&&n.push(l);continue}const o=r.tagName==="P"&&!!r.textContent;if(a||o){n.push(r);continue}const s=Array.from(r.children);for(let l=s.length-1;l>=0;l--)i.push(s[l])}return n}function Vt(){var t;const e=(t=window.PlayPilotLinkInjections)==null?void 0:t.selector;if(e){const n=e.replace(/(:)/g,"\\$1"),i=document.querySelector(n);if(i)return i}return document.querySelector("article")||document.querySelector("main")||document.body}function ds(e,t={aiInjections:[],manualInjections:[]}){fi();const n=ys(t);if(!n)return[];const i=Te(e.map(l=>l.innerText).join(" ")),r=ws(n),a=r.filter(l=>i.includes(Te(l.sentence))),o={};for(const l of a){const d=e.findIndex(S=>Te(S.innerText).includes(Te(l.sentence))),u=e[d];if(!u)continue;const f=Ni(l.title,u,["A"]);if(!(f!=null&&f.nodeValue)||Li(f)){const S=Ni(l.title,u);if(S&&Li(S)){o[l.key]="Given text is already inside of a link.";continue}}const{injectionElement:_,linkElement:m}=fs(l),{phrase_before:g,phrase_after:v}=l;let p=-1,y=!1;if(os(Te(u.innerText),Te(l.title))===1&&(p=u.innerHTML.indexOf(l.title)),p===-1&&(g||v)){const S=[g,l.title,v].filter(Boolean).join(" ");if(p=u.innerHTML.indexOf(S),p===-1){const j=ss(u.innerHTML,l.title,g||"",v||"");if(j){const{leadingSpaces:x,trailingSpaces:T}=cs(j.match);m.innerHTML=j.match.trim();const H=j.index+x,M=j.index+j.match.length-T;u.innerHTML=rs(u.innerHTML,_.outerHTML,H,M),p=j.index,y=!0}}}if(p===-1&&(f!=null&&f.nodeValue)){const S=u.innerHTML.indexOf(f.nodeValue),j=u.innerHTML.indexOf(l.sentence);p=Math.max(S,j,0)}p!==-1&&(y||(u.innerHTML=is(u.innerHTML,l.title,_.outerHTML,p)))}_s(r),vs();const s=ks(n);return s.length&&gs(e,s),n.filter(l=>l.title_details).map((l,d)=>{const u=l.duplicate??(!l.manual&&bs(l,d,n)),f=document.querySelector(`[${xt}="${l.key}"]`),_=Tn(l)&&!l.inactive&&!l.after_article&&!f,m=!!e.find(v=>Te(v.innerText).includes(Te(l.sentence))),g=_?o[l.key]||(m?"The link failed to inject for unknown reasons.":"Given sentence was not found in the article."):"";return{...l,inactive:l.inactive??!1,duplicate:u,failed:_,failed_message:g}})}function fs(e){const t=document.createElement("span");t.dataset.playpilotInjectionKey=e.key;const n=document.createElement("a");return n.innerText=e.title,n.href=e.playpilot_url,n.target="_blank",n.rel="noopener nofollow noreferrer",t.insertAdjacentElement("beforeend",n),{injectionElement:t,linkElement:n}}function vs(){const e=Array.from(document.querySelectorAll(`${fn} a`)),t=["--playpilot-injection-text-color","--playpilot-injection-text-color-hover","--playpilot-injection-font-weight","--playpilot-injection-font-weight-headings","--playpilot-injection-text-decoration","--playpilot-injection-text-decoration-hover","--playpilot-injection-background-color","--playpilot-injection-background-color-hover"];e.forEach(n=>{t.forEach(i=>{getComputedStyle(n).getPropertyValue(i)&&(n.dataset.usedCssVariables=`${n.dataset.usedCssVariables||""} ${i}`)})})}function _s(e){window.addEventListener("click",n=>{if(Ur(n))return;const i=n.target;if(!(i!=null&&i.parentElement))return;const r=i.parentElement.getAttribute(xt);if(!r)return;const a=e.find(o=>r===o.key);a&&(n.preventDefault(),us(()=>{_n(!1),Wr(n,a)},!ui.current&&window.innerWidth>=600&&!window.matchMedia("(pointer: coarse)").matches))}),window.addEventListener("mousemove",n=>{if(!ut)return;const i=n.target;i.hasAttribute("data-playpilot-title-popover")||i.closest("[data-playpilot-title-popover]")||i.hasAttribute(xt)||i.closest(fn)||_n()}),Array.from(document.querySelectorAll(fn)).forEach(n=>{const i=n.dataset.playpilotInjectionKey,r=e.find(a=>i===a.key);r&&(n.addEventListener("mouseenter",a=>{ut||hs(a,r)}),n.addEventListener("mouseleave",()=>vn=null))})}function Wr(e,t){Ur(e)||Lt||(e.preventDefault(),Lt=Xt(Bl,{target:Jr(),props:{title:t.title_details,onclose:Kr}}))}function Kr(e=!0){Lt&&(bn(Lt,{outro:e}),Lt=null)}function hs(e,t){if(window.matchMedia("(pointer: coarse)").matches)return;ut&&_n();const n=e.currentTarget;vn=n,setTimeout(()=>{vn===n&&(ut=Xt(zl,{target:Jr(),props:{event:e,title:t.title_details}}))},100)}function _n(e=!0){ut&&(bn(ut,{outro:e}),vn=null,ut=null)}function gs(e,t){var o,s;if(Nt||!t.length)return;const n=document.createElement("div"),i=(o=window.PlayPilotLinkInjections)==null?void 0:o.after_article_selector,r=(i?document.querySelector(i):null)||e[e.length-1],a=((s=window.PlayPilotLinkInjections)==null?void 0:s.after_article_insert_position)||"afterend";n.dataset.playpilotAfterArticlePlaylinks="true",r.insertAdjacentElement(a,n),Nt=Xt(ts,{target:n,props:{linkInjections:t,onclickmodal:(l,d)=>Wr(l,d)}})}function ms(){var e;Nt&&(bn(Nt),(e=document.querySelector("[data-playpilot-after-article-playlinks]"))==null||e.remove(),Nt=null)}function fi(){document.querySelectorAll(fn).forEach(t=>ps(t.getAttribute(xt)||"")),ms(),Kr(!1),_n(!1)}function ps(e){var i;const t=document.querySelector(`[${xt}="${e}"]`);if(!t)return;const n=(i=t.querySelector("a"))==null?void 0:i.innerHTML;t.outerHTML=n||""}function ys({aiInjections:e,manualInjections:t}){return[...t.map(n=>({...n,manual:!0})),...e]}function Yr(e){return{aiInjections:e.filter(t=>!t.manual),manualInjections:e.filter(t=>t.manual)}}function Zr(e){return!e.inactive&&!e.removed&&!e.duplicate&&!!e.title_details&&Tn(e)}function Tn(e){return e.in_text||e.in_text===void 0?!0:!!e.after_article}function ws(e){return Gr(e).filter(t=>t.in_text!==!1&&Zr(t))}function ks(e){return Gr(e).filter(t=>t.after_article===!0&&Zr(t))}function Gr(e){return e.filter(t=>t.removed||t.inactive?!1:t.manual&&!t.removed&&!t.inactive?!0:!e.some(n=>n.manual&&(n.removed||n.inactive)&&Xr(n,t)))}function bs(e,t,n){return n.some((i,r)=>t!==r&&i.manual&&Xr(i,e))}function Xr(e,t){return e.title===t.title&&Te(e.sentence)===Te(t.sentence)}function Jr(){return document.querySelector("[data-playpilot-link-injections]")||document.body}function Qr(){const e=Vt();return{content_heading:xs(e),content_modified_time:Ss(e),content_published_time:Es(e)}}function xs(e){const t=e.querySelector("h1")||document.querySelector("h1");return(t==null?void 0:t.innerText.trim())||null}function Ss(e){const t=document.querySelector('meta[property*="modified_time"]')||document.querySelector('meta[name*="modified_time"]')||e.querySelector('[itemprop="dateModified"]')||document.querySelector('[itemprop="dateModified"]')||null,n=(t==null?void 0:t.getAttribute("content"))||(t==null?void 0:t.getAttribute("datetime"))||(t==null?void 0:t.innerText);return n?vi(n):null}function Es(e){const t=document.querySelector('meta[property*="published_time"]')||document.querySelector('meta[name*="published_time"]')||e.querySelector('[itemprop="datePublished"]')||document.querySelector('[itemprop="datePublished"]')||e.querySelector("time")||document.querySelector("time")||e.querySelector("[datetime]")||document.querySelector("[datetime]")||null,n=(t==null?void 0:t.getAttribute("content"))||(t==null?void 0:t.getAttribute("datetime"))||(t==null?void 0:t.innerText);return n?vi(n):null}function vi(e){try{return new Date(e).toISOString()}catch{return null}}let On=null;async function $t(e,{url:t=ai(),hash:n=il(e||""),params:i={}}={}){const r=new Headers({"Content-Type":"application/json"}),a=In(),o=Or()?await Lr():!1,s=Rr();if(!a)throw new Error("No token was provided");i.run_ai,i.hash=n,i.page_text=e,i.metadata=Qr();const l=await fetch(Sn+`/external-pages/?api-token=${a}&include_title_details=true${o?"&editorial_mode_enabled=true":""}&language=${s}`,{headers:r,method:"POST",body:JSON.stringify({url:t,...i})});if(!l.ok)throw l;return await l.json()}async function Ri(e,{requireCompletedResult:t=!1,runAiWhenRelevant:n=!1,pollInterval:i=3e3,maxTries:r=600,onpoll:a=()=>null}={}){let o=0;On&&clearTimeout(On);const s=async(l,d)=>{let u;try{if(u=await $t(e),n&&(u=await Ts(e,u)),t&&u.ai_enabled&&u.ai_running)throw new Error;u.manual_injections=qi(u.manual_injections||[]),u.ai_injections=qi(u.ai_injections||[]),l(u);return}catch{if(o++,o>=r){r>1&&console.error("Max poll limit exceeded. Please return later."),l();return}u&&a(u),On=setTimeout(()=>s(l),i)}};return new Promise(s)}async function Ts(e,t){if(!e||!t.ai_enabled||t.ai_running)return t;const n=Qr().content_modified_time,i=t.content_modified_time?vi(t.content_modified_time):null;return!n||i===n?t:await $t(e,{params:{run_ai:!0}})}async function Is(e,t){var o;const n=(o=window.PlayPilotLinkInjections)==null?void 0:o.selector,r=e.filter(s=>s.manual).map(s=>({sid:s.sid,title:s.title,sentence:s.sentence,phrase_before:s.phrase_before,phrase_after:s.phrase_after,playpilot_url:s.playpilot_url,after_article:!!s.after_article,after_article_style:s.after_article_style||null,in_text:s.in_text??!0,inactive:!!s.inactive,removed:!!s.removed}));if(!await $t(t,{params:{private_token:li(),manual_injections:r,content_text_selector:n}}))throw new Error("saveLinkInjections response was faulty");return e}async function As(){const e=new Headers({"Content-Type":"application/json"}),t=In();if(!t)throw new Error("No token was provided");const n=await fetch(Sn+`/domains/config?api-token=${t}`,{headers:e});if(!n.ok)throw n;try{return await n.json()||null}catch{return null}}function qi(e){return e.map(t=>({...t,key:$r(t.sid)}))}function $r(e){return e+"-"+Dr()}function In(){var e;return(e=window.PlayPilotLinkInjections)==null?void 0:e.token}function Cs(){const e=navigator.userAgent.toLowerCase();return/bot|crawl|spider|google|baidu|bing|msn|teoma|slurp|yandex|facebookexternalhit|facebot/i.test(e)}var Ps=Ne('<svg width="8" height="4" viewBox="0 0 8 4" fill="none" class="svelte-by11ix"><path d="M1 0.5L4 3.5L7 0.5" stroke="currentColor" stroke-width="0.9975" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function js(e,t){const n=N(t,"expanded",3,!1);var i=Ps();L(()=>se(i,"expanded",n())),k(e,i)}var Ms=Ne('<svg width="24px" height="24px" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="17" r="1" fill="var(--playpilot-warning)"></circle><path d="M12 10L12 14" stroke="var(--playpilot-warning)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><path d="M3.44722 18.1056L10.2111 4.57771C10.9482 3.10361 13.0518 3.10362 13.7889 4.57771L20.5528 18.1056C21.2177 19.4354 20.2507 21 18.7639 21H5.23607C3.7493 21 2.78231 19.4354 3.44722 18.1056Z" stroke="var(--playpilot-warning)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function Ns(e){var t=Ms();k(e,t)}function Ls(e,t,n){t(!t()),n()(t())}var Os=I('<button class="switch svelte-91s87b"><div class="label svelte-91s87b"><!></div> <div class="track svelte-91s87b"><div class="knob svelte-91s87b"></div></div></button>');function Wn(e,t){ae(t,!0);let n=N(t,"active",15),i=N(t,"fullwidth",3,!1),r=N(t,"label",3,""),a=N(t,"onclick",3,()=>null);var o=Os();o.__click=[Ls,n,a];var s=b(o),l=b(s);Ct(l,()=>t.children),L(()=>{ue(o,"aria-label",`Toggle ${r()??""} ${(n()?"off":"on")??""}`),se(o,"active",n()),se(o,"fullwidth",i())}),k(e,o),oe()}fe(["click"]);var Ds=I('<input type="text" autocomplete="off" class="svelte-1vrer3i">');function _i(e,t){let n=N(t,"value",15),i=N(t,"label",3,""),r=N(t,"name",3,""),a=N(t,"readonly",3,!1),o=N(t,"oninput",3,()=>null);var s=Ds();s.__input=function(...l){var d;(d=o())==null||d.apply(this,l)},L(()=>{ue(s,"name",r()),ue(s,"aria-label",i()),ue(s,"placeholder",i()),s.readOnly=a()}),Ho(s,n),k(e,s)}fe(["input"]);var Rs=Ne('<path d="M13.5833 13.6667L4.41667 13.6667M5.5 1.5H12.5C13.9001 1.5 14.6002 1.5 15.135 1.77248C15.6054 2.01217 15.9878 2.39462 16.2275 2.86502C16.5 3.3998 16.5 4.09987 16.5 5.5V12.5C16.5 13.9001 16.5 14.6002 16.2275 15.135C15.9878 15.6054 15.6054 15.9878 15.135 16.2275C14.6002 16.5 13.9001 16.5 12.5 16.5H5.5C4.09987 16.5 3.3998 16.5 2.86502 16.2275C2.39462 15.9878 2.01217 15.6054 1.77248 15.135C1.5 14.6002 1.5 13.9001 1.5 12.5V5.5C1.5 4.09987 1.5 3.3998 1.77248 2.86502C2.01217 2.39462 2.39462 2.01217 2.86502 1.77248C3.3998 1.5 4.09987 1.5 5.5 1.5Z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"></path>'),qs=Ne('<path d="M13.5833 8.58342H4.41667M5.5 1.50009H12.5C13.9001 1.50009 14.6002 1.50009 15.135 1.77258C15.6054 2.01226 15.9878 2.39471 16.2275 2.86512C16.5 3.39989 16.5 4.09996 16.5 5.50009V12.5001C16.5 13.9002 16.5 14.6003 16.2275 15.1351C15.9878 15.6055 15.6054 15.9879 15.135 16.2276C14.6002 16.5001 13.9001 16.5001 12.5 16.5001H5.5C4.09987 16.5001 3.3998 16.5001 2.86502 16.2276C2.39462 15.9879 2.01217 15.6055 1.77248 15.1351C1.5 14.6003 1.5 13.9002 1.5 12.5001V5.50009C1.5 4.09996 1.5 3.39989 1.77248 2.86512C2.01217 2.39471 2.39462 2.01226 2.86502 1.77258C3.3998 1.50009 4.09987 1.50009 5.5 1.50009Z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"></path>'),Hs=Ne('<svg width="18" height="18" viewBox="0 0 18 18" fill="none"><!></svg>');function Hi(e,t){const n=N(t,"align",3,"bottom");var i=Hs(),r=b(i);{var a=s=>{var l=Rs();k(s,l)},o=s=>{var l=Fe(),d=ne(l);{var u=f=>{var _=qs();k(f,_)};q(d,f=>{n()==="center"&&f(u)},!0)}k(s,l)};q(r,s=>{n()==="bottom"?s(a):s(o,!1)})}k(e,i)}var Bs=I("<div><!></div>");function _t(e,t){ae(t,!0);const n=N(t,"type",3,"error"),i=N(t,"fixed",3,!1);var r=Bs(),a=b(r);Ct(a,()=>t.children),L(()=>{No(r,`alert ${n()??""} svelte-df5n87`),se(r,"fixed",i())}),k(e,r),oe()}var Fs=I("<!> In-text Playlink",1),Vs=I("<!> Bottom Playlink",1),Us=I('<div class="alert svelte-1shw34x"><!></div>'),zs=(e,t)=>t().after_article_style="playlinks",Ws=(e,t)=>t().after_article_style="modal_button",Ks=I('<div><div class="label svelte-1shw34x">Bottom playlinks style</div> <div class="group svelte-1shw34x" role="listbox" tabindex="0" aria-label="Playlink type"><button role="option" id="playlinks-in-text" class="svelte-1shw34x">Playlinks sentence</button> <button role="option" id="playlinks-after-article" class="svelte-1shw34x">Modal button</button> <div class="active-marker svelte-1shw34x"></div></div></div>'),Ys=I('<div class="switches svelte-1shw34x"><!> <!></div> <!> <!>',1);function Zs(e,t){ae(t,!0);const n=N(t,"linkInjection",7),i=K(()=>n().after_article_style==="modal_button");var r=Ys(),a=ne(r),o=b(a),s=K(()=>n().in_text??!0);Wn(o,{fullwidth:!0,get active(){return c(s)},onclick:g=>{n().in_text=g,n().manual=!0},label:"In-text Playlink",children:(g,v)=>{var p=Fs(),y=ne(p);Hi(y,{align:"center"}),k(g,p)},$$slots:{default:!0}});var l=E(o,2),d=K(()=>n().after_article??!1);Wn(l,{fullwidth:!0,get active(){return c(d)},onclick:g=>{n().after_article=g,n().manual=!0},label:"Bottom Playlink",children:(g,v)=>{var p=Vs(),y=ne(p);Hi(y,{align:"bottom"}),k(g,p)},$$slots:{default:!0}});var u=E(a,2);{var f=g=>{var v=Us(),p=b(v);_t(p,{type:"warning",children:(y,w)=>{var S=Be("At least one layout option must be selected for the playlink to be visible.");k(y,S)},$$slots:{default:!0}}),je(3,v,()=>Bt,()=>({duration:200})),k(g,v)};q(u,g=>{Tn(n())||g(f)})}var _=E(u,2);{var m=g=>{var v=Ks(),p=E(b(v),2),y=b(p);y.__click=[zs,n];var w=E(y,2);w.__click=[Ws,n];var S=E(w,2);L(()=>{ue(p,"aria-activedescendant",`playlinks-${(c(i)?"after-article":"in-text")??""}`),ue(y,"aria-selected",!c(i)||null),se(y,"active",!c(i)),ue(w,"aria-selected",c(i)||null),se(w,"active",c(i)),se(S,"right",c(i))}),je(3,v,()=>Bt,()=>({duration:100})),k(g,v)};q(_,g=>{n().after_article&&g(m)})}k(e,r),oe()}fe(["click"]);var Gs=Ne('<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.99984 10.8333C10.4601 10.8333 10.8332 10.4602 10.8332 10C10.8332 9.53977 10.4601 9.16668 9.99984 9.16668C9.5396 9.16668 9.1665 9.53977 9.1665 10C9.1665 10.4602 9.5396 10.8333 9.99984 10.8333Z" stroke="currentColor" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path><path d="M9.99984 5.00001C10.4601 5.00001 10.8332 4.62691 10.8332 4.16668C10.8332 3.70644 10.4601 3.33334 9.99984 3.33334C9.5396 3.33334 9.1665 3.70644 9.1665 4.16668C9.1665 4.62691 9.5396 5.00001 9.99984 5.00001Z" stroke="currentColor" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path><path d="M9.99984 16.6667C10.4601 16.6667 10.8332 16.2936 10.8332 15.8333C10.8332 15.3731 10.4601 15 9.99984 15C9.5396 15 9.1665 15.3731 9.1665 15.8333C9.1665 16.2936 9.5396 16.6667 9.99984 16.6667Z" stroke="currentColor" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function Xs(e){var t=Gs();k(e,t)}var Js=(e,t)=>P(t,!c(t)),Qs=I('<div class="content svelte-zpsd2z"><!></div>'),$s=I('<div class="context-menu svelte-zpsd2z"><button class="svelte-zpsd2z"><!></button> <!></div>');function ec(e,t){ae(t,!0);let n=U(!1),i=U(null);function r(u){var _;const f=u.target;f===c(i)||(_=c(i))!=null&&_.contains(f)||P(n,!1)}var a=$s();ce("click",pe,r);var o=b(a);o.__click=[Js,n];var s=b(o);Xs(s),Qt(o,u=>P(i,u),()=>c(i));var l=E(o,2);{var d=u=>{var f=Qs(),_=b(f);Ct(_,()=>t.children),je(1,f,()=>En,()=>({duration:150,y:5})),k(u,f)};q(l,u=>{c(n)&&u(d)})}L(()=>{ue(o,"aria-label",t.ariaLabel),ue(o,"aria-expanded",c(n))}),k(e,a),oe()}fe(["click"]);function tc(e,t,n,i){var r,a;c(t)&&(be(ye.ManualReport,n.linkInjection.title_details,{report_reason:c(t),sid:n.linkInjection.sid,title:n.linkInjection.title,sentence:n.linkInjection.sentence,failed:(r=n.linkInjection.failed)==null?void 0:r.toString(),failed_message:n.linkInjection.failed_message,manual:(a=n.linkInjection.manual)==null?void 0:a.toString()}),P(i,!0),setTimeout(n.onclose,3e3))}var nc=(e,t,n)=>P(t,X(n())),ic=I('<option class="svelte-o5qkco"> </option>'),rc=I('<div class="sent svelte-o5qkco">Report has been sent, thank you! Closing window...</div>'),ac=I('<button class="submit svelte-o5qkco">Send report</button>'),oc=I('<div class="form svelte-o5qkco"><div class="heading svelte-o5qkco">Report issue</div> <div class="info svelte-o5qkco"><div><strong class="svelte-o5qkco">Title</strong> </div> <div><strong class="svelte-o5qkco">Sentence</strong> </div></div> <label for="reason">What would you like to report?</label> <select id="reason" name="reason" class="svelte-o5qkco"><option class="svelte-o5qkco">Select an issue...</option><!></select> <div><!></div></div>');function lc(e,t){ae(t,!0);const n=[{value:"failed_injection",label:"The link failed to appear on the page."},{value:"layout_issue",label:"The link is breaking the layout or formatting of my page."},{value:"wrong_content",label:"The link points to the wrong movie or show."},{value:"inappropriate_title",label:"The link points to an inappropriate movie or show."},{value:"broken_link",label:"The link is broken or leads to an error page."},{value:"other",label:"My issue is not listed, but please have a look regardless."}];let i=U(""),r=U(!1);Hr(e,{get onclose(){return t.onclose},children:(a,o)=>{var s=oc(),l=b(s);Jt(l,(x,T)=>xe==null?void 0:xe(x,T),()=>2);var d=E(l,2),u=b(d),f=E(b(u)),_=E(u,2),m=E(b(_));L(()=>G(m,`:
8
+ `}}Ta();var ll=Ne('<svg width="16" height="16" viewBox="0 0 16 16" fill="none"><path d="M14 2L2 14M2 2L14 14" stroke="currentColor" stroke-width="1.33" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function qr(e){var t=ll();k(e,t)}function ci(e,t){ae(t,!0);const n=N(t,"size",3,"margin(2)"),i=N(t,"onclick",3,()=>null),r=Wo(t,["$$slots","$$events","$$legacy","children","size","onclick"]);var a=Fe(),o=ne(a);Ao(o,()=>t.href?"a":"button",!1,(s,l)=>{let d;L(()=>{d=Mo(s,d,{role:t.href?"link":"button",onclick:i(),class:"button",...r},"svelte-1qqv88o",s.namespaceURI===Gi,s.nodeName.includes("-")),xn(s,"--size",n())});var u=Fe(),f=ne(u);Ct(f,()=>t.children??st),k(l,u)}),k(e,a),oe()}function sl(e){P(e,e.v+1)}function cl(e){let t=0,n=Ee(0),i;return()=>{Ya()&&(c(n),yn(()=>(t===0&&(i=Ke(()=>e(()=>sl(n)))),t+=1,()=>{Bn().then(()=>{t-=1,t===0&&(i==null||i(),i=void 0)})})))}}var Ut,zt;class ul{constructor(t,n){Pn(this,Ut);Pn(this,zt);jn(this,Ut,t),jn(this,zt,cl(n))}get current(){return Cn(this,zt).call(this),Cn(this,Ut).call(this)}}Ut=new WeakMap,zt=new WeakMap;const dl=/\(.+\)/;class fl extends ul{constructor(t,n){let i=dl.test(t)?t:`(${t})`;const r=window.matchMedia(i);super(()=>r.matches,a=>wo(r,"change",a))}}const ui=new fl("(prefers-reduced-motion: reduce)");var vl=(e,t)=>t()(),_l=I('<div class="modal svelte-aqwna4"><div class="dialog svelte-aqwna4" role="dialog" aria-labelledby="title" data-view-transition-new=""><div class="close svelte-aqwna4"><!></div> <!></div> <div class="backdrop svelte-aqwna4"></div></div>');function Hr(e,t){ae(t,!0);const n=N(t,"onclose",3,()=>null),i=N(t,"onscroll",3,()=>null);wr("scope","modal"),Je(()=>{const f=document.body.style.overflowY;return document.body.style.overflowY="hidden",()=>document.body.style.overflowY=f||""});function r(f){return ui.current?Ht(f,{duration:0}):window.innerWidth<600?En(f,{duration:250,y:window.innerHeight}):ol(f,{duration:150,start:.85})}var a=_l();ce("keydown",pe,({key:f})=>{f==="Escape"&&n()()});var o=b(a),s=b(o),l=b(s);ci(l,{onclick:()=>n()(),children:(f,_)=>{qr(f)},$$slots:{default:!0}});var d=E(s,2);Ct(d,()=>t.children);var u=E(o,2);u.__click=[vl,n],ce("scroll",o,function(...f){var _;(_=i())==null||_.apply(this,f)}),je(7,o,()=>r),je(7,a,()=>Ht,()=>({duration:150})),k(e,a),oe()}fe(["click"]);const hl=[{slug:"100",name:"All",categories:{movie:100,series:100,documentary:100,kids:100,cinema:100,podcasts:100}},{slug:"999",name:"Unscripted",categories:{},media_format:"video"},{slug:"900",name:"Independent",categories:{},media_format:"video"},{slug:"113",name:"Game Show",categories:{series:36,kids:28},media_format:"video"},{slug:"112",name:"Film Noir",categories:{movie:37},media_format:"video"},{slug:"212",name:"Entertainment",categories:{kids:80,series:42,movie:42},media_format:"video"},{slug:"120",name:"News",categories:{series:26,documentary:36,kids:38},media_format:"video"},{slug:"208",name:"Short",categories:{movie:21,documentary:30,kids:36},media_format:"video"},{slug:"902",name:"Bollywood",categories:{},media_format:"video"},{slug:"240",name:"Concert",categories:{movie:45},media_format:"video"},{slug:"901",name:"Arthouse",categories:{},media_format:"video"},{slug:"903",name:"Alternate Version",categories:{},media_format:"video"},{slug:"121",name:"Reality TV",categories:{series:24},media_format:"video"},{slug:"202",name:"Culture",categories:{kids:40,documentary:84,series:44},media_format:"video"},{slug:"107",name:"Drama",categories:{series:82,movie:82,cinema:88,documentary:44},media_format:"video"},{slug:"105",name:"Crime",categories:{series:84,documentary:86,cinema:64,movie:84},media_format:"video"},{slug:"128",name:"Western",categories:{movie:12,series:12,documentary:24},media_format:"video"},{slug:"127",name:"Thriller",categories:{series:70,documentary:28,cinema:80,movie:70},media_format:"video"},{slug:"102",name:"Animation",categories:{series:50,cinema:50,kids:90,documentary:48,movie:50},media_format:"video"},{slug:"119",name:"Mystery",categories:{movie:76,cinema:70,kids:26,documentary:38,series:76},media_format:"video"},{slug:"227",name:"Science",categories:{series:22,kids:46,documentary:74},media_format:"video"},{slug:"108",name:"Nature",categories:{kids:48,documentary:76,series:28},media_format:"video"},{slug:"116",name:"War",categories:{movie:14,documentary:68,series:14,cinema:66},media_format:"video"},{slug:"123",name:"Sci-Fi",categories:{series:72,movie:72,cinema:68,kids:70,documentary:32},media_format:"video"},{slug:"106",name:"Documentary",categories:{kids:50},media_format:"video"},{slug:"232",name:"Stand-up",categories:{movie:18,series:18},media_format:"video"},{slug:"126",name:"Talk Show",categories:{kids:34,series:16},media_format:"video"},{slug:"111",name:"Fantasy",categories:{kids:78,cinema:74,documentary:42,movie:38,series:38},media_format:"video"},{slug:"114",name:"History",categories:{movie:35,kids:44,cinema:10,series:80,documentary:90},media_format:"video"},{slug:"109",name:"Adventure",categories:{kids:88,cinema:86,documentary:82,series:88,movie:88},media_format:"video"},{slug:"101",name:"Action",categories:{documentary:50,kids:86,series:90,cinema:90,movie:90},media_format:"video"},{slug:"124",name:"Horror",categories:{cinema:76,documentary:40,series:78,movie:80},media_format:"video"},{slug:"115",name:"Comedy",categories:{cinema:84,documentary:46,series:86,kids:82,movie:86},media_format:"video"},{slug:"104",name:"Biography",categories:{series:46,documentary:88,cinema:10,movie:46},media_format:"video"},{slug:"118",name:"Music",categories:{kids:72,cinema:9,documentary:78,movie:32,series:32},media_format:"video"},{slug:"125",name:"Sport",categories:{cinema:7,kids:68,series:20,documentary:70,movie:20},media_format:"video"},{slug:"122",name:"Romance",categories:{documentary:34,cinema:78,movie:74,series:74},media_format:"video"},{slug:"103",name:"Kids",categories:{kids:76},media_format:"video"},{slug:"222",name:"Lifestyle",categories:{documentary:80,kids:74,series:34},media_format:"video"},{slug:"117",name:"Musical",categories:{kids:30,movie:78,cinema:8,series:30},media_format:"video"},{slug:"129",name:"Anime",categories:{cinema:5,movie:48,kids:84,series:48},media_format:"video"},{slug:"110",name:"Family",categories:{series:40,cinema:40,movie:40},media_format:"video"}];var gl=I('<div class="genre svelte-1ebula3"> </div>'),ml=(e,t)=>P(t,!0),pl=I('<button class="genre expand svelte-1ebula3"> </button>'),yl=I("<!> <!>",1);function wl(e,t){ae(t,!0);let n=U(!1);const i=K(()=>c(n)?t.genres:[t.genres[0]]);var r=yl(),a=ne(r);at(a,17,()=>c(i),bt,(l,d)=>{var u=Fe();const f=K(()=>{var g;return(g=hl.find(v=>v.slug===c(d)))==null?void 0:g.name});var _=ne(u);{var m=g=>{var v=gl(),p=b(v);L(()=>G(p,ke(c(f)))),k(g,v)};q(_,g=>{c(f)&&g(m)})}k(l,u)});var o=E(a,2);{var s=l=>{var d=pl();d.__click=[ml,n];var u=b(d);L(()=>G(u,`+${t.genres.length-1}`)),k(l,d)};q(o,l=>{!c(n)&&t.genres.length>1&&l(s)})}k(e,r),oe()}fe(["click"]);function kl(e){let t=[];for(const n of e){let i=n;const r=t.find(s=>s.name===i.name),a=r==null?void 0:r.extra_info.category,o=i.extra_info.category;(a==="RENT"&&o==="BUY"||a==="BUY"&&o==="RENT")&&(t=t.filter(s=>s.name!==i.name),i={...i,extra_info:{...i.extra_info,category:"TVOD"}}),t.push(i)}return t}function xe(e,t=1){e.role="heading",e.ariaLevel=t.toString()}var bl=Ne('<svg width="6" height="12" viewBox="0 0 6 12" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M0 11L5 6L0 1" stroke="currentColor" stroke-width="1.4" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function xl(e){var t=bl();k(e,t)}function Ft(e){return e?e.replace("/src/img",""):null}var Sl=(e,t,n)=>t(n()),El=I('<div class="arrow svelte-g63n1y"><!></div>'),Tl=I('<a target="_blank" class="playlink svelte-g63n1y" rel="sponsored"><img alt="" height="32" width="32" class="svelte-g63n1y"> <div><span class="name svelte-g63n1y"> </span> <div class="category svelte-g63n1y"> </div></div> <!></a>'),Il=I('<div class="playlink empty svelte-g63n1y"> </div>'),Al=I('<div class="heading svelte-g63n1y"> </div> <div class="playlinks svelte-g63n1y"><!> <!></div>',1);function Cl(e,t){ae(t,!0);const n=N(t,"list",3,!1),i=lo("scope")==="modal",r=K(()=>t.playlinks.filter(v=>!!v.logo_url)),a=K(()=>kl(c(r))),o={SVOD:ke("Stream"),BUY:ke("Buy"),RENT:ke("Rent"),TVOD:ke("Rent Or Buy")};function s(v){be(i?ye.TitleModalPlaylinkClick:ye.TitlePopoverPlaylinkClick,t.title,{playlink:v})}var l=Al(),d=ne(l),u=b(d);L(()=>G(u,ke("Where To Stream Online"))),Jt(d,(v,p)=>xe==null?void 0:xe(v,p),()=>3);var f=E(d,2),_=b(f);at(_,17,()=>c(a),bt,(v,p)=>{let y=()=>c(p).name,w=()=>c(p).url,S=()=>c(p).logo_url,j=()=>c(p).highlighted,x=()=>c(p).cta_text,T=()=>c(p).extra_info.category;var H=Tl();H.__click=[Sl,s,y];var M=b(H);L(()=>ue(M,"src",Ft(S())));var C=E(M,2),D=b(C),A=b(D),B=E(D,2),O=b(B);L(()=>G(O,x()||o[T()]||ke("Stream")));var z=E(C,2);{var F=V=>{var W=El(),J=b(W);xl(J),k(V,W)};q(z,V=>{n()&&V(F)})}L(()=>{ue(H,"href",w()),ue(H,"data-playlink",y()),se(H,"highlighted",j()&&x()),G(A,y())}),k(v,H)});var m=E(_,2);{var g=v=>{var p=Il(),y=b(p);L(()=>G(y,ke("Title Unavailable"))),k(v,p)};q(m,v=>{t.playlinks.length||v(g)})}L(()=>se(f,"list",n())),k(e,l),oe()}fe(["click"]);var Pl=(e,t)=>P(t,!0),jl=I('<button class="show-more svelte-1u3je71">Show more</button>'),Ml=I('<div class="paragraph svelte-1u3je71" role="paragraph"> </div>'),Nl=I('<div><span class="paragraph svelte-1u3je71" role="paragraph"> <!> <!></span> <!></div>');function Ll(e,t){ae(t,!0);const n=N(t,"blurb",3,""),i=N(t,"limit",3,200);let r=U(!1);const a=K(()=>t.text.slice(0,i()));var o=Nl(),s=b(o),l=b(s),d=E(l);{var u=v=>{var p=Be("...");k(v,p)};q(d,v=>{!c(r)&&t.text.length>i()&&v(u)})}var f=E(d,2);{var _=v=>{var p=jl();p.__click=[Pl,r],k(v,p)};q(f,v=>{!c(r)&&(t.text.length>i()||n())&&v(_)})}var m=E(s,2);{var g=v=>{var p=Ml(),y=b(p);L(()=>G(y,n())),k(v,p)};q(m,v=>{c(r)&&v(g)})}L(()=>G(l,c(r)?t.text:c(a))),k(e,o),oe()}fe(["click"]);var Ol=Ne('<svg width="14" height="14" viewBox="0 0 14 14" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M7 0.351929L9.163 4.72803L14 5.43408L10.5 8.8385L11.326 13.648L7 11.3761L2.674 13.648L3.5 8.8385L0 5.43408L4.837 4.72803L7 0.351929Z" fill="#F6C045"></path></svg>');function Br(e){var t=Ol();k(e,t)}var Dl=I('<div class="top svelte-1026zg0"><img class="poster svelte-1026zg0"></div>'),Rl=I("<div> </div>"),ql=I('<img alt="" class="svelte-1026zg0">'),Hl=I('<div class="content svelte-1026zg0" data-playpilot-link-injections-title=""><div class="header svelte-1026zg0"><!> <div class="heading svelte-1026zg0" id="title"> </div> <div class="info svelte-1026zg0"><div class="imdb svelte-1026zg0"><!> </div> <!> <div> </div> <div class="capitalize svelte-1026zg0"> </div> <!></div></div> <div class="main"><!> <!></div></div> <div class="background svelte-1026zg0"><!></div>',1);function Fr(e,t){ae(t,!0);const n=N(t,"small",3,!1),i=N(t,"compact",3,!1);let r=U(!1),a=U(!1),o=U(!1);var s=Hl(),l=ne(s),d=b(l),u=b(d);{var f=F=>{var V=Dl(),W=b(V);L(()=>ue(W,"src",Ft(t.title.standing_poster))),L(()=>{ue(W,"alt",`Movie poster for '${t.title.title??""}'`),se(W,"loaded",c(r))}),ce("load",W,()=>P(r,!0)),k(F,V)};q(u,F=>{i()||F(f)})}var _=E(u,2),m=b(_);Jt(_,(F,V)=>xe==null?void 0:xe(F,V),()=>2);var g=E(_,2),v=b(g),p=b(v);Br(p);var y=E(p),w=E(v,2);wl(w,{get genres(){return t.title.genres}});var S=E(w,2),j=b(S),x=E(S,2),T=b(x);L(()=>G(T,ke(`Type: ${t.title.type}`)));var H=E(x,2);{var M=F=>{var V=Rl(),W=b(V);L(()=>G(W,`${t.title.length??""} ${ke("Minutes")??""}`)),k(F,V)};q(H,F=>{!n()&&t.title.length&&F(M)})}var C=E(d,2),D=b(C);Cl(D,{get playlinks(){return t.title.providers},get title(){return t.title},list:!0});var A=E(D,2);{var B=F=>{Ll(F,{get text(){return t.title.description},get blurb(){return t.title.blurb}})};q(A,F=>{n()||F(B)})}var O=E(l,2),z=b(O);Er(z,()=>c(o),F=>{var V=ql();L(()=>ue(V,"src",Ft(c(o)?t.title.standing_poster:t.title.medium_poster))),L(()=>{se(V,"loaded",c(a)),se(V,"blur",c(o))}),ce("load",V,()=>P(a,!0)),ce("error",V,()=>P(o,!0)),k(F,V)}),L(()=>{se(l,"small",n()),se(l,"compact",i()),se(_,"truncate",n()),G(m,t.title.title),G(y,` ${t.title.imdb_score??""}`),G(j,t.title.year),se(O,"faded",i())}),k(e,s),oe()}function Bl(e,t){ae(t,!0),be(ye.TitleModalView,t.title);let n=!1;function i(){n||(be(ye.TitleModalScroll,t.title),n=!0)}Hr(e,{get onclose(){return t.onclose},onscroll:i,children:(r,a)=>{Fr(r,{get title(){return t.title}})},$$slots:{default:!0}}),oe()}var Fl=I('<div class="popover svelte-tb2xdq" tabindex="-1" aria-hidden="true"><div class="dialog svelte-tb2xdq" data-view-transition-old=""><!></div></div>');function Vl(e,t){ae(t,!0);let n=N(t,"maxHeight",15);wr("scope","popover");let i=U(null),r=U(!1);Je(async()=>{await Bn(),a(),await Bn(),o()});function a(){if(!c(i))return;const{top:f,right:_,bottom:m,height:g}=c(i).getBoundingClientRect(),v=s();P(r,X(f-v<0&&window.innerHeight-m>f+g));const p=window.innerWidth-_-v;_+v>window.innerWidth&&(c(i).style.left=`${p}px`)}function o(){if(!c(i))return;const{top:f,height:_}=c(i).getBoundingClientRect(),m=s(),g=c(r)?window.innerHeight-f-m:f+_-m;n(Math.min(g,window.innerHeight*.8))}function s(){return parseFloat(getComputedStyle(document.documentElement).fontSize)}var l=Fl(),d=b(l),u=b(d);Ct(u,()=>t.children),Qt(l,f=>P(i,f),()=>c(i)),L(()=>{se(l,"flip",c(r)),xn(l,"--max-height",n()?n()+"px":null)}),je(7,d,()=>En,()=>({duration:ui.current?0:100,y:10})),k(e,l),oe()}var Ul=I('<div class="title-popover svelte-d86q0q" data-playpilot-title-popover="" role="region" aria-labelledby="title"><!></div>');function zl(e,t){ae(t,!0);let n=U(0),i=U(null);be(ye.TitlePopoverView,t.title),Je(r);function r(){const s=t.event.target;if(!(s!=null&&s.getClientRects))return;const l=Array.from(s.getClientRects()),u=l.map(_=>_.x).map(_=>Math.abs(_-t.event.clientX)),f=l[u.indexOf(Math.min(...u))];c(i).style.top=f.top+window.scrollY+"px",c(i).style.left=f.left+window.scrollX+"px",c(i).style.height=f.height+"px"}var a=Ul(),o=b(a);Vl(o,{get maxHeight(){return c(n)},set maxHeight(s){P(n,X(s))},children:(s,l)=>{var d=K(()=>!!c(n)&&c(n)<250);Fr(s,{get title(){return t.title},small:!0,get compact(){return c(d)}})},$$slots:{default:!0}}),Qt(a,s=>P(i,s),()=>c(i)),k(e,a),oe()}var Wl=e=>e.stopPropagation(),Kl=(e,t,n,i)=>t(e,c(n).title_details,c(i)),Yl=I(' <span class="svelte-pfvkex"><button class="svelte-pfvkex"> </button></span>',1),Zl=(e,t,n,i)=>t(c(n).title_details,i()),Gl=I('<!> <a target="_blank"> </a>',1),Xl=I(" <!>.",1),Jl=I("<!> <br>",1),Ql=I(" <br>",1),$l=I('<span class="svelte-pfvkex"><!></span>'),es=I('<p class="svelte-pfvkex"></p>');function ts(e,t){ae(t,!0);const n=N(t,"onclickmodal",3,()=>null);function i(l,d){be(ye.AfterArticlePlaylinkClick,l,{playlink:d})}function r(l,d,u){be(ye.AfterArticleModalButtonClick,d),n()(l,u)}var a=Fe(),o=ne(a);{var s=l=>{var d=es();at(d,21,()=>t.linkInjections,bt,(u,f)=>{var _=$l();const m=K(()=>{const{key:w,title:S,title_details:j,after_article_style:x}=c(f);return{key:w,title:S,title_details:j,after_article_style:x}}),g=K(()=>{var w;return((w=c(m).title_details)==null?void 0:w.providers)||[]});var v=b(_);{var p=w=>{var S=Jl(),j=ne(S);{var x=H=>{var M=Yl(),C=ne(M);L(()=>G(C,`"${c(m).title??""}" ${ke("Is Available To Stream")??""} `));var D=E(C);D.__click=[Wl];var A=b(D);A.__click=[Kl,r,m,f];var B=b(A);L(()=>G(B,ke("View Streaming Options"))),k(H,M)},T=H=>{var M=Xl(),C=ne(M);L(()=>G(C,`"${c(m).title??""}" ${ke("Is Available To Stream On")??""} `));var D=E(C);at(D,17,()=>c(g),bt,(A,B,O)=>{let z=()=>c(B).name,F=()=>c(B).url;var V=Gl(),W=ne(V);{var J=de=>{var Ae=Be();L(()=>G(Ae,O===c(g).length-1?`, ${ke("And")}`:",")),k(de,Ae)};q(W,de=>{O&&de(J)})}var ee=E(W,2);ee.__click=[Zl,i,m,z];var re=b(ee);L(()=>{ue(ee,"href",F()),G(re,z())}),k(A,V)}),k(H,M)};q(j,H=>{c(m).after_article_style==="modal_button"?H(x):H(T,!1)})}k(w,S)},y=w=>{var S=Ql(),j=ne(S);L(()=>G(j,`"${c(m).title??""}" ${ke("Title Unavailable Suffix")??""} `)),k(w,S)};q(v,w=>{c(g).length?w(p):w(y,!1)})}L(()=>ue(_,"data-playpilot-injection-key",c(m).key)),k(u,_)}),k(l,d)};q(o,l=>{t.linkInjections.length&&l(s)})}k(e,a),oe()}fe(["click"]);function ns(e){const t=document.createElement("div");return t.textContent=e,t.innerHTML}function di(e){const t=document.createElement("div");return t.innerHTML=e,t.textContent||""}function Ni(e,t,n=[]){var a,o;const i=document.createTreeWalker(t);let r;for(;(r=i.nextNode())&&!((a=r.nodeValue)!=null&&a.includes(e)&&!n.includes(((o=r.parentNode)==null?void 0:o.nodeName)||"")););return r}function Li(e){const t=e.parentNode;return t?t.nodeName==="A"||!!t.closest("a"):!1}function is(e,t,n,i){const r=ns(t),a=di(t),o=e.slice(0,i),s=e.slice(i),l=/[-/\\^$*+?.()|[\]{}]/g,d=new RegExp(`${a.replace(l,"\\$&")}|${r.replace(l,"\\$&")}`),u=s.replace(d,n);return o+u}function rs(e,t,n,i){return e.substring(0,n)+t+e.substring(i)}function Te(e){return di(e).toLowerCase().replace(/\s+/g,"")}function Vr(e,t,n){const r=e.indexOf(t),a=Math.floor((n-t.length)/2);let o=Math.max(0,r-a),s=o+n;s>e.length&&(s=e.length,o=Math.max(0,s-n));let l=e.slice(o,s).trim();return o>0&&(l="…"+l),s<e.length&&(l+="…"),l}function as(e,t,n){const i=e.nodeType===Node.TEXT_NODE&&e.parentNode?e.parentElement:e;if(!i||!e.textContent)return{before:"",after:""};const r=i.innerText.indexOf(e.textContent),a=Oi(i.innerText.slice(0,t+r)),o=i.innerText.slice(n+r),s=Oi(Di(a,2)),l=Di(o,2);return{before:s,after:l}}function Oi(e){return e.split("").reverse().join("")}function Di(e,t=1){const n=e.match(/[^\s]+/g);return n?n.slice(0,t).join(" ").replace(/[.,!?;:]+$/u,""):""}function os(e,t){let n=0,i=0;for(;(i=e.indexOf(t,i))!==-1;)n++,i+=t.length;return n}function ls(e,t,n){const i=[];let r=0;for(;r<=e.length;){const a=t?e.indexOf(t,r):r;if(a===-1&&t)break;const o=t?a+t.length:a,s=n?e.indexOf(n,o):e.length;if(n&&s===-1)break;const l=e.slice(o,s);i.push({match:l,index:o}),r=n?s+n.length:e.length+1}return i}function ss(e,t,n,i){const a=ls(e,n,i).filter(({match:s})=>di(s).includes(t));return a.length?a.reduce((s,l)=>!s||l.match.length<s.match.length?l:s):null}function cs(e){var t,n;return{leadingSpaces:((t=e.match(/^\s*/))==null?void 0:t[0].length)||0,trailingSpaces:((n=e.match(/\s*$/))==null?void 0:n[0].length)||0}}function Ur(e){return e.ctrlKey||e.metaKey||e.button!==0}function us(e,t){if(!document.startViewTransition||!t){e();return}document.startViewTransition(()=>{const n=document.querySelector("[data-view-transition-old]");if(!n)return;const i=window.getComputedStyle(n).getPropertyValue("view-transition-name");n.style.viewTransitionName="none",e();const r=document.querySelector("[data-view-transition-new]");r&&(r.style.viewTransitionName=i)})}const xt="data-playpilot-injection-key",fn=`[${xt}]`;let vn=null,ut=null,Nt=null,Lt=null;function zr(e,t=""){const n=[],i=[e];for(;i.length>0;){const r=i.pop();if(n.includes(r)||t&&r.matches(t)||/^(A|BUTTON|SCRIPT|NOSCRIPT|STYLE|IFRAME|FIGCAPTION|TIME|H1)$/.test(r.tagName)||r.offsetWidth<=1)continue;const a=Array.from(r.childNodes).some(l=>{var d;return l.nodeType===Node.TEXT_NODE&&((d=l.nodeValue)==null?void 0:d.trim())!==""});if(a&&r.tagName==="LI"){const l=r.closest("ul, ol");l&&!n.includes(l)&&n.push(l);continue}const o=r.tagName==="P"&&!!r.textContent;if(a||o){n.push(r);continue}const s=Array.from(r.children);for(let l=s.length-1;l>=0;l--)i.push(s[l])}return n}function Vt(){var t;const e=(t=window.PlayPilotLinkInjections)==null?void 0:t.selector;if(e){const n=e.replace(/(:)/g,"\\$1"),i=document.querySelector(n);if(i)return i}return document.querySelector("article")||document.querySelector("main")||document.body}function ds(e,t={aiInjections:[],manualInjections:[]}){fi();const n=ys(t);if(!n)return[];const i=Te(e.map(l=>l.innerText).join(" ")),r=ws(n),a=r.filter(l=>i.includes(Te(l.sentence))),o={};for(const l of a){const d=e.findIndex(S=>Te(S.innerText).includes(Te(l.sentence))),u=e[d];if(!u)continue;const f=Ni(l.title,u,["A"]);if(!(f!=null&&f.nodeValue)||Li(f)){const S=Ni(l.title,u);if(S&&Li(S)){o[l.key]="Given text is already inside of a link.";continue}}const{injectionElement:_,linkElement:m}=fs(l),{phrase_before:g,phrase_after:v}=l;let p=-1,y=!1;if(os(Te(u.innerText),Te(l.title))===1&&(p=u.innerHTML.indexOf(l.title)),p===-1&&(g||v)){const S=[g,l.title,v].filter(Boolean).join(" ");if(p=u.innerHTML.indexOf(S),p===-1){const j=ss(u.innerHTML,l.title,g||"",v||"");if(j){const{leadingSpaces:x,trailingSpaces:T}=cs(j.match);m.innerHTML=j.match.trim();const H=j.index+x,M=j.index+j.match.length-T;u.innerHTML=rs(u.innerHTML,_.outerHTML,H,M),p=j.index,y=!0}}}if(p===-1&&(f!=null&&f.nodeValue)){const S=u.innerHTML.indexOf(f.nodeValue),j=u.innerHTML.indexOf(l.sentence);p=Math.max(S,j,0)}p!==-1&&(y||(u.innerHTML=is(u.innerHTML,l.title,_.outerHTML,p)))}_s(r),vs();const s=ks(n);return s.length&&gs(e,s),n.filter(l=>l.title_details).map((l,d)=>{const u=l.duplicate??(!l.manual&&bs(l,d,n)),f=document.querySelector(`[${xt}="${l.key}"]`),_=Tn(l)&&!l.inactive&&!l.after_article&&!f,m=!!e.find(v=>Te(v.innerText).includes(Te(l.sentence))),g=_?o[l.key]||(m?"The link failed to inject for unknown reasons.":"Given sentence was not found in the article."):"";return{...l,inactive:l.inactive??!1,duplicate:u,failed:_,failed_message:g}})}function fs(e){const t=document.createElement("span");t.dataset.playpilotInjectionKey=e.key;const n=document.createElement("a");return n.innerText=e.title,n.href=e.playpilot_url,n.target="_blank",n.rel="noopener nofollow noreferrer",t.insertAdjacentElement("beforeend",n),{injectionElement:t,linkElement:n}}function vs(){const e=Array.from(document.querySelectorAll(`${fn} a`)),t=["--playpilot-injection-text-color","--playpilot-injection-text-color-hover","--playpilot-injection-font-weight","--playpilot-injection-font-weight-headings","--playpilot-injection-text-decoration","--playpilot-injection-text-decoration-hover","--playpilot-injection-background-color","--playpilot-injection-background-color-hover"];e.forEach(n=>{t.forEach(i=>{getComputedStyle(n).getPropertyValue(i)&&(n.dataset.usedCssVariables=`${n.dataset.usedCssVariables||""} ${i}`)})})}function _s(e){window.addEventListener("click",n=>{if(Ur(n))return;const i=n.target;if(!(i!=null&&i.parentElement))return;const r=i.parentElement.getAttribute(xt);if(!r)return;const a=e.find(o=>r===o.key);a&&(n.preventDefault(),us(()=>{_n(!1),Wr(n,a)},!ui.current&&window.innerWidth>=600&&!window.matchMedia("(pointer: coarse)").matches))}),window.addEventListener("mousemove",n=>{if(!ut)return;const i=n.target;i.hasAttribute("data-playpilot-title-popover")||i.closest("[data-playpilot-title-popover]")||i.hasAttribute(xt)||i.closest(fn)||_n()}),Array.from(document.querySelectorAll(fn)).forEach(n=>{const i=n.dataset.playpilotInjectionKey,r=e.find(a=>i===a.key);r&&(n.addEventListener("mouseenter",a=>{ut||hs(a,r)}),n.addEventListener("mouseleave",()=>vn=null))})}function Wr(e,t){Ur(e)||Lt||(e.preventDefault(),Lt=Xt(Bl,{target:Jr(),props:{title:t.title_details,onclose:Kr}}))}function Kr(e=!0){Lt&&(bn(Lt,{outro:e}),Lt=null)}function hs(e,t){if(window.matchMedia("(pointer: coarse)").matches)return;ut&&_n();const n=e.currentTarget;vn=n,setTimeout(()=>{vn===n&&(ut=Xt(zl,{target:Jr(),props:{event:e,title:t.title_details}}))},100)}function _n(e=!0){ut&&(bn(ut,{outro:e}),vn=null,ut=null)}function gs(e,t){var o,s;if(Nt||!t.length)return;const n=document.createElement("div"),i=(o=window.PlayPilotLinkInjections)==null?void 0:o.after_article_selector,r=(i?document.querySelector(i):null)||e[e.length-1],a=((s=window.PlayPilotLinkInjections)==null?void 0:s.after_article_insert_position)||"afterend";n.dataset.playpilotAfterArticlePlaylinks="true",r.insertAdjacentElement(a,n),Nt=Xt(ts,{target:n,props:{linkInjections:t,onclickmodal:(l,d)=>Wr(l,d)}})}function ms(){var e;Nt&&(bn(Nt),(e=document.querySelector("[data-playpilot-after-article-playlinks]"))==null||e.remove(),Nt=null)}function fi(){document.querySelectorAll(fn).forEach(t=>ps(t.getAttribute(xt)||"")),ms(),Kr(!1),_n(!1)}function ps(e){var i;const t=document.querySelector(`[${xt}="${e}"]`);if(!t)return;const n=(i=t.querySelector("a"))==null?void 0:i.innerHTML;t.outerHTML=n||""}function ys({aiInjections:e,manualInjections:t}){return[...t.map(n=>({...n,manual:!0})),...e]}function Yr(e){return{aiInjections:e.filter(t=>!t.manual),manualInjections:e.filter(t=>t.manual)}}function Zr(e){return!e.inactive&&!e.removed&&!e.duplicate&&!!e.title_details&&Tn(e)}function Tn(e){return e.in_text||e.in_text===void 0?!0:!!e.after_article}function ws(e){return Gr(e).filter(t=>t.in_text!==!1&&Zr(t))}function ks(e){return Gr(e).filter(t=>t.after_article===!0&&Zr(t))}function Gr(e){return e.filter(t=>t.removed||t.inactive?!1:t.manual&&!t.removed&&!t.inactive?!0:!e.some(n=>n.manual&&(n.removed||n.inactive)&&Xr(n,t)))}function bs(e,t,n){return n.some((i,r)=>t!==r&&i.manual&&Xr(i,e))}function Xr(e,t){return e.title===t.title&&Te(e.sentence)===Te(t.sentence)}function Jr(){return document.querySelector("[data-playpilot-link-injections]")||document.body}function Qr(){const e=Vt();return{content_heading:xs(e),content_modified_time:Ss(e),content_published_time:Es(e)}}function xs(e){const t=e.querySelector("h1")||document.querySelector("h1");return(t==null?void 0:t.innerText.trim())||null}function Ss(e){const t=document.querySelector('meta[property*="modified_time"]')||document.querySelector('meta[name*="modified_time"]')||e.querySelector('[itemprop="dateModified"]')||document.querySelector('[itemprop="dateModified"]')||null,n=(t==null?void 0:t.getAttribute("content"))||(t==null?void 0:t.getAttribute("datetime"))||(t==null?void 0:t.innerText);return n?vi(n):null}function Es(e){const t=document.querySelector('meta[property*="published_time"]')||document.querySelector('meta[name*="published_time"]')||e.querySelector('[itemprop="datePublished"]')||document.querySelector('[itemprop="datePublished"]')||e.querySelector("time")||document.querySelector("time")||e.querySelector("[datetime]")||document.querySelector("[datetime]")||null,n=(t==null?void 0:t.getAttribute("content"))||(t==null?void 0:t.getAttribute("datetime"))||(t==null?void 0:t.innerText);return n?vi(n):null}function vi(e){try{return new Date(e).toISOString()}catch{return null}}let On=null;async function $t(e,{url:t=ai(),hash:n=il(e||""),params:i={}}={}){const r=new Headers({"Content-Type":"application/json"}),a=In(),o=Or()?await Lr():!1,s=Rr();if(!a)throw new Error("No token was provided");i.run_ai&&(i.hash=n,i.page_text=e,i.metadata=Qr());const l=await fetch(Sn+`/external-pages/?api-token=${a}&include_title_details=true${o?"&editorial_mode_enabled=true":""}&language=${s}`,{headers:r,method:"POST",body:JSON.stringify({url:t,...i})});if(!l.ok)throw l;return await l.json()}async function Ri(e,{requireCompletedResult:t=!1,runAiWhenRelevant:n=!1,pollInterval:i=3e3,maxTries:r=600,onpoll:a=()=>null}={}){let o=0;On&&clearTimeout(On);const s=async(l,d)=>{let u;try{if(u=await $t(e),n&&(u=await Ts(e,u)),t&&u.ai_enabled&&u.ai_running)throw new Error;u.manual_injections=qi(u.manual_injections||[]),u.ai_injections=qi(u.ai_injections||[]),l(u);return}catch{if(o++,o>=r){r>1&&console.error("Max poll limit exceeded. Please return later."),l();return}u&&a(u),On=setTimeout(()=>s(l),i)}};return new Promise(s)}async function Ts(e,t){if(!e||!t.ai_enabled||t.ai_running)return t;const n=Qr().content_modified_time,i=t.content_modified_time?vi(t.content_modified_time):null,r=n&&i===n;return t.ai_last_run&&r?t:await $t(e,{params:{run_ai:!0}})}async function Is(e,t){var o;const n=(o=window.PlayPilotLinkInjections)==null?void 0:o.selector,r=e.filter(s=>s.manual).map(s=>({sid:s.sid,title:s.title,sentence:s.sentence,phrase_before:s.phrase_before,phrase_after:s.phrase_after,playpilot_url:s.playpilot_url,after_article:!!s.after_article,after_article_style:s.after_article_style||null,in_text:s.in_text??!0,inactive:!!s.inactive,removed:!!s.removed}));if(!await $t(t,{params:{private_token:li(),manual_injections:r,content_text_selector:n}}))throw new Error("saveLinkInjections response was faulty");return e}async function As(){const e=new Headers({"Content-Type":"application/json"}),t=In();if(!t)throw new Error("No token was provided");const n=await fetch(Sn+`/domains/config?api-token=${t}`,{headers:e});if(!n.ok)throw n;try{return await n.json()||null}catch{return null}}function qi(e){return e.map(t=>({...t,key:$r(t.sid)}))}function $r(e){return e+"-"+Dr()}function In(){var e;return(e=window.PlayPilotLinkInjections)==null?void 0:e.token}function Cs(){const e=navigator.userAgent.toLowerCase();return/bot|crawl|spider|google|baidu|bing|msn|teoma|slurp|yandex|facebookexternalhit|facebot/i.test(e)}var Ps=Ne('<svg width="8" height="4" viewBox="0 0 8 4" fill="none" class="svelte-by11ix"><path d="M1 0.5L4 3.5L7 0.5" stroke="currentColor" stroke-width="0.9975" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function js(e,t){const n=N(t,"expanded",3,!1);var i=Ps();L(()=>se(i,"expanded",n())),k(e,i)}var Ms=Ne('<svg width="24px" height="24px" viewBox="0 0 24 24" fill="none"><circle cx="12" cy="17" r="1" fill="var(--playpilot-warning)"></circle><path d="M12 10L12 14" stroke="var(--playpilot-warning)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path><path d="M3.44722 18.1056L10.2111 4.57771C10.9482 3.10361 13.0518 3.10362 13.7889 4.57771L20.5528 18.1056C21.2177 19.4354 20.2507 21 18.7639 21H5.23607C3.7493 21 2.78231 19.4354 3.44722 18.1056Z" stroke="var(--playpilot-warning)" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function Ns(e){var t=Ms();k(e,t)}function Ls(e,t,n){t(!t()),n()(t())}var Os=I('<button class="switch svelte-91s87b"><div class="label svelte-91s87b"><!></div> <div class="track svelte-91s87b"><div class="knob svelte-91s87b"></div></div></button>');function Wn(e,t){ae(t,!0);let n=N(t,"active",15),i=N(t,"fullwidth",3,!1),r=N(t,"label",3,""),a=N(t,"onclick",3,()=>null);var o=Os();o.__click=[Ls,n,a];var s=b(o),l=b(s);Ct(l,()=>t.children),L(()=>{ue(o,"aria-label",`Toggle ${r()??""} ${(n()?"off":"on")??""}`),se(o,"active",n()),se(o,"fullwidth",i())}),k(e,o),oe()}fe(["click"]);var Ds=I('<input type="text" autocomplete="off" class="svelte-1vrer3i">');function _i(e,t){let n=N(t,"value",15),i=N(t,"label",3,""),r=N(t,"name",3,""),a=N(t,"readonly",3,!1),o=N(t,"oninput",3,()=>null);var s=Ds();s.__input=function(...l){var d;(d=o())==null||d.apply(this,l)},L(()=>{ue(s,"name",r()),ue(s,"aria-label",i()),ue(s,"placeholder",i()),s.readOnly=a()}),Ho(s,n),k(e,s)}fe(["input"]);var Rs=Ne('<path d="M13.5833 13.6667L4.41667 13.6667M5.5 1.5H12.5C13.9001 1.5 14.6002 1.5 15.135 1.77248C15.6054 2.01217 15.9878 2.39462 16.2275 2.86502C16.5 3.3998 16.5 4.09987 16.5 5.5V12.5C16.5 13.9001 16.5 14.6002 16.2275 15.135C15.9878 15.6054 15.6054 15.9878 15.135 16.2275C14.6002 16.5 13.9001 16.5 12.5 16.5H5.5C4.09987 16.5 3.3998 16.5 2.86502 16.2275C2.39462 15.9878 2.01217 15.6054 1.77248 15.135C1.5 14.6002 1.5 13.9001 1.5 12.5V5.5C1.5 4.09987 1.5 3.3998 1.77248 2.86502C2.01217 2.39462 2.39462 2.01217 2.86502 1.77248C3.3998 1.5 4.09987 1.5 5.5 1.5Z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"></path>'),qs=Ne('<path d="M13.5833 8.58342H4.41667M5.5 1.50009H12.5C13.9001 1.50009 14.6002 1.50009 15.135 1.77258C15.6054 2.01226 15.9878 2.39471 16.2275 2.86512C16.5 3.39989 16.5 4.09996 16.5 5.50009V12.5001C16.5 13.9002 16.5 14.6003 16.2275 15.1351C15.9878 15.6055 15.6054 15.9879 15.135 16.2276C14.6002 16.5001 13.9001 16.5001 12.5 16.5001H5.5C4.09987 16.5001 3.3998 16.5001 2.86502 16.2276C2.39462 15.9879 2.01217 15.6055 1.77248 15.1351C1.5 14.6003 1.5 13.9002 1.5 12.5001V5.50009C1.5 4.09996 1.5 3.39989 1.77248 2.86512C2.01217 2.39471 2.39462 2.01226 2.86502 1.77258C3.3998 1.50009 4.09987 1.50009 5.5 1.50009Z" stroke="currentColor" stroke-width="1.25" stroke-linecap="round" stroke-linejoin="round"></path>'),Hs=Ne('<svg width="18" height="18" viewBox="0 0 18 18" fill="none"><!></svg>');function Hi(e,t){const n=N(t,"align",3,"bottom");var i=Hs(),r=b(i);{var a=s=>{var l=Rs();k(s,l)},o=s=>{var l=Fe(),d=ne(l);{var u=f=>{var _=qs();k(f,_)};q(d,f=>{n()==="center"&&f(u)},!0)}k(s,l)};q(r,s=>{n()==="bottom"?s(a):s(o,!1)})}k(e,i)}var Bs=I("<div><!></div>");function _t(e,t){ae(t,!0);const n=N(t,"type",3,"error"),i=N(t,"fixed",3,!1);var r=Bs(),a=b(r);Ct(a,()=>t.children),L(()=>{No(r,`alert ${n()??""} svelte-df5n87`),se(r,"fixed",i())}),k(e,r),oe()}var Fs=I("<!> In-text Playlink",1),Vs=I("<!> Bottom Playlink",1),Us=I('<div class="alert svelte-1shw34x"><!></div>'),zs=(e,t)=>t().after_article_style="playlinks",Ws=(e,t)=>t().after_article_style="modal_button",Ks=I('<div><div class="label svelte-1shw34x">Bottom playlinks style</div> <div class="group svelte-1shw34x" role="listbox" tabindex="0" aria-label="Playlink type"><button role="option" id="playlinks-in-text" class="svelte-1shw34x">Playlinks sentence</button> <button role="option" id="playlinks-after-article" class="svelte-1shw34x">Modal button</button> <div class="active-marker svelte-1shw34x"></div></div></div>'),Ys=I('<div class="switches svelte-1shw34x"><!> <!></div> <!> <!>',1);function Zs(e,t){ae(t,!0);const n=N(t,"linkInjection",7),i=K(()=>n().after_article_style==="modal_button");var r=Ys(),a=ne(r),o=b(a),s=K(()=>n().in_text??!0);Wn(o,{fullwidth:!0,get active(){return c(s)},onclick:g=>{n().in_text=g,n().manual=!0},label:"In-text Playlink",children:(g,v)=>{var p=Fs(),y=ne(p);Hi(y,{align:"center"}),k(g,p)},$$slots:{default:!0}});var l=E(o,2),d=K(()=>n().after_article??!1);Wn(l,{fullwidth:!0,get active(){return c(d)},onclick:g=>{n().after_article=g,n().manual=!0},label:"Bottom Playlink",children:(g,v)=>{var p=Vs(),y=ne(p);Hi(y,{align:"bottom"}),k(g,p)},$$slots:{default:!0}});var u=E(a,2);{var f=g=>{var v=Us(),p=b(v);_t(p,{type:"warning",children:(y,w)=>{var S=Be("At least one layout option must be selected for the playlink to be visible.");k(y,S)},$$slots:{default:!0}}),je(3,v,()=>Bt,()=>({duration:200})),k(g,v)};q(u,g=>{Tn(n())||g(f)})}var _=E(u,2);{var m=g=>{var v=Ks(),p=E(b(v),2),y=b(p);y.__click=[zs,n];var w=E(y,2);w.__click=[Ws,n];var S=E(w,2);L(()=>{ue(p,"aria-activedescendant",`playlinks-${(c(i)?"after-article":"in-text")??""}`),ue(y,"aria-selected",!c(i)||null),se(y,"active",!c(i)),ue(w,"aria-selected",c(i)||null),se(w,"active",c(i)),se(S,"right",c(i))}),je(3,v,()=>Bt,()=>({duration:100})),k(g,v)};q(_,g=>{n().after_article&&g(m)})}k(e,r),oe()}fe(["click"]);var Gs=Ne('<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg"><path d="M9.99984 10.8333C10.4601 10.8333 10.8332 10.4602 10.8332 10C10.8332 9.53977 10.4601 9.16668 9.99984 9.16668C9.5396 9.16668 9.1665 9.53977 9.1665 10C9.1665 10.4602 9.5396 10.8333 9.99984 10.8333Z" stroke="currentColor" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path><path d="M9.99984 5.00001C10.4601 5.00001 10.8332 4.62691 10.8332 4.16668C10.8332 3.70644 10.4601 3.33334 9.99984 3.33334C9.5396 3.33334 9.1665 3.70644 9.1665 4.16668C9.1665 4.62691 9.5396 5.00001 9.99984 5.00001Z" stroke="currentColor" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path><path d="M9.99984 16.6667C10.4601 16.6667 10.8332 16.2936 10.8332 15.8333C10.8332 15.3731 10.4601 15 9.99984 15C9.5396 15 9.1665 15.3731 9.1665 15.8333C9.1665 16.2936 9.5396 16.6667 9.99984 16.6667Z" stroke="currentColor" stroke-width="1.66667" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function Xs(e){var t=Gs();k(e,t)}var Js=(e,t)=>P(t,!c(t)),Qs=I('<div class="content svelte-zpsd2z"><!></div>'),$s=I('<div class="context-menu svelte-zpsd2z"><button class="svelte-zpsd2z"><!></button> <!></div>');function ec(e,t){ae(t,!0);let n=U(!1),i=U(null);function r(u){var _;const f=u.target;f===c(i)||(_=c(i))!=null&&_.contains(f)||P(n,!1)}var a=$s();ce("click",pe,r);var o=b(a);o.__click=[Js,n];var s=b(o);Xs(s),Qt(o,u=>P(i,u),()=>c(i));var l=E(o,2);{var d=u=>{var f=Qs(),_=b(f);Ct(_,()=>t.children),je(1,f,()=>En,()=>({duration:150,y:5})),k(u,f)};q(l,u=>{c(n)&&u(d)})}L(()=>{ue(o,"aria-label",t.ariaLabel),ue(o,"aria-expanded",c(n))}),k(e,a),oe()}fe(["click"]);function tc(e,t,n,i){var r,a;c(t)&&(be(ye.ManualReport,n.linkInjection.title_details,{report_reason:c(t),sid:n.linkInjection.sid,title:n.linkInjection.title,sentence:n.linkInjection.sentence,failed:(r=n.linkInjection.failed)==null?void 0:r.toString(),failed_message:n.linkInjection.failed_message,manual:(a=n.linkInjection.manual)==null?void 0:a.toString()}),P(i,!0),setTimeout(n.onclose,3e3))}var nc=(e,t,n)=>P(t,X(n())),ic=I('<option class="svelte-o5qkco"> </option>'),rc=I('<div class="sent svelte-o5qkco">Report has been sent, thank you! Closing window...</div>'),ac=I('<button class="submit svelte-o5qkco">Send report</button>'),oc=I('<div class="form svelte-o5qkco"><div class="heading svelte-o5qkco">Report issue</div> <div class="info svelte-o5qkco"><div><strong class="svelte-o5qkco">Title</strong> </div> <div><strong class="svelte-o5qkco">Sentence</strong> </div></div> <label for="reason">What would you like to report?</label> <select id="reason" name="reason" class="svelte-o5qkco"><option class="svelte-o5qkco">Select an issue...</option><!></select> <div><!></div></div>');function lc(e,t){ae(t,!0);const n=[{value:"failed_injection",label:"The link failed to appear on the page."},{value:"layout_issue",label:"The link is breaking the layout or formatting of my page."},{value:"wrong_content",label:"The link points to the wrong movie or show."},{value:"inappropriate_title",label:"The link points to an inappropriate movie or show."},{value:"broken_link",label:"The link is broken or leads to an error page."},{value:"other",label:"My issue is not listed, but please have a look regardless."}];let i=U(""),r=U(!1);Hr(e,{get onclose(){return t.onclose},children:(a,o)=>{var s=oc(),l=b(s);Jt(l,(x,T)=>xe==null?void 0:xe(x,T),()=>2);var d=E(l,2),u=b(d),f=E(b(u)),_=E(u,2),m=E(b(_));L(()=>G(m,`:
9
9
  ${Vr(t.linkInjection.sentence,t.linkInjection.title,100)??""}`));var g=E(d,4),v=b(g);v.value=((v.__value="")==null,"");var p=E(v);at(p,17,()=>n,bt,(x,T)=>{let H=()=>c(T).value,M=()=>c(T).label;var C=ic(),D={};C.__click=[nc,i,H];var A=b(C);L(()=>{D!==(D=H())&&(C.value=(C.__value=H())==null?"":H()),G(A,M())}),k(x,C)});var y=E(g,2),w=b(y);{var S=x=>{var T=rc();je(1,T,()=>Ht,()=>({duration:200})),k(x,T)},j=x=>{var T=ac();T.__click=[tc,i,t,r],L(()=>T.disabled=!c(i)),k(x,T)};q(w,x=>{c(r)?x(S):x(j,!1)})}L(()=>G(f,`: ${t.linkInjection.title??""}`)),Fo(g,()=>c(i),x=>P(i,x)),k(a,s)},$$slots:{default:!0}}),oe()}fe(["click"]);function sc(e,t,n){requestAnimationFrame(()=>t());const i=e.target;if(["BUTTON","INPUT"].includes(i.nodeName)||i.closest("button")||i.closest("input"))return;const r=n()[0];r&&r.scrollIntoView({behavior:"smooth"})}function cc(e,t){const n=Xt(lc,{target:document.body,props:{linkInjection:t(),onclose:()=>bn(n)}})}var uc=(e,t)=>P(t,!c(t)),dc=I('<button class="expand-sentence svelte-lo6h85"> </button>'),fc=I('<button class="context-menu-action svelte-lo6h85">Remove</button> <button class="context-menu-action svelte-lo6h85">Report issue</button>',1),vc=(e,t)=>P(t,!c(t)),_c=I('<div class="warning svelte-lo6h85" aria-label="Invalid playlink settings"><!></div>'),hc=I('<div class="actions svelte-lo6h85"><button class="expand svelte-lo6h85" aria-label="Expand"><!></button> <!> <!></div>'),gc=I('<div class="expanded svelte-lo6h85"><div class="label svelte-lo6h85">Link URL</div> <!> <div class="label offset svelte-lo6h85">Layout options</div> <div class="type-select svelte-lo6h85"><!></div></div>'),mc=I('<div class="item svelte-lo6h85"><div class="header svelte-lo6h85"><img class="poster svelte-lo6h85" alt="" width="32" height="48"> <div class="info svelte-lo6h85"><div class="title svelte-lo6h85"> </div> <div class="sentence svelte-lo6h85"><!> <!></div></div> <div class="context-menu svelte-lo6h85"><!></div></div> <div class="content svelte-lo6h85"><!> <!></div></div>');function pc(e,t){ae(t,!0);const n=N(t,"linkInjection",15),i=N(t,"onremove",3,()=>null),r=N(t,"onhighlight",3,()=>null),a=K(()=>n()||{}),o=K(()=>c(a).key),s=K(()=>c(a).sentence),l=K(()=>c(a).title_details),d=K(()=>c(a).failed),u=K(()=>c(a).failed_message),f=K(()=>c(a).inactive),_=K(()=>c(l)),m=K(()=>Vr(n().sentence,n().title,60));let g=U(!1),v=U(!1),p=U(!1),y=U(null);Je(()=>{c(d)&&be(ye.InjectionFailed,c(_),{phrase:n().title,sentence:c(s)})});function w(Q=!0){j().forEach(le=>{le.classList.toggle("playpilot-injection-highlight",Q)})}function S(Q){let te=Q.target,le=te==null?void 0:te.dataset.playpilotInjectionKey;te&&!le&&(te=te.closest(`[data-playpilot-injection-key="${c(o)}"]`),le=te==null?void 0:te.dataset.playpilotInjectionKey),P(p,le===c(o)),c(y)&&c(p)&&r()(c(y))}function j(){const Q=Array.from(document.querySelectorAll(`[data-playpilot-injection-key="${c(o)}"]`));return Q.length?Q:zr(Vt()).filter(te=>Te(te.innerText).includes(Te(n().sentence)))||[]}var x=mc();ce("mouseover",pe,S),x.__click=[sc,w,j];var T=b(x),H=b(T);L(()=>ue(H,"src",Ft(c(_).standing_poster)));var M=E(H,2),C=b(M),D=b(C),A=E(C,2),B=b(A);Io(B,()=>(c(v)?c(s):c(m)).replace(n().title,`<em>${n().title}</em>`));var O=E(B,2);{var z=Q=>{var te=dc();te.__click=[uc,v];var le=b(te);L(()=>G(le,c(v)?"Less":"More")),k(Q,te)};q(O,Q=>{c(m).length<c(s).length&&Q(z)})}var F=E(M,2),V=b(F);ec(V,{ariaLabel:"More options",children:(Q,te)=>{var le=fc(),Ce=ne(le);Ce.__click=function(...ot){var R;(R=i())==null||R.apply(this,ot)};var Qe=E(Ce,2);Qe.__click=[cc,n],k(Q,le)},$$slots:{default:!0}});var W=E(T,2),J=b(W);{var ee=Q=>{_t(Q,{children:(te,le)=>{var Ce=Be();L(()=>G(Ce,c(u))),k(te,Ce)},$$slots:{default:!0}})},re=Q=>{var te=hc(),le=b(te);le.__click=[vc,g];var Ce=b(le);js(Ce,{get expanded(){return c(g)}});var Qe=E(le,2);{var ot=ve=>{var Se=_c(),Le=b(Se);Ns(Le),je(3,Se,()=>Ht,()=>({duration:100})),k(ve,Se)};q(Qe,ve=>{Tn(n())||ve(ot)})}var R=E(Qe,2),Y=K(()=>c(f)?"Inactive":"Visible"),_e=K(()=>!n().inactive);Wn(R,{get label(){return c(Y)},get active(){return c(_e)},onclick:ve=>{n(n().inactive=!ve,!0),n(n().manual=!0,!0)},children:(ve,Se)=>{var Le=Be();L(()=>G(Le,c(f)?"Inactive":"Visible")),k(ve,Le)},$$slots:{default:!0}}),L(()=>ue(le,"aria-expanded",c(g))),k(Q,te)};q(J,Q=>{c(d)?Q(ee):Q(re,!1)})}var de=E(J,2);{var Ae=Q=>{var te=gc(),le=E(b(te),2);_i(le,{oninput:()=>n(n().manual=!0,!0),label:"Playlink URL",get value(){return n().playpilot_url},set value(ot){n(n().playpilot_url=ot,!0)}});var Ce=E(le,4),Qe=b(Ce);Zs(Qe,{get linkInjection(){return n()}}),je(3,te,()=>Bt,()=>({duration:100})),k(Q,te)};q(de,Q=>{c(g)&&Q(Ae)})}Qt(x,Q=>P(y,Q),()=>c(y)),L(()=>{se(x,"highlighted",c(p)),se(x,"inactive",c(f)),G(D,c(_).title)}),ce("mouseenter",x,()=>w(!0)),ce("mouseleave",x,()=>w(!1)),ce("error",H,({target:Q})=>Q.src=jr),je(6,x,()=>Bt,()=>({duration:200})),k(e,x),oe()}fe(["click"]);var yc=I('<button class="drag-handle svelte-19mcc5g" aria-label="Move editor"></button>');function wc(e,t){ae(t,!0);let n=N(t,"element",7),i=N(t,"position",23,()=>({x:0,y:0})),r=N(t,"limit",19,()=>({x:0,y:0})),a=N(t,"onchange",3,()=>null),o=!1,s={x:0,y:0},l=i();Je(()=>{d(i().x,i().y)});function d(v,p){const y=window.innerWidth,w=window.innerHeight,S=n().clientWidth,j=n().clientHeight;v=Math.min(Math.max(v,r().x),y-S-r().x),p=Math.min(Math.max(p,r().y),w-j-r().y),n().style.right=v+"px",n().style.bottom=Math.max(p,r().y)+"px",i({x:v,y:p}),a()(i())}function u(v){var p,y;return{x:v.pageX||((p=v.touches)==null?void 0:p[0].pageX)||0,y:v.pageY||((y=v.touches)==null?void 0:y[0].pageY)||0}}function f(v){o=!0,s=u(v),l=i()}function _(v){if(!o)return;const p=u(v),y=p.x-s.x,w=p.y-s.y,S=l.x-y,j=l.y-w;d(S,j)}function m(){o&&(o=!1)}var g=yc();ce("mousemove",pe,_),ce("touchmove",pe,_,void 0,!0),ce("mouseup",pe,m),ce("touchend",pe,m),ce("resize",pe,()=>d(i().x,i().y)),g.__mousedown=f,g.__touchstart=f,k(e,g),oe()}fe(["mousedown","touchstart"]);var kc=I('<button class="resize-handle svelte-sxkuxk" aria-label="Move editor"></button>');function bc(e,t){ae(t,!0);let n=N(t,"element",7),i=N(t,"height",7,200),r=N(t,"onchange",3,()=>null);const a=16;let o=!1,s=0,l=i();Je(()=>{i()&&d(i())});function d(v){const p=window.getComputedStyle(n()).minHeight||"0",y=Math.max(parseInt(p),Math.min(v,m()));n().style.height=`${y}px`,i(y),r()(y)}function u(v){var p,y;o=!0,s=v.pageY||((y=(p=v.touches)==null?void 0:p[0])==null?void 0:y.pageY)||0,l=n().clientHeight}function f(v){var S,j;if(!o)return;const p=v.pageY||((j=(S=v.touches)==null?void 0:S[0])==null?void 0:j.pageY)||0,y=s-p,w=l+y;d(w)}function _(){o=!1}function m(){const v=window.innerHeight-n().getBoundingClientRect().bottom;return Math.max(window.innerHeight-a*2-v,0)}var g=kc();ce("mousemove",pe,f),ce("touchmove",pe,f,void 0,!0),ce("mouseup",pe,_),ce("touchend",pe,_),ce("resize",pe,()=>{i()&&d(i())}),g.__mousedown=u,g.__touchstart=u,k(e,g),oe()}fe(["mousedown","touchstart"]);var xc=Ne('<svg width="4" height="8" viewBox="0 0 4 8" fill="none"><path d="M3.5 7L0.5 4L3.5 1" stroke="currentcolor" stroke-width="0.9975" stroke-linecap="round" stroke-linejoin="round"></path></svg>');function Sc(e){var t=xc();k(e,t)}async function Ec(e){const t=new Headers({"Content-Type":"application/json"}),n=In();if(!n)throw new Error("No token was provided");const i=await fetch(Sn+`/search/titles/?api-token=${n}&query=${e}`,{headers:t});if(!i.ok)throw i;return await i.json()}var Tc=Ne('<svg viewBox="0 -960 960 960" width="18" height="18"><path fill="currentColor" d="M200-120q-33 0-56.5-23.5T120-200v-560q0-33 23.5-56.5T200-840h280v80H200v560h560v-280h80v280q0 33-23.5 56.5T760-120H200Zm188-212-56-56 372-372H560v-80h280v280h-80v-144L388-332Z"></path></svg>');function Ic(e){var t=Tc();k(e,t)}var Ac=I("<div> </div>"),Cc=e=>e.stopImmediatePropagation(),Pc=I('<button class="item svelte-rjq94e"><img class="poster svelte-rjq94e" alt="" width="28" height="42"> <div class="content"><div class="name svelte-rjq94e"> </div> <div class="meta svelte-rjq94e"><div class="imdb svelte-rjq94e"><!> </div> <div> </div> <div> </div> <!></div></div> <a target="_blank" class="open-in-new-tab svelte-rjq94e"><!></a></button>');function Bi(e,t){ae(t,!0);const n=N(t,"hoverable",3,!0),i=N(t,"onclick",3,()=>null);var r=Pc();r.__click=function(...x){var T;(T=i())==null||T.apply(this,x)};var a=b(r);L(()=>ue(a,"src",Ft(t.title.standing_poster)));var o=E(a,2),s=b(o),l=b(s),d=E(s,2),u=b(d),f=b(u);Br(f);var _=E(f),m=E(u,2),g=b(m),v=E(m,2),p=b(v),y=E(v,2);{var w=x=>{var T=Ac(),H=b(T);L(()=>G(H,`${t.title.length??""} min`)),k(x,T)};q(y,x=>{t.title.length&&x(w)})}var S=E(o,2);S.__click=[Cc];var j=b(S);Ic(j),L(()=>{se(r,"hoverable",n()),G(l,t.title.title),G(_,` ${t.title.imdb_score??""}`),G(g,t.title.year),G(p,t.title.type),ue(S,"href",`${Pr}/${t.title.type??""}/${t.title.slug??""}`)}),ce("error",a,({target:x})=>x.src=jr),k(e,r),oe()}fe(["click"]);var jc=I('<em class="empty svelte-1olb8n0">No results found</em>'),Mc=I('<div class="results svelte-1olb8n0" data-testid="search-results"></div>'),Nc=I('<div class="selected svelte-1olb8n0"><!></div>'),Lc=I('<div class="search svelte-1olb8n0"><!> <!> <!></div>');function Oc(e,t){ae(t,!0);let n=N(t,"onselect",3,()=>null),i=N(t,"query",15),r=U(X([])),a=U(null),o=U(!1);pn(()=>{i()&&s(i())});async function s(v){P(o,!0);try{P(r,X(await Ec(v)))}finally{P(o,!1)}}function l(v){i(v.title),P(a,X(v)),n()(v)}var d=Lc(),u=b(d);_i(u,{oninput:()=>P(a,null),name:"search",label:"Search...",get value(){return i()},set value(v){i(v)}});var f=E(u,2);{var _=v=>{var p=Mc();at(p,21,()=>c(r),y=>y.sid,(y,w)=>{Bi(y,{get title(){return c(w)},onclick:()=>l(c(w))})},y=>{var w=Fe(),S=ne(w);{var j=x=>{var T=jc();k(x,T)};q(S,x=>{c(o)||x(j)})}k(y,w)}),k(v,p)};q(f,v=>{i()&&!c(a)&&v(_)})}var m=E(f,2);{var g=v=>{var p=Nc(),y=b(p);Bi(y,{get title(){return c(a)},hoverable:!1}),k(v,p)};q(m,v=>{c(a)&&v(g)})}k(e,d),oe()}function Dc(e,t=e.anchorNode){if(!e.anchorNode||!t)return{start:-1,end:-1};const n=e.toString().trim(),i=e.toString().search(/\S/);if(e.anchorNode===t&&t.nodeType===Node.TEXT_NODE){const d=Math.min(e.anchorOffset,e.focusOffset)+i;return{start:d,end:d+n.length}}const r=e.getRangeAt(0),a=r.cloneRange();a.selectNodeContents(t),a.setEnd(r.startContainer,r.startOffset);const s=a.toString().length+i,l=s+n.length;return{start:s,end:l}}function Rc(e,t,n,i,r,a,o,s){if(!c(t)||!c(n))return;const l=c(n).type==="movie"?"movie":"show",d=Pr+`/${l}/${c(n).slug}`,u={sid:c(n).sid,title:c(t),sentence:c(i),phrase_before:c(r),phrase_after:c(a),playpilot_url:d,key:$r(c(n).sid),title_details:c(n),manual:!0};o.onsave(u),s()()}var qc=I('<div class="error svelte-1i8p6op"><!></div>'),Hc=I('<label for="text" class="svelte-1i8p6op">Paired title</label> <!>',1),Bc=I('<section class="layout svelte-1i8p6op"><div class="header svelte-1i8p6op"><!> <div class="heading svelte-1i8p6op">Add Playlink manually</div></div> <p class="svelte-1i8p6op">Highlight the text section in your post that you want to turn into a Playlink.</p> <label for="text" class="svelte-1i8p6op">Selected text</label> <!> <!> <!> <button class="save svelte-1i8p6op">Add playlink</button></section>');function Fc(e,t){ae(t,!0);const n=N(t,"pageText",3,""),i=N(t,"onclose",3,()=>null);let r=U(""),a=U(""),o=U(null),s=U(""),l=U(""),d=U(""),u=U("");Je(f);function f(){const C=window.getSelection();if(!(C!=null&&C.anchorNode)||C.anchorNode.parentElement&&!Vt().contains(C.anchorNode.parentElement))return;const D=C.toString().trim();if(!D)return;P(d,""),P(r,X(D));const A=C.getRangeAt(0).cloneContents();if(Array.from(A.childNodes).filter(ee=>{var re;return(re=ee.textContent)==null?void 0:re.trim()}).find(ee=>{var re;return ee.nodeName==="A"||((re=ee.querySelector)==null?void 0:re.call(ee,"a"))})){P(d,"Selection is or contains a link. Injections can not be created around already existing links.");return}P(u,X(c(r)));const{node:O,sentence:z}=_(C,D);if(!O)return;P(a,X(z));const{start:F,end:V}=Dc(C,O);(ee=>(P(l,X(ee.before)),P(s,X(ee.after))))(as(O,F,V)),z.includes(c(l))||P(l,""),z.includes(c(s))||P(s,"");const W=C.getRangeAt(0).commonAncestorContainer.textContent,J=Te(n());(!W||!J.includes(Te(W)))&&P(d,"Selection was not inside of given content")}function _(C,D){const A=C.getRangeAt(0),B=Vt();let O=A.startContainer;for(;(O.textContent||"").length<=D.length*3&&O.parentNode&&O.parentNode.textContent!==B.textContent;)O=O.parentNode;if(!O||!O.textContent)return{node:null,sentence:""};const z=O.textContent,F=m(O,A.startContainer,A.startOffset),V=m(O,A.endContainer,A.endOffset),W=z.slice(0,F).lastIndexOf("."),J=z.slice(V).match(/[.!?]/),ee=J?V+J.index:z.length,re=W===-1?0:W+1,de=ee,Ae=z.slice(re,de+1).trim();return{node:O,sentence:Ae}}function m(C,D,A){let B=0;const O=C,z=F=>{var V;if(F===D)return B+=A,!0;F.nodeType===Node.TEXT_NODE&&(B+=((V=F.textContent)==null?void 0:V.length)||0);for(let W=F.firstChild;W;W=W.nextSibling)if(z(W))return!0;return!1};return z(O),B}function g(C){var D,A;P(o,X(C)),(A=(D=window.getSelection())==null?void 0:D.removeAllRanges)==null||A.call(D)}var v=Bc();ce("mouseup",pe,f);var p=b(v),y=b(p);ci(y,{get onclick(){return i()},size:"24px",children:(C,D)=>{Sc(C)},$$slots:{default:!0}});var w=E(y,2);Jt(w,(C,D)=>xe==null?void 0:xe(C,D),()=>2);var S=E(p,6);_i(S,{get value(){return c(r)},label:"Select text on the page",name:"selected-text",readonly:!0});var j=E(S,2);{var x=C=>{var D=qc(),A=b(D);_t(A,{children:(B,O)=>{var z=Be();L(()=>G(z,c(d))),k(B,z)},$$slots:{default:!0}}),k(C,D)};q(j,C=>{c(d)&&C(x)})}var T=E(j,2);{var H=C=>{var D=Hc(),A=E(ne(D),2);Er(A,()=>c(a)+c(r),B=>{Oc(B,{onselect:g,get query(){return c(u)},set query(O){P(u,X(O))}})}),k(C,D)};q(T,C=>{c(d)||C(H)})}var M=E(T,2);M.__click=[Rc,r,o,a,l,s,t,i],L(()=>M.disabled=!c(r)||!c(o)),k(e,v),oe()}fe(["click"]);const Kn="PlayPilotEditorialSessionId",ea=5e3,Vc=ea*2;async function Uc(e){const{ai_enabled:t,injections_enabled:n,session_id:i,session_last_ping:r}=await $t(e),a=na(i||null,r||null),o={ai_enabled:t,injections_enabled:n,session_id:i,session_last_ping:r};return a?await ta(e):o}async function ta(e){const t=ia(),n=new Date(Date.now()).toISOString(),i={session_id:t,session_last_ping:n.toString()},{ai_enabled:r,injections_enabled:a}=await $t(e,{params:i});return{ai_enabled:r,injections_enabled:a,...i}}function na(e,t){if(!e||!t)return!0;const n=Date.now(),i=new Date(t),r=ia();return n-i.getTime()>Vc?!0:r===e}function ia(){return sessionStorage.getItem(Kn)||zc()}function zc(){const e=sessionStorage.getItem(Kn)||Dr();return sessionStorage.setItem(Kn,e),e}function Wc(e,t,n){ta(t()),n()()}var Kc=I('<p class="svelte-2m2urs"><strong>Someone else is currently editing this document.</strong> Wait for them to exit the page or take over edit permissions, preventing them from making more changes.</p> <button class="button svelte-2m2urs">Take over editing</button>',1),Yc=I('<div class="alert svelte-2m2urs"><!></div>');function Zc(e,t){ae(t,!0);const n=N(t,"pageText",3,""),i=N(t,"onpoll",3,()=>null),r=N(t,"onallow",3,()=>null),a=N(t,"ondisallow",3,()=>null),o=N(t,"ontakeover",3,()=>null);let s=null,l=U(!0);Je(()=>(d(),()=>{s&&clearInterval(s)}));function d(){u(),s=setInterval(u,ea)}async function u(){const g=await Uc(n());g&&(P(l,X(na(g.session_id||null,g.session_last_ping||null))),c(l)?r()():a()(),i()({injectionsEnabled:!!g.injections_enabled,aiEnabled:!!g.ai_enabled}))}var f=Fe(),_=ne(f);{var m=g=>{var v=Yc(),p=b(v);_t(p,{type:"warning",children:(y,w)=>{var S=Kc(),j=E(ne(S),2);j.__click=[Wc,n,o],k(y,S)},$$slots:{default:!0}}),k(g,v)};q(_,g=>{c(l)||g(m)})}k(e,f),oe()}fe(["click"]);var Gc=Ne('<svg width="24px" height="24px" viewBox="0 0 64 64" stroke-width="3" stroke="currentColor" fill="none"><circle cx="34.52" cy="11.43" r="5.82"></circle><circle cx="53.63" cy="31.6" r="5.82"></circle><circle cx="34.52" cy="50.57" r="5.82"></circle><circle cx="15.16" cy="42.03" r="5.82"></circle><circle cx="15.16" cy="19.27" r="5.82"></circle><circle cx="34.51" cy="29.27" r="4.7"></circle><line x1="20.17" y1="16.3" x2="28.9" y2="12.93"></line><line x1="38.6" y1="15.59" x2="49.48" y2="27.52"></line><line x1="50.07" y1="36.2" x2="38.67" y2="46.49"></line><line x1="18.36" y1="24.13" x2="30.91" y2="46.01"></line><line x1="20.31" y1="44.74" x2="28.7" y2="48.63"></line><line x1="17.34" y1="36.63" x2="31.37" y2="16.32"></line><line x1="20.52" y1="21.55" x2="30.34" y2="27.1"></line><line x1="39.22" y1="29.8" x2="47.81" y2="30.45"></line><line x1="34.51" y1="33.98" x2="34.52" y2="44.74"></line></svg>');function Xc(e){var t=Gc();k(e,t)}var Jc=I('<strong class="svelte-1kpafo0">AI processing is disabled.</strong> Enable AI from the <a href="https://partner.playpilot.net" class="svelte-1kpafo0">Partner Portal</a>',1),Qc=I('<span class="svelte-1kpafo0">.</span>'),$c=I(`<strong class="svelte-1kpafo0">AI links are currently processing.</strong> This can take several minutes. We'll insert all found injections once ready. <div class="message svelte-1kpafo0"> <span class="ellipses svelte-1kpafo0"></span></div> <div class="loading-bar svelte-1kpafo0"><div class="loading-bar-progress svelte-1kpafo0"><div class="loading-bar-fill svelte-1kpafo0" data-testid="loading-bar"></div></div> <div class="loading-bar-label svelte-1kpafo0"> </div></div>`,1),eu=(e,t)=>P(t,!0),tu=I('<p class="svelte-1kpafo0"><strong class="svelte-1kpafo0">AI has finished processing.</strong> <br class="svelte-1kpafo0"> <!></p> <button class="dismiss svelte-1kpafo0">Dismiss</button>',1),nu=I('<div class="animator svelte-1kpafo0" data-test-id="animator"></div>'),iu=I('<div class="ai-indicator svelte-1kpafo0" data-testid="ai-indicator"><div class="content svelte-1kpafo0"><div class="icon svelte-1kpafo0"><!></div> <div class="svelte-1kpafo0"><!></div></div> <div class="border svelte-1kpafo0"><!></div></div>');function ru(e,t){const n=N(t,"aiRunning",3,!1),i=N(t,"aiEnabled",3,!1),r=N(t,"message",3,""),a=N(t,"percentage",3,0),o=N(t,"aiInjectionsCount",3,0),s=o();let l=U(!1);var d=Fe(),u=ne(d);{var f=_=>{var m=iu(),g=b(m),v=b(g),p=b(v);Xc(p);var y=E(v,2),w=b(y);{var S=M=>{var C=Jc();k(M,C)},j=M=>{var C=Fe(),D=ne(C);{var A=O=>{var z=$c(),F=E(ne(z),2),V=b(F),W=E(V);at(W,20,()=>({length:3}),bt,(te,le)=>{var Ce=Qc();k(te,Ce)});var J=E(F,2),ee=b(J),re=b(ee);const de=K(()=>`${Math.max(a(),3)??""}%`);L(()=>xn(re,"width",c(de)));var Ae=E(ee,2),Q=b(Ae);L(()=>G(Q,`${Math.floor(a())??""}%`)),L(()=>G(V,`${r()??""} `)),k(O,z)},B=O=>{var z=tu(),F=ne(z),V=E(b(F),4);{var W=re=>{var de=Be("No new injections where found.");k(re,de)},J=re=>{var de=Be();L(()=>G(de,`${o()??""} Injections where found and added to the page.`)),k(re,de)};q(V,re=>{s===o()?re(W):re(J,!1)})}var ee=E(F,2);ee.__click=[eu,l],k(O,z)};q(D,O=>{n()?O(A):O(B,!1)},!0)}k(M,C)};q(w,M=>{i()?M(j,!1):M(S)})}var x=E(g,2),T=b(x);{var H=M=>{var C=nu();k(M,C)};q(T,M=>{n()&&M(H)})}L(()=>se(m,"running",n())),k(_,m)};q(u,_=>{c(l)||_(f)})}k(e,d)}fe(["click"]);async function au(e,t,n,i,r,a,o){try{P(t,!0),P(n,!1),i(await Is(i(),r())),P(a,X(c(o)))}catch{P(n,!0)}finally{P(t,!1)}}var ou=I('<link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Poppins:400,600,700">'),lu=I('<div class="handles svelte-11aj6xq"><div class="handle svelte-11aj6xq"><!></div> <div class="handle svelte-11aj6xq"><!></div></div>'),su=I('<div class="loading svelte-11aj6xq">Loading...</div>'),cu=I('<div class="bubble svelte-11aj6xq"> </div> <!>',1),uu=I(`<strong>Playlinks are currently not published.</strong> Visitors to this page will not see any of the injected links.
10
10
  Publish playlinks from the <a href="https://partner.playpilot.net">Partner Portal.</a>`,1),du=I('<div class="alert svelte-11aj6xq"><!></div>'),fu=I('<div class="error svelte-11aj6xq"><!></div>'),vu=I('<div class="empty svelte-11aj6xq">No links available. Add links manually by clicking the + button and select text to add a link to.</div>'),_u=I('<button class="save svelte-11aj6xq"> </button>'),hu=I('<!> <!> <div class="items svelte-11aj6xq"></div> <!>',1),gu=I("<!> <!> <!>",1),mu=I('<div class="panel playpilot-styled-scrollbar svelte-11aj6xq"><!></div>'),pu=I('<section class="editor playpilot-styled-scrollbar svelte-11aj6xq"><!> <header class="header svelte-11aj6xq"><div class="heading svelte-11aj6xq">Playlinks</div> <!></header> <!> <!></section>');function yu(e,t){ae(t,!0);let n=N(t,"linkInjections",15),i=N(t,"pageText",3,""),r=N(t,"loading",3,!1),a=N(t,"injectionsEnabled",7,!1),o=N(t,"aiStatus",23,()=>({})),s=N(t,"onreinitialize",3,()=>null);const l="editor-position",d="editor-height",u=JSON.parse(localStorage.getItem(l)||'{ "x": 0, "y": 0 }'),f=parseInt(localStorage.getItem(d)||"0");let _=U(null),m=U(!1),g=U(!1),v=U(!1),p=U(!0),y=U(0),w=U("");const S=K(()=>ln(o().aiEnabled,!1)),j=K(()=>ln(o().aiRunning,!1)),x=K(()=>JSON.stringify(n())),T=K(()=>!c(j)&&c(p)),H=K(()=>c(w)&&c(w)!==c(x)),M=K(()=>n().filter(R=>R.title_details&&!R.removed&&!R.duplicate&&(R.manual||!R.manual&&!R.failed))),C=K(()=>A(c(M))),D=K(()=>!r()&&Ke(()=>o().aiRunning));pn(()=>{r()||Ke(()=>{requestAnimationFrame(()=>P(w,X(c(x)))),V()})});function A(R){return R.sort((Y,_e)=>Y.failed!==_e.failed?Y.failed?1:-1:Y.title_details.title.localeCompare(_e.title_details.title))}function B(R,Y){localStorage.setItem(R,Y)}function O(R){const Y=n().findIndex(_e=>_e.key===R);n(n()[Y].manual=!0,!0),n(n()[Y].removed=!0,!0),n([...n()])}function z(R){if(!c(_))return;const Y=R.offsetTop,_e=Y+R.offsetHeight,ve=c(_).scrollTop,Se=ve+c(_).clientHeight;Y>=ve&&_e<=Se||c(_).scrollTo({top:Y-c(_).clientHeight/2,behavior:"smooth"})}function F(R){const Y=R.target;P(y,X(Y.scrollTop))}function V(){const R={total:n().length,failed_automatic:n().filter(Y=>Y.failed&&!Y.manual).length,failed_manual:n().filter(Y=>Y.failed&&Y.manual).length,final_injected:c(M).length};be(ye.TotalInjectionsCount,null,R)}var W=pu();ko(R=>{var Y=ou();k(R,Y)});var J=b(W);{var ee=R=>{var Y=lu(),_e=b(Y),ve=b(_e);bc(ve,{get element(){return c(_)},height:f,onchange:Ze=>B(d,JSON.stringify(Ze))});var Se=E(_e,2),Le=b(Se);wc(Le,{get element(){return c(_)},position:u,limit:{x:16,y:16},onchange:Ze=>B(l,JSON.stringify(Ze))}),k(R,Y)};q(J,R=>{c(_)&&!r()&&R(ee)})}var re=E(J,2),de=b(re);Jt(de,R=>xe==null?void 0:xe(R));var Ae=E(de,2);{var Q=R=>{var Y=su();k(R,Y)},te=R=>{var Y=Fe(),_e=ne(Y);{var ve=Se=>{var Le=cu(),Ze=ne(Le),Oe=b(Ze),en=E(Ze,2);ci(en,{onclick:()=>P(m,!0),size:"24px","aria-label":"Add manual injection",children:(tn,hi)=>{var nn=Be("+");k(tn,nn)},$$slots:{default:!0}}),L(()=>{ue(Ze,"aria-label",`${c(M).length??""} found playlinks`),G(Oe,c(M).length)}),k(Se,Le)};q(_e,Se=>{c(T)&&Se(ve)},!0)}k(R,Y)};q(Ae,R=>{r()?R(Q):R(te,!1)})}var le=E(re,2);{var Ce=R=>{var Y=gu(),_e=ne(Y);Zc(_e,{get pageText(){return i()},onallow:()=>P(p,!0),ondisallow:()=>P(p,!1),get ontakeover(){return s()},onpoll:Oe=>{a(Oe.injectionsEnabled),o({...o(),aiEnabled:Oe.aiEnabled})}});var ve=E(_e,2);{var Se=Oe=>{ru(Oe,Yo(o,{get aiInjectionsCount(){return Yr(n()).aiInjections.length}}))};q(ve,Oe=>{c(p)&&(c(D)||!c(S))&&Oe(Se)})}var Le=E(ve,2);{var Ze=Oe=>{var en=hu(),tn=ne(en);{var hi=he=>{var ge=du(),$e=b(ge);_t($e,{type:"warning",children:(lt,la)=>{var An=uu();k(lt,An)},$$slots:{default:!0}}),k(he,ge)};q(tn,he=>{a()||he(hi)})}var nn=E(tn,2);{var ra=he=>{var ge=fu(),$e=b(ge);_t($e,{children:(lt,la)=>{var An=Be("Something went wrong, check your links below.");k(lt,An)},$$slots:{default:!0}}),je(7,ge,()=>Bt,()=>({duration:150})),k(he,ge)};q(nn,he=>{c(v)&&he(ra)})}var gi=E(nn,2);at(gi,21,()=>c(C),he=>he.key,(he,ge)=>{const $e=K(()=>n().findIndex(lt=>lt.key===c(ge).key));pc(he,{onremove:()=>O(c(ge).key),onhighlight:z,get linkInjection(){return n()[c($e)]},set linkInjection(lt){n(n()[c($e)]=lt,!0)}})},he=>{var ge=vu();k(he,ge)});var aa=E(gi,2);{var oa=he=>{var ge=_u();ge.__click=[au,g,v,n,i,w,x];var $e=b(ge);L(()=>{ge.disabled=c(g),G($e,c(g)?"Saving...":"Save links")}),je(1,ge,()=>Ht,()=>({duration:100})),k(he,ge)};q(aa,he=>{c(H)&&n().length&&c(p)&&he(oa)})}k(Oe,en)};q(Le,Oe=>{c(T)&&Oe(Ze)})}k(R,Y)};q(le,R=>{r()||R(Ce)})}var Qe=E(le,2);{var ot=R=>{var Y=mu(),_e=b(Y);Fc(_e,{get pageText(){return i()},onclose:()=>P(m,!1),onsave:ve=>n().push(ve)}),L(()=>xn(Y,"top",`${c(y)??""}px`)),je(3,Y,()=>En,()=>({x:Math.min(window.innerWidth,320),duration:200,opacity:1})),k(R,Y)};q(Qe,R=>{c(m)&&R(ot)})}Qt(W,R=>P(_,R),()=>c(_)),L(()=>{se(W,"panel-open",c(m)),se(W,"loading",r())}),ce("scroll",W,F),k(e,W),oe()}fe(["click"]);var wu=Ne('<svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" viewBox="0 0 57.48 62.96"><defs><style>.playpilot-logo{fill:url(#playpilot-linear-gradient);}</style><linearGradient id="playpilot-linear-gradient" x1="-90.03" y1="-40.23" x2="-34.8" y2="-101.48" gradientTransform="translate(74.02 108.65)" gradientUnits="userSpaceOnUse"><stop offset="0" stop-color="#de00b9"></stop><stop offset="0.99" stop-color="#ff557b"></stop></linearGradient></defs><path class="playpilot-logo" d="M57.48,31.48C57.48,22.17,20.85,2.19,9.2.18,7.42-.12,3.78-.37,1.36,2.25-4.32,8.39,9.62,21.5,9.62,31.48S-4.32,54.57,1.36,60.72c2.42,2.61,6.06,2.37,7.84,2.06C20.85,60.78,57.48,40.79,57.48,31.48Z"></path></svg>');function ku(e){var t=wu();k(e,t)}var bu=I('<div class="trigger svelte-qee95d"><button type="button" class="button svelte-qee95d" title="Show PlayPilot TPI editor"><!></button> <button type="button" class="button close svelte-qee95d" title="Close PlayPilot TPI"><!></button></div>');function xu(e,t){var n=bu(),i=b(n);i.__click=function(...s){var l;(l=t.onclick)==null||l.apply(this,s)};var r=b(i);ku(r);var a=E(i,2);a.__click=function(...s){var l;(l=t.onclose)==null||l.apply(this,s)};var o=b(a);qr(o),k(e,n)}fe(["click"]);var Su=I('<div class="playpilot-link-injections svelte-13rmd3g" data-playpilot-link-injections=""><!> <!></div>');function Eu(e,t){ae(t,!0);let n=U(null),i=U(X([])),r=U(null),a=U(X(Or())),o=U(!!li()),s=U(!1),l=U(!0),d=U(!0),u=U(X([]));const f=K(()=>c(r)||{}),_=K(()=>ln(c(f).ai_injections,()=>[],!0)),m=K(()=>ln(c(f).manual_injections,()=>[],!0)),g=K(()=>c(i).map(A=>A.innerText).join(`
11
11
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@playpilot/tpi",
3
- "version": "5.1.1",
3
+ "version": "5.2.0-beta.1",
4
4
  "type": "module",
5
5
  "scripts": {
6
6
  "dev": "vite dev",
package/src/lib/api.ts CHANGED
@@ -32,8 +32,7 @@ export async function fetchLinkInjections(
32
32
  // Add additional parameters if request is made to run the AI. These parameters are only necessary
33
33
  // when running the AI and should not be passed when not running the AI, otherwise you would
34
34
  // override the hash, page_text, and/or meta data unintentionally, making comparisons impossible.
35
- // TODO: For now these are always added. In the future we'd like these to only be added when necessary
36
- if (params.run_ai || true) {
35
+ if (params.run_ai) {
37
36
  params.hash = hash
38
37
  params.page_text = pageText
39
38
  params.metadata = getPageMetaData()
@@ -118,8 +117,9 @@ export async function runAiBasedOnResponse(pageText: string, response: LinkInjec
118
117
 
119
118
  const currentModifiedTime = getPageMetaData().content_modified_time
120
119
  const responseModifiedTime = response.content_modified_time ? getDatetime(response.content_modified_time) : null
120
+ const isCurrentTimeEqualToResponseTime = currentModifiedTime && responseModifiedTime === currentModifiedTime
121
121
 
122
- if (!currentModifiedTime || responseModifiedTime === currentModifiedTime) return response
122
+ if (response.ai_last_run && isCurrentTimeEqualToResponseTime) return response
123
123
 
124
124
  return await fetchLinkInjections(pageText, { params: { run_ai: true } })
125
125
  }
@@ -30,6 +30,7 @@ export type LinkInjectionResponse = {
30
30
  ai_injections: LinkInjection[] | null
31
31
  ai_progress_message: string
32
32
  ai_progress_percentage: number
33
+ ai_last_run: string | null
33
34
  manual_injections: LinkInjection[] | null
34
35
  organization_sid?: string
35
36
  domain_sid?: string
@@ -296,16 +296,6 @@ describe('$lib/api', () => {
296
296
  expect(result).toEqual(response)
297
297
  })
298
298
 
299
- it('Should not call fetch and return initial response if ai_enabled is true but no content_modified_time is present', async () => {
300
- document.body.innerHTML = ''
301
- const response = { ai_enabled: true }
302
-
303
- // @ts-ignore
304
- const result = await runAiBasedOnResponse('Some text', response)
305
- expect(global.fetch).not.toHaveBeenCalled()
306
- expect(result).toEqual(response)
307
- })
308
-
309
299
  it('Should call fetch if ai_enabled is true and content_modified_time does not match document time, but no pageText is given', async () => {
310
300
  document.body.innerHTML = '<meta content="2025-04-20T00:00:00Z" property="article:modified_time">'
311
301
  const response = { ai_enabled: true, content_modified_time: '2025-01-01T00:00:00Z' }
@@ -323,5 +313,13 @@ describe('$lib/api', () => {
323
313
  await runAiBasedOnResponse('Some text', response)
324
314
  expect(global.fetch).not.toHaveBeenCalledTimes(1)
325
315
  })
316
+
317
+ it('Should call fetch if ai_enabled is true and ai_last_run is null, regardless of content_modified_time', async () => {
318
+ const response = { ai_enabled: true, ai_last_run: null }
319
+
320
+ // @ts-ignore
321
+ await runAiBasedOnResponse('Some text', response)
322
+ expect(global.fetch).toHaveBeenCalled()
323
+ })
326
324
  })
327
325
  })