var constant={SSO_INSTANCE:new URL(document.currentScript.src).origin,INTROSPECT_API_ENDPOINT:"/api/x_snc_sso/seamless/introspect",LOCAL_SEAMLESS_SSO_PROPERTY_TIME_SPAN:86400,RESOURCE_NOT_FOUND:"Resource not found",PREVIOUSLY_CHECKED:"Previously Checked",ERROR_IN_CALL:"Error in call",INVALID_RESPONSE:"Invalid Response",SEAMLESS_LOCAL_COOKIE:"sso_seamless_local"};function createReturnValue(result,resultStatus,resultMessage,resultAuthenticationMethod){return{result:result,resultStatus:resultStatus,resultMessage:resultMessage,resultAuthenticationMethod:resultAuthenticationMethod}}function getLocalCookie(){var cookieValue=document.cookie.split("; ").find((function(elem){return elem.startsWith(constant.SEAMLESS_LOCAL_COOKIE)?elem:null}));return cookieValue?cookieValue.split("=")[1]:void 0}function setLocalCookie(expirationTime){document.cookie=constant.SEAMLESS_LOCAL_COOKIE+"="+(Date.now()+parseInt(1e3*expirationTime))+"; Max-Age="+expirationTime+"; Secure; Path=/; SameSite=Strict;"}function introspect(appId){return new Promise((function(resolve,reject){var lastLocalCheck=getLocalCookie();if(void 0===lastLocalCheck){var xhr=new XMLHttpRequest;xhr.withCredentials=!0,xhr.open("GET",constant.SSO_INSTANCE+constant.INTROSPECT_API_ENDPOINT),xhr.setRequestHeader("Accept","application/json"),xhr.setRequestHeader("Content-Type","application/json"),appId&&xhr.setRequestHeader("SSO-Application-ID",appId),xhr.send(),xhr.onload=function(){setLocalCookie(JSON.parse(xhr.response).result.localTimeSpan),200===xhr.status?resolve(JSON.parse(xhr.response).result):reject(JSON.parse(xhr.response).result)},xhr.onerror=function(){setLocalCookie(constant.LOCAL_SEAMLESS_SSO_PROPERTY_TIME_SPAN),reject({result:"false",resultMessage:constant.ERROR_IN_CALL,localTimeSpan:constant.LOCAL_SEAMLESS_SSO_PROPERTY_TIME_SPAN})}}else reject({result:"false",resultMessage:constant.PREVIOUSLY_CHECKED,localTimeSpan:parseInt(lastLocalCheck)-Date.now()})}))}function checkOktaSession(apiEndpoint){return new Promise((function(resolve,reject){var ssoReturnValue=createReturnValue(!1,"",""),request=new XMLHttpRequest;request.withCredentials=!0,request.open("GET",apiEndpoint),request.setRequestHeader("Accept","application/json"),request.setRequestHeader("Content-Type","application/json"),request.onload=function(){try{if(200===request.status){var responseJson=JSON.parse(request.responseText);responseJson.login&&(ssoReturnValue=createReturnValue(!0,request.status,responseJson.login,responseJson.amr),resolve(ssoReturnValue))}else 404===request.status?(ssoReturnValue=createReturnValue(!1,request.status,constant.RESOURCE_NOT_FOUND),reject(ssoReturnValue)):(ssoReturnValue=createReturnValue(!1,request.status,constant.INVALID_RESPONSE),reject(ssoReturnValue))}catch(err){ssoReturnValue=createReturnValue(!1,request.status,err.message),reject(ssoReturnValue)}},request.onerror=function(){ssoReturnValue=createReturnValue(!1,500,constant.ERROR_IN_CALL),reject(ssoReturnValue)},request.send()}))}function checkSeamlessSession(appId){return"undefined"!=typeof Promise&&new Promise((function(resolve,reject){introspect(appId).then((function(result){result.result?checkOktaSession(result.resultMessage).then((function(sessionResult){resolve(sessionResult)})).catch((function(sessionResult){reject(sessionResult)})):reject(result)})).catch((function(err){reject(err)}))}))}