import{c as t,h as e}from"./p-ee1e0eb4.js";import{s as r,r as n,g as a}from"./p-5d409601.js";import{H as o}from"./p-1d4c7c11.js";import{A as s}from"./p-2f569553.js";const i=new class{constructor(){this.sample=t=>t[Math.floor(Math.random()*t.length)],this.keyBy=(t,e,r)=>t.reduce(((t,n)=>(t[e(n)]=r?r(n):n,t)),{}),this.debounce=(t,e)=>{let r=null;return(...n)=>{clearTimeout(r),r=setTimeout(t,e,...n)}}}loadScript(t){var e=document.createElement("script");e.type="text/javascript",e.src=t,document.body.appendChild(e)}loadScriptAsync(t){return new Promise((function(e,r){const n=document.createElement("script");let a=!1;n.type="text/javascript",n.src=t,n.async=!0,n.onerror=function(t){r(t)},n.onload=n.onreadystatechange=function(){a||this.readyState&&"complete"!=this.readyState||(a=!0,e(!0))};const o=document.getElementsByTagName("script")[0];o.parentElement.insertBefore(n,o)}))}extend(...t){let e,r,n,a,o,s,i,c=t[0]||{},l=1,u=t.length,p=!1;for("boolean"==typeof c&&(p=c,c=t[l]||{},l++),"object"!=typeof c&&"function"!=typeof c&&(c={}),l===u&&(c=this,l--);l<u;l++)if(null!==(e=t[l]))for(r in e)n=c[r],o=e[r],c!==o&&(a=Array.isArray(n)?"array":typeof n,p&&o&&((s=Array.isArray(o))||"object"==typeof o)?(s?(s=!1,i=n&&"array"===a?n:[]):i=n&&"object"===a?n:{},c[r]=this.extend(p,i,o)):void 0!==o&&(c[r]=o));return c}setLocalization(){if(!sparkle.utils.getCookieValue("Sparkle.Localization.CultureName")){let t=navigator.language;sparkle.utils.setCookieValue("Sparkle.Localization.CultureName",t,new Date((new Date).getTime()+15768e7),sparkle.appPath)}}};async function c(t){if(!window)return;const e=window,r=e.Sparkle;if(!r||!r.config||"Object"===r.config.constructor.name)return e.Sparkle=e.Sparkle||{},e.Sparkle.config=Object.assign(Object.assign({},e.Sparkle.config),t),e.Sparkle.config;console.error("Sparkle config was already initialized")}async function l(e){await i.loadScriptAsync(t("../assets/lib/sparkle.js")),await c(e)}const u="enc_auth_token";class p{constructor(){}static getInstance(){return p.instance||(p.instance=new p),p.instance}async authenticate(t){const e={"Content-Type":"application/json"};let n;s.state.loading=!0;try{if(n=await o.http.post("api/Account/Authenticate",t,{headers:e}),n){const e=n.Data,a={Id:e.Id,UserName:e.UserName,Email:e.Email,Roles:e.Roles,IsVerified:e.IsVerified,JWToken:e.JWToken,IssuedOn:e.IssuedOn,ExpiresOn:e.ExpiresOn,RefreshToken:e.RefreshToken,PhotoUrl:"",IsFacilitator:e.Roles.indexOf("Facilitator")>0},o=t.RememberClient?new Date(a.ExpiresOn):void 0;return sparkle.auth.setToken(a.JWToken,o),sparkle.utils.setCookieValue(u,a.JWToken,o,sparkle.appPath),await r("CurrentUser",a),s.state.authUser=Object.assign({},a),s.state.loading=!1,a}}catch(t){return s.state.loading=!1,t}}async signOut(){await n("CurrentUser"),sessionStorage.clear(),sparkle.auth.clearToken(),s.state.authUser=null,s.state.isAuthenticated=!1}async getLocalAuthUser(){return a("CurrentUser")}}const f=t=>{var{component:r,permission:n,render:a}=t,o=function(t,e){var r={};for(var n in t)Object.prototype.hasOwnProperty.call(t,n)&&e.indexOf(n)<0&&(r[n]=t[n]);if(null!=t&&"function"==typeof Object.getOwnPropertySymbols){var a=0;for(n=Object.getOwnPropertySymbols(t);a<n.length;a++)e.indexOf(n[a])<0&&Object.prototype.propertyIsEnumerable.call(t,n[a])&&(r[n[a]]=t[n[a]])}return r}(t,["component","permission","render"]);const i=r;return e("stencil-route",Object.assign({},o,{routeRender:t=>s.state.isAuthenticated?n&&!sparkle.auth.isGranted(n)?e("stencil-router-redirect",{url:"/unauthorized"}):i?e(i,Object.assign({},t,t.componentProps)):a(t):e("stencil-router-redirect",{url:"/login"})}))};export{p as A,f as P,l as i,c as s}