@froomle/frontend-sdk 0.0.14 → 0.0.16

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.
@@ -0,0 +1,5 @@
1
+ var i=class u{static global(e){return u.globals[e]?u.globals[e]:u.globals[e]={}}static createStatic(e,t,r){let s=null;Object.defineProperty(e,t,{enumerable:!0,get:function(){return r!=null&&(s=r(),r=null),s},set:function(n){r!=null&&(s=r(),r=null),s=n}})}static iterator(e){if(Array.isArray(e)){let t=e;return function(){return u.mkIter(t)}}else return typeof e.iterator=="function"?e.iterator.bind(e):e.iterator}static getIterator(e){return Array.isArray(e)?u.mkIter(e):e.iterator()}static mkIter(e){return new Ae(e)}static extend(e){function t(){this[u.new].apply(this,arguments)}return Object.setPrototypeOf(t.prototype,e.prototype),t}static inherits(e,t){t==null&&(t=!1);function r(){t&&e&&r[u.init]&&r[u.init](),this[u.new].apply(this,arguments)}return t?r[u.init]=()=>{let s=e();s[u.init]&&s[u.init](),Object.setPrototypeOf(r.prototype,s.prototype),r[u.init]=void 0}:e&&e[u.init]?(t=!0,r[u.init]=()=>{e[u.init]&&e[u.init](),Object.setPrototypeOf(r.prototype,e.prototype),r[u.init]=void 0}):e&&Object.setPrototypeOf(r.prototype,e.prototype),r}static bind(e,t){if(t==null)return null;t.__id__==null&&(t.__id__=u.fid++);let r=null;return e.hx__closures__==null?e.hx__closures__={}:r=e.hx__closures__[t.__id__],r==null&&(r=t.bind(e),e.hx__closures__[t.__id__]=r),r}static get __name__(){return"genes.Register"}get __class__(){return u}};i.$global=typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:void 0;i.globals={};i.new=Symbol();i.init=Symbol();i.fid=0;var Ae=i.global("$hxClasses")["genes._Register.ArrayIterator"]=class ze extends i.inherits(){[i.new](e){this.current=0,this.array=e}hasNext(){return this.current<this.array.length}next(){return this.array[this.current++]}static get __name__(){return"genes._Register.ArrayIterator"}get __class__(){return ze}};Ae.prototype.array=null;Ae.prototype.current=null;var Jt=i.$global,Ce=i.global("$hxClasses")["haxe.ValueException"]=class We extends i.inherits(()=>k,!0){[i.new](e,t,r){super[i.new](String(e),t,r),this.value=e}unwrap(){return this.value}static get __name__(){return"haxe.ValueException"}static get __super__(){return k}get __class__(){return We}};Ce.prototype.value=null;var Qt=i.$global,k=i.global("$hxClasses")["haxe.Exception"]=class ye extends i.inherits(()=>Error,!0){[i.new](e,t,r){Error.call(this,e),this.message=e,this.__previousException=t,this.__nativeException=r!=null?r:this}unwrap(){return this.__nativeException}get_native(){return this.__nativeException}static caught(e){return e instanceof ye?e:e instanceof Error?new ye(e.message,null,e):new Ce(e,null,e)}static thrown(e){return e instanceof ye?e.get_native():e instanceof Error?e:new Ce(e)}static get __name__(){return"haxe.Exception"}static get __super__(){return Error}get __class__(){return ye}};k.prototype.native=null;k.prototype.__skipStack=null;k.prototype.__nativeException=null;k.prototype.__previousException=null;var er=i.$global,E=i.global("$hxClasses").Std=class Ke{static string(e){return be.__string_rec(e,"")}static parseInt(e){let t=parseInt(e);return isNaN(t)?null:t}static random(e){return e<=0?0:Math.floor(Math.random()*e)}static get __name__(){return"Std"}get __class__(){return Ke}};Object.defineProperty(String.prototype,"__class__",{value:String,enumerable:!1,writable:!0}),String.__name__=!0,Array.__name__=!0,It={},Et={},Ct=Number,qt=Boolean,St={},kt={};var It,Et,Ct,qt,St,kt;var ir=i.$global,be=i.global("$hxClasses")["js.Boot"]=class G{static getClass(e){if(e==null)return null;if(e instanceof Array)return Array;{let t=e.__class__;if(t!=null)return t;let r=G.__nativeClassName(e);return r!=null?G.__resolveNativeClass(r):null}}static __string_rec(e,t){if(e==null)return"null";if(t.length>=5)return"<...>";let r=typeof e;switch(r=="function"&&(e.__name__||e.__ename__)&&(r="object"),r){case"function":return"<function>";case"object":if(e.__enum__){let g=i.global("$hxEnums")[e.__enum__].__constructs__[e._hx_index],f=g._hx_name;return g.__params__?(t=t+" ",f+"("+(function(_){var c;let y=[];{let b=0,p=g.__params__;for(;b<p.length;){let S=p[b];b=b+1,y.push(G.__string_rec(e[S],t))}}return c=y,c})(this).join(",")+")"):f}if(e instanceof Array){let m="[";t+=" ";let g=0,f=e.length;for(;g<f;){let _=g++;m+=(_>0?",":"")+G.__string_rec(e[_],t)}return m+="]",m}let s;try{s=e.toString}catch{return"???"}if(s!=null&&s!=Object.toString&&typeof s=="function"){let m=e.toString();if(m!="[object Object]")return m}let n=`{
2
+ `;t+=" ";let l=e.hasOwnProperty!=null,a=null;for(a in e)l&&!e.hasOwnProperty(a)||a=="prototype"||a=="__class__"||a=="__super__"||a=="__interfaces__"||a=="__properties__"||(n.length!=2&&(n+=`,
3
+ `),n+=t+a+" : "+G.__string_rec(e[a],t));return t=t.substring(1),n+=`
4
+ `+t+"}",n;break;case"string":return e;default:return String(e)}}static __interfLoop(e,t){if(e==null)return!1;if(e==t)return!0;let r=e.__interfaces__;if(r!=null&&(e.__super__==null||e.__super__.__interfaces__!=r)){let s=0,n=r.length;for(;s<n;){let l=s++,a=r[l];if(a==t||G.__interfLoop(a,t))return!0}}return G.__interfLoop(e.__super__,t)}static __instanceof(e,t){if(t==null)return!1;switch(t){case Array:return e instanceof Array;case"$hxCoreType__Bool":return typeof e=="boolean";case"$hxCoreType__Dynamic":return e!=null;case"$hxCoreType__Float":return typeof e=="number";case"$hxCoreType__Int":return typeof e=="number"?(e|0)===e:!1;case String:return typeof e=="string";default:if(e!=null){if(typeof t=="function"){if(G.__downcastCheck(e,t))return!0}else if(typeof t=="object"&&G.__isNativeObj(t)&&e instanceof t)return!0}else return!1;return t=="$hxCoreType__Class"&&e.__name__!=null||t=="$hxCoreType__Enum"&&e.__ename__!=null?!0:e.__enum__!=null?i.global("$hxEnums")[e.__enum__]==t:!1}}static __downcastCheck(e,t){return e instanceof t?!0:t.__isInterface__?G.__interfLoop(G.getClass(e),t):!1}static __cast(e,t){if(e==null||G.__instanceof(e,t))return e;throw k.thrown("Cannot cast "+E.string(e)+" to "+E.string(t))}static __nativeClassName(e){let t=G.__toStr.call(e).slice(8,-1);return t=="Object"||t=="Function"||t=="Math"||t=="JSON"?null:t}static __isNativeObj(e){return G.__nativeClassName(e)!=null}static __resolveNativeClass(e){return i.$global[e]}static get __name__(){return"js.Boot"}get __class__(){return G}};be.__toStr={}.toString;var ur=i.$global,$e=i.global("$hxClasses")["js.Browser"]=class Qe{static get supported(){return this.get_supported()}static get_supported(){return typeof window!="undefined"&&typeof window.location!="undefined"?typeof window.location.protocol=="string":!1}static createXMLHttpRequest(){if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;if(typeof ActiveXObject!="undefined")return new"ActiveXObject"("Microsoft.XMLHTTP");throw k.thrown("Unable to create XMLHttpRequest object.")}static get __name__(){return"js.Browser"}get __class__(){return Qe}};var gr=i.$global,Y=i.global("$hxEnums")["haxe.io.Error"]={__ename__:"haxe.io.Error",Blocked:{_hx_name:"Blocked",_hx_index:0,__enum__:"haxe.io.Error"},Overflow:{_hx_name:"Overflow",_hx_index:1,__enum__:"haxe.io.Error"},OutsideBounds:{_hx_name:"OutsideBounds",_hx_index:2,__enum__:"haxe.io.Error"},Custom:Object.assign(u=>({_hx_index:3,__enum__:"haxe.io.Error",e:u}),{_hx_name:"Custom",__params__:["e"]})};Y.__constructs__=[Y.Blocked,Y.Overflow,Y.OutsideBounds,Y.Custom];Y.__empty_constructs__=[Y.Blocked,Y.Overflow,Y.OutsideBounds];var dr=i.$global,te=i.global("$hxEnums")["haxe.io.Encoding"]={__ename__:"haxe.io.Encoding",UTF8:{_hx_name:"UTF8",_hx_index:0,__enum__:"haxe.io.Encoding"},RawNative:{_hx_name:"RawNative",_hx_index:1,__enum__:"haxe.io.Encoding"}};te.__constructs__=[te.UTF8,te.RawNative];te.__empty_constructs__=[te.UTF8,te.RawNative];var wr=i.$global,me=i.global("$hxClasses")["haxe.io.Bytes"]=class Fe extends i.inherits(){[i.new](e){this.length=e.byteLength,this.b=new Uint8Array(e),this.b.bufferValue=e,e.hxBytes=this,e.bytes=this.b}getString(e,t,r){if(e<0||t<0||e+t>this.length)throw k.thrown(Y.OutsideBounds);r==null&&(r=te.UTF8);let s="",n=this.b,l=e,a=e+t;switch(r._hx_index){case 0:let m=e>0;for(;l<a;){let g=n[l++];if(g<128){if(g==0)break;s+=String.fromCodePoint(g)}else if(g<224){let f=(g&63)<<6|n[l++]&127;s+=String.fromCodePoint(f)}else if(g<240){let f=n[l++],_=(g&31)<<12|(f&127)<<6|n[l++]&127;s+=String.fromCodePoint(_)}else{let f=n[l++],_=n[l++],c=(g&15)<<18|(f&127)<<12|(_&127)<<6|n[l++]&127;s+=String.fromCodePoint(c)}}break;case 1:for(;l<a;){let g=n[l++]|n[l++]<<8;s+=String.fromCodePoint(g)}break}return s}static ofData(e){let t=e.hxBytes;return t!=null?t:new Fe(e)}static get __name__(){return"haxe.io.Bytes"}get __class__(){return Fe}};me.prototype.length=null;me.prototype.b=null;var Er=i.$global,Z=i.global("$hxClasses")["haxe.http.HttpBase"]=class Xe extends i.inherits(){[i.new](e){this.url=e,this.headers=[],this.params=[],this.emptyOnData=i.bind(this,this.onData)}get responseData(){return this.get_responseData()}setHeader(e,t){let r=0,s=this.headers.length;for(;r<s;){let n=r++;if(this.headers[n].name==e){this.headers[n]={name:e,value:t};return}}this.headers.push({name:e,value:t})}setPostData(e){this.postData=e,this.postBytes=null}onData(e){}onBytes(e){}onError(e){}onStatus(e){}hasOnData(){return i.bind(this,this.onData)!=this.emptyOnData}success(e){this.responseBytes=e,this.responseAsString=null,this.hasOnData()&&this.onData(this.get_responseData()),this.onBytes(this.responseBytes)}get_responseData(){return this.responseAsString==null&&this.responseBytes!=null&&(this.responseAsString=this.responseBytes.getString(0,this.responseBytes.length,te.UTF8)),this.responseAsString}static get __name__(){return"haxe.http.HttpBase"}get __class__(){return Xe}};Z.prototype.url=null;Z.prototype.responseBytes=null;Z.prototype.responseAsString=null;Z.prototype.postData=null;Z.prototype.postBytes=null;Z.prototype.headers=null;Z.prototype.params=null;Z.prototype.emptyOnData=null;var Sr=i.$global,qe=i.global("$hxClasses")["haxe.iterators.MapKeyValueIterator"]=class Ye extends i.inherits(){[i.new](e){this.map=e,this.keys=e.keys()}hasNext(){return this.keys.hasNext()}next(){let e=this.keys.next();return{value:this.map.get(e),key:e}}static get __name__(){return"haxe.iterators.MapKeyValueIterator"}get __class__(){return Ye}};qe.prototype.map=null;qe.prototype.keys=null;var Pr=i.$global,Oe=function(){};Oe.__isInterface__=!0;var Fr=i.$global,Se=i.global("$hxClasses")["genes.util.EsMap"]=class ve extends i.inherits(){[i.new](){this.inst=new Map}set(e,t){this.inst.set(e,t)}get(e){return this.inst.get(e)}remove(e){return this.inst.delete(e)}exists(e){return this.inst.has(e)}keys(){return ve.adaptIterator(this.inst.keys())}iterator(){return ve.adaptIterator(this.inst.values())}toString(){let e=[],t=ve.adaptIterator(this.inst.keys());for(;t.hasNext();){let r=t.next();e.push(""+E.string(r)+" => "+E.string(this.inst.get(r)))}return"{"+e.join(", ")+"}"}clear(){this.inst.clear()}static adaptIterator(e){let t,r,s=function(){let n=e.next();t=n.value,r=n.done};return{hasNext:function(){return r==null&&s(),!r},next:function(){r==null&&s();let n=t;return s(),n}}}static get __name__(){return"genes.util.EsMap"}get __class__(){return ve}};Se.prototype.inst=null;var Vr=i.$global,Ze=i.global("$hxClasses")["haxe.ds.StringMap"]=class Be extends i.inherits(Se){[i.new](){super[i.new]()}copy(){let e=new Be;return e.inst=new Map(this.inst),e}keyValueIterator(){return new qe(this)}static get __name__(){return"haxe.ds.StringMap"}static get __interfaces__(){return[Oe]}static get __super__(){return Se}get __class__(){return Be}};var Mr=i.$global,N=i.global("$hxClasses").HxOverrides=class et{static cca(e,t){let r=e.charCodeAt(t);if(r==r)return r}static substr(e,t,r){if(r==null)r=e.length;else if(r<0)if(t==0)r=e.length+r;else return"";return e.substr(t,r)}static now(){return Date.now()}static get __name__(){return"HxOverrides"}get __class__(){return et}};typeof performance!="undefined"&&typeof performance.now=="function"&&(N.now=performance.now.bind(performance));var Wr=i.$global,ae=i.global("$hxClasses").StringTools=class ke{static isSpace(e,t){let r=N.cca(e,t);return r>8&&r<14?!0:r==32}static ltrim(e){let t=e.length,r=0;for(;r<t&&ke.isSpace(e,r);)++r;return r>0?N.substr(e,r,t-r):e}static rtrim(e){let t=e.length,r=0;for(;r<t&&ke.isSpace(e,t-r-1);)++r;return r>0?N.substr(e,0,t-r):e}static replace(e,t,r){return e.split(t).join(r)}static get __name__(){return"StringTools"}get __class__(){return ke}};var Xr=i.$global,tt=i.global("$hxClasses").Lambda=class rt{static exists(e,t){let r=i.getIterator(e);for(;r.hasNext();){let s=r.next();if(t(s))return!0}return!1}static get __name__(){return"Lambda"}get __class__(){return rt}};var nn=i.$global,we=i.global("$hxClasses").EReg=class nt extends i.inherits(){[i.new](e,t){this.r=new RegExp(e,t.split("u").join(""))}match(e){return this.r.global&&(this.r.lastIndex=0),this.r.m=this.r.exec(e),this.r.s=e,this.r.m!=null}matched(e){if(this.r.m!=null&&e>=0&&e<this.r.m.length)return this.r.m[e];throw k.thrown("EReg::matched")}matchedPos(){if(this.r.m==null)throw k.thrown("No string matched");return{pos:this.r.m.index,len:this.r.m[0].length}}matchSub(e,t,r){if(r==null&&(r=-1),this.r.global){this.r.lastIndex=t,this.r.m=this.r.exec(r<0?e:N.substr(e,0,t+r));let s=this.r.m!=null;return s&&(this.r.s=e),s}else{let s=this.match(r<0?N.substr(e,t,null):N.substr(e,t,r));return s&&(this.r.s=e,this.r.m.index+=t),s}}map(e,t){let r=0,s="";do{if(r>=e.length)break;if(!this.matchSub(e,r)){s+=E.string(N.substr(e,r,null));break}let n=this.matchedPos();s+=E.string(N.substr(e,r,n.pos-r)),s+=E.string(t(this)),n.len==0?(s+=E.string(N.substr(e,n.pos,1)),r=n.pos+1):r=n.pos+n.len}while(this.r.global);return!this.r.global&&r>0&&r<e.length&&(s+=E.string(N.substr(e,r,null))),s}static get __name__(){return"EReg"}get __class__(){return nt}};we.prototype.r=null;var pn=i.$global,ue=i.global("$hxClasses")["haxe.http.HttpJs"]=class st extends i.inherits(Z){[i.new](e){this.async=!0,this.withCredentials=!1,super[i.new](e)}request(e){this.responseAsString=null,this.responseBytes=null,this.responseHeaders=null;let t=this.req=$e.createXMLHttpRequest(),r=this,s=function(f){if(t.readyState!=4)return;let _;try{_=t.status}catch{_=null}if(_==0&&$e.get_supported()&&i.$global.location!=null){let c=i.$global.location.protocol.toLowerCase();new we("^(?:about|app|app-storage|.+-extension|file|res|widget):$","").match(c)&&(_=t.response!=null?200:404)}if(_==null&&(_=null),_!=null&&r.onStatus(_),_!=null&&_>=200&&_<400){r.req=null;let c=t.getAllResponseHeaders().split(`\r
5
+ `),y=[],b=0,p=c;for(;b<p.length;){let x=p[b];++b,x!=""&&y.push(x)}c=y;let S=new Ze;r.responseHeaders=S;let d=0;for(;d<c.length;){let x=c[d];++d;let q=x.split(": "),D=q.shift(),V=q.length==1?q[0]:q.join(": ");V=ae.ltrim(ae.rtrim(V)),r.responseHeaders.inst.set(D,V)}r.success(me.ofData(t.response))}else if(_==null||_==0&&t.response==null)r.req=null,r.onError("Failed to connect or resolve host");else if(_==null){r.req=null;let c=t.response!=null?me.ofData(t.response):null;r.responseBytes=c,r.onError("Http Error #"+t.status)}else switch(_){case 12007:r.req=null,r.onError("Unknown host");break;case 12029:r.req=null,r.onError("Failed to connect to host");break;default:r.req=null;let c=t.response!=null?me.ofData(t.response):null;r.responseBytes=c,r.onError("Http Error #"+t.status)}};this.async&&(t.onreadystatechange=s);let n,l=this.postData,a=this.postBytes;if(l==null)if(a==null)n=null;else{let f=a;n=new Blob([f.b.bufferValue])}else a==null?n=l:n=null;if(n!=null)e=!0;else{let f=0,_=this.params;for(;f<_.length;){let c=_[f];++f,n==null?n="":n=(n==null?"null":E.string(n))+"&";let y=c.name,b=(n==null?"null":E.string(n))+encodeURIComponent(y)+"=",p=c.value;n=b+encodeURIComponent(p)}}try{if(e)t.open("POST",this.url,this.async);else if(n!=null){let f=this.url.split("?").length<=1;t.open("GET",this.url+(f?"?":"&")+(n==null?"null":E.string(n)),this.async),n=null}else t.open("GET",this.url,this.async);t.responseType="arraybuffer"}catch(f){let _=k.caught(f).unwrap();this.req=null,this.onError(_.toString());return}t.withCredentials=this.withCredentials,!tt.exists(this.headers,function(f){return f.name=="Content-Type"})&&e&&this.postData==null&&t.setRequestHeader("Content-Type","application/x-www-form-urlencoded");let m=0,g=this.headers;for(;m<g.length;){let f=g[m];++m,t.setRequestHeader(f.name,f.value)}t.send(n),this.async||s(null)}static get __name__(){return"haxe.http.HttpJs"}static get __super__(){return Z}get __class__(){return st}};ue.prototype.async=null;ue.prototype.withCredentials=null;ue.prototype.responseHeaders=null;ue.prototype.req=null;var bn=i.$global,He=i.global("$hxClasses").Type=class it{static createInstance(e,t){let r=Function.prototype.bind.apply(e,[null].concat(t));return new r}static get __name__(){return"Type"}get __class__(){return it}};var xn=i.$global,R=i.global("$hxClasses").Reflect=class lt{static field(e,t){try{return e[t]}catch{return null}}static getProperty(e,t){let r;if(e==null)return null;{let s;return e.__properties__?(r=e.__properties__["get_"+t],s=r):s=!1,s?e[r]():e[t]}}static setProperty(e,t,r){let s,n;e.__properties__?(s=e.__properties__["set_"+t],n=s):n=!1,n?e[s](r):e[t]=r}static fields(e){let t=[];if(e!=null){let s=Object.prototype.hasOwnProperty;for(var r in e)r!="__id__"&&r!="hx__closures__"&&s.call(e,r)&&t.push(r)}return t}static compare(e,t){return e==t?0:e>t?1:-1}static get __name__(){return"Reflect"}get __class__(){return lt}};var Dn=i.$global,Ue=i.global("$hxClasses")["internal.http.FetchHttp"]=class ot extends i.inherits(ue){[i.new](e){this.responseStatus=0,super[i.new](e)}request(e){let t=i.$global,r=t.fetch,s=t.Headers,n=t.URLSearchParams;if(r==null){this.onError("Fetch API not found.");return}let l=He.createInstance(s,[]),a=0,m=this.headers;for(;a<m.length;){let p=m[a];++a,l.append(p.name,p.value)}let g=e?"POST":"GET",f=null;if(e)if(this.postData!=null)f=this.postData;else{f=He.createInstance(n,[]);let p=0,S=this.params;for(;p<S.length;){let d=S[p];++p,f.append(d.name,d.value)}}let _={method:g,headers:l,body:f},c=this,y=r(this.url,_).then(function(p){if(c.responseStatus=p.status,c.onStatus(p.status),p.ok)return p.text();throw k.thrown("HTTP Error: "+E.string(p.status))}).then(function(p){c.onData(p)}),b=R.field(y,"catch");b!=null&&b.apply(y,[function(p){c.onError(E.string(p))}])}static get __name__(){return"internal.http.FetchHttp"}static get __super__(){return ue}get __class__(){return ot}};Ue.prototype.responseStatus=null;var $n=i.$global,Le=i.global("$hxClasses")["internal.data.UUID"]=class at{static randomHexChar(){return"0123456789abcdef".charAt(E.random(16))}static v4(){let e="",t=0;for(;t<36;)switch(t++){case 14:e+="4";break;case 19:e+=E.string("0123456789abcdef".charAt(8+E.random(4)));break;case 8:case 13:case 18:case 23:e+="-";break;default:e+=E.string("0123456789abcdef".charAt(E.random(16)))}return e}static get __name__(){return"internal.data.UUID"}get __class__(){return at}};Le.HEX="0123456789abcdef";var Bn=i.$global,ge=function(){};ge.__isInterface__=!0;var fe=function(){};fe.__isInterface__=!0;var _e=function(){};_e.__isInterface__=!0;var zn=i.$global,o=i.global("$hxClasses")["internal.RecoBackendV2"]=class v extends i.inherits(){[i.new](){}static _requestUri(){return(v._safe_request?"https://":"http://")+v._req_domain+"/api/"+v._environment+"/recommendations/requests"}static noConsentBody(){return{device_id:"no-consent",user_group:"no-consent",version:"no-consent"}}static buildRequestBody(e){let t={lists:e,page_type:v._page_visit,channel:v._channel};if(v._consent>=2&&v._history.length>0&&(t.histories=v._buildHistories()),v._consent<2){let a=v.noConsentBody(),m=0,g=R.fields(a);for(;m<g.length;){let f=g[m];++m,t[f]=R.field(a,f)}}else v._user_id!=null&&(t.user_id=v._user_id),t.device_id=v._device_id;let r=0,s=v._others;for(;r<s.length;){let a=s[r];++r,t[a.key]=a.value}let n=R.field(t,"context_item"),l=R.field(t,"context_item_type");return n!=null&&E.string(n)!=""&&(l==null||E.string(l)=="")&&(t.context_item_type="article"),t}static _buildHistories(){let e=[],t=0,r=v._history;for(;t<r.length;){let s=r[t];++t,e.push({id:s,item_type:"article"})}return{pageviews:e}}static requestsToLists(e){let t=[],r="",s=[],n=0,l=[],a=function(c,y,b){r=c,s=y,n=0,l=b},m=function(c){let y=[];if(c==null)return y;let b=0;for(;b<c.length;){let p=c[b];++b,!(p==null||p.key==null||p.key=="")&&y.push({key:p.key,value:p.value})}return y},g=function(c,y){if(c==null&&y==null)return!0;if(c==null||y==null||c.length!=y.length)return!1;let b=new Array(c.length),p=0,S=c.length;for(;p<S;){let O=p++;b[O]=JSON.stringify(c[O])}let d=b,x=new Array(y.length),q=0,D=y.length;for(;q<D;){let O=q++;x[O]=JSON.stringify(y[O])}let V=x;d.sort(R.compare),V.sort(R.compare);let $=0,F=d.length;for(;$<F;){let O=$++;if(d[O]!=V[O])return!1}return!0},f=function(){let c={limit:n,list_name:r,list_size:n},y=0;for(;y<s.length;){let p=s[y];++y;let S=p.value;S instanceof Array||(S=[S]),c[p.key]=S}let b=0;for(;b<l.length;){let p=l[b];++b,c[p.key]=p.value}t.push(c)},_=0;for(;_<e.length;){let c=e[_];++_;let y=m(c.filters),b=c.others!=null?c.others:[];if(r==""){a(c.list,y,b),n+=1;continue}else(r!=c.list||!g(s,y)||!g(l,b))&&(f(),a(c.list,y,b));n+=1}return n!=0&&f(),t}static _requestRecos(e){let t=null,r=new Promise(function(c,y){t=c}),s=r;s._resolve=t,s._isFinished=!1,s._result=null;let n=r,l=null,a=new Ue(v._requestUri());a.setHeader("Content-Type","application/json");let m=v.buildRequestBody(e),g=JSON.stringify(m);a.setPostData(g),a.onError=function(c){throw k.thrown("HTTP Request Error: "+c)};try{a.request(!0)}catch(c){let y=k.caught(c).unwrap();throw k.thrown("Failed to execute synchronous request: "+E.string(y)+g)}let f=function(c){let y=JSON.parse(c),b=de.fromRequestData(y),p=n;p._isFinished||(p._result=b,p._isFinished=!0,p._resolve(b))},_=a.get_responseData();return _!=null?f(_):a.onData=f,n}static getOrder(e,t,r){let s={list_name:e,limit:r.length,list_size:r.length},n={};R.setProperty(n,t,r),R.setProperty(s,"order",n);let l=null,a=new Promise(function(_,c){l=_}),m=a;m._resolve=l,m._isFinished=!1,m._result=null;let g=a,f;return v.getRawRecommendations([s]).then(function(_){let c=[],y=_.lists()[0].items;if(y instanceof Array){let p=0,S=y;for(;p<S.length;){let d=S[p];++p;let x=d.get("categories");x!=null&&c.push(x)}}let b=g;b._isFinished||(b._result=c,b._isFinished=!0,b._resolve(c))}),g}static getRawRecommendations(e){return v._requestRecos(e)}static addHistories(e){v._history=v._history.concat(e)}static setOthers(e,t){let r=0,s=v._others;for(;r<s.length;){let n=s[r];if(++r,n.key==e){n.value=t;return}}v._others.push({key:e,value:t})}static setConsent(e){e>2&&(e=2),v._consent=e,e==2&&v.getDeviceId()=="no-consent"&&v.setDeviceId(Le.v4())}static setChannel(e){v._channel=e}static setPageVisit(e){v._page_visit=e}static setEnvironment(e){v._environment=e}static setDeviceId(e){v._device_id=e}static setUserId(e){v._user_id=e}static setRequestDomain(e){v._req_domain=e}static setSafeRequest(e){v._safe_request=e}static setContextItem(e){v.setOthers("context_item",e)}static setContextItemType(e){v.setOthers("context_item_type",e)}static getRequestDomain(){return v._req_domain}static getSafeRequest(){return v._safe_request}static getEnvironment(){return v._environment}static getPageVisit(){return v._page_visit}static getUserId(){return v._user_id}static getDeviceId(){return v._device_id}static getConsent(){return v._consent}static getChannel(){return v._channel}static getOthers(e){let t=0,r=v._others;for(;t<r.length;){let s=r[t];if(++t,e==s.key)return s.value}return null}static getContextItem(){return v.getOthers("context_item")}static getContextItemType(){return v.getOthers("context_item_type")}static get __name__(){return"internal.RecoBackendV2"}get __class__(){return v}};o._environment=null;o._device_id="no-consent";o._user_id=null;o._consent=0;o._req_domain="europe-west1.froomle.com";o._page_visit=null;o._channel="www-desktop";o._safe_request=!0;o._history=[];o._others=[];var de=i.global("$hxClasses")["internal._RecommendationsInternal"]=class Ve extends i.inherits(){[i.new](e,t,r,s,n){this.request_id=t,this.user_group=r,this.device_id=e,this.user_id=s,this._lists=n}items(){let e=[],t=0,r=this._lists;for(;t<r.length;){let s=r[t];++t;let n=0,l=s.items;for(;n<l.length;){let a=l[n];++n,e.push(a)}}return e}lists(){return this._lists}getItemsByListName(e){let t=0,r=this._lists;for(;t<r.length;){let s=r[t];if(++t,s.list_name==e)return s}return null}toJson(){let e={request_id:this.request_id,user_group:this.user_group,user_id:this.user_id,device_id:this.device_id,lists:[]},t=0,r=this._lists;for(;t<r.length;){let s=r[t];++t;let n={limit:s.limit,list_key:s.list_key,list_name:s.list_name,list_size:s.list_size,items:[]},l=0,a=s.items;for(;l<a.length;){let m=a[l];++l,n.items.push(be.__cast(m,re).getData())}e.lists.push(n)}return JSON.stringify(e)}static fromRequestData(e){let t=R.getProperty(e,"lists"),r=[],s=0;for(;s<t.length;){let n=t[s];++s;let l=R.getProperty(n,"items"),a=[],m=0;for(;m<l.length;){let f=l[m];++m,R.setProperty(f,"request_id",R.getProperty(e,"request_id")),R.setProperty(f,"user_group",R.getProperty(e,"user_group")),a.push(new re(f))}let g=new ce({limit:R.getProperty(n,"limit"),list_key:R.getProperty(n,"list_key"),list_name:R.getProperty(n,"list_name"),list_size:R.getProperty(n,"list_size"),items:a,request_id:R.getProperty(e,"request_id")});r.push(g)}return new Ve(R.getProperty(e,"device_id"),R.getProperty(e,"request_id"),R.getProperty(e,"user_group"),R.getProperty(e,"user_id"),r)}static get __name__(){return"internal._RecommendationsInternal"}static get __interfaces__(){return[ge]}get __class__(){return Ve}};de.prototype.request_id=null;de.prototype.user_group=null;de.prototype.user_id=null;de.prototype.device_id=null;de.prototype._lists=null;var ce=i.global("$hxClasses")["internal._RecommendationsListInternal"]=class ut extends i.inherits(){[i.new](e){this.items=e.items,this.limit=e.limit,this.list_key=e.list_key,this.list_name=e.list_name,this.list_size=e.list_size,this.request_id=e.request_id}static get __name__(){return"internal._RecommendationsListInternal"}static get __interfaces__(){return[fe]}get __class__(){return ut}};ce.prototype.limit=null;ce.prototype.list_key=null;ce.prototype.list_name=null;ce.prototype.list_size=null;ce.prototype.items=null;ce.prototype.request_id=null;var re=i.global("$hxClasses")["internal._RecommendationItemInternal"]=class ct extends i.inherits(){[i.new](e){this.Id=R.getProperty(e,"item_id"),this.RequestId=R.getProperty(e,"request_id"),this.UserGroup=R.getProperty(e,"user_group"),this._data=e}getData(){return this._data}get(e){return this._data[e]}toJson(){return JSON.stringify(this._data)}static get __name__(){return"internal._RecommendationItemInternal"}static get __interfaces__(){return[_e]}get __class__(){return ct}};re.prototype.Id=null;re.prototype.RequestId=null;re.prototype.UserGroup=null;re.prototype._data=null;var Qn=i.$global,je=function(){};je.__isInterface__=!0;var es=i.$global,xe=i.global("$hxClasses")["internal.js.JSFroomleDomTree"]=class De extends i.inherits(){[i.new](){}getRoot(){return this.root}createElement(e){return this.root.ownerDocument.createElement(e)}toString(){return this.root.ownerDocument.documentElement.outerHTML}static fromHTML(e){let r=new DOMParser().parseFromString(e,"text/html"),s=new De;return s.root=r.documentElement,s}static fromDocument(e){let t=new De;return t.root=e.documentElement,t}static get __name__(){return"internal.js.JSFroomleDomTree"}static get __interfaces__(){return[je]}get __class__(){return De}};xe.prototype.root=null;var cs=i.$global,oe=i.global("$hxClasses")["internal.domHandler.DomDomDom"]=class ne extends i.inherits(){[i.new](){}static _fillRecoTargets(e){let t=null,r=new Promise(function(h,w){t=h}),s=r;s._resolve=t,s._isFinished=!1,s._result=null;let n=r;if(e==null){let h=n;return h._isFinished||(h._result=!1,h._isFinished=!0,h._resolve(!1)),n}let l=[],a=new Array,m=e.querySelectorAll("*"),g=0,f=m.length;for(;g<f;){let h=g++,w=m.item(h);w instanceof HTMLElement&&a.push(w)}let _=a;_.push(e);let c=0;for(;c<_.length;){let h=_[c];++c;let w=0,I=new Array,C=0,P=h.attributes;for(;C<P.length;){let H=P[C];++C,I.push({name:H.name,value:H.value})}let j=I;for(;w<j.length;){let H=j[w];++w,H.name=="data-froomle-reco"&&l.push(h)}}let y=[],b=0;for(;b<l.length;){let h=l[b];++b;let w=h.getAttribute("data-froomle-request-id"),I=h.getAttribute("data-froomle-id"),C=w!=null&&w!="",P=I!=null&&I!="";!C&&!P&&y.push(h)}if(y.length<1){let h=null,w=new Promise(function(C,P){h=C}),I=w;return I._resolve=h,I._isFinished=!1,I._result=null,w}let p=[],S=[],d="",x=[],q=[],D=[],V=function(h,w){if(h.length!=w.length)return!1;let I=new Array(h.length),C=0,P=h.length;for(;C<P;){let T=C++;I[T]=JSON.stringify(h[T])}let j=I,H=new Array(w.length),J=0,K=w.length;for(;J<K;){let T=J++;H[T]=JSON.stringify(w[T])}let W=H;j.sort(R.compare),W.sort(R.compare);let z=0,M=j.length;for(;z<M;){let T=z++;if(j[T]!=W[T])return!1}return!0},$=function(){let h={list_name:d,list_size:q.length,limit:q.length},w=0;for(;w<x.length;){let C=x[w];if(++w,C!=null&&C.key!=null&&C.key!=""){let P=C.value;P instanceof Array||(P=[P]),R.setProperty(h,C.key,P)}}let I=0;for(;I<D.length;){let C=D[I];++I,R.setProperty(h,C.key,C.value)}p.push(h),S.push(q)},F=function(h,w,I,C){d=h,x=w,q=[C],D=I},O=0;for(;O<y.length;){let h=y[O];++O;let w=function(H){let J=[],K=0,W=new Array,z=0,M=H.attributes;for(;z<M.length;){let U=M[z];++z,W.push({name:U.name,value:U.value})}let T=W;for(;K<T.length;){let U=T[K];if(++K,U.name.startsWith("data-froomle-reco-filter-")){let X=N.substr(U.name,25,null),ie=U.value;J.push({key:X,value:ie})}}return J},I=function(H){let J=[],K=0,W=new Array,z=0,M=H.attributes;for(;z<M.length;){let U=M[z];++z,W.push({name:U.name,value:U.value})}let T=W;for(;K<T.length;){let U=T[K];if(++K,U.name.startsWith("data-froomle-variable-")){let X=N.substr(U.name,22,null),ie=U.value;J.push({key:X,value:ie})}}return J},C=h.getAttribute("data-froomle-reco"),P=w(h),j=I(h);if(d==""){F(C,P,j,h);continue}else if(C==d&&V(x,P)&&V(D,j)){q.push(h);continue}else{$(),F(C,P,j,h);continue}}d!=""&&$();let B;if(o.getPageVisit()==null){let h=n;return h._isFinished||(h._result=!1,h._isFinished=!0,h._resolve(!1)),n}else if(o.getEnvironment()==null){let h=n;return h._isFinished||(h._result=!1,h._isFinished=!0,h._resolve(!1)),n}else try{B=o.getRawRecommendations(p)}catch{let w=n;return w._isFinished||(w._result=!1,w._isFinished=!0,w._resolve(!1)),n}return B.then(function(h){let w=h.lists(),I=w.length,C=0,P=I;for(;C<P;){let H=C++,J=w[H],K=J.items.length!=S[H].length,W=J.items.length,z=0,M=W;for(;z<M;){let T=z++,U=J.items[T],X=S[H][T];ne._fillParameters(X,U,h.request_id)}}let j=n;j._isFinished||(j._result=!0,j._isFinished=!0,j._resolve(!0))}),n}static getAttrByPath(e,t,r){r==null&&(r="fgh");try{t=new we("\\\\[(\\\\w+)\\\\]","g").map(t,function(g){return"."+g.matched(1)}),t=ae.replace(t,"[","."),t=ae.replace(t,"]",""),N.cca(t,0)==46&&(t=N.substr(t,1,null));let n=t.split("."),l=e.get(n[0]),a=1,m=n.length;for(;a<m;){let g=a++;if(l==null)return null;l instanceof Array&&E.parseInt(n[g])!=null?l=l[E.parseInt(n[g])]:l=R.field(l,n[g])}return l}catch{return r}}static _buildHistories(e){let t=[],r=new Array,s=e.querySelectorAll("[data-froomle-id]"),n=0,l=s.length;for(;n<l;){let g=n++,f=s.item(g);f instanceof HTMLElement&&r.push(f)}let a=r,m=0;for(;m<a.length;){let g=a[m];++m,t.push(g.getAttribute("data-froomle-id"))}o.addHistories(t)}static fillParam(e,t,r,s,n){n==null&&(n="");try{let l=ne.getAttrByPath(s,r,n);if(t=="inner"){e.textContent=l;let a=e.textContent}else e.setAttribute(t,l)}catch{}}static _fillParameters(e,t,r){e.setAttribute("data-froomle-id",t.get("item_id")),e.setAttribute("data-froomle-request-id",r);let s=t.get("item_type");s!=null&&E.string(s)!=""&&e.setAttribute("data-froomle-item-type",E.string(s)),t.UserGroup!=null&&t.UserGroup!=""&&e.setAttribute("data-froomle-user-group",t.UserGroup);let n=new Array,l=e.querySelectorAll("*"),a=0,m=l.length;for(;a<m;){let _=a++,c=l.item(_);c instanceof HTMLElement&&n.push(c)}let g=n,f=0;for(;f<g.length;){let _=g[f];++f;let c=0,y=new Array,b=0,p=_.attributes;for(;b<p.length;){let d=p[b];++b,y.push({name:d.name,value:d.value})}let S=y;for(;c<S.length;){let d=S[c];if(++c,d.name.startsWith("data-froomle-param-")){let x=ae.replace(d.name,"data-froomle-param-",""),q=d.value;ne.fillParam(_,x,q,t)}}}}static _orderElements(e){let t=function(d,x,q){let D=[],V=new Array,$=0,F=d.childNodes;for(;$<F.length;){let I=F[$];++$,V.push(I)}let O=V,B=0;for(;B<O.length;){let I=O[B];++B;try{if(I.getAttribute("data-froomle-ordervalue")!=null){D.push(I);let P=e.createElement("span");P.setAttribute("data-froomle-tmp-node","tmp"),d.replaceChild(P,I)}}catch{}}let h=[],w=0;for(;w<D.length;){let I=D[w];++w,h.push(I.getAttribute("data-froomle-ordervalue"))}return{el:d,key:x,values:h,orderChildren:D,list_name:q}},r=null,s=new Promise(function(d,x){r=d}),n=s;n._resolve=r,n._isFinished=!1,n._result=null;let l=s,a=e.getRoot(),m=new Array,g=a.querySelectorAll("*"),f=0,_=g.length;for(;f<_;){let d=f++,x=g.item(d);x instanceof HTMLElement&&m.push(x)}let c=m,y=[],b=0;for(;b<c.length;){let d=c[b];++b;let x=0,q=new Array,D=0,V=d.attributes;for(;D<V.length;){let F=V[D];++D,q.push({name:F.name,value:F.value})}let $=q;for(;x<$.length;){let F=$[x];++x,F.name.startsWith("data-froomle-order-")&&y.push(t(d,F.name.substring(19),F.value))}}if(y.length<1){let d=l;return d._isFinished||(d._result=!1,d._isFinished=!0,d._resolve(!1)),l}let p=[],S=0;for(;S<y.length;){let d=y[S];++S;let x={list_name:d.list_name,limit:d.values.length,list_size:d.values.length},q={};R.setProperty(q,d.key,d.values),R.setProperty(x,"order",q),p.push(x)}if(o.getPageVisit()==null){let d=l;return d._isFinished||(d._result=!1,d._isFinished=!0,d._resolve(!1)),l}else if(o.getEnvironment()==null){let d=l;return d._isFinished||(d._result=!1,d._isFinished=!0,d._resolve(!1)),l}try{o.getRawRecommendations(p).then(function(d){let x=d.lists(),q=x.length,D=0,V=q;for(;D<V;){let F=D++,O=x[F],B=y[F];B.el.setAttribute("data-froomle-request-id",d.request_id);let h=new Array,w=0,I=O.items;for(;w<I.length;){let M=I[w];++w;let T=M.get(B.key),U=M.get(B.key),X=B.values.length,ie=0,pe=X;for(;ie<pe;){let le=ie++,he=B.values[le];if(T==he){let jt=B.orderChildren.length,Rt=B.orderChildren[le];h.push(Rt),B.orderChildren.splice(le,1),B.values.splice(le,1);break}}}let C=h.length,P=B.el,j=new Array,H=0,J=P.childNodes;for(;H<J.length;){let M=J[H];++H,j.push(M)}let K=j.length,W=0,z=K;for(;W<z;){let M=W++,T=B.el,U=new Array,X=0,ie=T.childNodes;for(;X<ie.length;){let he=ie[X];++X,U.push(he)}let pe=U[M],le;if(pe instanceof HTMLElement?le=pe.hasAttribute("data-froomle-tmp-node"):le=!1,le){B.el.replaceChild(h[0],pe),h.splice(0,1);let he=h.length;if(h.length==0)break}}}let $=l;$._isFinished||($._result=!0,$._isFinished=!0,$._resolve(!0))})}catch{let x=l;x._isFinished||(x._result=!1,x._isFinished=!0,x._resolve(!1))}return l}static domInit(e){let t=null,r=new Promise(function(l,a){t=l}),s=r;s._resolve=t,s._isFinished=!1,s._result=null;let n=r;return ne._orderElements(e).then(function(l){ne._buildHistories(e.getRoot()),ne._fillRecoTargets(e.getRoot()).then(function(a){let m=n;m._isFinished||(m._result=!0,m._isFinished=!0,m._resolve(!0))})}),n}static fillElementRecos(e){ne._fillRecoTargets(e)}static runFromHtml(e){if(e=="")return"";let t;try{let s=new DOMParser().parseFromString(e,"text/html"),n=new xe;n.root=s.documentElement,t=n}catch{return e}return ne.domInit(t),t.toString()}static get __name__(){return"internal.domHandler.DomDomDom"}get __class__(){return ne}};var ds=i.$global,L=i.global("$hxClasses").FroomleSdk=class se{static register(){se.registered||se._env_set&&se._page_visit_set&&(se.registered=!0)}static buildScriptTag(){let e='<script src="https://cdn.jsdelivr.net/npm/@froomle/frontend-sdk@0.0.11/dist/froomle.global.js" data-froomle-env="'+o.getEnvironment()+'" ',t=o.getPageVisit();t!=null&&(e+='data-froomle-page-visit="'+t+'" ');let r=o.getContextItem();if(r!=null){e+='data-froomle-context-item="'+r+'" ';let g=o.getContextItemType();(g==null||g=="")&&(g="article"),e+='data-froomle-context-item-type="'+g+'" '}let s=o.getDeviceId();s!=null&&(e+='data-froomle-device-id="'+s+'" ');let n=o.getUserId();n!=null&&(e+='data-froomle-user-id="'+n+'" ');let l=o.getConsent();l>0&&(e+='data-froomle-consent="'+l+'" ');let a=o.getRequestDomain();a!=null&&(e+='data-froomle-request-domain="'+a+'" ');let m=o.getChannel();return m!=null&&(e+='data-froomle-channel="'+m+'" '),e+="></script>",e}static setEnvironment(e){o.setEnvironment(e),se._env_set=!0,se.register()}static setDeviceId(e){o.setDeviceId(e)}static setUserId(e){o.setUserId(e)}static setConsent(e){o.setConsent(e)}static setPageVisit(e){o.setPageVisit(e),se._page_visit_set=!0,se.register()}static setChannel(e){o.setChannel(e)}static setRequestDomain(e){o.setRequestDomain(e)}static setSafeRequest(e){o.setSafeRequest(e)}static setContextItem(e){o.setContextItem(e)}static setContextItemType(e){o.setContextItemType(e)}static setCustomVariable(e,t){o.setOthers(e,t)}static getUserId(){return o.getUserId()}static getDeviceId(){return o.getDeviceId()}static getEnvironment(){return o.getEnvironment()}static getSafeRequest(){return o.getSafeRequest()}static getPageVisit(){return o.getPageVisit()}static getConsent(){return o.getConsent()}static getRecommendations(e){return o.getRawRecommendations(e)}static getChannel(){return o.getChannel()}static getVersion(){return"0.0.11"}static runFromHtml(e){return oe.runFromHtml(e)}static get __name__(){return"FroomleSdk"}get __class__(){return se}};L._env_set=!1;L._page_visit_set=!1;L.registered=!1;var ys=i.$global;function mt(){return(o.getSafeRequest()?"https://":"http://")+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events"}function Pe(){return o.getConsent()>=1}function gt(){return o.getConsent()<2?"no-consent":o.getDeviceId()}function ft(){let u=o.getChannel();if(u)return u}function Dt(u){let e=(u==null?void 0:u.getAttribute("data-froomle-id"))||(u==null?void 0:u.getAttribute("data-froomle-action-item"));if(e)return e}function Pt(u){let e=(u==null?void 0:u.getAttribute("data-froomle-item-type"))||(u==null?void 0:u.getAttribute("data-froomle-action-item-type"));if(e)return e}function _t(u){var r;let e=u==null?void 0:u.getAttribute("data-froomle-user-group");return e||(typeof document=="undefined"?void 0:((r=document.querySelector("[data-froomle-user-group]"))==null?void 0:r.getAttribute("data-froomle-user-group"))||void 0)}function dt(u,e,t="impression",r){if(!Pe())return;let s=ft()||"www-desktop",n={event_type:t,page_type:o.getPageVisit(),action_item:u,action_item_type:e,channel:s,device_id:gt()},l=_t();if(l&&(n.user_group=l),r)for(let a in r)n[a]=r[a];try{fetch(mt(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({events:[n]})})}catch{}}var A=class A{static queueIfNotPresent(e){A.impressionQueue.includes(e)||A.impressionQueue.push(e)}static generateBody(){let e=[];for(let t of A.impressionQueue){let r=Dt(t);if(!r)continue;let s=Pt(t)||"article",n=ft()||"www-desktop",l={event_type:"impression",page_type:o.getPageVisit(),action_item:r,action_item_type:s,channel:n,device_id:gt()},a=_t(t);a&&(l.user_group=a),o.getConsent()>=2&&o.getUserId()&&(l.user_id=o.getUserId());let m=t.getAttribute("data-froomle-reco"),g=t.getAttribute("data-froomle-request-id");m&&g&&(l.list_name=m,l.request_id=g),e.push(l)}return A.impressionQueue=[],JSON.stringify({events:e})}static sendImpressions(){console.log(A.impressionQueue),A.impressionQueue.length!==0&&Pe()&&fetch(mt(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:A.generateBody()})}static getViewPortRect(){let e=window.innerWidth||document.documentElement.clientWidth,t=window.innerHeight||document.documentElement.clientHeight;return{left:0,top:0,x:0,y:0,toJSON(){},right:e,bottom:t,width:e,height:t}}static intersectsWithViewPortRect(e){let t=e.getBoundingClientRect(),r=A.getViewPortRect();return t.right>r.left&&t.left<r.right&&t.bottom>r.top&&t.top<r.bottom}static addIntersectionImpressionListener(e){A.observer.observe(e)}static processDocument(){if(Pe()){console.log("\u{1F680} Processing document for impressions");for(let e of document.querySelectorAll("[data-froomle-id]"))A.intersectsWithViewPortRect(e)?A.queueIfNotPresent(e):A.addIntersectionImpressionListener(e);A.sendImpressions()}}static processElement(e){if(!Pe()||!(e instanceof Element))return;let t=[];e.matches("[data-froomle-id]")&&t.push(e);for(let r of e.querySelectorAll("[data-froomle-id]"))t.push(r);if(t.length!==0){for(let r of t)A.intersectsWithViewPortRect(r)?A.queueIfNotPresent(r):A.addIntersectionImpressionListener(r);A.sendImpressions()}}};A.impressionQueue=[],A.observer=null;var Q=A;typeof document!="undefined"&&(Q.observer=new IntersectionObserver((u,e)=>{u.forEach(t=>{t.isIntersecting&&(Q.impressionQueue.push(t.target),Q.observer.unobserve(t.target))}),Q.impressionQueue.length>0&&Q.sendImpressions()}));var Re=class u{static canTrackEvents(){return o.getConsent()>=1}static readDeviceId(){return o.getConsent()<2?"no-consent":o.getDeviceId()}static readChannel(){let e=o.getChannel();if(e)return e}static readUserGroup(){var t;return typeof document=="undefined"?void 0:((t=document.querySelector("[data-froomle-user-group]"))==null?void 0:t.getAttribute("data-froomle-user-group"))||void 0}static uri(){return(o.getSafeRequest()?"https://":"http://")+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events"}static generateBody(){let e=u.readChannel()||"www-desktop",t={event_type:"page_visit",page_type:o.getPageVisit(),channel:e,device_id:u.readDeviceId()},r=u.readUserGroup();return r&&(t.user_group=r),o.getConsent()>=2&&o.getUserId()&&(t.user_id=o.getUserId()),JSON.stringify({events:[t]})}static sendPageVisit(){o.getPageVisit()&&(o.getContextItem()||u.canTrackEvents()&&fetch(u.uri(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:u.generateBody()}))}};var Ie=class u{static canTrackEvents(){return o.getConsent()>=1}static readDeviceId(){return o.getConsent()<2?"no-consent":o.getDeviceId()}static readChannel(){let e=o.getChannel();if(e)return e}static readActionItemType(){let e=o.getContextItemType();if(e)return e}static readUserGroup(){var t;return typeof document=="undefined"?void 0:((t=document.querySelector("[data-froomle-user-group]"))==null?void 0:t.getAttribute("data-froomle-user-group"))||void 0}static uri(){return(o.getSafeRequest()?"https://":"http://")+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events"}static generateBody(){let e=u.readActionItemType()||"article",t=u.readChannel()||"www-desktop",r={event_type:"detail_pageview",page_type:o.getPageVisit(),action_item:o.getContextItem(),action_item_type:e,channel:t,device_id:u.readDeviceId()},s=u.readUserGroup();return s&&(r.user_group=s),o.getConsent()>=2&&o.getUserId()&&(r.user_id=o.getUserId()),JSON.stringify({events:[r]})}static sendPageView(){o.getContextItem()&&o.getPageVisit()&&u.canTrackEvents()&&fetch(u.uri(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:u.generateBody()})}};var ee=class ee{static canTrackEvents(){return o.getConsent()>=1}static readDeviceId(){return o.getConsent()<2?"no-consent":o.getDeviceId()}static readChannel(){let e=o.getChannel();if(e)return e}static readActionItem(e){let t=e.getAttribute("data-froomle-id")||e.getAttribute("data-froomle-action-item");if(t)return t}static readActionItemType(e){let t=e.getAttribute("data-froomle-item-type")||e.getAttribute("data-froomle-action-item-type");if(t)return t}static readUserGroup(e){var s;let t=e.getAttribute("data-froomle-user-group");return t||(typeof document=="undefined"?void 0:((s=document.querySelector("[data-froomle-user-group]"))==null?void 0:s.getAttribute("data-froomle-user-group"))||void 0)}static registerClickables(){ee.listenerRegistered||(ee.listenerRegistered=!0,document.addEventListener("click",e=>{if(!ee.canTrackEvents())return;let t=e instanceof MouseEvent?e:null,r=e.target,s=r instanceof Element?r:r instanceof Node?r.parentElement:null;if(!s)return;let n=s.closest("a");if(!n)return;let l=n.closest("[data-froomle-id]");if(!l)return;let a=ee.readActionItem(l);if(!a)return;let m=ee.readActionItemType(l)||"article",g=ee.readChannel()||"www-desktop",f=n instanceof HTMLAnchorElement?n.href:null,_=!!f&&e.cancelable&&!e.defaultPrevented&&!n.hasAttribute("download")&&(!n.target||n.target==="_self")&&!!t&&t.button===0&&!t.metaKey&&!t.ctrlKey&&!t.shiftKey&&!t.altKey;_&&e.preventDefault();let c={event_type:"click_on_recommendation",page_type:o.getPageVisit(),action_item:a,action_item_type:m,channel:g,device_id:ee.readDeviceId()},y=ee.readUserGroup(l);y&&(c.user_group=y);let b=l.getAttribute("data-froomle-reco"),p=l.getAttribute("data-froomle-request-id");b&&p&&(c.list_name=b,c.request_id=p),o.getConsent()>=2&&o.getUserId()&&(c.user_id=o.getUserId());let d=(o.getSafeRequest()?"https://":"http://")+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events",x=JSON.stringify({events:[c]}),q=new Blob([x],{type:"application/json"}),D=()=>fetch(d,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:x,keepalive:!0});if(_&&f){let $=!1,F=()=>{$||($=!0,window.location.assign(f))},O=window.setTimeout(F,200);D().catch(()=>{typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function"&&navigator.sendBeacon(d,q)}).finally(()=>{window.clearTimeout(O),F()});return}typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function"&&navigator.sendBeacon(d,q)||D().catch(()=>{})},!0))}};ee.listenerRegistered=!1;var Ee=ee;var Tt=xe,pt=L.setEnvironment,ht=L.setPageVisit,yt=L.setRequestDomain,bt=L.setSafeRequest,vt=typeof L.setChannel=="function"?L.setChannel:o.setChannel,wt=L.setContextItem,xt=L.setContextItemType,At=L.setCustomVariable,$t=o.addHistories;function Me(u){L.setUserId(u),document.cookie=`froomle_user_id=${u}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Ge(u){L.setDeviceId(u),document.cookie=`froomle_device_id=${u}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Je(u){L.setConsent(u),document.cookie=`froomle_consent=${u}; max-age=${3600*24*365*20}; path=/; samesite=lax`,document.cookie=`froomle_device_id=${L.getDeviceId()}; max-age=${3600*24*365*20}; path=/; samesite=lax`}typeof window!="undefined"&&(window.setFroomleConsent=Je);function Ne(u){let e=document.cookie.split("; ");for(let t of e){let[r,s]=t.split("=");if(r===u)return decodeURIComponent(s)}return null}var Ft=L.getRecommendations;if(!globalThis.froomleInitialized&&(globalThis.froomleInitialized=!0,typeof document!="undefined")){let u=document.currentScript;if(u){let t=u.getAttribute("data-froomle-device-id"),r=u.getAttribute("data-froomle-user-id"),s=u.getAttribute("data-froomle-env"),n=u.getAttribute("data-froomle-page-visit"),l=u.getAttribute("data-froomle-request-domain"),a=u.getAttribute("data-froomle-context-item"),m=u.getAttribute("data-froomle-context-item-type"),g=u.getAttribute("data-froomle-safe-request"),f=u.getAttribute("data-froomle-channel");if(pt(s),n&&ht(n),a&&(wt(a),xt(m||"article")),t)Ge(t);else{let _=Ne("froomle_device_id");_&&Ge(_)}if(r)Me(r);else{let _=Ne("froomle_user_id");_&&Me(_)}l&&yt(l),g&&bt(g!=="false"),f&&vt(f)}let e=Ne("froomle_consent");e&&Je(e),document.addEventListener("DOMContentLoaded",()=>{console.log("froomle loads dom"),oe.domInit(Tt.fromDocument(document)).then(s=>{Ee.registerClickables(),Q.processDocument(),Re.sendPageVisit(),Ie.sendPageView()});function t(s){return s.matches("[data-froomle-reco]")||s.querySelector("[data-froomle-reco]")!==null}new MutationObserver(s=>{for(let n of s)if(n.type==="childList"&&n.addedNodes.forEach(l=>{l instanceof Element&&(t(l)&&oe.fillElementRecos(l),Q.processElement(l))}),n.type==="attributes"&&n.target instanceof Element)if(n.attributeName==="data-froomle-reco"){let l=n.target.getAttribute("data-froomle-request-id");(!l||l==="")&&oe.fillElementRecos(n.target)}else if(n.attributeName==="data-froomle-request-id"){let l=n.target.getAttribute("data-froomle-request-id"),a=n.target.getAttribute("data-froomle-id");n.target.getAttribute("data-froomle-reco")&&(!l||l==="")&&(!a||a==="")&&oe.fillElementRecos(n.target)}else n.attributeName==="data-froomle-id"&&Q.processElement(n.target)}).observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-froomle-reco","data-froomle-request-id","data-froomle-id"]})})}function Ot(){let u,e;return{promise:new Promise((r,s)=>{u=r,e=s}),resolve:u,reject:e}}var Te=[];function Bt(){var u;return typeof document=="undefined"?"":((u=document.querySelector("[data-froomle-user-group]"))==null?void 0:u.getAttribute("data-froomle-user-group"))||""}function Ht(u,e){var n;let t=u,s=((n=t==null?void 0:t.UserGroup)!=null?n:typeof(t==null?void 0:t.get)=="function"?t.get("user_group"):void 0)||e;if(s&&(t.UserGroup=s,typeof(t==null?void 0:t.getData)=="function")){let l=t.getData();l&&(!l.user_group||l.user_group==="")&&(l.user_group=s)}}async function Ut(){let u=Te.map(n=>n.req),e=o.requestsToLists(u),t=await o.getRawRecommendations(e),r=t.user_group||"";typeof document!="undefined"&&r&&document.documentElement.setAttribute("data-froomle-user-group",r);let s=t.lists().reduce((n,l)=>[...n,...l.items],[]);s.forEach(n=>Ht(n,r)),Te.forEach((n,l)=>{s[l]?n.deferred.resolve(s[l]):n.deferred.reject(new Error("No recommendation available"))}),Te.length=0}function Lt(u){let e,t,s={promise:new Promise((n,l)=>{e=n,t=l}),resolve:e,reject:t};return Te.push({deferred:s,req:u}),s}function Vt(u){let t=Lt(u).promise,r=Ot(),s=function(l,a){return t.then(m=>(n.completeTarget=m,l?l(m):m),m=>a?a(m):Promise.reject(m))},n=new Proxy(new re({item_id:"",request_id:"",user_group:""}),{get(l,a,m){if(a==="then")return s;if(a==="__froomleList")return u.list;if(a==="get"){let _=Reflect.get(l,a,m);return function(...c){return _.apply(this,c)}}if(typeof a!="string")return Reflect.get(l,a,m);let g=Reflect.get(l,a,m);if(g!=null&&g!=="")return g;let f=l.get(a);return f!=null&&f!==""?f:""},set(l,a,m,g){if(a==="completeTarget"){if(Object.assign(l,m),!l.UserGroup){let f=Bt();if(f){l.UserGroup=f;let _=l.getData();_&&!_.user_group&&(_.user_group=f)}}return!0}return Reflect.set(l,a,m,g)},has(l,a){return l.get(a)!==void 0}});return n}export{ge as a,fe as b,_e as c,o as d,dt as e,Q as f,Re as g,Ie as h,Ee as i,pt as j,ht as k,yt as l,bt as m,vt as n,wt as o,xt as p,At as q,$t as r,Me as s,Ge as t,Je as u,Ft as v,Ut as w,Vt as x};
@@ -1,5 +1,5 @@
1
- "use strict";var FroomleFrontendSdk=(()=>{var $e=Object.defineProperty;var bt=Object.getOwnPropertyDescriptor;var wt=Object.getOwnPropertyNames;var vt=Object.prototype.hasOwnProperty;var xt=(c,e)=>{for(var t in e)$e(c,t,{get:e[t],enumerable:!0})},Rt=(c,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of wt(e))!vt.call(c,n)&&n!==t&&$e(c,n,{get:()=>e[n],enumerable:!(r=bt(e,n))||r.enumerable});return c};var Et=c=>Rt($e({},"__esModule",{value:!0}),c);var Bt={};xt(Bt,{FroomleDomTree:()=>mt,RecoBackendV2:()=>o,RecommendationItem:()=>ge,RecommendationList:()=>me,Recommendations:()=>_e,_RecommendationItemInternal:()=>se,addHistories:()=>Ft,getRecommendations:()=>Ot,sendEvent:()=>_t,setConsent:()=>Me,setContextItem:()=>Pt,setContextItemType:()=>qt,setCustomVariable:()=>At,setDeviceId:()=>Ne,setEnvironment:()=>gt,setPageView:()=>dt,setPageVisit:()=>pt,setRequestDomain:()=>ft,setSafeRequest:()=>ht,setUserId:()=>je});var i=class c{static global(e){return c.globals[e]?c.globals[e]:c.globals[e]={}}static createStatic(e,t,r){let n=null;Object.defineProperty(e,t,{enumerable:!0,get:function(){return r!=null&&(n=r(),r=null),n},set:function(s){r!=null&&(n=r(),r=null),n=s}})}static iterator(e){if(Array.isArray(e)){let t=e;return function(){return c.mkIter(t)}}else return typeof e.iterator=="function"?e.iterator.bind(e):e.iterator}static getIterator(e){return Array.isArray(e)?c.mkIter(e):e.iterator()}static mkIter(e){return new Pe(e)}static extend(e){function t(){this[c.new].apply(this,arguments)}return Object.setPrototypeOf(t.prototype,e.prototype),t}static inherits(e,t){t==null&&(t=!1);function r(){t&&e&&r[c.init]&&r[c.init](),this[c.new].apply(this,arguments)}return t?r[c.init]=()=>{let n=e();n[c.init]&&n[c.init](),Object.setPrototypeOf(r.prototype,n.prototype),r[c.init]=void 0}:e&&e[c.init]?(t=!0,r[c.init]=()=>{e[c.init]&&e[c.init](),Object.setPrototypeOf(r.prototype,e.prototype),r[c.init]=void 0}):e&&Object.setPrototypeOf(r.prototype,e.prototype),r}static bind(e,t){if(t==null)return null;t.__id__==null&&(t.__id__=c.fid++);let r=null;return e.hx__closures__==null?e.hx__closures__={}:r=e.hx__closures__[t.__id__],r==null&&(r=t.bind(e),e.hx__closures__[t.__id__]=r),r}static get __name__(){return"genes.Register"}get __class__(){return c}};i.$global=typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:void 0;i.globals={};i.new=Symbol();i.init=Symbol();i.fid=0;var Pe=i.global("$hxClasses")["genes._Register.ArrayIterator"]=class Je extends i.inherits(){[i.new](e){this.current=0,this.array=e}hasNext(){return this.current<this.array.length}next(){return this.array[this.current++]}static get __name__(){return"genes._Register.ArrayIterator"}get __class__(){return Je}};Pe.prototype.array=null;Pe.prototype.current=null;var jt=i.$global,Ie=i.global("$hxClasses")["haxe.ValueException"]=class Ge extends i.inherits(()=>D,!0){[i.new](e,t,r){super[i.new](String(e),t,r),this.value=e}unwrap(){return this.value}static get __name__(){return"haxe.ValueException"}static get __super__(){return D}get __class__(){return Ge}};Ie.prototype.value=null;var Gt=i.$global,D=i.global("$hxClasses")["haxe.Exception"]=class de extends i.inherits(()=>Error,!0){[i.new](e,t,r){Error.call(this,e),this.message=e,this.__previousException=t,this.__nativeException=r!=null?r:this}unwrap(){return this.__nativeException}get_native(){return this.__nativeException}static caught(e){return e instanceof de?e:e instanceof Error?new de(e.message,null,e):new Ie(e,null,e)}static thrown(e){return e instanceof de?e.get_native():e instanceof Error?e:new Ie(e)}static get __name__(){return"haxe.Exception"}static get __super__(){return Error}get __class__(){return de}};D.prototype.native=null;D.prototype.__skipStack=null;D.prototype.__nativeException=null;D.prototype.__previousException=null;var Wt=i.$global,S=i.global("$hxClasses").Std=class ze{static string(e){return ye.__string_rec(e,"")}static parseInt(e){let t=parseInt(e);return isNaN(t)?null:t}static random(e){return e<=0?0:Math.floor(Math.random()*e)}static get __name__(){return"Std"}get __class__(){return ze}};Object.defineProperty(String.prototype,"__class__",{value:String,enumerable:!1,writable:!0}),String.__name__=!0,Array.__name__=!0,It={},St={},kt=Number,Ct=Boolean,Dt={},$t={};var It,St,kt,Ct,Dt,$t;var tr=i.$global,ye=i.global("$hxClasses")["js.Boot"]=class M{static getClass(e){if(e==null)return null;if(e instanceof Array)return Array;{let t=e.__class__;if(t!=null)return t;let r=M.__nativeClassName(e);return r!=null?M.__resolveNativeClass(r):null}}static __string_rec(e,t){if(e==null)return"null";if(t.length>=5)return"<...>";let r=typeof e;switch(r=="function"&&(e.__name__||e.__ename__)&&(r="object"),r){case"function":return"<function>";case"object":if(e.__enum__){let _=i.global("$hxEnums")[e.__enum__].__constructs__[e._hx_index],f=_._hx_name;return _.__params__?(t=t+" ",f+"("+(function(y){var u;let d=[];{let b=0,p=_.__params__;for(;b<p.length;){let E=p[b];b=b+1,d.push(M.__string_rec(e[E],t))}}return u=d,u})(this).join(",")+")"):f}if(e instanceof Array){let g="[";t+=" ";let _=0,f=e.length;for(;_<f;){let y=_++;g+=(y>0?",":"")+M.__string_rec(e[y],t)}return g+="]",g}let n;try{n=e.toString}catch{return"???"}if(n!=null&&n!=Object.toString&&typeof n=="function"){let g=e.toString();if(g!="[object Object]")return g}let s=`{
2
- `;t+=" ";let l=e.hasOwnProperty!=null,a=null;for(a in e)l&&!e.hasOwnProperty(a)||a=="prototype"||a=="__class__"||a=="__super__"||a=="__interfaces__"||a=="__properties__"||(s.length!=2&&(s+=`,
3
- `),s+=t+a+" : "+M.__string_rec(e[a],t));return t=t.substring(1),s+=`
4
- `+t+"}",s;break;case"string":return e;default:return String(e)}}static __interfLoop(e,t){if(e==null)return!1;if(e==t)return!0;let r=e.__interfaces__;if(r!=null&&(e.__super__==null||e.__super__.__interfaces__!=r)){let n=0,s=r.length;for(;n<s;){let l=n++,a=r[l];if(a==t||M.__interfLoop(a,t))return!0}}return M.__interfLoop(e.__super__,t)}static __instanceof(e,t){if(t==null)return!1;switch(t){case Array:return e instanceof Array;case"$hxCoreType__Bool":return typeof e=="boolean";case"$hxCoreType__Dynamic":return e!=null;case"$hxCoreType__Float":return typeof e=="number";case"$hxCoreType__Int":return typeof e=="number"?(e|0)===e:!1;case String:return typeof e=="string";default:if(e!=null){if(typeof t=="function"){if(M.__downcastCheck(e,t))return!0}else if(typeof t=="object"&&M.__isNativeObj(t)&&e instanceof t)return!0}else return!1;return t=="$hxCoreType__Class"&&e.__name__!=null||t=="$hxCoreType__Enum"&&e.__ename__!=null?!0:e.__enum__!=null?i.global("$hxEnums")[e.__enum__]==t:!1}}static __downcastCheck(e,t){return e instanceof t?!0:t.__isInterface__?M.__interfLoop(M.getClass(e),t):!1}static __cast(e,t){if(e==null||M.__instanceof(e,t))return e;throw D.thrown("Cannot cast "+S.string(e)+" to "+S.string(t))}static __nativeClassName(e){let t=M.__toStr.call(e).slice(8,-1);return t=="Object"||t=="Function"||t=="Math"||t=="JSON"?null:t}static __isNativeObj(e){return M.__nativeClassName(e)!=null}static __resolveNativeClass(e){return i.$global[e]}static get __name__(){return"js.Boot"}get __class__(){return M}};ye.__toStr={}.toString;var ir=i.$global,qe=i.global("$hxClasses")["js.Browser"]=class Xe{static get supported(){return this.get_supported()}static get_supported(){return typeof window!="undefined"&&typeof window.location!="undefined"?typeof window.location.protocol=="string":!1}static createXMLHttpRequest(){if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;if(typeof ActiveXObject!="undefined")return new"ActiveXObject"("Microsoft.XMLHTTP");throw D.thrown("Unable to create XMLHttpRequest object.")}static get __name__(){return"js.Browser"}get __class__(){return Xe}};var ar=i.$global,Y=i.global("$hxEnums")["haxe.io.Error"]={__ename__:"haxe.io.Error",Blocked:{_hx_name:"Blocked",_hx_index:0,__enum__:"haxe.io.Error"},Overflow:{_hx_name:"Overflow",_hx_index:1,__enum__:"haxe.io.Error"},OutsideBounds:{_hx_name:"OutsideBounds",_hx_index:2,__enum__:"haxe.io.Error"},Custom:Object.assign(c=>({_hx_index:3,__enum__:"haxe.io.Error",e:c}),{_hx_name:"Custom",__params__:["e"]})};Y.__constructs__=[Y.Blocked,Y.Overflow,Y.OutsideBounds,Y.Custom];Y.__empty_constructs__=[Y.Blocked,Y.Overflow,Y.OutsideBounds];var _r=i.$global,te=i.global("$hxEnums")["haxe.io.Encoding"]={__ename__:"haxe.io.Encoding",UTF8:{_hx_name:"UTF8",_hx_index:0,__enum__:"haxe.io.Encoding"},RawNative:{_hx_name:"RawNative",_hx_index:1,__enum__:"haxe.io.Encoding"}};te.__constructs__=[te.UTF8,te.RawNative];te.__empty_constructs__=[te.UTF8,te.RawNative];var dr=i.$global,ce=i.global("$hxClasses")["haxe.io.Bytes"]=class Ae extends i.inherits(){[i.new](e){this.length=e.byteLength,this.b=new Uint8Array(e),this.b.bufferValue=e,e.hxBytes=this,e.bytes=this.b}getString(e,t,r){if(e<0||t<0||e+t>this.length)throw D.thrown(Y.OutsideBounds);r==null&&(r=te.UTF8);let n="",s=this.b,l=e,a=e+t;switch(r._hx_index){case 0:let g=e>0;for(;l<a;){let _=s[l++];if(_<128){if(_==0)break;n+=String.fromCodePoint(_)}else if(_<224){let f=(_&63)<<6|s[l++]&127;n+=String.fromCodePoint(f)}else if(_<240){let f=s[l++],y=(_&31)<<12|(f&127)<<6|s[l++]&127;n+=String.fromCodePoint(y)}else{let f=s[l++],y=s[l++],u=(_&15)<<18|(f&127)<<12|(y&127)<<6|s[l++]&127;n+=String.fromCodePoint(u)}}break;case 1:for(;l<a;){let _=s[l++]|s[l++]<<8;n+=String.fromCodePoint(_)}break}return n}static ofData(e){let t=e.hxBytes;return t!=null?t:new Ae(e)}static get __name__(){return"haxe.io.Bytes"}get __class__(){return Ae}};ce.prototype.length=null;ce.prototype.b=null;var vr=i.$global,Z=i.global("$hxClasses")["haxe.http.HttpBase"]=class Qe extends i.inherits(){[i.new](e){this.url=e,this.headers=[],this.params=[],this.emptyOnData=i.bind(this,this.onData)}get responseData(){return this.get_responseData()}setHeader(e,t){let r=0,n=this.headers.length;for(;r<n;){let s=r++;if(this.headers[s].name==e){this.headers[s]={name:e,value:t};return}}this.headers.push({name:e,value:t})}setPostData(e){this.postData=e,this.postBytes=null}onData(e){}onBytes(e){}onError(e){}onStatus(e){}hasOnData(){return i.bind(this,this.onData)!=this.emptyOnData}success(e){this.responseBytes=e,this.responseAsString=null,this.hasOnData()&&this.onData(this.get_responseData()),this.onBytes(this.responseBytes)}get_responseData(){return this.responseAsString==null&&this.responseBytes!=null&&(this.responseAsString=this.responseBytes.getString(0,this.responseBytes.length,te.UTF8)),this.responseAsString}static get __name__(){return"haxe.http.HttpBase"}get __class__(){return Qe}};Z.prototype.url=null;Z.prototype.responseBytes=null;Z.prototype.responseAsString=null;Z.prototype.postData=null;Z.prototype.postBytes=null;Z.prototype.headers=null;Z.prototype.params=null;Z.prototype.emptyOnData=null;var Er=i.$global,Se=i.global("$hxClasses")["haxe.iterators.MapKeyValueIterator"]=class We extends i.inherits(){[i.new](e){this.map=e,this.keys=e.keys()}hasNext(){return this.keys.hasNext()}next(){let e=this.keys.next();return{value:this.map.get(e),key:e}}static get __name__(){return"haxe.iterators.MapKeyValueIterator"}get __class__(){return We}};Se.prototype.map=null;Se.prototype.keys=null;var kr=i.$global,Fe=function(){};Fe.__isInterface__=!0;var Pr=i.$global,ke=i.global("$hxClasses")["genes.util.EsMap"]=class be extends i.inherits(){[i.new](){this.inst=new Map}set(e,t){this.inst.set(e,t)}get(e){return this.inst.get(e)}remove(e){return this.inst.delete(e)}exists(e){return this.inst.has(e)}keys(){return be.adaptIterator(this.inst.keys())}iterator(){return be.adaptIterator(this.inst.values())}toString(){let e=[],t=be.adaptIterator(this.inst.keys());for(;t.hasNext();){let r=t.next();e.push(""+S.string(r)+" => "+S.string(this.inst.get(r)))}return"{"+e.join(", ")+"}"}clear(){this.inst.clear()}static adaptIterator(e){let t,r,n=function(){let s=e.next();t=s.value,r=s.done};return{hasNext:function(){return r==null&&n(),!r},next:function(){r==null&&n();let s=t;return n(),s}}}static get __name__(){return"genes.util.EsMap"}get __class__(){return be}};ke.prototype.inst=null;var Tr=i.$global,Ke=i.global("$hxClasses")["haxe.ds.StringMap"]=class Oe extends i.inherits(ke){[i.new](){super[i.new]()}copy(){let e=new Oe;return e.inst=new Map(this.inst),e}keyValueIterator(){return new Se(this)}static get __name__(){return"haxe.ds.StringMap"}static get __interfaces__(){return[Fe]}static get __super__(){return ke}get __class__(){return Oe}};var Ur=i.$global,V=i.global("$hxClasses").HxOverrides=class Ye{static cca(e,t){let r=e.charCodeAt(t);if(r==r)return r}static substr(e,t,r){if(r==null)r=e.length;else if(r<0)if(t==0)r=e.length+r;else return"";return e.substr(t,r)}static now(){return Date.now()}static get __name__(){return"HxOverrides"}get __class__(){return Ye}};typeof performance!="undefined"&&typeof performance.now=="function"&&(V.now=performance.now.bind(performance));var Mr=i.$global,le=i.global("$hxClasses").StringTools=class Ce{static isSpace(e,t){let r=V.cca(e,t);return r>8&&r<14?!0:r==32}static ltrim(e){let t=e.length,r=0;for(;r<t&&Ce.isSpace(e,r);)++r;return r>0?V.substr(e,r,t-r):e}static rtrim(e){let t=e.length,r=0;for(;r<t&&Ce.isSpace(e,t-r-1);)++r;return r>0?V.substr(e,0,t-r):e}static replace(e,t,r){return e.split(t).join(r)}static get __name__(){return"StringTools"}get __class__(){return Ce}};var zr=i.$global,Ze=i.global("$hxClasses").Lambda=class et{static exists(e,t){let r=i.getIterator(e);for(;r.hasNext();){let n=r.next();if(t(n))return!0}return!1}static get __name__(){return"Lambda"}get __class__(){return et}};var Zr=i.$global,we=i.global("$hxClasses").EReg=class tt extends i.inherits(){[i.new](e,t){this.r=new RegExp(e,t.split("u").join(""))}match(e){return this.r.global&&(this.r.lastIndex=0),this.r.m=this.r.exec(e),this.r.s=e,this.r.m!=null}matched(e){if(this.r.m!=null&&e>=0&&e<this.r.m.length)return this.r.m[e];throw D.thrown("EReg::matched")}matchedPos(){if(this.r.m==null)throw D.thrown("No string matched");return{pos:this.r.m.index,len:this.r.m[0].length}}matchSub(e,t,r){if(r==null&&(r=-1),this.r.global){this.r.lastIndex=t,this.r.m=this.r.exec(r<0?e:V.substr(e,0,t+r));let n=this.r.m!=null;return n&&(this.r.s=e),n}else{let n=this.match(r<0?V.substr(e,t,null):V.substr(e,t,r));return n&&(this.r.s=e,this.r.m.index+=t),n}}map(e,t){let r=0,n="";do{if(r>=e.length)break;if(!this.matchSub(e,r)){n+=S.string(V.substr(e,r,null));break}let s=this.matchedPos();n+=S.string(V.substr(e,r,s.pos-r)),n+=S.string(t(this)),s.len==0?(n+=S.string(V.substr(e,s.pos,1)),r=s.pos+1):r=s.pos+s.len}while(this.r.global);return!this.r.global&&r>0&&r<e.length&&(n+=S.string(V.substr(e,r,null))),n}static get __name__(){return"EReg"}get __class__(){return tt}};we.prototype.r=null;var mn=i.$global,oe=i.global("$hxClasses")["haxe.http.HttpJs"]=class rt extends i.inherits(Z){[i.new](e){this.async=!0,this.withCredentials=!1,super[i.new](e)}request(e){this.responseAsString=null,this.responseBytes=null,this.responseHeaders=null;let t=this.req=qe.createXMLHttpRequest(),r=this,n=function(f){if(t.readyState!=4)return;let y;try{y=t.status}catch{y=null}if(y==0&&qe.get_supported()&&i.$global.location!=null){let u=i.$global.location.protocol.toLowerCase();new we("^(?:about|app|app-storage|.+-extension|file|res|widget):$","").match(u)&&(y=t.response!=null?200:404)}if(y==null&&(y=null),y!=null&&r.onStatus(y),y!=null&&y>=200&&y<400){r.req=null;let u=t.getAllResponseHeaders().split(`\r
5
- `),d=[],b=0,p=u;for(;b<p.length;){let x=p[b];++b,x!=""&&d.push(x)}u=d;let E=new Ke;r.responseHeaders=E;let h=0;for(;h<u.length;){let x=u[h];++h;let C=x.split(": "),q=C.shift(),H=C.length==1?C[0]:C.join(": ");H=le.ltrim(le.rtrim(H)),r.responseHeaders.inst.set(q,H)}r.success(ce.ofData(t.response))}else if(y==null||y==0&&t.response==null)r.req=null,r.onError("Failed to connect or resolve host");else if(y==null){r.req=null;let u=t.response!=null?ce.ofData(t.response):null;r.responseBytes=u,r.onError("Http Error #"+t.status)}else switch(y){case 12007:r.req=null,r.onError("Unknown host");break;case 12029:r.req=null,r.onError("Failed to connect to host");break;default:r.req=null;let u=t.response!=null?ce.ofData(t.response):null;r.responseBytes=u,r.onError("Http Error #"+t.status)}};this.async&&(t.onreadystatechange=n);let s,l=this.postData,a=this.postBytes;if(l==null)if(a==null)s=null;else{let f=a;s=new Blob([f.b.bufferValue])}else a==null?s=l:s=null;if(s!=null)e=!0;else{let f=0,y=this.params;for(;f<y.length;){let u=y[f];++f,s==null?s="":s=(s==null?"null":S.string(s))+"&";let d=u.name,b=(s==null?"null":S.string(s))+encodeURIComponent(d)+"=",p=u.value;s=b+encodeURIComponent(p)}}try{if(e)t.open("POST",this.url,this.async);else if(s!=null){let f=this.url.split("?").length<=1;t.open("GET",this.url+(f?"?":"&")+(s==null?"null":S.string(s)),this.async),s=null}else t.open("GET",this.url,this.async);t.responseType="arraybuffer"}catch(f){let y=D.caught(f).unwrap();this.req=null,this.onError(y.toString());return}t.withCredentials=this.withCredentials,!Ze.exists(this.headers,function(f){return f.name=="Content-Type"})&&e&&this.postData==null&&t.setRequestHeader("Content-Type","application/x-www-form-urlencoded");let g=0,_=this.headers;for(;g<_.length;){let f=_[g];++g,t.setRequestHeader(f.name,f.value)}t.send(s),this.async||n(null)}static get __name__(){return"haxe.http.HttpJs"}static get __super__(){return Z}get __class__(){return rt}};oe.prototype.async=null;oe.prototype.withCredentials=null;oe.prototype.responseHeaders=null;oe.prototype.req=null;var fn=i.$global,Be=i.global("$hxClasses").Type=class nt{static createInstance(e,t){let r=Function.prototype.bind.apply(e,[null].concat(t));return new r}static get __name__(){return"Type"}get __class__(){return nt}};var yn=i.$global,R=i.global("$hxClasses").Reflect=class st{static field(e,t){try{return e[t]}catch{return null}}static getProperty(e,t){let r;if(e==null)return null;{let n;return e.__properties__?(r=e.__properties__["get_"+t],n=r):n=!1,n?e[r]():e[t]}}static setProperty(e,t,r){let n,s;e.__properties__?(n=e.__properties__["set_"+t],s=n):s=!1,s?e[n](r):e[t]=r}static fields(e){let t=[];if(e!=null){let n=Object.prototype.hasOwnProperty;for(var r in e)r!="__id__"&&r!="hx__closures__"&&n.call(e,r)&&t.push(r)}return t}static compare(e,t){return e==t?0:e>t?1:-1}static get __name__(){return"Reflect"}get __class__(){return st}};var Sn=i.$global,Te=i.global("$hxClasses")["internal.http.FetchHttp"]=class it extends i.inherits(oe){[i.new](e){this.responseStatus=0,super[i.new](e)}request(e){let t=i.$global,r=t.fetch,n=t.Headers,s=t.URLSearchParams;if(r==null){this.onError("Fetch API not found.");return}let l=Be.createInstance(n,[]),a=0,g=this.headers;for(;a<g.length;){let p=g[a];++a,l.append(p.name,p.value)}let _=e?"POST":"GET",f=null;if(e)if(this.postData!=null)f=this.postData;else{f=Be.createInstance(s,[]);let p=0,E=this.params;for(;p<E.length;){let h=E[p];++p,f.append(h.name,h.value)}}let y={method:_,headers:l,body:f},u=this,d=r(this.url,y).then(function(p){if(u.responseStatus=p.status,u.onStatus(p.status),p.ok)return p.text();throw D.thrown("HTTP Error: "+S.string(p.status))}).then(function(p){u.onData(p)}),b=R.field(d,"catch");b!=null&&b.apply(d,[function(p){u.onError(S.string(p))}])}static get __name__(){return"internal.http.FetchHttp"}static get __super__(){return oe}get __class__(){return it}};Te.prototype.responseStatus=null;var $n=i.$global,Ve=i.global("$hxClasses")["internal.data.UUID"]=class lt{static randomHexChar(){return"0123456789abcdef".charAt(S.random(16))}static v4(){let e="",t=0;for(;t<36;)switch(t++){case 14:e+="4";break;case 19:e+=S.string("0123456789abcdef".charAt(8+S.random(4)));break;case 8:case 13:case 18:case 23:e+="-";break;default:e+=S.string("0123456789abcdef".charAt(S.random(16)))}return e}static get __name__(){return"internal.data.UUID"}get __class__(){return lt}};Ve.HEX="0123456789abcdef";var An=i.$global,_e=function(){};_e.__isInterface__=!0;var me=function(){};me.__isInterface__=!0;var ge=function(){};ge.__isInterface__=!0;var Nn=i.$global,o=i.global("$hxClasses")["internal.RecoBackendV2"]=class w extends i.inherits(){[i.new](){}static _requestUri(){return(w._safe_request?"https://":"http://")+w._req_domain+"/api/"+w._environment+"/recommendations/requests"}static noConsentBody(){return{device_id:"no-consent",user_group:"no-consent",version:"no-consent"}}static buildRequestBody(e){let t={lists:e,page_type:w._page_visit!=null?w._page_visit:w._page_view,channel:"www-desktop"};if(w._history.length>0&&(t.histories=w._buildHistories()),w._consent<2){let s=w.noConsentBody(),l=0,a=R.fields(s);for(;l<a.length;){let g=a[l];++l,t[g]=R.field(s,g)}}else w._user_id!=null&&(t.user_id=w._user_id),t.device_id=w._device_id;let r=0,n=w._others;for(;r<n.length;){let s=n[r];++r,t[s.key]=s.value}return t}static _buildHistories(){let e=[],t=0,r=w._history;for(;t<r.length;){let n=r[t];++t,e.push({id:n,item_type:"article"})}return{pageviews:e}}static requestsToLists(e){let t=[],r="",n=[],s=0,l=[],a=function(u,d,b){r=u,n=d,s=0,l=b},g=function(u){let d=[];if(u==null)return d;let b=0;for(;b<u.length;){let p=u[b];++b,!(p==null||p.key==null||p.key=="")&&d.push({key:p.key,value:p.value})}return d},_=function(u,d){if(u==null&&d==null)return!0;if(u==null||d==null||u.length!=d.length)return!1;let b=new Array(u.length),p=0,E=u.length;for(;p<E;){let j=p++;b[j]=JSON.stringify(u[j])}let h=b,x=new Array(d.length),C=0,q=d.length;for(;C<q;){let j=C++;x[j]=JSON.stringify(d[j])}let H=x;h.sort(R.compare),H.sort(R.compare);let U=0,L=h.length;for(;U<L;){let j=U++;if(h[j]!=H[j])return!1}return!0},f=function(){let u={limit:s,list_name:r,list_size:s},d=0;for(;d<n.length;){let p=n[d];++d;let E=p.value;E instanceof Array||(E=[E]),u[p.key]=E}let b=0;for(;b<l.length;){let p=l[b];++b,u[p.key]=p.value}t.push(u)},y=0;for(;y<e.length;){let u=e[y];++y;let d=g(u.filters),b=u.others!=null?u.others:[];if(r==""){a(u.list,d,b),s+=1;continue}else(r!=u.list||!_(n,d)||!_(l,b))&&(f(),a(u.list,d,b));s+=1}return s!=0&&f(),t}static _requestRecos(e){let t=null,r=new Promise(function(u,d){t=u}),n=r;n._resolve=t,n._isFinished=!1,n._result=null;let s=r,l=null,a=new Te(w._requestUri());a.setHeader("Content-Type","application/json");let g=w.buildRequestBody(e),_=JSON.stringify(g);a.setPostData(_),a.onError=function(u){throw D.thrown("HTTP Request Error: "+u)};try{a.request(!0)}catch(u){let d=D.caught(u).unwrap();throw D.thrown("Failed to execute synchronous request: "+S.string(d)+_)}let f=function(u){let d=JSON.parse(u),b=pe.fromRequestData(d),p=s;p._isFinished||(p._result=b,p._isFinished=!0,p._resolve(b))},y=a.get_responseData();return y!=null?f(y):a.onData=f,s}static getOrder(e,t,r){let n={list_name:e,limit:r.length,list_size:r.length},s={};R.setProperty(s,t,r),R.setProperty(n,"order",s);let l=null,a=new Promise(function(y,u){l=y}),g=a;g._resolve=l,g._isFinished=!1,g._result=null;let _=a,f;return w.getRawRecommendations([n]).then(function(y){let u=[],d=y.lists()[0].items;if(d instanceof Array){let p=0,E=d;for(;p<E.length;){let h=E[p];++p;let x=h.get("categories");x!=null&&u.push(x)}}let b=_;b._isFinished||(b._result=u,b._isFinished=!0,b._resolve(u))}),_}static getRawRecommendations(e){return w._requestRecos(e)}static addHistories(e){w._history=w._history.concat(e)}static setOthers(e,t){let r=0,n=w._others;for(;r<n.length;){let s=n[r];if(++r,s.key==e){s.value=t;return}}w._others.push({key:e,value:t})}static setConsent(e){e>2&&(e=2),w._consent=e,e==2&&w.getDeviceId()=="no-consent"&&w.setDeviceId(Ve.v4())}static setChannel(e){w._channel=e}static setPageVisit(e){w._page_visit=e}static setEnvironment(e){w._environment=e}static setDeviceId(e){w._device_id=e}static setUserId(e){w._user_id=e}static setRequestDomain(e){w._req_domain=e}static setPageView(e){w._page_view=e}static setSafeRequest(e){w._safe_request=e}static setContextItem(e){w.setOthers("context_item",e)}static setContextItemType(e){w.setOthers("context_item_type",e)}static getRequestDomain(){return w._req_domain}static getEnvironment(){return w._environment}static getPageVisit(){return w._page_visit}static getUserId(){return w._user_id}static getDeviceId(){return w._device_id}static getPageView(){return w._page_view}static getConsent(){return w._consent}static getChannel(){return w._channel}static getOthers(e){let t=0,r=w._others;for(;t<r.length;){let n=r[t];if(++t,e==n.key)return n.value}return null}static getContextItem(){return w.getOthers("context_item")}static getContextItemType(){return w.getOthers("context_item_type")}static get __name__(){return"internal.RecoBackendV2"}get __class__(){return w}};o._environment=null;o._device_id="no-consent";o._user_id=null;o._consent=2;o._req_domain="europe-west1.froomle.com";o._page_visit=null;o._page_view=null;o._channel="www-desktop";o._safe_request=!0;o._history=[];o._others=[];var pe=i.global("$hxClasses")["internal._RecommendationsInternal"]=class He extends i.inherits(){[i.new](e,t,r,n,s){this.request_id=t,this.user_group=r,this.device_id=e,this.user_id=n,this._lists=s}items(){let e=[],t=0,r=this._lists;for(;t<r.length;){let n=r[t];++t;let s=0,l=n.items;for(;s<l.length;){let a=l[s];++s,e.push(a)}}return e}lists(){return this._lists}getItemsByListName(e){let t=0,r=this._lists;for(;t<r.length;){let n=r[t];if(++t,n.list_name==e)return n}return null}toJson(){let e={request_id:this.request_id,user_group:this.user_group,user_id:this.user_id,device_id:this.device_id,lists:[]},t=0,r=this._lists;for(;t<r.length;){let n=r[t];++t;let s={limit:n.limit,list_key:n.list_key,list_name:n.list_name,list_size:n.list_size,items:[]},l=0,a=n.items;for(;l<a.length;){let g=a[l];++l,s.items.push(ye.__cast(g,se).getData())}e.lists.push(s)}return JSON.stringify(e)}static fromRequestData(e){let t=R.getProperty(e,"lists"),r=[],n=0;for(;n<t.length;){let s=t[n];++n;let l=R.getProperty(s,"items"),a=[],g=0;for(;g<l.length;){let f=l[g];++g,R.setProperty(f,"request_id",R.getProperty(e,"request_id")),R.setProperty(f,"user_group",R.getProperty(e,"user_group")),a.push(new se(f))}let _=new ae({limit:R.getProperty(s,"limit"),list_key:R.getProperty(s,"list_key"),list_name:R.getProperty(s,"list_name"),list_size:R.getProperty(s,"list_size"),items:a,request_id:R.getProperty(e,"request_id")});r.push(_)}return new He(R.getProperty(e,"device_id"),R.getProperty(e,"request_id"),R.getProperty(e,"user_group"),R.getProperty(e,"user_id"),r)}static get __name__(){return"internal._RecommendationsInternal"}static get __interfaces__(){return[_e]}get __class__(){return He}};pe.prototype.request_id=null;pe.prototype.user_group=null;pe.prototype.user_id=null;pe.prototype.device_id=null;pe.prototype._lists=null;var ae=i.global("$hxClasses")["internal._RecommendationsListInternal"]=class ot extends i.inherits(){[i.new](e){this.items=e.items,this.limit=e.limit,this.list_key=e.list_key,this.list_name=e.list_name,this.list_size=e.list_size,this.request_id=e.request_id}static get __name__(){return"internal._RecommendationsListInternal"}static get __interfaces__(){return[me]}get __class__(){return ot}};ae.prototype.limit=null;ae.prototype.list_key=null;ae.prototype.list_name=null;ae.prototype.list_size=null;ae.prototype.items=null;ae.prototype.request_id=null;var se=i.global("$hxClasses")["internal._RecommendationItemInternal"]=class at extends i.inherits(){[i.new](e){this.Id=R.getProperty(e,"item_id"),this.RequestId=R.getProperty(e,"request_id"),this.UserGroup=R.getProperty(e,"user_group"),this._data=e}getData(){return this._data}get(e){return this._data[e]}toJson(){return JSON.stringify(this._data)}static get __name__(){return"internal._RecommendationItemInternal"}static get __interfaces__(){return[ge]}get __class__(){return at}};se.prototype.Id=null;se.prototype.RequestId=null;se.prototype.UserGroup=null;se.prototype._data=null;var Gn=i.$global,Ue=function(){};Ue.__isInterface__=!0;var Wn=i.$global,ve=i.global("$hxClasses")["internal.js.JSFroomleDomTree"]=class De extends i.inherits(){[i.new](){}getRoot(){return this.root}createElement(e){return this.root.ownerDocument.createElement(e)}toString(){return this.root.ownerDocument.documentElement.outerHTML}static fromHTML(e){let r=new DOMParser().parseFromString(e,"text/html"),n=new De;return n.root=r.documentElement,n}static fromDocument(e){let t=new De;return t.root=e.documentElement,t}static get __name__(){return"internal.js.JSFroomleDomTree"}static get __interfaces__(){return[Ue]}get __class__(){return De}};ve.prototype.root=null;var ls=i.$global,ue=i.global("$hxClasses")["internal.domHandler.DomDomDom"]=class re extends i.inherits(){[i.new](){}static _fillRecoTargets(e){let t=null,r=new Promise(function(m,v){t=m}),n=r;n._resolve=t,n._isFinished=!1,n._result=null;let s=r;if(e==null){let m=s;return m._isFinished||(m._result=!1,m._isFinished=!0,m._resolve(!1)),s}let l=[],a=new Array,g=e.querySelectorAll("*"),_=0,f=g.length;for(;_<f;){let m=_++,v=g.item(m);v instanceof HTMLElement&&a.push(v)}let y=a,u=0;for(;u<y.length;){let m=y[u];++u;let v=0,I=new Array,k=0,$=m.attributes;for(;k<$.length;){let F=$[k];++k,I.push({name:F.name,value:F.value})}let T=I;for(;v<T.length;){let F=T[v];++v,F.name=="data-froomle-reco"&&l.push(m)}}let d=[],b=0;for(;b<l.length;){let m=l[b];++b,m.getAttribute("data-froomle-request-id")==null&&(m.getAttribute("data-froomle-id")==null||m.getAttribute("data-froomle-id")=="")&&d.push(m)}if(d.length<1){let m=null,v=new Promise(function(k,$){m=k}),I=v;return I._resolve=m,I._isFinished=!1,I._result=null,v}let p=[],E=[],h="",x=[],C=[],q=[],H=function(m,v){if(m.length!=v.length)return!1;let I=new Array(m.length),k=0,$=m.length;for(;k<$;){let P=k++;I[P]=JSON.stringify(m[P])}let T=I,F=new Array(v.length),J=0,W=v.length;for(;J<W;){let P=J++;F[P]=JSON.stringify(v[P])}let X=F;T.sort(R.compare),X.sort(R.compare);let G=0,N=T.length;for(;G<N;){let P=G++;if(T[P]!=X[P])return!1}return!0},U=function(){let m={list_name:h,list_size:C.length,limit:C.length},v=0;for(;v<x.length;){let k=x[v];if(++v,k!=null&&k.key!=null&&k.key!=""){let $=k.value;$ instanceof Array||($=[$]),R.setProperty(m,k.key,$)}}let I=0;for(;I<q.length;){let k=q[I];++I,R.setProperty(m,k.key,k.value)}p.push(m),E.push(C)},L=function(m,v,I,k){h=m,x=v,C=[k],q=I},j=0;for(;j<d.length;){let m=d[j];++j;let v=function(F){let J=[],W=0,X=new Array,G=0,N=F.attributes;for(;G<N.length;){let O=N[G];++G,X.push({name:O.name,value:O.value})}let P=X;for(;W<P.length;){let O=P[W];if(++W,O.name.startsWith("data-froomle-reco-filter-")){let K=V.substr(O.name,25,null),ne=O.value;J.push({key:K,value:ne})}}return J},I=function(F){let J=[],W=0,X=new Array,G=0,N=F.attributes;for(;G<N.length;){let O=N[G];++G,X.push({name:O.name,value:O.value})}let P=X;for(;W<P.length;){let O=P[W];if(++W,O.name.startsWith("data-froomle-variable-")){let K=V.substr(O.name,22,null),ne=O.value;J.push({key:K,value:ne})}}return J},k=m.getAttribute("data-froomle-reco"),$=v(m),T=I(m);if(h==""){L(k,$,T,m);continue}else if(k==h&&H(x,$)&&H(q,T)){C.push(m);continue}else{U(),L(k,$,T,m);continue}}h!=""&&U();let A;if(o.getPageVisit()==null){let m=s;return m._isFinished||(m._result=!1,m._isFinished=!0,m._resolve(!1)),s}else if(o.getEnvironment()==null){let m=s;return m._isFinished||(m._result=!1,m._isFinished=!0,m._resolve(!1)),s}else try{A=o.getRawRecommendations(p)}catch{let v=s;return v._isFinished||(v._result=!1,v._isFinished=!0,v._resolve(!1)),s}return A.then(function(m){let v=m.lists(),I=v.length,k=0,$=I;for(;k<$;){let F=k++,J=v[F],W=J.items.length!=E[F].length,X=J.items.length,G=0,N=X;for(;G<N;){let P=G++,O=J.items[P],K=E[F][P];re._fillParameters(K,O,m.request_id)}}let T=s;T._isFinished||(T._result=!0,T._isFinished=!0,T._resolve(!0))}),s}static getAttrByPath(e,t,r){r==null&&(r="fgh");try{t=new we("\\\\[(\\\\w+)\\\\]","g").map(t,function(_){return"."+_.matched(1)}),t=le.replace(t,"[","."),t=le.replace(t,"]",""),V.cca(t,0)==46&&(t=V.substr(t,1,null));let s=t.split("."),l=e.get(s[0]),a=1,g=s.length;for(;a<g;){let _=a++;if(l==null)return null;l instanceof Array&&S.parseInt(s[_])!=null?l=l[S.parseInt(s[_])]:l=R.field(l,s[_])}return l}catch{return r}}static _buildHistories(e){let t=[],r=new Array,n=e.querySelectorAll("[data-froomle-id]"),s=0,l=n.length;for(;s<l;){let _=s++,f=n.item(_);f instanceof HTMLElement&&r.push(f)}let a=r,g=0;for(;g<a.length;){let _=a[g];++g,t.push(_.getAttribute("data-froomle-id"))}o.addHistories(t)}static fillParam(e,t,r,n,s){s==null&&(s="");try{let l=re.getAttrByPath(n,r,s);if(t=="inner"){e.textContent=l;let a=e.textContent}else e.setAttribute(t,l)}catch{}}static _fillParameters(e,t,r){e.setAttribute("data-froomle-id",t.get("item_id")),e.setAttribute("data-froomle-request-id",r),t.UserGroup!=null&&t.UserGroup!=""&&e.setAttribute("data-froomle-user-group",t.UserGroup);let n=new Array,s=e.querySelectorAll("*"),l=0,a=s.length;for(;l<a;){let f=l++,y=s.item(f);y instanceof HTMLElement&&n.push(y)}let g=n,_=0;for(;_<g.length;){let f=g[_];++_;let y=0,u=new Array,d=0,b=f.attributes;for(;d<b.length;){let E=b[d];++d,u.push({name:E.name,value:E.value})}let p=u;for(;y<p.length;){let E=p[y];if(++y,E.name.startsWith("data-froomle-param-")){let h=le.replace(E.name,"data-froomle-param-",""),x=E.value;re.fillParam(f,h,x,t)}}}}static _orderElements(e){let t=function(h,x,C){let q=[],H=new Array,U=0,L=h.childNodes;for(;U<L.length;){let I=L[U];++U,H.push(I)}let j=H,A=0;for(;A<j.length;){let I=j[A];++A;try{if(I.getAttribute("data-froomle-ordervalue")!=null){q.push(I);let $=e.createElement("span");$.setAttribute("data-froomle-tmp-node","tmp"),h.replaceChild($,I)}}catch{}}let m=[],v=0;for(;v<q.length;){let I=q[v];++v,m.push(I.getAttribute("data-froomle-ordervalue"))}return{el:h,key:x,values:m,orderChildren:q,list_name:C}},r=null,n=new Promise(function(h,x){r=h}),s=n;s._resolve=r,s._isFinished=!1,s._result=null;let l=n,a=e.getRoot(),g=new Array,_=a.querySelectorAll("*"),f=0,y=_.length;for(;f<y;){let h=f++,x=_.item(h);x instanceof HTMLElement&&g.push(x)}let u=g,d=[],b=0;for(;b<u.length;){let h=u[b];++b;let x=0,C=new Array,q=0,H=h.attributes;for(;q<H.length;){let L=H[q];++q,C.push({name:L.name,value:L.value})}let U=C;for(;x<U.length;){let L=U[x];++x,L.name.startsWith("data-froomle-order-")&&d.push(t(h,L.name.substring(19),L.value))}}if(d.length<1){let h=l;return h._isFinished||(h._result=!1,h._isFinished=!0,h._resolve(!1)),l}let p=[],E=0;for(;E<d.length;){let h=d[E];++E;let x={list_name:h.list_name,limit:h.values.length,list_size:h.values.length},C={};R.setProperty(C,h.key,h.values),R.setProperty(x,"order",C),p.push(x)}if(o.getPageVisit()==null){let h=l;return h._isFinished||(h._result=!1,h._isFinished=!0,h._resolve(!1)),l}else if(o.getEnvironment()==null){let h=l;return h._isFinished||(h._result=!1,h._isFinished=!0,h._resolve(!1)),l}try{o.getRawRecommendations(p).then(function(h){let x=h.lists(),C=x.length,q=0,H=C;for(;q<H;){let L=q++,j=x[L],A=d[L];A.el.setAttribute("data-froomle-request-id",h.request_id);let m=new Array,v=0,I=j.items;for(;v<I.length;){let N=I[v];++v;let P=N.get(A.key),O=N.get(A.key),K=A.values.length,ne=0,fe=K;for(;ne<fe;){let ie=ne++,he=A.values[ie];if(P==he){let Tt=A.orderChildren.length,yt=A.orderChildren[ie];m.push(yt),A.orderChildren.splice(ie,1),A.values.splice(ie,1);break}}}let k=m.length,$=A.el,T=new Array,F=0,J=$.childNodes;for(;F<J.length;){let N=J[F];++F,T.push(N)}let W=T.length,X=0,G=W;for(;X<G;){let N=X++,P=A.el,O=new Array,K=0,ne=P.childNodes;for(;K<ne.length;){let he=ne[K];++K,O.push(he)}let fe=O[N],ie;if(fe instanceof HTMLElement?ie=fe.hasAttribute("data-froomle-tmp-node"):ie=!1,ie){A.el.replaceChild(m[0],fe),m.splice(0,1);let he=m.length;if(m.length==0)break}}}let U=l;U._isFinished||(U._result=!0,U._isFinished=!0,U._resolve(!0))})}catch{let x=l;x._isFinished||(x._result=!1,x._isFinished=!0,x._resolve(!1))}return l}static domInit(e){let t=null,r=new Promise(function(l,a){t=l}),n=r;n._resolve=t,n._isFinished=!1,n._result=null;let s=r;return re._orderElements(e).then(function(l){re._buildHistories(e.getRoot()),re._fillRecoTargets(e.getRoot()).then(function(a){let g=s;g._isFinished||(g._result=!0,g._isFinished=!0,g._resolve(!0))})}),s}static fillElementRecos(e){re._fillRecoTargets(e)}static runFromHtml(e){if(e=="")return"";let t;try{let n=new DOMParser().parseFromString(e,"text/html"),s=new ve;s.root=n.documentElement,t=s}catch{return e}return re.domInit(t),t.toString()}static get __name__(){return"internal.domHandler.DomDomDom"}get __class__(){return re}};var _s=i.$global,B=i.global("$hxClasses").FroomleSdk=class Q{static register(){Q.registered||Q._env_set&&(!Q._page_visit_set&&!Q._page_view_set||(Q.registered=!0))}static buildScriptTag(){let e='<script src="https://cdn.jsdelivr.net/npm/@froomle/frontend-sdk@0.0.11/dist/froomle.global.js" data-froomle-env="'+o.getEnvironment()+'" ',t=o.getPageVisit();t!=null&&(e+='data-froomle-page-visit="'+t+'" ');let r=o.getPageView();r!=null&&(e+='data-froomle-page-view="'+r+'" ');let n=o.getDeviceId();n!=null&&(e+='data-froomle-device-id="'+n+'" ');let s=o.getUserId();s!=null&&(e+='data-froomle-user-id="'+s+'" ');let l=o.getConsent();l>0&&(e+='data-froomle-consent="'+l+'" ');let a=o.getRequestDomain();return a!=null&&(e+='data-froomle-request-domain="'+a+'" '),e+="><\/script>",e}static setEnvironment(e){o.setEnvironment(e),Q._env_set=!0,Q.register()}static setDeviceId(e){o.setDeviceId(e)}static setUserId(e){o.setUserId(e)}static setConsent(e){o.setConsent(e)}static setPageView(e){o.setPageView(e),Q._page_view_set=!0,Q.register()}static setPageVisit(e){o.setPageVisit(e),Q._page_visit_set=!0,Q.register()}static setRequestDomain(e){o.setRequestDomain(e)}static setSafeRequest(e){o.setSafeRequest(e)}static setContextItem(e){o.setContextItem(e)}static setContextItemType(e){o.setContextItemType(e)}static setCustomVariable(e,t){o.setOthers(e,t)}static getUserId(){return o.getUserId()}static getDeviceId(){return o.getDeviceId()}static getEnvironment(){return o.getEnvironment()}static getPageView(){return o.getPageView()}static getPageVisit(){return o.getPageVisit()}static getConsent(){return o.getConsent()}static getRecommendations(e){return o.getRawRecommendations(e)}static getChannel(){return o.getChannel()}static getVersion(){return"0.0.11"}static runFromHtml(e){return ue.runFromHtml(e)}static get __name__(){return"FroomleSdk"}get __class__(){return Q}};B._env_set=!1;B._page_visit_set=!1;B._page_view_set=!1;B.registered=!1;var ps=i.$global;function ut(){return"https://"+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events"}function ct(c){var r;let e=c==null?void 0:c.getAttribute("data-froomle-user-group");return e||(typeof document=="undefined"?void 0:((r=document.querySelector("[data-froomle-user-group]"))==null?void 0:r.getAttribute("data-froomle-user-group"))||void 0)}function _t(c,e,t="impression",r){let n={event_type:t,page_type:o.getPageVisit(),action_item:c,action_item_type:e,channel:"www-desktop",device_id:o.getDeviceId()},s=ct();if(s&&(n.user_group=s),r)for(let l in r)n[l]=r[l];try{fetch(ut(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({events:[n]})})}catch{}}var z=class z{static generateBody(){let e=[];for(let t of z.impressionQueue){let r=t.getAttribute("data-froomle-id");if(!r)continue;let n={event_type:"impression",page_type:o.getPageVisit(),action_item:r,action_item_type:"article",channel:"www-desktop",device_id:o.getDeviceId()},s=ct(t);s&&(n.user_group=s),o.getUserId()&&(n.user_id=o.getUserId());let l=t.getAttribute("data-froomle-reco"),a=t.getAttribute("data-froomle-request-id");l&&a&&(n.list_name=l,n.request_id=a),e.push(n)}return z.impressionQueue=[],JSON.stringify({events:e})}static sendImpressions(){console.log(z.impressionQueue),z.impressionQueue.length!==0&&o.getDeviceId()!="no-consent"&&fetch(ut(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:z.generateBody()})}static getViewPortRect(){let e=window.innerWidth||document.documentElement.clientWidth,t=window.innerHeight||document.documentElement.clientHeight;return{left:0,top:0,x:0,y:0,toJSON(){},right:e,bottom:t,width:e,height:t}}static intersectsWithViewPortRect(e){let t=e.getBoundingClientRect(),r=z.getViewPortRect();return t.right>r.left&&t.left<r.right&&t.bottom>r.top&&t.top<r.bottom}static addIntersectionImpressionListener(e){z.observer.observe(e)}static processDocument(){if(o.getDeviceId()!="no-consent"){console.log("\u{1F680} Processing document for impressions");for(let e of document.querySelectorAll("[data-froomle-id]"))z.intersectsWithViewPortRect(e)?z.impressionQueue.push(e):z.addIntersectionImpressionListener(e);z.sendImpressions()}}};z.impressionQueue=[],z.observer=null;var ee=z;typeof document!="undefined"&&(ee.observer=new IntersectionObserver((c,e)=>{c.forEach(t=>{t.isIntersecting&&(ee.impressionQueue.push(t.target),ee.observer.unobserve(t.target))}),ee.impressionQueue.length>0&&ee.sendImpressions()}));var xe=class c{static readUserGroup(){var t;return typeof document=="undefined"?void 0:((t=document.querySelector("[data-froomle-user-group]"))==null?void 0:t.getAttribute("data-froomle-user-group"))||void 0}static uri(){return"https://"+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events"}static generateBody(){let e={event_type:"page_visit",page_type:o.getPageVisit(),channel:"www-desktop",device_id:o.getDeviceId()},t=c.readUserGroup();return t&&(e.user_group=t),o.getUserId()&&(e.user_id=o.getUserId()),JSON.stringify({events:[e]})}static sendPageVisit(){o.getPageVisit()&&o.getDeviceId()!="no-consent"&&fetch(c.uri(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:c.generateBody()})}};var Re=class c{static readUserGroup(){var t;return typeof document=="undefined"?void 0:((t=document.querySelector("[data-froomle-user-group]"))==null?void 0:t.getAttribute("data-froomle-user-group"))||void 0}static uri(){return"https://"+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events"}static generateBody(){let e={event_type:"detail_pageview",page_type:"article_detail",action_item:o.getPageView(),action_item_type:"article",channel:"www-desktop",device_id:o.getDeviceId()},t=c.readUserGroup();return t&&(e.user_group=t),o.getUserId()&&(e.user_id=o.getUserId()),JSON.stringify({events:[e]})}static sendPageView(){o.getPageView()&&o.getDeviceId()!="no-consent"&&fetch(c.uri(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:c.generateBody()})}};var Ee=class c{static readUserGroup(e){var n;let t=e.getAttribute("data-froomle-user-group");return t||(typeof document=="undefined"?void 0:((n=document.querySelector("[data-froomle-user-group]"))==null?void 0:n.getAttribute("data-froomle-user-group"))||void 0)}static registerClickables(){document.querySelectorAll("[data-froomle-id]").forEach(t=>{t.querySelectorAll("a").forEach(r=>{r.addEventListener("click",n=>{if(o.getDeviceId()=="no-consent")return;let s=t.getAttribute("data-froomle-id");if(!s)return;let l={event_type:"click_on_recommendation",page_type:o.getPageVisit(),action_item:s,action_item_type:"article",channel:"www-desktop",device_id:o.getDeviceId()},a=c.readUserGroup(t);a&&(l.user_group=a);let g=t.getAttribute("data-froomle-reco"),_=t.getAttribute("data-froomle-request-id");g&&_&&(l.list_name=g,l.request_id=_),o.getUserId()&&(l.user_id=o.getUserId()),navigator.sendBeacon("https://"+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events",JSON.stringify({events:[l]}))})})})}};var mt=ve,gt=B.setEnvironment,pt=B.setPageVisit,ft=B.setRequestDomain,ht=B.setSafeRequest,Pt=B.setContextItem,qt=B.setContextItemType,At=B.setCustomVariable,Ft=o.addHistories,dt=B.setPageView;function je(c){B.setUserId(c),document.cookie=`froomle_user_id=${c}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Ne(c){B.setDeviceId(c),document.cookie=`froomle_device_id=${c}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Me(c){B.setConsent(c),document.cookie=`froomle_consent=${c}; max-age=${3600*24*365*20}; path=/; samesite=lax`,document.cookie=`froomle_device_id=${B.getDeviceId()}; max-age=${3600*24*365*20}; path=/; samesite=lax`}typeof window!="undefined"&&(window.setFroomleConsent=Me);function Le(c){let e=document.cookie.split("; ");for(let t of e){let[r,n]=t.split("=");if(r===c)return decodeURIComponent(n)}return null}var Ot=B.getRecommendations;if(!globalThis.froomleInitialized&&(globalThis.froomleInitialized=!0,typeof document!="undefined")){let c=document.currentScript;if(c){let t=c.getAttribute("data-froomle-device-id"),r=c.getAttribute("data-froomle-user-id"),n=c.getAttribute("data-froomle-env"),s=c.getAttribute("data-froomle-page-visit"),l=c.getAttribute("data-froomle-request-domain"),a=c.getAttribute("data-froomle-page-view"),g=c.getAttribute("data-froomle-safe-request");if(gt(n),a&&dt(a),s&&pt(s),t)Ne(t);else{let _=Le("froomle_device_id");_&&Ne(_)}if(r)je(r);else{let _=Le("froomle_user_id");_&&je(_)}l&&ft(l),g&&ht(g!=="false")}let e=Le("froomle_consent");e&&Me(e),document.addEventListener("DOMContentLoaded",()=>{console.log("froomle loads dom"),ue.domInit(mt.fromDocument(document)).then(r=>{ee.processDocument(),xe.sendPageVisit(),Re.sendPageView(),Ee.registerClickables()});let t=new MutationObserver(r=>{for(let n of r)if(n.type==="childList"&&ee.processElement(n.target),n.type==="attributes")if(n.attributeName==="data-froomle-reco"){let s=n.target.getAttribute("data-froomle-request-id");(!s||s==="")&&ue.fillElementRecos(n.target)}else n.attributeName==="data-froomle-request-id"&&ue.fillElementRecos(n.target)})})}return Et(Bt);})();
1
+ "use strict";var FroomleFrontendSdk=(()=>{var $e=Object.defineProperty;var Rt=Object.getOwnPropertyDescriptor;var Ct=Object.getOwnPropertyNames;var St=Object.prototype.hasOwnProperty;var kt=(a,e)=>{for(var t in e)$e(a,t,{get:e[t],enumerable:!0})},qt=(a,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let s of Ct(e))!St.call(a,s)&&s!==t&&$e(a,s,{get:()=>e[s],enumerable:!(r=Rt(e,s))||r.enumerable});return a};var Dt=a=>qt($e({},"__esModule",{value:!0}),a);var Ut={};kt(Ut,{FroomleDomTree:()=>dt,RecoBackendV2:()=>o,RecommendationItem:()=>fe,RecommendationList:()=>_e,Recommendations:()=>ge,_RecommendationItemInternal:()=>ie,addHistories:()=>Lt,getRecommendations:()=>Nt,sendEvent:()=>pt,setChannel:()=>wt,setConsent:()=>Ge,setContextItem:()=>xt,setContextItemType:()=>It,setCustomVariable:()=>Vt,setDeviceId:()=>Je,setEnvironment:()=>ht,setPageVisit:()=>yt,setRequestDomain:()=>bt,setSafeRequest:()=>vt,setUserId:()=>Me});var i=class a{static global(e){return a.globals[e]?a.globals[e]:a.globals[e]={}}static createStatic(e,t,r){let s=null;Object.defineProperty(e,t,{enumerable:!0,get:function(){return r!=null&&(s=r(),r=null),s},set:function(n){r!=null&&(s=r(),r=null),s=n}})}static iterator(e){if(Array.isArray(e)){let t=e;return function(){return a.mkIter(t)}}else return typeof e.iterator=="function"?e.iterator.bind(e):e.iterator}static getIterator(e){return Array.isArray(e)?a.mkIter(e):e.iterator()}static mkIter(e){return new Pe(e)}static extend(e){function t(){this[a.new].apply(this,arguments)}return Object.setPrototypeOf(t.prototype,e.prototype),t}static inherits(e,t){t==null&&(t=!1);function r(){t&&e&&r[a.init]&&r[a.init](),this[a.new].apply(this,arguments)}return t?r[a.init]=()=>{let s=e();s[a.init]&&s[a.init](),Object.setPrototypeOf(r.prototype,s.prototype),r[a.init]=void 0}:e&&e[a.init]?(t=!0,r[a.init]=()=>{e[a.init]&&e[a.init](),Object.setPrototypeOf(r.prototype,e.prototype),r[a.init]=void 0}):e&&Object.setPrototypeOf(r.prototype,e.prototype),r}static bind(e,t){if(t==null)return null;t.__id__==null&&(t.__id__=a.fid++);let r=null;return e.hx__closures__==null?e.hx__closures__={}:r=e.hx__closures__[t.__id__],r==null&&(r=t.bind(e),e.hx__closures__[t.__id__]=r),r}static get __name__(){return"genes.Register"}get __class__(){return a}};i.$global=typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:void 0;i.globals={};i.new=Symbol();i.init=Symbol();i.fid=0;var Pe=i.global("$hxClasses")["genes._Register.ArrayIterator"]=class ze extends i.inherits(){[i.new](e){this.current=0,this.array=e}hasNext(){return this.current<this.array.length}next(){return this.array[this.current++]}static get __name__(){return"genes._Register.ArrayIterator"}get __class__(){return ze}};Pe.prototype.array=null;Pe.prototype.current=null;var Wt=i.$global,Ce=i.global("$hxClasses")["haxe.ValueException"]=class We extends i.inherits(()=>q,!0){[i.new](e,t,r){super[i.new](String(e),t,r),this.value=e}unwrap(){return this.value}static get __name__(){return"haxe.ValueException"}static get __super__(){return q}get __class__(){return We}};Ce.prototype.value=null;var Yt=i.$global,q=i.global("$hxClasses")["haxe.Exception"]=class ye extends i.inherits(()=>Error,!0){[i.new](e,t,r){Error.call(this,e),this.message=e,this.__previousException=t,this.__nativeException=r!=null?r:this}unwrap(){return this.__nativeException}get_native(){return this.__nativeException}static caught(e){return e instanceof ye?e:e instanceof Error?new ye(e.message,null,e):new Ce(e,null,e)}static thrown(e){return e instanceof ye?e.get_native():e instanceof Error?e:new Ce(e)}static get __name__(){return"haxe.Exception"}static get __super__(){return Error}get __class__(){return ye}};q.prototype.native=null;q.prototype.__skipStack=null;q.prototype.__nativeException=null;q.prototype.__previousException=null;var rr=i.$global,R=i.global("$hxClasses").Std=class Ke{static string(e){return be.__string_rec(e,"")}static parseInt(e){let t=parseInt(e);return isNaN(t)?null:t}static random(e){return e<=0?0:Math.floor(Math.random()*e)}static get __name__(){return"Std"}get __class__(){return Ke}};Object.defineProperty(String.prototype,"__class__",{value:String,enumerable:!1,writable:!0}),String.__name__=!0,Array.__name__=!0,At={},$t={},Pt=Number,Tt=Boolean,Ft={},Ot={};var At,$t,Pt,Tt,Ft,Ot;var or=i.$global,be=i.global("$hxClasses")["js.Boot"]=class J{static getClass(e){if(e==null)return null;if(e instanceof Array)return Array;{let t=e.__class__;if(t!=null)return t;let r=J.__nativeClassName(e);return r!=null?J.__resolveNativeClass(r):null}}static __string_rec(e,t){if(e==null)return"null";if(t.length>=5)return"<...>";let r=typeof e;switch(r=="function"&&(e.__name__||e.__ename__)&&(r="object"),r){case"function":return"<function>";case"object":if(e.__enum__){let m=i.global("$hxEnums")[e.__enum__].__constructs__[e._hx_index],g=m._hx_name;return m.__params__?(t=t+" ",g+"("+(function(p){var c;let y=[];{let b=0,d=m.__params__;for(;b<d.length;){let k=d[b];b=b+1,y.push(J.__string_rec(e[k],t))}}return c=y,c})(this).join(",")+")"):g}if(e instanceof Array){let f="[";t+=" ";let m=0,g=e.length;for(;m<g;){let p=m++;f+=(p>0?",":"")+J.__string_rec(e[p],t)}return f+="]",f}let s;try{s=e.toString}catch{return"???"}if(s!=null&&s!=Object.toString&&typeof s=="function"){let f=e.toString();if(f!="[object Object]")return f}let n=`{
2
+ `;t+=" ";let l=e.hasOwnProperty!=null,u=null;for(u in e)l&&!e.hasOwnProperty(u)||u=="prototype"||u=="__class__"||u=="__super__"||u=="__interfaces__"||u=="__properties__"||(n.length!=2&&(n+=`,
3
+ `),n+=t+u+" : "+J.__string_rec(e[u],t));return t=t.substring(1),n+=`
4
+ `+t+"}",n;break;case"string":return e;default:return String(e)}}static __interfLoop(e,t){if(e==null)return!1;if(e==t)return!0;let r=e.__interfaces__;if(r!=null&&(e.__super__==null||e.__super__.__interfaces__!=r)){let s=0,n=r.length;for(;s<n;){let l=s++,u=r[l];if(u==t||J.__interfLoop(u,t))return!0}}return J.__interfLoop(e.__super__,t)}static __instanceof(e,t){if(t==null)return!1;switch(t){case Array:return e instanceof Array;case"$hxCoreType__Bool":return typeof e=="boolean";case"$hxCoreType__Dynamic":return e!=null;case"$hxCoreType__Float":return typeof e=="number";case"$hxCoreType__Int":return typeof e=="number"?(e|0)===e:!1;case String:return typeof e=="string";default:if(e!=null){if(typeof t=="function"){if(J.__downcastCheck(e,t))return!0}else if(typeof t=="object"&&J.__isNativeObj(t)&&e instanceof t)return!0}else return!1;return t=="$hxCoreType__Class"&&e.__name__!=null||t=="$hxCoreType__Enum"&&e.__ename__!=null?!0:e.__enum__!=null?i.global("$hxEnums")[e.__enum__]==t:!1}}static __downcastCheck(e,t){return e instanceof t?!0:t.__isInterface__?J.__interfLoop(J.getClass(e),t):!1}static __cast(e,t){if(e==null||J.__instanceof(e,t))return e;throw q.thrown("Cannot cast "+R.string(e)+" to "+R.string(t))}static __nativeClassName(e){let t=J.__toStr.call(e).slice(8,-1);return t=="Object"||t=="Function"||t=="Math"||t=="JSON"?null:t}static __isNativeObj(e){return J.__nativeClassName(e)!=null}static __resolveNativeClass(e){return i.$global[e]}static get __name__(){return"js.Boot"}get __class__(){return J}};be.__toStr={}.toString;var mr=i.$global,Te=i.global("$hxClasses")["js.Browser"]=class Qe{static get supported(){return this.get_supported()}static get_supported(){return typeof window!="undefined"&&typeof window.location!="undefined"?typeof window.location.protocol=="string":!1}static createXMLHttpRequest(){if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;if(typeof ActiveXObject!="undefined")return new"ActiveXObject"("Microsoft.XMLHTTP");throw q.thrown("Unable to create XMLHttpRequest object.")}static get __name__(){return"js.Browser"}get __class__(){return Qe}};var fr=i.$global,Y=i.global("$hxEnums")["haxe.io.Error"]={__ename__:"haxe.io.Error",Blocked:{_hx_name:"Blocked",_hx_index:0,__enum__:"haxe.io.Error"},Overflow:{_hx_name:"Overflow",_hx_index:1,__enum__:"haxe.io.Error"},OutsideBounds:{_hx_name:"OutsideBounds",_hx_index:2,__enum__:"haxe.io.Error"},Custom:Object.assign(a=>({_hx_index:3,__enum__:"haxe.io.Error",e:a}),{_hx_name:"Custom",__params__:["e"]})};Y.__constructs__=[Y.Blocked,Y.Overflow,Y.OutsideBounds,Y.Custom];Y.__empty_constructs__=[Y.Blocked,Y.Overflow,Y.OutsideBounds];var hr=i.$global,te=i.global("$hxEnums")["haxe.io.Encoding"]={__ename__:"haxe.io.Encoding",UTF8:{_hx_name:"UTF8",_hx_index:0,__enum__:"haxe.io.Encoding"},RawNative:{_hx_name:"RawNative",_hx_index:1,__enum__:"haxe.io.Encoding"}};te.__constructs__=[te.UTF8,te.RawNative];te.__empty_constructs__=[te.UTF8,te.RawNative];var Ir=i.$global,me=i.global("$hxClasses")["haxe.io.Bytes"]=class Fe extends i.inherits(){[i.new](e){this.length=e.byteLength,this.b=new Uint8Array(e),this.b.bufferValue=e,e.hxBytes=this,e.bytes=this.b}getString(e,t,r){if(e<0||t<0||e+t>this.length)throw q.thrown(Y.OutsideBounds);r==null&&(r=te.UTF8);let s="",n=this.b,l=e,u=e+t;switch(r._hx_index){case 0:let f=e>0;for(;l<u;){let m=n[l++];if(m<128){if(m==0)break;s+=String.fromCodePoint(m)}else if(m<224){let g=(m&63)<<6|n[l++]&127;s+=String.fromCodePoint(g)}else if(m<240){let g=n[l++],p=(m&31)<<12|(g&127)<<6|n[l++]&127;s+=String.fromCodePoint(p)}else{let g=n[l++],p=n[l++],c=(m&15)<<18|(g&127)<<12|(p&127)<<6|n[l++]&127;s+=String.fromCodePoint(c)}}break;case 1:for(;l<u;){let m=n[l++]|n[l++]<<8;s+=String.fromCodePoint(m)}break}return s}static ofData(e){let t=e.hxBytes;return t!=null?t:new Fe(e)}static get __name__(){return"haxe.io.Bytes"}get __class__(){return Fe}};me.prototype.length=null;me.prototype.b=null;var Sr=i.$global,Z=i.global("$hxClasses")["haxe.http.HttpBase"]=class Xe extends i.inherits(){[i.new](e){this.url=e,this.headers=[],this.params=[],this.emptyOnData=i.bind(this,this.onData)}get responseData(){return this.get_responseData()}setHeader(e,t){let r=0,s=this.headers.length;for(;r<s;){let n=r++;if(this.headers[n].name==e){this.headers[n]={name:e,value:t};return}}this.headers.push({name:e,value:t})}setPostData(e){this.postData=e,this.postBytes=null}onData(e){}onBytes(e){}onError(e){}onStatus(e){}hasOnData(){return i.bind(this,this.onData)!=this.emptyOnData}success(e){this.responseBytes=e,this.responseAsString=null,this.hasOnData()&&this.onData(this.get_responseData()),this.onBytes(this.responseBytes)}get_responseData(){return this.responseAsString==null&&this.responseBytes!=null&&(this.responseAsString=this.responseBytes.getString(0,this.responseBytes.length,te.UTF8)),this.responseAsString}static get __name__(){return"haxe.http.HttpBase"}get __class__(){return Xe}};Z.prototype.url=null;Z.prototype.responseBytes=null;Z.prototype.responseAsString=null;Z.prototype.postData=null;Z.prototype.postBytes=null;Z.prototype.headers=null;Z.prototype.params=null;Z.prototype.emptyOnData=null;var Dr=i.$global,Se=i.global("$hxClasses")["haxe.iterators.MapKeyValueIterator"]=class Ye extends i.inherits(){[i.new](e){this.map=e,this.keys=e.keys()}hasNext(){return this.keys.hasNext()}next(){let e=this.keys.next();return{value:this.map.get(e),key:e}}static get __name__(){return"haxe.iterators.MapKeyValueIterator"}get __class__(){return Ye}};Se.prototype.map=null;Se.prototype.keys=null;var Pr=i.$global,Oe=function(){};Oe.__isInterface__=!0;var Br=i.$global,ke=i.global("$hxClasses")["genes.util.EsMap"]=class ve extends i.inherits(){[i.new](){this.inst=new Map}set(e,t){this.inst.set(e,t)}get(e){return this.inst.get(e)}remove(e){return this.inst.delete(e)}exists(e){return this.inst.has(e)}keys(){return ve.adaptIterator(this.inst.keys())}iterator(){return ve.adaptIterator(this.inst.values())}toString(){let e=[],t=ve.adaptIterator(this.inst.keys());for(;t.hasNext();){let r=t.next();e.push(""+R.string(r)+" => "+R.string(this.inst.get(r)))}return"{"+e.join(", ")+"}"}clear(){this.inst.clear()}static adaptIterator(e){let t,r,s=function(){let n=e.next();t=n.value,r=n.done};return{hasNext:function(){return r==null&&s(),!r},next:function(){r==null&&s();let n=t;return s(),n}}}static get __name__(){return"genes.util.EsMap"}get __class__(){return ve}};ke.prototype.inst=null;var jr=i.$global,Ze=i.global("$hxClasses")["haxe.ds.StringMap"]=class Be extends i.inherits(ke){[i.new](){super[i.new]()}copy(){let e=new Be;return e.inst=new Map(this.inst),e}keyValueIterator(){return new Se(this)}static get __name__(){return"haxe.ds.StringMap"}static get __interfaces__(){return[Oe]}static get __super__(){return ke}get __class__(){return Be}};var Gr=i.$global,j=i.global("$hxClasses").HxOverrides=class et{static cca(e,t){let r=e.charCodeAt(t);if(r==r)return r}static substr(e,t,r){if(r==null)r=e.length;else if(r<0)if(t==0)r=e.length+r;else return"";return e.substr(t,r)}static now(){return Date.now()}static get __name__(){return"HxOverrides"}get __class__(){return et}};typeof performance!="undefined"&&typeof performance.now=="function"&&(j.now=performance.now.bind(performance));var Qr=i.$global,ae=i.global("$hxClasses").StringTools=class qe{static isSpace(e,t){let r=j.cca(e,t);return r>8&&r<14?!0:r==32}static ltrim(e){let t=e.length,r=0;for(;r<t&&qe.isSpace(e,r);)++r;return r>0?j.substr(e,r,t-r):e}static rtrim(e){let t=e.length,r=0;for(;r<t&&qe.isSpace(e,t-r-1);)++r;return r>0?j.substr(e,0,t-r):e}static replace(e,t,r){return e.split(t).join(r)}static get __name__(){return"StringTools"}get __class__(){return qe}};var Zr=i.$global,tt=i.global("$hxClasses").Lambda=class rt{static exists(e,t){let r=i.getIterator(e);for(;r.hasNext();){let s=r.next();if(t(s))return!0}return!1}static get __name__(){return"Lambda"}get __class__(){return rt}};var ln=i.$global,we=i.global("$hxClasses").EReg=class nt extends i.inherits(){[i.new](e,t){this.r=new RegExp(e,t.split("u").join(""))}match(e){return this.r.global&&(this.r.lastIndex=0),this.r.m=this.r.exec(e),this.r.s=e,this.r.m!=null}matched(e){if(this.r.m!=null&&e>=0&&e<this.r.m.length)return this.r.m[e];throw q.thrown("EReg::matched")}matchedPos(){if(this.r.m==null)throw q.thrown("No string matched");return{pos:this.r.m.index,len:this.r.m[0].length}}matchSub(e,t,r){if(r==null&&(r=-1),this.r.global){this.r.lastIndex=t,this.r.m=this.r.exec(r<0?e:j.substr(e,0,t+r));let s=this.r.m!=null;return s&&(this.r.s=e),s}else{let s=this.match(r<0?j.substr(e,t,null):j.substr(e,t,r));return s&&(this.r.s=e,this.r.m.index+=t),s}}map(e,t){let r=0,s="";do{if(r>=e.length)break;if(!this.matchSub(e,r)){s+=R.string(j.substr(e,r,null));break}let n=this.matchedPos();s+=R.string(j.substr(e,r,n.pos-r)),s+=R.string(t(this)),n.len==0?(s+=R.string(j.substr(e,n.pos,1)),r=n.pos+1):r=n.pos+n.len}while(this.r.global);return!this.r.global&&r>0&&r<e.length&&(s+=R.string(j.substr(e,r,null))),s}static get __name__(){return"EReg"}get __class__(){return nt}};we.prototype.r=null;var yn=i.$global,ue=i.global("$hxClasses")["haxe.http.HttpJs"]=class st extends i.inherits(Z){[i.new](e){this.async=!0,this.withCredentials=!1,super[i.new](e)}request(e){this.responseAsString=null,this.responseBytes=null,this.responseHeaders=null;let t=this.req=Te.createXMLHttpRequest(),r=this,s=function(g){if(t.readyState!=4)return;let p;try{p=t.status}catch{p=null}if(p==0&&Te.get_supported()&&i.$global.location!=null){let c=i.$global.location.protocol.toLowerCase();new we("^(?:about|app|app-storage|.+-extension|file|res|widget):$","").match(c)&&(p=t.response!=null?200:404)}if(p==null&&(p=null),p!=null&&r.onStatus(p),p!=null&&p>=200&&p<400){r.req=null;let c=t.getAllResponseHeaders().split(`\r
5
+ `),y=[],b=0,d=c;for(;b<d.length;){let x=d[b];++b,x!=""&&y.push(x)}c=y;let k=new Ze;r.responseHeaders=k;let _=0;for(;_<c.length;){let x=c[_];++_;let S=x.split(": "),D=S.shift(),N=S.length==1?S[0]:S.join(": ");N=ae.ltrim(ae.rtrim(N)),r.responseHeaders.inst.set(D,N)}r.success(me.ofData(t.response))}else if(p==null||p==0&&t.response==null)r.req=null,r.onError("Failed to connect or resolve host");else if(p==null){r.req=null;let c=t.response!=null?me.ofData(t.response):null;r.responseBytes=c,r.onError("Http Error #"+t.status)}else switch(p){case 12007:r.req=null,r.onError("Unknown host");break;case 12029:r.req=null,r.onError("Failed to connect to host");break;default:r.req=null;let c=t.response!=null?me.ofData(t.response):null;r.responseBytes=c,r.onError("Http Error #"+t.status)}};this.async&&(t.onreadystatechange=s);let n,l=this.postData,u=this.postBytes;if(l==null)if(u==null)n=null;else{let g=u;n=new Blob([g.b.bufferValue])}else u==null?n=l:n=null;if(n!=null)e=!0;else{let g=0,p=this.params;for(;g<p.length;){let c=p[g];++g,n==null?n="":n=(n==null?"null":R.string(n))+"&";let y=c.name,b=(n==null?"null":R.string(n))+encodeURIComponent(y)+"=",d=c.value;n=b+encodeURIComponent(d)}}try{if(e)t.open("POST",this.url,this.async);else if(n!=null){let g=this.url.split("?").length<=1;t.open("GET",this.url+(g?"?":"&")+(n==null?"null":R.string(n)),this.async),n=null}else t.open("GET",this.url,this.async);t.responseType="arraybuffer"}catch(g){let p=q.caught(g).unwrap();this.req=null,this.onError(p.toString());return}t.withCredentials=this.withCredentials,!tt.exists(this.headers,function(g){return g.name=="Content-Type"})&&e&&this.postData==null&&t.setRequestHeader("Content-Type","application/x-www-form-urlencoded");let f=0,m=this.headers;for(;f<m.length;){let g=m[f];++f,t.setRequestHeader(g.name,g.value)}t.send(n),this.async||s(null)}static get __name__(){return"haxe.http.HttpJs"}static get __super__(){return Z}get __class__(){return st}};ue.prototype.async=null;ue.prototype.withCredentials=null;ue.prototype.responseHeaders=null;ue.prototype.req=null;var wn=i.$global,He=i.global("$hxClasses").Type=class it{static createInstance(e,t){let r=Function.prototype.bind.apply(e,[null].concat(t));return new r}static get __name__(){return"Type"}get __class__(){return it}};var En=i.$global,I=i.global("$hxClasses").Reflect=class lt{static field(e,t){try{return e[t]}catch{return null}}static getProperty(e,t){let r;if(e==null)return null;{let s;return e.__properties__?(r=e.__properties__["get_"+t],s=r):s=!1,s?e[r]():e[t]}}static setProperty(e,t,r){let s,n;e.__properties__?(s=e.__properties__["set_"+t],n=s):n=!1,n?e[s](r):e[t]=r}static fields(e){let t=[];if(e!=null){let s=Object.prototype.hasOwnProperty;for(var r in e)r!="__id__"&&r!="hx__closures__"&&s.call(e,r)&&t.push(r)}return t}static compare(e,t){return e==t?0:e>t?1:-1}static get __name__(){return"Reflect"}get __class__(){return lt}};var $n=i.$global,Ve=i.global("$hxClasses")["internal.http.FetchHttp"]=class ot extends i.inherits(ue){[i.new](e){this.responseStatus=0,super[i.new](e)}request(e){let t=i.$global,r=t.fetch,s=t.Headers,n=t.URLSearchParams;if(r==null){this.onError("Fetch API not found.");return}let l=He.createInstance(s,[]),u=0,f=this.headers;for(;u<f.length;){let d=f[u];++u,l.append(d.name,d.value)}let m=e?"POST":"GET",g=null;if(e)if(this.postData!=null)g=this.postData;else{g=He.createInstance(n,[]);let d=0,k=this.params;for(;d<k.length;){let _=k[d];++d,g.append(_.name,_.value)}}let p={method:m,headers:l,body:g},c=this,y=r(this.url,p).then(function(d){if(c.responseStatus=d.status,c.onStatus(d.status),d.ok)return d.text();throw q.thrown("HTTP Error: "+R.string(d.status))}).then(function(d){c.onData(d)}),b=I.field(y,"catch");b!=null&&b.apply(y,[function(d){c.onError(R.string(d))}])}static get __name__(){return"internal.http.FetchHttp"}static get __super__(){return ue}get __class__(){return ot}};Ve.prototype.responseStatus=null;var On=i.$global,Le=i.global("$hxClasses")["internal.data.UUID"]=class at{static randomHexChar(){return"0123456789abcdef".charAt(R.random(16))}static v4(){let e="",t=0;for(;t<36;)switch(t++){case 14:e+="4";break;case 19:e+=R.string("0123456789abcdef".charAt(8+R.random(4)));break;case 8:case 13:case 18:case 23:e+="-";break;default:e+=R.string("0123456789abcdef".charAt(R.random(16)))}return e}static get __name__(){return"internal.data.UUID"}get __class__(){return at}};Le.HEX="0123456789abcdef";var Vn=i.$global,ge=function(){};ge.__isInterface__=!0;var _e=function(){};_e.__isInterface__=!0;var fe=function(){};fe.__isInterface__=!0;var Kn=i.$global,o=i.global("$hxClasses")["internal.RecoBackendV2"]=class v extends i.inherits(){[i.new](){}static _requestUri(){return(v._safe_request?"https://":"http://")+v._req_domain+"/api/"+v._environment+"/recommendations/requests"}static noConsentBody(){return{device_id:"no-consent",user_group:"no-consent",version:"no-consent"}}static buildRequestBody(e){let t={lists:e,page_type:v._page_visit,channel:v._channel};if(v._consent>=2&&v._history.length>0&&(t.histories=v._buildHistories()),v._consent<2){let u=v.noConsentBody(),f=0,m=I.fields(u);for(;f<m.length;){let g=m[f];++f,t[g]=I.field(u,g)}}else v._user_id!=null&&(t.user_id=v._user_id),t.device_id=v._device_id;let r=0,s=v._others;for(;r<s.length;){let u=s[r];++r,t[u.key]=u.value}let n=I.field(t,"context_item"),l=I.field(t,"context_item_type");return n!=null&&R.string(n)!=""&&(l==null||R.string(l)=="")&&(t.context_item_type="article"),t}static _buildHistories(){let e=[],t=0,r=v._history;for(;t<r.length;){let s=r[t];++t,e.push({id:s,item_type:"article"})}return{pageviews:e}}static requestsToLists(e){let t=[],r="",s=[],n=0,l=[],u=function(c,y,b){r=c,s=y,n=0,l=b},f=function(c){let y=[];if(c==null)return y;let b=0;for(;b<c.length;){let d=c[b];++b,!(d==null||d.key==null||d.key=="")&&y.push({key:d.key,value:d.value})}return y},m=function(c,y){if(c==null&&y==null)return!0;if(c==null||y==null||c.length!=y.length)return!1;let b=new Array(c.length),d=0,k=c.length;for(;d<k;){let O=d++;b[O]=JSON.stringify(c[O])}let _=b,x=new Array(y.length),S=0,D=y.length;for(;S<D;){let O=S++;x[O]=JSON.stringify(y[O])}let N=x;_.sort(I.compare),N.sort(I.compare);let T=0,F=_.length;for(;T<F;){let O=T++;if(_[O]!=N[O])return!1}return!0},g=function(){let c={limit:n,list_name:r,list_size:n},y=0;for(;y<s.length;){let d=s[y];++y;let k=d.value;k instanceof Array||(k=[k]),c[d.key]=k}let b=0;for(;b<l.length;){let d=l[b];++b,c[d.key]=d.value}t.push(c)},p=0;for(;p<e.length;){let c=e[p];++p;let y=f(c.filters),b=c.others!=null?c.others:[];if(r==""){u(c.list,y,b),n+=1;continue}else(r!=c.list||!m(s,y)||!m(l,b))&&(g(),u(c.list,y,b));n+=1}return n!=0&&g(),t}static _requestRecos(e){let t=null,r=new Promise(function(c,y){t=c}),s=r;s._resolve=t,s._isFinished=!1,s._result=null;let n=r,l=null,u=new Ve(v._requestUri());u.setHeader("Content-Type","application/json");let f=v.buildRequestBody(e),m=JSON.stringify(f);u.setPostData(m),u.onError=function(c){throw q.thrown("HTTP Request Error: "+c)};try{u.request(!0)}catch(c){let y=q.caught(c).unwrap();throw q.thrown("Failed to execute synchronous request: "+R.string(y)+m)}let g=function(c){let y=JSON.parse(c),b=pe.fromRequestData(y),d=n;d._isFinished||(d._result=b,d._isFinished=!0,d._resolve(b))},p=u.get_responseData();return p!=null?g(p):u.onData=g,n}static getOrder(e,t,r){let s={list_name:e,limit:r.length,list_size:r.length},n={};I.setProperty(n,t,r),I.setProperty(s,"order",n);let l=null,u=new Promise(function(p,c){l=p}),f=u;f._resolve=l,f._isFinished=!1,f._result=null;let m=u,g;return v.getRawRecommendations([s]).then(function(p){let c=[],y=p.lists()[0].items;if(y instanceof Array){let d=0,k=y;for(;d<k.length;){let _=k[d];++d;let x=_.get("categories");x!=null&&c.push(x)}}let b=m;b._isFinished||(b._result=c,b._isFinished=!0,b._resolve(c))}),m}static getRawRecommendations(e){return v._requestRecos(e)}static addHistories(e){v._history=v._history.concat(e)}static setOthers(e,t){let r=0,s=v._others;for(;r<s.length;){let n=s[r];if(++r,n.key==e){n.value=t;return}}v._others.push({key:e,value:t})}static setConsent(e){e>2&&(e=2),v._consent=e,e==2&&v.getDeviceId()=="no-consent"&&v.setDeviceId(Le.v4())}static setChannel(e){v._channel=e}static setPageVisit(e){v._page_visit=e}static setEnvironment(e){v._environment=e}static setDeviceId(e){v._device_id=e}static setUserId(e){v._user_id=e}static setRequestDomain(e){v._req_domain=e}static setSafeRequest(e){v._safe_request=e}static setContextItem(e){v.setOthers("context_item",e)}static setContextItemType(e){v.setOthers("context_item_type",e)}static getRequestDomain(){return v._req_domain}static getSafeRequest(){return v._safe_request}static getEnvironment(){return v._environment}static getPageVisit(){return v._page_visit}static getUserId(){return v._user_id}static getDeviceId(){return v._device_id}static getConsent(){return v._consent}static getChannel(){return v._channel}static getOthers(e){let t=0,r=v._others;for(;t<r.length;){let s=r[t];if(++t,e==s.key)return s.value}return null}static getContextItem(){return v.getOthers("context_item")}static getContextItemType(){return v.getOthers("context_item_type")}static get __name__(){return"internal.RecoBackendV2"}get __class__(){return v}};o._environment=null;o._device_id="no-consent";o._user_id=null;o._consent=0;o._req_domain="europe-west1.froomle.com";o._page_visit=null;o._channel="www-desktop";o._safe_request=!0;o._history=[];o._others=[];var pe=i.global("$hxClasses")["internal._RecommendationsInternal"]=class Ne extends i.inherits(){[i.new](e,t,r,s,n){this.request_id=t,this.user_group=r,this.device_id=e,this.user_id=s,this._lists=n}items(){let e=[],t=0,r=this._lists;for(;t<r.length;){let s=r[t];++t;let n=0,l=s.items;for(;n<l.length;){let u=l[n];++n,e.push(u)}}return e}lists(){return this._lists}getItemsByListName(e){let t=0,r=this._lists;for(;t<r.length;){let s=r[t];if(++t,s.list_name==e)return s}return null}toJson(){let e={request_id:this.request_id,user_group:this.user_group,user_id:this.user_id,device_id:this.device_id,lists:[]},t=0,r=this._lists;for(;t<r.length;){let s=r[t];++t;let n={limit:s.limit,list_key:s.list_key,list_name:s.list_name,list_size:s.list_size,items:[]},l=0,u=s.items;for(;l<u.length;){let f=u[l];++l,n.items.push(be.__cast(f,ie).getData())}e.lists.push(n)}return JSON.stringify(e)}static fromRequestData(e){let t=I.getProperty(e,"lists"),r=[],s=0;for(;s<t.length;){let n=t[s];++s;let l=I.getProperty(n,"items"),u=[],f=0;for(;f<l.length;){let g=l[f];++f,I.setProperty(g,"request_id",I.getProperty(e,"request_id")),I.setProperty(g,"user_group",I.getProperty(e,"user_group")),u.push(new ie(g))}let m=new ce({limit:I.getProperty(n,"limit"),list_key:I.getProperty(n,"list_key"),list_name:I.getProperty(n,"list_name"),list_size:I.getProperty(n,"list_size"),items:u,request_id:I.getProperty(e,"request_id")});r.push(m)}return new Ne(I.getProperty(e,"device_id"),I.getProperty(e,"request_id"),I.getProperty(e,"user_group"),I.getProperty(e,"user_id"),r)}static get __name__(){return"internal._RecommendationsInternal"}static get __interfaces__(){return[ge]}get __class__(){return Ne}};pe.prototype.request_id=null;pe.prototype.user_group=null;pe.prototype.user_id=null;pe.prototype.device_id=null;pe.prototype._lists=null;var ce=i.global("$hxClasses")["internal._RecommendationsListInternal"]=class ut extends i.inherits(){[i.new](e){this.items=e.items,this.limit=e.limit,this.list_key=e.list_key,this.list_name=e.list_name,this.list_size=e.list_size,this.request_id=e.request_id}static get __name__(){return"internal._RecommendationsListInternal"}static get __interfaces__(){return[_e]}get __class__(){return ut}};ce.prototype.limit=null;ce.prototype.list_key=null;ce.prototype.list_name=null;ce.prototype.list_size=null;ce.prototype.items=null;ce.prototype.request_id=null;var ie=i.global("$hxClasses")["internal._RecommendationItemInternal"]=class ct extends i.inherits(){[i.new](e){this.Id=I.getProperty(e,"item_id"),this.RequestId=I.getProperty(e,"request_id"),this.UserGroup=I.getProperty(e,"user_group"),this._data=e}getData(){return this._data}get(e){return this._data[e]}toJson(){return JSON.stringify(this._data)}static get __name__(){return"internal._RecommendationItemInternal"}static get __interfaces__(){return[fe]}get __class__(){return ct}};ie.prototype.Id=null;ie.prototype.RequestId=null;ie.prototype.UserGroup=null;ie.prototype._data=null;var Yn=i.$global,Ue=function(){};Ue.__isInterface__=!0;var rs=i.$global,xe=i.global("$hxClasses")["internal.js.JSFroomleDomTree"]=class De extends i.inherits(){[i.new](){}getRoot(){return this.root}createElement(e){return this.root.ownerDocument.createElement(e)}toString(){return this.root.ownerDocument.documentElement.outerHTML}static fromHTML(e){let r=new DOMParser().parseFromString(e,"text/html"),s=new De;return s.root=r.documentElement,s}static fromDocument(e){let t=new De;return t.root=e.documentElement,t}static get __name__(){return"internal.js.JSFroomleDomTree"}static get __interfaces__(){return[Ue]}get __class__(){return De}};xe.prototype.root=null;var gs=i.$global,oe=i.global("$hxClasses")["internal.domHandler.DomDomDom"]=class re extends i.inherits(){[i.new](){}static _fillRecoTargets(e){let t=null,r=new Promise(function(h,w){t=h}),s=r;s._resolve=t,s._isFinished=!1,s._result=null;let n=r;if(e==null){let h=n;return h._isFinished||(h._result=!1,h._isFinished=!0,h._resolve(!1)),n}let l=[],u=new Array,f=e.querySelectorAll("*"),m=0,g=f.length;for(;m<g;){let h=m++,w=f.item(h);w instanceof HTMLElement&&u.push(w)}let p=u;p.push(e);let c=0;for(;c<p.length;){let h=p[c];++c;let w=0,E=new Array,C=0,A=h.attributes;for(;C<A.length;){let H=A[C];++C,E.push({name:H.name,value:H.value})}let U=E;for(;w<U.length;){let H=U[w];++w,H.name=="data-froomle-reco"&&l.push(h)}}let y=[],b=0;for(;b<l.length;){let h=l[b];++b;let w=h.getAttribute("data-froomle-request-id"),E=h.getAttribute("data-froomle-id"),C=w!=null&&w!="",A=E!=null&&E!="";!C&&!A&&y.push(h)}if(y.length<1){let h=null,w=new Promise(function(C,A){h=C}),E=w;return E._resolve=h,E._isFinished=!1,E._result=null,w}let d=[],k=[],_="",x=[],S=[],D=[],N=function(h,w){if(h.length!=w.length)return!1;let E=new Array(h.length),C=0,A=h.length;for(;C<A;){let $=C++;E[$]=JSON.stringify(h[$])}let U=E,H=new Array(w.length),G=0,K=w.length;for(;G<K;){let $=G++;H[$]=JSON.stringify(w[$])}let W=H;U.sort(I.compare),W.sort(I.compare);let z=0,M=U.length;for(;z<M;){let $=z++;if(U[$]!=W[$])return!1}return!0},T=function(){let h={list_name:_,list_size:S.length,limit:S.length},w=0;for(;w<x.length;){let C=x[w];if(++w,C!=null&&C.key!=null&&C.key!=""){let A=C.value;A instanceof Array||(A=[A]),I.setProperty(h,C.key,A)}}let E=0;for(;E<D.length;){let C=D[E];++E,I.setProperty(h,C.key,C.value)}d.push(h),k.push(S)},F=function(h,w,E,C){_=h,x=w,S=[C],D=E},O=0;for(;O<y.length;){let h=y[O];++O;let w=function(H){let G=[],K=0,W=new Array,z=0,M=H.attributes;for(;z<M.length;){let V=M[z];++z,W.push({name:V.name,value:V.value})}let $=W;for(;K<$.length;){let V=$[K];if(++K,V.name.startsWith("data-froomle-reco-filter-")){let X=j.substr(V.name,25,null),se=V.value;G.push({key:X,value:se})}}return G},E=function(H){let G=[],K=0,W=new Array,z=0,M=H.attributes;for(;z<M.length;){let V=M[z];++z,W.push({name:V.name,value:V.value})}let $=W;for(;K<$.length;){let V=$[K];if(++K,V.name.startsWith("data-froomle-variable-")){let X=j.substr(V.name,22,null),se=V.value;G.push({key:X,value:se})}}return G},C=h.getAttribute("data-froomle-reco"),A=w(h),U=E(h);if(_==""){F(C,A,U,h);continue}else if(C==_&&N(x,A)&&N(D,U)){S.push(h);continue}else{T(),F(C,A,U,h);continue}}_!=""&&T();let B;if(o.getPageVisit()==null){let h=n;return h._isFinished||(h._result=!1,h._isFinished=!0,h._resolve(!1)),n}else if(o.getEnvironment()==null){let h=n;return h._isFinished||(h._result=!1,h._isFinished=!0,h._resolve(!1)),n}else try{B=o.getRawRecommendations(d)}catch{let w=n;return w._isFinished||(w._result=!1,w._isFinished=!0,w._resolve(!1)),n}return B.then(function(h){let w=h.lists(),E=w.length,C=0,A=E;for(;C<A;){let H=C++,G=w[H],K=G.items.length!=k[H].length,W=G.items.length,z=0,M=W;for(;z<M;){let $=z++,V=G.items[$],X=k[H][$];re._fillParameters(X,V,h.request_id)}}let U=n;U._isFinished||(U._result=!0,U._isFinished=!0,U._resolve(!0))}),n}static getAttrByPath(e,t,r){r==null&&(r="fgh");try{t=new we("\\\\[(\\\\w+)\\\\]","g").map(t,function(m){return"."+m.matched(1)}),t=ae.replace(t,"[","."),t=ae.replace(t,"]",""),j.cca(t,0)==46&&(t=j.substr(t,1,null));let n=t.split("."),l=e.get(n[0]),u=1,f=n.length;for(;u<f;){let m=u++;if(l==null)return null;l instanceof Array&&R.parseInt(n[m])!=null?l=l[R.parseInt(n[m])]:l=I.field(l,n[m])}return l}catch{return r}}static _buildHistories(e){let t=[],r=new Array,s=e.querySelectorAll("[data-froomle-id]"),n=0,l=s.length;for(;n<l;){let m=n++,g=s.item(m);g instanceof HTMLElement&&r.push(g)}let u=r,f=0;for(;f<u.length;){let m=u[f];++f,t.push(m.getAttribute("data-froomle-id"))}o.addHistories(t)}static fillParam(e,t,r,s,n){n==null&&(n="");try{let l=re.getAttrByPath(s,r,n);if(t=="inner"){e.textContent=l;let u=e.textContent}else e.setAttribute(t,l)}catch{}}static _fillParameters(e,t,r){e.setAttribute("data-froomle-id",t.get("item_id")),e.setAttribute("data-froomle-request-id",r);let s=t.get("item_type");s!=null&&R.string(s)!=""&&e.setAttribute("data-froomle-item-type",R.string(s)),t.UserGroup!=null&&t.UserGroup!=""&&e.setAttribute("data-froomle-user-group",t.UserGroup);let n=new Array,l=e.querySelectorAll("*"),u=0,f=l.length;for(;u<f;){let p=u++,c=l.item(p);c instanceof HTMLElement&&n.push(c)}let m=n,g=0;for(;g<m.length;){let p=m[g];++g;let c=0,y=new Array,b=0,d=p.attributes;for(;b<d.length;){let _=d[b];++b,y.push({name:_.name,value:_.value})}let k=y;for(;c<k.length;){let _=k[c];if(++c,_.name.startsWith("data-froomle-param-")){let x=ae.replace(_.name,"data-froomle-param-",""),S=_.value;re.fillParam(p,x,S,t)}}}}static _orderElements(e){let t=function(_,x,S){let D=[],N=new Array,T=0,F=_.childNodes;for(;T<F.length;){let E=F[T];++T,N.push(E)}let O=N,B=0;for(;B<O.length;){let E=O[B];++B;try{if(E.getAttribute("data-froomle-ordervalue")!=null){D.push(E);let A=e.createElement("span");A.setAttribute("data-froomle-tmp-node","tmp"),_.replaceChild(A,E)}}catch{}}let h=[],w=0;for(;w<D.length;){let E=D[w];++w,h.push(E.getAttribute("data-froomle-ordervalue"))}return{el:_,key:x,values:h,orderChildren:D,list_name:S}},r=null,s=new Promise(function(_,x){r=_}),n=s;n._resolve=r,n._isFinished=!1,n._result=null;let l=s,u=e.getRoot(),f=new Array,m=u.querySelectorAll("*"),g=0,p=m.length;for(;g<p;){let _=g++,x=m.item(_);x instanceof HTMLElement&&f.push(x)}let c=f,y=[],b=0;for(;b<c.length;){let _=c[b];++b;let x=0,S=new Array,D=0,N=_.attributes;for(;D<N.length;){let F=N[D];++D,S.push({name:F.name,value:F.value})}let T=S;for(;x<T.length;){let F=T[x];++x,F.name.startsWith("data-froomle-order-")&&y.push(t(_,F.name.substring(19),F.value))}}if(y.length<1){let _=l;return _._isFinished||(_._result=!1,_._isFinished=!0,_._resolve(!1)),l}let d=[],k=0;for(;k<y.length;){let _=y[k];++k;let x={list_name:_.list_name,limit:_.values.length,list_size:_.values.length},S={};I.setProperty(S,_.key,_.values),I.setProperty(x,"order",S),d.push(x)}if(o.getPageVisit()==null){let _=l;return _._isFinished||(_._result=!1,_._isFinished=!0,_._resolve(!1)),l}else if(o.getEnvironment()==null){let _=l;return _._isFinished||(_._result=!1,_._isFinished=!0,_._resolve(!1)),l}try{o.getRawRecommendations(d).then(function(_){let x=_.lists(),S=x.length,D=0,N=S;for(;D<N;){let F=D++,O=x[F],B=y[F];B.el.setAttribute("data-froomle-request-id",_.request_id);let h=new Array,w=0,E=O.items;for(;w<E.length;){let M=E[w];++w;let $=M.get(B.key),V=M.get(B.key),X=B.values.length,se=0,de=X;for(;se<de;){let le=se++,he=B.values[le];if($==he){let jt=B.orderChildren.length,Et=B.orderChildren[le];h.push(Et),B.orderChildren.splice(le,1),B.values.splice(le,1);break}}}let C=h.length,A=B.el,U=new Array,H=0,G=A.childNodes;for(;H<G.length;){let M=G[H];++H,U.push(M)}let K=U.length,W=0,z=K;for(;W<z;){let M=W++,$=B.el,V=new Array,X=0,se=$.childNodes;for(;X<se.length;){let he=se[X];++X,V.push(he)}let de=V[M],le;if(de instanceof HTMLElement?le=de.hasAttribute("data-froomle-tmp-node"):le=!1,le){B.el.replaceChild(h[0],de),h.splice(0,1);let he=h.length;if(h.length==0)break}}}let T=l;T._isFinished||(T._result=!0,T._isFinished=!0,T._resolve(!0))})}catch{let x=l;x._isFinished||(x._result=!1,x._isFinished=!0,x._resolve(!1))}return l}static domInit(e){let t=null,r=new Promise(function(l,u){t=l}),s=r;s._resolve=t,s._isFinished=!1,s._result=null;let n=r;return re._orderElements(e).then(function(l){re._buildHistories(e.getRoot()),re._fillRecoTargets(e.getRoot()).then(function(u){let f=n;f._isFinished||(f._result=!0,f._isFinished=!0,f._resolve(!0))})}),n}static fillElementRecos(e){re._fillRecoTargets(e)}static runFromHtml(e){if(e=="")return"";let t;try{let s=new DOMParser().parseFromString(e,"text/html"),n=new xe;n.root=s.documentElement,t=n}catch{return e}return re.domInit(t),t.toString()}static get __name__(){return"internal.domHandler.DomDomDom"}get __class__(){return re}};var hs=i.$global,L=i.global("$hxClasses").FroomleSdk=class ne{static register(){ne.registered||ne._env_set&&ne._page_visit_set&&(ne.registered=!0)}static buildScriptTag(){let e='<script src="https://cdn.jsdelivr.net/npm/@froomle/frontend-sdk@0.0.11/dist/froomle.global.js" data-froomle-env="'+o.getEnvironment()+'" ',t=o.getPageVisit();t!=null&&(e+='data-froomle-page-visit="'+t+'" ');let r=o.getContextItem();if(r!=null){e+='data-froomle-context-item="'+r+'" ';let m=o.getContextItemType();(m==null||m=="")&&(m="article"),e+='data-froomle-context-item-type="'+m+'" '}let s=o.getDeviceId();s!=null&&(e+='data-froomle-device-id="'+s+'" ');let n=o.getUserId();n!=null&&(e+='data-froomle-user-id="'+n+'" ');let l=o.getConsent();l>0&&(e+='data-froomle-consent="'+l+'" ');let u=o.getRequestDomain();u!=null&&(e+='data-froomle-request-domain="'+u+'" ');let f=o.getChannel();return f!=null&&(e+='data-froomle-channel="'+f+'" '),e+="><\/script>",e}static setEnvironment(e){o.setEnvironment(e),ne._env_set=!0,ne.register()}static setDeviceId(e){o.setDeviceId(e)}static setUserId(e){o.setUserId(e)}static setConsent(e){o.setConsent(e)}static setPageVisit(e){o.setPageVisit(e),ne._page_visit_set=!0,ne.register()}static setChannel(e){o.setChannel(e)}static setRequestDomain(e){o.setRequestDomain(e)}static setSafeRequest(e){o.setSafeRequest(e)}static setContextItem(e){o.setContextItem(e)}static setContextItemType(e){o.setContextItemType(e)}static setCustomVariable(e,t){o.setOthers(e,t)}static getUserId(){return o.getUserId()}static getDeviceId(){return o.getDeviceId()}static getEnvironment(){return o.getEnvironment()}static getSafeRequest(){return o.getSafeRequest()}static getPageVisit(){return o.getPageVisit()}static getConsent(){return o.getConsent()}static getRecommendations(e){return o.getRawRecommendations(e)}static getChannel(){return o.getChannel()}static getVersion(){return"0.0.11"}static runFromHtml(e){return oe.runFromHtml(e)}static get __name__(){return"FroomleSdk"}get __class__(){return ne}};L._env_set=!1;L._page_visit_set=!1;L.registered=!1;var vs=i.$global;function mt(){return(o.getSafeRequest()?"https://":"http://")+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events"}function Ae(){return o.getConsent()>=1}function gt(){return o.getConsent()<2?"no-consent":o.getDeviceId()}function _t(){let a=o.getChannel();if(a)return a}function Bt(a){let e=(a==null?void 0:a.getAttribute("data-froomle-id"))||(a==null?void 0:a.getAttribute("data-froomle-action-item"));if(e)return e}function Ht(a){let e=(a==null?void 0:a.getAttribute("data-froomle-item-type"))||(a==null?void 0:a.getAttribute("data-froomle-action-item-type"));if(e)return e}function ft(a){var r;let e=a==null?void 0:a.getAttribute("data-froomle-user-group");return e||(typeof document=="undefined"?void 0:((r=document.querySelector("[data-froomle-user-group]"))==null?void 0:r.getAttribute("data-froomle-user-group"))||void 0)}function pt(a,e,t="impression",r){if(!Ae())return;let s=_t()||"www-desktop",n={event_type:t,page_type:o.getPageVisit(),action_item:a,action_item_type:e,channel:s,device_id:gt()},l=ft();if(l&&(n.user_group=l),r)for(let u in r)n[u]=r[u];try{fetch(mt(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({events:[n]})})}catch{}}var P=class P{static queueIfNotPresent(e){P.impressionQueue.includes(e)||P.impressionQueue.push(e)}static generateBody(){let e=[];for(let t of P.impressionQueue){let r=Bt(t);if(!r)continue;let s=Ht(t)||"article",n=_t()||"www-desktop",l={event_type:"impression",page_type:o.getPageVisit(),action_item:r,action_item_type:s,channel:n,device_id:gt()},u=ft(t);u&&(l.user_group=u),o.getConsent()>=2&&o.getUserId()&&(l.user_id=o.getUserId());let f=t.getAttribute("data-froomle-reco"),m=t.getAttribute("data-froomle-request-id");f&&m&&(l.list_name=f,l.request_id=m),e.push(l)}return P.impressionQueue=[],JSON.stringify({events:e})}static sendImpressions(){console.log(P.impressionQueue),P.impressionQueue.length!==0&&Ae()&&fetch(mt(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:P.generateBody()})}static getViewPortRect(){let e=window.innerWidth||document.documentElement.clientWidth,t=window.innerHeight||document.documentElement.clientHeight;return{left:0,top:0,x:0,y:0,toJSON(){},right:e,bottom:t,width:e,height:t}}static intersectsWithViewPortRect(e){let t=e.getBoundingClientRect(),r=P.getViewPortRect();return t.right>r.left&&t.left<r.right&&t.bottom>r.top&&t.top<r.bottom}static addIntersectionImpressionListener(e){P.observer.observe(e)}static processDocument(){if(Ae()){console.log("\u{1F680} Processing document for impressions");for(let e of document.querySelectorAll("[data-froomle-id]"))P.intersectsWithViewPortRect(e)?P.queueIfNotPresent(e):P.addIntersectionImpressionListener(e);P.sendImpressions()}}static processElement(e){if(!Ae()||!(e instanceof Element))return;let t=[];e.matches("[data-froomle-id]")&&t.push(e);for(let r of e.querySelectorAll("[data-froomle-id]"))t.push(r);if(t.length!==0){for(let r of t)P.intersectsWithViewPortRect(r)?P.queueIfNotPresent(r):P.addIntersectionImpressionListener(r);P.sendImpressions()}}};P.impressionQueue=[],P.observer=null;var Q=P;typeof document!="undefined"&&(Q.observer=new IntersectionObserver((a,e)=>{a.forEach(t=>{t.isIntersecting&&(Q.impressionQueue.push(t.target),Q.observer.unobserve(t.target))}),Q.impressionQueue.length>0&&Q.sendImpressions()}));var Ie=class a{static canTrackEvents(){return o.getConsent()>=1}static readDeviceId(){return o.getConsent()<2?"no-consent":o.getDeviceId()}static readChannel(){let e=o.getChannel();if(e)return e}static readUserGroup(){var t;return typeof document=="undefined"?void 0:((t=document.querySelector("[data-froomle-user-group]"))==null?void 0:t.getAttribute("data-froomle-user-group"))||void 0}static uri(){return(o.getSafeRequest()?"https://":"http://")+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events"}static generateBody(){let e=a.readChannel()||"www-desktop",t={event_type:"page_visit",page_type:o.getPageVisit(),channel:e,device_id:a.readDeviceId()},r=a.readUserGroup();return r&&(t.user_group=r),o.getConsent()>=2&&o.getUserId()&&(t.user_id=o.getUserId()),JSON.stringify({events:[t]})}static sendPageVisit(){o.getPageVisit()&&(o.getContextItem()||a.canTrackEvents()&&fetch(a.uri(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:a.generateBody()}))}};var Ee=class a{static canTrackEvents(){return o.getConsent()>=1}static readDeviceId(){return o.getConsent()<2?"no-consent":o.getDeviceId()}static readChannel(){let e=o.getChannel();if(e)return e}static readActionItemType(){let e=o.getContextItemType();if(e)return e}static readUserGroup(){var t;return typeof document=="undefined"?void 0:((t=document.querySelector("[data-froomle-user-group]"))==null?void 0:t.getAttribute("data-froomle-user-group"))||void 0}static uri(){return(o.getSafeRequest()?"https://":"http://")+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events"}static generateBody(){let e=a.readActionItemType()||"article",t=a.readChannel()||"www-desktop",r={event_type:"detail_pageview",page_type:o.getPageVisit(),action_item:o.getContextItem(),action_item_type:e,channel:t,device_id:a.readDeviceId()},s=a.readUserGroup();return s&&(r.user_group=s),o.getConsent()>=2&&o.getUserId()&&(r.user_id=o.getUserId()),JSON.stringify({events:[r]})}static sendPageView(){o.getContextItem()&&o.getPageVisit()&&a.canTrackEvents()&&fetch(a.uri(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:a.generateBody()})}};var ee=class ee{static canTrackEvents(){return o.getConsent()>=1}static readDeviceId(){return o.getConsent()<2?"no-consent":o.getDeviceId()}static readChannel(){let e=o.getChannel();if(e)return e}static readActionItem(e){let t=e.getAttribute("data-froomle-id")||e.getAttribute("data-froomle-action-item");if(t)return t}static readActionItemType(e){let t=e.getAttribute("data-froomle-item-type")||e.getAttribute("data-froomle-action-item-type");if(t)return t}static readUserGroup(e){var s;let t=e.getAttribute("data-froomle-user-group");return t||(typeof document=="undefined"?void 0:((s=document.querySelector("[data-froomle-user-group]"))==null?void 0:s.getAttribute("data-froomle-user-group"))||void 0)}static registerClickables(){ee.listenerRegistered||(ee.listenerRegistered=!0,document.addEventListener("click",e=>{if(!ee.canTrackEvents())return;let t=e instanceof MouseEvent?e:null,r=e.target,s=r instanceof Element?r:r instanceof Node?r.parentElement:null;if(!s)return;let n=s.closest("a");if(!n)return;let l=n.closest("[data-froomle-id]");if(!l)return;let u=ee.readActionItem(l);if(!u)return;let f=ee.readActionItemType(l)||"article",m=ee.readChannel()||"www-desktop",g=n instanceof HTMLAnchorElement?n.href:null,p=!!g&&e.cancelable&&!e.defaultPrevented&&!n.hasAttribute("download")&&(!n.target||n.target==="_self")&&!!t&&t.button===0&&!t.metaKey&&!t.ctrlKey&&!t.shiftKey&&!t.altKey;p&&e.preventDefault();let c={event_type:"click_on_recommendation",page_type:o.getPageVisit(),action_item:u,action_item_type:f,channel:m,device_id:ee.readDeviceId()},y=ee.readUserGroup(l);y&&(c.user_group=y);let b=l.getAttribute("data-froomle-reco"),d=l.getAttribute("data-froomle-request-id");b&&d&&(c.list_name=b,c.request_id=d),o.getConsent()>=2&&o.getUserId()&&(c.user_id=o.getUserId());let _=(o.getSafeRequest()?"https://":"http://")+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events",x=JSON.stringify({events:[c]}),S=new Blob([x],{type:"application/json"}),D=()=>fetch(_,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:x,keepalive:!0});if(p&&g){let T=!1,F=()=>{T||(T=!0,window.location.assign(g))},O=window.setTimeout(F,200);D().catch(()=>{typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function"&&navigator.sendBeacon(_,S)}).finally(()=>{window.clearTimeout(O),F()});return}typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function"&&navigator.sendBeacon(_,S)||D().catch(()=>{})},!0))}};ee.listenerRegistered=!1;var Re=ee;var dt=xe,ht=L.setEnvironment,yt=L.setPageVisit,bt=L.setRequestDomain,vt=L.setSafeRequest,wt=typeof L.setChannel=="function"?L.setChannel:o.setChannel,xt=L.setContextItem,It=L.setContextItemType,Vt=L.setCustomVariable,Lt=o.addHistories;function Me(a){L.setUserId(a),document.cookie=`froomle_user_id=${a}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Je(a){L.setDeviceId(a),document.cookie=`froomle_device_id=${a}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Ge(a){L.setConsent(a),document.cookie=`froomle_consent=${a}; max-age=${3600*24*365*20}; path=/; samesite=lax`,document.cookie=`froomle_device_id=${L.getDeviceId()}; max-age=${3600*24*365*20}; path=/; samesite=lax`}typeof window!="undefined"&&(window.setFroomleConsent=Ge);function je(a){let e=document.cookie.split("; ");for(let t of e){let[r,s]=t.split("=");if(r===a)return decodeURIComponent(s)}return null}var Nt=L.getRecommendations;if(!globalThis.froomleInitialized&&(globalThis.froomleInitialized=!0,typeof document!="undefined")){let a=document.currentScript;if(a){let t=a.getAttribute("data-froomle-device-id"),r=a.getAttribute("data-froomle-user-id"),s=a.getAttribute("data-froomle-env"),n=a.getAttribute("data-froomle-page-visit"),l=a.getAttribute("data-froomle-request-domain"),u=a.getAttribute("data-froomle-context-item"),f=a.getAttribute("data-froomle-context-item-type"),m=a.getAttribute("data-froomle-safe-request"),g=a.getAttribute("data-froomle-channel");if(ht(s),n&&yt(n),u&&(xt(u),It(f||"article")),t)Je(t);else{let p=je("froomle_device_id");p&&Je(p)}if(r)Me(r);else{let p=je("froomle_user_id");p&&Me(p)}l&&bt(l),m&&vt(m!=="false"),g&&wt(g)}let e=je("froomle_consent");e&&Ge(e),document.addEventListener("DOMContentLoaded",()=>{console.log("froomle loads dom"),oe.domInit(dt.fromDocument(document)).then(s=>{Re.registerClickables(),Q.processDocument(),Ie.sendPageVisit(),Ee.sendPageView()});function t(s){return s.matches("[data-froomle-reco]")||s.querySelector("[data-froomle-reco]")!==null}new MutationObserver(s=>{for(let n of s)if(n.type==="childList"&&n.addedNodes.forEach(l=>{l instanceof Element&&(t(l)&&oe.fillElementRecos(l),Q.processElement(l))}),n.type==="attributes"&&n.target instanceof Element)if(n.attributeName==="data-froomle-reco"){let l=n.target.getAttribute("data-froomle-request-id");(!l||l==="")&&oe.fillElementRecos(n.target)}else if(n.attributeName==="data-froomle-request-id"){let l=n.target.getAttribute("data-froomle-request-id"),u=n.target.getAttribute("data-froomle-id");n.target.getAttribute("data-froomle-reco")&&(!l||l==="")&&(!u||u==="")&&oe.fillElementRecos(n.target)}else n.attributeName==="data-froomle-id"&&Q.processElement(n.target)}).observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-froomle-reco","data-froomle-request-id","data-froomle-id"]})})}return Dt(Ut);})();
package/dist/index.d.ts CHANGED
@@ -23,7 +23,6 @@ declare class RecoBackendV2 {
23
23
  protected static _consent: number
24
24
  protected static _req_domain: string
25
25
  protected static _page_visit: string
26
- protected static _page_view: string
27
26
  protected static _channel: string
28
27
  protected static _safe_request: boolean
29
28
  protected static _history: string[]
@@ -66,16 +65,15 @@ declare class RecoBackendV2 {
66
65
  static setDeviceId(id: string): void
67
66
  static setUserId(id: string): void
68
67
  static setRequestDomain(domain: string): void
69
- static setPageView(page: string): void
70
68
  static setSafeRequest(safe: boolean): void
71
69
  static setContextItem(id: string): void
72
70
  static setContextItemType(type: string): void
73
71
  static getRequestDomain(): string
72
+ static getSafeRequest(): boolean
74
73
  static getEnvironment(): string
75
74
  static getPageVisit(): string
76
75
  static getUserId(): string
77
76
  static getDeviceId(): string
78
- static getPageView(): string
79
77
  static getConsent(): number
80
78
  static getChannel(): string
81
79
  static getOthers(key: string): any
@@ -86,7 +84,6 @@ declare class RecoBackendV2 {
86
84
  declare class FroomleSdk {
87
85
  protected static _env_set: boolean
88
86
  protected static _page_visit_set: boolean
89
- protected static _page_view_set: boolean
90
87
  protected static registered: boolean
91
88
 
92
89
  /**
@@ -102,8 +99,8 @@ declare class FroomleSdk {
102
99
  static setDeviceId(id: string): void
103
100
  static setUserId(id: string): void
104
101
  static setConsent(consent: number): void
105
- static setPageView(page: string): void
106
102
  static setPageVisit(page: string): void
103
+ static setChannel(channel: string): void
107
104
  static setRequestDomain(domain: string): void
108
105
  static setSafeRequest(safe: boolean): void
109
106
  static setContextItem(id: string): void
@@ -112,7 +109,7 @@ declare class FroomleSdk {
112
109
  static getUserId(): string
113
110
  static getDeviceId(): string
114
111
  static getEnvironment(): string
115
- static getPageView(): string
112
+ static getSafeRequest(): boolean
116
113
  static getPageVisit(): string
117
114
  static getConsent(): number
118
115
  static getRecommendations(lists: {
@@ -130,13 +127,13 @@ declare function sendEvent(action_item: string, action_item_type: string, event_
130
127
  }): void;
131
128
 
132
129
  declare const setPageVisit: typeof FroomleSdk.setPageVisit;
133
- declare const setPageView: typeof FroomleSdk.setPageView;
134
130
  declare const setEnvironment: typeof FroomleSdk.setEnvironment;
135
131
  declare function setConsent(consent: any): void;
136
132
  declare function setUserId(userId: any): void;
137
133
  declare function setDeviceId(deviceId: any): void;
138
134
  declare const setRequestDomain: typeof FroomleSdk.setRequestDomain;
139
135
  declare const setSafeRequest: typeof FroomleSdk.setSafeRequest;
136
+ declare const setChannel: typeof FroomleSdk.setChannel;
140
137
  declare const setContextItem: typeof FroomleSdk.setContextItem;
141
138
  declare const setContextItemType: typeof FroomleSdk.setContextItemType;
142
139
  declare const setCustomVariable: typeof FroomleSdk.setCustomVariable;
@@ -148,4 +145,4 @@ declare const addHistories: typeof RecoBackendV2.addHistories;
148
145
  declare function fulfillRecommendations(): Promise<void>;
149
146
  declare function proxyReco(req: RecoRequest): RecommendationItem & PromiseLike<RecommendationItem>;
150
147
 
151
- export { RecommendationItem, Recommendations, addHistories, fulfillRecommendations, getRecommendations, proxyReco, sendEvent, setConsent, setContextItem, setContextItemType, setCustomVariable, setDeviceId, setEnvironment, setPageView, setPageVisit, setRequestDomain, setSafeRequest, setUserId };
148
+ export { RecommendationItem, Recommendations, addHistories, fulfillRecommendations, getRecommendations, proxyReco, sendEvent, setChannel, setConsent, setContextItem, setContextItemType, setCustomVariable, setDeviceId, setEnvironment, setPageVisit, setRequestDomain, setSafeRequest, setUserId };
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{a,b,c,e as d,j as e,k as f,l as g,m as h,n as i,o as j,p as k,q as l,r as m,s as n,t as o,u as p,v as q,w as r,x as s}from"./chunk-MYV4LQUN.js";export{c as RecommendationItem,b as RecommendationList,a as Recommendations,l as addHistories,r as fulfillRecommendations,q as getRecommendations,s as proxyReco,d as sendEvent,p as setConsent,i as setContextItem,j as setContextItemType,k as setCustomVariable,o as setDeviceId,e as setEnvironment,m as setPageView,f as setPageVisit,g as setRequestDomain,h as setSafeRequest,n as setUserId};
1
+ import{a,b,c,e as d,j as e,k as f,l as g,m as h,n as i,o as j,p as k,q as l,r as m,s as n,t as o,u as p,v as q,w as r,x as s}from"./chunk-ZB7K2NNI.js";export{c as RecommendationItem,b as RecommendationList,a as Recommendations,m as addHistories,r as fulfillRecommendations,q as getRecommendations,s as proxyReco,d as sendEvent,i as setChannel,p as setConsent,j as setContextItem,k as setContextItemType,l as setCustomVariable,o as setDeviceId,e as setEnvironment,f as setPageVisit,g as setRequestDomain,h as setSafeRequest,n as setUserId};
package/dist/react.js CHANGED
@@ -1 +1 @@
1
- import{d as a,f as y,g as x,h as F,i as v,w as C,x as P}from"./chunk-MYV4LQUN.js";import f,{createContext as V,useContext as q,useEffect as N,useRef as b,useState as A}from"react";import R from"react";function k({children:e,id:r}){let[n,t]=R.useState(!1);return n||(a.addHistories([r]),t(!0)),R.createElement(R.Fragment,null,e)}import m from"react";function h({children:e,value:r}){return m.createElement(m.Fragment,null,e)}h.displayName="FroomleOrderItem";function S({children:e,list:r,category:n}){let[t,i]=m.useState(null);return m.createElement(m.Fragment,null,(()=>{let u=m.Children.toArray(e),s=[],l=[],d=[[]];for(let o of u)if(console.log(o.type.displayName),m.isValidElement(o)&&o.type===h){let p=o.props.value;s.push(p),l.push(o),d.push([])}else d[d.length-1].push(o);if(t){let o=[];for(let p of t){let g=s.indexOf(p);g!==-1&&(o.push(l[g]),o.push(...d[g+1]))}return o}else return a.getOrder(r,n,s).then(o=>{i(o)}),u})())}function z(e){return N(()=>{C().then(r=>{y.processDocument(),x.sendPageVisit(),F.sendPageView(),v.registerClickables()})},[]),f.createElement(f.Fragment,null,e.children)}var O=V(null);function I(e,...r){for(let n of r){let t=e==null?void 0:e[n];if(t!=null&&t!==""&&t!=="undefined")return String(t)}if(typeof(e==null?void 0:e.get)=="function")for(let n of r){let t=e.get(n);if(t!=null&&t!==""&&t!=="undefined")return String(t)}}function _(){var r;if(typeof document=="undefined")return;let e=(r=document.querySelector("[data-froomle-user-group]"))==null?void 0:r.getAttribute("data-froomle-user-group");if(e!=null&&e!==""&&e!=="undefined")return String(e)}function J({reco:e,children:r,...n}){let t=b(null);return f.useEffect(()=>{let i=!1,c=e.__froomleList;return t.current&&c&&t.current.setAttribute("data-froomle-reco",c),Promise.resolve(e).then(u=>{if(i||!t.current)return;let s=I(u,"Id","item_id"),l=I(u,"RequestId","request_id"),d=I(u,"UserGroup","user_group")||_();s&&t.current.setAttribute("data-froomle-id",s),l&&t.current.setAttribute("data-froomle-request-id",l),d&&t.current.setAttribute("data-froomle-user-group",d)}),()=>{i=!0}},[e]),f.createElement(O.Provider,{value:e},f.createElement("div",{ref:t,...n},r))}var K=()=>{let e=q(O);if(e===null)throw new Error("useFroomleReco must be used within a FroomleRecoProvider");return e};function Q(e){let r=b(null),[n,t]=A(0);if(!r.current){let{list:i,filters:c,...u}=e;r.current=P({list:i,filters:c,others:Object.entries(u).map(([s,l])=>({key:s,value:l}))})}return N(()=>{let i=!0;return r.current.then(()=>{i&&t(1)}),()=>{i=!1}},[]),r.current}export{k as FroomleCustomItem,S as FroomleOrder,h as FroomleOrderItem,J as FroomleReco,z as FroomleSdkInit,Q as useCreateReco,K as useReco};
1
+ import{d as a,f as I,g as x,h as F,i as v,w as C,x as P}from"./chunk-ZB7K2NNI.js";import f,{createContext as A,useContext as V,useEffect as N,useRef as b,useState as _}from"react";import h from"react";function k({children:e,id:r}){let[n,t]=h.useState(!1);return n||(a.addHistories([r]),t(!0)),h.createElement(h.Fragment,null,e)}import d from"react";function y({children:e,value:r}){return d.createElement(d.Fragment,null,e)}y.displayName="FroomleOrderItem";function S({children:e,list:r,category:n}){let[t,i]=d.useState(null);return d.createElement(d.Fragment,null,(()=>{let u=d.Children.toArray(e),s=[],l=[],m=[[]];for(let o of u)if(console.log(o.type.displayName),d.isValidElement(o)&&o.type===y){let g=o.props.value;s.push(g),l.push(o),m.push([])}else m[m.length-1].push(o);if(t){let o=[];for(let g of t){let R=s.indexOf(g);R!==-1&&(o.push(l[R]),o.push(...m[R+1]))}return o}else return a.getOrder(r,n,s).then(o=>{i(o)}),u})())}function z(e){return N(()=>{C().then(r=>{v.registerClickables(),I.processDocument(),x.sendPageVisit(),F.sendPageView()})},[]),f.createElement(f.Fragment,null,e.children)}var O=A(null);function p(e,...r){for(let n of r){let t=e==null?void 0:e[n];if(t!=null&&t!==""&&t!=="undefined")return String(t)}if(typeof(e==null?void 0:e.get)=="function")for(let n of r){let t=e.get(n);if(t!=null&&t!==""&&t!=="undefined")return String(t)}}function q(){var r;if(typeof document=="undefined")return;let e=(r=document.querySelector("[data-froomle-user-group]"))==null?void 0:r.getAttribute("data-froomle-user-group");if(e!=null&&e!==""&&e!=="undefined")return String(e)}function J({reco:e,children:r,...n}){let t=b(null);return f.useEffect(()=>{let i=!1,c=e.__froomleList;return t.current&&c&&t.current.setAttribute("data-froomle-reco",c),Promise.resolve(e).then(u=>{if(i||!t.current)return;let s=p(u,"Id","item_id"),l=p(u,"ItemType","item_type"),m=p(u,"RequestId","request_id"),o=p(u,"UserGroup","user_group")||q();s&&t.current.setAttribute("data-froomle-id",s),l&&t.current.setAttribute("data-froomle-item-type",l),m&&t.current.setAttribute("data-froomle-request-id",m),o&&t.current.setAttribute("data-froomle-user-group",o)}),()=>{i=!0}},[e]),f.createElement(O.Provider,{value:e},f.createElement("div",{ref:t,...n},r))}var K=()=>{let e=V(O);if(e===null)throw new Error("useFroomleReco must be used within a FroomleRecoProvider");return e};function Q(e){let r=b(null),[n,t]=_(0);if(!r.current){let{list:i,filters:c,...u}=e;r.current=P({list:i,filters:c,others:Object.entries(u).map(([s,l])=>({key:s,value:l}))})}return N(()=>{let i=!0;return r.current.then(()=>{i&&t(1)}),()=>{i=!1}},[]),r.current}export{k as FroomleCustomItem,S as FroomleOrder,y as FroomleOrderItem,J as FroomleReco,z as FroomleSdkInit,Q as useCreateReco,K as useReco};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@froomle/frontend-sdk",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "description": "Froomle frontend SDK",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -1,5 +0,0 @@
1
- var i=class u{static global(e){return u.globals[e]?u.globals[e]:u.globals[e]={}}static createStatic(e,t,r){let n=null;Object.defineProperty(e,t,{enumerable:!0,get:function(){return r!=null&&(n=r(),r=null),n},set:function(s){r!=null&&(n=r(),r=null),n=s}})}static iterator(e){if(Array.isArray(e)){let t=e;return function(){return u.mkIter(t)}}else return typeof e.iterator=="function"?e.iterator.bind(e):e.iterator}static getIterator(e){return Array.isArray(e)?u.mkIter(e):e.iterator()}static mkIter(e){return new Pe(e)}static extend(e){function t(){this[u.new].apply(this,arguments)}return Object.setPrototypeOf(t.prototype,e.prototype),t}static inherits(e,t){t==null&&(t=!1);function r(){t&&e&&r[u.init]&&r[u.init](),this[u.new].apply(this,arguments)}return t?r[u.init]=()=>{let n=e();n[u.init]&&n[u.init](),Object.setPrototypeOf(r.prototype,n.prototype),r[u.init]=void 0}:e&&e[u.init]?(t=!0,r[u.init]=()=>{e[u.init]&&e[u.init](),Object.setPrototypeOf(r.prototype,e.prototype),r[u.init]=void 0}):e&&Object.setPrototypeOf(r.prototype,e.prototype),r}static bind(e,t){if(t==null)return null;t.__id__==null&&(t.__id__=u.fid++);let r=null;return e.hx__closures__==null?e.hx__closures__={}:r=e.hx__closures__[t.__id__],r==null&&(r=t.bind(e),e.hx__closures__[t.__id__]=r),r}static get __name__(){return"genes.Register"}get __class__(){return u}};i.$global=typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:void 0;i.globals={};i.new=Symbol();i.init=Symbol();i.fid=0;var Pe=i.global("$hxClasses")["genes._Register.ArrayIterator"]=class Ge extends i.inherits(){[i.new](e){this.current=0,this.array=e}hasNext(){return this.current<this.array.length}next(){return this.array[this.current++]}static get __name__(){return"genes._Register.ArrayIterator"}get __class__(){return Ge}};Pe.prototype.array=null;Pe.prototype.current=null;var Ht=i.$global,Ee=i.global("$hxClasses")["haxe.ValueException"]=class Je extends i.inherits(()=>C,!0){[i.new](e,t,r){super[i.new](String(e),t,r),this.value=e}unwrap(){return this.value}static get __name__(){return"haxe.ValueException"}static get __super__(){return C}get __class__(){return Je}};Ee.prototype.value=null;var Mt=i.$global,C=i.global("$hxClasses")["haxe.Exception"]=class he extends i.inherits(()=>Error,!0){[i.new](e,t,r){Error.call(this,e),this.message=e,this.__previousException=t,this.__nativeException=r!=null?r:this}unwrap(){return this.__nativeException}get_native(){return this.__nativeException}static caught(e){return e instanceof he?e:e instanceof Error?new he(e.message,null,e):new Ee(e,null,e)}static thrown(e){return e instanceof he?e.get_native():e instanceof Error?e:new Ee(e)}static get __name__(){return"haxe.Exception"}static get __super__(){return Error}get __class__(){return he}};C.prototype.native=null;C.prototype.__skipStack=null;C.prototype.__nativeException=null;C.prototype.__previousException=null;var Xt=i.$global,D=i.global("$hxClasses").Std=class ze{static string(e){return ye.__string_rec(e,"")}static parseInt(e){let t=parseInt(e);return isNaN(t)?null:t}static random(e){return e<=0?0:Math.floor(Math.random()*e)}static get __name__(){return"Std"}get __class__(){return ze}};Object.defineProperty(String.prototype,"__class__",{value:String,enumerable:!1,writable:!0}),String.__name__=!0,Array.__name__=!0,yt={},bt={},wt=Number,vt=Boolean,xt={},Rt={};var yt,bt,wt,vt,xt,Rt;var Zt=i.$global,ye=i.global("$hxClasses")["js.Boot"]=class M{static getClass(e){if(e==null)return null;if(e instanceof Array)return Array;{let t=e.__class__;if(t!=null)return t;let r=M.__nativeClassName(e);return r!=null?M.__resolveNativeClass(r):null}}static __string_rec(e,t){if(e==null)return"null";if(t.length>=5)return"<...>";let r=typeof e;switch(r=="function"&&(e.__name__||e.__ename__)&&(r="object"),r){case"function":return"<function>";case"object":if(e.__enum__){let _=i.global("$hxEnums")[e.__enum__].__constructs__[e._hx_index],g=_._hx_name;return _.__params__?(t=t+" ",g+"("+(function(f){var c;let y=[];{let b=0,d=_.__params__;for(;b<d.length;){let I=d[b];b=b+1,y.push(M.__string_rec(e[I],t))}}return c=y,c})(this).join(",")+")"):g}if(e instanceof Array){let m="[";t+=" ";let _=0,g=e.length;for(;_<g;){let f=_++;m+=(f>0?",":"")+M.__string_rec(e[f],t)}return m+="]",m}let n;try{n=e.toString}catch{return"???"}if(n!=null&&n!=Object.toString&&typeof n=="function"){let m=e.toString();if(m!="[object Object]")return m}let s=`{
2
- `;t+=" ";let l=e.hasOwnProperty!=null,o=null;for(o in e)l&&!e.hasOwnProperty(o)||o=="prototype"||o=="__class__"||o=="__super__"||o=="__interfaces__"||o=="__properties__"||(s.length!=2&&(s+=`,
3
- `),s+=t+o+" : "+M.__string_rec(e[o],t));return t=t.substring(1),s+=`
4
- `+t+"}",s;break;case"string":return e;default:return String(e)}}static __interfLoop(e,t){if(e==null)return!1;if(e==t)return!0;let r=e.__interfaces__;if(r!=null&&(e.__super__==null||e.__super__.__interfaces__!=r)){let n=0,s=r.length;for(;n<s;){let l=n++,o=r[l];if(o==t||M.__interfLoop(o,t))return!0}}return M.__interfLoop(e.__super__,t)}static __instanceof(e,t){if(t==null)return!1;switch(t){case Array:return e instanceof Array;case"$hxCoreType__Bool":return typeof e=="boolean";case"$hxCoreType__Dynamic":return e!=null;case"$hxCoreType__Float":return typeof e=="number";case"$hxCoreType__Int":return typeof e=="number"?(e|0)===e:!1;case String:return typeof e=="string";default:if(e!=null){if(typeof t=="function"){if(M.__downcastCheck(e,t))return!0}else if(typeof t=="object"&&M.__isNativeObj(t)&&e instanceof t)return!0}else return!1;return t=="$hxCoreType__Class"&&e.__name__!=null||t=="$hxCoreType__Enum"&&e.__ename__!=null?!0:e.__enum__!=null?i.global("$hxEnums")[e.__enum__]==t:!1}}static __downcastCheck(e,t){return e instanceof t?!0:t.__isInterface__?M.__interfLoop(M.getClass(e),t):!1}static __cast(e,t){if(e==null||M.__instanceof(e,t))return e;throw C.thrown("Cannot cast "+D.string(e)+" to "+D.string(t))}static __nativeClassName(e){let t=M.__toStr.call(e).slice(8,-1);return t=="Object"||t=="Function"||t=="Math"||t=="JSON"?null:t}static __isNativeObj(e){return M.__nativeClassName(e)!=null}static __resolveNativeClass(e){return i.$global[e]}static get __name__(){return"js.Boot"}get __class__(){return M}};ye.__toStr={}.toString;var nr=i.$global,$e=i.global("$hxClasses")["js.Browser"]=class Xe{static get supported(){return this.get_supported()}static get_supported(){return typeof window!="undefined"&&typeof window.location!="undefined"?typeof window.location.protocol=="string":!1}static createXMLHttpRequest(){if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;if(typeof ActiveXObject!="undefined")return new"ActiveXObject"("Microsoft.XMLHTTP");throw C.thrown("Unable to create XMLHttpRequest object.")}static get __name__(){return"js.Browser"}get __class__(){return Xe}};var lr=i.$global,Y=i.global("$hxEnums")["haxe.io.Error"]={__ename__:"haxe.io.Error",Blocked:{_hx_name:"Blocked",_hx_index:0,__enum__:"haxe.io.Error"},Overflow:{_hx_name:"Overflow",_hx_index:1,__enum__:"haxe.io.Error"},OutsideBounds:{_hx_name:"OutsideBounds",_hx_index:2,__enum__:"haxe.io.Error"},Custom:Object.assign(u=>({_hx_index:3,__enum__:"haxe.io.Error",e:u}),{_hx_name:"Custom",__params__:["e"]})};Y.__constructs__=[Y.Blocked,Y.Overflow,Y.OutsideBounds,Y.Custom];Y.__empty_constructs__=[Y.Blocked,Y.Overflow,Y.OutsideBounds];var ur=i.$global,te=i.global("$hxEnums")["haxe.io.Encoding"]={__ename__:"haxe.io.Encoding",UTF8:{_hx_name:"UTF8",_hx_index:0,__enum__:"haxe.io.Encoding"},RawNative:{_hx_name:"RawNative",_hx_index:1,__enum__:"haxe.io.Encoding"}};te.__constructs__=[te.UTF8,te.RawNative];te.__empty_constructs__=[te.UTF8,te.RawNative];var fr=i.$global,ce=i.global("$hxClasses")["haxe.io.Bytes"]=class Ae extends i.inherits(){[i.new](e){this.length=e.byteLength,this.b=new Uint8Array(e),this.b.bufferValue=e,e.hxBytes=this,e.bytes=this.b}getString(e,t,r){if(e<0||t<0||e+t>this.length)throw C.thrown(Y.OutsideBounds);r==null&&(r=te.UTF8);let n="",s=this.b,l=e,o=e+t;switch(r._hx_index){case 0:let m=e>0;for(;l<o;){let _=s[l++];if(_<128){if(_==0)break;n+=String.fromCodePoint(_)}else if(_<224){let g=(_&63)<<6|s[l++]&127;n+=String.fromCodePoint(g)}else if(_<240){let g=s[l++],f=(_&31)<<12|(g&127)<<6|s[l++]&127;n+=String.fromCodePoint(f)}else{let g=s[l++],f=s[l++],c=(_&15)<<18|(g&127)<<12|(f&127)<<6|s[l++]&127;n+=String.fromCodePoint(c)}}break;case 1:for(;l<o;){let _=s[l++]|s[l++]<<8;n+=String.fromCodePoint(_)}break}return n}static ofData(e){let t=e.hxBytes;return t!=null?t:new Ae(e)}static get __name__(){return"haxe.io.Bytes"}get __class__(){return Ae}};ce.prototype.length=null;ce.prototype.b=null;var br=i.$global,Z=i.global("$hxClasses")["haxe.http.HttpBase"]=class Qe extends i.inherits(){[i.new](e){this.url=e,this.headers=[],this.params=[],this.emptyOnData=i.bind(this,this.onData)}get responseData(){return this.get_responseData()}setHeader(e,t){let r=0,n=this.headers.length;for(;r<n;){let s=r++;if(this.headers[s].name==e){this.headers[s]={name:e,value:t};return}}this.headers.push({name:e,value:t})}setPostData(e){this.postData=e,this.postBytes=null}onData(e){}onBytes(e){}onError(e){}onStatus(e){}hasOnData(){return i.bind(this,this.onData)!=this.emptyOnData}success(e){this.responseBytes=e,this.responseAsString=null,this.hasOnData()&&this.onData(this.get_responseData()),this.onBytes(this.responseBytes)}get_responseData(){return this.responseAsString==null&&this.responseBytes!=null&&(this.responseAsString=this.responseBytes.getString(0,this.responseBytes.length,te.UTF8)),this.responseAsString}static get __name__(){return"haxe.http.HttpBase"}get __class__(){return Qe}};Z.prototype.url=null;Z.prototype.responseBytes=null;Z.prototype.responseAsString=null;Z.prototype.postData=null;Z.prototype.postBytes=null;Z.prototype.headers=null;Z.prototype.params=null;Z.prototype.emptyOnData=null;var xr=i.$global,De=i.global("$hxClasses")["haxe.iterators.MapKeyValueIterator"]=class We extends i.inherits(){[i.new](e){this.map=e,this.keys=e.keys()}hasNext(){return this.keys.hasNext()}next(){let e=this.keys.next();return{value:this.map.get(e),key:e}}static get __name__(){return"haxe.iterators.MapKeyValueIterator"}get __class__(){return We}};De.prototype.map=null;De.prototype.keys=null;var Er=i.$global,Te=function(){};Te.__isInterface__=!0;var Cr=i.$global,ke=i.global("$hxClasses")["genes.util.EsMap"]=class be extends i.inherits(){[i.new](){this.inst=new Map}set(e,t){this.inst.set(e,t)}get(e){return this.inst.get(e)}remove(e){return this.inst.delete(e)}exists(e){return this.inst.has(e)}keys(){return be.adaptIterator(this.inst.keys())}iterator(){return be.adaptIterator(this.inst.values())}toString(){let e=[],t=be.adaptIterator(this.inst.keys());for(;t.hasNext();){let r=t.next();e.push(""+D.string(r)+" => "+D.string(this.inst.get(r)))}return"{"+e.join(", ")+"}"}clear(){this.inst.clear()}static adaptIterator(e){let t,r,n=function(){let s=e.next();t=s.value,r=s.done};return{hasNext:function(){return r==null&&n(),!r},next:function(){r==null&&n();let s=t;return n(),s}}}static get __name__(){return"genes.util.EsMap"}get __class__(){return be}};ke.prototype.inst=null;var Fr=i.$global,Ke=i.global("$hxClasses")["haxe.ds.StringMap"]=class Fe extends i.inherits(ke){[i.new](){super[i.new]()}copy(){let e=new Fe;return e.inst=new Map(this.inst),e}keyValueIterator(){return new De(this)}static get __name__(){return"haxe.ds.StringMap"}static get __interfaces__(){return[Te]}static get __super__(){return ke}get __class__(){return Fe}};var Vr=i.$global,V=i.global("$hxClasses").HxOverrides=class Ye{static cca(e,t){let r=e.charCodeAt(t);if(r==r)return r}static substr(e,t,r){if(r==null)r=e.length;else if(r<0)if(t==0)r=e.length+r;else return"";return e.substr(t,r)}static now(){return Date.now()}static get __name__(){return"HxOverrides"}get __class__(){return Ye}};typeof performance!="undefined"&&typeof performance.now=="function"&&(V.now=performance.now.bind(performance));var jr=i.$global,le=i.global("$hxClasses").StringTools=class Se{static isSpace(e,t){let r=V.cca(e,t);return r>8&&r<14?!0:r==32}static ltrim(e){let t=e.length,r=0;for(;r<t&&Se.isSpace(e,r);)++r;return r>0?V.substr(e,r,t-r):e}static rtrim(e){let t=e.length,r=0;for(;r<t&&Se.isSpace(e,t-r-1);)++r;return r>0?V.substr(e,0,t-r):e}static replace(e,t,r){return e.split(t).join(r)}static get __name__(){return"StringTools"}get __class__(){return Se}};var Gr=i.$global,Ze=i.global("$hxClasses").Lambda=class et{static exists(e,t){let r=i.getIterator(e);for(;r.hasNext();){let n=r.next();if(t(n))return!0}return!1}static get __name__(){return"Lambda"}get __class__(){return et}};var Kr=i.$global,we=i.global("$hxClasses").EReg=class tt extends i.inherits(){[i.new](e,t){this.r=new RegExp(e,t.split("u").join(""))}match(e){return this.r.global&&(this.r.lastIndex=0),this.r.m=this.r.exec(e),this.r.s=e,this.r.m!=null}matched(e){if(this.r.m!=null&&e>=0&&e<this.r.m.length)return this.r.m[e];throw C.thrown("EReg::matched")}matchedPos(){if(this.r.m==null)throw C.thrown("No string matched");return{pos:this.r.m.index,len:this.r.m[0].length}}matchSub(e,t,r){if(r==null&&(r=-1),this.r.global){this.r.lastIndex=t,this.r.m=this.r.exec(r<0?e:V.substr(e,0,t+r));let n=this.r.m!=null;return n&&(this.r.s=e),n}else{let n=this.match(r<0?V.substr(e,t,null):V.substr(e,t,r));return n&&(this.r.s=e,this.r.m.index+=t),n}}map(e,t){let r=0,n="";do{if(r>=e.length)break;if(!this.matchSub(e,r)){n+=D.string(V.substr(e,r,null));break}let s=this.matchedPos();n+=D.string(V.substr(e,r,s.pos-r)),n+=D.string(t(this)),s.len==0?(n+=D.string(V.substr(e,s.pos,1)),r=s.pos+1):r=s.pos+s.len}while(this.r.global);return!this.r.global&&r>0&&r<e.length&&(n+=D.string(V.substr(e,r,null))),n}static get __name__(){return"EReg"}get __class__(){return tt}};we.prototype.r=null;var cn=i.$global,oe=i.global("$hxClasses")["haxe.http.HttpJs"]=class rt extends i.inherits(Z){[i.new](e){this.async=!0,this.withCredentials=!1,super[i.new](e)}request(e){this.responseAsString=null,this.responseBytes=null,this.responseHeaders=null;let t=this.req=$e.createXMLHttpRequest(),r=this,n=function(g){if(t.readyState!=4)return;let f;try{f=t.status}catch{f=null}if(f==0&&$e.get_supported()&&i.$global.location!=null){let c=i.$global.location.protocol.toLowerCase();new we("^(?:about|app|app-storage|.+-extension|file|res|widget):$","").match(c)&&(f=t.response!=null?200:404)}if(f==null&&(f=null),f!=null&&r.onStatus(f),f!=null&&f>=200&&f<400){r.req=null;let c=t.getAllResponseHeaders().split(`\r
5
- `),y=[],b=0,d=c;for(;b<d.length;){let x=d[b];++b,x!=""&&y.push(x)}c=y;let I=new Ke;r.responseHeaders=I;let h=0;for(;h<c.length;){let x=c[h];++h;let S=x.split(": "),$=S.shift(),U=S.length==1?S[0]:S.join(": ");U=le.ltrim(le.rtrim(U)),r.responseHeaders.inst.set($,U)}r.success(ce.ofData(t.response))}else if(f==null||f==0&&t.response==null)r.req=null,r.onError("Failed to connect or resolve host");else if(f==null){r.req=null;let c=t.response!=null?ce.ofData(t.response):null;r.responseBytes=c,r.onError("Http Error #"+t.status)}else switch(f){case 12007:r.req=null,r.onError("Unknown host");break;case 12029:r.req=null,r.onError("Failed to connect to host");break;default:r.req=null;let c=t.response!=null?ce.ofData(t.response):null;r.responseBytes=c,r.onError("Http Error #"+t.status)}};this.async&&(t.onreadystatechange=n);let s,l=this.postData,o=this.postBytes;if(l==null)if(o==null)s=null;else{let g=o;s=new Blob([g.b.bufferValue])}else o==null?s=l:s=null;if(s!=null)e=!0;else{let g=0,f=this.params;for(;g<f.length;){let c=f[g];++g,s==null?s="":s=(s==null?"null":D.string(s))+"&";let y=c.name,b=(s==null?"null":D.string(s))+encodeURIComponent(y)+"=",d=c.value;s=b+encodeURIComponent(d)}}try{if(e)t.open("POST",this.url,this.async);else if(s!=null){let g=this.url.split("?").length<=1;t.open("GET",this.url+(g?"?":"&")+(s==null?"null":D.string(s)),this.async),s=null}else t.open("GET",this.url,this.async);t.responseType="arraybuffer"}catch(g){let f=C.caught(g).unwrap();this.req=null,this.onError(f.toString());return}t.withCredentials=this.withCredentials,!Ze.exists(this.headers,function(g){return g.name=="Content-Type"})&&e&&this.postData==null&&t.setRequestHeader("Content-Type","application/x-www-form-urlencoded");let m=0,_=this.headers;for(;m<_.length;){let g=_[m];++m,t.setRequestHeader(g.name,g.value)}t.send(s),this.async||n(null)}static get __name__(){return"haxe.http.HttpJs"}static get __super__(){return Z}get __class__(){return rt}};oe.prototype.async=null;oe.prototype.withCredentials=null;oe.prototype.responseHeaders=null;oe.prototype.req=null;var gn=i.$global,Oe=i.global("$hxClasses").Type=class nt{static createInstance(e,t){let r=Function.prototype.bind.apply(e,[null].concat(t));return new r}static get __name__(){return"Type"}get __class__(){return nt}};var dn=i.$global,R=i.global("$hxClasses").Reflect=class st{static field(e,t){try{return e[t]}catch{return null}}static getProperty(e,t){let r;if(e==null)return null;{let n;return e.__properties__?(r=e.__properties__["get_"+t],n=r):n=!1,n?e[r]():e[t]}}static setProperty(e,t,r){let n,s;e.__properties__?(n=e.__properties__["set_"+t],s=n):s=!1,s?e[n](r):e[t]=r}static fields(e){let t=[];if(e!=null){let n=Object.prototype.hasOwnProperty;for(var r in e)r!="__id__"&&r!="hx__closures__"&&n.call(e,r)&&t.push(r)}return t}static compare(e,t){return e==t?0:e>t?1:-1}static get __name__(){return"Reflect"}get __class__(){return st}};var In=i.$global,Be=i.global("$hxClasses")["internal.http.FetchHttp"]=class it extends i.inherits(oe){[i.new](e){this.responseStatus=0,super[i.new](e)}request(e){let t=i.$global,r=t.fetch,n=t.Headers,s=t.URLSearchParams;if(r==null){this.onError("Fetch API not found.");return}let l=Oe.createInstance(n,[]),o=0,m=this.headers;for(;o<m.length;){let d=m[o];++o,l.append(d.name,d.value)}let _=e?"POST":"GET",g=null;if(e)if(this.postData!=null)g=this.postData;else{g=Oe.createInstance(s,[]);let d=0,I=this.params;for(;d<I.length;){let h=I[d];++d,g.append(h.name,h.value)}}let f={method:_,headers:l,body:g},c=this,y=r(this.url,f).then(function(d){if(c.responseStatus=d.status,c.onStatus(d.status),d.ok)return d.text();throw C.thrown("HTTP Error: "+D.string(d.status))}).then(function(d){c.onData(d)}),b=R.field(y,"catch");b!=null&&b.apply(y,[function(d){c.onError(D.string(d))}])}static get __name__(){return"internal.http.FetchHttp"}static get __super__(){return oe}get __class__(){return it}};Be.prototype.responseStatus=null;var Sn=i.$global,Ve=i.global("$hxClasses")["internal.data.UUID"]=class lt{static randomHexChar(){return"0123456789abcdef".charAt(D.random(16))}static v4(){let e="",t=0;for(;t<36;)switch(t++){case 14:e+="4";break;case 19:e+=D.string("0123456789abcdef".charAt(8+D.random(4)));break;case 8:case 13:case 18:case 23:e+="-";break;default:e+=D.string("0123456789abcdef".charAt(D.random(16)))}return e}static get __name__(){return"internal.data.UUID"}get __class__(){return lt}};Ve.HEX="0123456789abcdef";var Pn=i.$global,me=function(){};me.__isInterface__=!0;var _e=function(){};_e.__isInterface__=!0;var ge=function(){};ge.__isInterface__=!0;var Ln=i.$global,a=i.global("$hxClasses")["internal.RecoBackendV2"]=class w extends i.inherits(){[i.new](){}static _requestUri(){return(w._safe_request?"https://":"http://")+w._req_domain+"/api/"+w._environment+"/recommendations/requests"}static noConsentBody(){return{device_id:"no-consent",user_group:"no-consent",version:"no-consent"}}static buildRequestBody(e){let t={lists:e,page_type:w._page_visit!=null?w._page_visit:w._page_view,channel:"www-desktop"};if(w._history.length>0&&(t.histories=w._buildHistories()),w._consent<2){let s=w.noConsentBody(),l=0,o=R.fields(s);for(;l<o.length;){let m=o[l];++l,t[m]=R.field(s,m)}}else w._user_id!=null&&(t.user_id=w._user_id),t.device_id=w._device_id;let r=0,n=w._others;for(;r<n.length;){let s=n[r];++r,t[s.key]=s.value}return t}static _buildHistories(){let e=[],t=0,r=w._history;for(;t<r.length;){let n=r[t];++t,e.push({id:n,item_type:"article"})}return{pageviews:e}}static requestsToLists(e){let t=[],r="",n=[],s=0,l=[],o=function(c,y,b){r=c,n=y,s=0,l=b},m=function(c){let y=[];if(c==null)return y;let b=0;for(;b<c.length;){let d=c[b];++b,!(d==null||d.key==null||d.key=="")&&y.push({key:d.key,value:d.value})}return y},_=function(c,y){if(c==null&&y==null)return!0;if(c==null||y==null||c.length!=y.length)return!1;let b=new Array(c.length),d=0,I=c.length;for(;d<I;){let j=d++;b[j]=JSON.stringify(c[j])}let h=b,x=new Array(y.length),S=0,$=y.length;for(;S<$;){let j=S++;x[j]=JSON.stringify(y[j])}let U=x;h.sort(R.compare),U.sort(R.compare);let H=0,L=h.length;for(;H<L;){let j=H++;if(h[j]!=U[j])return!1}return!0},g=function(){let c={limit:s,list_name:r,list_size:s},y=0;for(;y<n.length;){let d=n[y];++y;let I=d.value;I instanceof Array||(I=[I]),c[d.key]=I}let b=0;for(;b<l.length;){let d=l[b];++b,c[d.key]=d.value}t.push(c)},f=0;for(;f<e.length;){let c=e[f];++f;let y=m(c.filters),b=c.others!=null?c.others:[];if(r==""){o(c.list,y,b),s+=1;continue}else(r!=c.list||!_(n,y)||!_(l,b))&&(g(),o(c.list,y,b));s+=1}return s!=0&&g(),t}static _requestRecos(e){let t=null,r=new Promise(function(c,y){t=c}),n=r;n._resolve=t,n._isFinished=!1,n._result=null;let s=r,l=null,o=new Be(w._requestUri());o.setHeader("Content-Type","application/json");let m=w.buildRequestBody(e),_=JSON.stringify(m);o.setPostData(_),o.onError=function(c){throw C.thrown("HTTP Request Error: "+c)};try{o.request(!0)}catch(c){let y=C.caught(c).unwrap();throw C.thrown("Failed to execute synchronous request: "+D.string(y)+_)}let g=function(c){let y=JSON.parse(c),b=pe.fromRequestData(y),d=s;d._isFinished||(d._result=b,d._isFinished=!0,d._resolve(b))},f=o.get_responseData();return f!=null?g(f):o.onData=g,s}static getOrder(e,t,r){let n={list_name:e,limit:r.length,list_size:r.length},s={};R.setProperty(s,t,r),R.setProperty(n,"order",s);let l=null,o=new Promise(function(f,c){l=f}),m=o;m._resolve=l,m._isFinished=!1,m._result=null;let _=o,g;return w.getRawRecommendations([n]).then(function(f){let c=[],y=f.lists()[0].items;if(y instanceof Array){let d=0,I=y;for(;d<I.length;){let h=I[d];++d;let x=h.get("categories");x!=null&&c.push(x)}}let b=_;b._isFinished||(b._result=c,b._isFinished=!0,b._resolve(c))}),_}static getRawRecommendations(e){return w._requestRecos(e)}static addHistories(e){w._history=w._history.concat(e)}static setOthers(e,t){let r=0,n=w._others;for(;r<n.length;){let s=n[r];if(++r,s.key==e){s.value=t;return}}w._others.push({key:e,value:t})}static setConsent(e){e>2&&(e=2),w._consent=e,e==2&&w.getDeviceId()=="no-consent"&&w.setDeviceId(Ve.v4())}static setChannel(e){w._channel=e}static setPageVisit(e){w._page_visit=e}static setEnvironment(e){w._environment=e}static setDeviceId(e){w._device_id=e}static setUserId(e){w._user_id=e}static setRequestDomain(e){w._req_domain=e}static setPageView(e){w._page_view=e}static setSafeRequest(e){w._safe_request=e}static setContextItem(e){w.setOthers("context_item",e)}static setContextItemType(e){w.setOthers("context_item_type",e)}static getRequestDomain(){return w._req_domain}static getEnvironment(){return w._environment}static getPageVisit(){return w._page_visit}static getUserId(){return w._user_id}static getDeviceId(){return w._device_id}static getPageView(){return w._page_view}static getConsent(){return w._consent}static getChannel(){return w._channel}static getOthers(e){let t=0,r=w._others;for(;t<r.length;){let n=r[t];if(++t,e==n.key)return n.value}return null}static getContextItem(){return w.getOthers("context_item")}static getContextItemType(){return w.getOthers("context_item_type")}static get __name__(){return"internal.RecoBackendV2"}get __class__(){return w}};a._environment=null;a._device_id="no-consent";a._user_id=null;a._consent=2;a._req_domain="europe-west1.froomle.com";a._page_visit=null;a._page_view=null;a._channel="www-desktop";a._safe_request=!0;a._history=[];a._others=[];var pe=i.global("$hxClasses")["internal._RecommendationsInternal"]=class Ue extends i.inherits(){[i.new](e,t,r,n,s){this.request_id=t,this.user_group=r,this.device_id=e,this.user_id=n,this._lists=s}items(){let e=[],t=0,r=this._lists;for(;t<r.length;){let n=r[t];++t;let s=0,l=n.items;for(;s<l.length;){let o=l[s];++s,e.push(o)}}return e}lists(){return this._lists}getItemsByListName(e){let t=0,r=this._lists;for(;t<r.length;){let n=r[t];if(++t,n.list_name==e)return n}return null}toJson(){let e={request_id:this.request_id,user_group:this.user_group,user_id:this.user_id,device_id:this.device_id,lists:[]},t=0,r=this._lists;for(;t<r.length;){let n=r[t];++t;let s={limit:n.limit,list_key:n.list_key,list_name:n.list_name,list_size:n.list_size,items:[]},l=0,o=n.items;for(;l<o.length;){let m=o[l];++l,s.items.push(ye.__cast(m,re).getData())}e.lists.push(s)}return JSON.stringify(e)}static fromRequestData(e){let t=R.getProperty(e,"lists"),r=[],n=0;for(;n<t.length;){let s=t[n];++n;let l=R.getProperty(s,"items"),o=[],m=0;for(;m<l.length;){let g=l[m];++m,R.setProperty(g,"request_id",R.getProperty(e,"request_id")),R.setProperty(g,"user_group",R.getProperty(e,"user_group")),o.push(new re(g))}let _=new ae({limit:R.getProperty(s,"limit"),list_key:R.getProperty(s,"list_key"),list_name:R.getProperty(s,"list_name"),list_size:R.getProperty(s,"list_size"),items:o,request_id:R.getProperty(e,"request_id")});r.push(_)}return new Ue(R.getProperty(e,"device_id"),R.getProperty(e,"request_id"),R.getProperty(e,"user_group"),R.getProperty(e,"user_id"),r)}static get __name__(){return"internal._RecommendationsInternal"}static get __interfaces__(){return[me]}get __class__(){return Ue}};pe.prototype.request_id=null;pe.prototype.user_group=null;pe.prototype.user_id=null;pe.prototype.device_id=null;pe.prototype._lists=null;var ae=i.global("$hxClasses")["internal._RecommendationsListInternal"]=class ot extends i.inherits(){[i.new](e){this.items=e.items,this.limit=e.limit,this.list_key=e.list_key,this.list_name=e.list_name,this.list_size=e.list_size,this.request_id=e.request_id}static get __name__(){return"internal._RecommendationsListInternal"}static get __interfaces__(){return[_e]}get __class__(){return ot}};ae.prototype.limit=null;ae.prototype.list_key=null;ae.prototype.list_name=null;ae.prototype.list_size=null;ae.prototype.items=null;ae.prototype.request_id=null;var re=i.global("$hxClasses")["internal._RecommendationItemInternal"]=class at extends i.inherits(){[i.new](e){this.Id=R.getProperty(e,"item_id"),this.RequestId=R.getProperty(e,"request_id"),this.UserGroup=R.getProperty(e,"user_group"),this._data=e}getData(){return this._data}get(e){return this._data[e]}toJson(){return JSON.stringify(this._data)}static get __name__(){return"internal._RecommendationItemInternal"}static get __interfaces__(){return[ge]}get __class__(){return at}};re.prototype.Id=null;re.prototype.RequestId=null;re.prototype.UserGroup=null;re.prototype._data=null;var Mn=i.$global,He=function(){};He.__isInterface__=!0;var Xn=i.$global,ve=i.global("$hxClasses")["internal.js.JSFroomleDomTree"]=class Ce extends i.inherits(){[i.new](){}getRoot(){return this.root}createElement(e){return this.root.ownerDocument.createElement(e)}toString(){return this.root.ownerDocument.documentElement.outerHTML}static fromHTML(e){let r=new DOMParser().parseFromString(e,"text/html"),n=new Ce;return n.root=r.documentElement,n}static fromDocument(e){let t=new Ce;return t.root=e.documentElement,t}static get __name__(){return"internal.js.JSFroomleDomTree"}static get __interfaces__(){return[He]}get __class__(){return Ce}};ve.prototype.root=null;var ss=i.$global,ue=i.global("$hxClasses")["internal.domHandler.DomDomDom"]=class ne extends i.inherits(){[i.new](){}static _fillRecoTargets(e){let t=null,r=new Promise(function(p,v){t=p}),n=r;n._resolve=t,n._isFinished=!1,n._result=null;let s=r;if(e==null){let p=s;return p._isFinished||(p._result=!1,p._isFinished=!0,p._resolve(!1)),s}let l=[],o=new Array,m=e.querySelectorAll("*"),_=0,g=m.length;for(;_<g;){let p=_++,v=m.item(p);v instanceof HTMLElement&&o.push(v)}let f=o,c=0;for(;c<f.length;){let p=f[c];++c;let v=0,E=new Array,k=0,q=p.attributes;for(;k<q.length;){let T=q[k];++k,E.push({name:T.name,value:T.value})}let B=E;for(;v<B.length;){let T=B[v];++v,T.name=="data-froomle-reco"&&l.push(p)}}let y=[],b=0;for(;b<l.length;){let p=l[b];++b,p.getAttribute("data-froomle-request-id")==null&&(p.getAttribute("data-froomle-id")==null||p.getAttribute("data-froomle-id")=="")&&y.push(p)}if(y.length<1){let p=null,v=new Promise(function(k,q){p=k}),E=v;return E._resolve=p,E._isFinished=!1,E._result=null,v}let d=[],I=[],h="",x=[],S=[],$=[],U=function(p,v){if(p.length!=v.length)return!1;let E=new Array(p.length),k=0,q=p.length;for(;k<q;){let P=k++;E[P]=JSON.stringify(p[P])}let B=E,T=new Array(v.length),G=0,W=v.length;for(;G<W;){let P=G++;T[P]=JSON.stringify(v[P])}let X=T;B.sort(R.compare),X.sort(R.compare);let J=0,N=B.length;for(;J<N;){let P=J++;if(B[P]!=X[P])return!1}return!0},H=function(){let p={list_name:h,list_size:S.length,limit:S.length},v=0;for(;v<x.length;){let k=x[v];if(++v,k!=null&&k.key!=null&&k.key!=""){let q=k.value;q instanceof Array||(q=[q]),R.setProperty(p,k.key,q)}}let E=0;for(;E<$.length;){let k=$[E];++E,R.setProperty(p,k.key,k.value)}d.push(p),I.push(S)},L=function(p,v,E,k){h=p,x=v,S=[k],$=E},j=0;for(;j<y.length;){let p=y[j];++j;let v=function(T){let G=[],W=0,X=new Array,J=0,N=T.attributes;for(;J<N.length;){let F=N[J];++J,X.push({name:F.name,value:F.value})}let P=X;for(;W<P.length;){let F=P[W];if(++W,F.name.startsWith("data-froomle-reco-filter-")){let K=V.substr(F.name,25,null),se=F.value;G.push({key:K,value:se})}}return G},E=function(T){let G=[],W=0,X=new Array,J=0,N=T.attributes;for(;J<N.length;){let F=N[J];++J,X.push({name:F.name,value:F.value})}let P=X;for(;W<P.length;){let F=P[W];if(++W,F.name.startsWith("data-froomle-variable-")){let K=V.substr(F.name,22,null),se=F.value;G.push({key:K,value:se})}}return G},k=p.getAttribute("data-froomle-reco"),q=v(p),B=E(p);if(h==""){L(k,q,B,p);continue}else if(k==h&&U(x,q)&&U($,B)){S.push(p);continue}else{H(),L(k,q,B,p);continue}}h!=""&&H();let A;if(a.getPageVisit()==null){let p=s;return p._isFinished||(p._result=!1,p._isFinished=!0,p._resolve(!1)),s}else if(a.getEnvironment()==null){let p=s;return p._isFinished||(p._result=!1,p._isFinished=!0,p._resolve(!1)),s}else try{A=a.getRawRecommendations(d)}catch{let v=s;return v._isFinished||(v._result=!1,v._isFinished=!0,v._resolve(!1)),s}return A.then(function(p){let v=p.lists(),E=v.length,k=0,q=E;for(;k<q;){let T=k++,G=v[T],W=G.items.length!=I[T].length,X=G.items.length,J=0,N=X;for(;J<N;){let P=J++,F=G.items[P],K=I[T][P];ne._fillParameters(K,F,p.request_id)}}let B=s;B._isFinished||(B._result=!0,B._isFinished=!0,B._resolve(!0))}),s}static getAttrByPath(e,t,r){r==null&&(r="fgh");try{t=new we("\\\\[(\\\\w+)\\\\]","g").map(t,function(_){return"."+_.matched(1)}),t=le.replace(t,"[","."),t=le.replace(t,"]",""),V.cca(t,0)==46&&(t=V.substr(t,1,null));let s=t.split("."),l=e.get(s[0]),o=1,m=s.length;for(;o<m;){let _=o++;if(l==null)return null;l instanceof Array&&D.parseInt(s[_])!=null?l=l[D.parseInt(s[_])]:l=R.field(l,s[_])}return l}catch{return r}}static _buildHistories(e){let t=[],r=new Array,n=e.querySelectorAll("[data-froomle-id]"),s=0,l=n.length;for(;s<l;){let _=s++,g=n.item(_);g instanceof HTMLElement&&r.push(g)}let o=r,m=0;for(;m<o.length;){let _=o[m];++m,t.push(_.getAttribute("data-froomle-id"))}a.addHistories(t)}static fillParam(e,t,r,n,s){s==null&&(s="");try{let l=ne.getAttrByPath(n,r,s);if(t=="inner"){e.textContent=l;let o=e.textContent}else e.setAttribute(t,l)}catch{}}static _fillParameters(e,t,r){e.setAttribute("data-froomle-id",t.get("item_id")),e.setAttribute("data-froomle-request-id",r),t.UserGroup!=null&&t.UserGroup!=""&&e.setAttribute("data-froomle-user-group",t.UserGroup);let n=new Array,s=e.querySelectorAll("*"),l=0,o=s.length;for(;l<o;){let g=l++,f=s.item(g);f instanceof HTMLElement&&n.push(f)}let m=n,_=0;for(;_<m.length;){let g=m[_];++_;let f=0,c=new Array,y=0,b=g.attributes;for(;y<b.length;){let I=b[y];++y,c.push({name:I.name,value:I.value})}let d=c;for(;f<d.length;){let I=d[f];if(++f,I.name.startsWith("data-froomle-param-")){let h=le.replace(I.name,"data-froomle-param-",""),x=I.value;ne.fillParam(g,h,x,t)}}}}static _orderElements(e){let t=function(h,x,S){let $=[],U=new Array,H=0,L=h.childNodes;for(;H<L.length;){let E=L[H];++H,U.push(E)}let j=U,A=0;for(;A<j.length;){let E=j[A];++A;try{if(E.getAttribute("data-froomle-ordervalue")!=null){$.push(E);let q=e.createElement("span");q.setAttribute("data-froomle-tmp-node","tmp"),h.replaceChild(q,E)}}catch{}}let p=[],v=0;for(;v<$.length;){let E=$[v];++v,p.push(E.getAttribute("data-froomle-ordervalue"))}return{el:h,key:x,values:p,orderChildren:$,list_name:S}},r=null,n=new Promise(function(h,x){r=h}),s=n;s._resolve=r,s._isFinished=!1,s._result=null;let l=n,o=e.getRoot(),m=new Array,_=o.querySelectorAll("*"),g=0,f=_.length;for(;g<f;){let h=g++,x=_.item(h);x instanceof HTMLElement&&m.push(x)}let c=m,y=[],b=0;for(;b<c.length;){let h=c[b];++b;let x=0,S=new Array,$=0,U=h.attributes;for(;$<U.length;){let L=U[$];++$,S.push({name:L.name,value:L.value})}let H=S;for(;x<H.length;){let L=H[x];++x,L.name.startsWith("data-froomle-order-")&&y.push(t(h,L.name.substring(19),L.value))}}if(y.length<1){let h=l;return h._isFinished||(h._result=!1,h._isFinished=!0,h._resolve(!1)),l}let d=[],I=0;for(;I<y.length;){let h=y[I];++I;let x={list_name:h.list_name,limit:h.values.length,list_size:h.values.length},S={};R.setProperty(S,h.key,h.values),R.setProperty(x,"order",S),d.push(x)}if(a.getPageVisit()==null){let h=l;return h._isFinished||(h._result=!1,h._isFinished=!0,h._resolve(!1)),l}else if(a.getEnvironment()==null){let h=l;return h._isFinished||(h._result=!1,h._isFinished=!0,h._resolve(!1)),l}try{a.getRawRecommendations(d).then(function(h){let x=h.lists(),S=x.length,$=0,U=S;for(;$<U;){let L=$++,j=x[L],A=y[L];A.el.setAttribute("data-froomle-request-id",h.request_id);let p=new Array,v=0,E=j.items;for(;v<E.length;){let N=E[v];++v;let P=N.get(A.key),F=N.get(A.key),K=A.values.length,se=0,fe=K;for(;se<fe;){let ie=se++,de=A.values[ie];if(P==de){let Ot=A.orderChildren.length,ht=A.orderChildren[ie];p.push(ht),A.orderChildren.splice(ie,1),A.values.splice(ie,1);break}}}let k=p.length,q=A.el,B=new Array,T=0,G=q.childNodes;for(;T<G.length;){let N=G[T];++T,B.push(N)}let W=B.length,X=0,J=W;for(;X<J;){let N=X++,P=A.el,F=new Array,K=0,se=P.childNodes;for(;K<se.length;){let de=se[K];++K,F.push(de)}let fe=F[N],ie;if(fe instanceof HTMLElement?ie=fe.hasAttribute("data-froomle-tmp-node"):ie=!1,ie){A.el.replaceChild(p[0],fe),p.splice(0,1);let de=p.length;if(p.length==0)break}}}let H=l;H._isFinished||(H._result=!0,H._isFinished=!0,H._resolve(!0))})}catch{let x=l;x._isFinished||(x._result=!1,x._isFinished=!0,x._resolve(!1))}return l}static domInit(e){let t=null,r=new Promise(function(l,o){t=l}),n=r;n._resolve=t,n._isFinished=!1,n._result=null;let s=r;return ne._orderElements(e).then(function(l){ne._buildHistories(e.getRoot()),ne._fillRecoTargets(e.getRoot()).then(function(o){let m=s;m._isFinished||(m._result=!0,m._isFinished=!0,m._resolve(!0))})}),s}static fillElementRecos(e){ne._fillRecoTargets(e)}static runFromHtml(e){if(e=="")return"";let t;try{let n=new DOMParser().parseFromString(e,"text/html"),s=new ve;s.root=n.documentElement,t=s}catch{return e}return ne.domInit(t),t.toString()}static get __name__(){return"internal.domHandler.DomDomDom"}get __class__(){return ne}};var us=i.$global,O=i.global("$hxClasses").FroomleSdk=class Q{static register(){Q.registered||Q._env_set&&(!Q._page_visit_set&&!Q._page_view_set||(Q.registered=!0))}static buildScriptTag(){let e='<script src="https://cdn.jsdelivr.net/npm/@froomle/frontend-sdk@0.0.11/dist/froomle.global.js" data-froomle-env="'+a.getEnvironment()+'" ',t=a.getPageVisit();t!=null&&(e+='data-froomle-page-visit="'+t+'" ');let r=a.getPageView();r!=null&&(e+='data-froomle-page-view="'+r+'" ');let n=a.getDeviceId();n!=null&&(e+='data-froomle-device-id="'+n+'" ');let s=a.getUserId();s!=null&&(e+='data-froomle-user-id="'+s+'" ');let l=a.getConsent();l>0&&(e+='data-froomle-consent="'+l+'" ');let o=a.getRequestDomain();return o!=null&&(e+='data-froomle-request-domain="'+o+'" '),e+="></script>",e}static setEnvironment(e){a.setEnvironment(e),Q._env_set=!0,Q.register()}static setDeviceId(e){a.setDeviceId(e)}static setUserId(e){a.setUserId(e)}static setConsent(e){a.setConsent(e)}static setPageView(e){a.setPageView(e),Q._page_view_set=!0,Q.register()}static setPageVisit(e){a.setPageVisit(e),Q._page_visit_set=!0,Q.register()}static setRequestDomain(e){a.setRequestDomain(e)}static setSafeRequest(e){a.setSafeRequest(e)}static setContextItem(e){a.setContextItem(e)}static setContextItemType(e){a.setContextItemType(e)}static setCustomVariable(e,t){a.setOthers(e,t)}static getUserId(){return a.getUserId()}static getDeviceId(){return a.getDeviceId()}static getEnvironment(){return a.getEnvironment()}static getPageView(){return a.getPageView()}static getPageVisit(){return a.getPageVisit()}static getConsent(){return a.getConsent()}static getRecommendations(e){return a.getRawRecommendations(e)}static getChannel(){return a.getChannel()}static getVersion(){return"0.0.11"}static runFromHtml(e){return ue.runFromHtml(e)}static get __name__(){return"FroomleSdk"}get __class__(){return Q}};O._env_set=!1;O._page_visit_set=!1;O._page_view_set=!1;O.registered=!1;var _s=i.$global;function ut(){return"https://"+a.getRequestDomain()+"/api/"+a.getEnvironment()+"/events"}function ct(u){var r;let e=u==null?void 0:u.getAttribute("data-froomle-user-group");return e||(typeof document=="undefined"?void 0:((r=document.querySelector("[data-froomle-user-group]"))==null?void 0:r.getAttribute("data-froomle-user-group"))||void 0)}function mt(u,e,t="impression",r){let n={event_type:t,page_type:a.getPageVisit(),action_item:u,action_item_type:e,channel:"www-desktop",device_id:a.getDeviceId()},s=ct();if(s&&(n.user_group=s),r)for(let l in r)n[l]=r[l];try{fetch(ut(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({events:[n]})})}catch{}}var z=class z{static generateBody(){let e=[];for(let t of z.impressionQueue){let r=t.getAttribute("data-froomle-id");if(!r)continue;let n={event_type:"impression",page_type:a.getPageVisit(),action_item:r,action_item_type:"article",channel:"www-desktop",device_id:a.getDeviceId()},s=ct(t);s&&(n.user_group=s),a.getUserId()&&(n.user_id=a.getUserId());let l=t.getAttribute("data-froomle-reco"),o=t.getAttribute("data-froomle-request-id");l&&o&&(n.list_name=l,n.request_id=o),e.push(n)}return z.impressionQueue=[],JSON.stringify({events:e})}static sendImpressions(){console.log(z.impressionQueue),z.impressionQueue.length!==0&&a.getDeviceId()!="no-consent"&&fetch(ut(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:z.generateBody()})}static getViewPortRect(){let e=window.innerWidth||document.documentElement.clientWidth,t=window.innerHeight||document.documentElement.clientHeight;return{left:0,top:0,x:0,y:0,toJSON(){},right:e,bottom:t,width:e,height:t}}static intersectsWithViewPortRect(e){let t=e.getBoundingClientRect(),r=z.getViewPortRect();return t.right>r.left&&t.left<r.right&&t.bottom>r.top&&t.top<r.bottom}static addIntersectionImpressionListener(e){z.observer.observe(e)}static processDocument(){if(a.getDeviceId()!="no-consent"){console.log("\u{1F680} Processing document for impressions");for(let e of document.querySelectorAll("[data-froomle-id]"))z.intersectsWithViewPortRect(e)?z.impressionQueue.push(e):z.addIntersectionImpressionListener(e);z.sendImpressions()}}};z.impressionQueue=[],z.observer=null;var ee=z;typeof document!="undefined"&&(ee.observer=new IntersectionObserver((u,e)=>{u.forEach(t=>{t.isIntersecting&&(ee.impressionQueue.push(t.target),ee.observer.unobserve(t.target))}),ee.impressionQueue.length>0&&ee.sendImpressions()}));var xe=class u{static readUserGroup(){var t;return typeof document=="undefined"?void 0:((t=document.querySelector("[data-froomle-user-group]"))==null?void 0:t.getAttribute("data-froomle-user-group"))||void 0}static uri(){return"https://"+a.getRequestDomain()+"/api/"+a.getEnvironment()+"/events"}static generateBody(){let e={event_type:"page_visit",page_type:a.getPageVisit(),channel:"www-desktop",device_id:a.getDeviceId()},t=u.readUserGroup();return t&&(e.user_group=t),a.getUserId()&&(e.user_id=a.getUserId()),JSON.stringify({events:[e]})}static sendPageVisit(){a.getPageVisit()&&a.getDeviceId()!="no-consent"&&fetch(u.uri(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:u.generateBody()})}};var Re=class u{static readUserGroup(){var t;return typeof document=="undefined"?void 0:((t=document.querySelector("[data-froomle-user-group]"))==null?void 0:t.getAttribute("data-froomle-user-group"))||void 0}static uri(){return"https://"+a.getRequestDomain()+"/api/"+a.getEnvironment()+"/events"}static generateBody(){let e={event_type:"detail_pageview",page_type:"article_detail",action_item:a.getPageView(),action_item_type:"article",channel:"www-desktop",device_id:a.getDeviceId()},t=u.readUserGroup();return t&&(e.user_group=t),a.getUserId()&&(e.user_id=a.getUserId()),JSON.stringify({events:[e]})}static sendPageView(){a.getPageView()&&a.getDeviceId()!="no-consent"&&fetch(u.uri(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:u.generateBody()})}};var Ie=class u{static readUserGroup(e){var n;let t=e.getAttribute("data-froomle-user-group");return t||(typeof document=="undefined"?void 0:((n=document.querySelector("[data-froomle-user-group]"))==null?void 0:n.getAttribute("data-froomle-user-group"))||void 0)}static registerClickables(){document.querySelectorAll("[data-froomle-id]").forEach(t=>{t.querySelectorAll("a").forEach(r=>{r.addEventListener("click",n=>{if(a.getDeviceId()=="no-consent")return;let s=t.getAttribute("data-froomle-id");if(!s)return;let l={event_type:"click_on_recommendation",page_type:a.getPageVisit(),action_item:s,action_item_type:"article",channel:"www-desktop",device_id:a.getDeviceId()},o=u.readUserGroup(t);o&&(l.user_group=o);let m=t.getAttribute("data-froomle-reco"),_=t.getAttribute("data-froomle-request-id");m&&_&&(l.list_name=m,l.request_id=_),a.getUserId()&&(l.user_id=a.getUserId()),navigator.sendBeacon("https://"+a.getRequestDomain()+"/api/"+a.getEnvironment()+"/events",JSON.stringify({events:[l]}))})})})}};var It=ve,_t=O.setEnvironment,gt=O.setPageVisit,pt=O.setRequestDomain,ft=O.setSafeRequest,Et=O.setContextItem,Dt=O.setContextItemType,kt=O.setCustomVariable,St=a.addHistories,dt=O.setPageView;function je(u){O.setUserId(u),document.cookie=`froomle_user_id=${u}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Ne(u){O.setDeviceId(u),document.cookie=`froomle_device_id=${u}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Me(u){O.setConsent(u),document.cookie=`froomle_consent=${u}; max-age=${3600*24*365*20}; path=/; samesite=lax`,document.cookie=`froomle_device_id=${O.getDeviceId()}; max-age=${3600*24*365*20}; path=/; samesite=lax`}typeof window!="undefined"&&(window.setFroomleConsent=Me);function Le(u){let e=document.cookie.split("; ");for(let t of e){let[r,n]=t.split("=");if(r===u)return decodeURIComponent(n)}return null}var Ct=O.getRecommendations;if(!globalThis.froomleInitialized&&(globalThis.froomleInitialized=!0,typeof document!="undefined")){let u=document.currentScript;if(u){let t=u.getAttribute("data-froomle-device-id"),r=u.getAttribute("data-froomle-user-id"),n=u.getAttribute("data-froomle-env"),s=u.getAttribute("data-froomle-page-visit"),l=u.getAttribute("data-froomle-request-domain"),o=u.getAttribute("data-froomle-page-view"),m=u.getAttribute("data-froomle-safe-request");if(_t(n),o&&dt(o),s&&gt(s),t)Ne(t);else{let _=Le("froomle_device_id");_&&Ne(_)}if(r)je(r);else{let _=Le("froomle_user_id");_&&je(_)}l&&pt(l),m&&ft(m!=="false")}let e=Le("froomle_consent");e&&Me(e),document.addEventListener("DOMContentLoaded",()=>{console.log("froomle loads dom"),ue.domInit(It.fromDocument(document)).then(r=>{ee.processDocument(),xe.sendPageVisit(),Re.sendPageView(),Ie.registerClickables()});let t=new MutationObserver(r=>{for(let n of r)if(n.type==="childList"&&ee.processElement(n.target),n.type==="attributes")if(n.attributeName==="data-froomle-reco"){let s=n.target.getAttribute("data-froomle-request-id");(!s||s==="")&&ue.fillElementRecos(n.target)}else n.attributeName==="data-froomle-request-id"&&ue.fillElementRecos(n.target)})})}function qt(){let u,e;return{promise:new Promise((r,n)=>{u=r,e=n}),resolve:u,reject:e}}var qe=[];function Pt(){var u;return typeof document=="undefined"?"":((u=document.querySelector("[data-froomle-user-group]"))==null?void 0:u.getAttribute("data-froomle-user-group"))||""}function $t(u,e){var s;let t=u,n=((s=t==null?void 0:t.UserGroup)!=null?s:typeof(t==null?void 0:t.get)=="function"?t.get("user_group"):void 0)||e;if(n&&(t.UserGroup=n,typeof(t==null?void 0:t.getData)=="function")){let l=t.getData();l&&(!l.user_group||l.user_group==="")&&(l.user_group=n)}}async function At(){let u=qe.map(s=>s.req),e=a.requestsToLists(u),t=await a.getRawRecommendations(e),r=t.user_group||"";typeof document!="undefined"&&r&&document.documentElement.setAttribute("data-froomle-user-group",r);let n=t.lists().reduce((s,l)=>[...s,...l.items],[]);n.forEach(s=>$t(s,r)),qe.forEach((s,l)=>{n[l]?s.deferred.resolve(n[l]):s.deferred.reject(new Error("No recommendation available"))}),qe.length=0}function Tt(u){let e,t,n={promise:new Promise((s,l)=>{e=s,t=l}),resolve:e,reject:t};return qe.push({deferred:n,req:u}),n}function Ft(u){let t=Tt(u).promise,r=qt(),n=function(l,o){return t.then(m=>(s.completeTarget=m,l?l(m):m),m=>o?o(m):Promise.reject(m))},s=new Proxy(new re({item_id:"",request_id:"",user_group:""}),{get(l,o,m){if(o==="then")return n;if(o==="__froomleList")return u.list;if(o==="get"){let f=Reflect.get(l,o,m);return function(...c){return f.apply(this,c)}}if(typeof o!="string")return Reflect.get(l,o,m);let _=Reflect.get(l,o,m);if(_!=null&&_!=="")return _;let g=l.get(o);return g!=null&&g!==""?g:""},set(l,o,m,_){if(o==="completeTarget"){if(Object.assign(l,m),!l.UserGroup){let g=Pt();if(g){l.UserGroup=g;let f=l.getData();f&&!f.user_group&&(f.user_group=g)}}return!0}return Reflect.set(l,o,m,_)},has(l,o){return l.get(o)!==void 0}});return s}export{me as a,_e as b,ge as c,a as d,mt as e,ee as f,xe as g,Re as h,Ie as i,_t as j,gt as k,pt as l,ft as m,Et as n,Dt as o,kt as p,St as q,dt as r,je as s,Ne as t,Me as u,Ct as v,At as w,Ft as x};