/**
 * Skipped minification because the original files appears to be already minified.
 * Original file: /npm/@dsb-norge/vue-keycloak-js@3.0.7/dist/dsb-vue-keycloak.umd.js
 *
 * Do NOT use SRI with dynamically generated files! More information: https://www.jsdelivr.com/using-sri-with-dynamic-files
 */
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`keycloak-js`),require(`vue`)):typeof define==`function`&&define.amd?define([`exports`,`keycloak-js`,`vue`],t):(e=typeof globalThis<`u`?globalThis:e||self,t(e[`dsb-vue-keycloak`]={},e.Keycloak,e.Vue))})(this,function(e,t,n){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});var r=Object.create,i=Object.defineProperty,a=Object.getOwnPropertyDescriptor,o=Object.getOwnPropertyNames,s=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty,l=(e,t,n,r)=>{if(t&&typeof t==`object`||typeof t==`function`)for(var s=o(t),l=0,u=s.length,d;l<u;l++)d=s[l],!c.call(e,d)&&d!==n&&i(e,d,{get:(e=>t[e]).bind(null,d),enumerable:!(r=a(t,d))||r.enumerable});return e};t=((e,t,n)=>(n=e==null?{}:r(s(e)),l(t||!e||!e.__esModule?i(n,`default`,{value:e,enumerable:!0}):n,e)))(t,1);var u=!1,d=(0,n.reactive)(m()),f={install:function(e,t={}){if(u)return;u=!0;let r={config:window.__BASEURL__?`${window.__BASEURL__}/config`:`/config`,init:{onLoad:`login-required`}},i=Object.assign({},r,t),a=g(i);if(a.hasError)throw Error(`Invalid options given: ${a.error}`);if(e.config.globalProperties.$keycloak=(0,n.readonly)(d),!i.config)throw Error(`Keycloak config is required`);_(i.config).then(e=>{h(e,d,i)}).catch(e=>{console.log(e)})}};function p(){return(0,n.readonly)(d)}function m(){return{ready:!1,authenticated:!1,userName:void 0,fullName:void 0,token:void 0,tokenParsed:void 0,logoutFn:void 0,loginFn:void 0,login:void 0,createLoginUrl:void 0,createLogoutUrl:void 0,createRegisterUrl:void 0,register:void 0,accountManagement:void 0,createAccountUrl:void 0,loadUserProfile:void 0,subject:void 0,idToken:void 0,idTokenParsed:void 0,realmAccess:void 0,resourceAccess:void 0,refreshToken:void 0,refreshTokenParsed:void 0,timeSkew:void 0,responseMode:void 0,responseType:void 0,hasRealmRole:void 0,hasResourceRole:void 0,keycloak:void 0}}async function h(e,n,r){let i=new t.default(e),{updateInterval:a,autoRefreshToken:o=!0}=r;function s(e=!1){n.authenticated=e,n.loginFn=i.login,n.login=i.login,n.createLoginUrl=i.createLoginUrl,n.createLogoutUrl=i.createLogoutUrl,n.createRegisterUrl=i.createRegisterUrl,n.register=i.register,n.keycloak=i,e&&(n.accountManagement=i.accountManagement,n.createAccountUrl=i.createAccountUrl,n.hasRealmRole=i.hasRealmRole,n.hasResourceRole=i.hasResourceRole,n.loadUserProfile=i.loadUserProfile,n.token=i.token,n.subject=i.subject,n.idToken=i.idToken,n.idTokenParsed=i.idTokenParsed,n.realmAccess=i.realmAccess,n.resourceAccess=i.resourceAccess,n.refreshToken=i.refreshToken,n.refreshTokenParsed=i.refreshTokenParsed,n.timeSkew=i.timeSkew??void 0,n.responseMode=i.responseMode,n.responseType=i.responseType,n.tokenParsed=i.tokenParsed,n.userName=i.tokenParsed.preferred_username,n.fullName=i.tokenParsed.name)}i.onReady=function(e){s(e),n.ready=!0,typeof r.onReady==`function`&&r.onReady(i,n)},i.onAuthSuccess=function(){let e;o&&(e=setInterval(()=>{i.updateToken(60).then(e=>{r.init?.enableLogging&&console.log(`[vue-keycloak-js] Token ${e?`updated`:`not updated`}`)}).catch(e=>{r.init?.enableLogging&&console.log(`[vue-keycloak-js] Error while updating token: ${e}`),i.clearToken()})},a??1e4)),n.logoutFn=()=>(e&&clearInterval(e),i.logout(r.logout))},i.onAuthRefreshSuccess=function(){s(!0),typeof r.onAuthRefreshSuccess==`function`&&r.onAuthRefreshSuccess(i)},i.onAuthRefreshError=function(){s(!1),typeof r.onAuthRefreshError==`function`&&r.onAuthRefreshError(i)},i.onAuthLogout=function(){s(!1),typeof r.onAuthLogout==`function`&&r.onAuthLogout(i)};try{let e=await i.init(r.init);s(e),typeof r.onInitSuccess==`function`&&r.onInitSuccess(e)}catch(e){s(!1);let t=Error(`Failure during initialization of keycloak-js adapter`,{cause:e});typeof r.onInitError==`function`?r.onInitError(t,e):console.error(t,e)}}function g(e){let{config:t,init:n,onReady:r,onInitError:i,onAuthRefreshError:a,onAuthLogout:o}=e;return typeof t!=`string`&&!v(t)?{hasError:!0,error:`'config' option must be a string or an object. Found: '${typeof t}'`}:!v(n)||typeof n?.onLoad!=`string`?{hasError:!0,error:`'init' option must be an object with an 'onLoad' property. Found: '${n}'`}:r&&typeof r!=`function`?{hasError:!0,error:`'onReady' option must be a function. Found: '${typeof r}'`}:i&&typeof i!=`function`?{hasError:!0,error:`'onInitError' option must be a function. Found: '${typeof i}'`}:a&&typeof a!=`function`?{hasError:!0,error:`'onAuthRefreshError' option must be a function. Found: '${typeof a}'`}:o&&typeof o!=`function`?{hasError:!0,error:`'onAuthLogout' option must be a function. Found: '${typeof o}'`}:{hasError:!1,error:null}}function _(e){return v(e)?Promise.resolve(e):fetch(e,{headers:{Accept:`application/json`}}).then(e=>{if(!e.ok)throw Error(`Failed to fetch config: ${e.statusText}`);return e.json()})}function v(e){return typeof e==`object`&&!!e&&Object.prototype.toString.call(e)!==`[object Array]`}e.default=f,e.useKeycloak=p});