"remove"in Element.prototype||(Element.prototype.remove=function(){this.parentNode&&this.parentNode.removeChild(this)});
window.centaurPiano=window.centaurPiano||{redirectTo:!1,loginReload:"enabled",ajaxUrl:!1,checkSync:!1,logged_in:!1,reset_token:!1},window.centaurPiano.controls=function(){function e(e){"no"!==centaurPiano.loginReload&&(e=void 0===e?centaurPiano.redirectTo:e,window.location.href===e?window.location.reload():window.location.replace(e))}function a(n){pianoLoaded.then(()=>{if(!window.tp.user.isUserValid()&&!window.centaurPiano.logged_in)return console.error("Nothing to do!",n),!1;let e={method:"POST",headers:{Accept:"application/json"},body:new URLSearchParams};e.body.append("nonce",window.centaurPiano.nonce),e.body.append("uid",(void 0===n.uid?window.tp.user.getProvider().getUser():n).uid),e.body.append("token",void 0===n.token?window.tp.user.getProvider().getToken():n.token),e.body.append("action",void 0===n.action?window.centaurPiano.logged_in?"piano_profile_update":"piano_login":n.action),fetch(window.centaurPiano.ajaxUrl,e).then(e=>e.json()).then(e=>{if(200!==e.status)throw new Error(e.message||"Unknown error");"function"==typeof n.success&&n.success(e)}).catch("function"==typeof n.failure?n.failure:console.error)}).catch(console.error)}async function r(){return new Promise(function(n,o){window.tp.pianoId.isUserValid()?n(window.tp.pianoId.getToken()):window.centaurPiano.logged_in?a({action:"piano_relog",token:!1,uid:!1,success:function(e){e&&e.user_token?n(e.user_token):o("Authentication token invalid",e)},failure:function(e){o(e.message||"Error collecting authentication token",e)}}):o("No token available")})}async function d(e){return console.debug("Starting Piano login"),window.tp.pianoId.loginByToken(e),async function(){let e=0;return g(()=>window.tp.user.isUserValid()?i?Promise.resolve({msg:"Login by token process completed",state:!0}):(console.debug("Waiting for login process to complete",++e),Promise.reject()):(console.debug("Login failed",++e),Promise.resolve({msg:"Login failed",state:!1})),300,100)}().then(e=>e.state?Promise.resolve(e.msg):Promise.reject(e.msg))}function s(e,n,o){var i=document.createElement("div"),t=document.createElement("div");t.setAttribute("id",e.toString().replace(/^#/,"")),o&&t.classList.add("pianoLoading"),void 0!==l&&l.remove(),(l=document.createElement("div")).addEventListener("click",function(e){e.target===l&&(e.stopPropagation(),l.remove())}),i.appendChild(t),l.appendChild(i),Object.assign(l.style,w),Object.assign(i.style,f),document.body.appendChild(l),!1===("function"==typeof n&&n(t,l))&&l.remove()}function c(e,n,o){var i="string"==typeof e?document.querySelector(e):e;switch(i.id||(i.id="_"+Math.random().toString(36).substr(2,9)),n){case"login":case"register":case"new_password":case"restore":return window.tp.user.isUserValid()?(console.debug("Piano: failed to show "+n+" screen."),!1):(void 0!==i.classList&&i.classList.add("pianoLoading"),window.tp.pianoId.show({displayMode:"inline",containerSelector:"#"+i.id,screen:n}),!0);case"myaccount":return window.tp.myaccount.show({displayMode:"inline",containerSelector:"#"+i.id,loginRequired:function(){t()}}),!0;case"offer":return void 0===o.offer||""===o.offer?!1:(window.tp.offer.show({displayMode:"inline",containerSelector:"#"+i.id,offerId:o.offer,templateId:o.template,termIds:o.terms}),!0);default:return console.error("No screen can be shown for: ",n),!1}}function n(){pianoLoaded.then(function(){s("tinypassRegister",function(e){return c(e,0<window.centaurPiano.reset_token.length?"new_password":"restore",{})},!0)}).catch(console.error)}function u(){let e=new URLSearchParams(window.location.search);e.get("failed-login")?window.location.reload():(e.set("failed-login",1),window.location.search=e)}var l,o=new Event("pianoLoginSuccess"),g=(t,a,r)=>new Promise((o,i)=>t().then(o).catch(e=>{return 1<a?(n=r,new Promise(e=>setTimeout(e,n)).then(g.bind(null,t,a-1,r)).then(o).catch(i)):i(e);var n})),i=!1,p={loginSuccess:function(){console.debug("Piano: Login success."),i=!0,window.centaurPiano.logged_in?(console.debug("Piano: Login complete event triggering."),window.dispatchEvent(o)):window.tp.user.isUserValid()&&(console.debug("Piano: Not logged into service provider."),a({action:"piano_login",success:()=>{console.debug("Piano: Service provider logged in."),e()},failure:e=>{console.debug("Piano: Failed to log in to service provider."),!0===confirm(e.message+"\n\nDo you want to reload the page and try again?")&&(window.tp.user.logout(),window.location.reload())}}))},loginFailed:e=>{console.debug("Piano: Login failed",e)},loginRequired:function(){console.debug("Piano: Login required."),t()},loggedOut:function(){console.debug("Piano: Logged out."),window.centaurPiano.logged_in&&a({action:"piano_logout",token:!1,uid:!1,success:()=>e})},profileUpdate:function(){console.debug("Piano: Profile update."),a({action:"piano_profile_update"})},onShow:function(){for(var e=document.querySelectorAll(".pianoLoading"),n=0;n<e.length;n++)e[n].classList.remove("pianoLoading")}},w={position:"fixed",top:0,left:0,right:0,bottom:0,width:"100vw",height:"100vh",overflow:"hidden auto",zIndex:100022,backgroundColor:"rgba( 0, 0, 0, 0.75 )",backgroundImage:'url("data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDY0MCA2NDAiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik02MzkuOTk5IDQ4LjA0OGwtMjc0LjEyNiAyNzYuOTM5IDI2Ny42MDQgMjcwLjM1My00NC4xNzkgNDQuNjU5LTI2Ny42MDQtMjcwLjM1My0yNjMuNzA0IDI2Ni4zOS00My42NjgtNDQuMDg0IDI2My43MDQtMjY2LjQyMi0yNzguMDI2LTI4MC44NzEgNDQuMjEyLTQ0LjY1OSAyNzguMDI2IDI4MC44NzEgMjc0LjA5NC0yNzYuOTA3IDQzLjY2OCA0NC4wODR6IiAvPjwvc3ZnPgo=")',backgroundSize:"20px 20px",backgroundRepeat:"no-repeat",backgroundPosition:"95% 30px",cursor:"pointer",padding:"75px 20px 20px"},f={maxWidth:window.centaurPiano.width+"px",minWidth:"280px",width:"100%",padding:"10px",borderRadius:"10px",backgroundColor:"#ffffff",border:"solid 10px #efefef",margin:"0 auto",cursor:"default"},t=function(){pianoLoaded.then(function(){s("tinypassRegister",function(e){return c(e,"login",{})},!0)}).catch(console.error)},h={running:!1,elements:[],watch:function(){for(var e in h.elements)h.elements.hasOwnProperty(e)&&(n=h.elements[e],o=void 0,o=n.getBoundingClientRect(),n=Math.max(document.documentElement.clientHeight,window.innerHeight),o.bottom<0||0<=o.top-n||(o=void 0!==h.elements[e].dataset.pianoScreen&&h.elements[e].dataset.pianoScreen,n=void 0!==h.elements[e].dataset.pianoArgs&&JSON.parse(h.elements[e].dataset.pianoArgs),s("tinypass"+o,function(n,o){return function(e){return c(e,n,o)}}(o,n)),h.elements.splice(e,1)));var n,o;0===h.elements.length&&(h.running=!1,window.removeEventListener("scroll",h.watch))},addElement:function(e){h.elements.push(e),h.running||window.addEventListener("scroll",h.watch)}};return pianoLoaded.then(()=>{var e,n=document.querySelectorAll("[data-piano-screen]");for(window.tp.pianoId.init(p),window.centaurPiano.checkSync&&window.tp.user.isUserValid()&&a({action:"piano_profile_update"}),window.centaurPiano.logged_in&&!window.tp.user.isUserValid()&&(console.debug("Login disconnection"),r().then(e=>g(()=>(console.debug("Trying to login with token"),d(e)),5,2e3)).then(console.debug).catch(e=>{console.error("Piano: Authentication token login failure.",e),a({action:"piano_logout",token:!1,uid:!1,success:u})})),document.addEventListener("keyup",function(e){"Escape"===e.key&&void 0!==l&&(e.stopPropagation(),l.remove())}),e=0;e<n.length;e++){var o=n[e],i=void 0!==o.dataset.pianoArgs?JSON.parse(o.dataset.pianoArgs):{},t=void 0!==o.dataset.pianoType?o.dataset.pianoType:"inline";if(void 0!==o.dataset.pianoScreen)if(void 0!==o.id&&""!==o.id||(o.id=function(e){for(var n="abcdefghijklmnopqrstuvwxyz",o="",i=e/4,t=0;t<i;t++)o+=Array(4).join().split(",").map(function(){return n.charAt(Math.floor(Math.random()*n.length))}).join(""),t<i-1&&(o+="-");return o}(24)),"logout"!==o.dataset.pianoScreen)switch(t){case"inline":c(o,o.dataset.pianoScreen,void 0!==o.dataset.pianoArgs&&JSON.parse(o.dataset.pianoArgs));break;case"modal":o.addEventListener("click",function(e){var n=void 0!==this.dataset.pianoScreen&&this.dataset.pianoScreen,o=void 0!==this.dataset.pianoArgs&&JSON.parse(this.dataset.pianoArgs),i=!1;s("tinypass"+n,function(e){return i=c(e,n,o)}),void 0!==e&&i&&e.preventDefault()});break;case"timer":i.time=void 0!==i.time&&0<i.time?i.time:1,setTimeout(function(n,o){return function(){s("tinypass"+n.dataset.pianoScreen,function(e){return c(e,n.dataset.pianoScreen,o)})}}(o,i),1e3*i.time);break;case"scroll":h.addElement(o)}else o.addEventListener("click",function(){window.tp.user.isUserValid()&&window.tp.pianoId.logout()})}}).catch(console.error),{createModal:s,showMyAccount:function(){pianoLoaded.then(function(){s("tinypassMyAccount",function(e){return c(e,"myaccount",{})})}).catch(console.error)},showRegistration:function(){pianoLoaded.then(function(){s("tinypassRegister",function(e){return c(e,"register",{})},!0)}).catch(console.error)},showPasswordRecover:n,showNewPassword:n,showLogin:t,showOffer:function(n,o,i){pianoLoaded.then(function(){s("tinypassRegister",function(e){return c(e,"offer",{offer:n,templateId:o,terms:i})})}).catch(console.error)},show:c,getAuthToken:r}}();
//# sourceMappingURL=centaurpiano.min.js.map
