@froomle/frontend-sdk 0.0.14 → 0.0.15
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-E3HRUS5K.js +5 -0
- package/dist/froomle.global.js +5 -5
- package/dist/index.d.ts +5 -2
- 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 a{static global(e){return a.globals[e]?a.globals[e]:a.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 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 Te(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 n=e();n[a.init]&&n[a.init](),Object.setPrototypeOf(r.prototype,n.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 Te=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}};Te.prototype.array=null;Te.prototype.current=null;var zt=i.$global,Ce=i.global("$hxClasses")["haxe.ValueException"]=class Ke extends i.inherits(()=>D,!0){[i.new](e,t,r){super[i.new](String(e),t,r),this.value=e}unwrap(){return this.value}static get __name__(){return"haxe.ValueException"}static get __super__(){return D}get __class__(){return Ke}};Ce.prototype.value=null;var Qt=i.$global,D=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}};D.prototype.native=null;D.prototype.__skipStack=null;D.prototype.__nativeException=null;D.prototype.__previousException=null;var tr=i.$global,I=i.global("$hxClasses").Std=class We{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 We}};Object.defineProperty(String.prototype,"__class__",{value:String,enumerable:!1,writable:!0}),String.__name__=!0,Array.__name__=!0,It={},Et={},Ct=Number,kt=Boolean,St={},Dt={};var It,Et,Ct,kt,St,Dt;var lr=i.$global,be=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 g=i.global("$hxEnums")[e.__enum__].__constructs__[e._hx_index],_=g._hx_name;return g.__params__?(t=t+" ",_+"("+(function(f){var c;let y=[];{let b=0,h=g.__params__;for(;b<h.length;){let S=h[b];b=b+1,y.push(M.__string_rec(e[S],t))}}return c=y,c})(this).join(",")+")"):_}if(e instanceof Array){let m="[";t+=" ";let g=0,_=e.length;for(;g<_;){let f=g++;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,u=null;for(u in e)l&&!e.hasOwnProperty(u)||u=="prototype"||u=="__class__"||u=="__super__"||u=="__interfaces__"||u=="__properties__"||(s.length!=2&&(s+=`,
|
|
3
|
+
`),s+=t+u+" : "+M.__string_rec(e[u],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++,u=r[l];if(u==t||M.__interfLoop(u,t))return!0}}return M.__interfLoop(e.__super__,t)}static __instanceof(e,t){if(t==null)return!1;switch(t){case Array:return e instanceof Array;case"$hxCoreType__Bool":return typeof e=="boolean";case"$hxCoreType__Dynamic":return e!=null;case"$hxCoreType__Float":return typeof e=="number";case"$hxCoreType__Int":return typeof e=="number"?(e|0)===e:!1;case String:return typeof e=="string";default:if(e!=null){if(typeof t=="function"){if(M.__downcastCheck(e,t))return!0}else if(typeof t=="object"&&M.__isNativeObj(t)&&e instanceof t)return!0}else return!1;return t=="$hxCoreType__Class"&&e.__name__!=null||t=="$hxCoreType__Enum"&&e.__ename__!=null?!0:e.__enum__!=null?i.global("$hxEnums")[e.__enum__]==t:!1}}static __downcastCheck(e,t){return e instanceof t?!0:t.__isInterface__?M.__interfLoop(M.getClass(e),t):!1}static __cast(e,t){if(e==null||M.__instanceof(e,t))return e;throw D.thrown("Cannot cast "+I.string(e)+" to "+I.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}};be.__toStr={}.toString;var cr=i.$global,Ae=i.global("$hxClasses")["js.Browser"]=class Xe{static get supported(){return this.get_supported()}static get_supported(){return typeof window!="undefined"&&typeof window.location!="undefined"?typeof window.location.protocol=="string":!1}static createXMLHttpRequest(){if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;if(typeof ActiveXObject!="undefined")return new"ActiveXObject"("Microsoft.XMLHTTP");throw D.thrown("Unable to create XMLHttpRequest object.")}static get __name__(){return"js.Browser"}get __class__(){return Xe}};var _r=i.$global,Q=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"]})};Q.__constructs__=[Q.Blocked,Q.Overflow,Q.OutsideBounds,Q.Custom];Q.__empty_constructs__=[Q.Blocked,Q.Overflow,Q.OutsideBounds];var pr=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 xr=i.$global,me=i.global("$hxClasses")["haxe.io.Bytes"]=class $e extends i.inherits(){[i.new](e){this.length=e.byteLength,this.b=new Uint8Array(e),this.b.bufferValue=e,e.hxBytes=this,e.bytes=this.b}getString(e,t,r){if(e<0||t<0||e+t>this.length)throw D.thrown(Q.OutsideBounds);r==null&&(r=te.UTF8);let n="",s=this.b,l=e,u=e+t;switch(r._hx_index){case 0:let m=e>0;for(;l<u;){let g=s[l++];if(g<128){if(g==0)break;n+=String.fromCodePoint(g)}else if(g<224){let _=(g&63)<<6|s[l++]&127;n+=String.fromCodePoint(_)}else if(g<240){let _=s[l++],f=(g&31)<<12|(_&127)<<6|s[l++]&127;n+=String.fromCodePoint(f)}else{let _=s[l++],f=s[l++],c=(g&15)<<18|(_&127)<<12|(f&127)<<6|s[l++]&127;n+=String.fromCodePoint(c)}}break;case 1:for(;l<u;){let g=s[l++]|s[l++]<<8;n+=String.fromCodePoint(g)}break}return n}static ofData(e){let t=e.hxBytes;return t!=null?t:new $e(e)}static get __name__(){return"haxe.io.Bytes"}get __class__(){return $e}};me.prototype.length=null;me.prototype.b=null;var Cr=i.$global,Y=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}};Y.prototype.url=null;Y.prototype.responseBytes=null;Y.prototype.responseAsString=null;Y.prototype.postData=null;Y.prototype.postBytes=null;Y.prototype.headers=null;Y.prototype.params=null;Y.prototype.emptyOnData=null;var Dr=i.$global,ke=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}};ke.prototype.map=null;ke.prototype.keys=null;var Tr=i.$global,Fe=function(){};Fe.__isInterface__=!0;var Or=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(""+I.string(r)+" => "+I.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 ve}};Se.prototype.inst=null;var jr=i.$global,Ze=i.global("$hxClasses")["haxe.ds.StringMap"]=class Oe extends i.inherits(Se){[i.new](){super[i.new]()}copy(){let e=new Oe;return e.inst=new Map(this.inst),e}keyValueIterator(){return new ke(this)}static get __name__(){return"haxe.ds.StringMap"}static get __interfaces__(){return[Fe]}static get __super__(){return Se}get __class__(){return Oe}};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 Wr=i.$global,oe=i.global("$hxClasses").StringTools=class De{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&&De.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&&De.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 De}};var Yr=i.$global,tt=i.global("$hxClasses").Lambda=class rt{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 rt}};var sn=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 D.thrown("EReg::matched")}matchedPos(){if(this.r.m==null)throw D.thrown("No string matched");return{pos:this.r.m.index,len:this.r.m[0].length}}matchSub(e,t,r){if(r==null&&(r=-1),this.r.global){this.r.lastIndex=t,this.r.m=this.r.exec(r<0?e:j.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?j.substr(e,t,null):j.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+=I.string(j.substr(e,r,null));break}let s=this.matchedPos();n+=I.string(j.substr(e,r,s.pos-r)),n+=I.string(t(this)),s.len==0?(n+=I.string(j.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+=I.string(j.substr(e,r,null))),n}static get __name__(){return"EReg"}get __class__(){return nt}};we.prototype.r=null;var hn=i.$global,ae=i.global("$hxClasses")["haxe.http.HttpJs"]=class st extends i.inherits(Y){[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=Ae.createXMLHttpRequest(),r=this,n=function(_){if(t.readyState!=4)return;let f;try{f=t.status}catch{f=null}if(f==0&&Ae.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,h=c;for(;b<h.length;){let w=h[b];++b,w!=""&&y.push(w)}c=y;let S=new Ze;r.responseHeaders=S;let d=0;for(;d<c.length;){let w=c[d];++d;let C=w.split(": "),q=C.shift(),U=C.length==1?C[0]:C.join(": ");U=oe.ltrim(oe.rtrim(U)),r.responseHeaders.inst.set(q,U)}r.success(me.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?me.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?me.ofData(t.response):null;r.responseBytes=c,r.onError("Http Error #"+t.status)}};this.async&&(t.onreadystatechange=n);let s,l=this.postData,u=this.postBytes;if(l==null)if(u==null)s=null;else{let _=u;s=new Blob([_.b.bufferValue])}else u==null?s=l:s=null;if(s!=null)e=!0;else{let _=0,f=this.params;for(;_<f.length;){let c=f[_];++_,s==null?s="":s=(s==null?"null":I.string(s))+"&";let y=c.name,b=(s==null?"null":I.string(s))+encodeURIComponent(y)+"=",h=c.value;s=b+encodeURIComponent(h)}}try{if(e)t.open("POST",this.url,this.async);else if(s!=null){let _=this.url.split("?").length<=1;t.open("GET",this.url+(_?"?":"&")+(s==null?"null":I.string(s)),this.async),s=null}else t.open("GET",this.url,this.async);t.responseType="arraybuffer"}catch(_){let f=D.caught(_).unwrap();this.req=null,this.onError(f.toString());return}t.withCredentials=this.withCredentials,!tt.exists(this.headers,function(_){return _.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 _=g[m];++m,t.setRequestHeader(_.name,_.value)}t.send(s),this.async||n(null)}static get __name__(){return"haxe.http.HttpJs"}static get __super__(){return Y}get __class__(){return st}};ae.prototype.async=null;ae.prototype.withCredentials=null;ae.prototype.responseHeaders=null;ae.prototype.req=null;var vn=i.$global,Be=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 Rn=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 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 lt}};var Pn=i.$global,Ve=i.global("$hxClasses")["internal.http.FetchHttp"]=class ot extends i.inherits(ae){[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,[]),u=0,m=this.headers;for(;u<m.length;){let h=m[u];++u,l.append(h.name,h.value)}let g=e?"POST":"GET",_=null;if(e)if(this.postData!=null)_=this.postData;else{_=Be.createInstance(s,[]);let h=0,S=this.params;for(;h<S.length;){let d=S[h];++h,_.append(d.name,d.value)}}let f={method:g,headers:l,body:_},c=this,y=r(this.url,f).then(function(h){if(c.responseStatus=h.status,c.onStatus(h.status),h.ok)return h.text();throw D.thrown("HTTP Error: "+I.string(h.status))}).then(function(h){c.onData(h)}),b=R.field(y,"catch");b!=null&&b.apply(y,[function(h){c.onError(I.string(h))}])}static get __name__(){return"internal.http.FetchHttp"}static get __super__(){return ae}get __class__(){return ot}};Ve.prototype.responseStatus=null;var Fn=i.$global,He=i.global("$hxClasses")["internal.data.UUID"]=class at{static randomHexChar(){return"0123456789abcdef".charAt(I.random(16))}static v4(){let e="",t=0;for(;t<36;)switch(t++){case 14:e+="4";break;case 19:e+=I.string("0123456789abcdef".charAt(8+I.random(4)));break;case 8:case 13:case 18:case 23:e+="-";break;default:e+=I.string("0123456789abcdef".charAt(I.random(16)))}return e}static get __name__(){return"internal.data.UUID"}get __class__(){return at}};He.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(),m=0,g=R.fields(u);for(;m<g.length;){let _=g[m];++m,t[_]=R.field(u,_)}}else v._user_id!=null&&(t.user_id=v._user_id),t.device_id=v._device_id;let r=0,n=v._others;for(;r<n.length;){let u=n[r];++r,t[u.key]=u.value}let s=R.field(t,"context_item"),l=R.field(t,"context_item_type");return s!=null&&I.string(s)!=""&&(l==null||I.string(l)=="")&&(t.context_item_type="article"),t}static _buildHistories(){let e=[],t=0,r=v._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=[],u=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 h=c[b];++b,!(h==null||h.key==null||h.key=="")&&y.push({key:h.key,value:h.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),h=0,S=c.length;for(;h<S;){let O=h++;b[O]=JSON.stringify(c[O])}let d=b,w=new Array(y.length),C=0,q=y.length;for(;C<q;){let O=C++;w[O]=JSON.stringify(y[O])}let U=w;d.sort(R.compare),U.sort(R.compare);let A=0,$=d.length;for(;A<$;){let O=A++;if(d[O]!=U[O])return!1}return!0},_=function(){let c={limit:s,list_name:r,list_size:s},y=0;for(;y<n.length;){let h=n[y];++y;let S=h.value;S instanceof Array||(S=[S]),c[h.key]=S}let b=0;for(;b<l.length;){let h=l[b];++b,c[h.key]=h.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==""){u(c.list,y,b),s+=1;continue}else(r!=c.list||!g(n,y)||!g(l,b))&&(_(),u(c.list,y,b));s+=1}return s!=0&&_(),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,u=new Ve(v._requestUri());u.setHeader("Content-Type","application/json");let m=v.buildRequestBody(e),g=JSON.stringify(m);u.setPostData(g),u.onError=function(c){throw D.thrown("HTTP Request Error: "+c)};try{u.request(!0)}catch(c){let y=D.caught(c).unwrap();throw D.thrown("Failed to execute synchronous request: "+I.string(y)+g)}let _=function(c){let y=JSON.parse(c),b=de.fromRequestData(y),h=s;h._isFinished||(h._result=b,h._isFinished=!0,h._resolve(b))},f=u.get_responseData();return f!=null?_(f):u.onData=_,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,u=new Promise(function(f,c){l=f}),m=u;m._resolve=l,m._isFinished=!1,m._result=null;let g=u,_;return v.getRawRecommendations([n]).then(function(f){let c=[],y=f.lists()[0].items;if(y instanceof Array){let h=0,S=y;for(;h<S.length;){let d=S[h];++h;let w=d.get("categories");w!=null&&c.push(w)}}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,n=v._others;for(;r<n.length;){let s=n[r];if(++r,s.key==e){s.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(He.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 setPageView(e){v._page_view=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 getPageView(){return v._page_view}static getConsent(){return v._consent}static getChannel(){return v._channel}static getOthers(e){let t=0,r=v._others;for(;t<r.length;){let n=r[t];if(++t,e==n.key)return n.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._page_view=null;o._channel="www-desktop";o._safe_request=!0;o._history=[];o._others=[];var de=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 u=l[s];++s,e.push(u)}}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,u=n.items;for(;l<u.length;){let m=u[l];++l,s.items.push(be.__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"),u=[],m=0;for(;m<l.length;){let _=l[m];++m,R.setProperty(_,"request_id",R.getProperty(e,"request_id")),R.setProperty(_,"user_group",R.getProperty(e,"user_group")),u.push(new re(_))}let g=new ue({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:u,request_id:R.getProperty(e,"request_id")});r.push(g)}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[ge]}get __class__(){return Ue}};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 ue=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}};ue.prototype.limit=null;ue.prototype.list_key=null;ue.prototype.list_name=null;ue.prototype.list_size=null;ue.prototype.items=null;ue.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[fe]}get __class__(){return ct}};re.prototype.Id=null;re.prototype.RequestId=null;re.prototype.UserGroup=null;re.prototype._data=null;var Qn=i.$global,Le=function(){};Le.__isInterface__=!0;var ts=i.$global,xe=i.global("$hxClasses")["internal.js.JSFroomleDomTree"]=class qe 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 qe;return n.root=r.documentElement,n}static fromDocument(e){let t=new qe;return t.root=e.documentElement,t}static get __name__(){return"internal.js.JSFroomleDomTree"}static get __interfaces__(){return[Le]}get __class__(){return qe}};xe.prototype.root=null;var ms=i.$global,ce=i.global("$hxClasses")["internal.domHandler.DomDomDom"]=class ne extends i.inherits(){[i.new](){}static _fillRecoTargets(e){let t=null,r=new Promise(function(p,x){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=[],u=new Array,m=e.querySelectorAll("*"),g=0,_=m.length;for(;g<_;){let p=g++,x=m.item(p);x instanceof HTMLElement&&u.push(x)}let f=u,c=0;for(;c<f.length;){let p=f[c];++c;let x=0,E=new Array,k=0,P=p.attributes;for(;k<P.length;){let V=P[k];++k,E.push({name:V.name,value:V.value})}let L=E;for(;x<L.length;){let V=L[x];++x,V.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,x=new Promise(function(k,P){p=k}),E=x;return E._resolve=p,E._isFinished=!1,E._result=null,x}let h=[],S=[],d="",w=[],C=[],q=[],U=function(p,x){if(p.length!=x.length)return!1;let E=new Array(p.length),k=0,P=p.length;for(;k<P;){let T=k++;E[T]=JSON.stringify(p[T])}let L=E,V=new Array(x.length),G=0,W=x.length;for(;G<W;){let T=G++;V[T]=JSON.stringify(x[T])}let K=V;L.sort(R.compare),K.sort(R.compare);let J=0,N=L.length;for(;J<N;){let T=J++;if(L[T]!=K[T])return!1}return!0},A=function(){let p={list_name:d,list_size:C.length,limit:C.length},x=0;for(;x<w.length;){let k=w[x];if(++x,k!=null&&k.key!=null&&k.key!=""){let P=k.value;P instanceof Array||(P=[P]),R.setProperty(p,k.key,P)}}let E=0;for(;E<q.length;){let k=q[E];++E,R.setProperty(p,k.key,k.value)}h.push(p),S.push(C)},$=function(p,x,E,k){d=p,w=x,C=[k],q=E},O=0;for(;O<y.length;){let p=y[O];++O;let x=function(V){let G=[],W=0,K=new Array,J=0,N=V.attributes;for(;J<N.length;){let H=N[J];++J,K.push({name:H.name,value:H.value})}let T=K;for(;W<T.length;){let H=T[W];if(++W,H.name.startsWith("data-froomle-reco-filter-")){let X=j.substr(H.name,25,null),ie=H.value;G.push({key:X,value:ie})}}return G},E=function(V){let G=[],W=0,K=new Array,J=0,N=V.attributes;for(;J<N.length;){let H=N[J];++J,K.push({name:H.name,value:H.value})}let T=K;for(;W<T.length;){let H=T[W];if(++W,H.name.startsWith("data-froomle-variable-")){let X=j.substr(H.name,22,null),ie=H.value;G.push({key:X,value:ie})}}return G},k=p.getAttribute("data-froomle-reco"),P=x(p),L=E(p);if(d==""){$(k,P,L,p);continue}else if(k==d&&U(w,P)&&U(q,L)){C.push(p);continue}else{A(),$(k,P,L,p);continue}}d!=""&&A();let B;if(o.getPageVisit()==null){let p=s;return p._isFinished||(p._result=!1,p._isFinished=!0,p._resolve(!1)),s}else if(o.getEnvironment()==null){let p=s;return p._isFinished||(p._result=!1,p._isFinished=!0,p._resolve(!1)),s}else try{B=o.getRawRecommendations(h)}catch{let x=s;return x._isFinished||(x._result=!1,x._isFinished=!0,x._resolve(!1)),s}return B.then(function(p){let x=p.lists(),E=x.length,k=0,P=E;for(;k<P;){let V=k++,G=x[V],W=G.items.length!=S[V].length,K=G.items.length,J=0,N=K;for(;J<N;){let T=J++,H=G.items[T],X=S[V][T];ne._fillParameters(X,H,p.request_id)}}let L=s;L._isFinished||(L._result=!0,L._isFinished=!0,L._resolve(!0))}),s}static getAttrByPath(e,t,r){r==null&&(r="fgh");try{t=new we("\\\\[(\\\\w+)\\\\]","g").map(t,function(g){return"."+g.matched(1)}),t=oe.replace(t,"[","."),t=oe.replace(t,"]",""),j.cca(t,0)==46&&(t=j.substr(t,1,null));let s=t.split("."),l=e.get(s[0]),u=1,m=s.length;for(;u<m;){let g=u++;if(l==null)return null;l instanceof Array&&I.parseInt(s[g])!=null?l=l[I.parseInt(s[g])]:l=R.field(l,s[g])}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 g=s++,_=n.item(g);_ instanceof HTMLElement&&r.push(_)}let u=r,m=0;for(;m<u.length;){let g=u[m];++m,t.push(g.getAttribute("data-froomle-id"))}o.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 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 n=t.get("item_type");n!=null&&I.string(n)!=""&&e.setAttribute("data-froomle-item-type",I.string(n)),t.UserGroup!=null&&t.UserGroup!=""&&e.setAttribute("data-froomle-user-group",t.UserGroup);let s=new Array,l=e.querySelectorAll("*"),u=0,m=l.length;for(;u<m;){let f=u++,c=l.item(f);c instanceof HTMLElement&&s.push(c)}let g=s,_=0;for(;_<g.length;){let f=g[_];++_;let c=0,y=new Array,b=0,h=f.attributes;for(;b<h.length;){let d=h[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 w=oe.replace(d.name,"data-froomle-param-",""),C=d.value;ne.fillParam(f,w,C,t)}}}}static _orderElements(e){let t=function(d,w,C){let q=[],U=new Array,A=0,$=d.childNodes;for(;A<$.length;){let E=$[A];++A,U.push(E)}let O=U,B=0;for(;B<O.length;){let E=O[B];++B;try{if(E.getAttribute("data-froomle-ordervalue")!=null){q.push(E);let P=e.createElement("span");P.setAttribute("data-froomle-tmp-node","tmp"),d.replaceChild(P,E)}}catch{}}let p=[],x=0;for(;x<q.length;){let E=q[x];++x,p.push(E.getAttribute("data-froomle-ordervalue"))}return{el:d,key:w,values:p,orderChildren:q,list_name:C}},r=null,n=new Promise(function(d,w){r=d}),s=n;s._resolve=r,s._isFinished=!1,s._result=null;let l=n,u=e.getRoot(),m=new Array,g=u.querySelectorAll("*"),_=0,f=g.length;for(;_<f;){let d=_++,w=g.item(d);w instanceof HTMLElement&&m.push(w)}let c=m,y=[],b=0;for(;b<c.length;){let d=c[b];++b;let w=0,C=new Array,q=0,U=d.attributes;for(;q<U.length;){let $=U[q];++q,C.push({name:$.name,value:$.value})}let A=C;for(;w<A.length;){let $=A[w];++w,$.name.startsWith("data-froomle-order-")&&y.push(t(d,$.name.substring(19),$.value))}}if(y.length<1){let d=l;return d._isFinished||(d._result=!1,d._isFinished=!0,d._resolve(!1)),l}let h=[],S=0;for(;S<y.length;){let d=y[S];++S;let w={list_name:d.list_name,limit:d.values.length,list_size:d.values.length},C={};R.setProperty(C,d.key,d.values),R.setProperty(w,"order",C),h.push(w)}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(h).then(function(d){let w=d.lists(),C=w.length,q=0,U=C;for(;q<U;){let $=q++,O=w[$],B=y[$];B.el.setAttribute("data-froomle-request-id",d.request_id);let p=new Array,x=0,E=O.items;for(;x<E.length;){let N=E[x];++x;let T=N.get(B.key),H=N.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 Nt=B.orderChildren.length,Rt=B.orderChildren[le];p.push(Rt),B.orderChildren.splice(le,1),B.values.splice(le,1);break}}}let k=p.length,P=B.el,L=new Array,V=0,G=P.childNodes;for(;V<G.length;){let N=G[V];++V,L.push(N)}let W=L.length,K=0,J=W;for(;K<J;){let N=K++,T=B.el,H=new Array,X=0,ie=T.childNodes;for(;X<ie.length;){let he=ie[X];++X,H.push(he)}let pe=H[N],le;if(pe instanceof HTMLElement?le=pe.hasAttribute("data-froomle-tmp-node"):le=!1,le){B.el.replaceChild(p[0],pe),p.splice(0,1);let he=p.length;if(p.length==0)break}}}let A=l;A._isFinished||(A._result=!0,A._isFinished=!0,A._resolve(!0))})}catch{let w=l;w._isFinished||(w._result=!1,w._isFinished=!0,w._resolve(!1))}return l}static domInit(e){let t=null,r=new Promise(function(l,u){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(u){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 xe;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 ps=i.$global,F=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 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 u=o.getRequestDomain();u!=null&&(e+='data-froomle-request-domain="'+u+'" ');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 setPageView(e){o.setPageView(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 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 ce.runFromHtml(e)}static get __name__(){return"FroomleSdk"}get __class__(){return se}};F._env_set=!1;F._page_visit_set=!1;F.registered=!1;var bs=i.$global;function mt(){return(o.getSafeRequest()?"https://":"http://")+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events"}function je(){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 qt(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 Pt(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 dt(a,e,t="impression",r){if(!je())return;let n=_t()||"www-desktop",s={event_type:t,page_type:o.getPageVisit(),action_item:a,action_item_type:e,channel:n,device_id:gt()},l=ft();if(l&&(s.user_group=l),r)for(let u in r)s[u]=r[u];try{fetch(mt(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({events:[s]})})}catch{}}var z=class z{static generateBody(){let e=[];for(let t of z.impressionQueue){let r=qt(t);if(!r)continue;let n=Pt(t)||"article",s=_t()||"www-desktop",l={event_type:"impression",page_type:o.getPageVisit(),action_item:r,action_item_type:n,channel:s,device_id:gt()},u=ft(t);u&&(l.user_group=u),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 z.impressionQueue=[],JSON.stringify({events:e})}static sendImpressions(){console.log(z.impressionQueue),z.impressionQueue.length!==0&&je()&&fetch(mt(),{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(je()){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 Z=z;typeof document!="undefined"&&(Z.observer=new IntersectionObserver((a,e)=>{a.forEach(t=>{t.isIntersecting&&(Z.impressionQueue.push(t.target),Z.observer.unobserve(t.target))}),Z.impressionQueue.length>0&&Z.sendImpressions()}));var Re=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 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 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()},n=a.readUserGroup();return n&&(r.user_group=n),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 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(){ee.listenerRegistered||(ee.listenerRegistered=!0,document.addEventListener("click",e=>{if(!ee.canTrackEvents())return;let t=e instanceof MouseEvent?e:null,r=e.target,n=r instanceof Element?r:r instanceof Node?r.parentElement:null;if(!n)return;let s=n.closest("a");if(!s)return;let l=s.closest("[data-froomle-id]");if(!l)return;let u=ee.readActionItem(l);if(!u)return;let m=ee.readActionItemType(l)||"article",g=ee.readChannel()||"www-desktop",_=s instanceof HTMLAnchorElement?s.href:null,f=!!_&&e.cancelable&&!e.defaultPrevented&&!s.hasAttribute("download")&&(!s.target||s.target==="_self")&&!!t&&t.button===0&&!t.metaKey&&!t.ctrlKey&&!t.shiftKey&&!t.altKey;f&&e.preventDefault();let c={event_type:"click_on_recommendation",page_type:o.getPageVisit(),action_item:u,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"),h=l.getAttribute("data-froomle-request-id");b&&h&&(c.list_name=b,c.request_id=h),o.getConsent()>=2&&o.getUserId()&&(c.user_id=o.getUserId());let d=(o.getSafeRequest()?"https://":"http://")+o.getRequestDomain()+"/api/"+o.getEnvironment()+"/events",w=JSON.stringify({events:[c]}),C=new Blob([w],{type:"application/json"}),q=()=>fetch(d,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:w,keepalive:!0});if(f&&_){let A=!1,$=()=>{A||(A=!0,window.location.assign(_))},O=window.setTimeout($,200);q().catch(()=>{typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function"&&navigator.sendBeacon(d,C)}).finally(()=>{window.clearTimeout(O),$()});return}typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function"&&navigator.sendBeacon(d,C)||q().catch(()=>{})},!0))}};ee.listenerRegistered=!1;var Ee=ee;var Tt=xe,pt=F.setEnvironment,ht=F.setPageVisit,yt=F.setRequestDomain,bt=F.setSafeRequest,vt=typeof F.setChannel=="function"?F.setChannel:o.setChannel,wt=F.setContextItem,xt=F.setContextItemType,At=F.setCustomVariable,$t=o.addHistories,Ft=F.setPageView;function Me(a){F.setUserId(a),document.cookie=`froomle_user_id=${a}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Ge(a){F.setDeviceId(a),document.cookie=`froomle_device_id=${a}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Je(a){F.setConsent(a),document.cookie=`froomle_consent=${a}; max-age=${3600*24*365*20}; path=/; samesite=lax`,document.cookie=`froomle_device_id=${F.getDeviceId()}; max-age=${3600*24*365*20}; path=/; samesite=lax`}typeof window!="undefined"&&(window.setFroomleConsent=Je);function Ne(a){let e=document.cookie.split("; ");for(let t of e){let[r,n]=t.split("=");if(r===a)return decodeURIComponent(n)}return null}var Ot=F.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"),n=a.getAttribute("data-froomle-env"),s=a.getAttribute("data-froomle-page-visit"),l=a.getAttribute("data-froomle-request-domain"),u=a.getAttribute("data-froomle-context-item"),m=a.getAttribute("data-froomle-context-item-type"),g=a.getAttribute("data-froomle-safe-request"),_=a.getAttribute("data-froomle-channel");if(pt(n),s&&ht(s),u&&(wt(u),xt(m||"article")),t)Ge(t);else{let f=Ne("froomle_device_id");f&&Ge(f)}if(r)Me(r);else{let f=Ne("froomle_user_id");f&&Me(f)}l&&yt(l),g&&bt(g!=="false"),_&&vt(_)}let e=Ne("froomle_consent");e&&Je(e),document.addEventListener("DOMContentLoaded",()=>{console.log("froomle loads dom"),ce.domInit(Tt.fromDocument(document)).then(r=>{Ee.registerClickables(),Z.processDocument(),Re.sendPageVisit(),Ie.sendPageView()});let t=new MutationObserver(r=>{for(let n of r)if(n.type==="childList"&&Z.processElement(n.target),n.type==="attributes")if(n.attributeName==="data-froomle-reco"){let s=n.target.getAttribute("data-froomle-request-id");(!s||s==="")&&ce.fillElementRecos(n.target)}else n.attributeName==="data-froomle-request-id"&&ce.fillElementRecos(n.target)})})}function Bt(){let a,e;return{promise:new Promise((r,n)=>{a=r,e=n}),resolve:a,reject:e}}var Pe=[];function Vt(){var a;return typeof document=="undefined"?"":((a=document.querySelector("[data-froomle-user-group]"))==null?void 0:a.getAttribute("data-froomle-user-group"))||""}function Ht(a,e){var s;let t=a,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 Ut(){let a=Pe.map(s=>s.req),e=o.requestsToLists(a),t=await o.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=>Ht(s,r)),Pe.forEach((s,l)=>{n[l]?s.deferred.resolve(n[l]):s.deferred.reject(new Error("No recommendation available"))}),Pe.length=0}function Lt(a){let e,t,n={promise:new Promise((s,l)=>{e=s,t=l}),resolve:e,reject:t};return Pe.push({deferred:n,req:a}),n}function jt(a){let t=Lt(a).promise,r=Bt(),n=function(l,u){return t.then(m=>(s.completeTarget=m,l?l(m):m),m=>u?u(m):Promise.reject(m))},s=new Proxy(new re({item_id:"",request_id:"",user_group:""}),{get(l,u,m){if(u==="then")return n;if(u==="__froomleList")return a.list;if(u==="get"){let f=Reflect.get(l,u,m);return function(...c){return f.apply(this,c)}}if(typeof u!="string")return Reflect.get(l,u,m);let g=Reflect.get(l,u,m);if(g!=null&&g!=="")return g;let _=l.get(u);return _!=null&&_!==""?_:""},set(l,u,m,g){if(u==="completeTarget"){if(Object.assign(l,m),!l.UserGroup){let _=Vt();if(_){l.UserGroup=_;let f=l.getData();f&&!f.user_group&&(f.user_group=_)}}return!0}return Reflect.set(l,u,m,g)},has(l,u){return l.get(u)!==void 0}});return s}export{ge as a,_e as b,fe as c,o as d,dt as e,Z 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,Ft as s,Me as t,Ge as u,Je as v,Ot as w,Ut as x,jt as y};
|
package/dist/froomle.global.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
"use strict";var FroomleFrontendSdk=(()=>{var
|
|
2
|
-
`;t+=" ";let
|
|
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 qe=Object.defineProperty;var Et=Object.getOwnPropertyDescriptor;var Ct=Object.getOwnPropertyNames;var St=Object.prototype.hasOwnProperty;var kt=(a,e)=>{for(var t in e)qe(a,t,{get:e[t],enumerable:!0})},Dt=(a,e,t,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let n of Ct(e))!St.call(a,n)&&n!==t&&qe(a,n,{get:()=>e[n],enumerable:!(r=Et(e,n))||r.enumerable});return a};var At=a=>Dt(qe({},"__esModule",{value:!0}),a);var Nt={};kt(Nt,{FroomleDomTree:()=>dt,RecoBackendV2:()=>l,RecommendationItem:()=>pe,RecommendationList:()=>ge,Recommendations:()=>_e,_RecommendationItemInternal:()=>se,addHistories:()=>Lt,getRecommendations:()=>jt,sendEvent:()=>ft,setChannel:()=>wt,setConsent:()=>Ge,setContextItem:()=>xt,setContextItemType:()=>It,setCustomVariable:()=>Ht,setDeviceId:()=>Je,setEnvironment:()=>ht,setPageView:()=>Ut,setPageVisit:()=>yt,setRequestDomain:()=>bt,setSafeRequest:()=>vt,setUserId:()=>Me});var s=class a{static global(e){return a.globals[e]?a.globals[e]:a.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(i){r!=null&&(n=r(),r=null),n=i}})}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 n=e();n[a.init]&&n[a.init](),Object.setPrototypeOf(r.prototype,n.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}};s.$global=typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:void 0;s.globals={};s.new=Symbol();s.init=Symbol();s.fid=0;var Pe=s.global("$hxClasses")["genes._Register.ArrayIterator"]=class ze extends s.inherits(){[s.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=s.$global,Ce=s.global("$hxClasses")["haxe.ValueException"]=class Ke extends s.inherits(()=>D,!0){[s.new](e,t,r){super[s.new](String(e),t,r),this.value=e}unwrap(){return this.value}static get __name__(){return"haxe.ValueException"}static get __super__(){return D}get __class__(){return Ke}};Ce.prototype.value=null;var Zt=s.$global,D=s.global("$hxClasses")["haxe.Exception"]=class ye extends s.inherits(()=>Error,!0){[s.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}};D.prototype.native=null;D.prototype.__skipStack=null;D.prototype.__nativeException=null;D.prototype.__previousException=null;var nr=s.$global,R=s.global("$hxClasses").Std=class We{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 We}};Object.defineProperty(String.prototype,"__class__",{value:String,enumerable:!1,writable:!0}),String.__name__=!0,Array.__name__=!0,qt={},Pt={},$t=Number,Tt=Boolean,Ft={},Ot={};var qt,Pt,$t,Tt,Ft,Ot;var ar=s.$global,be=s.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 m=s.global("$hxEnums")[e.__enum__].__constructs__[e._hx_index],_=m._hx_name;return m.__params__?(t=t+" ",_+"("+(function(f){var c;let y=[];{let b=0,h=m.__params__;for(;b<h.length;){let k=h[b];b=b+1,y.push(M.__string_rec(e[k],t))}}return c=y,c})(this).join(",")+")"):_}if(e instanceof Array){let p="[";t+=" ";let m=0,_=e.length;for(;m<_;){let f=m++;p+=(f>0?",":"")+M.__string_rec(e[f],t)}return p+="]",p}let n;try{n=e.toString}catch{return"???"}if(n!=null&&n!=Object.toString&&typeof n=="function"){let p=e.toString();if(p!="[object Object]")return p}let i=`{
|
|
2
|
+
`;t+=" ";let o=e.hasOwnProperty!=null,u=null;for(u in e)o&&!e.hasOwnProperty(u)||u=="prototype"||u=="__class__"||u=="__super__"||u=="__interfaces__"||u=="__properties__"||(i.length!=2&&(i+=`,
|
|
3
|
+
`),i+=t+u+" : "+M.__string_rec(e[u],t));return t=t.substring(1),i+=`
|
|
4
|
+
`+t+"}",i;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,i=r.length;for(;n<i;){let o=n++,u=r[o];if(u==t||M.__interfLoop(u,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?s.global("$hxEnums")[e.__enum__]==t:!1}}static __downcastCheck(e,t){return e instanceof t?!0:t.__isInterface__?M.__interfLoop(M.getClass(e),t):!1}static __cast(e,t){if(e==null||M.__instanceof(e,t))return e;throw D.thrown("Cannot cast "+R.string(e)+" to "+R.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 s.$global[e]}static get __name__(){return"js.Boot"}get __class__(){return M}};be.__toStr={}.toString;var _r=s.$global,$e=s.global("$hxClasses")["js.Browser"]=class Xe{static get supported(){return this.get_supported()}static get_supported(){return typeof window!="undefined"&&typeof window.location!="undefined"?typeof window.location.protocol=="string":!1}static createXMLHttpRequest(){if(typeof XMLHttpRequest!="undefined")return new XMLHttpRequest;if(typeof ActiveXObject!="undefined")return new"ActiveXObject"("Microsoft.XMLHTTP");throw D.thrown("Unable to create XMLHttpRequest object.")}static get __name__(){return"js.Browser"}get __class__(){return Xe}};var fr=s.$global,Q=s.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"]})};Q.__constructs__=[Q.Blocked,Q.Overflow,Q.OutsideBounds,Q.Custom];Q.__empty_constructs__=[Q.Blocked,Q.Overflow,Q.OutsideBounds];var yr=s.$global,te=s.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 Rr=s.$global,me=s.global("$hxClasses")["haxe.io.Bytes"]=class Te extends s.inherits(){[s.new](e){this.length=e.byteLength,this.b=new Uint8Array(e),this.b.bufferValue=e,e.hxBytes=this,e.bytes=this.b}getString(e,t,r){if(e<0||t<0||e+t>this.length)throw D.thrown(Q.OutsideBounds);r==null&&(r=te.UTF8);let n="",i=this.b,o=e,u=e+t;switch(r._hx_index){case 0:let p=e>0;for(;o<u;){let m=i[o++];if(m<128){if(m==0)break;n+=String.fromCodePoint(m)}else if(m<224){let _=(m&63)<<6|i[o++]&127;n+=String.fromCodePoint(_)}else if(m<240){let _=i[o++],f=(m&31)<<12|(_&127)<<6|i[o++]&127;n+=String.fromCodePoint(f)}else{let _=i[o++],f=i[o++],c=(m&15)<<18|(_&127)<<12|(f&127)<<6|i[o++]&127;n+=String.fromCodePoint(c)}}break;case 1:for(;o<u;){let m=i[o++]|i[o++]<<8;n+=String.fromCodePoint(m)}break}return n}static ofData(e){let t=e.hxBytes;return t!=null?t:new Te(e)}static get __name__(){return"haxe.io.Bytes"}get __class__(){return Te}};me.prototype.length=null;me.prototype.b=null;var kr=s.$global,Y=s.global("$hxClasses")["haxe.http.HttpBase"]=class Qe extends s.inherits(){[s.new](e){this.url=e,this.headers=[],this.params=[],this.emptyOnData=s.bind(this,this.onData)}get responseData(){return this.get_responseData()}setHeader(e,t){let r=0,n=this.headers.length;for(;r<n;){let i=r++;if(this.headers[i].name==e){this.headers[i]={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 s.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}};Y.prototype.url=null;Y.prototype.responseBytes=null;Y.prototype.responseAsString=null;Y.prototype.postData=null;Y.prototype.postBytes=null;Y.prototype.headers=null;Y.prototype.params=null;Y.prototype.emptyOnData=null;var qr=s.$global,Se=s.global("$hxClasses")["haxe.iterators.MapKeyValueIterator"]=class Ye extends s.inherits(){[s.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 Tr=s.$global,Fe=function(){};Fe.__isInterface__=!0;var Vr=s.$global,ke=s.global("$hxClasses")["genes.util.EsMap"]=class ve extends s.inherits(){[s.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,n=function(){let i=e.next();t=i.value,r=i.done};return{hasNext:function(){return r==null&&n(),!r},next:function(){r==null&&n();let i=t;return n(),i}}}static get __name__(){return"genes.util.EsMap"}get __class__(){return ve}};ke.prototype.inst=null;var Mr=s.$global,Ze=s.global("$hxClasses")["haxe.ds.StringMap"]=class Oe extends s.inherits(ke){[s.new](){super[s.new]()}copy(){let e=new Oe;return e.inst=new Map(this.inst),e}keyValueIterator(){return new Se(this)}static get __name__(){return"haxe.ds.StringMap"}static get __interfaces__(){return[Fe]}static get __super__(){return ke}get __class__(){return Oe}};var zr=s.$global,j=s.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=s.$global,oe=s.global("$hxClasses").StringTools=class De{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&&De.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&&De.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 De}};var en=s.$global,tt=s.global("$hxClasses").Lambda=class rt{static exists(e,t){let r=s.getIterator(e);for(;r.hasNext();){let n=r.next();if(t(n))return!0}return!1}static get __name__(){return"Lambda"}get __class__(){return rt}};var on=s.$global,we=s.global("$hxClasses").EReg=class nt extends s.inherits(){[s.new](e,t){this.r=new RegExp(e,t.split("u").join(""))}match(e){return this.r.global&&(this.r.lastIndex=0),this.r.m=this.r.exec(e),this.r.s=e,this.r.m!=null}matched(e){if(this.r.m!=null&&e>=0&&e<this.r.m.length)return this.r.m[e];throw D.thrown("EReg::matched")}matchedPos(){if(this.r.m==null)throw D.thrown("No string matched");return{pos:this.r.m.index,len:this.r.m[0].length}}matchSub(e,t,r){if(r==null&&(r=-1),this.r.global){this.r.lastIndex=t,this.r.m=this.r.exec(r<0?e:j.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?j.substr(e,t,null):j.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+=R.string(j.substr(e,r,null));break}let i=this.matchedPos();n+=R.string(j.substr(e,r,i.pos-r)),n+=R.string(t(this)),i.len==0?(n+=R.string(j.substr(e,i.pos,1)),r=i.pos+1):r=i.pos+i.len}while(this.r.global);return!this.r.global&&r>0&&r<e.length&&(n+=R.string(j.substr(e,r,null))),n}static get __name__(){return"EReg"}get __class__(){return nt}};we.prototype.r=null;var bn=s.$global,ae=s.global("$hxClasses")["haxe.http.HttpJs"]=class it extends s.inherits(Y){[s.new](e){this.async=!0,this.withCredentials=!1,super[s.new](e)}request(e){this.responseAsString=null,this.responseBytes=null,this.responseHeaders=null;let t=this.req=$e.createXMLHttpRequest(),r=this,n=function(_){if(t.readyState!=4)return;let f;try{f=t.status}catch{f=null}if(f==0&&$e.get_supported()&&s.$global.location!=null){let c=s.$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,h=c;for(;b<h.length;){let w=h[b];++b,w!=""&&y.push(w)}c=y;let k=new Ze;r.responseHeaders=k;let g=0;for(;g<c.length;){let w=c[g];++g;let C=w.split(": "),A=C.shift(),L=C.length==1?C[0]:C.join(": ");L=oe.ltrim(oe.rtrim(L)),r.responseHeaders.inst.set(A,L)}r.success(me.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?me.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?me.ofData(t.response):null;r.responseBytes=c,r.onError("Http Error #"+t.status)}};this.async&&(t.onreadystatechange=n);let i,o=this.postData,u=this.postBytes;if(o==null)if(u==null)i=null;else{let _=u;i=new Blob([_.b.bufferValue])}else u==null?i=o:i=null;if(i!=null)e=!0;else{let _=0,f=this.params;for(;_<f.length;){let c=f[_];++_,i==null?i="":i=(i==null?"null":R.string(i))+"&";let y=c.name,b=(i==null?"null":R.string(i))+encodeURIComponent(y)+"=",h=c.value;i=b+encodeURIComponent(h)}}try{if(e)t.open("POST",this.url,this.async);else if(i!=null){let _=this.url.split("?").length<=1;t.open("GET",this.url+(_?"?":"&")+(i==null?"null":R.string(i)),this.async),i=null}else t.open("GET",this.url,this.async);t.responseType="arraybuffer"}catch(_){let f=D.caught(_).unwrap();this.req=null,this.onError(f.toString());return}t.withCredentials=this.withCredentials,!tt.exists(this.headers,function(_){return _.name=="Content-Type"})&&e&&this.postData==null&&t.setRequestHeader("Content-Type","application/x-www-form-urlencoded");let p=0,m=this.headers;for(;p<m.length;){let _=m[p];++p,t.setRequestHeader(_.name,_.value)}t.send(i),this.async||n(null)}static get __name__(){return"haxe.http.HttpJs"}static get __super__(){return Y}get __class__(){return it}};ae.prototype.async=null;ae.prototype.withCredentials=null;ae.prototype.responseHeaders=null;ae.prototype.req=null;var xn=s.$global,Be=s.global("$hxClasses").Type=class st{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 st}};var En=s.$global,I=s.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 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,i;e.__properties__?(n=e.__properties__["set_"+t],i=n):i=!1,i?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 lt}};var $n=s.$global,Ve=s.global("$hxClasses")["internal.http.FetchHttp"]=class ot extends s.inherits(ae){[s.new](e){this.responseStatus=0,super[s.new](e)}request(e){let t=s.$global,r=t.fetch,n=t.Headers,i=t.URLSearchParams;if(r==null){this.onError("Fetch API not found.");return}let o=Be.createInstance(n,[]),u=0,p=this.headers;for(;u<p.length;){let h=p[u];++u,o.append(h.name,h.value)}let m=e?"POST":"GET",_=null;if(e)if(this.postData!=null)_=this.postData;else{_=Be.createInstance(i,[]);let h=0,k=this.params;for(;h<k.length;){let g=k[h];++h,_.append(g.name,g.value)}}let f={method:m,headers:o,body:_},c=this,y=r(this.url,f).then(function(h){if(c.responseStatus=h.status,c.onStatus(h.status),h.ok)return h.text();throw D.thrown("HTTP Error: "+R.string(h.status))}).then(function(h){c.onData(h)}),b=I.field(y,"catch");b!=null&&b.apply(y,[function(h){c.onError(R.string(h))}])}static get __name__(){return"internal.http.FetchHttp"}static get __super__(){return ae}get __class__(){return ot}};Ve.prototype.responseStatus=null;var Bn=s.$global,He=s.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}};He.HEX="0123456789abcdef";var Ln=s.$global,_e=function(){};_e.__isInterface__=!0;var ge=function(){};ge.__isInterface__=!0;var pe=function(){};pe.__isInterface__=!0;var Xn=s.$global,l=s.global("$hxClasses")["internal.RecoBackendV2"]=class v extends s.inherits(){[s.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(),p=0,m=I.fields(u);for(;p<m.length;){let _=m[p];++p,t[_]=I.field(u,_)}}else v._user_id!=null&&(t.user_id=v._user_id),t.device_id=v._device_id;let r=0,n=v._others;for(;r<n.length;){let u=n[r];++r,t[u.key]=u.value}let i=I.field(t,"context_item"),o=I.field(t,"context_item_type");return i!=null&&R.string(i)!=""&&(o==null||R.string(o)=="")&&(t.context_item_type="article"),t}static _buildHistories(){let e=[],t=0,r=v._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=[],i=0,o=[],u=function(c,y,b){r=c,n=y,i=0,o=b},p=function(c){let y=[];if(c==null)return y;let b=0;for(;b<c.length;){let h=c[b];++b,!(h==null||h.key==null||h.key=="")&&y.push({key:h.key,value:h.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),h=0,k=c.length;for(;h<k;){let O=h++;b[O]=JSON.stringify(c[O])}let g=b,w=new Array(y.length),C=0,A=y.length;for(;C<A;){let O=C++;w[O]=JSON.stringify(y[O])}let L=w;g.sort(I.compare),L.sort(I.compare);let $=0,T=g.length;for(;$<T;){let O=$++;if(g[O]!=L[O])return!1}return!0},_=function(){let c={limit:i,list_name:r,list_size:i},y=0;for(;y<n.length;){let h=n[y];++y;let k=h.value;k instanceof Array||(k=[k]),c[h.key]=k}let b=0;for(;b<o.length;){let h=o[b];++b,c[h.key]=h.value}t.push(c)},f=0;for(;f<e.length;){let c=e[f];++f;let y=p(c.filters),b=c.others!=null?c.others:[];if(r==""){u(c.list,y,b),i+=1;continue}else(r!=c.list||!m(n,y)||!m(o,b))&&(_(),u(c.list,y,b));i+=1}return i!=0&&_(),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 i=r,o=null,u=new Ve(v._requestUri());u.setHeader("Content-Type","application/json");let p=v.buildRequestBody(e),m=JSON.stringify(p);u.setPostData(m),u.onError=function(c){throw D.thrown("HTTP Request Error: "+c)};try{u.request(!0)}catch(c){let y=D.caught(c).unwrap();throw D.thrown("Failed to execute synchronous request: "+R.string(y)+m)}let _=function(c){let y=JSON.parse(c),b=fe.fromRequestData(y),h=i;h._isFinished||(h._result=b,h._isFinished=!0,h._resolve(b))},f=u.get_responseData();return f!=null?_(f):u.onData=_,i}static getOrder(e,t,r){let n={list_name:e,limit:r.length,list_size:r.length},i={};I.setProperty(i,t,r),I.setProperty(n,"order",i);let o=null,u=new Promise(function(f,c){o=f}),p=u;p._resolve=o,p._isFinished=!1,p._result=null;let m=u,_;return v.getRawRecommendations([n]).then(function(f){let c=[],y=f.lists()[0].items;if(y instanceof Array){let h=0,k=y;for(;h<k.length;){let g=k[h];++h;let w=g.get("categories");w!=null&&c.push(w)}}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,n=v._others;for(;r<n.length;){let i=n[r];if(++r,i.key==e){i.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(He.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 setPageView(e){v._page_view=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 getPageView(){return v._page_view}static getConsent(){return v._consent}static getChannel(){return v._channel}static getOthers(e){let t=0,r=v._others;for(;t<r.length;){let n=r[t];if(++t,e==n.key)return n.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}};l._environment=null;l._device_id="no-consent";l._user_id=null;l._consent=0;l._req_domain="europe-west1.froomle.com";l._page_visit=null;l._page_view=null;l._channel="www-desktop";l._safe_request=!0;l._history=[];l._others=[];var fe=s.global("$hxClasses")["internal._RecommendationsInternal"]=class Le extends s.inherits(){[s.new](e,t,r,n,i){this.request_id=t,this.user_group=r,this.device_id=e,this.user_id=n,this._lists=i}items(){let e=[],t=0,r=this._lists;for(;t<r.length;){let n=r[t];++t;let i=0,o=n.items;for(;i<o.length;){let u=o[i];++i,e.push(u)}}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 i={limit:n.limit,list_key:n.list_key,list_name:n.list_name,list_size:n.list_size,items:[]},o=0,u=n.items;for(;o<u.length;){let p=u[o];++o,i.items.push(be.__cast(p,se).getData())}e.lists.push(i)}return JSON.stringify(e)}static fromRequestData(e){let t=I.getProperty(e,"lists"),r=[],n=0;for(;n<t.length;){let i=t[n];++n;let o=I.getProperty(i,"items"),u=[],p=0;for(;p<o.length;){let _=o[p];++p,I.setProperty(_,"request_id",I.getProperty(e,"request_id")),I.setProperty(_,"user_group",I.getProperty(e,"user_group")),u.push(new se(_))}let m=new ue({limit:I.getProperty(i,"limit"),list_key:I.getProperty(i,"list_key"),list_name:I.getProperty(i,"list_name"),list_size:I.getProperty(i,"list_size"),items:u,request_id:I.getProperty(e,"request_id")});r.push(m)}return new Le(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[_e]}get __class__(){return Le}};fe.prototype.request_id=null;fe.prototype.user_group=null;fe.prototype.user_id=null;fe.prototype.device_id=null;fe.prototype._lists=null;var ue=s.global("$hxClasses")["internal._RecommendationsListInternal"]=class ut extends s.inherits(){[s.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[ge]}get __class__(){return ut}};ue.prototype.limit=null;ue.prototype.list_key=null;ue.prototype.list_name=null;ue.prototype.list_size=null;ue.prototype.items=null;ue.prototype.request_id=null;var se=s.global("$hxClasses")["internal._RecommendationItemInternal"]=class ct extends s.inherits(){[s.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[pe]}get __class__(){return ct}};se.prototype.Id=null;se.prototype.RequestId=null;se.prototype.UserGroup=null;se.prototype._data=null;var Zn=s.$global,Ue=function(){};Ue.__isInterface__=!0;var ni=s.$global,xe=s.global("$hxClasses")["internal.js.JSFroomleDomTree"]=class Ae extends s.inherits(){[s.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 Ae;return n.root=r.documentElement,n}static fromDocument(e){let t=new Ae;return t.root=e.documentElement,t}static get __name__(){return"internal.js.JSFroomleDomTree"}static get __interfaces__(){return[Ue]}get __class__(){return Ae}};xe.prototype.root=null;var gi=s.$global,ce=s.global("$hxClasses")["internal.domHandler.DomDomDom"]=class re extends s.inherits(){[s.new](){}static _fillRecoTargets(e){let t=null,r=new Promise(function(d,x){t=d}),n=r;n._resolve=t,n._isFinished=!1,n._result=null;let i=r;if(e==null){let d=i;return d._isFinished||(d._result=!1,d._isFinished=!0,d._resolve(!1)),i}let o=[],u=new Array,p=e.querySelectorAll("*"),m=0,_=p.length;for(;m<_;){let d=m++,x=p.item(d);x instanceof HTMLElement&&u.push(x)}let f=u,c=0;for(;c<f.length;){let d=f[c];++c;let x=0,E=new Array,S=0,q=d.attributes;for(;S<q.length;){let V=q[S];++S,E.push({name:V.name,value:V.value})}let U=E;for(;x<U.length;){let V=U[x];++x,V.name=="data-froomle-reco"&&o.push(d)}}let y=[],b=0;for(;b<o.length;){let d=o[b];++b,d.getAttribute("data-froomle-request-id")==null&&(d.getAttribute("data-froomle-id")==null||d.getAttribute("data-froomle-id")=="")&&y.push(d)}if(y.length<1){let d=null,x=new Promise(function(S,q){d=S}),E=x;return E._resolve=d,E._isFinished=!1,E._result=null,x}let h=[],k=[],g="",w=[],C=[],A=[],L=function(d,x){if(d.length!=x.length)return!1;let E=new Array(d.length),S=0,q=d.length;for(;S<q;){let P=S++;E[P]=JSON.stringify(d[P])}let U=E,V=new Array(x.length),J=0,W=x.length;for(;J<W;){let P=J++;V[P]=JSON.stringify(x[P])}let K=V;U.sort(I.compare),K.sort(I.compare);let G=0,N=U.length;for(;G<N;){let P=G++;if(U[P]!=K[P])return!1}return!0},$=function(){let d={list_name:g,list_size:C.length,limit:C.length},x=0;for(;x<w.length;){let S=w[x];if(++x,S!=null&&S.key!=null&&S.key!=""){let q=S.value;q instanceof Array||(q=[q]),I.setProperty(d,S.key,q)}}let E=0;for(;E<A.length;){let S=A[E];++E,I.setProperty(d,S.key,S.value)}h.push(d),k.push(C)},T=function(d,x,E,S){g=d,w=x,C=[S],A=E},O=0;for(;O<y.length;){let d=y[O];++O;let x=function(V){let J=[],W=0,K=new Array,G=0,N=V.attributes;for(;G<N.length;){let H=N[G];++G,K.push({name:H.name,value:H.value})}let P=K;for(;W<P.length;){let H=P[W];if(++W,H.name.startsWith("data-froomle-reco-filter-")){let X=j.substr(H.name,25,null),ie=H.value;J.push({key:X,value:ie})}}return J},E=function(V){let J=[],W=0,K=new Array,G=0,N=V.attributes;for(;G<N.length;){let H=N[G];++G,K.push({name:H.name,value:H.value})}let P=K;for(;W<P.length;){let H=P[W];if(++W,H.name.startsWith("data-froomle-variable-")){let X=j.substr(H.name,22,null),ie=H.value;J.push({key:X,value:ie})}}return J},S=d.getAttribute("data-froomle-reco"),q=x(d),U=E(d);if(g==""){T(S,q,U,d);continue}else if(S==g&&L(w,q)&&L(A,U)){C.push(d);continue}else{$(),T(S,q,U,d);continue}}g!=""&&$();let B;if(l.getPageVisit()==null){let d=i;return d._isFinished||(d._result=!1,d._isFinished=!0,d._resolve(!1)),i}else if(l.getEnvironment()==null){let d=i;return d._isFinished||(d._result=!1,d._isFinished=!0,d._resolve(!1)),i}else try{B=l.getRawRecommendations(h)}catch{let x=i;return x._isFinished||(x._result=!1,x._isFinished=!0,x._resolve(!1)),i}return B.then(function(d){let x=d.lists(),E=x.length,S=0,q=E;for(;S<q;){let V=S++,J=x[V],W=J.items.length!=k[V].length,K=J.items.length,G=0,N=K;for(;G<N;){let P=G++,H=J.items[P],X=k[V][P];re._fillParameters(X,H,d.request_id)}}let U=i;U._isFinished||(U._result=!0,U._isFinished=!0,U._resolve(!0))}),i}static getAttrByPath(e,t,r){r==null&&(r="fgh");try{t=new we("\\\\[(\\\\w+)\\\\]","g").map(t,function(m){return"."+m.matched(1)}),t=oe.replace(t,"[","."),t=oe.replace(t,"]",""),j.cca(t,0)==46&&(t=j.substr(t,1,null));let i=t.split("."),o=e.get(i[0]),u=1,p=i.length;for(;u<p;){let m=u++;if(o==null)return null;o instanceof Array&&R.parseInt(i[m])!=null?o=o[R.parseInt(i[m])]:o=I.field(o,i[m])}return o}catch{return r}}static _buildHistories(e){let t=[],r=new Array,n=e.querySelectorAll("[data-froomle-id]"),i=0,o=n.length;for(;i<o;){let m=i++,_=n.item(m);_ instanceof HTMLElement&&r.push(_)}let u=r,p=0;for(;p<u.length;){let m=u[p];++p,t.push(m.getAttribute("data-froomle-id"))}l.addHistories(t)}static fillParam(e,t,r,n,i){i==null&&(i="");try{let o=re.getAttrByPath(n,r,i);if(t=="inner"){e.textContent=o;let u=e.textContent}else e.setAttribute(t,o)}catch{}}static _fillParameters(e,t,r){e.setAttribute("data-froomle-id",t.get("item_id")),e.setAttribute("data-froomle-request-id",r);let n=t.get("item_type");n!=null&&R.string(n)!=""&&e.setAttribute("data-froomle-item-type",R.string(n)),t.UserGroup!=null&&t.UserGroup!=""&&e.setAttribute("data-froomle-user-group",t.UserGroup);let i=new Array,o=e.querySelectorAll("*"),u=0,p=o.length;for(;u<p;){let f=u++,c=o.item(f);c instanceof HTMLElement&&i.push(c)}let m=i,_=0;for(;_<m.length;){let f=m[_];++_;let c=0,y=new Array,b=0,h=f.attributes;for(;b<h.length;){let g=h[b];++b,y.push({name:g.name,value:g.value})}let k=y;for(;c<k.length;){let g=k[c];if(++c,g.name.startsWith("data-froomle-param-")){let w=oe.replace(g.name,"data-froomle-param-",""),C=g.value;re.fillParam(f,w,C,t)}}}}static _orderElements(e){let t=function(g,w,C){let A=[],L=new Array,$=0,T=g.childNodes;for(;$<T.length;){let E=T[$];++$,L.push(E)}let O=L,B=0;for(;B<O.length;){let E=O[B];++B;try{if(E.getAttribute("data-froomle-ordervalue")!=null){A.push(E);let q=e.createElement("span");q.setAttribute("data-froomle-tmp-node","tmp"),g.replaceChild(q,E)}}catch{}}let d=[],x=0;for(;x<A.length;){let E=A[x];++x,d.push(E.getAttribute("data-froomle-ordervalue"))}return{el:g,key:w,values:d,orderChildren:A,list_name:C}},r=null,n=new Promise(function(g,w){r=g}),i=n;i._resolve=r,i._isFinished=!1,i._result=null;let o=n,u=e.getRoot(),p=new Array,m=u.querySelectorAll("*"),_=0,f=m.length;for(;_<f;){let g=_++,w=m.item(g);w instanceof HTMLElement&&p.push(w)}let c=p,y=[],b=0;for(;b<c.length;){let g=c[b];++b;let w=0,C=new Array,A=0,L=g.attributes;for(;A<L.length;){let T=L[A];++A,C.push({name:T.name,value:T.value})}let $=C;for(;w<$.length;){let T=$[w];++w,T.name.startsWith("data-froomle-order-")&&y.push(t(g,T.name.substring(19),T.value))}}if(y.length<1){let g=o;return g._isFinished||(g._result=!1,g._isFinished=!0,g._resolve(!1)),o}let h=[],k=0;for(;k<y.length;){let g=y[k];++k;let w={list_name:g.list_name,limit:g.values.length,list_size:g.values.length},C={};I.setProperty(C,g.key,g.values),I.setProperty(w,"order",C),h.push(w)}if(l.getPageVisit()==null){let g=o;return g._isFinished||(g._result=!1,g._isFinished=!0,g._resolve(!1)),o}else if(l.getEnvironment()==null){let g=o;return g._isFinished||(g._result=!1,g._isFinished=!0,g._resolve(!1)),o}try{l.getRawRecommendations(h).then(function(g){let w=g.lists(),C=w.length,A=0,L=C;for(;A<L;){let T=A++,O=w[T],B=y[T];B.el.setAttribute("data-froomle-request-id",g.request_id);let d=new Array,x=0,E=O.items;for(;x<E.length;){let N=E[x];++x;let P=N.get(B.key),H=N.get(B.key),X=B.values.length,ie=0,de=X;for(;ie<de;){let le=ie++,he=B.values[le];if(P==he){let Mt=B.orderChildren.length,Rt=B.orderChildren[le];d.push(Rt),B.orderChildren.splice(le,1),B.values.splice(le,1);break}}}let S=d.length,q=B.el,U=new Array,V=0,J=q.childNodes;for(;V<J.length;){let N=J[V];++V,U.push(N)}let W=U.length,K=0,G=W;for(;K<G;){let N=K++,P=B.el,H=new Array,X=0,ie=P.childNodes;for(;X<ie.length;){let he=ie[X];++X,H.push(he)}let de=H[N],le;if(de instanceof HTMLElement?le=de.hasAttribute("data-froomle-tmp-node"):le=!1,le){B.el.replaceChild(d[0],de),d.splice(0,1);let he=d.length;if(d.length==0)break}}}let $=o;$._isFinished||($._result=!0,$._isFinished=!0,$._resolve(!0))})}catch{let w=o;w._isFinished||(w._result=!1,w._isFinished=!0,w._resolve(!1))}return o}static domInit(e){let t=null,r=new Promise(function(o,u){t=o}),n=r;n._resolve=t,n._isFinished=!1,n._result=null;let i=r;return re._orderElements(e).then(function(o){re._buildHistories(e.getRoot()),re._fillRecoTargets(e.getRoot()).then(function(u){let p=i;p._isFinished||(p._result=!0,p._isFinished=!0,p._resolve(!0))})}),i}static fillElementRecos(e){re._fillRecoTargets(e)}static runFromHtml(e){if(e=="")return"";let t;try{let n=new DOMParser().parseFromString(e,"text/html"),i=new xe;i.root=n.documentElement,t=i}catch{return e}return re.domInit(t),t.toString()}static get __name__(){return"internal.domHandler.DomDomDom"}get __class__(){return re}};var yi=s.$global,F=s.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="'+l.getEnvironment()+'" ',t=l.getPageVisit();t!=null&&(e+='data-froomle-page-visit="'+t+'" ');let r=l.getContextItem();if(r!=null){e+='data-froomle-context-item="'+r+'" ';let m=l.getContextItemType();(m==null||m=="")&&(m="article"),e+='data-froomle-context-item-type="'+m+'" '}let n=l.getDeviceId();n!=null&&(e+='data-froomle-device-id="'+n+'" ');let i=l.getUserId();i!=null&&(e+='data-froomle-user-id="'+i+'" ');let o=l.getConsent();o>0&&(e+='data-froomle-consent="'+o+'" ');let u=l.getRequestDomain();u!=null&&(e+='data-froomle-request-domain="'+u+'" ');let p=l.getChannel();return p!=null&&(e+='data-froomle-channel="'+p+'" '),e+="><\/script>",e}static setEnvironment(e){l.setEnvironment(e),ne._env_set=!0,ne.register()}static setDeviceId(e){l.setDeviceId(e)}static setUserId(e){l.setUserId(e)}static setConsent(e){l.setConsent(e)}static setPageView(e){l.setPageView(e)}static setPageVisit(e){l.setPageVisit(e),ne._page_visit_set=!0,ne.register()}static setChannel(e){l.setChannel(e)}static setRequestDomain(e){l.setRequestDomain(e)}static setSafeRequest(e){l.setSafeRequest(e)}static setContextItem(e){l.setContextItem(e)}static setContextItemType(e){l.setContextItemType(e)}static setCustomVariable(e,t){l.setOthers(e,t)}static getUserId(){return l.getUserId()}static getDeviceId(){return l.getDeviceId()}static getEnvironment(){return l.getEnvironment()}static getSafeRequest(){return l.getSafeRequest()}static getPageView(){return l.getPageView()}static getPageVisit(){return l.getPageVisit()}static getConsent(){return l.getConsent()}static getRecommendations(e){return l.getRawRecommendations(e)}static getChannel(){return l.getChannel()}static getVersion(){return"0.0.11"}static runFromHtml(e){return ce.runFromHtml(e)}static get __name__(){return"FroomleSdk"}get __class__(){return ne}};F._env_set=!1;F._page_visit_set=!1;F.registered=!1;var wi=s.$global;function mt(){return(l.getSafeRequest()?"https://":"http://")+l.getRequestDomain()+"/api/"+l.getEnvironment()+"/events"}function je(){return l.getConsent()>=1}function _t(){return l.getConsent()<2?"no-consent":l.getDeviceId()}function gt(){let a=l.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 Vt(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 pt(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 ft(a,e,t="impression",r){if(!je())return;let n=gt()||"www-desktop",i={event_type:t,page_type:l.getPageVisit(),action_item:a,action_item_type:e,channel:n,device_id:_t()},o=pt();if(o&&(i.user_group=o),r)for(let u in r)i[u]=r[u];try{fetch(mt(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({events:[i]})})}catch{}}var z=class z{static generateBody(){let e=[];for(let t of z.impressionQueue){let r=Bt(t);if(!r)continue;let n=Vt(t)||"article",i=gt()||"www-desktop",o={event_type:"impression",page_type:l.getPageVisit(),action_item:r,action_item_type:n,channel:i,device_id:_t()},u=pt(t);u&&(o.user_group=u),l.getConsent()>=2&&l.getUserId()&&(o.user_id=l.getUserId());let p=t.getAttribute("data-froomle-reco"),m=t.getAttribute("data-froomle-request-id");p&&m&&(o.list_name=p,o.request_id=m),e.push(o)}return z.impressionQueue=[],JSON.stringify({events:e})}static sendImpressions(){console.log(z.impressionQueue),z.impressionQueue.length!==0&&je()&&fetch(mt(),{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(je()){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 Z=z;typeof document!="undefined"&&(Z.observer=new IntersectionObserver((a,e)=>{a.forEach(t=>{t.isIntersecting&&(Z.impressionQueue.push(t.target),Z.observer.unobserve(t.target))}),Z.impressionQueue.length>0&&Z.sendImpressions()}));var Ie=class a{static canTrackEvents(){return l.getConsent()>=1}static readDeviceId(){return l.getConsent()<2?"no-consent":l.getDeviceId()}static readChannel(){let e=l.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(l.getSafeRequest()?"https://":"http://")+l.getRequestDomain()+"/api/"+l.getEnvironment()+"/events"}static generateBody(){let e=a.readChannel()||"www-desktop",t={event_type:"page_visit",page_type:l.getPageVisit(),channel:e,device_id:a.readDeviceId()},r=a.readUserGroup();return r&&(t.user_group=r),l.getConsent()>=2&&l.getUserId()&&(t.user_id=l.getUserId()),JSON.stringify({events:[t]})}static sendPageVisit(){l.getPageVisit()&&(l.getContextItem()||a.canTrackEvents()&&fetch(a.uri(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:a.generateBody()}))}};var Re=class a{static canTrackEvents(){return l.getConsent()>=1}static readDeviceId(){return l.getConsent()<2?"no-consent":l.getDeviceId()}static readChannel(){let e=l.getChannel();if(e)return e}static readActionItemType(){let e=l.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(l.getSafeRequest()?"https://":"http://")+l.getRequestDomain()+"/api/"+l.getEnvironment()+"/events"}static generateBody(){let e=a.readActionItemType()||"article",t=a.readChannel()||"www-desktop",r={event_type:"detail_pageview",page_type:l.getPageVisit(),action_item:l.getContextItem(),action_item_type:e,channel:t,device_id:a.readDeviceId()},n=a.readUserGroup();return n&&(r.user_group=n),l.getConsent()>=2&&l.getUserId()&&(r.user_id=l.getUserId()),JSON.stringify({events:[r]})}static sendPageView(){l.getContextItem()&&l.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 l.getConsent()>=1}static readDeviceId(){return l.getConsent()<2?"no-consent":l.getDeviceId()}static readChannel(){let e=l.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 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(){ee.listenerRegistered||(ee.listenerRegistered=!0,document.addEventListener("click",e=>{if(!ee.canTrackEvents())return;let t=e instanceof MouseEvent?e:null,r=e.target,n=r instanceof Element?r:r instanceof Node?r.parentElement:null;if(!n)return;let i=n.closest("a");if(!i)return;let o=i.closest("[data-froomle-id]");if(!o)return;let u=ee.readActionItem(o);if(!u)return;let p=ee.readActionItemType(o)||"article",m=ee.readChannel()||"www-desktop",_=i instanceof HTMLAnchorElement?i.href:null,f=!!_&&e.cancelable&&!e.defaultPrevented&&!i.hasAttribute("download")&&(!i.target||i.target==="_self")&&!!t&&t.button===0&&!t.metaKey&&!t.ctrlKey&&!t.shiftKey&&!t.altKey;f&&e.preventDefault();let c={event_type:"click_on_recommendation",page_type:l.getPageVisit(),action_item:u,action_item_type:p,channel:m,device_id:ee.readDeviceId()},y=ee.readUserGroup(o);y&&(c.user_group=y);let b=o.getAttribute("data-froomle-reco"),h=o.getAttribute("data-froomle-request-id");b&&h&&(c.list_name=b,c.request_id=h),l.getConsent()>=2&&l.getUserId()&&(c.user_id=l.getUserId());let g=(l.getSafeRequest()?"https://":"http://")+l.getRequestDomain()+"/api/"+l.getEnvironment()+"/events",w=JSON.stringify({events:[c]}),C=new Blob([w],{type:"application/json"}),A=()=>fetch(g,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:w,keepalive:!0});if(f&&_){let $=!1,T=()=>{$||($=!0,window.location.assign(_))},O=window.setTimeout(T,200);A().catch(()=>{typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function"&&navigator.sendBeacon(g,C)}).finally(()=>{window.clearTimeout(O),T()});return}typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function"&&navigator.sendBeacon(g,C)||A().catch(()=>{})},!0))}};ee.listenerRegistered=!1;var Ee=ee;var dt=xe,ht=F.setEnvironment,yt=F.setPageVisit,bt=F.setRequestDomain,vt=F.setSafeRequest,wt=typeof F.setChannel=="function"?F.setChannel:l.setChannel,xt=F.setContextItem,It=F.setContextItemType,Ht=F.setCustomVariable,Lt=l.addHistories,Ut=F.setPageView;function Me(a){F.setUserId(a),document.cookie=`froomle_user_id=${a}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Je(a){F.setDeviceId(a),document.cookie=`froomle_device_id=${a}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Ge(a){F.setConsent(a),document.cookie=`froomle_consent=${a}; max-age=${3600*24*365*20}; path=/; samesite=lax`,document.cookie=`froomle_device_id=${F.getDeviceId()}; max-age=${3600*24*365*20}; path=/; samesite=lax`}typeof window!="undefined"&&(window.setFroomleConsent=Ge);function Ne(a){let e=document.cookie.split("; ");for(let t of e){let[r,n]=t.split("=");if(r===a)return decodeURIComponent(n)}return null}var jt=F.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"),n=a.getAttribute("data-froomle-env"),i=a.getAttribute("data-froomle-page-visit"),o=a.getAttribute("data-froomle-request-domain"),u=a.getAttribute("data-froomle-context-item"),p=a.getAttribute("data-froomle-context-item-type"),m=a.getAttribute("data-froomle-safe-request"),_=a.getAttribute("data-froomle-channel");if(ht(n),i&&yt(i),u&&(xt(u),It(p||"article")),t)Je(t);else{let f=Ne("froomle_device_id");f&&Je(f)}if(r)Me(r);else{let f=Ne("froomle_user_id");f&&Me(f)}o&&bt(o),m&&vt(m!=="false"),_&&wt(_)}let e=Ne("froomle_consent");e&&Ge(e),document.addEventListener("DOMContentLoaded",()=>{console.log("froomle loads dom"),ce.domInit(dt.fromDocument(document)).then(r=>{Ee.registerClickables(),Z.processDocument(),Ie.sendPageVisit(),Re.sendPageView()});let t=new MutationObserver(r=>{for(let n of r)if(n.type==="childList"&&Z.processElement(n.target),n.type==="attributes")if(n.attributeName==="data-froomle-reco"){let i=n.target.getAttribute("data-froomle-request-id");(!i||i==="")&&ce.fillElementRecos(n.target)}else n.attributeName==="data-froomle-request-id"&&ce.fillElementRecos(n.target)})})}return At(Nt);})();
|
package/dist/index.d.ts
CHANGED
|
@@ -71,6 +71,7 @@ declare class RecoBackendV2 {
|
|
|
71
71
|
static setContextItem(id: string): void
|
|
72
72
|
static setContextItemType(type: string): void
|
|
73
73
|
static getRequestDomain(): string
|
|
74
|
+
static getSafeRequest(): boolean
|
|
74
75
|
static getEnvironment(): string
|
|
75
76
|
static getPageVisit(): string
|
|
76
77
|
static getUserId(): string
|
|
@@ -86,7 +87,6 @@ declare class RecoBackendV2 {
|
|
|
86
87
|
declare class FroomleSdk {
|
|
87
88
|
protected static _env_set: boolean
|
|
88
89
|
protected static _page_visit_set: boolean
|
|
89
|
-
protected static _page_view_set: boolean
|
|
90
90
|
protected static registered: boolean
|
|
91
91
|
|
|
92
92
|
/**
|
|
@@ -104,6 +104,7 @@ declare class FroomleSdk {
|
|
|
104
104
|
static setConsent(consent: number): void
|
|
105
105
|
static setPageView(page: string): void
|
|
106
106
|
static setPageVisit(page: string): void
|
|
107
|
+
static setChannel(channel: string): void
|
|
107
108
|
static setRequestDomain(domain: string): void
|
|
108
109
|
static setSafeRequest(safe: boolean): void
|
|
109
110
|
static setContextItem(id: string): void
|
|
@@ -112,6 +113,7 @@ declare class FroomleSdk {
|
|
|
112
113
|
static getUserId(): string
|
|
113
114
|
static getDeviceId(): string
|
|
114
115
|
static getEnvironment(): string
|
|
116
|
+
static getSafeRequest(): boolean
|
|
115
117
|
static getPageView(): string
|
|
116
118
|
static getPageVisit(): string
|
|
117
119
|
static getConsent(): number
|
|
@@ -137,6 +139,7 @@ declare function setUserId(userId: any): void;
|
|
|
137
139
|
declare function setDeviceId(deviceId: any): void;
|
|
138
140
|
declare const setRequestDomain: typeof FroomleSdk.setRequestDomain;
|
|
139
141
|
declare const setSafeRequest: typeof FroomleSdk.setSafeRequest;
|
|
142
|
+
declare const setChannel: typeof FroomleSdk.setChannel;
|
|
140
143
|
declare const setContextItem: typeof FroomleSdk.setContextItem;
|
|
141
144
|
declare const setContextItemType: typeof FroomleSdk.setContextItemType;
|
|
142
145
|
declare const setCustomVariable: typeof FroomleSdk.setCustomVariable;
|
|
@@ -148,4 +151,4 @@ declare const addHistories: typeof RecoBackendV2.addHistories;
|
|
|
148
151
|
declare function fulfillRecommendations(): Promise<void>;
|
|
149
152
|
declare function proxyReco(req: RecoRequest): RecommendationItem & PromiseLike<RecommendationItem>;
|
|
150
153
|
|
|
151
|
-
export { RecommendationItem, Recommendations, addHistories, fulfillRecommendations, getRecommendations, proxyReco, sendEvent, setConsent, setContextItem, setContextItemType, setCustomVariable, setDeviceId, setEnvironment, setPageView, setPageVisit, setRequestDomain, setSafeRequest, setUserId };
|
|
154
|
+
export { RecommendationItem, Recommendations, addHistories, fulfillRecommendations, getRecommendations, proxyReco, sendEvent, setChannel, setConsent, setContextItem, setContextItemType, setCustomVariable, setDeviceId, setEnvironment, setPageView, 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,y as t}from"./chunk-E3HRUS5K.js";export{c as RecommendationItem,b as RecommendationList,a as Recommendations,m as addHistories,s as fulfillRecommendations,r as getRecommendations,t as proxyReco,d as sendEvent,i as setChannel,q as setConsent,j as setContextItem,k as setContextItemType,l as setCustomVariable,p as setDeviceId,e as setEnvironment,n as setPageView,f as setPageVisit,g as setRequestDomain,h as setSafeRequest,o 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,x as C,y as P}from"./chunk-E3HRUS5K.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};
|