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