@criipto/verify-react 1.2.1 → 1.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +13 -0
- package/dist/context.d.ts +1 -0
- package/dist/criipto-verify-react.cjs.js +1 -1
- package/dist/criipto-verify-react.cjs.js.map +1 -1
- package/dist/criipto-verify-react.esm.js +1 -1
- package/dist/criipto-verify-react.esm.js.map +1 -1
- package/dist/use-criipto-verify.d.ts +4 -0
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
var e={n:n=>{var t=n&&n.__esModule?()=>n.default:()=>n;return e.d(t,{a:t}),t},d:(n,t)=>{for(var i in t)e.o(t,i)&&!e.o(n,i)&&Object.defineProperty(n,i,{enumerable:!0,get:t[i]})},o:(e,n)=>Object.prototype.hasOwnProperty.call(e,n)},n={};e.d(n,{AuthMethodButton:()=>F,AuthMethodSelector:()=>$,AuthMethodSelectorSweden:()=>ee,CriiptoVerifyProvider:()=>j,OAuth2Error:()=>o.OAuth2Error,QRCode:()=>ne,SEBankIDQRCode:()=>q,actions:()=>a,filterAcrValues:()=>v,useCriiptoVerify:()=>te});const t=require("react/jsx-runtime"),i=require("react");var r=e.n(i);const o=require("@criipto/auth-js");var s=e.n(o);const a=["confirm","accept","approve","sign","login"],l=()=>{throw new Error("You forgot to wrap your component in <CriiptoVerifyProvider>.")},c={loginWithRedirect:l,loginWithPopup:l,checkSession:l,logout:l,fetchOpenIDConfiguration:l,buildAuthorizeUrl:l,generatePKCE:l,buildOptions:l,handleResponse:l,responseType:"token",completionStrategy:"client",result:null,claims:null,domain:"",action:"login",pkce:void 0,store:null,isLoading:!1,client:null},A=(0,i.createContext)(c),u="urn:grn:authn:fi";function d(e){return e.split(/:|-/).map((e=>2===(e=e.replace(/id(\s|$)/,"ID")).length?e.toUpperCase():e.substr(0,1).toUpperCase()+e.substr(1))).join(" ")}function h(e){throw new Error(`Unsupported language ${e}`)}function g(e,n){return"login"===n?"da"===e?"Login med":"sv"===e?"Logga in med":"nb"===e?"Logg inn med":"Login with":"approve"===n?"da"===e?"Godkend med":"sv"===e?"Godkänn med":"nb"===e?"Godkjenne med":"Approve with":"sign"===n?"da"===e?"Underskriv med":"sv"===e?"Signera med":"nb"===e?"Signer med":"Sign with":"confirm"===n?"da"===e?"Bekræft med":"sv"===e?"Bekräfta med":"nb"===e?"Bekreft med":"Confirm with":"accept"===n?"da"===e?"Accepter med":"sv"===e?"Acceptera med":"nb"===e?"Aksepterer med":"Accept with":void function(e){throw new Error("Didn't expect to get here")}()}function f(e){return(e=e.replace("urn:grn:authn:","")).startsWith("fi")?"fi":e.startsWith("itsme")?"itsme":e.split(":").slice(0,2).join(":")}function p(e,n){const t=f(n=n.replace("urn:grn:authn:",""));if("be:eid"===t)return{title:d(n).replace("BEEID","Belgian eID")};if("nl:digid"===t)return{title:d(n).replace("NL ","")};if("dk:mitid"===t)return"business"===n.replace("dk:mitid:","")?"en"===e?{title:"MitID Business"}:{title:"MitID Erhverv"}:{title:"MitID"};if("dk:nemid"===t){let t,i=n.replace("dk:nemid:","");return"poces"===i&&("en"===e&&(t="Personal"),"da"===e&&(t="Personlig"),"sv"===e&&(t="Personlig"),"nb"===e&&(t="Personlig")),"moces"===i&&("en"===e&&(t="Employee key card"),"da"===e&&(t="Medarbejder nøglekort"),"sv"===e&&(t="Anställd nyckelkort"),"nb"===e&&(t="Ansatt nøkkelkort")),"moces:codefile"===i&&("en"===e&&(t="Employee key file"),"da"===e&&(t="Medarbejder nøglefil"),"sv"===e&&(t="Anställd nyckelfil"),"nb"===e&&(t="Ansatt nøkkelfil")),{title:"NemID",subtitle:t}}if("fi:mobile-id"===n){if("en"===e)return{title:"Finnish Mobile ID"};if("da"===e)return{title:"Finsk Mobil ID"};if("sv"===e)return{title:"Finskt Mobil ID"};if("nb"===e)return{title:"Finsk Mobil ID"}}if("fi:bank-id"===n){if("en"===e)return{title:"Finnish Bank ID"};if("da"===e)return{title:"Finsk Bank ID"};if("sv"===e)return{title:"Finskt Bank ID"};if("nb"===e)return{title:"Finsk Bank ID"}}if("fi"===t)return{title:d(n).replace("FI","FTN")};if("itsme"===t)return{title:d(n).replace("me","ME")};if("se:bankid"===t){let t,i=n.replace("se:bankid:","");return"same-device"===i&&("en"===e&&(t="On this device"),"da"===e&&(t="På denne enhed"),"sv"===e&&(t="På denna enhet"),"nb"===e&&(t="På denne enhet")),"another-device"===i&&("en"===e&&(t="With your SSN"),"da"===e&&(t="Med dit personnummer"),"sv"===e&&(t="Med ditt personnummer"),"nb"===e&&(t="Med personnummeret ditt")),"another-device:qr"===i&&("en"===e&&(t="With QR Code"),"da"===e&&(t="Med QR-kode"),"sv"===e&&(t="Med QR-kod"),"nb"===e&&(t="Med QR-kode")),{title:"BankID",subtitle:t}}if("de:sofort"===t)return{title:d(n).replace("DE ","")};if("no:bankid"===t){let t;return n.endsWith(":substantial")&&("en"===e&&(t="Biometrics"),"da"===e&&(t="Biometri "),"sv"===e&&(t="Biometri"),"nb"===e&&(t="Biometri")),{title:t?"BankID":d(n).replace("NO ",""),subtitle:t}}return"no:vipps"===t?{title:d(n).replace("NO ","")}:{title:d(n)}}function v(e){let n=e.slice(),t=function(e){let n=null;return e.forEach((e=>{if(e.startsWith("urn:grn:authn:dk:mitid")&&"urn:grn:authn:dk:mitid:business"!==e)if(n){let t=e.replace("urn:grn:authn:dk:mitid",""),i=n.replace("urn:grn:authn:dk:mitid","");(":low"===t&&[":substantial",":high"].includes(i)||":substantial"===t&&":high"===i)&&(n=e)}else n=e})),n}(e),i=e.slice();return t&&(i=e.filter((e=>!e.startsWith("urn:grn:authn:dk:mitid")||"urn:grn:authn:dk:mitid:business"===e)).concat([t]).sort(((e,t)=>n.indexOf(e)-n.indexOf(t)))),e.includes(`${u}:all`)&&(i.includes(`${u}:bank-id`)||i.push(`${u}:bank-id`),i.includes(`${u}:mobile-id`)||i.push(`${u}:mobile-id`),i=i.filter((e=>e!==`${u}:all`))),i}const m=require("jwt-decode");var C=e.n(m);function k(){let e={};return{getItem:n=>e[n]||null,setItem(n,t){e[n]=t.toString()},removeItem(n){delete e[n]},clear(){e={}},key:n=>Object.keys(e)[n],get length(){return Object.keys(e).length}}}var b=function(e,n,t,i){return new(t||(t=Promise))((function(r,o){function s(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(s,a)}l((i=i.apply(e,n||[])).next())}))};const I="@criipto-verify-react/session",E=["urn:grn:authn:dk:mitid:low","urn:grn:authn:dk:mitid:substantial","urn:grn:authn:dk:mitid:high","urn:grn:authn:se:bankid:same-device","urn:grn:authn:se:bankid:another-device","urn:grn:authn:se:bankid:another-device:qr"],y=["urn:grn:authn:dk:mitid:low","urn:grn:authn:dk:mitid:substantial","urn:grn:authn:dk:mitid:high"];function B(e,n){const{options:t,action:i,message:r}=n,o=(null==t?void 0:t.acrValues)?Array.isArray(null==t?void 0:t.acrValues)?null==t?void 0:t.acrValues:[null==t?void 0:t.acrValues]:[];let s=(e?e.split(" "):[]).concat((null==t?void 0:t.loginHint)?null==t?void 0:t.loginHint.split(" "):[]).filter((e=>!e.startsWith("message:")&&!e.startsWith("action:")));return i&&(s=s.filter((e=>!e.startsWith("action:"))),1===o.length?E.includes(o[0])&&s.push(`action:${i}`):o.length>=2?o.some((e=>E.includes(e)))&&s.push(`action:${i}`):s.push(`action:${i}`)),r&&(1===o.length?y.includes(o[0])&&s.push(`message:${btoa(r)}`):o.length>=2?o.some((e=>y.includes(e)))&&s.push(`message:${btoa(r)}`):s.push(`message:${btoa(r)}`)),s.length?s.join(" "):void 0}function w(e){if(e)return e;if("undefined"!=typeof window&&void 0!==window.location)return window.location.origin+window.location.pathname;throw new Error("Unable to determine default redirect uri, please provide a redirectUri")}const Q="undefined"==typeof sessionStorage?(console.warn("Creating memory store for PKCE values as no sessionStorage is available."),k()):sessionStorage,j=e=>{var n,r,l;const c=(0,i.useMemo)((()=>new(s())({domain:e.domain,clientID:e.clientID,store:Q,redirectUri:w(e.redirectUri),protocol:e.protocol})),[e.domain,e.clientID,e.redirectUri,e.protocol]),[u,d]=(0,i.useState)(null);(0,i.useEffect)((()=>{let e=!0;return b(void 0,void 0,void 0,(function*(){const n=yield c.fetchOpenIDConfiguration();e&&d(n)})),()=>{e=!1}}),[c]);const[h,g]=(0,i.useState)(null),f=(0,i.useMemo)((()=>h&&"id_token"in h?C()(h.id_token):null),[h]),[p,m]=(0,i.useState)(!1),[k,E]=(0,i.useState)(e.pkce),y=e.response||"token",j=e.completionStrategy||"client",R=e.uiLocales,x=e.loginHint,U=null!==(r=null!==(n=e.action)&&void 0!==n?n:function(e){if(!e)return;const n=e.split(" ").find((e=>e.startsWith("action:")));if(!n)return;const t=n.replace("action:","");return a.includes(t)?t:void 0}(x))&&void 0!==r?r:"login",O=null!==(l=e.message)&&void 0!==l?l:function(e){var n;if(!e)return;const t=e.split(" ").find((e=>e.startsWith("message:")));if(!t)return;const i=t.replace("message:","");return null!==(n=function(e){try{return atob(e)}catch(e){return null}}(i))&&void 0!==n?n:i}(x),D=e.sessionStore,S=()=>{if(!e.pkce){if("token"!==y||"client"!==j)return(0,o.clearPKCEState)(Q),void E(void 0);(0,o.clearPKCEState)(Q),b(void 0,void 0,void 0,(function*(){const e=yield(0,o.generatePKCE)();E(e)}))}},L=(0,i.useCallback)((n=>{var t,i,r,o,s;return Object.assign(Object.assign({redirectUri:w(e.redirectUri),responseType:"code"},n||{}),{state:null!==(t=e.state)&&void 0!==t?t:null==n?void 0:n.state,nonce:null!==(i=e.nonce)&&void 0!==i?i:null==n?void 0:n.nonce,prompt:null!==(r=e.prompt)&&void 0!==r?r:null==n?void 0:n.prompt,scope:null!==(o=e.scope)&&void 0!==o?o:null==n?void 0:n.scope,uiLocales:null!=R?R:null==n?void 0:n.uiLocales,pkce:null!==(s=null==n?void 0:n.pkce)&&void 0!==s?s:k,loginHint:B(e.loginHint,{options:n,action:U,message:O}),extraUrlParams:void 0!==e.criiptoSdk?{criipto_sdk:e.criiptoSdk}:{criipto_sdk:"@criipto/verify-react@1.2.1"}})}),[k,e.state,e.nonce,e.prompt,e.scope,R,U,O,e.redirectUri,e.criiptoSdk,e.loginHint]),P=(0,i.useCallback)((e=>b(void 0,void 0,void 0,(function*(){return yield c.buildAuthorizeUrl(c.buildAuthorizeParams(L(e)))}))),[c,L]),V=(0,i.useCallback)(((n,t)=>b(void 0,void 0,void 0,(function*(){if(n instanceof Error)g(n);else if(t.pkce&&"token"===y){let i=t.redirectUri||w(e.redirectUri);if(!i)throw new Error("redirectUri must be configured globally or per authentication component");yield c.processResponse(n,{code_verifier:t.pkce.code_verifier,redirect_uri:i}).then((e=>{(null==e?void 0:e.code)?g({code:e.code,state:e.state,source:t.source}):(null==e?void 0:e.id_token)?(g({id_token:e.id_token,state:e.state,source:t.source}),null==D||D.setItem(I,e.id_token)):g(null)})).catch((e=>{g(e)}))}else(null==n?void 0:n.code)?g({code:n.code,state:n.state,source:t.source}):(null==n?void 0:n.id_token)?(g({id_token:n.id_token,state:n.state,source:t.source}),null==D||D.setItem(I,n.id_token)):(null==n?void 0:n.error)?g(new o.OAuth2Error(n.error,n.error_description,n.state)):g(null);S()}))),[S,y,g,c,D,e.redirectUri]),N=(0,i.useCallback)((()=>b(void 0,void 0,void 0,(function*(){return c.checkSession({redirectUri:w(e.redirectUri)}).then((e=>{(null==e?void 0:e.code)?g({code:e.code}):(null==e?void 0:e.id_token)?(g({id_token:e.id_token}),null==D||D.setItem(I,e.id_token)):g(null)}))}))),[D,c,e.redirectUri]),M=(0,i.useCallback)((n=>b(void 0,void 0,void 0,(function*(){var t;null==D||D.removeItem(I),yield c.logout({redirectUri:null!==(t=null==n?void 0:n.redirectUri)&&void 0!==t?t:w(e.redirectUri)})}))),[D,c,e.redirectUri]),T=(0,i.useMemo)((()=>({loginWithRedirect:e=>b(void 0,void 0,void 0,(function*(){yield c.redirect.authorize(L(e))})),loginWithPopup:e=>c.popup.authorize(L(e)).then((e=>{(null==e?void 0:e.code)?g({code:e.code}):(null==e?void 0:e.id_token)?g({id_token:e.id_token}):g(null)})).catch((e=>{g(e)})),checkSession:N,logout:M,fetchOpenIDConfiguration:()=>c.fetchOpenIDConfiguration(),buildAuthorizeUrl:P,generatePKCE:()=>b(void 0,void 0,void 0,(function*(){if("token"===y&&"client"===j)return yield(0,o.generatePKCE)()})),buildOptions:L,handleResponse:V,responseType:y,completionStrategy:j,result:h,claims:f,domain:c.domain,redirectUri:w(e.redirectUri),action:U,message:O,pkce:k,store:Q,isLoading:p,acrValues:u?v(u.acr_values_supported):void 0,client:c,uiLocales:R})),[c,e.redirectUri,y,j,h,f,U,O,k,e.state,e.prompt,p,V,M,u,R,N]);return(0,i.useEffect)((()=>{if(!c.redirect.hasMatch())return void S();let e=!0;m(!0);const n=(0,o.parseAuthorizeResponseFromLocation)(window.location);return n.code&&"code"===y?(m(!1),g({code:n.code,source:"redirect"}),void S()):(c.redirect.match().then((n=>{e&&(m(!1),(null==n?void 0:n.code)?g({code:n.code,source:"redirect"}):(null==n?void 0:n.id_token)?(g({id_token:n.id_token,source:"redirect"}),null==D||D.setItem(I,n.id_token),function(e){const n=new URL(e.location.href);n.searchParams.delete("code"),n.searchParams.delete("state"),e.history.replaceState({},e.document.title,n.pathname+n.search)}(window)):g(null),S())})).catch((n=>{e&&(m(!1),g(n),S())})),()=>{e=!1})}),[e.pkce,y]),(0,i.useEffect)((()=>{if(D&&!f)if(f);else{const e=D.getItem(I);if(!e)return;g({id_token:e})}}),[D,f]),(0,i.useEffect)((()=>{if(!f)return;if(!D)return;const e=setInterval((()=>{const e=Date.now();if(f.exp<e/1e3)return g(null),void(null==D||D.removeItem(I))}),5e3);return()=>clearInterval(e)}),[D,f,h]),(0,i.useEffect)((()=>{if(!D)return;if(c.redirect.hasMatch())return;if(D.getItem(I))return;let e=!0;return m(!0),N().catch((e=>{console.error("session silent check error",e)})).finally((()=>{e&&m(!1)})),()=>{e=!1}}),[D,c]),(0,t.jsx)(A.Provider,Object.assign({value:T},{children:e.children}))},R=require("ua-parser-js");var x=e.n(R);function U(e,n){return n.test(navigator.userAgent)}function O(e){return U(0,/iPad|iPhone|iPod/)&&!window.MSStream?"ios":U(0,/Android/)?"android":null}function D(e){return e?x()(e):null}function S(e){const{links:n,onError:t,onComplete:o,onInitiate:s}=e,[a,l]=(0,i.useState)(!1),{domain:c}=(0,i.useContext)(A);return(0,i.useEffect)((()=>{if(!a)return;let e=!0;const i=()=>{return r=this,s=void 0,l=function*(){if(!e)return;const r=yield fetch(n.pollUrl);if(202!==r.status){if(!(r.status>=400)){if(!e)return;const{targetUrl:n}=yield r.json();return void(yield o(n))}{if(!e)return;const n=yield r.text();t(n)}}else setTimeout(i,1e3)},new((a=void 0)||(a=Promise))((function(e,n){function t(e){try{o(l.next(e))}catch(e){n(e)}}function i(e){try{o(l.throw(e))}catch(e){n(e)}}function o(n){var r;n.done?e(n.value):(r=n.value,r instanceof a?r:new a((function(e){e(r)}))).then(t,i)}o((l=l.apply(r,s||[])).next())}));var r,s,a,l};return setTimeout(i,1e3),()=>{e=!1}}),[a]),r().cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{s(),l(!0)}}))}function L(e){const{links:n,onError:t,onComplete:o,onInitiate:s,onLog:a}=e,[l,c]=(0,i.useState)(!1);return function(e,n=[]){const t=(0,i.useRef)(document.visibilityState),[r,o]=(0,i.useState)(t.current);(0,i.useEffect)((()=>(document.addEventListener("visibilitychange",s),()=>{document.removeEventListener("visibilitychange",s)})),n);const s=()=>{const n=document.visibilityState;"hidden"===t.current&&"visible"===n&&e&&e(),t.current=n,o(t.current)}}((()=>{return e=this,t=void 0,r=function*(){a("ForegroundStrategy","onForeground",l.toString()),l&&o(n.completeUrl)},new((i=void 0)||(i=Promise))((function(n,o){function s(e){try{l(r.next(e))}catch(e){o(e)}}function a(e){try{l(r.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(s,a)}l((r=r.apply(e,t||[])).next())}));var e,t,i,r}),[n,l]),r().cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{a("ForegroundStrategy","handleInitiate"),s(),c(!0)}}))}const P="@criipto/verify-react:sebankid:state",V="undefined"==typeof sessionStorage?(console.warn("Creating memory store for PKCE values as no sessionStorage is available."),k()):sessionStorage;function N(){const e=V.getItem(P);if(e)return JSON.parse(e)}const M=N();function T(e){const{links:n,onError:t,onComplete:o,onInitiate:s,onLog:a,pkce:l,redirectUri:c}=e;return(0,i.useEffect)((()=>{const e=N();e&&(V.removeItem(P),o(e.links.completeUrl))}),[]),r().cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{var e;a("ReloadStrategy","handleInitiate"),e={links:n,redirectUri:c,pkce:l},V.setItem(P,JSON.stringify(e)),s()}}))}var W=function(e,n,t,i){return new(t||(t=Promise))((function(r,o){function s(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(s,a)}l((i=i.apply(e,n||[])).next())}))};function Y(e){var n,o,s;const a=D("undefined"!=typeof navigator?navigator.userAgent:e.userAgent),l="iOS"===(null==a?void 0:a.os.name)?"iOS":"Android"===(null==a?void 0:a.os.name)?"android":null,c=!("iOS"!==l||!(null===(n=null==a?void 0:a.browser.name)||void 0===n?void 0:n.includes("Safari"))),u=l?c?"Reload":"Foreground":"Poll",[d,h]=(0,i.useState)(e.href),[g,f]=(0,i.useState)(null!==(o=null==M?void 0:M.links)&&void 0!==o?o:null),[p,v]=(0,i.useState)(null!==(s=null==M?void 0:M.pkce)&&void 0!==s?s:void 0),[m,C]=(0,i.useState)(null),[k,b]=(0,i.useState)([]),[I,E]=(0,i.useState)(!!M),{buildAuthorizeUrl:y,completionStrategy:B,generatePKCE:w,handleResponse:Q,redirectUri:j}=(0,i.useContext)(A),R=e.redirectUri||j,x=(...e)=>{b((n=>n.concat([e])))},U=(0,i.useCallback)((n=>W(this,void 0,void 0,(function*(){const t={pkce:p};v(void 0),f(null),h(e.href);const i=yield fetch(n);if(i.status>=400)return void C(yield i.text());const{location:r}=yield i.json();if("openidprovider"===B)return void(window.location.href=r);const o=new URL(r),s=(a=o.searchParams,Array.from(a.keys()).reduce(((e,n)=>(e[n]=a.get(n),e)),{}));var a;yield Q(s,{pkce:t.pkce,redirectUri:R,source:"SEBankIDSameDeviceButton"})}))),[B,p]),O=(0,i.useCallback)((()=>W(this,void 0,void 0,(function*(){x("SEBankID: Refresh authorize url");const e=yield w();y({acrValues:"urn:grn:authn:se:bankid:same-device",loginHint:"appswitch:browser",responseMode:"json",pkce:e,redirectUri:R}).then((e=>fetch(e).then((e=>e.json())))).then((n=>{v(e||void 0),f(n);const t="android"===l&&"Chrome"===(null==a?void 0:a.browser.name),i=c?encodeURIComponent(window.location.href):"null",r=`${c||t?n.launchLinks.universalLink:n.launchLinks.customFileHandlerUrl}&redirect=${i}`;x(window.location.href),x(r),h(r)})).catch(console.error)}))),[y,R]);(0,i.useEffect)((()=>{I||O()}),[O,I]),(0,i.useEffect)((()=>{if(I)return;const e=setInterval((()=>{I||O()}),25e3);return()=>clearInterval(e)}),[O,I]);const P=()=>{x("Initiated"),E(!0),C(null)},V=e=>{E(!1),C(e)},N=(0,t.jsxs)("a",Object.assign({className:`${e.className} ${I?"criipto-eid-btn--disabled":""}`,href:d,onClick:P},{children:[I?(0,t.jsx)("div",Object.assign({className:"criipto-eid-logo"},{children:(0,t.jsx)("div",{className:"criipto-eid-loader"})})):e.logo,e.children]}));return(0,t.jsxs)(r().Fragment,{children:[g?(0,t.jsx)(r().Fragment,{children:"Poll"===u?(0,t.jsx)(S,Object.assign({links:g,onError:V,onComplete:U,onInitiate:P,onLog:x},{children:N})):"Foreground"===u?(0,t.jsx)(L,Object.assign({links:g,onError:V,onComplete:U,onInitiate:P,onLog:x},{children:N})):"Reload"===u?(0,t.jsx)(T,Object.assign({links:g,onError:V,onComplete:U,onInitiate:P,onLog:x,redirectUri:R,pkce:p},{children:N})):N}):N,m&&(0,t.jsx)("p",{children:m})]})}function H(e){var n;const i="string"==typeof e.logo?(0,t.jsx)("img",{src:e.logo,alt:""}):null!==(n=e.logo)&&void 0!==n?n:X(e.acrValue)?(0,t.jsx)("img",{src:X(e.acrValue),alt:""}):(0,t.jsx)("span",{children:" "});return i?(0,t.jsx)("div",Object.assign({className:"criipto-eid-logo"},{children:i})):null}function X(e){return e.startsWith("urn:grn:authn:be:eid")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:nl:digid")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:dk:mitid")?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAAA8CAYAAADGxTD9AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUPSURBVHgB7Zztcds4EIZf3dz/Uwm8Cs6pIHQFl1QQuYI4FViuQE4FUiqIU4GZCuxUIHYQpQJk14AShiZAEaBECNhnBkNHJD4CLoDF7oKAIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAhCOswgHA2lVEmXC/PP+9lsViNCqJ1zupSUCkr8d03pidr7BCFPSChW6iU3iAgWXEobSt9VN4+U3sAT5ea7Kf+B0h2lazPgB3H2MzB3gOXWF5pB7jBOHe/p0vUid1TH247nF3RZd5eGt5TnHhNDbeSV4TP0rNvHktp8i4GwlGI4O0rcP5+ozgqp0zPCCwTCZTjq2FryPDryxCC8hbLPujYGrx4qnK3Sk4GVFGZg1yivaBRfIqz8R/zWY9vUVP6/HXlYsAsMbJPSy/XcUk+Fkehpn4vLIe3oeTdD2FC6jXUPEcQBo3gBTzhvT9m2GfjBkWftqM+W7wEjwYNE+TOoHWpctqpjRf0L6cObqfnQTKazfDddNn1x57h3Krw3ZcSFT1+OREHpoS3EOQgwd/gaw1nCb5mFWWZ5c1c3fubfLiNYBv+DP9yXBaajgBbiX4MoBwFmeNksD31YabXjHQJgS4PRj58T672R2FVDZ9CpZuA9BRorYy4CzKwPWf4CVYcX8Iyb5OZjWq73qsTfyIcCWjA/9Dy3ROAyaQZK52BpCrPruRbzrg2M58D4irD/XyzeuWuTzhs1nNJRVqmGsfUopwyor7fuA/orpM4prRBt2I49z0mF2LNWdlXCZ7N3VpgNZg0/+lavU8Lv8E3KAryz/F6gY+lR2tNUIA/YQrIbmOc2wuCei5QF+CPs+tqN0rEAzyitXy4tz26gTWDJYATxCocL8UfKs0R8vE5dhbhy3Fs1/rbpdjWmdzwcBRNQ9IrSJ8djNaUrejbWzdI8aSsEzzQ0u7Letuq4zZsZfjH/wK46PPvf1Wgu/Rftq6jsZiwFR4d1xV1UcA9G3/prurC7fAkdD8x1c398g44HrhA3RfJmNA6ppBf0P/QLasN6r21Dt6G8GxyZllltd8hzR2rDBmdILlYIm75nE94aiaoOqZGFI8OoASyQqwOzpBm6Z8FsYttOld0ZHCnaZeOJ61ElmpxEdZgS9fsMHPeHLQYZRvevKH1BnGf6nnJzZPSZjmokrjoofTyKvXi8YVyg35VdQq9cW8q7ViOcchmRH1kJsJlBXAKarOqg9DEiNhfewT+ibEHp0VhvYuA+O1eyOehZddxKVnUwsyYLb4lwWPhXKo4T1lWOsRBMW5Wokajq0BDeAuOynHgm5rOFdZYC3KFKpGx1WOJ4MR43E+rEHCqQVUD7HzRUiZRVhxKBJ0t68D2uFcr9/tsaOQW0dzG6ezaQH5bfL+DHKfRUdsmXJ3Q712iEdWY7AzMRHvexmfjmTROWsShcu5Zvc6/EaQg56TyUD813lrUAR4jL87WAtsWyd4HtuGybLRzPn3KDdUw1ZQ8P7qtZ67NcIsBxMabr9jVOx1x5fJhvADX0Jwk27RsiwBFh9MgK4+CrN8dU3/5DMK9scRm5b+JihDeWQXbbI8+GNkI+mNKGBZfNZHckuM5TIyLAkWEi5/jjf0v465a+ruIQCvhTQ6tPfOR/UCB9Cl+nLC23RrMwmPNzXULRGXJoor1sS+pT36zSKKfAnycl9jhPTJh8BU7Li77oWQl2Jk8NQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRDOn5/MSF1nx1OpJAAAAABJRU5ErkJggg==":e.startsWith("urn:grn:authn:dk:nemid")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:fi:mobile")?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALEAAAA8CAYAAAApB1vDAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAATiSURBVHgB7Z3vceM2EMVXmXyPU8ExFZxSQZgO3MExFcQdSKnglArkDu5SgZQKrKuAdAXnDl6AA5iT4YX4R6REge83s5ZISiA8fFouFiCwEEJaAODOvCy9vTeWebvzVlN5ezH2xdjB2H6xWLwIIZfGCtfYg7Gdsa84jydjG2OZEDI2Rmi5sU8DCDfGzlghhAyNF+8Ol6McQswLIbMHLt5dGXto+ZVKXKxr49zn4Jgt6524eHkp7aiM/W7i5koI6Yr3vk1hgz2+tV7TC75t2Xe+/I33uk2shJAuGNF8bBDVzth9F+E2nM8K+rHhnPdCSBPeQ+4axJvLSJiys4iYi+M6CiEaXsCHiHht2NA2Lh6iLlbMpSLgFVxKjkImr2kQ8A5XyuGa8y6P3q+O6kQhk9fA5X41NjIBAgHXfBZCLBGBWNYyASL1K8EePmKBS43dtIDBHr75gteNp1sV8NbvL4TMD+iprJ1MgI4CttjsCRt6c8Jc8GWTSK5Yt1ULAT8on1kLmQ/QOzQKuTJo2YiDSwlqXeKZkPSB6+INeZIrg45ZCOt5lc9PIiVIRgZ6LJzLFUHPNBreNkwZG6cOXEYi5KqNOZyRB4YeG1+se5xcAeh54aJjGbkXWW1P6BmL4syODOix8SQyLGQk8LZBV0pHMFBmAwP1xMGNSQ5hSJEi3muFbKUH0BtVJdp70NU53w/K0hqqhZD0iFzs3gPN+woZA4+FgB5S9PpxkokTEV3n2y5cOJGdKLNEPC22OvV59MySYIAwidwA5sJ+HuJC43vDLvPbrYTcQsD2eK9GGZS4WEh6KN6qr2ByRYDrFgJtc7xvnQql/ExIWuBtx0DfRl0eEWJMyB9bCvgcEWvxfi4kLZSLvJYeKILZHh3ThHxKwFlwrK+IM+U89z8IIR1ZLBZr8/LXiY9UcrnJUO4oYtKLE0Ku5MKz+VDEpDeKkCsZV8BaqrD6UUhqVOLmQat5JyNihQyX6fog43tgNd9NT5we4WTWP8vIeI/86wVCiEzZ90IRp8eXYPu9XIALzQS/VM57oIjT4xBs27RUKqO9wh/kt/+VIk6Pg7IvlzQIPTFFnChJitj3zIV3lH/tH4o4MXxsug92f5Dbp1D27e0fijhN/gm27xIYY/BbsH2osyEUcZo8KvtudikBuCc4smD33/UbLjyTKH6QTR7stp0R+xZfr2dqP25IVX3zwEpZLzY11uH7dkx0Fuz+hQvVJA70YYs394Qw9DHEfCxpLkCfxupmFnZBfEbPTMg8iHjjm5k9B/osRvTCcwP6EgeTDytMHf9U6l3SC88Qf0vWZpacbLYC+sQtlkLIPEF8uYPJCRnxOJhhxNyBPg3UpIR8QsAlwwjyDcRXEb26kBFfY/orBUz+B24qqDIi5E/XEgv0Rlwt4KUQcsyJW3Z92y7kQvi67Chg0hnvkZ8QZzemV/bnX504PwVM2oF4Y+9YzIP18MHFvRvosW/NAYyBSRfg0m9lg5jt8a0VNDr29nnhrhAPG47ZoEdvIkexEfGeby3tB8/bEWiVsWdxT1fXlol7+uIncaPW6u0mKmN/tB1hR0gUuJ6yNh5zKGxYwQVkyPDAhQCPGI8d3IpIXHODjAtcCqzAMN65hIt5cxkYxsSkFfj+dEYubv4Hu53J2ycu6vjYxs3P/nU/5lMY/wG766+yI/P2vAAAAABJRU5ErkJggg==":e.startsWith("urn:grn:authn:itsme")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:se:bankid")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:de:sofort")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:no:bankid")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:no:vipps")?"data:image/png;base64,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":void 0}function z(e){return(0,t.jsx)("a",Object.assign({className:`criipto-verify-button ${e.className}`,href:e.href,onClick:e.onClick},{children:e.children}))}function J(e){return(0,t.jsx)("button",Object.assign({className:`criipto-verify-button ${e.className}`,type:"button",onClick:e.onClick},{children:e.children}))}function F(e){var n,s,a,l,c,u;const{acrValue:d,standalone:h}=e,f=(0,i.useContext)(A),{buildAuthorizeUrl:v}=f,m=null!==(s=null!==(n=e.language)&&void 0!==n?n:f.uiLocales)&&void 0!==s?s:"en",C=null!==(l=null!==(a=e.action)&&void 0!==a?a:f.action)&&void 0!==l?l:"login",k=(null!==(c=e.message)&&void 0!==c||f.message,`criipto-eid-btn ${w=d,(w=w.replace("urn:grn:authn:","")).split(":").reduce(((e,n)=>e.length?e.concat([`${e[e.length-1]}-${n}`]):e.concat([n])),[]).map((e=>`criipto-eid-btn--${e}`)).join(" ")}${e.className?` ${e.className}`:""}`),[b,I]=(0,i.useState)(null),[E,y]=(0,i.useState)(e.href),B=e.redirectUri||f.redirectUri;var w;(0,i.useEffect)((()=>{if(e.href)return;let n,t=!0;const i=O(navigator.userAgent);return d.startsWith("urn:grn:authn:dk:mitid")&&i&&(n=`appswitch:${i} target:web`),v({redirectUri:B,acrValues:d,loginHint:n}).then((e=>{t&&y(e)})).catch(console.error),()=>{t=!1}}),[e.href,v,d,f.pkce,B]);const Q=n=>{if(!e.href){if(f.pkce&&"code_verifier"in f.pkce&&(0,o.savePKCEState)(f.store,{response_type:"id_token",pkce_code_verifier:f.pkce.code_verifier,redirect_uri:B}),e.popup){let t="function"==typeof e.popup?e.popup({acrValue:d,onHide:()=>I(null)}):!0===e.popup;!1!==t&&(n.preventDefault(),"boolean"==typeof t?f.loginWithPopup({acrValues:[d],redirectUri:B,backdrop:!0}):(I(t),f.loginWithPopup({acrValues:[d],redirectUri:B,backdrop:!1})))}e.onClick&&e.onClick(n)}},j=null!==(u=e.children)&&void 0!==u?u:(0,t.jsxs)(r().Fragment,{children:[g(m,C)?`${g(m,C)} `:"",p(m,d).title," ",h?null:(R=p(m,d).subtitle,R?R.substring(0,1).toLowerCase()+R.substr(1,R.length):R)]});var R;if(!e.href&&"urn:grn:authn:se:bankid:same-device"===d)return(0,t.jsx)(Y,Object.assign({redirectUri:e.redirectUri,href:E,className:k,userAgent:e.userAgent,logo:(0,t.jsx)(H,{acrValue:d,logo:e.logo})},{children:(0,t.jsx)("span",{children:j})}));const x=(0,t.jsxs)(r().Fragment,{children:[(0,t.jsx)(H,{acrValue:d,logo:e.logo}),(0,t.jsx)("span",{children:j})]});return E?(0,t.jsxs)(r().Fragment,{children:[(0,t.jsx)(z,Object.assign({},e,{href:E,className:k,onClick:Q},{children:x})),b]}):(0,t.jsxs)(r().Fragment,{children:[(0,t.jsx)(J,Object.assign({},e,{className:k,onClick:Q},{children:x})),b]})}const K=require("qrcode");var Z=e.n(K),G=function(e,n,t,i){return new(t||(t=Promise))((function(r,o){function s(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(s,a)}l((i=i.apply(e,n||[])).next())}))};function q(e){var n,r,o;const s=(0,i.useRef)(null),a=(0,i.useRef)(null),{buildAuthorizeUrl:l,completionStrategy:c,handleResponse:u,generatePKCE:d,redirectUri:g,uiLocales:f}=(0,i.useContext)(A),p=null!==(r=null!==(n=e.language)&&void 0!==n?n:f)&&void 0!==r?r:"en",v=e.redirectUri||g,[m,C]=(0,i.useState)(null),[k,b]=(0,i.useState)(null),[I,E]=(0,i.useState)(null),[y,B]=(0,i.useState)(void 0),[w,Q]=(0,i.useState)(!1),j=(0,i.useCallback)((()=>G(this,void 0,void 0,(function*(){E(null),C(null),b(null),B(void 0);const e=yield d();l({acrValues:"urn:grn:authn:se:bankid:another-device:qr",responseMode:"json",pkce:e,redirectUri:v}).then((e=>fetch(e).then((e=>e.json())))).then((n=>{B(e),C(n.initialQrCode),b(n.pollUrl)})).catch(console.error)}))),[l,v]);(0,i.useEffect)((()=>{j()}),[j]);const R=()=>{Q(!1),j()},x=(0,i.useCallback)((e=>{"Collect failed: startFailed"!==e&&'"Collect failed: startFailed"'!==e?(E(new Error(e)),u({error:e},{pkce:y,redirectUri:v,source:"SEBankIDQrCode"})):R()}),[y,v]),U=(0,i.useCallback)((e=>G(this,void 0,void 0,(function*(){Q(!0);const n={pkce:y},t=yield fetch(e);if(t.status>=400)return void x(yield t.text());const{location:i}=yield t.json();if("openidprovider"===c)return void(window.location.href=i);const r=new URL(i),o=(s=r.searchParams,Array.from(s.keys()).reduce(((e,n)=>(e[n]=s.get(n),e)),{}));var s;yield u(o,{pkce:n.pkce,redirectUri:v,source:"SEBankIDQrCode"})}))),[c,y]);!function(e,n){const{width:t,canvas:r,qrMargin:o}=n;(0,i.useEffect)((()=>{if(!e)return;if(!r)return;let n=!0;return(()=>{G(this,void 0,void 0,(function*(){r.width=null!=t?t:300,r.height=null!=t?t:300;const i=yield Z().toCanvas(e,{errorCorrectionLevel:"low",scale:10,width:t,margin:null!=o?o:4});n&&r.getContext("2d").drawImage(i,0,0)}))})(),()=>{n=!1}}),[e,o,r,t])}(m,{canvas:s.current,width:null===(o=a.current)||void 0===o?void 0:o.offsetWidth,qrMargin:e.qrMargin}),function(e,n){const{onQrCode:t,onComplete:r,onError:o,enabled:s}=n;(0,i.useEffect)((()=>{if(!e)return;if(!s)return;let n,i=!0;const a=()=>G(this,void 0,void 0,(function*(){if(!i)return;const s=yield fetch(e);if(i){if(s.status<400){const e=yield s.json();if(e.qrCode&&t(e.qrCode),e.targetUrl)return void r(e.targetUrl)}else{const e=yield s.text();o(e)}202===s.status&&(n=setTimeout(a,2500))}}));return n=setTimeout(a,2500),()=>{i=!1,clearTimeout(n)}}),[e,t,r,o,s])}(k,{enabled:!w,onQrCode:C,onComplete:U,onError:x});const O=(0,t.jsx)("div",Object.assign({ref:a},{children:(0,t.jsx)("canvas",{ref:s})})),D="en"===p?"Completing your login.":"da"==p?"Fuldfører dit login.":"sv"==p?"Slutför din inloggning.":"nb"==p?"Fullfører påloggingen.":h(p),S="en"===p?"Open the BankID app on your mobile device and scan the QR code.":"da"==p?"Åben BankID appen på din telefon og scan QR koden.":"sv"==p?"Öppna BankID-appen på din mobila enhet och skanna QR-koden.":"nb"==p?"Åpne BankID-appen på mobilenheten din og skann QR-koden.":h(p),L=(0,t.jsxs)("div",Object.assign({className:"criipto-se-bankid-qr"},{children:[(0,t.jsxs)("aside",Object.assign({className:"criipto-se-bankid-qr--help-text"},{children:[w?D:S,(0,t.jsx)("img",{src:"data:image/png;base64,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"})]})),O]}));return e.children?e.children({qrElement:L,canvasElement:O,error:I,isCompleting:w,retry:()=>R()}):L}function _(e,n){const t=f(e),i=n.reduce(((e,n)=>e+(f(n)===t?1:0)),0);return 1===i}function $(e){var n,r;const{action:o,uiLocales:s,acrValues:a}=(0,i.useContext)(A),l=e.language||s||"en",c=v(null!==(r=null!==(n=e.acrValues)&&void 0!==n?n:a)&&void 0!==r?r:[]);return c.length&&c.every((e=>e.startsWith("urn:grn:authn:se:bankid:")))?(0,t.jsx)(ee,Object.assign({},e,{acrValues:c})):(0,t.jsx)("div",Object.assign({className:"criipto-eid-selector"},{children:c.map((n=>(0,t.jsx)(F,{acrValue:n,onClick:e.onSelect?()=>e.onSelect(n):void 0,redirectUri:e.redirectUri,popup:e.popup,language:l,action:o,standalone:_(n,c),userAgent:e.userAgent},n)))}))}function ee(e){const{acrValues:n}=e,{action:r,uiLocales:o}=(0,i.useContext)(A),s=e.language||o||"en",a=n.includes("urn:grn:authn:se:bankid:another-device:qr"),l=n.filter((e=>"urn:grn:authn:se:bankid:another-device:qr"!==e)),c=D("undefined"!=typeof navigator?navigator.userAgent:e.userAgent),u="iOS"===(null==c?void 0:c.os.name)?"iOS":"Android"===(null==c?void 0:c.os.name)?"android":null;return(0,t.jsxs)("div",Object.assign({className:"criipto-eid-selector"},{children:[l.map((i=>(0,t.jsx)(F,{acrValue:i,onClick:e.onSelect?()=>e.onSelect(i):void 0,redirectUri:e.redirectUri,popup:e.popup,language:s,action:r,standalone:_(i,n),userAgent:e.userAgent},i))),a&&!u?(0,t.jsx)(q,{language:s,redirectUri:e.redirectUri}):null]}))}const ne=e=>{var n,r;const{children:s,margin:a,className:l}=e,c=(0,i.useRef)(null),{client:u,buildOptions:d,buildAuthorizeUrl:h,handleResponse:g,pkce:f,store:p,acrValues:v}=(0,i.useContext)(A),[m,C]=(0,i.useState)((()=>Math.random().toString())),[k,b]=(0,i.useState)(!1),[I,E]=(0,i.useState)(!1),[y,B]=(0,i.useState)(null),[w,Q]=(0,i.useState)(null),j=null==w?void 0:w.client.qr_enabled,R=null!==(r=null!==(n=e.acrValues)&&void 0!==n?n:v)&&void 0!==r?r:[];(0,i.useEffect)((()=>{let e=!0;return u.fetchCriiptoConfiguration().then((n=>{e&&Q(n)})),()=>{e=!1}}),[u]);const x=(0,i.useCallback)((()=>{return e=void 0,n=void 0,i=function*(){var e;if(!w)return;const n=(null!==(e=w.client.qr_intermediary_url)&&void 0!==e?e:w.qr_intermediary_url).replace("/{id}","").replace("{id}",""),t=new URL(yield h({acrValues:R})),i=new URLSearchParams(t.search);i.set("domain",t.host),t.host=new URL(n).host,t.port=new URL(n).port,t.pathname=new URL(n).pathname+"/authorize",t.search=i.toString(),f&&"code_verifier"in f&&(0,o.savePKCEState)(p,{response_type:"id_token",pkce_code_verifier:f.code_verifier,redirect_uri:i.get("redirect_uri")}),window.location.href=t.toString()},new((t=void 0)||(t=Promise))((function(r,o){function s(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(s,a)}l((i=i.apply(e,n||[])).next())}));var e,n,t,i}),[h,w,R]),U=(0,i.useCallback)((()=>u.qr.authorize(c.current,Object.assign(Object.assign({},d({acrValues:R})),{margin:a}))),[u,d,a,R]);return(0,i.useLayoutEffect)((()=>{if(!c.current)return;if(y)return;if(!j)return;const e=U();return e.onAcknowledged=()=>{b(!0)},e.then((n=>{e.cancelled||g(n,{pkce:f&&"code_verifier"in f?f:void 0,source:"QRCode"})})).catch((n=>{n instanceof o.UserCancelledError?E(!0):e.cancelled||(B(n),g(n,{source:"QRCode"}))})),()=>{e.cancel()}}),[U,f,g,m,y,j]),s({qrElement:(0,t.jsx)("div",{ref:c,className:l}),isAcknowledged:k,isCancelled:I,isEnabled:null==w?void 0:w.client.qr_enabled,error:y,retry:()=>{b(!1),E(!1),B(null),C(Math.random().toString())},redirect:x})};function te(){const{result:e,claims:n,loginWithRedirect:t,loginWithPopup:r,acrValues:o,isLoading:s,logout:a,checkSession:l}=(0,i.useContext)(A);return{result:e,claims:n,error:e&&"error"in e?e:null,loginWithRedirect:t,loginWithPopup:r,acrValues:o,isLoading:s,checkSession:l,logout:a}}var ie=n.AuthMethodButton,re=n.AuthMethodSelector,oe=n.AuthMethodSelectorSweden,se=n.CriiptoVerifyProvider,ae=n.OAuth2Error,le=n.QRCode,ce=n.SEBankIDQRCode,Ae=n.actions,ue=n.filterAcrValues,de=n.useCriiptoVerify;export{ie as AuthMethodButton,re as AuthMethodSelector,oe as AuthMethodSelectorSweden,se as CriiptoVerifyProvider,ae as OAuth2Error,le as QRCode,ce as SEBankIDQRCode,Ae as actions,ue as filterAcrValues,de as useCriiptoVerify};
|
|
1
|
+
import*as e from"react/jsx-runtime";import*as t from"react";import*as n from"@criipto/auth-js";import*as i from"jwt-decode";import*as r from"ua-parser-js";import*as o from"qrcode";var s={d:(e,t)=>{for(var n in t)s.o(t,n)&&!s.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},o:(e,t)=>Object.prototype.hasOwnProperty.call(e,t)},a={};s.d(a,{fw:()=>q,I2:()=>ne,Fw:()=>ie,bl:()=>D,Lk:()=>d.OAuth2Error,s_:()=>re,p_:()=>ee,Nw:()=>g,f7:()=>I,kP:()=>oe});const l=(c={jsx:()=>e.jsx,jsxs:()=>e.jsxs},A={},s.d(A,c),A);var c,A;const u=(e=>{var t={};return s.d(t,e),t})({createContext:()=>t.createContext,default:()=>t.default,useCallback:()=>t.useCallback,useContext:()=>t.useContext,useEffect:()=>t.useEffect,useLayoutEffect:()=>t.useLayoutEffect,useMemo:()=>t.useMemo,useRef:()=>t.useRef,useState:()=>t.useState}),d=(e=>{var t={};return s.d(t,e),t})({OAuth2Error:()=>n.OAuth2Error,UserCancelledError:()=>n.UserCancelledError,clearPKCEState:()=>n.clearPKCEState,default:()=>n.default,generatePKCE:()=>n.generatePKCE,parseAuthorizeResponseFromLocation:()=>n.parseAuthorizeResponseFromLocation,savePKCEState:()=>n.savePKCEState}),g=["confirm","accept","approve","sign","login"],h=()=>{throw new Error("You forgot to wrap your component in <CriiptoVerifyProvider>.")},f={loginWithRedirect:h,loginWithPopup:h,checkSession:h,logout:h,fetchOpenIDConfiguration:h,buildAuthorizeUrl:h,generatePKCE:h,buildOptions:h,handleResponse:h,responseType:"token",completionStrategy:"client",result:null,claims:null,domain:"",action:"login",pkce:void 0,store:null,isLoading:!1,isInitializing:!0,client:null},p=(0,u.createContext)(f),v="urn:grn:authn:fi";function m(e){return e.split(/:|-/).map((e=>2===(e=e.replace(/id(\s|$)/,"ID")).length?e.toUpperCase():e.substr(0,1).toUpperCase()+e.substr(1))).join(" ")}function C(e){throw new Error(`Unsupported language ${e}`)}function k(e,t){return"login"===t?"da"===e?"Login med":"sv"===e?"Logga in med":"nb"===e?"Logg inn med":"Login with":"approve"===t?"da"===e?"Godkend med":"sv"===e?"Godkänn med":"nb"===e?"Godkjenne med":"Approve with":"sign"===t?"da"===e?"Underskriv med":"sv"===e?"Signera med":"nb"===e?"Signer med":"Sign with":"confirm"===t?"da"===e?"Bekræft med":"sv"===e?"Bekräfta med":"nb"===e?"Bekreft med":"Confirm with":"accept"===t?"da"===e?"Accepter med":"sv"===e?"Acceptera med":"nb"===e?"Aksepterer med":"Accept with":void function(e){throw new Error("Didn't expect to get here")}()}function b(e){return(e=e.replace("urn:grn:authn:","")).startsWith("fi")?"fi":e.startsWith("itsme")?"itsme":e.split(":").slice(0,2).join(":")}function E(e,t){const n=b(t=t.replace("urn:grn:authn:",""));if("be:eid"===n)return{title:m(t).replace("BEEID","Belgian eID")};if("nl:digid"===n)return{title:m(t).replace("NL ","")};if("dk:mitid"===n)return"business"===t.replace("dk:mitid:","")?"en"===e?{title:"MitID Business"}:{title:"MitID Erhverv"}:{title:"MitID"};if("dk:nemid"===n){let n,i=t.replace("dk:nemid:","");return"poces"===i&&("en"===e&&(n="Personal"),"da"===e&&(n="Personlig"),"sv"===e&&(n="Personlig"),"nb"===e&&(n="Personlig")),"moces"===i&&("en"===e&&(n="Employee key card"),"da"===e&&(n="Medarbejder nøglekort"),"sv"===e&&(n="Anställd nyckelkort"),"nb"===e&&(n="Ansatt nøkkelkort")),"moces:codefile"===i&&("en"===e&&(n="Employee key file"),"da"===e&&(n="Medarbejder nøglefil"),"sv"===e&&(n="Anställd nyckelfil"),"nb"===e&&(n="Ansatt nøkkelfil")),{title:"NemID",subtitle:n}}if("fi:mobile-id"===t){if("en"===e)return{title:"Finnish Mobile ID"};if("da"===e)return{title:"Finsk Mobil ID"};if("sv"===e)return{title:"Finskt Mobil ID"};if("nb"===e)return{title:"Finsk Mobil ID"}}if("fi:bank-id"===t){if("en"===e)return{title:"Finnish Bank ID"};if("da"===e)return{title:"Finsk Bank ID"};if("sv"===e)return{title:"Finskt Bank ID"};if("nb"===e)return{title:"Finsk Bank ID"}}if("fi"===n)return{title:m(t).replace("FI","FTN")};if("itsme"===n)return{title:m(t).replace("me","ME")};if("se:bankid"===n){let n,i=t.replace("se:bankid:","");return"same-device"===i&&("en"===e&&(n="On this device"),"da"===e&&(n="På denne enhed"),"sv"===e&&(n="På denna enhet"),"nb"===e&&(n="På denne enhet")),"another-device"===i&&("en"===e&&(n="With your SSN"),"da"===e&&(n="Med dit personnummer"),"sv"===e&&(n="Med ditt personnummer"),"nb"===e&&(n="Med personnummeret ditt")),"another-device:qr"===i&&("en"===e&&(n="With QR Code"),"da"===e&&(n="Med QR-kode"),"sv"===e&&(n="Med QR-kod"),"nb"===e&&(n="Med QR-kode")),{title:"BankID",subtitle:n}}if("de:sofort"===n)return{title:m(t).replace("DE ","")};if("no:bankid"===n){let n;return t.endsWith(":substantial")&&("en"===e&&(n="Biometrics"),"da"===e&&(n="Biometri "),"sv"===e&&(n="Biometri"),"nb"===e&&(n="Biometri")),{title:n?"BankID":m(t).replace("NO ",""),subtitle:n}}return"no:vipps"===n?{title:m(t).replace("NO ","")}:{title:m(t)}}function I(e){let t=e.slice(),n=function(e){let t=null;return e.forEach((e=>{if(e.startsWith("urn:grn:authn:dk:mitid")&&"urn:grn:authn:dk:mitid:business"!==e)if(t){let n=e.replace("urn:grn:authn:dk:mitid",""),i=t.replace("urn:grn:authn:dk:mitid","");(":low"===n&&[":substantial",":high"].includes(i)||":substantial"===n&&":high"===i)&&(t=e)}else t=e})),t}(e),i=e.slice();return n&&(i=e.filter((e=>!e.startsWith("urn:grn:authn:dk:mitid")||"urn:grn:authn:dk:mitid:business"===e)).concat([n]).sort(((e,n)=>t.indexOf(e)-t.indexOf(n)))),e.includes(`${v}:all`)&&(i.includes(`${v}:bank-id`)||i.push(`${v}:bank-id`),i.includes(`${v}:mobile-id`)||i.push(`${v}:mobile-id`),i=i.filter((e=>e!==`${v}:all`))),i}const y=(e=>{var t={};return s.d(t,e),t})({default:()=>i.default});function w(){let e={};return{getItem:t=>e[t]||null,setItem(t,n){e[t]=n.toString()},removeItem(t){delete e[t]},clear(){e={}},key:t=>Object.keys(e)[t],get length(){return Object.keys(e).length}}}var B=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((i=i.apply(e,t||[])).next())}))};const j="@criipto-verify-react/session",x=["urn:grn:authn:dk:mitid:low","urn:grn:authn:dk:mitid:substantial","urn:grn:authn:dk:mitid:high","urn:grn:authn:se:bankid:same-device","urn:grn:authn:se:bankid:another-device","urn:grn:authn:se:bankid:another-device:qr"],Q=["urn:grn:authn:dk:mitid:low","urn:grn:authn:dk:mitid:substantial","urn:grn:authn:dk:mitid:high"];function R(e,t){const{options:n,action:i,message:r}=t,o=(null==n?void 0:n.acrValues)?Array.isArray(null==n?void 0:n.acrValues)?null==n?void 0:n.acrValues:[null==n?void 0:n.acrValues]:[];let s=(e?e.split(" "):[]).concat((null==n?void 0:n.loginHint)?null==n?void 0:n.loginHint.split(" "):[]).filter((e=>!e.startsWith("message:")&&!e.startsWith("action:")));return i&&(s=s.filter((e=>!e.startsWith("action:"))),1===o.length?x.includes(o[0])&&s.push(`action:${i}`):o.length>=2?o.some((e=>x.includes(e)))&&s.push(`action:${i}`):s.push(`action:${i}`)),r&&(1===o.length?Q.includes(o[0])&&s.push(`message:${btoa(r)}`):o.length>=2?o.some((e=>Q.includes(e)))&&s.push(`message:${btoa(r)}`):s.push(`message:${btoa(r)}`)),s.length?s.join(" "):void 0}function U(e){if(e)return e;if("undefined"!=typeof window&&void 0!==window.location)return window.location.origin+window.location.pathname;throw new Error("Unable to determine default redirect uri, please provide a redirectUri")}const O="undefined"==typeof sessionStorage?(console.warn("Creating memory store for PKCE values as no sessionStorage is available."),w()):sessionStorage,D=e=>{var t,n,i;const r=(0,u.useMemo)((()=>new d.default({domain:e.domain,clientID:e.clientID,store:O,redirectUri:U(e.redirectUri),protocol:e.protocol})),[e.domain,e.clientID,e.redirectUri,e.protocol]),[o,s]=(0,u.useState)(null);(0,u.useEffect)((()=>{let e=!0;return B(void 0,void 0,void 0,(function*(){const t=yield r.fetchOpenIDConfiguration();e&&s(t)})),()=>{e=!1}}),[r]);const[a,c]=(0,u.useState)(null),A=(0,u.useMemo)((()=>a&&"id_token"in a?(0,y.default)(a.id_token):null),[a]),[h,f]=(0,u.useState)(!1),[v,m]=(0,u.useState)(!0),[C,k]=(0,u.useState)(e.pkce),b=e.response||"token",E=e.completionStrategy||"client",w=e.uiLocales,x=e.loginHint,Q=null!==(n=null!==(t=e.action)&&void 0!==t?t:function(e){if(!e)return;const t=e.split(" ").find((e=>e.startsWith("action:")));if(!t)return;const n=t.replace("action:","");return g.includes(n)?n:void 0}(x))&&void 0!==n?n:"login",D=null!==(i=e.message)&&void 0!==i?i:function(e){var t;if(!e)return;const n=e.split(" ").find((e=>e.startsWith("message:")));if(!n)return;const i=n.replace("message:","");return null!==(t=function(e){try{return atob(e)}catch(e){return null}}(i))&&void 0!==t?t:i}(x),S=e.sessionStore,L=()=>B(void 0,void 0,void 0,(function*(){if(e.pkce)return e.pkce;if("token"!==b||"client"!==E)return(0,d.clearPKCEState)(O),void k(void 0);(0,d.clearPKCEState)(O);const t=yield(0,d.generatePKCE)();return k(t),t})),P=(0,u.useCallback)((t=>{var n,i,r,o,s;return Object.assign(Object.assign({redirectUri:U(e.redirectUri),responseType:"code"},t||{}),{state:null!==(n=e.state)&&void 0!==n?n:null==t?void 0:t.state,nonce:null!==(i=e.nonce)&&void 0!==i?i:null==t?void 0:t.nonce,prompt:null!==(r=e.prompt)&&void 0!==r?r:null==t?void 0:t.prompt,scope:null!==(o=e.scope)&&void 0!==o?o:null==t?void 0:t.scope,uiLocales:null!=w?w:null==t?void 0:t.uiLocales,pkce:null!==(s=null==t?void 0:t.pkce)&&void 0!==s?s:C,loginHint:R(e.loginHint,{options:t,action:Q,message:D}),extraUrlParams:void 0!==e.criiptoSdk?{criipto_sdk:e.criiptoSdk}:{criipto_sdk:"@criipto/verify-react@1.2.3"}})}),[C,e.state,e.nonce,e.prompt,e.scope,w,Q,D,e.redirectUri,e.criiptoSdk,e.loginHint]),N=(0,u.useCallback)((e=>B(void 0,void 0,void 0,(function*(){return yield r.buildAuthorizeUrl(r.buildAuthorizeParams(P(e)))}))),[r,P]),V=(0,u.useCallback)(((t,n)=>B(void 0,void 0,void 0,(function*(){if(t instanceof Error)c(t);else if(n.pkce&&"token"===b){let i=n.redirectUri||U(e.redirectUri);if(!i)throw new Error("redirectUri must be configured globally or per authentication component");yield r.processResponse(t,{code_verifier:n.pkce.code_verifier,redirect_uri:i}).then((e=>{(null==e?void 0:e.code)?c({code:e.code,state:e.state,source:n.source}):(null==e?void 0:e.id_token)?(c({id_token:e.id_token,state:e.state,source:n.source}),null==S||S.setItem(j,e.id_token)):c(null)})).catch((e=>{c(e)}))}else(null==t?void 0:t.code)?c({code:t.code,state:t.state,source:n.source}):(null==t?void 0:t.id_token)?(c({id_token:t.id_token,state:t.state,source:n.source}),null==S||S.setItem(j,t.id_token)):(null==t?void 0:t.error)?c(new d.OAuth2Error(t.error,t.error_description,t.state)):c(null);L()}))),[L,b,c,r,S,e.redirectUri]),T=(0,u.useCallback)((()=>B(void 0,void 0,void 0,(function*(){return r.checkSession({redirectUri:U(e.redirectUri)}).then((e=>{(null==e?void 0:e.code)?c({code:e.code}):(null==e?void 0:e.id_token)?(c({id_token:e.id_token}),null==S||S.setItem(j,e.id_token)):c(null)}))}))),[S,r,e.redirectUri]),M=(0,u.useCallback)((t=>B(void 0,void 0,void 0,(function*(){var n;null==S||S.removeItem(j),yield r.logout({redirectUri:null!==(n=null==t?void 0:t.redirectUri)&&void 0!==n?n:U(e.redirectUri)})}))),[S,r,e.redirectUri]),W=(0,u.useMemo)((()=>({loginWithRedirect:e=>B(void 0,void 0,void 0,(function*(){const t=yield L();yield r.redirect.authorize(P(Object.assign(Object.assign({},e),{pkce:t})))})),loginWithPopup:e=>B(void 0,void 0,void 0,(function*(){return r.popup.authorize(P(e)).then((e=>{(null==e?void 0:e.code)?c({code:e.code}):(null==e?void 0:e.id_token)?c({id_token:e.id_token}):c(null)})).catch((e=>{c(e)}))})),checkSession:T,logout:M,fetchOpenIDConfiguration:()=>r.fetchOpenIDConfiguration(),buildAuthorizeUrl:N,generatePKCE:()=>B(void 0,void 0,void 0,(function*(){if("token"===b&&"client"===E)return yield(0,d.generatePKCE)()})),buildOptions:P,handleResponse:V,responseType:b,completionStrategy:E,result:a,claims:A,domain:r.domain,redirectUri:U(e.redirectUri),action:Q,message:D,pkce:C,store:O,isLoading:h,isInitializing:v,acrValues:o?I(o.acr_values_supported):void 0,client:r,uiLocales:w})),[r,e.redirectUri,b,E,a,A,Q,D,C,e.state,e.prompt,h,v,V,M,o,w,T]);return(0,u.useEffect)((()=>{if(m(!1),!r.redirect.hasMatch())return void L();let e=!0;f(!0);const t=(0,d.parseAuthorizeResponseFromLocation)(window.location);return t.code&&"code"===b?(f(!1),c({code:t.code,source:"redirect"}),void L()):(r.redirect.match().then((t=>{e&&(f(!1),(null==t?void 0:t.code)?c({code:t.code,source:"redirect"}):(null==t?void 0:t.id_token)?(c({id_token:t.id_token,source:"redirect"}),null==S||S.setItem(j,t.id_token),function(e){const t=new URL(e.location.href);t.searchParams.delete("code"),t.searchParams.delete("state"),e.history.replaceState({},e.document.title,t.pathname+t.search)}(window)):c(null),L())})).catch((t=>{e&&(f(!1),c(t),L())})),()=>{e=!1})}),[e.pkce,b]),(0,u.useEffect)((()=>{if(S&&!A)if(A);else{const e=S.getItem(j);if(!e)return;c({id_token:e})}}),[S,A]),(0,u.useEffect)((()=>{if(!A)return;if(!S)return;const e=setInterval((()=>{const e=Date.now();if(A.exp<e/1e3)return c(null),void(null==S||S.removeItem(j))}),5e3);return()=>clearInterval(e)}),[S,A,a]),(0,u.useEffect)((()=>{if(m(!1),!S)return;if(r.redirect.hasMatch())return;if(S.getItem(j))return;let e=!0;return f(!0),T().catch((e=>{console.error("session silent check error",e)})).finally((()=>{e&&f(!1)})),()=>{e=!1}}),[S,r]),(0,l.jsx)(p.Provider,Object.assign({value:W},{children:e.children}))},S=(e=>{var t={};return s.d(t,e),t})({default:()=>r.default});function L(e,t){return t.test(navigator.userAgent)}function P(e){return L(0,/iPad|iPhone|iPod/)&&!window.MSStream?"ios":L(0,/Android/)?"android":null}function N(e){return e?(0,S.default)(e):null}function V(e){const{links:t,onError:n,onComplete:i,onInitiate:r}=e,[o,s]=(0,u.useState)(!1),{domain:a}=(0,u.useContext)(p);return(0,u.useEffect)((()=>{if(!o)return;let e=!0;const r=()=>{return o=this,s=void 0,l=function*(){if(!e)return;const o=yield fetch(t.pollUrl);if(202!==o.status){if(!(o.status>=400)){if(!e)return;const{targetUrl:t}=yield o.json();return void(yield i(t))}{if(!e)return;const t=yield o.text();n(t)}}else setTimeout(r,1e3)},new((a=void 0)||(a=Promise))((function(e,t){function n(e){try{r(l.next(e))}catch(e){t(e)}}function i(e){try{r(l.throw(e))}catch(e){t(e)}}function r(t){var r;t.done?e(t.value):(r=t.value,r instanceof a?r:new a((function(e){e(r)}))).then(n,i)}r((l=l.apply(o,s||[])).next())}));var o,s,a,l};return setTimeout(r,1e3),()=>{e=!1}}),[o]),u.default.cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{r(),s(!0)}}))}function T(e){const{links:t,onError:n,onComplete:i,onInitiate:r,onLog:o}=e,[s,a]=(0,u.useState)(!1);return function(e,t=[]){const n=(0,u.useRef)(document.visibilityState),[i,r]=(0,u.useState)(n.current);(0,u.useEffect)((()=>(document.addEventListener("visibilitychange",o),()=>{document.removeEventListener("visibilitychange",o)})),t);const o=()=>{const t=document.visibilityState;"hidden"===n.current&&"visible"===t&&e&&e(),n.current=t,r(n.current)}}((()=>{return e=this,n=void 0,a=function*(){o("ForegroundStrategy","onForeground",s.toString()),s&&i(t.completeUrl)},new((r=void 0)||(r=Promise))((function(t,i){function o(e){try{l(a.next(e))}catch(e){i(e)}}function s(e){try{l(a.throw(e))}catch(e){i(e)}}function l(e){var n;e.done?t(e.value):(n=e.value,n instanceof r?n:new r((function(e){e(n)}))).then(o,s)}l((a=a.apply(e,n||[])).next())}));var e,n,r,a}),[t,s]),u.default.cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{o("ForegroundStrategy","handleInitiate"),r(),a(!0)}}))}const M="@criipto/verify-react:sebankid:state",W="undefined"==typeof sessionStorage?(console.warn("Creating memory store for PKCE values as no sessionStorage is available."),w()):sessionStorage;function Y(){const e=W.getItem(M);if(e)return JSON.parse(e)}const H=Y();function z(e){const{links:t,onError:n,onComplete:i,onInitiate:r,onLog:o,pkce:s,redirectUri:a}=e;return(0,u.useEffect)((()=>{const e=Y();e&&(W.removeItem(M),i(e.links.completeUrl))}),[]),u.default.cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{var e;o("ReloadStrategy","handleInitiate"),e={links:t,redirectUri:a,pkce:s},W.setItem(M,JSON.stringify(e)),r()}}))}var X=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((i=i.apply(e,t||[])).next())}))};function F(e){var t,n,i;const r=N("undefined"!=typeof navigator?navigator.userAgent:e.userAgent),o="iOS"===(null==r?void 0:r.os.name)?"iOS":"Android"===(null==r?void 0:r.os.name)?"android":null,s=!("iOS"!==o||!(null===(t=null==r?void 0:r.browser.name)||void 0===t?void 0:t.includes("Safari"))),a=o?s?"Reload":"Foreground":"Poll",[c,A]=(0,u.useState)(e.href),[d,g]=(0,u.useState)(null!==(n=null==H?void 0:H.links)&&void 0!==n?n:null),[h,f]=(0,u.useState)(null!==(i=null==H?void 0:H.pkce)&&void 0!==i?i:void 0),[v,m]=(0,u.useState)(null),[C,k]=(0,u.useState)([]),[b,E]=(0,u.useState)(!!H),{buildAuthorizeUrl:I,completionStrategy:y,generatePKCE:w,handleResponse:B,redirectUri:j}=(0,u.useContext)(p),x=e.redirectUri||j,Q=(...e)=>{k((t=>t.concat([e])))},R=(0,u.useCallback)((t=>X(this,void 0,void 0,(function*(){const n={pkce:h};f(void 0),g(null),A(e.href);const i=yield fetch(t);if(i.status>=400)return void m(yield i.text());const{location:r}=yield i.json();if("openidprovider"===y)return void(window.location.href=r);const o=new URL(r),s=(a=o.searchParams,Array.from(a.keys()).reduce(((e,t)=>(e[t]=a.get(t),e)),{}));var a;yield B(s,{pkce:n.pkce,redirectUri:x,source:"SEBankIDSameDeviceButton"})}))),[y,h]),U=(0,u.useCallback)((()=>X(this,void 0,void 0,(function*(){Q("SEBankID: Refresh authorize url");const e=yield w();I({acrValues:"urn:grn:authn:se:bankid:same-device",loginHint:"appswitch:browser",responseMode:"json",pkce:e,redirectUri:x}).then((e=>fetch(e).then((e=>e.json())))).then((t=>{f(e||void 0),g(t);const n="android"===o&&"Chrome"===(null==r?void 0:r.browser.name),i=s?encodeURIComponent(window.location.href):"null",a=`${s||n?t.launchLinks.universalLink:t.launchLinks.customFileHandlerUrl}&redirect=${i}`;Q(window.location.href),Q(a),A(a)})).catch(console.error)}))),[I,x]);(0,u.useEffect)((()=>{b||U()}),[U,b]),(0,u.useEffect)((()=>{if(b)return;const e=setInterval((()=>{b||U()}),25e3);return()=>clearInterval(e)}),[U,b]);const O=()=>{Q("Initiated"),E(!0),m(null)},D=e=>{E(!1),m(e)},S=(0,l.jsxs)("a",Object.assign({className:`${e.className} ${b?"criipto-eid-btn--disabled":""}`,href:c,onClick:O},{children:[b?(0,l.jsx)("div",Object.assign({className:"criipto-eid-logo"},{children:(0,l.jsx)("div",{className:"criipto-eid-loader"})})):e.logo,e.children]}));return(0,l.jsxs)(u.default.Fragment,{children:[d?(0,l.jsx)(u.default.Fragment,{children:"Poll"===a?(0,l.jsx)(V,Object.assign({links:d,onError:D,onComplete:R,onInitiate:O,onLog:Q},{children:S})):"Foreground"===a?(0,l.jsx)(T,Object.assign({links:d,onError:D,onComplete:R,onInitiate:O,onLog:Q},{children:S})):"Reload"===a?(0,l.jsx)(z,Object.assign({links:d,onError:D,onComplete:R,onInitiate:O,onLog:Q,redirectUri:x,pkce:h},{children:S})):S}):S,v&&(0,l.jsx)("p",{children:v})]})}function J(e){var t;const n="string"==typeof e.logo?(0,l.jsx)("img",{src:e.logo,alt:""}):null!==(t=e.logo)&&void 0!==t?t:K(e.acrValue)?(0,l.jsx)("img",{src:K(e.acrValue),alt:""}):(0,l.jsx)("span",{children:" "});return n?(0,l.jsx)("div",Object.assign({className:"criipto-eid-logo"},{children:n})):null}function K(e){return e.startsWith("urn:grn:authn:be:eid")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:nl:digid")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:dk:mitid")?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALAAAAA8CAYAAADGxTD9AAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUPSURBVHgB7Zztcds4EIZf3dz/Uwm8Cs6pIHQFl1QQuYI4FViuQE4FUiqIU4GZCuxUIHYQpQJk14AShiZAEaBECNhnBkNHJD4CLoDF7oKAIAiCIAiCIAiCIAiCIAiCIAiCIAiCIAhCOswgHA2lVEmXC/PP+9lsViNCqJ1zupSUCkr8d03pidr7BCFPSChW6iU3iAgWXEobSt9VN4+U3sAT5ea7Kf+B0h2lazPgB3H2MzB3gOXWF5pB7jBOHe/p0vUid1TH247nF3RZd5eGt5TnHhNDbeSV4TP0rNvHktp8i4GwlGI4O0rcP5+ozgqp0zPCCwTCZTjq2FryPDryxCC8hbLPujYGrx4qnK3Sk4GVFGZg1yivaBRfIqz8R/zWY9vUVP6/HXlYsAsMbJPSy/XcUk+Fkehpn4vLIe3oeTdD2FC6jXUPEcQBo3gBTzhvT9m2GfjBkWftqM+W7wEjwYNE+TOoHWpctqpjRf0L6cObqfnQTKazfDddNn1x57h3Krw3ZcSFT1+OREHpoS3EOQgwd/gaw1nCb5mFWWZ5c1c3fubfLiNYBv+DP9yXBaajgBbiX4MoBwFmeNksD31YabXjHQJgS4PRj58T672R2FVDZ9CpZuA9BRorYy4CzKwPWf4CVYcX8Iyb5OZjWq73qsTfyIcCWjA/9Dy3ROAyaQZK52BpCrPruRbzrg2M58D4irD/XyzeuWuTzhs1nNJRVqmGsfUopwyor7fuA/orpM4prRBt2I49z0mF2LNWdlXCZ7N3VpgNZg0/+lavU8Lv8E3KAryz/F6gY+lR2tNUIA/YQrIbmOc2wuCei5QF+CPs+tqN0rEAzyitXy4tz26gTWDJYATxCocL8UfKs0R8vE5dhbhy3Fs1/rbpdjWmdzwcBRNQ9IrSJ8djNaUrejbWzdI8aSsEzzQ0u7Letuq4zZsZfjH/wK46PPvf1Wgu/Rftq6jsZiwFR4d1xV1UcA9G3/prurC7fAkdD8x1c398g44HrhA3RfJmNA6ppBf0P/QLasN6r21Dt6G8GxyZllltd8hzR2rDBmdILlYIm75nE94aiaoOqZGFI8OoASyQqwOzpBm6Z8FsYttOld0ZHCnaZeOJ61ElmpxEdZgS9fsMHPeHLQYZRvevKH1BnGf6nnJzZPSZjmokrjoofTyKvXi8YVyg35VdQq9cW8q7ViOcchmRH1kJsJlBXAKarOqg9DEiNhfewT+ibEHp0VhvYuA+O1eyOehZddxKVnUwsyYLb4lwWPhXKo4T1lWOsRBMW5Wokajq0BDeAuOynHgm5rOFdZYC3KFKpGx1WOJ4MR43E+rEHCqQVUD7HzRUiZRVhxKBJ0t68D2uFcr9/tsaOQW0dzG6ezaQH5bfL+DHKfRUdsmXJ3Q712iEdWY7AzMRHvexmfjmTROWsShcu5Zvc6/EaQg56TyUD813lrUAR4jL87WAtsWyd4HtuGybLRzPn3KDdUw1ZQ8P7qtZ67NcIsBxMabr9jVOx1x5fJhvADX0Jwk27RsiwBFh9MgK4+CrN8dU3/5DMK9scRm5b+JihDeWQXbbI8+GNkI+mNKGBZfNZHckuM5TIyLAkWEi5/jjf0v465a+ruIQCvhTQ6tPfOR/UCB9Cl+nLC23RrMwmPNzXULRGXJoor1sS+pT36zSKKfAnycl9jhPTJh8BU7Li77oWQl2Jk8NQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRAEQRDOn5/MSF1nx1OpJAAAAABJRU5ErkJggg==":e.startsWith("urn:grn:authn:dk:nemid")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:fi:mobile")?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALEAAAA8CAYAAAApB1vDAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAATiSURBVHgB7Z3vceM2EMVXmXyPU8ExFZxSQZgO3MExFcQdSKnglArkDu5SgZQKrKuAdAXnDl6AA5iT4YX4R6REge83s5ZISiA8fFouFiCwEEJaAODOvCy9vTeWebvzVlN5ezH2xdjB2H6xWLwIIZfGCtfYg7Gdsa84jydjG2OZEDI2Rmi5sU8DCDfGzlghhAyNF+8Ol6McQswLIbMHLt5dGXto+ZVKXKxr49zn4Jgt6524eHkp7aiM/W7i5koI6Yr3vk1hgz2+tV7TC75t2Xe+/I33uk2shJAuGNF8bBDVzth9F+E2nM8K+rHhnPdCSBPeQ+4axJvLSJiys4iYi+M6CiEaXsCHiHht2NA2Lh6iLlbMpSLgFVxKjkImr2kQ8A5XyuGa8y6P3q+O6kQhk9fA5X41NjIBAgHXfBZCLBGBWNYyASL1K8EePmKBS43dtIDBHr75gteNp1sV8NbvL4TMD+iprJ1MgI4CttjsCRt6c8Jc8GWTSK5Yt1ULAT8on1kLmQ/QOzQKuTJo2YiDSwlqXeKZkPSB6+INeZIrg45ZCOt5lc9PIiVIRgZ6LJzLFUHPNBreNkwZG6cOXEYi5KqNOZyRB4YeG1+se5xcAeh54aJjGbkXWW1P6BmL4syODOix8SQyLGQk8LZBV0pHMFBmAwP1xMGNSQ5hSJEi3muFbKUH0BtVJdp70NU53w/K0hqqhZD0iFzs3gPN+woZA4+FgB5S9PpxkokTEV3n2y5cOJGdKLNEPC22OvV59MySYIAwidwA5sJ+HuJC43vDLvPbrYTcQsD2eK9GGZS4WEh6KN6qr2ByRYDrFgJtc7xvnQql/ExIWuBtx0DfRl0eEWJMyB9bCvgcEWvxfi4kLZSLvJYeKILZHh3ThHxKwFlwrK+IM+U89z8IIR1ZLBZr8/LXiY9UcrnJUO4oYtKLE0Ku5MKz+VDEpDeKkCsZV8BaqrD6UUhqVOLmQat5JyNihQyX6fog43tgNd9NT5we4WTWP8vIeI/86wVCiEzZ90IRp8eXYPu9XIALzQS/VM57oIjT4xBs27RUKqO9wh/kt/+VIk6Pg7IvlzQIPTFFnChJitj3zIV3lH/tH4o4MXxsug92f5Dbp1D27e0fijhN/gm27xIYY/BbsH2osyEUcZo8KvtudikBuCc4smD33/UbLjyTKH6QTR7stp0R+xZfr2dqP25IVX3zwEpZLzY11uH7dkx0Fuz+hQvVJA70YYs394Qw9DHEfCxpLkCfxupmFnZBfEbPTMg8iHjjm5k9B/osRvTCcwP6EgeTDytMHf9U6l3SC88Qf0vWZpacbLYC+sQtlkLIPEF8uYPJCRnxOJhhxNyBPg3UpIR8QsAlwwjyDcRXEb26kBFfY/orBUz+B24qqDIi5E/XEgv0Rlwt4KUQcsyJW3Z92y7kQvi67Chg0hnvkZ8QZzemV/bnX504PwVM2oF4Y+9YzIP18MHFvRvosW/NAYyBSRfg0m9lg5jt8a0VNDr29nnhrhAPG47ZoEdvIkexEfGeby3tB8/bEWiVsWdxT1fXlol7+uIncaPW6u0mKmN/tB1hR0gUuJ6yNh5zKGxYwQVkyPDAhQCPGI8d3IpIXHODjAtcCqzAMN65hIt5cxkYxsSkFfj+dEYubv4Hu53J2ycu6vjYxs3P/nU/5lMY/wG766+yI/P2vAAAAABJRU5ErkJggg==":e.startsWith("urn:grn:authn:itsme")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:se:bankid")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:de:sofort")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:no:bankid")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:no:vipps")?"data:image/png;base64,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":void 0}function Z(e){return(0,l.jsx)("a",Object.assign({className:`criipto-verify-button ${e.className}`,href:e.href,onClick:e.onClick},{children:e.children}))}function G(e){return(0,l.jsx)("button",Object.assign({className:`criipto-verify-button ${e.className}`,type:"button",onClick:e.onClick},{children:e.children}))}function q(e){var t,n,i,r,o,s;const{acrValue:a,standalone:c}=e,A=(0,u.useContext)(p),{buildAuthorizeUrl:g}=A,h=null!==(n=null!==(t=e.language)&&void 0!==t?t:A.uiLocales)&&void 0!==n?n:"en",f=null!==(r=null!==(i=e.action)&&void 0!==i?i:A.action)&&void 0!==r?r:"login",v=(null!==(o=e.message)&&void 0!==o||A.message,`criipto-eid-btn ${w=a,(w=w.replace("urn:grn:authn:","")).split(":").reduce(((e,t)=>e.length?e.concat([`${e[e.length-1]}-${t}`]):e.concat([t])),[]).map((e=>`criipto-eid-btn--${e}`)).join(" ")}${e.className?` ${e.className}`:""}`),[m,C]=(0,u.useState)(null),[b,I]=(0,u.useState)(e.href),y=e.redirectUri||A.redirectUri;var w;(0,u.useEffect)((()=>{if(e.href)return;let t,n=!0;const i=P(navigator.userAgent);return a.startsWith("urn:grn:authn:dk:mitid")&&i&&(t=`appswitch:${i} target:web`),g({redirectUri:y,acrValues:a,loginHint:t}).then((e=>{n&&I(e)})).catch(console.error),()=>{n=!1}}),[e.href,g,a,A.pkce,y]);const B=t=>{if(!e.href){if(A.pkce&&"code_verifier"in A.pkce&&(0,d.savePKCEState)(A.store,{response_type:"id_token",pkce_code_verifier:A.pkce.code_verifier,redirect_uri:y}),e.popup){let n="function"==typeof e.popup?e.popup({acrValue:a,onHide:()=>C(null)}):!0===e.popup;!1!==n&&(t.preventDefault(),"boolean"==typeof n?A.loginWithPopup({acrValues:[a],redirectUri:y,backdrop:!0}):(C(n),A.loginWithPopup({acrValues:[a],redirectUri:y,backdrop:!1})))}e.onClick&&e.onClick(t)}},j=null!==(s=e.children)&&void 0!==s?s:(0,l.jsxs)(u.default.Fragment,{children:[k(h,f)?`${k(h,f)} `:"",E(h,a).title," ",c?null:(x=E(h,a).subtitle,x?x.substring(0,1).toLowerCase()+x.substr(1,x.length):x)]});var x;if(!e.href&&"urn:grn:authn:se:bankid:same-device"===a)return(0,l.jsx)(F,Object.assign({redirectUri:e.redirectUri,href:b,className:v,userAgent:e.userAgent,logo:(0,l.jsx)(J,{acrValue:a,logo:e.logo})},{children:(0,l.jsx)("span",{children:j})}));const Q=(0,l.jsxs)(u.default.Fragment,{children:[(0,l.jsx)(J,{acrValue:a,logo:e.logo}),(0,l.jsx)("span",{children:j})]});return(0,l.jsxs)(u.default.Fragment,b?{children:[(0,l.jsx)(Z,Object.assign({},e,{href:b,className:v,onClick:B},{children:Q})),m]}:{children:[(0,l.jsx)(G,Object.assign({},e,{className:v,onClick:B},{children:Q})),m]})}const _=(e=>{var t={};return s.d(t,e),t})({default:()=>o.default});var $=function(e,t,n,i){return new(n||(n=Promise))((function(r,o){function s(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((i=i.apply(e,t||[])).next())}))};function ee(e){var t,n,i;const r=(0,u.useRef)(null),o=(0,u.useRef)(null),{buildAuthorizeUrl:s,completionStrategy:a,handleResponse:c,generatePKCE:A,redirectUri:d,uiLocales:g}=(0,u.useContext)(p),h=null!==(n=null!==(t=e.language)&&void 0!==t?t:g)&&void 0!==n?n:"en",f=e.redirectUri||d,[v,m]=(0,u.useState)(null),[k,b]=(0,u.useState)(null),[E,I]=(0,u.useState)(null),[y,w]=(0,u.useState)(void 0),[B,j]=(0,u.useState)(!1),x=(0,u.useCallback)((()=>$(this,void 0,void 0,(function*(){I(null),m(null),b(null),w(void 0);const e=yield A();s({acrValues:"urn:grn:authn:se:bankid:another-device:qr",responseMode:"json",pkce:e,redirectUri:f}).then((e=>fetch(e).then((e=>e.json())))).then((t=>{w(e),m(t.initialQrCode),b(t.pollUrl)})).catch(console.error)}))),[s,f]);(0,u.useEffect)((()=>{x()}),[x]);const Q=()=>{j(!1),x()},R=(0,u.useCallback)((e=>{"Collect failed: startFailed"!==e&&'"Collect failed: startFailed"'!==e?(I(new Error(e)),c({error:e},{pkce:y,redirectUri:f,source:"SEBankIDQrCode"})):Q()}),[y,f]),U=(0,u.useCallback)((e=>$(this,void 0,void 0,(function*(){j(!0);const t={pkce:y},n=yield fetch(e);if(n.status>=400)return void R(yield n.text());const{location:i}=yield n.json();if("openidprovider"===a)return void(window.location.href=i);const r=new URL(i),o=(s=r.searchParams,Array.from(s.keys()).reduce(((e,t)=>(e[t]=s.get(t),e)),{}));var s;yield c(o,{pkce:t.pkce,redirectUri:f,source:"SEBankIDQrCode"})}))),[a,y]);!function(e,t){const{width:n,canvas:i,qrMargin:r}=t;(0,u.useEffect)((()=>{if(!e)return;if(!i)return;let t=!0;return(()=>{$(this,void 0,void 0,(function*(){i.width=null!=n?n:300,i.height=null!=n?n:300;const o=yield _.default.toCanvas(e,{errorCorrectionLevel:"low",scale:10,width:n,margin:null!=r?r:4});t&&i.getContext("2d").drawImage(o,0,0)}))})(),()=>{t=!1}}),[e,r,i,n])}(v,{canvas:r.current,width:null===(i=o.current)||void 0===i?void 0:i.offsetWidth,qrMargin:e.qrMargin}),function(e,t){const{onQrCode:n,onComplete:i,onError:r,enabled:o}=t;(0,u.useEffect)((()=>{if(!e)return;if(!o)return;let t,s=!0;const a=()=>$(this,void 0,void 0,(function*(){if(!s)return;const o=yield fetch(e);if(s){if(o.status<400){const e=yield o.json();if(e.qrCode&&n(e.qrCode),e.targetUrl)return void i(e.targetUrl)}else{const e=yield o.text();r(e)}202===o.status&&(t=setTimeout(a,2500))}}));return t=setTimeout(a,2500),()=>{s=!1,clearTimeout(t)}}),[e,n,i,r,o])}(k,{enabled:!B,onQrCode:m,onComplete:U,onError:R});const O=(0,l.jsx)("div",Object.assign({ref:o},{children:(0,l.jsx)("canvas",{ref:r})})),D="en"===h?"Completing your login.":"da"==h?"Fuldfører dit login.":"sv"==h?"Slutför din inloggning.":"nb"==h?"Fullfører påloggingen.":C(h),S="en"===h?"Open the BankID app on your mobile device and scan the QR code.":"da"==h?"Åben BankID appen på din telefon og scan QR koden.":"sv"==h?"Öppna BankID-appen på din mobila enhet och skanna QR-koden.":"nb"==h?"Åpne BankID-appen på mobilenheten din og skann QR-koden.":C(h),L=(0,l.jsxs)("div",Object.assign({className:"criipto-se-bankid-qr"},{children:[(0,l.jsxs)("aside",Object.assign({className:"criipto-se-bankid-qr--help-text"},{children:[B?D:S,(0,l.jsx)("img",{src:"data:image/png;base64,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"})]})),O]}));return e.children?e.children({qrElement:L,canvasElement:O,error:E,isCompleting:B,retry:()=>Q()}):L}function te(e,t){const n=b(e),i=t.reduce(((e,t)=>e+(b(t)===n?1:0)),0);return 1===i}function ne(e){var t,n;const{action:i,uiLocales:r,acrValues:o}=(0,u.useContext)(p),s=e.language||r||"en",a=I(null!==(n=null!==(t=e.acrValues)&&void 0!==t?t:o)&&void 0!==n?n:[]);return a.length&&a.every((e=>e.startsWith("urn:grn:authn:se:bankid:")))?(0,l.jsx)(ie,Object.assign({},e,{acrValues:a})):(0,l.jsx)("div",Object.assign({className:"criipto-eid-selector"},{children:a.map((t=>(0,l.jsx)(q,{acrValue:t,onClick:e.onSelect?()=>e.onSelect(t):void 0,redirectUri:e.redirectUri,popup:e.popup,language:s,action:i,standalone:te(t,a),userAgent:e.userAgent},t)))}))}function ie(e){const{acrValues:t}=e,{action:n,uiLocales:i}=(0,u.useContext)(p),r=e.language||i||"en",o=t.includes("urn:grn:authn:se:bankid:another-device:qr"),s=t.filter((e=>"urn:grn:authn:se:bankid:another-device:qr"!==e)),a=N("undefined"!=typeof navigator?navigator.userAgent:e.userAgent),c="iOS"===(null==a?void 0:a.os.name)?"iOS":"Android"===(null==a?void 0:a.os.name)?"android":null;return(0,l.jsxs)("div",Object.assign({className:"criipto-eid-selector"},{children:[s.map((i=>(0,l.jsx)(q,{acrValue:i,onClick:e.onSelect?()=>e.onSelect(i):void 0,redirectUri:e.redirectUri,popup:e.popup,language:r,action:n,standalone:te(i,t),userAgent:e.userAgent},i))),o&&!c?(0,l.jsx)(ee,{language:r,redirectUri:e.redirectUri}):null]}))}const re=e=>{var t,n;const{children:i,margin:r,className:o}=e,s=(0,u.useRef)(null),{client:a,buildOptions:c,buildAuthorizeUrl:A,handleResponse:g,pkce:h,store:f,acrValues:v}=(0,u.useContext)(p),[m,C]=(0,u.useState)((()=>Math.random().toString())),[k,b]=(0,u.useState)(!1),[E,I]=(0,u.useState)(!1),[y,w]=(0,u.useState)(null),[B,j]=(0,u.useState)(null),x=null==B?void 0:B.client.qr_enabled,Q=null!==(n=null!==(t=e.acrValues)&&void 0!==t?t:v)&&void 0!==n?n:[];(0,u.useEffect)((()=>{let e=!0;return a.fetchCriiptoConfiguration().then((t=>{e&&j(t)})),()=>{e=!1}}),[a]);const R=(0,u.useCallback)((()=>{return e=void 0,t=void 0,i=function*(){var e;if(!B)return;const t=(null!==(e=B.client.qr_intermediary_url)&&void 0!==e?e:B.qr_intermediary_url).replace("/{id}","").replace("{id}",""),n=new URL(yield A({acrValues:Q})),i=new URLSearchParams(n.search);i.set("domain",n.host),n.host=new URL(t).host,n.port=new URL(t).port,n.pathname=new URL(t).pathname+"/authorize",n.search=i.toString(),h&&"code_verifier"in h&&(0,d.savePKCEState)(f,{response_type:"id_token",pkce_code_verifier:h.code_verifier,redirect_uri:i.get("redirect_uri")}),window.location.href=n.toString()},new((n=void 0)||(n=Promise))((function(r,o){function s(e){try{l(i.next(e))}catch(e){o(e)}}function a(e){try{l(i.throw(e))}catch(e){o(e)}}function l(e){var t;e.done?r(e.value):(t=e.value,t instanceof n?t:new n((function(e){e(t)}))).then(s,a)}l((i=i.apply(e,t||[])).next())}));var e,t,n,i}),[A,B,Q]),U=(0,u.useCallback)((()=>a.qr.authorize(s.current,Object.assign(Object.assign({},c({acrValues:Q})),{margin:r}))),[a,c,r,Q]);return(0,u.useLayoutEffect)((()=>{if(!s.current)return;if(y)return;if(!x)return;const e=U();return e.onAcknowledged=()=>{b(!0)},e.then((t=>{e.cancelled||g(t,{pkce:h&&"code_verifier"in h?h:void 0,source:"QRCode"})})).catch((t=>{t instanceof d.UserCancelledError?I(!0):e.cancelled||(w(t),g(t,{source:"QRCode"}))})),()=>{e.cancel()}}),[U,h,g,m,y,x]),i({qrElement:(0,l.jsx)("div",{ref:s,className:o}),isAcknowledged:k,isCancelled:E,isEnabled:null==B?void 0:B.client.qr_enabled,error:y,retry:()=>{b(!1),I(!1),w(null),C(Math.random().toString())},redirect:R})};function oe(){const{result:e,claims:t,loginWithRedirect:n,loginWithPopup:i,acrValues:r,isLoading:o,isInitializing:s,logout:a,checkSession:l}=(0,u.useContext)(p);return{result:e,claims:t,error:e&&"error"in e?e:null,loginWithRedirect:n,loginWithPopup:i,acrValues:r,isLoading:o,isInitializing:s,checkSession:l,logout:a}}var se=a.fw,ae=a.I2,le=a.Fw,ce=a.bl,Ae=a.Lk,ue=a.s_,de=a.p_,ge=a.Nw,he=a.f7,fe=a.kP;export{se as AuthMethodButton,ae as AuthMethodSelector,le as AuthMethodSelectorSweden,ce as CriiptoVerifyProvider,Ae as OAuth2Error,ue as QRCode,de as SEBankIDQRCode,ge as actions,he as filterAcrValues,fe as useCriiptoVerify};
|
|
2
2
|
//# sourceMappingURL=criipto-verify-react.esm.js.map
|