From 9b12554b43fe8891d46391bb5b05770cec877525 Mon Sep 17 00:00:00 2001 From: Dvir Malka Date: Mon, 7 Mar 2022 11:42:16 +0200 Subject: [PATCH] Listen to exercise iframe load instead of custom event --- dist/production/strigo.sdk.min.js | 8 ++++---- src/modules/listeners/listeners.ts | 13 ++++++++----- 2 files changed, 12 insertions(+), 9 deletions(-) diff --git a/dist/production/strigo.sdk.min.js b/dist/production/strigo.sdk.min.js index 9f49013..1e5018a 100644 --- a/dist/production/strigo.sdk.min.js +++ b/dist/production/strigo.sdk.min.js @@ -1,9 +1,9 @@ -(()=>{var pt=Object.defineProperty;var vt=(e,t)=>{for(var o in t)pt(e,o,{get:t[o],enumerable:!0})};var v=typeof window!="undefined"?window:null,re=v===null,B=re?void 0:v.document,h="addEventListener",O="removeEventListener",te="getBoundingClientRect",F="_a",w="_b",I="_c",J="horizontal",y=function(){return!1},Et=re?"calc":["","-webkit-","-moz-","-o-"].filter(function(e){var t=B.createElement("div");return t.style.cssText="width:"+e+"calc(9px)",!!t.style.length}).shift()+"calc",Re=function(e){return typeof e=="string"||e instanceof String},Ce=function(e){if(Re(e)){var t=B.querySelector(e);if(!t)throw new Error("Selector "+e+" did not match a DOM element");return t}return e},m=function(e,t,o){var s=e[t];return s!==void 0?s:o},K=function(e,t,o,s){if(t){if(s==="end")return 0;if(s==="center")return e/2}else if(o){if(s==="start")return 0;if(s==="center")return e/2}return e},ht=function(e,t){var o=B.createElement("div");return o.className="gutter gutter-"+t,o},Ot=function(e,t,o){var s={};return Re(t)?s[e]=t:s[e]=Et+"("+t+"% - "+o+"px)",s},wt=function(e,t){var o;return o={},o[e]=t+"px",o},yt=function(e,t){if(t===void 0&&(t={}),re)return{};var o=e,s,c,g,f,E,u;Array.from&&(o=Array.from(o));var x=Ce(o[0]),T=x.parentNode,_=getComputedStyle?getComputedStyle(T):null,z=_?_.flexDirection:null,L=m(t,"sizes")||o.map(function(){return 100/o.length}),N=m(t,"minSize",100),M=Array.isArray(N)?N:o.map(function(){return N}),X=m(t,"maxSize",1/0),ot=Array.isArray(X)?X:o.map(function(){return X}),it=m(t,"expandToMin",!1),D=m(t,"gutterSize",10),k=m(t,"gutterAlign","center"),Z=m(t,"snapOffset",30),st=Array.isArray(Z)?Z:o.map(function(){return Z}),Q=m(t,"dragInterval",1),A=m(t,"direction",J),ee=m(t,"cursor",A===J?"col-resize":"row-resize"),at=m(t,"gutter",ht),Oe=m(t,"elementStyle",Ot),ct=m(t,"gutterStyle",wt);A===J?(s="width",c="clientX",g="left",f="right",E="clientWidth"):A==="vertical"&&(s="height",c="clientY",g="top",f="bottom",E="clientHeight");function P(i,r,n,a){var d=Oe(s,r,n,a);Object.keys(d).forEach(function(S){i.style[S]=d[S]})}function lt(i,r,n){var a=ct(s,r,n);Object.keys(a).forEach(function(d){i.style[d]=a[d]})}function U(){return u.map(function(i){return i.size})}function we(i){return"touches"in i?i.touches[0][c]:i[c]}function ye(i){var r=u[this.a],n=u[this.b],a=r.size+n.size;r.size=i/this.size*a,n.size=a-i/this.size*a,P(r.element,r.size,this[w],r.i),P(n.element,n.size,this[I],n.i)}function gt(i){var r,n=u[this.a],a=u[this.b];!this.dragging||(r=we(i)-this.start+(this[w]-this.dragOffset),Q>1&&(r=Math.round(r/Q)*Q),r<=n.minSize+n.snapOffset+this[w]?r=n.minSize+this[w]:r>=this.size-(a.minSize+a.snapOffset+this[I])&&(r=this.size-(a.minSize+this[I])),r>=n.maxSize-n.snapOffset+this[w]?r=n.maxSize+this[w]:r<=this.size-(a.maxSize-a.snapOffset+this[I])&&(r=this.size-(a.maxSize+this[I])),ye.call(this,r),m(t,"onDrag",y)(U()))}function Te(){var i=u[this.a].element,r=u[this.b].element,n=i[te](),a=r[te]();this.size=n[s]+a[s]+this[w]+this[I],this.start=n[g],this.end=n[f]}function ut(i){if(!getComputedStyle)return null;var r=getComputedStyle(i);if(!r)return null;var n=i[E];return n===0?null:(A===J?n-=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight):n-=parseFloat(r.paddingTop)+parseFloat(r.paddingBottom),n)}function Ie(i){var r=ut(T);if(r===null||M.reduce(function(S,p){return S+p},0)>r)return i;var n=0,a=[],d=i.map(function(S,p){var R=r*S/100,V=K(D,p===0,p===i.length-1,k),$=M[p]+V;return R<$?(n+=$-R,a.push(0),$):(a.push(R-$),R)});return n===0?i:d.map(function(S,p){var R=S;if(n>0&&a[p]-n>0){var V=Math.min(n,a[p]-n);n-=V,R=S-V}return R/r*100})}function St(){var i=this,r=u[i.a].element,n=u[i.b].element;i.dragging&&m(t,"onDragEnd",y)(U()),i.dragging=!1,v[O]("mouseup",i.stop),v[O]("touchend",i.stop),v[O]("touchcancel",i.stop),v[O]("mousemove",i.move),v[O]("touchmove",i.move),i.stop=null,i.move=null,r[O]("selectstart",y),r[O]("dragstart",y),n[O]("selectstart",y),n[O]("dragstart",y),r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",i.gutter.style.cursor="",i.parent.style.cursor="",B.body.style.cursor=""}function ft(i){if(!("button"in i&&i.button!==0)){var r=this,n=u[r.a].element,a=u[r.b].element;r.dragging||m(t,"onDragStart",y)(U()),i.preventDefault(),r.dragging=!0,r.move=gt.bind(r),r.stop=St.bind(r),v[h]("mouseup",r.stop),v[h]("touchend",r.stop),v[h]("touchcancel",r.stop),v[h]("mousemove",r.move),v[h]("touchmove",r.move),n[h]("selectstart",y),n[h]("dragstart",y),a[h]("selectstart",y),a[h]("dragstart",y),n.style.userSelect="none",n.style.webkitUserSelect="none",n.style.MozUserSelect="none",n.style.pointerEvents="none",a.style.userSelect="none",a.style.webkitUserSelect="none",a.style.MozUserSelect="none",a.style.pointerEvents="none",r.gutter.style.cursor=ee,r.parent.style.cursor=ee,B.body.style.cursor=ee,Te.call(r),r.dragOffset=we(i)-r.end}}L=Ie(L);var C=[];u=o.map(function(i,r){var n={element:Ce(i),size:L[r],minSize:M[r],maxSize:ot[r],snapOffset:st[r],i:r},a;if(r>0&&(a={a:r-1,b:r,dragging:!1,direction:A,parent:T},a[w]=K(D,r-1===0,!1,k),a[I]=K(D,!1,r===o.length-1,k),z==="row-reverse"||z==="column-reverse")){var d=a.a;a.a=a.b,a.b=d}if(r>0){var S=at(r,A,n.element);lt(S,D,r),a[F]=ft.bind(a),S[h]("mousedown",a[F]),S[h]("touchstart",a[F]),T.insertBefore(S,n.element),a.gutter=S}return P(n.element,n.size,K(D,r===0,r===o.length-1,k),r),r>0&&C.push(a),n});function xe(i){var r=i.i===C.length,n=r?C[i.i-1]:C[i.i];Te.call(n);var a=r?n.size-i.minSize-n[I]:i.minSize+n[w];ye.call(n,a)}u.forEach(function(i){var r=i.element[te]()[s];r0){var d=C[a-1],S=u[d.a],p=u[d.b];S.size=r[a-1],p.size=n,P(S.element,S.size,d[w],S.i),P(p.element,p.size,d[I],p.i)}})}function mt(i,r){C.forEach(function(n){if(r!==!0?n.parent.removeChild(n.gutter):(n.gutter[O]("mousedown",n[F]),n.gutter[O]("touchstart",n[F])),i!==!0){var a=Oe(s,n.a.size,n[w]);Object.keys(a).forEach(function(d){u[n.a].element.style[d]="",u[n.b].element.style[d]=""})}})}return{setSizes:dt,getSizes:U,collapse:function(r){xe(u[r])},destroy:mt,parent:T,pairs:C}},Le=yt;var Ae="strigo-sdk",be="strigo.io",Ge="localhost:3000",_e=["strigo-exercises"],ze=["orig-iframe"],Ne=` +(()=>{var pt=Object.defineProperty;var vt=(e,t)=>{for(var o in t)pt(e,o,{get:t[o],enumerable:!0})};var v=typeof window!="undefined"?window:null,re=v===null,B=re?void 0:v.document,h="addEventListener",O="removeEventListener",te="getBoundingClientRect",F="_a",w="_b",I="_c",J="horizontal",y=function(){return!1},Et=re?"calc":["","-webkit-","-moz-","-o-"].filter(function(e){var t=B.createElement("div");return t.style.cssText="width:"+e+"calc(9px)",!!t.style.length}).shift()+"calc",Re=function(e){return typeof e=="string"||e instanceof String},Ce=function(e){if(Re(e)){var t=B.querySelector(e);if(!t)throw new Error("Selector "+e+" did not match a DOM element");return t}return e},m=function(e,t,o){var s=e[t];return s!==void 0?s:o},K=function(e,t,o,s){if(t){if(s==="end")return 0;if(s==="center")return e/2}else if(o){if(s==="start")return 0;if(s==="center")return e/2}return e},ht=function(e,t){var o=B.createElement("div");return o.className="gutter gutter-"+t,o},Ot=function(e,t,o){var s={};return Re(t)?s[e]=t:s[e]=Et+"("+t+"% - "+o+"px)",s},wt=function(e,t){var o;return o={},o[e]=t+"px",o},yt=function(e,t){if(t===void 0&&(t={}),re)return{};var o=e,s,c,g,f,E,u;Array.from&&(o=Array.from(o));var x=Ce(o[0]),T=x.parentNode,_=getComputedStyle?getComputedStyle(T):null,z=_?_.flexDirection:null,L=m(t,"sizes")||o.map(function(){return 100/o.length}),N=m(t,"minSize",100),M=Array.isArray(N)?N:o.map(function(){return N}),X=m(t,"maxSize",1/0),ot=Array.isArray(X)?X:o.map(function(){return X}),it=m(t,"expandToMin",!1),D=m(t,"gutterSize",10),U=m(t,"gutterAlign","center"),Z=m(t,"snapOffset",30),st=Array.isArray(Z)?Z:o.map(function(){return Z}),Q=m(t,"dragInterval",1),A=m(t,"direction",J),ee=m(t,"cursor",A===J?"col-resize":"row-resize"),at=m(t,"gutter",ht),Oe=m(t,"elementStyle",Ot),ct=m(t,"gutterStyle",wt);A===J?(s="width",c="clientX",g="left",f="right",E="clientWidth"):A==="vertical"&&(s="height",c="clientY",g="top",f="bottom",E="clientHeight");function P(i,r,n,a){var d=Oe(s,r,n,a);Object.keys(d).forEach(function(S){i.style[S]=d[S]})}function lt(i,r,n){var a=ct(s,r,n);Object.keys(a).forEach(function(d){i.style[d]=a[d]})}function k(){return u.map(function(i){return i.size})}function we(i){return"touches"in i?i.touches[0][c]:i[c]}function ye(i){var r=u[this.a],n=u[this.b],a=r.size+n.size;r.size=i/this.size*a,n.size=a-i/this.size*a,P(r.element,r.size,this[w],r.i),P(n.element,n.size,this[I],n.i)}function gt(i){var r,n=u[this.a],a=u[this.b];!this.dragging||(r=we(i)-this.start+(this[w]-this.dragOffset),Q>1&&(r=Math.round(r/Q)*Q),r<=n.minSize+n.snapOffset+this[w]?r=n.minSize+this[w]:r>=this.size-(a.minSize+a.snapOffset+this[I])&&(r=this.size-(a.minSize+this[I])),r>=n.maxSize-n.snapOffset+this[w]?r=n.maxSize+this[w]:r<=this.size-(a.maxSize-a.snapOffset+this[I])&&(r=this.size-(a.maxSize+this[I])),ye.call(this,r),m(t,"onDrag",y)(k()))}function Te(){var i=u[this.a].element,r=u[this.b].element,n=i[te](),a=r[te]();this.size=n[s]+a[s]+this[w]+this[I],this.start=n[g],this.end=n[f]}function ut(i){if(!getComputedStyle)return null;var r=getComputedStyle(i);if(!r)return null;var n=i[E];return n===0?null:(A===J?n-=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight):n-=parseFloat(r.paddingTop)+parseFloat(r.paddingBottom),n)}function Ie(i){var r=ut(T);if(r===null||M.reduce(function(S,p){return S+p},0)>r)return i;var n=0,a=[],d=i.map(function(S,p){var R=r*S/100,V=K(D,p===0,p===i.length-1,U),$=M[p]+V;return R<$?(n+=$-R,a.push(0),$):(a.push(R-$),R)});return n===0?i:d.map(function(S,p){var R=S;if(n>0&&a[p]-n>0){var V=Math.min(n,a[p]-n);n-=V,R=S-V}return R/r*100})}function St(){var i=this,r=u[i.a].element,n=u[i.b].element;i.dragging&&m(t,"onDragEnd",y)(k()),i.dragging=!1,v[O]("mouseup",i.stop),v[O]("touchend",i.stop),v[O]("touchcancel",i.stop),v[O]("mousemove",i.move),v[O]("touchmove",i.move),i.stop=null,i.move=null,r[O]("selectstart",y),r[O]("dragstart",y),n[O]("selectstart",y),n[O]("dragstart",y),r.style.userSelect="",r.style.webkitUserSelect="",r.style.MozUserSelect="",r.style.pointerEvents="",n.style.userSelect="",n.style.webkitUserSelect="",n.style.MozUserSelect="",n.style.pointerEvents="",i.gutter.style.cursor="",i.parent.style.cursor="",B.body.style.cursor=""}function ft(i){if(!("button"in i&&i.button!==0)){var r=this,n=u[r.a].element,a=u[r.b].element;r.dragging||m(t,"onDragStart",y)(k()),i.preventDefault(),r.dragging=!0,r.move=gt.bind(r),r.stop=St.bind(r),v[h]("mouseup",r.stop),v[h]("touchend",r.stop),v[h]("touchcancel",r.stop),v[h]("mousemove",r.move),v[h]("touchmove",r.move),n[h]("selectstart",y),n[h]("dragstart",y),a[h]("selectstart",y),a[h]("dragstart",y),n.style.userSelect="none",n.style.webkitUserSelect="none",n.style.MozUserSelect="none",n.style.pointerEvents="none",a.style.userSelect="none",a.style.webkitUserSelect="none",a.style.MozUserSelect="none",a.style.pointerEvents="none",r.gutter.style.cursor=ee,r.parent.style.cursor=ee,B.body.style.cursor=ee,Te.call(r),r.dragOffset=we(i)-r.end}}L=Ie(L);var C=[];u=o.map(function(i,r){var n={element:Ce(i),size:L[r],minSize:M[r],maxSize:ot[r],snapOffset:st[r],i:r},a;if(r>0&&(a={a:r-1,b:r,dragging:!1,direction:A,parent:T},a[w]=K(D,r-1===0,!1,U),a[I]=K(D,!1,r===o.length-1,U),z==="row-reverse"||z==="column-reverse")){var d=a.a;a.a=a.b,a.b=d}if(r>0){var S=at(r,A,n.element);lt(S,D,r),a[F]=ft.bind(a),S[h]("mousedown",a[F]),S[h]("touchstart",a[F]),T.insertBefore(S,n.element),a.gutter=S}return P(n.element,n.size,K(D,r===0,r===o.length-1,U),r),r>0&&C.push(a),n});function xe(i){var r=i.i===C.length,n=r?C[i.i-1]:C[i.i];Te.call(n);var a=r?n.size-i.minSize-n[I]:i.minSize+n[w];ye.call(n,a)}u.forEach(function(i){var r=i.element[te]()[s];r0){var d=C[a-1],S=u[d.a],p=u[d.b];S.size=r[a-1],p.size=n,P(S.element,S.size,d[w],S.i),P(p.element,p.size,d[I],p.i)}})}function mt(i,r){C.forEach(function(n){if(r!==!0?n.parent.removeChild(n.gutter):(n.gutter[O]("mousedown",n[F]),n.gutter[O]("touchstart",n[F])),i!==!0){var a=Oe(s,n.a.size,n[w]);Object.keys(a).forEach(function(d){u[n.a].element.style[d]="",u[n.b].element.style[d]=""})}})}return{setSizes:dt,getSizes:k,collapse:function(r){xe(u[r])},destroy:mt,parent:T,pairs:C}},Le=yt;var Ae="strigo-sdk",be="strigo.io",Ge="localhost:3000",_e=["strigo-exercises"],ze=["orig-iframe"],Ne=` `,ne=` -`;function oe(){return document.getElementsByTagName("head")[0]}function Me(){document.open(),document.close()}function De(){let e=document.createElement("div");return e.className="strigo-main",document.body.appendChild(e),e}function ie(e){let{url:t,parentElement:o}=e,s=document.createElement("link");s.rel="stylesheet",s.href=t,o.appendChild(s)}function se(e){let{url:t,parentElement:o,classNames:s,id:c}=e,g=document.createElement("iframe");return g.classList.add(...s),g.id=c,g.src=t,o.appendChild(g),g}function Pe(){location.reload()}function Fe(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}function Be(){return Fe()?[window.screen.width,window.screen.width]:[window.screen.width/2,window.screen.width]}function He(){return Fe()?[0,0]:[window.screen.width*.25,0]}function ke(){let e=new XMLHttpRequest;e.open("GET",window.document.location.href,!1),e.send(null);let o=e.getAllResponseHeaders().toLowerCase().split(`\r -`);for(let s of o)if(s.includes("x-frame-options")){let c=s.split(":");if(c&&c.length>1)return c[1].trim()!=="deny"}return!0}function Ue(e){let t=function(){let E=document.getElementById("strigo-widget"),u=E.classList.contains("slide-in");E.classList.toggle("slide-in"),setTimeout(()=>{let x=document.getElementById("strigo-arrow");x.innerHTML=u?ne:Ne},300)},o=document.createElement("div");o.className="strigo-arrow",o.id="strigo-arrow",o.innerHTML=ne;let s=document.createElement("button");s.className="strigo-collapse-button",s.id="strigo-toggle",s.appendChild(o);let c=document.createElement("div");c.className="strigo-collapse-div",c.onclick=()=>{t()},c.appendChild(s);let g=document.createElement("iframe");g.className="strigo-iframe",g.id="strigo-iframe",g.src=e;let f=document.createElement("div");return f.className="strigo-widget",f.id="strigo-widget",f.appendChild(c),f.appendChild(g),document.body.appendChild(f),g}function It(e){let t={};for(let[o,s]of e)t[o]=s;return t}function Ve(){let{host:e,pathname:t,href:o,origin:s,search:c}=window.location;return{host:e,pathName:t,href:o,origin:s,search:c,params:xt(c)}}function xt(e){let o=new URLSearchParams(e).entries();return It(o)}function ae(e){let{subDomain:t,token:o,webApiKey:s,development:c}=e;return c?`http://${Ge}/libro/courses?token=${o.token}&webApiKey=${s}`:`https://${t}.${be}/libro/courses?token=${o.token}&webApiKey=${s}`}function $e(){let e=document.getElementById(Ae);return{webApiKey:e?.getAttribute("data-web-api-key")||"",subDomain:e?.getAttribute("data-subdomain")||""}}function Je(e,t){return e?`http://localhost:${SDK_HOSTING_PORT}/styles/strigo.css`:t?`https://cdn.jsdelivr.net/gh/strigo/strigo-sdk@${t}/dist/production/styles/strigo.min.css`:"https://cdn.jsdelivr.net/gh/strigo/strigo-sdk@latest/dist/production/styles/strigo.min.css"}function Ke(e,t){return e?`http://localhost:${SDK_HOSTING_PORT}/styles/strigo-widget.css`:t?`https://cdn.jsdelivr.net/gh/strigo/strigo-sdk@${t}/dist/production/styles/strigo-widget.min.css`:"https://cdn.jsdelivr.net/gh/strigo/strigo-sdk@latest/dist/production/styles/strigo-widget.min.css"}var l={log(e,t,o){try{let s=`${new Date().toISOString()} - ${t}`;console[e](s,o?` +`;function oe(){return document.getElementsByTagName("head")[0]}function Me(){document.open(),document.close()}function De(){let e=document.createElement("div");return e.className="strigo-main",document.body.appendChild(e),e}function ie(e){let{url:t,parentElement:o}=e,s=document.createElement("link");s.rel="stylesheet",s.href=t,o.appendChild(s)}function se(e){let{url:t,parentElement:o,classNames:s,id:c}=e,g=document.createElement("iframe");return g.classList.add(...s),g.id=c,g.src=t,o.appendChild(g),g}function Pe(){location.reload()}function Fe(){return/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)}function Be(){return Fe()?[window.screen.width,window.screen.width]:[window.screen.width/2,window.screen.width]}function He(){return Fe()?[0,0]:[window.screen.width*.25,0]}function Ue(){let e=new XMLHttpRequest;e.open("GET",window.document.location.href,!1),e.send(null);let o=e.getAllResponseHeaders().toLowerCase().split(`\r +`);for(let s of o)if(s.includes("x-frame-options")){let c=s.split(":");if(c&&c.length>1)return c[1].trim()!=="deny"}return!0}function ke(e){let t=function(){let E=document.getElementById("strigo-widget"),u=E.classList.contains("slide-in");E.classList.toggle("slide-in"),setTimeout(()=>{let x=document.getElementById("strigo-arrow");x.innerHTML=u?ne:Ne},300)},o=document.createElement("div");o.className="strigo-arrow",o.id="strigo-arrow",o.innerHTML=ne;let s=document.createElement("button");s.className="strigo-collapse-button",s.id="strigo-toggle",s.appendChild(o);let c=document.createElement("div");c.className="strigo-collapse-div",c.onclick=()=>{t()},c.appendChild(s);let g=document.createElement("iframe");g.className="strigo-iframe",g.id="strigo-iframe",g.src=e;let f=document.createElement("div");return f.className="strigo-widget",f.id="strigo-widget",f.appendChild(c),f.appendChild(g),document.body.appendChild(f),g}function It(e){let t={};for(let[o,s]of e)t[o]=s;return t}function Ve(){let{host:e,pathname:t,href:o,origin:s,search:c}=window.location;return{host:e,pathName:t,href:o,origin:s,search:c,params:xt(c)}}function xt(e){let o=new URLSearchParams(e).entries();return It(o)}function ae(e){let{subDomain:t,token:o,webApiKey:s,development:c}=e;return c?`http://${Ge}/libro/courses?token=${o.token}&webApiKey=${s}`:`https://${t}.${be}/libro/courses?token=${o.token}&webApiKey=${s}`}function $e(){let e=document.getElementById(Ae);return{webApiKey:e?.getAttribute("data-web-api-key")||"",subDomain:e?.getAttribute("data-subdomain")||""}}function Je(e,t){return e?`http://localhost:${SDK_HOSTING_PORT}/styles/strigo.css`:t?`https://cdn.jsdelivr.net/gh/strigo/strigo-sdk@${t}/dist/production/styles/strigo.min.css`:"https://cdn.jsdelivr.net/gh/strigo/strigo-sdk@latest/dist/production/styles/strigo.min.css"}function Ke(e,t){return e?`http://localhost:${SDK_HOSTING_PORT}/styles/strigo-widget.css`:t?`https://cdn.jsdelivr.net/gh/strigo/strigo-sdk@${t}/dist/production/styles/strigo-widget.min.css`:"https://cdn.jsdelivr.net/gh/strigo/strigo-sdk@latest/dist/production/styles/strigo-widget.min.css"}var l={log(e,t,o){try{let s=`${new Date().toISOString()} - ${t}`;console[e](s,o?` ${JSON.stringify(o)}`:"")}catch(s){console.log("Logging error:",s)}},debug(e,t={}){this.log("debug",e,t)},info(e,t={}){this.log("info",e,t)},warn(e,t={}){this.log("warn",e,t)},error(e,t={}){this.log("error",e,t)}};function b(e,t){try{return JSON.parse(window[e].getItem(t))}catch(o){return l.error(o),null}}function j(e,t,o){try{return window[e].setItem(t,JSON.stringify(o)),o}catch(s){return l.error(s),null}}function ce(e,t,o,s){try{let c=b(e,t);if(!c)throw new Error("Can't find initial state");let g={...c,[o]:s};return window[e].setItem(t,JSON.stringify(g)),g}catch(c){return l.error(c),null}}function H(e,t){try{window[e].removeItem(t)}catch(o){l.error(o)}}function We(e){return j("localStorage","strigoConfig",e)}function G(){return b("localStorage","strigoConfig")}function Ye(){H("localStorage","strigoConfig")}var Y={};vt(Y,{clearSession:()=>de,getSession:()=>Se,getSessionValue:()=>fe,init:()=>Lt,isPanelOpen:()=>ue,setSessionValue:()=>W,setup:()=>ge});function Lt(){return b("sessionStorage","strigoSession")}function ge(e){return j("sessionStorage","strigoSession",e)}function ue(){return Se()?.isPanelOpen}function Se(){return b("sessionStorage","strigoSession")}function W(e,t){return ce("sessionStorage","strigoSession",e,t)}function fe(e){return Se()?.[e]}function de(){H("sessionStorage","strigoSession")}window.onunload=function(){H("sessionStorage","strigoSession")};function qe(){try{let e=q();if(e)return l.debug("Events storage already exists"),e;let t={events:[]};return window["localStorage"].setItem("strigoEvents",JSON.stringify(t)),t}catch(e){return l.error("Init events storage error",{error:e}),null}}function q(){try{return JSON.parse(window["localStorage"].getItem("strigoEvents"))}catch(e){return l.error("Get events storage error",{error:e}),null}}function Xe(e){try{let t=q();if(!t)throw new Error("Can't find initial state");return t.events.push(e),window["localStorage"].setItem("strigoEvents",JSON.stringify(t)),t}catch(t){return l.error("Push event to storage error",{error:t}),null}}function Ze(){try{let e=q();if(!e)throw new Error("Can't find events storage");let t=e.events.pop();return window["localStorage"].setItem("strigoEvents",JSON.stringify(e)),t}catch(e){return l.error("Pop event from storage error",{error:e}),null}}function me(){try{let e=q();if(!e)throw new Error("Can't find events storage");return e.events.pop()}catch(e){return l.error("Get event from storage error",{error:e}),null}}function pe(){let e=me();if(e){l.info("Posting event",e),window.frames[0].postMessage(e,"*");let t=Ze();e.eventName!==t.eventName&&console.error("Events storage error: popped event doesn't match new event",{newEvent:e,poppedEvent:t})}}function et(){for(;me();)pe()}var bt=`
@@ -18,4 +18,4 @@ ${JSON.stringify(o)}`:"")}catch(s){console.log("Logging error:",s)}},debug(e,t={ />
-`;function tt(){W("isLoading",!0);let e=document.createElement("div");e.className="strigo-loader",e.innerHTML=bt,document.body.appendChild(e)}function rt(){let e=document.querySelector(".strigo-loader"),t=setInterval(()=>{e.style.opacity||(e.style.opacity="1");let o=parseFloat(e.style.opacity);o>0?e.style.opacity=(o-.1).toString():(W("isLoading",!1),e.style.pointerEvents="none",clearInterval(t))},200)}function nt(){return!!fe("isLoading")}function Gt({key:e,oldValue:t,newValue:o}){if(e!=="strigoEvents")return;let s=JSON.parse(o)?.events,c=JSON.parse(t)?.events;s.filter(({eventName:f})=>!c.some(({eventName:E})=>f===E)).length>0&&pe()}function ve(){window.addEventListener("message",e=>{if(!(!e||!e.data))switch(e.data){case"close":{window.Strigo&&window.Strigo.shutdown();break}case"rendered":{nt()&&rt();break}default:break}},!1),window.addEventListener("storage",Gt)}function Ee(e){e.addEventListener("load",et)}var he;(g=>{function t(){if(l.info("init called"),qe(),Y&&ue())l.info("SUBSCRIBER SDK"),g.SDKType="SUBSCRIBER",window.dispatchEvent(new Event("strigo-opened"));else{l.info("HOST SDK"),g.SDKType="HOST";let f=G();f&&o(f)}}g.init=t;function o(f){if(g.SDKType==="SUBSCRIBER")return;l.info("setup started");let{email:E,token:u,development:x=!1,version:T}=f,{webApiKey:_,subDomain:z}=$e();if(!x&&(!E||!u||!_||!z)){l.error("Please provide setup data");return}if(We({email:E,initSite:Ve(),token:u,webApiKey:_,subDomain:z,development:x,version:T}),ge({currentUrl:G().initSite.href,isPanelOpen:!0,isLoading:!0}),!ke()){l.info("iframe is not supported, trying other ways"),ie({parentElement:oe(),url:Ke(x,T)});let M=Ue(ae(G()));Ee(M),ve();return}l.info("iframe is supported - building the side by side experience"),Me(),ie({parentElement:oe(),url:Je(x,T)}),tt();let L=De(),N=se({parentElement:L,url:ae(G()),classNames:_e,id:"exercises"});Ee(N),se({parentElement:L,url:G().initSite.href,classNames:ze,id:"original-site"}),Le(["#exercises","#original-site"],{sizes:[25,75],maxSize:Be(),minSize:He()}),ve(),l.info("setup finished")}g.setup=o;function s(){l.info("shutdown called"),Ye(),de(),Pe()}g.shutdown=s;function c(f){Xe({eventName:f}),l.debug("sendEvent called",{eventName:f})}g.sendEvent=c})(he||={});window.Strigo=he;window.Strigo.init();})(); +`;function tt(){W("isLoading",!0);let e=document.createElement("div");e.className="strigo-loader",e.innerHTML=bt,document.body.appendChild(e)}function rt(){let e=document.querySelector(".strigo-loader"),t=setInterval(()=>{e.style.opacity||(e.style.opacity="1");let o=parseFloat(e.style.opacity);o>0?e.style.opacity=(o-.1).toString():(W("isLoading",!1),e.style.pointerEvents="none",clearInterval(t))},200)}function nt(){return!!fe("isLoading")}function Gt({key:e,oldValue:t,newValue:o}){if(e!=="strigoEvents")return;let s=JSON.parse(o)?.events,c=JSON.parse(t)?.events;s.filter(({eventName:f})=>!c.some(({eventName:E})=>f===E)).length>0&&pe()}function ve(){window.addEventListener("message",e=>{if(!(!e||!e.data))switch(e.data){case"close":{window.Strigo&&window.Strigo.shutdown();break}default:break}},!1),window.addEventListener("storage",Gt)}function Ee(e){e.addEventListener("load",()=>{nt()&&rt(),et()})}var he;(g=>{function t(){if(l.info("init called"),qe(),Y&&ue())l.info("SUBSCRIBER SDK"),g.SDKType="SUBSCRIBER",window.dispatchEvent(new Event("strigo-opened"));else{l.info("HOST SDK"),g.SDKType="HOST";let f=G();f&&o(f)}}g.init=t;function o(f){if(g.SDKType==="SUBSCRIBER")return;l.info("setup started");let{email:E,token:u,development:x=!1,version:T}=f,{webApiKey:_,subDomain:z}=$e();if(!x&&(!E||!u||!_||!z)){l.error("Please provide setup data");return}if(We({email:E,initSite:Ve(),token:u,webApiKey:_,subDomain:z,development:x,version:T}),ge({currentUrl:G().initSite.href,isPanelOpen:!0,isLoading:!0}),!Ue()){l.info("iframe is not supported, trying other ways"),ie({parentElement:oe(),url:Ke(x,T)});let M=ke(ae(G()));Ee(M),ve();return}l.info("iframe is supported - building the side by side experience"),Me(),ie({parentElement:oe(),url:Je(x,T)}),tt();let L=De(),N=se({parentElement:L,url:ae(G()),classNames:_e,id:"exercises"});Ee(N),se({parentElement:L,url:G().initSite.href,classNames:ze,id:"original-site"}),Le(["#exercises","#original-site"],{sizes:[25,75],maxSize:Be(),minSize:He()}),ve(),l.info("setup finished")}g.setup=o;function s(){l.info("shutdown called"),Ye(),de(),Pe()}g.shutdown=s;function c(f){Xe({eventName:f}),l.debug("sendEvent called",{eventName:f})}g.sendEvent=c})(he||={});window.Strigo=he;window.Strigo.init();})(); diff --git a/src/modules/listeners/listeners.ts b/src/modules/listeners/listeners.ts index a2f26e8..076d15f 100644 --- a/src/modules/listeners/listeners.ts +++ b/src/modules/listeners/listeners.ts @@ -34,11 +34,11 @@ export function initHostEventListeners() { break; } - case MESSAGE_TYPES.RENDERED: { - isLoading() && hideLoader(); + // case MESSAGE_TYPES.RENDERED: { + // isLoading() && hideLoader(); - break; - } + // break; + // } default: { break; } @@ -53,5 +53,8 @@ export function initHostEventListeners() { // Subscriber event listeners export function initSubscriberEventListeners(iframeElement: HTMLElement) { // Emptying events storage and posting all events - iframeElement.addEventListener("load", eventsSender.postAllEventMessages); + iframeElement.addEventListener("load", () => { + isLoading() && hideLoader(); + eventsSender.postAllEventMessages(); + }); }