@froomle/frontend-sdk 0.0.18 → 0.0.20

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@froomle/frontend-sdk",
3
- "version": "0.0.18",
3
+ "version": "0.0.20",
4
4
  "description": "Froomle frontend SDK",
5
5
  "license": "Apache-2.0",
6
6
  "type": "module",
@@ -22,8 +22,8 @@
22
22
  }
23
23
  },
24
24
  "types": "dist/index.d.ts",
25
- "unpkg": "dist/index.global.js",
26
- "jsdelivr": "dist/index.global.js",
25
+ "unpkg": "dist/froomle.global.js",
26
+ "jsdelivr": "dist/froomle.global.js",
27
27
  "sideEffects": false,
28
28
  "files": [
29
29
  "dist",
@@ -33,20 +33,20 @@
33
33
  "scripts": {
34
34
  "prepublishOnly": "npm run build",
35
35
  "type-check": "tsc --noEmit",
36
- "build": "tsup"
36
+ "build": "tsdown --config tsdown.config.ts && tsdown --config tsdown.cjs.config.ts && tsdown --config tsdown.global.config.ts && shx mv dist/froomle.global.iife.js dist/froomle.global.js"
37
37
  },
38
38
  "engines": {
39
39
  "node": ">=16.0.0"
40
40
  },
41
41
  "devDependencies": {
42
42
  "@playwright/test": "^1.57.0",
43
+ "@types/react": "^19.2.10",
43
44
  "shx": "^0.4.0",
44
- "tsup": "^8.5.0",
45
+ "tsdown": "^0.15.5",
45
46
  "typescript": "^5.9.3"
46
47
  },
47
48
  "peerDependencies": {
48
- "react": "^18.0.0 || ^19.0.0",
49
- "@types/react": "^19.2.10"
49
+ "react": "^18.0.0 || ^19.0.0"
50
50
  },
51
51
  "peerDependenciesMeta": {
52
52
  "react": {
@@ -1,49 +0,0 @@
1
- declare interface Recommendations {
2
-
3
- /**
4
- request_id: String
5
- */
6
- request_id: string
7
-
8
- /**
9
- user_group: String
10
- */
11
- user_group: string
12
-
13
- /**
14
- user_id: String
15
- */
16
- user_id: string
17
-
18
- /**
19
- device_id: String
20
- */
21
- device_id: string
22
-
23
- /**
24
- lists(): Array<RecommendationList>
25
- */
26
- lists(): RecommendationList[]
27
- items(): RecommendationItem[]
28
- }
29
-
30
- declare interface RecommendationList {
31
- limit: number
32
- list_key: string
33
- list_name: string
34
- list_size: number
35
- items: RecommendationItem[]
36
- }
37
-
38
- declare interface RecommendationItem {
39
-
40
- /**
41
- Access dynamic keys
42
- */
43
- get(key: string): any
44
- Id: string
45
- RequestId: string
46
- UserGroup: string
47
- }
48
-
49
- export type { Recommendations as R, RecommendationItem as a, RecommendationList as b };
@@ -1,5 +0,0 @@
1
- var l=class u{static global(e){return u.globals[e]?u.globals[e]:u.globals[e]={}}static createStatic(e,t,r){let i=null;Object.defineProperty(e,t,{enumerable:!0,get:function(){return r!=null&&(i=r(),r=null),i},set:function(n){r!=null&&(i=r(),r=null),i=n}})}static iterator(e){if(Array.isArray(e)){let t=e;return function(){return u.mkIter(t)}}else return typeof e.iterator=="function"?e.iterator.bind(e):e.iterator}static getIterator(e){return Array.isArray(e)?u.mkIter(e):e.iterator()}static mkIter(e){return new Ae(e)}static extend(e){function t(){this[u.new].apply(this,arguments)}return Object.setPrototypeOf(t.prototype,e.prototype),t}static inherits(e,t){t==null&&(t=!1);function r(){t&&e&&r[u.init]&&r[u.init](),this[u.new].apply(this,arguments)}return t?r[u.init]=()=>{let i=e();i[u.init]&&i[u.init](),Object.setPrototypeOf(r.prototype,i.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}};l.$global=typeof window!="undefined"?window:typeof global!="undefined"?global:typeof self!="undefined"?self:void 0;l.globals={};l.new=Symbol();l.init=Symbol();l.fid=0;var Ae=l.global("$hxClasses")["genes._Register.ArrayIterator"]=class We extends l.inherits(){[l.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 We}};Ae.prototype.array=null;Ae.prototype.current=null;var zt=l.$global,qe=l.global("$hxClasses")["haxe.ValueException"]=class Ke extends l.inherits(()=>A,!0){[l.new](e,t,r){super[l.new](String(e),t,r),this.value=e}unwrap(){return this.value}static get __name__(){return"haxe.ValueException"}static get __super__(){return A}get __class__(){return Ke}};qe.prototype.value=null;var Xt=l.$global,A=l.global("$hxClasses")["haxe.Exception"]=class be extends l.inherits(()=>Error,!0){[l.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 be?e:e instanceof Error?new be(e.message,null,e):new qe(e,null,e)}static thrown(e){return e instanceof be?e.get_native():e instanceof Error?e:new qe(e)}static get __name__(){return"haxe.Exception"}static get __super__(){return Error}get __class__(){return be}};A.prototype.native=null;A.prototype.__skipStack=null;A.prototype.__nativeException=null;A.prototype.__previousException=null;var tr=l.$global,I=l.global("$hxClasses").Std=class Qe{static string(e){return ve.__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 Qe}};Object.defineProperty(String.prototype,"__class__",{value:String,enumerable:!1,writable:!0}),String.__name__=!0,Array.__name__=!0,Et={},Ct={},qt=Number,kt=Boolean,St={},Dt={};var Et,Ct,qt,kt,St,Dt;var lr=l.$global,ve=l.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 c=l.global("$hxEnums")[e.__enum__].__constructs__[e._hx_index],f=c._hx_name;return c.__params__?(t=t+" ",f+"("+(function(_){var g;let y=[];{let p=0,d=c.__params__;for(;p<d.length;){let R=d[p];p=p+1,y.push(J.__string_rec(e[R],t))}}return g=y,g})(this).join(",")+")"):f}if(e instanceof Array){let m="[";t+=" ";let c=0,f=e.length;for(;c<f;){let _=c++;m+=(_>0?",":"")+J.__string_rec(e[_],t)}return m+="]",m}let i;try{i=e.toString}catch{return"???"}if(i!=null&&i!=Object.toString&&typeof i=="function"){let m=e.toString();if(m!="[object Object]")return m}let n=`{
2
- `;t+=" ";let s=e.hasOwnProperty!=null,o=null;for(o in e)s&&!e.hasOwnProperty(o)||o=="prototype"||o=="__class__"||o=="__super__"||o=="__interfaces__"||o=="__properties__"||(n.length!=2&&(n+=`,
3
- `),n+=t+o+" : "+J.__string_rec(e[o],t));return t=t.substring(1),n+=`
4
- `+t+"}",n;break;case"string":return e;default:return String(e)}}static __interfLoop(e,t){if(e==null)return!1;if(e==t)return!0;let r=e.__interfaces__;if(r!=null&&(e.__super__==null||e.__super__.__interfaces__!=r)){let i=0,n=r.length;for(;i<n;){let s=i++,o=r[s];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?l.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 A.thrown("Cannot cast "+I.string(e)+" to "+I.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 l.$global[e]}static get __name__(){return"js.Boot"}get __class__(){return J}};ve.__toStr={}.toString;var cr=l.$global,Fe=l.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 A.thrown("Unable to create XMLHttpRequest object.")}static get __name__(){return"js.Browser"}get __class__(){return Xe}};var gr=l.$global,ee=l.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"]})};ee.__constructs__=[ee.Blocked,ee.Overflow,ee.OutsideBounds,ee.Custom];ee.__empty_constructs__=[ee.Blocked,ee.Overflow,ee.OutsideBounds];var pr=l.$global,re=l.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"}};re.__constructs__=[re.UTF8,re.RawNative];re.__empty_constructs__=[re.UTF8,re.RawNative];var xr=l.$global,fe=l.global("$hxClasses")["haxe.io.Bytes"]=class $e extends l.inherits(){[l.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 A.thrown(ee.OutsideBounds);r==null&&(r=re.UTF8);let i="",n=this.b,s=e,o=e+t;switch(r._hx_index){case 0:let m=e>0;for(;s<o;){let c=n[s++];if(c<128){if(c==0)break;i+=String.fromCodePoint(c)}else if(c<224){let f=(c&63)<<6|n[s++]&127;i+=String.fromCodePoint(f)}else if(c<240){let f=n[s++],_=(c&31)<<12|(f&127)<<6|n[s++]&127;i+=String.fromCodePoint(_)}else{let f=n[s++],_=n[s++],g=(c&15)<<18|(f&127)<<12|(_&127)<<6|n[s++]&127;i+=String.fromCodePoint(g)}}break;case 1:for(;s<o;){let c=n[s++]|n[s++]<<8;i+=String.fromCodePoint(c)}break}return i}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}};fe.prototype.length=null;fe.prototype.b=null;var Cr=l.$global,te=l.global("$hxClasses")["haxe.http.HttpBase"]=class Ye extends l.inherits(){[l.new](e){this.url=e,this.headers=[],this.params=[],this.emptyOnData=l.bind(this,this.onData)}get responseData(){return this.get_responseData()}setHeader(e,t){let r=0,i=this.headers.length;for(;r<i;){let n=r++;if(this.headers[n].name==e){this.headers[n]={name:e,value:t};return}}this.headers.push({name:e,value:t})}setPostData(e){this.postData=e,this.postBytes=null}onData(e){}onBytes(e){}onError(e){}onStatus(e){}hasOnData(){return l.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,re.UTF8)),this.responseAsString}static get __name__(){return"haxe.http.HttpBase"}get __class__(){return Ye}};te.prototype.url=null;te.prototype.responseBytes=null;te.prototype.responseAsString=null;te.prototype.postData=null;te.prototype.postBytes=null;te.prototype.headers=null;te.prototype.params=null;te.prototype.emptyOnData=null;var Sr=l.$global,ke=l.global("$hxClasses")["haxe.iterators.MapKeyValueIterator"]=class Ze extends l.inherits(){[l.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 Ze}};ke.prototype.map=null;ke.prototype.keys=null;var Tr=l.$global,Oe=function(){};Oe.__isInterface__=!0;var Or=l.$global,Se=l.global("$hxClasses")["genes.util.EsMap"]=class we extends l.inherits(){[l.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 we.adaptIterator(this.inst.keys())}iterator(){return we.adaptIterator(this.inst.values())}toString(){let e=[],t=we.adaptIterator(this.inst.keys());for(;t.hasNext();){let r=t.next();e.push(""+I.string(r)+" => "+I.string(this.inst.get(r)))}return"{"+e.join(", ")+"}"}clear(){this.inst.clear()}static adaptIterator(e){let t,r,i=function(){let n=e.next();t=n.value,r=n.done};return{hasNext:function(){return r==null&&i(),!r},next:function(){r==null&&i();let n=t;return i(),n}}}static get __name__(){return"genes.util.EsMap"}get __class__(){return we}};Se.prototype.inst=null;var Nr=l.$global,et=l.global("$hxClasses")["haxe.ds.StringMap"]=class Be extends l.inherits(Se){[l.new](){super[l.new]()}copy(){let e=new Be;return e.inst=new Map(this.inst),e}keyValueIterator(){return new ke(this)}static get __name__(){return"haxe.ds.StringMap"}static get __interfaces__(){return[Oe]}static get __super__(){return Se}get __class__(){return Be}};var Gr=l.$global,V=l.global("$hxClasses").HxOverrides=class tt{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 tt}};typeof performance!="undefined"&&typeof performance.now=="function"&&(V.now=performance.now.bind(performance));var Kr=l.$global,ue=l.global("$hxClasses").StringTools=class De{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&&De.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&&De.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 De}};var Yr=l.$global,rt=l.global("$hxClasses").Lambda=class nt{static exists(e,t){let r=l.getIterator(e);for(;r.hasNext();){let i=r.next();if(t(i))return!0}return!1}static get __name__(){return"Lambda"}get __class__(){return nt}};var sn=l.$global,xe=l.global("$hxClasses").EReg=class it extends l.inherits(){[l.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 A.thrown("EReg::matched")}matchedPos(){if(this.r.m==null)throw A.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 i=this.r.m!=null;return i&&(this.r.s=e),i}else{let i=this.match(r<0?V.substr(e,t,null):V.substr(e,t,r));return i&&(this.r.s=e,this.r.m.index+=t),i}}map(e,t){let r=0,i="";do{if(r>=e.length)break;if(!this.matchSub(e,r)){i+=I.string(V.substr(e,r,null));break}let n=this.matchedPos();i+=I.string(V.substr(e,r,n.pos-r)),i+=I.string(t(this)),n.len==0?(i+=I.string(V.substr(e,n.pos,1)),r=n.pos+1):r=n.pos+n.len}while(this.r.global);return!this.r.global&&r>0&&r<e.length&&(i+=I.string(V.substr(e,r,null))),i}static get __name__(){return"EReg"}get __class__(){return it}};xe.prototype.r=null;var hn=l.$global,ce=l.global("$hxClasses")["haxe.http.HttpJs"]=class st extends l.inherits(te){[l.new](e){this.async=!0,this.withCredentials=!1,super[l.new](e)}request(e){this.responseAsString=null,this.responseBytes=null,this.responseHeaders=null;let t=this.req=Fe.createXMLHttpRequest(),r=this,i=function(f){if(t.readyState!=4)return;let _;try{_=t.status}catch{_=null}if(_==0&&Fe.get_supported()&&l.$global.location!=null){let g=l.$global.location.protocol.toLowerCase();new xe("^(?:about|app|app-storage|.+-extension|file|res|widget):$","").match(g)&&(_=t.response!=null?200:404)}if(_==null&&(_=null),_!=null&&r.onStatus(_),_!=null&&_>=200&&_<400){r.req=null;let g=t.getAllResponseHeaders().split(`\r
5
- `),y=[],p=0,d=g;for(;p<d.length;){let b=d[p];++p,b!=""&&y.push(b)}g=y;let R=new et;r.responseHeaders=R;let C=0;for(;C<g.length;){let b=g[C];++C;let x=b.split(": "),P=x.shift(),S=x.length==1?x[0]:x.join(": ");S=ue.ltrim(ue.rtrim(S)),r.responseHeaders.inst.set(P,S)}r.success(fe.ofData(t.response))}else if(_==null||_==0&&t.response==null)r.req=null,r.onError("Failed to connect or resolve host");else if(_==null){r.req=null;let g=t.response!=null?fe.ofData(t.response):null;r.responseBytes=g,r.onError("Http Error #"+t.status)}else switch(_){case 12007:r.req=null,r.onError("Unknown host");break;case 12029:r.req=null,r.onError("Failed to connect to host");break;default:r.req=null;let g=t.response!=null?fe.ofData(t.response):null;r.responseBytes=g,r.onError("Http Error #"+t.status)}};this.async&&(t.onreadystatechange=i);let n,s=this.postData,o=this.postBytes;if(s==null)if(o==null)n=null;else{let f=o;n=new Blob([f.b.bufferValue])}else o==null?n=s:n=null;if(n!=null)e=!0;else{let f=0,_=this.params;for(;f<_.length;){let g=_[f];++f,n==null?n="":n=(n==null?"null":I.string(n))+"&";let y=g.name,p=(n==null?"null":I.string(n))+encodeURIComponent(y)+"=",d=g.value;n=p+encodeURIComponent(d)}}try{if(e)t.open("POST",this.url,this.async);else if(n!=null){let f=this.url.split("?").length<=1;t.open("GET",this.url+(f?"?":"&")+(n==null?"null":I.string(n)),this.async),n=null}else t.open("GET",this.url,this.async);t.responseType="arraybuffer"}catch(f){let _=A.caught(f).unwrap();this.req=null,this.onError(_.toString());return}t.withCredentials=this.withCredentials,!rt.exists(this.headers,function(f){return f.name=="Content-Type"})&&e&&this.postData==null&&t.setRequestHeader("Content-Type","application/x-www-form-urlencoded");let m=0,c=this.headers;for(;m<c.length;){let f=c[m];++m,t.setRequestHeader(f.name,f.value)}t.send(n),this.async||i(null)}static get __name__(){return"haxe.http.HttpJs"}static get __super__(){return te}get __class__(){return st}};ce.prototype.async=null;ce.prototype.withCredentials=null;ce.prototype.responseHeaders=null;ce.prototype.req=null;var vn=l.$global,He=l.global("$hxClasses").Type=class lt{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 lt}};var Rn=l.$global,E=l.global("$hxClasses").Reflect=class ot{static field(e,t){try{return e[t]}catch{return null}}static getProperty(e,t){let r;if(e==null)return null;{let i;return e.__properties__?(r=e.__properties__["get_"+t],i=r):i=!1,i?e[r]():e[t]}}static setProperty(e,t,r){let i,n;e.__properties__?(i=e.__properties__["set_"+t],n=i):n=!1,n?e[i](r):e[t]=r}static fields(e){let t=[];if(e!=null){let i=Object.prototype.hasOwnProperty;for(var r in e)r!="__id__"&&r!="hx__closures__"&&i.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 ot}};var Pn=l.$global,je=l.global("$hxClasses")["internal.http.FetchHttp"]=class at extends l.inherits(ce){[l.new](e){this.responseStatus=0,super[l.new](e)}request(e){let t=l.$global,r=t.fetch,i=t.Headers,n=t.URLSearchParams;if(r==null){this.onError("Fetch API not found.");return}let s=He.createInstance(i,[]),o=0,m=this.headers;for(;o<m.length;){let d=m[o];++o,s.append(d.name,d.value)}let c=e?"POST":"GET",f=null;if(e)if(this.postData!=null)f=this.postData;else{f=He.createInstance(n,[]);let d=0,R=this.params;for(;d<R.length;){let C=R[d];++d,f.append(C.name,C.value)}}let _={method:c,headers:s,body:f},g=this,y=r(this.url,_).then(function(d){if(g.responseStatus=d.status,g.onStatus(d.status),d.ok)return d.text();throw A.thrown("HTTP Error: "+I.string(d.status))}).then(function(d){g.onData(d)}),p=E.field(y,"catch");p!=null&&p.apply(y,[function(d){g.onError(I.string(d))}])}static get __name__(){return"internal.http.FetchHttp"}static get __super__(){return ce}get __class__(){return at}};je.prototype.responseStatus=null;var $n=l.$global,Ue=l.global("$hxClasses")["internal.data.UUID"]=class ut{static randomHexChar(){return"0123456789abcdef".charAt(I.random(16))}static v4(){let e="",t=0;for(;t<36;)switch(t++){case 14:e+="4";break;case 19:e+=I.string("0123456789abcdef".charAt(8+I.random(4)));break;case 8:case 13:case 18:case 23:e+="-";break;default:e+=I.string("0123456789abcdef".charAt(I.random(16)))}return e}static get __name__(){return"internal.data.UUID"}get __class__(){return ut}};Ue.HEX="0123456789abcdef";var Hn=l.$global,ge=function(){};ge.__isInterface__=!0;var de=function(){};de.__isInterface__=!0;var _e=function(){};_e.__isInterface__=!0;var Wn=l.$global,a=l.global("$hxClasses")["internal.RecoBackendV2"]=class v extends l.inherits(){[l.new](){}static _requestUri(){return(v._safe_request?"https://":"http://")+v._req_domain+"/api/"+v._environment+"/recommendations/requests"}static noConsentBody(){return{device_id:"no-consent",user_group:"no-consent",version:"no-consent"}}static buildRequestBody(e){let t={lists:e,page_type:v._page_visit,channel:v._channel};if(v._consent>=2&&v._history.length>0&&(t.histories=v._buildHistories()),v._consent<2){let o=v.noConsentBody(),m=0,c=E.fields(o);for(;m<c.length;){let f=c[m];++m,t[f]=E.field(o,f)}}else v._user_id!=null&&(t.user_id=v._user_id),t.device_id=v._device_id;let r=0,i=v._others;for(;r<i.length;){let o=i[r];++r,t[o.key]=o.value}let n=E.field(t,"context_item"),s=E.field(t,"context_item_type");return n!=null&&I.string(n)!=""&&(s==null||I.string(s)=="")&&(t.context_item_type="article"),t}static _buildHistories(){return{pageviews:v._history}}static requestsToLists(e){let t=[],r="",i=[],n=0,s=[],o=function(g,y,p){r=g,i=y,n=0,s=p},m=function(g){let y=[];if(g==null)return y;let p=0;for(;p<g.length;){let d=g[p];++p,!(d==null||d.key==null||d.key=="")&&y.push({key:d.key,value:d.value})}return y},c=function(g,y){if(g==null&&y==null)return!0;if(g==null||y==null||g.length!=y.length)return!1;let p=new Array(g.length),d=0,R=g.length;for(;d<R;){let D=d++;p[D]=JSON.stringify(g[D])}let C=p,b=new Array(y.length),x=0,P=y.length;for(;x<P;){let D=x++;b[D]=JSON.stringify(y[D])}let S=b;C.sort(E.compare),S.sort(E.compare);let M=0,j=C.length;for(;M<j;){let D=M++;if(C[D]!=S[D])return!1}return!0},f=function(){let g={limit:n,list_name:r,list_size:n},y=0;for(;y<i.length;){let d=i[y];++y;let R=d.value;R instanceof Array||(R=[R]),g[d.key]=R}let p=0;for(;p<s.length;){let d=s[p];++p,g[d.key]=d.value}t.push(g)},_=0;for(;_<e.length;){let g=e[_];++_;let y=m(g.filters),p=g.others!=null?g.others:[];if(r==""){o(g.list,y,p),n+=1;continue}else(r!=g.list||!c(i,y)||!c(s,p))&&(f(),o(g.list,y,p));n+=1}return n!=0&&f(),t}static _requestRecos(e){let t=null,r=null,i=new Promise(function(p,d){t=p,r=d}),n=i;n._resolve=t,n._reject=r,n._isFinished=!1,n._result=null,n._error=null;let s=i,o=!1,m=new je(v._requestUri());m.setHeader("Content-Type","application/json");let c=v.buildRequestBody(e),f=JSON.stringify(c);m.setPostData(f);let _=function(p){if(o)return;o=!0;let d=s;d._isFinished||(d._error=p,d._isFinished=!0,d._reject(p))};m.onError=function(p){_("HTTP Request Error: "+p)},m.onStatus=function(p){(p<200||p>=300)&&_("HTTP Status Error: "+p)};try{m.request(!0)}catch(p){let d=A.caught(p).unwrap();return _("Failed to execute recommendation request: "+I.string(d)),s}let g=function(p){if(!o)try{let d=JSON.parse(p),R=pe.fromRequestData(d);o=!0;let C=s;C._isFinished||(C._result=R,C._error=null,C._isFinished=!0,C._resolve(R))}catch(d){let R=A.caught(d).unwrap();_("Failed to parse recommendation response: "+I.string(R))}},y=m.get_responseData();return y!=null?g(y):o||(m.onData=g),s}static getOrder(e,t,r){let i={list_name:e,limit:r.length,list_size:r.length},n={};E.setProperty(n,t,r),E.setProperty(i,"order",n);let s=null,o=null,m=new Promise(function(g,y){s=g,o=y}),c=m;c._resolve=s,c._reject=o,c._isFinished=!1,c._result=null,c._error=null;let f=m,_;return v.getRawRecommendations([i]).then(function(g){try{let y=[],p=g.lists();if(p!=null&&p.length>0){let R=p[0].items;if(R instanceof Array){let C=0,b=R;for(;C<b.length;){let x=b[C];++C;let P=x.get("categories");P!=null&&y.push(P)}}}let d=f;d._isFinished||(d._result=y,d._error=null,d._isFinished=!0,d._resolve(y))}catch(y){let p=A.caught(y).unwrap(),d="Failed to build order response: "+I.string(p),R=f;R._isFinished||(R._error=d,R._isFinished=!0,R._reject(d))}},function(g){let y=f;y._isFinished||(y._error=g,y._isFinished=!0,y._reject(g))}),f}static getRawRecommendations(e){return v._requestRecos(e)}static addHistories(e,t){if(t==null&&(t="article"),e==null||e.length==0)return;let r=t!=null&&t!=""?t:"article",i=0;for(;i<e.length;){let n=e[i];if(++i,typeof n=="string"){let _=I.string(n);_!=""&&v._history.push({id:_,item_type:r});continue}let s=n,o=E.field(s,"id");if(o==null)continue;let m=I.string(o);if(m=="")continue;let c=E.field(s,"item_type");(c==null||I.string(c)=="")&&(c=E.field(s,"itemType"));let f=c!=null&&I.string(c)!=""?I.string(c):r;v._history.push({id:m,item_type:f})}}static setOthers(e,t){let r=0,i=v._others;for(;r<i.length;){let n=i[r];if(++r,n.key==e){n.value=t;return}}v._others.push({key:e,value:t})}static setConsent(e){e>2&&(e=2),v._consent=e,e==2&&v.getDeviceId()=="no-consent"&&v.setDeviceId(Ue.v4())}static setChannel(e){v._channel=e}static setPageVisit(e){v._page_visit=e}static setEnvironment(e){v._environment=e}static setDeviceId(e){v._device_id=e}static setUserId(e){v._user_id=e}static setRequestDomain(e){v._req_domain=e}static setSafeRequest(e){v._safe_request=e}static setContextItem(e){v.setOthers("context_item",e)}static setContextItemType(e){v.setOthers("context_item_type",e)}static getRequestDomain(){return v._req_domain}static getSafeRequest(){return v._safe_request}static getEnvironment(){return v._environment}static getPageVisit(){return v._page_visit}static getUserId(){return v._user_id}static getDeviceId(){return v._device_id}static getConsent(){return v._consent}static getChannel(){return v._channel}static getOthers(e){let t=0,r=v._others;for(;t<r.length;){let i=r[t];if(++t,e==i.key)return i.value}return null}static getContextItem(){return v.getOthers("context_item")}static getContextItemType(){return v.getOthers("context_item_type")}static get __name__(){return"internal.RecoBackendV2"}get __class__(){return v}};a._environment=null;a._device_id="no-consent";a._user_id=null;a._consent=0;a._req_domain="europe-west1.froomle.com";a._page_visit=null;a._channel="www-desktop";a._safe_request=!0;a._history=[];a._others=[];var pe=l.global("$hxClasses")["internal._RecommendationsInternal"]=class Le extends l.inherits(){[l.new](e,t,r,i,n){this.request_id=t,this.user_group=r,this.device_id=e,this.user_id=i,this._lists=n}items(){let e=[],t=0,r=this._lists;for(;t<r.length;){let i=r[t];++t;let n=0,s=i.items;for(;n<s.length;){let o=s[n];++n,e.push(o)}}return e}lists(){return this._lists}getItemsByListName(e){let t=0,r=this._lists;for(;t<r.length;){let i=r[t];if(++t,i.list_name==e)return i}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 i=r[t];++t;let n={limit:i.limit,list_key:i.list_key,list_name:i.list_name,list_size:i.list_size,items:[]},s=0,o=i.items;for(;s<o.length;){let m=o[s];++s,n.items.push(ve.__cast(m,ne).getData())}e.lists.push(n)}return JSON.stringify(e)}static fromRequestData(e){let t=E.getProperty(e,"lists"),r=[],i=0;for(;i<t.length;){let n=t[i];++i;let s=E.getProperty(n,"items"),o=[],m=0;for(;m<s.length;){let f=s[m];++m,E.setProperty(f,"request_id",E.getProperty(e,"request_id")),E.setProperty(f,"user_group",E.getProperty(e,"user_group")),o.push(new ne(f))}let c=new me({limit:E.getProperty(n,"limit"),list_key:E.getProperty(n,"list_key"),list_name:E.getProperty(n,"list_name"),list_size:E.getProperty(n,"list_size"),items:o,request_id:E.getProperty(e,"request_id")});r.push(c)}return new Le(E.getProperty(e,"device_id"),E.getProperty(e,"request_id"),E.getProperty(e,"user_group"),E.getProperty(e,"user_id"),r)}static get __name__(){return"internal._RecommendationsInternal"}static get __interfaces__(){return[ge]}get __class__(){return Le}};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 me=l.global("$hxClasses")["internal._RecommendationsListInternal"]=class ct extends l.inherits(){[l.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[de]}get __class__(){return ct}};me.prototype.limit=null;me.prototype.list_key=null;me.prototype.list_name=null;me.prototype.list_size=null;me.prototype.items=null;me.prototype.request_id=null;var ne=l.global("$hxClasses")["internal._RecommendationItemInternal"]=class mt extends l.inherits(){[l.new](e){this.Id=E.getProperty(e,"item_id"),this.RequestId=E.getProperty(e,"request_id"),this.UserGroup=E.getProperty(e,"user_group"),this._data=e}getData(){return this._data}get(e){return this._data[e]}toJson(){return JSON.stringify(this._data)}static get __name__(){return"internal._RecommendationItemInternal"}static get __interfaces__(){return[_e]}get __class__(){return mt}};ne.prototype.Id=null;ne.prototype.RequestId=null;ne.prototype.UserGroup=null;ne.prototype._data=null;var Xn=l.$global,Ne=function(){};Ne.__isInterface__=!0;var ti=l.$global,Re=l.global("$hxClasses")["internal.js.JSFroomleDomTree"]=class Pe extends l.inherits(){[l.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"),i=new Pe;return i.root=r.documentElement,i}static fromDocument(e){let t=new Pe;return t.root=e.documentElement,t}static get __name__(){return"internal.js.JSFroomleDomTree"}static get __interfaces__(){return[Ne]}get __class__(){return Pe}};Re.prototype.root=null;var mi=l.$global,ae=l.global("$hxClasses")["internal.domHandler.DomDomDom"]=class ie extends l.inherits(){[l.new](){}static _fillRecoTargets(e){let t=null,r=null,i=new Promise(function(h,w){t=h,r=w}),n=i;n._resolve=t,n._reject=r,n._isFinished=!1,n._result=null,n._error=null;let s=i;if(e==null){let h=s;return h._isFinished||(h._result=!1,h._error=null,h._isFinished=!0,h._resolve(!1)),s}let o=[],m=new Array,c=e.querySelectorAll("*"),f=0,_=c.length;for(;f<_;){let h=f++,w=c.item(h);w instanceof HTMLElement&&m.push(w)}let g=m;g.push(e);let y=0;for(;y<g.length;){let h=g[y];++y;let w=0,k=new Array,q=0,T=h.attributes;for(;q<T.length;){let U=T[q];++q,k.push({name:U.name,value:U.value})}let $=k;for(;w<$.length;){let U=$[w];++w,U.name=="data-froomle-reco"&&o.push(h)}}let p=[],d=0;for(;d<o.length;){let h=o[d];++d;let w=h.getAttribute("data-froomle-request-id"),k=h.getAttribute("data-froomle-id"),q=w!=null&&w!="",T=k!=null&&k!="";!q&&!T&&p.push(h)}if(p.length<1){let h=null,w=null,k=new Promise(function(T,$){h=T,w=$}),q=k;return q._resolve=h,q._reject=w,q._isFinished=!1,q._result=null,q._error=null,k}let R=[],C=[],b="",x=[],P=[],S=[],M=function(h,w){if(h.length!=w.length)return!1;let k=new Array(h.length),q=0,T=h.length;for(;q<T;){let O=q++;k[O]=JSON.stringify(h[O])}let $=k,U=new Array(w.length),z=0,X=w.length;for(;z<X;){let O=z++;U[O]=JSON.stringify(w[O])}let Q=U;$.sort(E.compare),Q.sort(E.compare);let W=0,G=$.length;for(;W<G;){let O=W++;if($[O]!=Q[O])return!1}return!0},j=function(){let h={list_name:b,list_size:P.length,limit:P.length},w=0;for(;w<x.length;){let q=x[w];if(++w,q!=null&&q.key!=null&&q.key!=""){let T=q.value;T instanceof Array||(T=[T]),E.setProperty(h,q.key,T)}}let k=0;for(;k<S.length;){let q=S[k];++k,E.setProperty(h,q.key,q.value)}R.push(h),C.push(P)},D=function(h,w,k,q){b=h,x=w,P=[q],S=k},K=0;for(;K<p.length;){let h=p[K];++K;let w=function(U){let z=[],X=0,Q=new Array,W=0,G=U.attributes;for(;W<G.length;){let L=G[W];++W,Q.push({name:L.name,value:L.value})}let O=Q;for(;X<O.length;){let L=O[X];if(++X,L.name.startsWith("data-froomle-reco-filter-")){let Z=V.substr(L.name,25,null),le=L.value;z.push({key:Z,value:le})}}return z},k=function(U){let z=[],X=0,Q=new Array,W=0,G=U.attributes;for(;W<G.length;){let L=G[W];++W,Q.push({name:L.name,value:L.value})}let O=Q;for(;X<O.length;){let L=O[X];if(++X,L.name.startsWith("data-froomle-variable-")){let Z=V.substr(L.name,22,null),le=L.value;z.push({key:Z,value:le})}}return z},q=h.getAttribute("data-froomle-reco"),T=w(h),$=k(h);if(b==""){D(q,T,$,h);continue}else if(q==b&&M(x,T)&&M(S,$)){P.push(h);continue}else{j(),D(q,T,$,h);continue}}b!=""&&j();let F;if(a.getPageVisit()==null){let h=s;return h._isFinished||(h._result=!1,h._error=null,h._isFinished=!0,h._resolve(!1)),s}else if(a.getEnvironment()==null){let h=s;return h._isFinished||(h._result=!1,h._error=null,h._isFinished=!0,h._resolve(!1)),s}else try{F=a.getRawRecommendations(R)}catch{let w=s;return w._isFinished||(w._result=!1,w._error=null,w._isFinished=!0,w._resolve(!1)),s}return F.then(function(h){let w=h.lists(),k=w.length,q=0,T=k;for(;q<T;){let U=q++,z=w[U],X=z.items.length!=C[U].length,Q=z.items.length,W=0,G=Q;for(;W<G;){let O=W++,L=z.items[O],Z=C[U][O];ie._fillParameters(Z,L,h.request_id)}}let $=s;$._isFinished||($._result=!0,$._error=null,$._isFinished=!0,$._resolve(!0))}),s}static getAttrByPath(e,t,r){r==null&&(r="fgh");try{t=new xe("\\\\[(\\\\w+)\\\\]","g").map(t,function(c){return"."+c.matched(1)}),t=ue.replace(t,"[","."),t=ue.replace(t,"]",""),V.cca(t,0)==46&&(t=V.substr(t,1,null));let n=t.split("."),s=e.get(n[0]),o=1,m=n.length;for(;o<m;){let c=o++;if(s==null)return null;s instanceof Array&&I.parseInt(n[c])!=null?s=s[I.parseInt(n[c])]:s=E.field(s,n[c])}return s}catch{return r}}static _buildHistories(e){let t=[],r=new Array,i=e.querySelectorAll("[data-froomle-id]"),n=0,s=i.length;for(;n<s;){let c=n++,f=i.item(c);f instanceof HTMLElement&&r.push(f)}let o=r,m=0;for(;m<o.length;){let c=o[m];++m,t.push(c.getAttribute("data-froomle-id"))}a.addHistories(t)}static fillParam(e,t,r,i,n){n==null&&(n="");try{let s=ie.getAttrByPath(i,r,n);if(t=="inner"){e.textContent=s;let o=e.textContent}else e.setAttribute(t,s)}catch{}}static _fillParameters(e,t,r){e.setAttribute("data-froomle-id",t.get("item_id")),e.setAttribute("data-froomle-request-id",r);let i=t.get("item_type");i!=null&&I.string(i)!=""&&e.setAttribute("data-froomle-item-type",I.string(i)),t.UserGroup!=null&&t.UserGroup!=""&&e.setAttribute("data-froomle-user-group",t.UserGroup);let n=new Array,s=e.querySelectorAll("*"),o=0,m=s.length;for(;o<m;){let _=o++,g=s.item(_);g instanceof HTMLElement&&n.push(g)}let c=n,f=0;for(;f<c.length;){let _=c[f];++f;let g=0,y=new Array,p=0,d=_.attributes;for(;p<d.length;){let C=d[p];++p,y.push({name:C.name,value:C.value})}let R=y;for(;g<R.length;){let C=R[g];if(++g,C.name.startsWith("data-froomle-param-")){let b=ue.replace(C.name,"data-froomle-param-",""),x=C.value;ie.fillParam(_,b,x,t)}}}}static _orderElements(e){let t=function(b,x,P){let S=[],M=new Array,j=0,D=b.childNodes;for(;j<D.length;){let k=D[j];++j,M.push(k)}let K=M,F=0;for(;F<K.length;){let k=K[F];++F;try{if(k.getAttribute("data-froomle-ordervalue")!=null){S.push(k);let T=e.createElement("span");T.setAttribute("data-froomle-tmp-node","tmp"),b.replaceChild(T,k)}}catch{}}let h=[],w=0;for(;w<S.length;){let k=S[w];++w,h.push(k.getAttribute("data-froomle-ordervalue"))}return{el:b,key:x,values:h,orderChildren:S,list_name:P}},r=null,i=null,n=new Promise(function(b,x){r=b,i=x}),s=n;s._resolve=r,s._reject=i,s._isFinished=!1,s._result=null,s._error=null;let o=n,m=e.getRoot(),c=new Array,f=m.querySelectorAll("*"),_=0,g=f.length;for(;_<g;){let b=_++,x=f.item(b);x instanceof HTMLElement&&c.push(x)}let y=c,p=[],d=0;for(;d<y.length;){let b=y[d];++d;let x=0,P=new Array,S=0,M=b.attributes;for(;S<M.length;){let D=M[S];++S,P.push({name:D.name,value:D.value})}let j=P;for(;x<j.length;){let D=j[x];++x,D.name.startsWith("data-froomle-order-")&&p.push(t(b,D.name.substring(19),D.value))}}if(p.length<1){let b=o;return b._isFinished||(b._result=!1,b._error=null,b._isFinished=!0,b._resolve(!1)),o}let R=[],C=0;for(;C<p.length;){let b=p[C];++C;let x={list_name:b.list_name,limit:b.values.length,list_size:b.values.length},P={};E.setProperty(P,b.key,b.values),E.setProperty(x,"order",P),R.push(x)}if(a.getPageVisit()==null){let b=o;return b._isFinished||(b._result=!1,b._error=null,b._isFinished=!0,b._resolve(!1)),o}else if(a.getEnvironment()==null){let b=o;return b._isFinished||(b._result=!1,b._error=null,b._isFinished=!0,b._resolve(!1)),o}try{a.getRawRecommendations(R).then(function(b){let x=b.lists(),P=x.length,S=0,M=P;for(;S<M;){let D=S++,K=x[D],F=p[D];F.el.setAttribute("data-froomle-request-id",b.request_id);let h=new Array,w=0,k=K.items;for(;w<k.length;){let G=k[w];++w;let O=G.get(F.key),L=G.get(F.key),Z=F.values.length,le=0,he=Z;for(;le<he;){let oe=le++,ye=F.values[oe];if(O==ye){let Vt=F.orderChildren.length,It=F.orderChildren[oe];h.push(It),F.orderChildren.splice(oe,1),F.values.splice(oe,1);break}}}let q=h.length,T=F.el,$=new Array,U=0,z=T.childNodes;for(;U<z.length;){let G=z[U];++U,$.push(G)}let X=$.length,Q=0,W=X;for(;Q<W;){let G=Q++,O=F.el,L=new Array,Z=0,le=O.childNodes;for(;Z<le.length;){let ye=le[Z];++Z,L.push(ye)}let he=L[G],oe;if(he instanceof HTMLElement?oe=he.hasAttribute("data-froomle-tmp-node"):oe=!1,oe){F.el.replaceChild(h[0],he),h.splice(0,1);let ye=h.length;if(h.length==0)break}}}let j=o;j._isFinished||(j._result=!0,j._error=null,j._isFinished=!0,j._resolve(!0))})}catch{let x=o;x._isFinished||(x._result=!1,x._error=null,x._isFinished=!0,x._resolve(!1))}return o}static domInit(e){let t=null,r=null,i=new Promise(function(o,m){t=o,r=m}),n=i;n._resolve=t,n._reject=r,n._isFinished=!1,n._result=null,n._error=null;let s=i;return ie._orderElements(e).then(function(o){ie._buildHistories(e.getRoot()),ie._fillRecoTargets(e.getRoot()).then(function(m){let c=s;c._isFinished||(c._result=!0,c._error=null,c._isFinished=!0,c._resolve(!0))})}),s}static fillElementRecos(e){ie._fillRecoTargets(e)}static runFromHtml(e){if(e=="")return"";let t;try{let i=new DOMParser().parseFromString(e,"text/html"),n=new Re;n.root=i.documentElement,t=n}catch{return e}return ie.domInit(t),t.toString()}static get __name__(){return"internal.domHandler.DomDomDom"}get __class__(){return ie}};var pi=l.$global,N=l.global("$hxClasses").FroomleSdk=class se{static register(){se.registered||se._env_set&&se._page_visit_set&&(se.registered=!0)}static buildScriptTag(){let e='<script src="https://cdn.jsdelivr.net/npm/@froomle/frontend-sdk@0.0.11/dist/froomle.global.js" data-froomle-env="'+a.getEnvironment()+'" ',t=a.getPageVisit();t!=null&&(e+='data-froomle-page-visit="'+t+'" ');let r=a.getContextItem();if(r!=null){e+='data-froomle-context-item="'+r+'" ';let c=a.getContextItemType();(c==null||c=="")&&(c="article"),e+='data-froomle-context-item-type="'+c+'" '}let i=a.getDeviceId();i!=null&&(e+='data-froomle-device-id="'+i+'" ');let n=a.getUserId();n!=null&&(e+='data-froomle-user-id="'+n+'" ');let s=a.getConsent();s>0&&(e+='data-froomle-consent="'+s+'" ');let o=a.getRequestDomain();o!=null&&(e+='data-froomle-request-domain="'+o+'" ');let m=a.getChannel();return m!=null&&(e+='data-froomle-channel="'+m+'" '),e+="></script>",e}static setEnvironment(e){a.setEnvironment(e),se._env_set=!0,se.register()}static setDeviceId(e){a.setDeviceId(e)}static setUserId(e){a.setUserId(e)}static setConsent(e){a.setConsent(e)}static setPageVisit(e){a.setPageVisit(e),se._page_visit_set=!0,se.register()}static setChannel(e){a.setChannel(e)}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 getSafeRequest(){return a.getSafeRequest()}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 ae.runFromHtml(e)}static get __name__(){return"FroomleSdk"}get __class__(){return se}};N._env_set=!1;N._page_visit_set=!1;N.registered=!1;var bi=l.$global;function ft(){return(a.getSafeRequest()?"https://":"http://")+a.getRequestDomain()+"/api/"+a.getEnvironment()+"/events"}function Te(){return a.getConsent()>=1}function gt(){return a.getConsent()<2?"no-consent":a.getDeviceId()}function dt(){let u=a.getChannel();if(u)return u}function Pt(u){let e=(u==null?void 0:u.getAttribute("data-froomle-id"))||(u==null?void 0:u.getAttribute("data-froomle-action-item"));if(e)return e}function Tt(u){let e=(u==null?void 0:u.getAttribute("data-froomle-item-type"))||(u==null?void 0:u.getAttribute("data-froomle-action-item-type"));if(e)return e}function _t(u){var r;let e=u==null?void 0:u.getAttribute("data-froomle-user-group");return e||(typeof document=="undefined"?void 0:((r=document.querySelector("[data-froomle-user-group]"))==null?void 0:r.getAttribute("data-froomle-user-group"))||void 0)}function pt(u,e,t="impression",r){if(!Te())return;let i=dt()||"www-desktop",n={event_type:t,page_type:a.getPageVisit(),action_item:u,action_item_type:e,channel:i,device_id:gt()},s=_t();if(s&&(n.user_group=s),r)for(let o in r)n[o]=r[o];try{fetch(ft(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:JSON.stringify({events:[n]})})}catch{}}var B=class B{static queueIfNotPresent(e){B.impressionQueue.includes(e)||B.impressionQueue.push(e)}static generateBody(){let e=[];for(let t of B.impressionQueue){let r=Pt(t);if(!r)continue;let i=Tt(t)||"article",n=dt()||"www-desktop",s={event_type:"impression",page_type:a.getPageVisit(),action_item:r,action_item_type:i,channel:n,device_id:gt()},o=_t(t);o&&(s.user_group=o),a.getConsent()>=2&&a.getUserId()&&(s.user_id=a.getUserId());let m=t.getAttribute("data-froomle-reco"),c=t.getAttribute("data-froomle-request-id");m&&c&&(s.list_name=m,s.request_id=c),e.push(s)}return B.impressionQueue=[],JSON.stringify({events:e})}static sendImpressions(){console.log(B.impressionQueue),B.impressionQueue.length!==0&&Te()&&fetch(ft(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:B.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=B.getViewPortRect();return t.right>r.left&&t.left<r.right&&t.bottom>r.top&&t.top<r.bottom}static addIntersectionImpressionListener(e){B.observer.observe(e)}static processDocument(){if(Te()){console.log("\u{1F680} Processing document for impressions");for(let e of document.querySelectorAll("[data-froomle-id]"))B.intersectsWithViewPortRect(e)?B.queueIfNotPresent(e):B.addIntersectionImpressionListener(e);B.sendImpressions()}}static processElement(e){if(!Te()||!(e instanceof Element))return;let t=[];e.matches("[data-froomle-id]")&&t.push(e);for(let r of e.querySelectorAll("[data-froomle-id]"))t.push(r);if(t.length!==0){for(let r of t)B.intersectsWithViewPortRect(r)?B.queueIfNotPresent(r):B.addIntersectionImpressionListener(r);B.sendImpressions()}}};B.impressionQueue=[],B.observer=null;var Y=B;typeof document!="undefined"&&(Y.observer=new IntersectionObserver((u,e)=>{u.forEach(t=>{t.isIntersecting&&(Y.impressionQueue.push(t.target),Y.observer.unobserve(t.target))}),Y.impressionQueue.length>0&&Y.sendImpressions()}));var Ie=class u{static canTrackEvents(){return a.getConsent()>=1}static readDeviceId(){return a.getConsent()<2?"no-consent":a.getDeviceId()}static readChannel(){let e=a.getChannel();if(e)return e}static readUserGroup(){var t;return typeof document=="undefined"?void 0:((t=document.querySelector("[data-froomle-user-group]"))==null?void 0:t.getAttribute("data-froomle-user-group"))||void 0}static uri(){return(a.getSafeRequest()?"https://":"http://")+a.getRequestDomain()+"/api/"+a.getEnvironment()+"/events"}static generateBody(){let e=u.readChannel()||"www-desktop",t={event_type:"page_visit",page_type:a.getPageVisit(),channel:e,device_id:u.readDeviceId()},r=u.readUserGroup();return r&&(t.user_group=r),a.getConsent()>=2&&a.getUserId()&&(t.user_id=a.getUserId()),JSON.stringify({events:[t]})}static sendPageVisit(){a.getPageVisit()&&(a.getContextItem()||u.canTrackEvents()&&fetch(u.uri(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:u.generateBody()}))}};var Ee=class u{static canTrackEvents(){return a.getConsent()>=1}static readDeviceId(){return a.getConsent()<2?"no-consent":a.getDeviceId()}static readChannel(){let e=a.getChannel();if(e)return e}static readActionItemType(){let e=a.getContextItemType();if(e)return e}static readUserGroup(){var t;return typeof document=="undefined"?void 0:((t=document.querySelector("[data-froomle-user-group]"))==null?void 0:t.getAttribute("data-froomle-user-group"))||void 0}static uri(){return(a.getSafeRequest()?"https://":"http://")+a.getRequestDomain()+"/api/"+a.getEnvironment()+"/events"}static generateBody(){let e=u.readActionItemType()||"article",t=u.readChannel()||"www-desktop",r={event_type:"detail_pageview",page_type:a.getPageVisit(),action_item:a.getContextItem(),action_item_type:e,channel:t,device_id:u.readDeviceId()},i=u.readUserGroup();return i&&(r.user_group=i),a.getConsent()>=2&&a.getUserId()&&(r.user_id=a.getUserId()),JSON.stringify({events:[r]})}static sendPageView(){a.getContextItem()&&a.getPageVisit()&&u.canTrackEvents()&&fetch(u.uri(),{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:u.generateBody()})}};var H=class H{static readAttributeFromChain(e,t){let r=e;for(;r;){for(let i of t){let n=r.getAttribute(i);if(n)return n}r=r.parentElement}}static canTrackEvents(){return a.getConsent()>=1}static readDeviceId(){return a.getConsent()<2?"no-consent":a.getDeviceId()}static readChannel(){let e=a.getChannel();if(e)return e}static readActionItem(e){return H.readAttributeFromChain(e,["data-froomle-id","data-froomle-action-item"])}static readActionItemType(e){return H.readAttributeFromChain(e,["data-froomle-item-type","data-froomle-action-item-type"])}static readUserGroup(e){var i;let t=H.readAttributeFromChain(e,["data-froomle-user-group"]);return t||(typeof document=="undefined"?void 0:((i=document.querySelector("[data-froomle-user-group]"))==null?void 0:i.getAttribute("data-froomle-user-group"))||void 0)}static registerClickables(){H.listenerRegistered||(H.listenerRegistered=!0,document.addEventListener("click",e=>{if(!H.canTrackEvents())return;let t=e instanceof MouseEvent?e:null,r=e.target,i=r instanceof Element?r:r instanceof Node?r.parentElement:null;if(!i)return;let n=i.closest("a");if(!n)return;let s=n.closest("[data-froomle-id]");if(!s)return;let o=n.closest("[data-froomle-reco]"),m=(o?H.readActionItem(o):void 0)||H.readActionItem(s);if(!m)return;let c=(o?H.readActionItemType(o):void 0)||H.readActionItemType(s)||"article",f=H.readChannel()||"www-desktop",_=n instanceof HTMLAnchorElement?n.href:null,g=n.getAttribute("href"),y=typeof g=="string"&&g.trim().startsWith("#"),p=!!_&&!y&&e.cancelable&&!e.defaultPrevented&&!n.hasAttribute("download")&&(!n.target||n.target==="_self")&&!!t&&t.button===0&&!t.metaKey&&!t.ctrlKey&&!t.shiftKey&&!t.altKey,d=y&&e.cancelable&&!e.defaultPrevented;(p||d)&&e.preventDefault();let R={event_type:"click_on_recommendation",page_type:a.getPageVisit(),action_item:m,action_item_type:c,channel:f,device_id:H.readDeviceId()},C=(o?H.readUserGroup(o):void 0)||H.readUserGroup(s);C&&(R.user_group=C);let b=(o?H.readAttributeFromChain(o,["data-froomle-reco"]):void 0)||H.readAttributeFromChain(s,["data-froomle-reco"]),x=(o?H.readAttributeFromChain(o,["data-froomle-request-id"]):void 0)||H.readAttributeFromChain(s,["data-froomle-request-id"]);b&&x&&(R.list_name=b,R.request_id=x),a.getConsent()>=2&&a.getUserId()&&(R.user_id=a.getUserId());let S=(a.getSafeRequest()?"https://":"http://")+a.getRequestDomain()+"/api/"+a.getEnvironment()+"/events",M=JSON.stringify({events:[R]}),j=new Blob([M],{type:"application/json"}),D=K=>fetch(S,{method:"POST",headers:{"Content-Type":"application/json",Accept:"application/json"},body:M,...K?{keepalive:!0}:{}});if(p&&_){let K=!1,F=()=>{K||(K=!0,window.location.assign(_))},h=window.setTimeout(F,200);D(!0).catch(()=>{typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function"&&navigator.sendBeacon(S,j)}).finally(()=>{window.clearTimeout(h),F()});return}D(!1).catch(()=>{typeof navigator!="undefined"&&typeof navigator.sendBeacon=="function"&&navigator.sendBeacon(S,j)})},!0))}};H.listenerRegistered=!1;var Ce=H;var At=Re,ht=N.setEnvironment,yt=N.setPageVisit,bt=N.setRequestDomain,vt=N.setSafeRequest,wt=typeof N.setChannel=="function"?N.setChannel:a.setChannel,xt=N.setContextItem,Rt=N.setContextItemType,Ft=a.addHistories;function $t(u,e){N.setCustomVariable(u,e)}function Me(u){N.setUserId(u),document.cookie=`froomle_user_id=${u}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Ge(u){N.setDeviceId(u),document.cookie=`froomle_device_id=${u}; max-age=${3600*24*365*20}; path=/; samesite=lax`}function Je(u){N.setConsent(u),document.cookie=`froomle_consent=${u}; max-age=${3600*24*365*20}; path=/; samesite=lax`,document.cookie=`froomle_device_id=${N.getDeviceId()}; max-age=${3600*24*365*20}; path=/; samesite=lax`}typeof window!="undefined"&&(window.setFroomleConsent=Je);function Ve(u){let e=document.cookie.split("; ");for(let t of e){let[r,i]=t.split("=");if(r===u)return decodeURIComponent(i)}return null}function Ot(u){return N.getRecommendations(u)}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"),i=u.getAttribute("data-froomle-env"),n=u.getAttribute("data-froomle-page-visit"),s=u.getAttribute("data-froomle-request-domain"),o=u.getAttribute("data-froomle-context-item"),m=u.getAttribute("data-froomle-context-item-type"),c=u.getAttribute("data-froomle-safe-request"),f=u.getAttribute("data-froomle-channel");if(ht(i),n&&yt(n),o&&(xt(o),Rt(m||"article")),t)Ge(t);else{let _=Ve("froomle_device_id");_&&Ge(_)}if(r)Me(r);else{let _=Ve("froomle_user_id");_&&Me(_)}s&&bt(s),c&&vt(c!=="false"),f&&wt(f)}let e=Ve("froomle_consent");if(e){let t=Number(e);Number.isNaN(t)||Je(t)}document.addEventListener("DOMContentLoaded",()=>{console.log("froomle loads dom"),ae.domInit(At.fromDocument(document)).then(i=>{Ce.registerClickables(),Y.processDocument(),Ie.sendPageVisit(),Ee.sendPageView()});function t(i){return i.matches("[data-froomle-reco]")||i.querySelector("[data-froomle-reco]")!==null}new MutationObserver(i=>{for(let n of i)if(n.type==="childList"&&n.addedNodes.forEach(s=>{s instanceof Element&&(t(s)&&ae.fillElementRecos(s),Y.processElement(s))}),n.type==="attributes"&&n.target instanceof Element)if(n.attributeName==="data-froomle-reco"){let s=n.target.getAttribute("data-froomle-request-id");(!s||s==="")&&ae.fillElementRecos(n.target)}else if(n.attributeName==="data-froomle-request-id"){let s=n.target.getAttribute("data-froomle-request-id"),o=n.target.getAttribute("data-froomle-id");n.target.getAttribute("data-froomle-reco")&&(!s||s==="")&&(!o||o==="")&&ae.fillElementRecos(n.target)}else n.attributeName==="data-froomle-id"&&Y.processElement(n.target)}).observe(document.body,{childList:!0,subtree:!0,attributes:!0,attributeFilter:["data-froomle-reco","data-froomle-request-id","data-froomle-id"]})})}function Bt(){let u,e;return{promise:new Promise((r,i)=>{u=r,e=i}),resolve:u,reject:e}}var ze=[];function Ht(){var u;return typeof document=="undefined"?"":((u=document.querySelector("[data-froomle-user-group]"))==null?void 0:u.getAttribute("data-froomle-user-group"))||""}function jt(u,e){var n;let t=u,i=((n=t==null?void 0:t.UserGroup)!=null?n:typeof(t==null?void 0:t.get)=="function"?t.get("user_group"):void 0)||e;if(i&&(t.UserGroup=i,typeof(t==null?void 0:t.getData)=="function")){let s=t.getData();s&&(!s.user_group||s.user_group==="")&&(s.user_group=i)}}async function Ut(){let u=ze.splice(0,ze.length);if(u.length!==0)try{let e=u.map(s=>s.req),t=a.requestsToLists(e),r=await a.getRawRecommendations(t),i=r.user_group||"";typeof document!="undefined"&&i&&document.documentElement.setAttribute("data-froomle-user-group",i);let n=r.lists().reduce((s,o)=>[...s,...o.items],[]);n.forEach(s=>jt(s,i)),u.forEach((s,o)=>{n[o]?s.deferred.resolve(n[o]):s.deferred.reject(new Error("No recommendation available"))})}catch(e){throw u.forEach(t=>{t.deferred.reject(e)}),e}}function Lt(u){let e,t,i={promise:new Promise((n,s)=>{e=n,t=s}),resolve:e,reject:t};return ze.push({deferred:i,req:u}),i}function Nt(u){let t=Lt(u).promise,r=Bt(),i=function(s,o){return t.then(m=>(n.completeTarget=m,s?s(m):m),m=>o?o(m):Promise.reject(m))},n=new Proxy(new ne({item_id:"",request_id:"",user_group:""}),{get(s,o,m){if(o==="then")return i;if(o==="__froomleList")return u.list;if(o==="get"){let _=Reflect.get(s,o,m);return function(...g){return _.apply(this,g)}}if(typeof o!="string")return Reflect.get(s,o,m);let c=Reflect.get(s,o,m);if(c!=null&&c!=="")return c;let f=s.get(o);return f!=null&&f!==""?f:""},set(s,o,m,c){if(o==="completeTarget"){if(Object.assign(s,m),!s.UserGroup){let f=Ht();if(f){s.UserGroup=f;let _=s.getData();_&&!_.user_group&&(_.user_group=f)}}return!0}return Reflect.set(s,o,m,c)},has(s,o){return s.get(o)!==void 0}});return n}export{ge as a,de as b,_e as c,a as d,pt as e,Y as f,Ie as g,Ee as h,Ce as i,ht as j,yt as k,bt as l,vt as m,wt as n,xt as o,Rt as p,Ft as q,$t as r,Me as s,Ge as t,Je as u,Ot as v,Ut as w,Nt as x};