@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.
- package/dist/chunk-ZB7K2NNI.js +5 -0
- package/dist/froomle.global.js +5 -5
- package/dist/index.d.ts +5 -8
- package/dist/index.js +1 -1
- package/dist/react.js +1 -1
- package/package.json +1 -1
- package/dist/chunk-MYV4LQUN.js +0 -5
|
@@ -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};
|
package/dist/froomle.global.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";var FroomleFrontendSdk=(()=>{var $e=Object.defineProperty;var
|
|
2
|
-
`;t+=" ";let l=e.hasOwnProperty!=null,
|
|
3
|
-
`),
|
|
4
|
-
`+t+"}",
|
|
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
|
|
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,
|
|
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-
|
|
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
|
|
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
package/dist/chunk-MYV4LQUN.js
DELETED
|
@@ -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&>(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};
|