@criipto/verify-react 4.1.2 → 4.1.4
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/dist/components/AuthMethodButton.d.ts +1 -1
- package/dist/components/AuthMethodSelector.d.ts +1 -1
- package/dist/components/SEBankIDQRCode.d.ts +1 -1
- package/dist/criipto-verify-react.cjs.js +1 -1
- package/dist/criipto-verify-react.cjs.js.map +1 -1
- package/dist/criipto-verify-react.css +2 -0
- package/dist/criipto-verify-react.esm.js +1 -1
- package/dist/criipto-verify-react.esm.js.map +1 -1
- package/dist/i18n/da.d.ts +19 -0
- package/dist/i18n/de.d.ts +19 -0
- package/dist/i18n/en.d.ts +19 -0
- package/dist/i18n/fi.d.ts +19 -0
- package/dist/i18n/index.d.ts +4 -0
- package/dist/i18n/nb.d.ts +19 -0
- package/dist/i18n/nl.d.ts +19 -0
- package/dist/i18n/sv.d.ts +19 -0
- package/dist/index.d.ts +2 -1
- package/dist/utils.d.ts +2 -2
- package/package.json +1 -1
|
@@ -2,7 +2,7 @@ import React from 'react';
|
|
|
2
2
|
import './AuthMethodButton/AuthMethodButton.css';
|
|
3
3
|
import { Action } from '../context';
|
|
4
4
|
import { AuthMethodButtonLogoProps } from './AuthMethodButton/Logo';
|
|
5
|
-
import { Language } from '../
|
|
5
|
+
import { type Language } from '../i18n';
|
|
6
6
|
export type PopupParams = {
|
|
7
7
|
acrValue: string;
|
|
8
8
|
onHide: () => void;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { AuthorizeResponse, OAuth2Error } from '@criipto/auth-js';
|
|
3
|
-
import { Language } from '../
|
|
3
|
+
import { type Language } from '../i18n';
|
|
4
4
|
import './SEBankIDQRCode/SEBankIDQRCode.css';
|
|
5
5
|
interface Props {
|
|
6
6
|
redirectUri?: string;
|
|
@@ -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),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{AuthButton:()=>ke,AuthButtonComponent:()=>me,AuthButtonGroup:()=>ve,AuthMethodButton:()=>ke,AuthMethodSelector:()=>Ee,AuthMethodSelectorSweden:()=>Ie,CriiptoVerifyProvider:()=>D,OAuth2Error:()=>o.OAuth2Error,QRCode:()=>ye,SEBankIDQRCode:()=>pe,actions:()=>l,filterAcrValues:()=>k,useCriiptoVerify:()=>we});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 l=["confirm","accept","approve","sign","login"],a=()=>{throw new Error("You forgot to wrap your component in <CriiptoVerifyProvider>.")},c={loginWithRedirect:a,loginWithPopup:a,checkSession:a,logout:a,fetchOpenIDConfiguration:a,buildAuthorizeUrl:a,generatePKCE:a,buildOptions:a,handleResponse:a,responseType:"token",completionStrategy:"client",result:null,claims:null,domain:"",action:"login",pkce:void 0,store:null,isLoading:!1,isInitializing:!0,client:null,loginHint:void 0},u=(0,i.createContext)(c),d="urn:grn:authn:dk:mitid",A="urn:grn:authn:dk:mitid:business",g="urn:grn:authn:fi";function h(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 p(e){throw new Error(`Unsupported language ${e}`)}function f(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(){throw new Error("Didn't expect to get here")}()}function v(e){return(e=e.replace("urn:grn:authn:","")).startsWith("fi")?"fi":e.startsWith("itsme")?"itsme":e.split(":").slice(0,2).join(":")}function m(e,n,{disambiguate:t}){const i=v(n=n.replace("urn:grn:authn:",""));if("dk:mitid"===i)return"business"===n.replace("dk:mitid:","")?"en"===e?{title:"MitID Business"}:{title:"MitID Erhverv"}:{title:"MitID"};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"===i)return{title:h(n).replace("FI","FTN")};if("itsme"===i)return{title:h(n).replace("me","ME")};if("se:bankid"===i){let i,r=n.replace("se:bankid:",""),o="BankID";return"same-device"===r&&("en"===e&&(i="On this device"),"da"===e&&(i="På denne enhed"),"sv"===e&&(i="På denna enhet"),"nb"===e&&(i="På denne enhet")),"another-device"===r&&("en"===e&&(i="With your SSN"),"da"===e&&(i="Med dit personnummer"),"sv"===e&&(i="Med ditt personnummer"),"nb"===e&&(i="Med personnummeret ditt")),"another-device:qr"===r&&("en"===e&&(i="On another device"),"da"===e&&(i="På anden enhed"),"sv"===e&&(i="På annan enhet"),"nb"===e&&(i="På annan enhet")),t&&("en"===e&&(o=`Swedish ${o}`),"da"===e&&(o=`Svensk ${o}`),"sv"===e&&(o=`Svenskt ${o}`),"nb"===e&&(o=`Svensk ${o}`)),{title:o,subtitle:i}}if("no:bankid"===i){let i,r="BankID";return n.endsWith(":substantial")&&("en"===e&&(i="Biometrics"),"da"===e&&(i="Biometri "),"sv"===e&&(i="Biometri"),"nb"===e&&(i="Biometri")),t&&("en"===e&&(r=`Norwegian ${r}`),"da"===e&&(r=`Norsk ${r}`),"sv"===e&&(r=`Norska ${r}`),"nb"===e&&(r=`Norsk ${r}`)),{title:r,subtitle:i}}return"no:vipps"===i?{title:h(n).replace("NO ","")}:"se:frejaid"===i?{title:"FrejaID"}:"uk:oneid"===i?{title:"OneID"}:"de:personalausweis"===i?{title:"Personalausweis"}:{title:h(n)}}function k(e){let n=e.slice(),t=function(e){let n=null;return e.forEach(e=>{if(e.startsWith(d)&&e!==A)if(n){let t=e.replace(d,""),i=n.replace(d,"");(":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(d)||e===A).concat([t]).sort((e,t)=>n.indexOf(e)-n.indexOf(t))),e.includes(`${g}:all`)&&(i.includes(`${g}:bank-id`)||i.push(`${g}:bank-id`),i.includes(`${g}:mobile-id`)||i.push(`${g}:mobile-id`),i=i.filter(e=>e!==`${g}:all`)),i}function b(e,n){const t=v(e),i=n.reduce((e,n)=>e+(v(n)===t?1:0),0);return 1===i}const C=["se:bankid","no:bankid"];function E(e,n){const t=v(e),i=C.includes(t),r=null!=n.find(e=>{const n=v(e);return t!=n&&C.includes(n)});return i&&r}function I(){try{return"undefined"==typeof sessionStorage?null:sessionStorage}catch(e){return null}}const y=require("jwt-decode");var w=e.n(y);function U(){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 Q=function(e,n,t,i){return new(t||(t=Promise))(function(r,o){function s(e){try{a(i.next(e))}catch(e){o(e)}}function l(e){try{a(i.throw(e))}catch(e){o(e)}}function a(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(s,l)}a((i=i.apply(e,n||[])).next())})};const B="@criipto-verify-react/session",R=["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:qr"],S=["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:qr"];function j(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?R.includes(o[0])&&s.push(`action:${i}`):o.length>=2?o.some(e=>R.includes(e))&&s.push(`action:${i}`):s.push(`action:${i}`)),r&&(1===o.length?S.includes(o[0])&&s.push(`message:${btoa(r)}`):o.length>=2?o.some(e=>S.includes(e))&&s.push(`message:${btoa(r)}`):s.push(`message:${btoa(r)}`)),s.length?s.join(" "):void 0}function x(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=(()=>{const e=I();return null===e?(console.warn("Creating memory store for PKCE values as no sessionStorage is available. Authentication may be broken."),U()):e})(),D=e=>{var n,r,a;const c=(0,i.useMemo)(()=>new(s())({domain:e.domain,clientID:e.clientID,store:O,redirectUri:x(e.redirectUri),protocol:e.protocol}),[e.domain,e.clientID,e.redirectUri,e.protocol]),[d,A]=(0,i.useState)(null);(0,i.useEffect)(()=>{let e=!0;return Q(void 0,void 0,void 0,function*(){const n=yield c.fetchOpenIDConfiguration();e&&A(n)}),()=>{e=!1}},[c]);const[g,h]=(0,i.useState)(null),p=(0,i.useMemo)(()=>g&&"id_token"in g?w()(g.id_token):null,[g]),[f,v]=(0,i.useState)(!1),[m,b]=(0,i.useState)(!0),[C,E]=(0,i.useState)(e.pkce),I=e.response||"token",y=e.completionStrategy||"client",U=e.uiLocales,R=e.loginHint,S=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 l.includes(t)?t:void 0}(R))&&void 0!==r?r:"login",D=null!==(a=e.message)&&void 0!==a?a: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}(R),P=e.sessionStore,V=()=>Q(void 0,void 0,void 0,function*(){if(e.pkce)return e.pkce;if("token"!==I||"client"!==y)return(0,o.clearPKCEState)(O),void E(void 0);(0,o.clearPKCEState)(O);const n=yield(0,o.generatePKCE)();return E(n),n}),N=(0,i.useCallback)(n=>{var t,i,r,o,s,l;return Object.assign(Object.assign({redirectUri:x(e.redirectUri),responseType:null!==(t=e.responseType)&&void 0!==t?t:"code",responseMode:e.responseMode},n||{}),{state:null!==(i=e.state)&&void 0!==i?i:null==n?void 0:n.state,nonce:null!==(r=e.nonce)&&void 0!==r?r:null==n?void 0:n.nonce,prompt:null!==(o=e.prompt)&&void 0!==o?o:null==n?void 0:n.prompt,scope:null!==(s=e.scope)&&void 0!==s?s:null==n?void 0:n.scope,uiLocales:null!=U?U:null==n?void 0:n.uiLocales,pkce:null!==(l=null==n?void 0:n.pkce)&&void 0!==l?l:C,loginHint:j(e.loginHint,{options:n,action:S,message:D}),extraUrlParams:void 0!==e.criiptoSdk?{criipto_sdk:e.criiptoSdk}:{criipto_sdk:"@criipto/verify-react@4.1.2"}})},[C,e.state,e.nonce,e.prompt,e.scope,U,S,D,e.redirectUri,e.criiptoSdk,e.loginHint,e.responseMode,e.responseType]),L=(0,i.useCallback)(e=>Q(void 0,void 0,void 0,function*(){return yield c.buildAuthorizeUrl(c.buildAuthorizeParams(N(e)))}),[c,N]),W=(0,i.useCallback)((n,t)=>Q(void 0,void 0,void 0,function*(){if(n instanceof o.OAuth2Error)h(n);else if(n instanceof Error)h(n);else if(t.pkce&&"token"===I){let i=t.redirectUri||x(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)?h({code:e.code,state:e.state,source:t.source}):(null==e?void 0:e.id_token)?(h({id_token:e.id_token,state:e.state,source:t.source}),null==P||P.setItem(B,e.id_token)):h(null)}).catch(e=>{h(e)})}else(null==n?void 0:n.code)?h({code:n.code,state:n.state,source:t.source}):(null==n?void 0:n.id_token)?(h({id_token:n.id_token,state:n.state,source:t.source}),null==P||P.setItem(B,n.id_token)):(null==n?void 0:n.error)?h(new o.OAuth2Error(n.error,n.error_description,n.state)):h(null);V()}),[V,I,h,c,P,e.redirectUri]),F=(0,i.useCallback)(()=>Q(void 0,void 0,void 0,function*(){return c.checkSession({redirectUri:x(e.redirectUri)}).then(e=>{(null==e?void 0:e.code)?h({code:e.code}):(null==e?void 0:e.id_token)?(h({id_token:e.id_token}),null==P||P.setItem(B,e.id_token)):h(null)})}),[P,c,e.redirectUri]),M=(0,i.useCallback)(n=>Q(void 0,void 0,void 0,function*(){var t;null==P||P.removeItem(B),yield c.logout({redirectUri:null!==(t=null==n?void 0:n.redirectUri)&&void 0!==t?t:x(e.redirectUri),state:null==n?void 0:n.state})}),[P,c,e.redirectUri]),J=(0,i.useMemo)(()=>({loginWithRedirect:e=>Q(void 0,void 0,void 0,function*(){const n=yield V();yield c.redirect.authorize(N(Object.assign(Object.assign({},e),{pkce:n})))}),loginWithPopup:e=>Q(void 0,void 0,void 0,function*(){return c.popup.authorize(N(e)).then(e=>{(null==e?void 0:e.code)?h({code:e.code,state:e.state,source:"popup"}):(null==e?void 0:e.id_token)?h({id_token:e.id_token,state:e.state,source:"popup"}):h(null)}).catch(e=>{h(e)})}),checkSession:F,logout:M,fetchOpenIDConfiguration:()=>c.fetchOpenIDConfiguration(),buildAuthorizeUrl:L,generatePKCE:()=>Q(void 0,void 0,void 0,function*(){if("token"===I&&"client"===y)return yield(0,o.generatePKCE)()}),buildOptions:N,handleResponse:W,responseType:I,completionStrategy:y,result:g,claims:p,domain:c.domain,redirectUri:x(e.redirectUri),action:S,message:D,pkce:C,store:O,isLoading:f,isInitializing:m,acrValues:d?k(d.acr_values_supported):void 0,client:c,uiLocales:U,loginHint:R}),[c,e.redirectUri,I,y,g,p,S,D,C,e.state,e.prompt,f,m,W,M,d,U,F,R]);return(0,i.useEffect)(()=>{if(b(!1),!c.redirect.hasMatch())return void V();let e=!0;v(!0);const n=(0,o.parseAuthorizeResponseFromLocation)(window.location);return n.code&&"code"===I?(v(!1),h({code:n.code,source:"redirect",state:n.state}),void V()):(Q(void 0,void 0,void 0,function*(){var n;if(yield Promise.resolve(),e)try{const n=yield c.redirect.match();if(!e)return;(null==n?void 0:n.code)?h({code:n.code,source:"redirect",state:n.state}):(null==n?void 0:n.id_token)?(h({id_token:n.id_token,source:"redirect",state:n.state}),null==P||P.setItem(B,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)):h(null)}catch(t){if(!e)return;t instanceof o.OAuth2Error||t instanceof Error?h(t):h(new Error(null!==(n=null==t?void 0:t.toString())&&void 0!==n?n:"Unknown error ocurred"))}finally{if(!e)return;v(!1),V()}}),()=>{e=!1})},[e.pkce,I]),(0,i.useEffect)(()=>{if(P&&!p&&!p){const e=P.getItem(B);if(!e)return;return void h({id_token:e})}},[P,p]),(0,i.useEffect)(()=>{if(!p)return;if(!P)return;const e=setInterval(()=>{const e=Date.now();if(p.exp<e/1e3)return h(null),void(null==P||P.removeItem(B))},5e3);return()=>clearInterval(e)},[P,p,g]),(0,i.useEffect)(()=>{if(b(!1),!P)return;if(c.redirect.hasMatch())return;if(P.getItem(B))return;let e=!0;return v(!0),F().catch(e=>{console.error("session silent check error",e)}).finally(()=>{e&&v(!1)}),()=>{e=!1}},[P,c]),(0,t.jsx)(u.Provider,Object.assign({value:J},{children:e.children}))},P=require("ua-parser-js");var V=e.n(P);function N(e){return e?V()(e):null}var L=function(e,n,t,i){return new(t||(t=Promise))(function(r,o){function s(e){try{a(i.next(e))}catch(e){o(e)}}function l(e){try{a(i.throw(e))}catch(e){o(e)}}function a(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(s,l)}a((i=i.apply(e,n||[])).next())})};function W({shouldPoll:e,pollUrl:n,onComplete:t,onError:r}){(0,i.useEffect)(()=>{if(!e)return;let i=!0;const o=()=>L(this,void 0,void 0,function*(){if(!i)return;const e=yield fetch(n);if(202!==e.status){if(e.status>=400){if(!i)return;const n=yield e.text();return void r(n)}{if(!i)return;const{targetUrl:n}=yield e.json();return void t(n)}}setTimeout(o,1e3)});return setTimeout(o,1e3),()=>{i=!1}},[e,n])}function F(e){const{links:n,onError:t,onComplete:o,onInitiate:s}=e,[l,a]=(0,i.useState)(!1),{domain:c}=(0,i.useContext)(u);return W(Object.assign(Object.assign({},e),{shouldPoll:l,pollUrl:n.pollUrl})),r().cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{s(),a(!0)}}))}function M(e){const{links:n,onInitiate:t,onLog:o}=e,[s,l]=(0,i.useState)(!1),[a,c]=(0,i.useState)(null),u=(0,i.useCallback)(e=>c({result:e}),[]),d=(0,i.useCallback)(e=>c({error:e}),[]),A=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 r}(()=>{o("ForegroundStrategy","onForeground",s.toString())},[s]);return(0,i.useEffect)(()=>{a&&"visible"===A&&("result"in a?e.onComplete(a.result):"error"in a&&e.onError(a.error),c(null))},[a,A]),W({shouldPoll:s,pollUrl:n.pollUrl,onComplete:u,onError:d}),r().cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{o("ForegroundStrategy","handleInitiate"),t(),l(!0)}}))}const J="@criipto/verify-react:sebankid:state",T=(()=>{const e=I();return null===e?(console.warn("Creating memory store for PKCE values as no sessionStorage is available. Authentication may be broken."),U()):e})();function H(){const e=T.getItem(J);if(e)return JSON.parse(e)}const K=H();function Y(e){const{links:n,onError:t,onComplete:o,onInitiate:s,onLog:l,pkce:a,redirectUri:c}=e;return(0,i.useEffect)(()=>{const e=H();e&&(T.removeItem(J),o(e.links.completeUrl))},[]),r().cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{var e;l("ReloadStrategy","handleInitiate"),e={links:n,redirectUri:c,pkce:a},T.setItem(J,JSON.stringify(e)),s()}}))}var z=function(e,n,t,i){return new(t||(t=Promise))(function(r,o){function s(e){try{a(i.next(e))}catch(e){o(e)}}function l(e){try{a(i.throw(e))}catch(e){o(e)}}function a(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(s,l)}a((i=i.apply(e,n||[])).next())})};class G extends Error{constructor(e){super(e),this.name="NotDoneError"}}function q(e){var n,o;const{loginHint:s}=(0,i.useContext)(u),l="undefined"!=typeof navigator?navigator.userAgent:e.userAgent,a=(0,i.useMemo)(()=>function(e,n){var t;const i=N(e),r="iOS"===(null==i?void 0:i.os.name)?"iOS":"Android"===(null==i?void 0:i.os.name)||"Samsung Internet"===(null==i?void 0:i.browser.name)?"android":null,o=!("iOS"!==r||!(null===(t=null==i?void 0:i.browser.name)||void 0===t?void 0:t.includes("Safari"))),s="android"===r&&"Chrome"===(null==i?void 0:i.browser.name),l=o&&!(null==n?void 0:n.includes("appswitch:resumeUrl:disable"));return{resume:r?o&&l?"Reload":"Foreground":"Poll",linkType:"iOS"===r||s?"universal":"scheme",redirect:l}}(l,s),[l,s]),[c,d]=(0,i.useState)(),[A,g]=(0,i.useState)(null!==(n=null==K?void 0:K.links)&&void 0!==n?n:null),[h,p]=(0,i.useState)(null!==(o=null==K?void 0:K.pkce)&&void 0!==o?o:void 0),[f,v]=(0,i.useState)(null),[m,k]=(0,i.useState)([]),[b,C]=(0,i.useState)(!!K),{buildAuthorizeUrl:E,completionStrategy:I,generatePKCE:y,handleResponse:w,redirectUri:U,domain:Q}=(0,i.useContext)(u),B=e.redirectUri||U,R=(...e)=>{k(n=>n.concat([e]))},S=(0,i.useCallback)(e=>z(this,void 0,void 0,function*(){const n={pkce:h};p(void 0),g(null);const t=e.startsWith(`https://${Q}`)||e.startsWith(`http://${Q}`)?yield function(e){return z(this,void 0,void 0,function*(){const n=yield fetch(e);if(n.status>=400){const e=yield n.text();return e.includes("Native-app driven authentication is not done")?new G(e):new Error(e)}const{location:t}=yield n.json();return{location:t}})}(e):{location:e};if(t instanceof G&&"Reload"===a.resume)return void(yield w({error:"access_denied"},{pkce:n.pkce,redirectUri:B,source:"SEBankIDSameDeviceButton"}));if(t instanceof Error)return void v(t.message);const{location:i}=t;if("openidprovider"===I)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 w(o,{pkce:n.pkce,redirectUri:B,source:"SEBankIDSameDeviceButton"})}),[I,h,Q,a]),j=(0,i.useCallback)(()=>z(this,void 0,void 0,function*(){R("SEBankID: Refresh authorize url");const e=yield y();E({acrValues:"urn:grn:authn:se:bankid:same-device",loginHint:(null==s?void 0:s.includes("appswitch:"))?void 0:"appswitch:browser",responseMode:"json",pkce:e,redirectUri:B,prompt:"login"}).then(e=>fetch(e).then(e=>e.json())).then(n=>{p(e||void 0),g(n);const t=a.redirect?window.location.href:"null",i=new URL("universal"===a.linkType?n.launchLinks.universalLink:n.launchLinks.customFileHandlerUrl);i.searchParams.set("redirect",t);const r=i.href;R(window.location.href),R(r),d(r)}).catch(e=>{C(!1)})}),[E,B,a]);(0,i.useEffect)(()=>{b||j()},[j,b]),(0,i.useEffect)(()=>{if(b)return;const e=setInterval(()=>{b||j()},25e3);return()=>clearInterval(e)},[j,b]);const x=()=>{R("Initiated"),C(!0),v(null)},O=e=>z(this,void 0,void 0,function*(){C(!1),v(e),"access_denied"!==e&&'"access_denied"'!==e||(yield w({error:"access_denied"},{pkce:h,redirectUri:B,source:"SEBankIDSameDeviceButton"}))}),D=c?(0,t.jsxs)("a",Object.assign({className:`${e.className} ${b?"criipto-eid-btn--disabled":""}`,href:c,onClick:x},{children:[b?(0,t.jsx)("div",Object.assign({className:"criipto-eid-logo"},{children:(0,t.jsx)("div",{className:"criipto-eid-loader"})})):e.logo,e.children]})):e.fallback;return(0,t.jsxs)(r().Fragment,{children:[A?(0,t.jsx)(r().Fragment,{children:"Poll"===a.resume?(0,t.jsx)(F,Object.assign({links:A,onError:O,onComplete:S,onInitiate:x,onLog:R},{children:D})):"Foreground"===a.resume?(0,t.jsx)(M,Object.assign({links:A,onError:O,onComplete:S,onInitiate:x,onLog:R},{children:D})):"Reload"===a.resume?(0,t.jsx)(Y,Object.assign({links:A,onError:O,onComplete:S,onInitiate:x,onLog:R,redirectUri:B,pkce:h},{children:D})):D}):D,f&&(0,t.jsx)("p",{children:f})]})}const X="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==",Z="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==",_="data:image/png;base64,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",$="data:image/png;base64,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",ee="data:image/png;base64,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",ne="data:image/png;base64,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",te="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAABICAYAAACjpDbfAAABoUlEQVR4Ae3b21GDQBgF4EPGAiwhVKAdiBUkVqAdOFbApAM7UCvQDqAD6UCsIHSw/v8IPsQxyl6Y3fV8MzshkzxwsncgABEREcEYU0lppOxNuvTcGynbw3C1yU+t2QrzmfYZebrUgI0cVMhTqwH3cnCKPA0a0CBjK2Qu+4AncNdKeUJ451JuMZOPPlgWRdEjMDnNtby8YSbXJtouEW5UwYJrwCWa5qSGBZcm2kvtlViAnKL2v1dYcKnBJWtv9uAycanBcqn+J6eog8saFmynicffwo2LeB9LwDNYhlO2Ad+PfSjhKkSyQ+FSLXUMmDoGTF2ogAMi4WM/+I0sAjqZC+9gN9Ffw2FiPxQkoJKQ97AgP0wvLw/wJMY+uIFHUQUcd+1beBRbDVptao+JLWAFz6IJKM3zBh5Hz0mwUXS8zPDXaUK/5715qiABx/1ggwhwqZY6BkwdA6aOAVPHgKljwNQxYOpst0ub8erXTy4QCT7Klbp/ETCa+wgBDBqwQ766IqYLRAFcreQmSSsHO+RnJ9levt7pcy0mn78VVCAiIiJ8AI5e2xs/OkmLAAAAAElFTkSuQmCC",ie="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAABICAYAAABP0VPJAAAEqUlEQVR4Ae2cjVXbMBDHLzwGyAbVBoUJ6k4AGzSdgHQCwgShEyRMAJ0g6QSECZxOABtcddEp2CIJd7Jk82J+7wkSW9bH3xfpfFIC8MknhxjsOoiIQ/tvZNOFTYbTMfBi09qmlU13g8FgGWaoCcJCTMGJ0QcebPplhVm/OWPFOLOpxFcWNo35+BCOAO7LyKb7Sj+pzybMaGx6rmQo4MihPlYMoKzd9OCEgZ4QGMLUHywq5mOgZ/BHyDOkAzN+M4OeYvv+yBqMT+z7Mz7+B/qL73sBff64eCrDRjmgv3TQzsUDaAEezQtgZ89WexucvwLnH5HztLLnXyAzbAylf4NelIwV0h24rnxWPYsdeRdBHrpmmtuCtzrkFISFCDuoFaSW36YRZCCrIAIhYgXxlJjYefQFn0BCbHlDdA4OdbSAfBiqA53LYCAlqSwE3z4LSYi1kNBaDDQkqYXYcn6AswoD7WNseuQ2NOYUGsINmUO30FQ+J0O30/QdNKCRhdgGXEL3YlSZN7aU2DEE60+KGugaikdsYi17yg1jFtryzyL643TYvtBdTLNJiTqooRNUBJu4nlFEXSUqg1pNBZmhjltsGHVjMTVMleXHCYJuepVSYkIHCvVTe6EoO1qQUtaWPNE3dGOMtA0LRbl6QbAeXWpdjEo7NAN6ISwzSpCFrA2b6TgrWA99HkJkJWpB0N0VCa2FItEN1hKMoCy1IGNBxSW2GHlDNy1LPjoTQVkbNJ7qhSDPw85VsExwNO23IOs3kCKxEL4TEgy0jKJtw3fKUVmIxBVetmkdHraSpSCrEeSBlII8QXdI6hY930gFkbjdS+iOlSCPEeQRC2IEebIvFxxAIsgXQR5IGVNdQ3ckuxlJg8zHQEpButxUYyARUkHWgjzqKFVCJDfjnyDP0QgiqVs0zqQU5Ct0h8Q1l8xEyV331scRlD+Fp3PdFe7xGNpHsuywlG6r0MwyfwV5rtq0EnQPkyNBVvnuKMlHxlcuNE1VtLsJ6PacSDCCspwOKBSEL1rI6s+/zxXl0f88IUS+SBrHLDF/kLkUtmUkLFMvCF+4kLXjQyxDlIpyowWRWklyUVC/UCWO/kcLwhdrF6KvoQHo/KBr1KGK/jcVJGaxu0TlhjmuZ4xxdRllXRui96mi23LwCHrW4Jw88g1WYRyWO1KAc8fJ5GP8mnNbrsxVf60Xty+2b5SgfGlzHyn2mIWMIAJ/caN4iL0Lc/vvBj4ON9ymaBrvMbMNmFhh6TmhNQ91Dz+bikEkiZjxfvVz6CauugY3ZswhAclCiDyIfbep0S5AJQ8QMYAexA8mkBCU7wv7cFu7swhSqeQ9Yfqx+X9HZeTuz3eIIxGErrnFzE/QvrLTyoFhri/r8Deol1yPARcUprTrRpDDRsGoNbS0gI7BV1T9hpMuo+adgq+xlWeaZfwIXUB/8cawIkF8rFSyQ+hY8YHqp3CJoYCegfX4TuEPzisjuoGegPXo2331RDW+0QtRbB8vsf4DECbMEIbnZnzRUcw+fNOpj9eBr1MTI/xBFTpBptOXKZi2dE6q/te+n9wpwK2I0QK2gW73fqRkDc7NoJl13sa3xj85Nv4DY+Ao4zxDIa4AAAAASUVORK5CYII=",re="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAABICAYAAABP0VPJAAAEMElEQVR4Ae2c7VHjMBCG32Tu/1GCqIBQwZkKDioAKoCrgFABXAWECgIVxFSQUAGigksHe7u2FJTE+ZJsxxZ5ZjQSsUe2X69W0koGOHBgHR3UBBEpzhJOJ5yk3DOH1MKpmtPUpAmnd8k7nc4ENVCZICzAEWfnnH6Z/AhhiEApp1dOLyzQFG2AhUg4PXD6R9XyJNdCUzFCjKh+Ro0Shm+mR/sRYpEh5X5qb0Iccbqj5nGHALycKuVvYoivnqJpaE5n7Hg1dqSLHWExLjkbo7liCIrTmO/1FlVCzWwimwhqQrGJYSlXFGq3GJZyRKE4xLCEicIV3FB8XK575s4aMRTy3iR0DtI0ZA50uqpLXifIB5ZnorGgkYuyNEEsHIdQ3tYU4kVxKvQnSxZimsoHvgeni3GWIgt5wPdh6VnnLITyafQIfojSErwRL67WnCft9tnkuyDOXaJtPZTr6GXOkxYeobBpvDJ1JBvOC55fmGsMqBxGqy7SowCcetSGU69QEpQL80HhJLbOH079N6gZvpEnbN+bSRN7Qx5P1fKDmDrXcYbwUITEfFP3xiTYExQDdera2kLI/+0+kRMdo/z+x+SPPHvml7qOQm0akV5xGvFDZFZhBlgX2N1RW+wKwUyQ32gfCvOiaM7+wh9ZLpkJ0uTo1zrkzQ6tuTOP8LeS3EKMwgrtRXHKunLTdHytRPyQ6iKOOYvbQw7gTyKCJGg/8nYTKRhfouFHTwQ5QRycO+U3+JE1mVgCQMop++4UOIlJENfSNTyJxakKyin7dr1q55W7lqDhSayCeLuBgyALiCAacaARjo7JQrRT9p2bTUUQ3z67abw7Zd/BZibIJ+LgxSn7Wsh7LBaibeTcRNJ8BZmIICnaz7NTTuDPpGtmh+3YBFuMxvyU33fLw1RW8Wwv84r2cm2j8CaAreBHNkO2gqRoH2LV1wu+I2RDTOaUu84fbWo2KfKF6oHz2y5rPEVkgmQLVRKLZIXFMdW9WCU9nN7yXDnPfhmR2h9NgFkWrRP4M1jaK0Kb12TX4tRT51KmXCtkgcqS2DpnQ3ejegpP6GspQG04ddPxba4lL0+aiOxjCV1CSV2LK3M7hEY+HthmO4S0111HyD9NvQkq3A5RtINohDgi8dsgC+cX7g9FgogJjvE9OF7cjbg0/Td7ru4RP/dFWzMLt2UaBylNp61rvpuQyeBx0YHCAFEJ2wuajDzT2aqDKyNmxpz+ID7ufT4smsHNp0/x0EcZUByi9FEm1G5R+qgCaqcofVQJX+CWqv9quwzkHq+wIyGfqco4RaGZaNT1maogFzIDmyaOaOWeToO61hAoj0kMaf+MyGzRbAR0+GcIxVD+EcGAqnW8UvdjFULU8Q9VEuQ7pcv4hyoSWLIfAFQyz6pMkEUob982yWL0kUlq4VRtcglDfJo83ZuTPHBgjv9zwwqOrOF+bgAAAABJRU5ErkJggg==",oe="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEUAAAA8CAYAAAAwoHcgAAAFH0lEQVR4Ae1b/3XbIBA+++X/eoPQCZpOUGWCOhPEmaDuBFImSDKB3QmSTCBlgiYTiEwQb3DlxBFhGSHJlvxD6vcexgaE4ePugAONgIGIMxVdqxDAcWDFQVrxuwqvFEaj0Qo6wog+FCGhiiL+8yc4PCYcCIJDERI0Qc8qJIokCW2BJAQ1lipM4Eih2nahQqDCXIVHFVJcR8x92b0PXFl6zISUQbVZMBGxRQ71ZUF5sC24omNQmZ3ABM0LEhRuNdj88AJ6BJae1JKcoMnzI3pKxUtlqG6gBfDIzCA3lLtCQj4TNZp1VFsiFYX8M1LP3tZ9sDVJYUP4gd2C6o9Rq8pFjTYJS2oesY46tUxKivtHilpdhKddEyaE8BeriOGCO5OCekQOjQX6yYm4XFzVmawy6AcphBT16rysnfdc7s7XGUKfSDG4wxI1wXxdM3Xlj6G/mKsQlxBzBXpWW7jy+0wKgWanDWJ4WqclCKVvqFHfSSEQMRvmQRGTqIgCzVyBnTcEUghT1fG5I90sWEM7cSikEEIsTNfsbqB9X2Cr2JBIoU67ZtkHjj8laUikEIKi/WDbIkF7HTMMjRSCa23yRwVh1GuIpFw71iYJxxlhQySFCFmTFlYhWrsE9HuIpBB+ONLICf6NvgyVlMCR9gbarkwqSUHti5hyqHTqML46wnfQiyVplZNWvkm/5N9XhTrtsrtCOOyKNHneXTJqx2/Rkxajw2eB1i4ZPMB1T1hqpZs0YaU9Wv9rl20DF4V2TTl9NvY0njZKEWz6WgMo330W64itRizoGV5F1vUH/wZtALtAUeolx271Qb3Ace0VDERFvgsz0CTb1r4UJDFMYD1nc3MUB9W0p9SmTKEav6A5flrfZUXZkCXrHvJ1RJsolfRx0wcalvGhSi0E5LvXrqTFhmnP+biigA8SmsOutw6pdIwRsLo9wJ5QRsoTVCOB5sg6xjNM3ek9kxZWoy5hBundSQqPjE9kJdQTabomsQRNxqWqd8npIdRHdtMA2kepNpyVZagORLzkoC21sLISFW7q3AdxjS7quzAzaAYyuk+t3kHZVH/B8erM9xQRo6IIcx9ErbNc1Ge4RXyBzTPmiVXWpJMdWcH6QGQOIpX+Au2h2A/z/7LP5z5VmBTaP+f04KxGZwPQRvFchRclKXWM8LFDOiRecPzqJQXzu3AGxCZtsS+7vIi3B7w50shtkJHl2/sIWCfEgKSmi9lgn3BJewBMls91MPPkXcNpI7F/YD6RZOk+UgT0E8+Oqd0MckIfQ/S8uVbGAWh7QvZycKRIXq1/glVHgF59ZxgaKVeONLPl+JSgIZHyYNTDgGfYAPTtUGnSh0IKqY1rGWFW8mubWx8pp7w4syFBnxCsAfW9uAAKUkIYV1R26pCgV9/STmS1CaHEBeIj5dT3OAk4CGHQlVGhwq0rv5QULpzA6YHUnjrrJAS1R0BwmaWzBt4ulx2GkTvAda08LSl7aCzQf7l4weUewQdTmSefXj4qEnNMpFDbyBEmPH0gZ1bM5du5ho66w7HVkEOSYl5YsD2CvrbToKb87BJrnGxWOpkIrJuXqEeDDspcFWe6DO1DckwLr1VdPy13ng7sIk66ZfdqrYcJ/1+CKlTQC1JQ240Qc/tnbE3zk0zWz4+tHj4wmIg5rtu77cmwKp4ZacFd3tDsGKgN+ZRJWGCHr+Cal7UjyJe9mUGDw0NA/tK2cORL0ItLOgt6atORPjJf8Phe65cc26/0U9z5a/3/AOogERP3A4yAAAAAAElFTkSuQmCC";function se(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:le(e.acrValue)?(0,t.jsx)("img",{src:le(e.acrValue),alt:""}):(0,t.jsx)("span",{children:" "});return i?(0,t.jsx)("div",Object.assign({className:"criipto-eid-logo"},{children:i})):null}function le(e){return e.startsWith("urn:grn:authn:dk:mitid")?X:e.startsWith("urn:grn:authn:fi:mobile")?Z:e.startsWith("urn:grn:authn:itsme")?_:e.startsWith("urn:grn:authn:se:bankid")?ne:e.startsWith("urn:grn:authn:no:bankid")?$:e.startsWith("urn:grn:authn:no:vipps")?ee:e.startsWith("urn:grn:authn:se:frejaid")?te:e.startsWith("urn:grn:authn:uk:oneid")?re:e.startsWith("urn:grn:authn:de:personalausweis")?ie:e.startsWith("urn:grn:authn:nl:idin")?oe:void 0}function ae(e){return(0,t.jsx)("a",Object.assign({className:`criipto-verify-button ${e.className}`,href:e.href,onClick:e.onClick},{children:e.children}))}function ce(e){return(0,t.jsx)("button",Object.assign({className:`criipto-verify-button ${e.className}`,type:"button",onClick:e.onClick},{children:e.children}))}const ue=require("qrcode");var de=e.n(ue);const Ae="data:image/png;base64,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";var ge=function(e,n,t,i){return new(t||(t=Promise))(function(r,o){function s(e){try{a(i.next(e))}catch(e){o(e)}}function l(e){try{a(i.throw(e))}catch(e){o(e)}}function a(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(s,l)}a((i=i.apply(e,n||[])).next())})};function he(e){return Array.from(e.keys()).reduce((n,t)=>(n[t]=e.get(t),n),{})}function pe(e){var n,r,o,s,l,a;const c=(0,i.useRef)(null),{buildAuthorizeUrl:d,completionStrategy:A,handleResponse:g,generatePKCE:h,redirectUri:f,uiLocales:v}=(0,i.useContext)(u),m=null!==(r=null!==(n=e.language)&&void 0!==n?n:v)&&void 0!==r?r:"en",k=e.redirectUri||f,[b,C]=(0,i.useState)(null),[E,I]=(0,i.useState)(null),[y,w]=(0,i.useState)(null),[U,Q]=(0,i.useState)(void 0),[B,R]=(0,i.useState)(!1),[S,j]=(0,i.useState)(!1),x=(0,i.useCallback)(()=>ge(this,void 0,void 0,function*(){w(null),C(null),I(null),Q(void 0);const e=yield h();d({acrValues:"urn:grn:authn:se:bankid:another-device:qr",responseMode:"json",pkce:e,redirectUri:k,prompt:"login"}).then(e=>fetch(e).then(e=>e.json())).then(n=>{Q(e),C(n.initialQrCode),I(n.pollUrl)}).catch(console.error)}),[d,k]);(0,i.useEffect)(()=>{x()},[x]);const O=()=>{R(!1),x()},D=(0,i.useCallback)(e=>{"Collect failed: startFailed"!==e&&'"Collect failed: startFailed"'!==e?(w(new Error(e)),g(new Error(e),{pkce:U,redirectUri:k,source:"SEBankIDQrCode"})):O()},[U,k]),P=(0,i.useCallback)(e=>ge(this,void 0,void 0,function*(){R(!0);const n={pkce:U},t=yield function(e){return ge(this,void 0,void 0,function*(){if(e.includes("error=")){const n=he(new URL(e).searchParams);return{location:e,response:n}}const n=yield fetch(e);if(n.status>=400)return new Error(yield n.text());const{location:t}=yield n.json();return{location:t,response:he(new URL(t).searchParams)}})}(e);if(t instanceof Error)return D(t.message);const{location:i,response:r}=t;"openidprovider"!==A?yield g(r,{pkce:n.pkce,redirectUri:k,source:"SEBankIDQrCode"}):window.location.href=i}),[A,U]),V=function(e,n){const{width:t,qrMargin:r}=n,[o,s]=(0,i.useState)(null);return(0,i.useEffect)(()=>{if(!e)return;let n=!0;return(()=>{ge(this,void 0,void 0,function*(){const i=yield de().toDataURL(e,{errorCorrectionLevel:"low",scale:10,width:t,margin:null!=r?r:4});n&&s(i)})})(),()=>{n=!1}},[e,r,t]),o}(b,{width:S?null!==(o=window.innerHeight)&&void 0!==o?o:null===(s=c.current)||void 0===s?void 0:s.offsetWidth:null===(l=c.current)||void 0===l?void 0:l.offsetWidth,qrMargin:null!==(a=e.qrMargin)&&void 0!==a?a:S?2:void 0});!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 l=()=>ge(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(l,2500))}});return n=setTimeout(l,2500),()=>{i=!1,clearTimeout(n)}},[e,t,r,o,s])}(E,{enabled:!B,onQrCode:C,onComplete:P,onError:D});const N="en"===m?"Completing your login.":"da"==m?"Fuldfører dit login.":"sv"==m?"Slutför din inloggning.":"nb"==m?"Fullfører påloggingen.":p(m),L="en"===m?"Open the BankID app on your mobile device and scan the QR code.":"da"==m?"Åben BankID appen på din telefon og scan QR koden.":"sv"==m?"Öppna BankID-appen på din mobila enhet och skanna QR-koden.":"nb"==m?"Åpne BankID-appen på mobilenheten din og skann QR-koden.":p(m),W="en"===m?"This is a BankID QR Code. You can click it to view it in full screen":"da"==m?"Dette er en BankID QR-kode. Du kan klikke på den for at se den i fuld skærm":"sv"==m?"Detta är en QR-kod från BankID. Du kan klicka på den för att visa den i fullskärm.":"nb"==m?"Dette er en BankID QR-kode. Du kan klikke på den for å se den i fullskjerm":p(m),F=(0,t.jsx)("button",Object.assign({"aria-label":W,ref:c,className:"criipto-se-bankid-qr-canvas",onClick:()=>j(e=>!e)},{children:V?(0,t.jsx)("img",{src:V}):null})),M=(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:[B?N:L,(0,t.jsx)("img",{src:Ae})]})),F]}));return!b&&e.fallback?e.fallback:e.children?e.children({qrElement:M,imageElement:F,error:y,isCompleting:B,retry:()=>O(),fullscreen:S}):S?(0,t.jsx)("dialog",Object.assign({className:"criipto-se-bankid-qr-fullscreen",open:!0},{children:F})):M}pe.acr_values="urn:grn:authn:se:bankid:another-device:qr";const fe=(0,i.createContext)({multiple:!1,acrValues:[]});function ve(e){const n=r().Children.toArray(e.children).flatMap(e=>{if(!e||"object"!=typeof e)return[];if("type"in e){if(e.type===ke){const n=e.props;return n.acrValue?[n.acrValue]:[]}if(e.type===pe)return["urn:grn:authn:se:bankid:another-device:qr"]}return[]}),i={multiple:n.length>1,acrValues:n};return(0,t.jsx)(fe.Provider,Object.assign({value:i},{children:e.children}))}function me(e){var n,o,s;const{acrValue:l,href:a}=e,c=(0,i.useContext)(fe),u=!c.multiple||b(e.acrValue,c.acrValues),d=null!==(n=e.language)&&void 0!==n?n:"en",A=null!==(o=e.action)&&void 0!==o?o:"login",g=`criipto-eid-btn ${be(l)}${e.className?` ${e.className}`:""}`,{title:h,subtitle:p}=m(d,l,{disambiguate:E(l,c.acrValues)}),v=null!==(s=e.children)&&void 0!==s?s:(0,t.jsxs)(r().Fragment,{children:[f(d,A)?`${f(d,A)} `:"",h," ",u?null:Ce(p)]}),k=(0,t.jsxs)(r().Fragment,{children:[(0,t.jsx)(se,{acrValue:l,logo:e.logo}),(0,t.jsx)("span",{children:v})]});return a?(0,t.jsx)(r().Fragment,{children:(0,t.jsx)(ae,Object.assign({},e,{href:a,className:g,onClick:e.onClick},{children:k}))}):(0,t.jsx)(r().Fragment,{children:(0,t.jsx)(ce,Object.assign({},e,{className:g,onClick:e.onClick},{children:k}))})}function ke(e){var n,s,l,a,c;const{acrValue:d}=e,A=(0,i.useContext)(fe),g=!A.multiple||b(e.acrValue,A.acrValues),h=(0,i.useContext)(u),{buildAuthorizeUrl:p}=h,v=null!==(s=null!==(n=e.language)&&void 0!==n?n:h.uiLocales)&&void 0!==s?s:"en",k=null!==(a=null!==(l=e.action)&&void 0!==l?l:h.action)&&void 0!==a?a:"login",C=`criipto-eid-btn ${be(d)}${e.className?` ${e.className}`:""}`,[I,y]=(0,i.useState)(null),[w,U]=(0,i.useState)(e.href),Q=e.redirectUri||h.redirectUri;(0,i.useEffect)(()=>{if(e.href)return;let n=!0;return p({redirectUri:Q,acrValues:d,loginHint:void 0}).then(e=>{n&&U(e)}).catch(console.error),()=>{n=!1}},[e.href,p,d,h.pkce,Q]);const{title:B,subtitle:R}=m(v,d,{disambiguate:E(d,A.acrValues)}),S=null!==(c=e.children)&&void 0!==c?c:(0,t.jsxs)(r().Fragment,{children:[f(v,k)?`${f(v,k)} `:"",B," ",g?null:Ce(R)]}),j=(0,t.jsxs)(r().Fragment,{children:[(0,t.jsx)(me,Object.assign({},e,{href:w,className:C,onClick:n=>{if(!e.href){if(h.pkce&&"code_verifier"in h.pkce&&(0,o.savePKCEState)(h.store,{response_type:"id_token",pkce_code_verifier:h.pkce.code_verifier,redirect_uri:Q}),e.popup){let t="function"==typeof e.popup?e.popup({acrValue:d,onHide:()=>y(null)}):!0===e.popup;!1!==t&&(n.preventDefault(),"boolean"==typeof t?h.loginWithPopup({acrValues:[d],redirectUri:Q,backdrop:!0}):(y(t),h.loginWithPopup({acrValues:[d],redirectUri:Q,backdrop:!1})))}e.onClick&&e.onClick(n)}}})),I]});return e.href||"urn:grn:authn:se:bankid:same-device"!==d?j:(0,t.jsx)(q,Object.assign({redirectUri:e.redirectUri,fallback:j,className:C,userAgent:e.userAgent,logo:(0,t.jsx)(se,{acrValue:d,logo:e.logo})},{children:(0,t.jsx)("span",{children:S})}))}function be(e){return(e=e.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(" ")}function Ce(e){return e?e.substring(0,1).toLowerCase()+e.substr(1,e.length):e}function Ee(e){var n,r;const{action:o,uiLocales:s,acrValues:l}=(0,i.useContext)(u),a=e.language||s||"en",c=k(null!==(r=null!==(n=e.acrValues)&&void 0!==n?n:l)&&void 0!==r?r:[]);return c.length&&c.every(e=>e.startsWith("urn:grn:authn:se:bankid:"))?(0,t.jsx)(Ie,Object.assign({},e,{acrValues:c})):(0,t.jsx)("div",Object.assign({className:"criipto-eid-selector"},{children:(0,t.jsx)(ve,{children:c.map(n=>(0,t.jsx)(ke,{acrValue:n,onClick:e.onSelect?()=>e.onSelect(n):void 0,redirectUri:e.redirectUri,popup:e.popup,language:a,action:o,userAgent:e.userAgent},n))})}))}function Ie(e){const{acrValues:n}=e,{action:r,uiLocales:o}=(0,i.useContext)(u),s=e.language||o||"en",l=n.includes(pe.acr_values),a=n.filter(e=>e!==pe.acr_values),c=N("undefined"!=typeof navigator?navigator.userAgent:e.userAgent),d="iOS"===(null==c?void 0:c.os.name)?"iOS":"Android"===(null==c?void 0:c.os.name)?"android":null,A=l&&!d;return(0,t.jsx)("div",Object.assign({className:"criipto-eid-selector"},{children:(0,t.jsxs)(ve,{children:[a.map(n=>(0,t.jsx)(ke,{acrValue:n,onClick:e.onSelect?()=>e.onSelect(n):void 0,redirectUri:e.redirectUri,popup:e.popup,language:s,action:r,userAgent:e.userAgent},n)),A?(0,t.jsx)(pe,{language:s,redirectUri:e.redirectUri,fallback:(0,t.jsx)(ke,{acrValue:pe.acr_values,popup:e.popup,language:s,action:r,userAgent:e.userAgent})}):l&&d?(0,t.jsx)(ke,{acrValue:pe.acr_values,redirectUri:e.redirectUri,popup:e.popup,language:s,action:r,userAgent:e.userAgent}):null]})}))}const ye=e=>{var n,r;const{children:s,margin:l,className:a}=e,c=(0,i.useRef)(null),{client:d,buildOptions:A,buildAuthorizeUrl:g,handleResponse:h,pkce:p,store:f,acrValues:v}=(0,i.useContext)(u),[m,k]=(0,i.useState)(()=>Math.random().toString()),[b,C]=(0,i.useState)(!1),[E,I]=(0,i.useState)(!1),[y,w]=(0,i.useState)(null),[U,Q]=(0,i.useState)(null),B=null==U?void 0:U.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 d.fetchCriiptoConfiguration().then(n=>{e&&Q(n)}),()=>{e=!1}},[d]);const S=(0,i.useCallback)(()=>{return e=void 0,n=void 0,i=function*(){var e;if(!U)return;const n=(null!==(e=U.client.qr_intermediary_url)&&void 0!==e?e:U.qr_intermediary_url).replace("/{id}","").replace("{id}",""),t=new URL(yield g({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(),p&&"code_verifier"in p&&(0,o.savePKCEState)(f,{response_type:"id_token",pkce_code_verifier:p.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{a(i.next(e))}catch(e){o(e)}}function l(e){try{a(i.throw(e))}catch(e){o(e)}}function a(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t(function(e){e(n)})).then(s,l)}a((i=i.apply(e,n||[])).next())});var e,n,t,i},[g,U,R]),j=(0,i.useCallback)(()=>d.qr.authorize(c.current,Object.assign(Object.assign({},A({acrValues:R})),{margin:l})),[d,A,l,R]);return(0,i.useLayoutEffect)(()=>{if(!c.current)return;if(y)return;if(!B)return;const e=j();return e.onAcknowledged=()=>{C(!0)},e.then(n=>{e.cancelled||h(n,{pkce:p&&"code_verifier"in p?p:void 0,source:"QRCode"})}).catch(n=>{n instanceof o.UserCancelledError?I(!0):e.cancelled||(w(n),h(n,{source:"QRCode"}))}),()=>{e.cancel()}},[j,p,h,m,y,B]),s({qrElement:(0,t.jsx)("div",{ref:c,className:a}),isAcknowledged:b,isCancelled:E,isEnabled:null==U?void 0:U.client.qr_enabled,error:y,retry:()=>{C(!1),I(!1),w(null),k(Math.random().toString())},redirect:S})};function we(){const{result:e,claims:n,loginWithRedirect:t,loginWithPopup:r,acrValues:o,isLoading:s,isInitializing:l,logout:a,checkSession:c}=(0,i.useContext)(u);return{result:e,claims:n,error:e&&"error"in e?e:null,loginWithRedirect:t,loginWithPopup:r,acrValues:o,isLoading:s,isInitializing:l,checkSession:c,logout:a}}var Ue=exports;for(var Qe in n)Ue[Qe]=n[Qe];n.__esModule&&Object.defineProperty(Ue,"__esModule",{value:!0});
|
|
1
|
+
var e={n:n=>{var i=n&&n.__esModule?()=>n.default:()=>n;return e.d(i,{a:i}),i},d:(n,i)=>{for(var t in i)e.o(i,t)&&!e.o(n,t)&&Object.defineProperty(n,t,{enumerable:!0,get:i[t]})},o:(e,n)=>Object.prototype.hasOwnProperty.call(e,n),r:e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})}},n={};e.r(n),e.d(n,{AuthButton:()=>we,AuthButtonComponent:()=>ye,AuthButtonGroup:()=>De,AuthMethodButton:()=>we,AuthMethodSelector:()=>Re,AuthMethodSelectorSweden:()=>Se,CriiptoVerifyProvider:()=>T,OAuth2Error:()=>o.OAuth2Error,QRCode:()=>je,SEBankIDQRCode:()=>Ee,actions:()=>a,filterAcrValues:()=>w,useCriiptoVerify:()=>Oe});const i=require("react/jsx-runtime"),t=require("react");var r=e.n(t);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,isInitializing:!0,client:null,loginHint:void 0},u=(0,t.createContext)(c),d={loginWith:"Login with",approveWith:"Approve with",signWith:"Sign with",confirmWith:"Confirm with",acceptWith:"Accept with",sameDevice:"On this device",anotherDevice:"With your SSN",anotherDeviceQR:"On another device",mitidBusiness:"MitID Business",finnishMobileID:"Finnish Mobile Certificate",finnishBankID:"Finnish Bank ID",swedishBankID:"Swedish BankID",norwegianBankID:"Norwegian BankID",biometrics:"Biometrics",openAndScan:"Open the BankID app on your mobile device and scan the QR code.",thisIsTheQR:"This is a BankID QR Code. You can click it to view it in full screen.",completingLogin:"Completing your login."},A={loginWith:"Login med",approveWith:"Godkend med",signWith:"Underskriv med",confirmWith:"Bekræft med",acceptWith:"Accepter med",sameDevice:"På denne enhed",anotherDevice:"Med dit personnummer",anotherDeviceQR:"På anden enhed",mitidBusiness:"MitID Erhverv",finnishMobileID:"Finsk Mobilcertifikat",finnishBankID:"Finsk Bank ID",swedishBankID:"Svensk BankID",norwegianBankID:"Norsk BankID",biometrics:"Biometri",openAndScan:"Åbn BankID appen på din telefon og scan QR koden.",thisIsTheQR:"Dette er en BankID QR-kode. Du kan klikke på den for at se den i fuld skærm.",completingLogin:"Fuldfører dit login."},h={loginWith:"Logga in med",approveWith:"Godkänn med",signWith:"Signera med",confirmWith:"Bekräfta med",acceptWith:"Acceptera med",sameDevice:"På denna enhet",anotherDevice:"Med ditt personnummer",anotherDeviceQR:"På annan enhet",mitidBusiness:"MitID Erhverv",finnishMobileID:"Finskt Mobilcertifikat",finnishBankID:"Finskt Bank ID",swedishBankID:"Svenskt BankID",norwegianBankID:"Norska BankID",biometrics:"Biometri",openAndScan:"Öppna BankID-appen på din mobila enhet och skanna QR-koden.",thisIsTheQR:"Detta är en QR-kod från BankID. Du kan klicka på den för att visa den i fullskärm.",completingLogin:"Slutför din inloggning."},g={loginWith:"Logg inn med",approveWith:"Godkjenne med",signWith:"Signer med",confirmWith:"Bekreft med",acceptWith:"Aksepterer med",sameDevice:"På denne enhet",anotherDevice:"Med personnummeret ditt",anotherDeviceQR:"På annan enhet",mitidBusiness:"MitID Erhverv",finnishMobileID:"Finsk Mobilsertifikat",finnishBankID:"Finsk Bank ID",swedishBankID:"Svensk BankID",norwegianBankID:"Norsk BankID",biometrics:"Biometri",openAndScan:"Åpne BankID-appen på mobilenheten din og skann QR-koden.",thisIsTheQR:"Dette er en BankID QR-kode. Du kan klikke på den for å se den i fullskjerm.",completingLogin:"Fullfører påloggingen."},p={loginWith:"Kirjaudu sisään",approveWith:"Hyväksy",signWith:"Allekirjoita",confirmWith:"Vahvista",acceptWith:"Hyväksy",sameDevice:"Tällä laitteella",anotherDevice:"Henkilötunnuksellasi",anotherDeviceQR:"Toisella laitteella",mitidBusiness:"MitID Businessilla",finnishMobileID:"Suomalaisella Mobiilivarmenteella",finnishBankID:"Suomalaisella BankID:llä",swedishBankID:"Ruotsalaisella BankID:llä",norwegianBankID:"Norjalaisella BankID:llä",biometrics:"Biometrisella tunnistautumisella",openAndScan:"Avaa BankID-sovellus mobiililaitteellasi ja skannaa QR-koodi.",thisIsTheQR:"Tämä on BankID-QR-koodi. Voit napsauttaa sitä nähdäksesi sen koko näytöllä",completingLogin:"Sisäänkirjautumista viimeistellään."},f={loginWith:"Anmelden mit",approveWith:"Genehmigen mit",signWith:"Unterschreiben mit",confirmWith:"Bestätigen mit",acceptWith:"Akzeptieren mit",sameDevice:"Auf diesem Gerät",anotherDevice:"Mit Ihrer Sozialversicherungsnummer",anotherDeviceQR:"Auf einem anderen Gerät",mitidBusiness:"MitID Business",finnishMobileID:"Finnischem Mobilfunkzertifikat",finnishBankID:"Finnische BankID",swedishBankID:"Schwedische BankID",norwegianBankID:"Norwegische BankID",biometrics:"Biometrie",openAndScan:"Öffnen Sie die BankID-App auf Ihrem mobilen Endgerät und scannen Sie den QR-Code.",thisIsTheQR:"Dies ist ein BankID QR-Code. Sie können darauf klicken, um ihn im Vollbildmodus anzuzeigen",completingLogin:"Ihre Anmeldung wird abgeschlossen."},v={loginWith:"Inloggen met",approveWith:"Goedkeuren met",signWith:"Ondertekenen met",confirmWith:"Bevestigen met",acceptWith:"Accepteren met",sameDevice:"Op dit apparaat",anotherDevice:"Met uw SSN",anotherDeviceQR:"Op een ander apparaat",mitidBusiness:"MitID Business",finnishMobileID:"Finse mobiel certificaat",finnishBankID:"Finse BankID",swedishBankID:"Zweedse BankID",norwegianBankID:"Noorse BankID",biometrics:"Biometrie",openAndScan:"Open de BankID-app op uw mobiele apparaat en scan de QR-code.",thisIsTheQR:"Dit is een BankID QR-code. U kunt erop klikken om het in een volledig scherm te bekijken",completingLogin:"Uw login voltooien."};function m(e){switch(e){case"en":return d;case"da":return A;case"sv":return h;case"nb":return g;case"fi":return p;case"de":return f;case"nl":return v;default:E()}}const k="urn:grn:authn:dk:mitid",I="urn:grn:authn:dk:mitid:business",b="urn:grn:authn:fi";function C(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 E(e){throw new Error("Didn't expect to get here")}function B(e,n){const i=m(e);switch(n){case"login":return i.loginWith;case"approve":return i.approveWith;case"sign":return i.signWith;case"confirm":return i.confirmWith;case"accept":return i.acceptWith;default:E()}}function D(e){return(e=e.replace("urn:grn:authn:","")).startsWith("fi")?"fi":e.startsWith("itsme")?"itsme":e.split(":").slice(0,2).join(":")}function y(e,n,{disambiguate:i}){const t=m(e),r=D(n=n.replace("urn:grn:authn:",""));if("dk:mitid"===r)return"business"===n.replace("dk:mitid:","")?{title:t.mitidBusiness}:{title:"MitID"};if("fi:mobile-id"===n)return{title:t.finnishMobileID};if("fi:bank-id"===n)return{title:t.finnishBankID};if("fi"===r)return{title:C(n).replace("FI","FTN")};if("itsme"===r)return{title:C(n).replace("me","ME")};if("se:bankid"===r){let e,r=n.replace("se:bankid:",""),o="BankID";return"same-device"===r&&(e=t.sameDevice),"another-device"===r&&(e=t.anotherDevice),"another-device:qr"===r&&(e=t.anotherDeviceQR),i&&(o=t.swedishBankID),{title:o,subtitle:e}}if("no:bankid"===r){let e,r="BankID";return n.endsWith(":substantial")&&(e=t.biometrics),i&&(r=t.norwegianBankID),{title:r,subtitle:e}}return"no:vipps"===r?{title:C(n).replace("NO ","")}:"se:frejaid"===r?{title:"FrejaID"}:"uk:oneid"===r?{title:"OneID"}:"de:personalausweis"===r?{title:"Personalausweis"}:{title:C(n)}}function w(e){let n=e.slice(),i=function(e){let n=null;return e.forEach(e=>{if(e.startsWith(k)&&e!==I)if(n){let i=e.replace(k,""),t=n.replace(k,"");(":low"===i&&[":substantial",":high"].includes(t)||":substantial"===i&&":high"===t)&&(n=e)}else n=e}),n}(e),t=e.slice();return i&&(t=e.filter(e=>!e.startsWith(k)||e===I).concat([i]).sort((e,i)=>n.indexOf(e)-n.indexOf(i))),e.includes(`${b}:all`)&&(t.includes(`${b}:bank-id`)||t.push(`${b}:bank-id`),t.includes(`${b}:mobile-id`)||t.push(`${b}:mobile-id`),t=t.filter(e=>e!==`${b}:all`)),t}function Q(e,n){const i=D(e),t=n.reduce((e,n)=>e+(D(n)===i?1:0),0);return 1===t}const U=["se:bankid","no:bankid"];function R(e,n){const i=D(e),t=U.includes(i),r=null!=n.find(e=>{const n=D(e);return i!=n&&U.includes(n)});return t&&r}function S(){try{return"undefined"==typeof sessionStorage?null:sessionStorage}catch(e){return null}}const j=require("jwt-decode");var O=e.n(j);function x(){let e={};return{getItem:n=>e[n]||null,setItem(n,i){e[n]=i.toString()},removeItem(n){delete e[n]},clear(){e={}},key:n=>Object.keys(e)[n],get length(){return Object.keys(e).length}}}var W=function(e,n,i,t){return new(i||(i=Promise))(function(r,o){function s(e){try{l(t.next(e))}catch(e){o(e)}}function a(e){try{l(t.throw(e))}catch(e){o(e)}}function l(e){var n;e.done?r(e.value):(n=e.value,n instanceof i?n:new i(function(e){e(n)})).then(s,a)}l((t=t.apply(e,n||[])).next())})};const V="@criipto-verify-react/session",L=["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:qr"],P=["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:qr"];function N(e,n){const{options:i,action:t,message:r}=n,o=(null==i?void 0:i.acrValues)?Array.isArray(null==i?void 0:i.acrValues)?null==i?void 0:i.acrValues:[null==i?void 0:i.acrValues]:[];let s=(e?e.split(" "):[]).concat((null==i?void 0:i.loginHint)?null==i?void 0:i.loginHint.split(" "):[]).filter(e=>!e.startsWith("message:")&&!e.startsWith("action:"));return t&&(s=s.filter(e=>!e.startsWith("action:")),1===o.length?L.includes(o[0])&&s.push(`action:${t}`):o.length>=2?o.some(e=>L.includes(e))&&s.push(`action:${t}`):s.push(`action:${t}`)),r&&(1===o.length?P.includes(o[0])&&s.push(`message:${btoa(r)}`):o.length>=2?o.some(e=>P.includes(e))&&s.push(`message:${btoa(r)}`):s.push(`message:${btoa(r)}`)),s.length?s.join(" "):void 0}function M(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 F=(()=>{const e=S();return null===e?(console.warn("Creating memory store for PKCE values as no sessionStorage is available. Authentication may be broken."),x()):e})(),T=e=>{var n,r,l;const c=(0,t.useMemo)(()=>new(s())({domain:e.domain,clientID:e.clientID,store:F,redirectUri:M(e.redirectUri),protocol:e.protocol}),[e.domain,e.clientID,e.redirectUri,e.protocol]),[d,A]=(0,t.useState)(null);(0,t.useEffect)(()=>{let e=!0;return W(void 0,void 0,void 0,function*(){const n=yield c.fetchOpenIDConfiguration();e&&A(n)}),()=>{e=!1}},[c]);const[h,g]=(0,t.useState)(null),p=(0,t.useMemo)(()=>h&&"id_token"in h?O()(h.id_token):null,[h]),[f,v]=(0,t.useState)(!1),[m,k]=(0,t.useState)(!0),[I,b]=(0,t.useState)(e.pkce),C=e.response||"token",E=e.completionStrategy||"client",B=e.uiLocales,D=e.loginHint,y=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 i=n.replace("action:","");return a.includes(i)?i:void 0}(D))&&void 0!==r?r:"login",Q=null!==(l=e.message)&&void 0!==l?l:function(e){var n;if(!e)return;const i=e.split(" ").find(e=>e.startsWith("message:"));if(!i)return;const t=i.replace("message:","");return null!==(n=function(e){try{return atob(e)}catch(e){return null}}(t))&&void 0!==n?n:t}(D),U=e.sessionStore,R=()=>W(void 0,void 0,void 0,function*(){if(e.pkce)return e.pkce;if("token"!==C||"client"!==E)return(0,o.clearPKCEState)(F),void b(void 0);(0,o.clearPKCEState)(F);const n=yield(0,o.generatePKCE)();return b(n),n}),S=(0,t.useCallback)(n=>{var i,t,r,o,s,a;return Object.assign(Object.assign({redirectUri:M(e.redirectUri),responseType:null!==(i=e.responseType)&&void 0!==i?i:"code",responseMode:e.responseMode},n||{}),{state:null!==(t=e.state)&&void 0!==t?t:null==n?void 0:n.state,nonce:null!==(r=e.nonce)&&void 0!==r?r:null==n?void 0:n.nonce,prompt:null!==(o=e.prompt)&&void 0!==o?o:null==n?void 0:n.prompt,scope:null!==(s=e.scope)&&void 0!==s?s:null==n?void 0:n.scope,uiLocales:null!=B?B:null==n?void 0:n.uiLocales,pkce:null!==(a=null==n?void 0:n.pkce)&&void 0!==a?a:I,loginHint:N(e.loginHint,{options:n,action:y,message:Q}),extraUrlParams:void 0!==e.criiptoSdk?{criipto_sdk:e.criiptoSdk}:{criipto_sdk:"@criipto/verify-react@4.1.4"}})},[I,e.state,e.nonce,e.prompt,e.scope,B,y,Q,e.redirectUri,e.criiptoSdk,e.loginHint,e.responseMode,e.responseType]),j=(0,t.useCallback)(e=>W(void 0,void 0,void 0,function*(){return yield c.buildAuthorizeUrl(c.buildAuthorizeParams(S(e)))}),[c,S]),x=(0,t.useCallback)((n,i)=>W(void 0,void 0,void 0,function*(){if(n instanceof o.OAuth2Error)g(n);else if(n instanceof Error)g(n);else if(i.pkce&&"token"===C){let t=i.redirectUri||M(e.redirectUri);if(!t)throw new Error("redirectUri must be configured globally or per authentication component");yield c.processResponse(n,{code_verifier:i.pkce.code_verifier,redirect_uri:t}).then(e=>{(null==e?void 0:e.code)?g({code:e.code,state:e.state,source:i.source}):(null==e?void 0:e.id_token)?(g({id_token:e.id_token,state:e.state,source:i.source}),null==U||U.setItem(V,e.id_token)):g(null)}).catch(e=>{g(e)})}else(null==n?void 0:n.code)?g({code:n.code,state:n.state,source:i.source}):(null==n?void 0:n.id_token)?(g({id_token:n.id_token,state:n.state,source:i.source}),null==U||U.setItem(V,n.id_token)):(null==n?void 0:n.error)?g(new o.OAuth2Error(n.error,n.error_description,n.state)):g(null);R()}),[R,C,g,c,U,e.redirectUri]),L=(0,t.useCallback)(()=>W(void 0,void 0,void 0,function*(){return c.checkSession({redirectUri:M(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==U||U.setItem(V,e.id_token)):g(null)})}),[U,c,e.redirectUri]),P=(0,t.useCallback)(n=>W(void 0,void 0,void 0,function*(){var i;null==U||U.removeItem(V),yield c.logout({redirectUri:null!==(i=null==n?void 0:n.redirectUri)&&void 0!==i?i:M(e.redirectUri),state:null==n?void 0:n.state})}),[U,c,e.redirectUri]),T=(0,t.useMemo)(()=>({loginWithRedirect:e=>W(void 0,void 0,void 0,function*(){const n=yield R();yield c.redirect.authorize(S(Object.assign(Object.assign({},e),{pkce:n})))}),loginWithPopup:e=>W(void 0,void 0,void 0,function*(){return c.popup.authorize(S(e)).then(e=>{(null==e?void 0:e.code)?g({code:e.code,state:e.state,source:"popup"}):(null==e?void 0:e.id_token)?g({id_token:e.id_token,state:e.state,source:"popup"}):g(null)}).catch(e=>{g(e)})}),checkSession:L,logout:P,fetchOpenIDConfiguration:()=>c.fetchOpenIDConfiguration(),buildAuthorizeUrl:j,generatePKCE:()=>W(void 0,void 0,void 0,function*(){if("token"===C&&"client"===E)return yield(0,o.generatePKCE)()}),buildOptions:S,handleResponse:x,responseType:C,completionStrategy:E,result:h,claims:p,domain:c.domain,redirectUri:M(e.redirectUri),action:y,message:Q,pkce:I,store:F,isLoading:f,isInitializing:m,acrValues:d?w(d.acr_values_supported):void 0,client:c,uiLocales:B,loginHint:D}),[c,e.redirectUri,C,E,h,p,y,Q,I,e.state,e.prompt,f,m,x,P,d,B,L,D]);return(0,t.useEffect)(()=>{if(k(!1),!c.redirect.hasMatch())return void R();let e=!0;v(!0);const n=(0,o.parseAuthorizeResponseFromLocation)(window.location);return n.code&&"code"===C?(v(!1),g({code:n.code,source:"redirect",state:n.state}),void R()):(W(void 0,void 0,void 0,function*(){var n;if(yield Promise.resolve(),e)try{const n=yield c.redirect.match();if(!e)return;(null==n?void 0:n.code)?g({code:n.code,source:"redirect",state:n.state}):(null==n?void 0:n.id_token)?(g({id_token:n.id_token,source:"redirect",state:n.state}),null==U||U.setItem(V,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)}catch(i){if(!e)return;i instanceof o.OAuth2Error||i instanceof Error?g(i):g(new Error(null!==(n=null==i?void 0:i.toString())&&void 0!==n?n:"Unknown error ocurred"))}finally{if(!e)return;v(!1),R()}}),()=>{e=!1})},[e.pkce,C]),(0,t.useEffect)(()=>{if(U&&!p&&!p){const e=U.getItem(V);if(!e)return;return void g({id_token:e})}},[U,p]),(0,t.useEffect)(()=>{if(!p)return;if(!U)return;const e=setInterval(()=>{const e=Date.now();if(p.exp<e/1e3)return g(null),void(null==U||U.removeItem(V))},5e3);return()=>clearInterval(e)},[U,p,h]),(0,t.useEffect)(()=>{if(k(!1),!U)return;if(c.redirect.hasMatch())return;if(U.getItem(V))return;let e=!0;return v(!0),L().catch(e=>{console.error("session silent check error",e)}).finally(()=>{e&&v(!1)}),()=>{e=!1}},[U,c]),(0,i.jsx)(u.Provider,Object.assign({value:T},{children:e.children}))},J=require("ua-parser-js");var H=e.n(J);function K(e){return e?H()(e):null}var Y=function(e,n,i,t){return new(i||(i=Promise))(function(r,o){function s(e){try{l(t.next(e))}catch(e){o(e)}}function a(e){try{l(t.throw(e))}catch(e){o(e)}}function l(e){var n;e.done?r(e.value):(n=e.value,n instanceof i?n:new i(function(e){e(n)})).then(s,a)}l((t=t.apply(e,n||[])).next())})};function z({shouldPoll:e,pollUrl:n,onComplete:i,onError:r}){(0,t.useEffect)(()=>{if(!e)return;let t=!0;const o=()=>Y(this,void 0,void 0,function*(){if(!t)return;const e=yield fetch(n);if(202!==e.status){if(e.status>=400){if(!t)return;const n=yield e.text();return void r(n)}{if(!t)return;const{targetUrl:n}=yield e.json();return void i(n)}}setTimeout(o,1e3)});return setTimeout(o,1e3),()=>{t=!1}},[e,n])}function G(e){const{links:n,onError:i,onComplete:o,onInitiate:s}=e,[a,l]=(0,t.useState)(!1),{domain:c}=(0,t.useContext)(u);return z(Object.assign(Object.assign({},e),{shouldPoll:a,pollUrl:n.pollUrl})),r().cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{s(),l(!0)}}))}function q(e){const{links:n,onInitiate:i,onLog:o}=e,[s,a]=(0,t.useState)(!1),[l,c]=(0,t.useState)(null),u=(0,t.useCallback)(e=>c({result:e}),[]),d=(0,t.useCallback)(e=>c({error:e}),[]),A=function(e,n=[]){const i=(0,t.useRef)(document.visibilityState),[r,o]=(0,t.useState)(i.current);(0,t.useEffect)(()=>(document.addEventListener("visibilitychange",s),()=>{document.removeEventListener("visibilitychange",s)}),n);const s=()=>{const n=document.visibilityState;"hidden"===i.current&&"visible"===n&&e&&e(),i.current=n,o(i.current)};return r}(()=>{o("ForegroundStrategy","onForeground",s.toString())},[s]);return(0,t.useEffect)(()=>{l&&"visible"===A&&("result"in l?e.onComplete(l.result):"error"in l&&e.onError(l.error),c(null))},[l,A]),z({shouldPoll:s,pollUrl:n.pollUrl,onComplete:u,onError:d}),r().cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{o("ForegroundStrategy","handleInitiate"),i(),a(!0)}}))}const X="@criipto/verify-react:sebankid:state",Z=(()=>{const e=S();return null===e?(console.warn("Creating memory store for PKCE values as no sessionStorage is available. Authentication may be broken."),x()):e})();function _(){const e=Z.getItem(X);if(e)return JSON.parse(e)}const $=_();function ee(e){const{links:n,onError:i,onComplete:o,onInitiate:s,onLog:a,pkce:l,redirectUri:c}=e;return(0,t.useEffect)(()=>{const e=_();e&&(Z.removeItem(X),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},Z.setItem(X,JSON.stringify(e)),s()}}))}var ne=function(e,n,i,t){return new(i||(i=Promise))(function(r,o){function s(e){try{l(t.next(e))}catch(e){o(e)}}function a(e){try{l(t.throw(e))}catch(e){o(e)}}function l(e){var n;e.done?r(e.value):(n=e.value,n instanceof i?n:new i(function(e){e(n)})).then(s,a)}l((t=t.apply(e,n||[])).next())})};class ie extends Error{constructor(e){super(e),this.name="NotDoneError"}}function te(e){var n,o;const{loginHint:s}=(0,t.useContext)(u),a="undefined"!=typeof navigator?navigator.userAgent:e.userAgent,l=(0,t.useMemo)(()=>function(e,n){var i;const t=K(e),r="iOS"===(null==t?void 0:t.os.name)?"iOS":"Android"===(null==t?void 0:t.os.name)||"Samsung Internet"===(null==t?void 0:t.browser.name)?"android":null,o=!("iOS"!==r||!(null===(i=null==t?void 0:t.browser.name)||void 0===i?void 0:i.includes("Safari"))),s="android"===r&&"Chrome"===(null==t?void 0:t.browser.name),a=o&&!(null==n?void 0:n.includes("appswitch:resumeUrl:disable"));return{resume:r?o&&a?"Reload":"Foreground":"Poll",linkType:"iOS"===r||s?"universal":"scheme",redirect:a}}(a,s),[a,s]),[c,d]=(0,t.useState)(),[A,h]=(0,t.useState)(null!==(n=null==$?void 0:$.links)&&void 0!==n?n:null),[g,p]=(0,t.useState)(null!==(o=null==$?void 0:$.pkce)&&void 0!==o?o:void 0),[f,v]=(0,t.useState)(null),[m,k]=(0,t.useState)([]),[I,b]=(0,t.useState)(!!$),{buildAuthorizeUrl:C,completionStrategy:E,generatePKCE:B,handleResponse:D,redirectUri:y,domain:w}=(0,t.useContext)(u),Q=e.redirectUri||y,U=(...e)=>{k(n=>n.concat([e]))},R=(0,t.useCallback)(e=>ne(this,void 0,void 0,function*(){const n={pkce:g};p(void 0),h(null);const i=e.startsWith(`https://${w}`)||e.startsWith(`http://${w}`)?yield function(e){return ne(this,void 0,void 0,function*(){const n=yield fetch(e);if(n.status>=400){const e=yield n.text();return e.includes("Native-app driven authentication is not done")?new ie(e):new Error(e)}const{location:i}=yield n.json();return{location:i}})}(e):{location:e};if(i instanceof ie&&"Reload"===l.resume)return void(yield D({error:"access_denied"},{pkce:n.pkce,redirectUri:Q,source:"SEBankIDSameDeviceButton"}));if(i instanceof Error)return void v(i.message);const{location:t}=i;if("openidprovider"===E)return void(window.location.href=t);const r=new URL(t),o=(s=r.searchParams,Array.from(s.keys()).reduce((e,n)=>(e[n]=s.get(n),e),{}));var s;yield D(o,{pkce:n.pkce,redirectUri:Q,source:"SEBankIDSameDeviceButton"})}),[E,g,w,l]),S=(0,t.useCallback)(()=>ne(this,void 0,void 0,function*(){U("SEBankID: Refresh authorize url");const e=yield B();C({acrValues:"urn:grn:authn:se:bankid:same-device",loginHint:(null==s?void 0:s.includes("appswitch:"))?void 0:"appswitch:browser",responseMode:"json",pkce:e,redirectUri:Q,prompt:"login"}).then(e=>fetch(e).then(e=>e.json())).then(n=>{p(e||void 0),h(n);const i=l.redirect?window.location.href:"null",t=new URL("universal"===l.linkType?n.launchLinks.universalLink:n.launchLinks.customFileHandlerUrl);t.searchParams.set("redirect",i);const r=t.href;U(window.location.href),U(r),d(r)}).catch(e=>{b(!1)})}),[C,Q,l]);(0,t.useEffect)(()=>{I||S()},[S,I]),(0,t.useEffect)(()=>{if(I)return;const e=setInterval(()=>{I||S()},25e3);return()=>clearInterval(e)},[S,I]);const j=()=>{U("Initiated"),b(!0),v(null)},O=e=>ne(this,void 0,void 0,function*(){b(!1),v(e),"access_denied"!==e&&'"access_denied"'!==e||(yield D({error:"access_denied"},{pkce:g,redirectUri:Q,source:"SEBankIDSameDeviceButton"}))}),x=c?(0,i.jsxs)("a",Object.assign({className:`${e.className} ${I?"criipto-eid-btn--disabled":""}`,href:c,onClick:j},{children:[I?(0,i.jsx)("div",Object.assign({className:"criipto-eid-logo"},{children:(0,i.jsx)("div",{className:"criipto-eid-loader"})})):e.logo,e.children]})):e.fallback;return(0,i.jsxs)(r().Fragment,{children:[A?(0,i.jsx)(r().Fragment,{children:"Poll"===l.resume?(0,i.jsx)(G,Object.assign({links:A,onError:O,onComplete:R,onInitiate:j,onLog:U},{children:x})):"Foreground"===l.resume?(0,i.jsx)(q,Object.assign({links:A,onError:O,onComplete:R,onInitiate:j,onLog:U},{children:x})):"Reload"===l.resume?(0,i.jsx)(ee,Object.assign({links:A,onError:O,onComplete:R,onInitiate:j,onLog:U,redirectUri:Q,pkce:g},{children:x})):x}):x,f&&(0,i.jsx)("p",{children:f})]})}const re="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==",oe="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==",se="data:image/png;base64,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",ae="data:image/png;base64,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",le="data:image/png;base64,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",ce="data:image/png;base64,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",ue="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAADgAAABICAYAAACjpDbfAAABoUlEQVR4Ae3b21GDQBgF4EPGAiwhVKAdiBUkVqAdOFbApAM7UCvQDqAD6UCsIHSw/v8IPsQxyl6Y3fV8MzshkzxwsncgABEREcEYU0lppOxNuvTcGynbw3C1yU+t2QrzmfYZebrUgI0cVMhTqwH3cnCKPA0a0CBjK2Qu+4AncNdKeUJ451JuMZOPPlgWRdEjMDnNtby8YSbXJtouEW5UwYJrwCWa5qSGBZcm2kvtlViAnKL2v1dYcKnBJWtv9uAycanBcqn+J6eog8saFmynicffwo2LeB9LwDNYhlO2Ad+PfSjhKkSyQ+FSLXUMmDoGTF2ogAMi4WM/+I0sAjqZC+9gN9Ffw2FiPxQkoJKQ97AgP0wvLw/wJMY+uIFHUQUcd+1beBRbDVptao+JLWAFz6IJKM3zBh5Hz0mwUXS8zPDXaUK/5715qiABx/1ggwhwqZY6BkwdA6aOAVPHgKljwNQxYOpst0ub8erXTy4QCT7Klbp/ETCa+wgBDBqwQ766IqYLRAFcreQmSSsHO+RnJ9levt7pcy0mn78VVCAiIiJ8AI5e2xs/OkmLAAAAAElFTkSuQmCC",de="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAABICAYAAABP0VPJAAAEqUlEQVR4Ae2cjVXbMBDHLzwGyAbVBoUJ6k4AGzSdgHQCwgShEyRMAJ0g6QSECZxOABtcddEp2CIJd7Jk82J+7wkSW9bH3xfpfFIC8MknhxjsOoiIQ/tvZNOFTYbTMfBi09qmlU13g8FgGWaoCcJCTMGJ0QcebPplhVm/OWPFOLOpxFcWNo35+BCOAO7LyKb7Sj+pzybMaGx6rmQo4MihPlYMoKzd9OCEgZ4QGMLUHywq5mOgZ/BHyDOkAzN+M4OeYvv+yBqMT+z7Mz7+B/qL73sBff64eCrDRjmgv3TQzsUDaAEezQtgZ89WexucvwLnH5HztLLnXyAzbAylf4NelIwV0h24rnxWPYsdeRdBHrpmmtuCtzrkFISFCDuoFaSW36YRZCCrIAIhYgXxlJjYefQFn0BCbHlDdA4OdbSAfBiqA53LYCAlqSwE3z4LSYi1kNBaDDQkqYXYcn6AswoD7WNseuQ2NOYUGsINmUO30FQ+J0O30/QdNKCRhdgGXEL3YlSZN7aU2DEE60+KGugaikdsYi17yg1jFtryzyL643TYvtBdTLNJiTqooRNUBJu4nlFEXSUqg1pNBZmhjltsGHVjMTVMleXHCYJuepVSYkIHCvVTe6EoO1qQUtaWPNE3dGOMtA0LRbl6QbAeXWpdjEo7NAN6ISwzSpCFrA2b6TgrWA99HkJkJWpB0N0VCa2FItEN1hKMoCy1IGNBxSW2GHlDNy1LPjoTQVkbNJ7qhSDPw85VsExwNO23IOs3kCKxEL4TEgy0jKJtw3fKUVmIxBVetmkdHraSpSCrEeSBlII8QXdI6hY930gFkbjdS+iOlSCPEeQRC2IEebIvFxxAIsgXQR5IGVNdQ3ckuxlJg8zHQEpButxUYyARUkHWgjzqKFVCJDfjnyDP0QgiqVs0zqQU5Ct0h8Q1l8xEyV331scRlD+Fp3PdFe7xGNpHsuywlG6r0MwyfwV5rtq0EnQPkyNBVvnuKMlHxlcuNE1VtLsJ6PacSDCCspwOKBSEL1rI6s+/zxXl0f88IUS+SBrHLDF/kLkUtmUkLFMvCF+4kLXjQyxDlIpyowWRWklyUVC/UCWO/kcLwhdrF6KvoQHo/KBr1KGK/jcVJGaxu0TlhjmuZ4xxdRllXRui96mi23LwCHrW4Jw88g1WYRyWO1KAc8fJ5GP8mnNbrsxVf60Xty+2b5SgfGlzHyn2mIWMIAJ/caN4iL0Lc/vvBj4ON9ymaBrvMbMNmFhh6TmhNQ91Dz+bikEkiZjxfvVz6CauugY3ZswhAclCiDyIfbep0S5AJQ8QMYAexA8mkBCU7wv7cFu7swhSqeQ9Yfqx+X9HZeTuz3eIIxGErrnFzE/QvrLTyoFhri/r8Deol1yPARcUprTrRpDDRsGoNbS0gI7BV1T9hpMuo+adgq+xlWeaZfwIXUB/8cawIkF8rFSyQ+hY8YHqp3CJoYCegfX4TuEPzisjuoGegPXo2331RDW+0QtRbB8vsf4DECbMEIbnZnzRUcw+fNOpj9eBr1MTI/xBFTpBptOXKZi2dE6q/te+n9wpwK2I0QK2gW73fqRkDc7NoJl13sa3xj85Nv4DY+Ao4zxDIa4AAAAASUVORK5CYII=",Ae="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEQAAABICAYAAABP0VPJAAAEMElEQVR4Ae2c7VHjMBCG32Tu/1GCqIBQwZkKDioAKoCrgFABXAWECgIVxFSQUAGigksHe7u2FJTE+ZJsxxZ5ZjQSsUe2X69W0koGOHBgHR3UBBEpzhJOJ5yk3DOH1MKpmtPUpAmnd8k7nc4ENVCZICzAEWfnnH6Z/AhhiEApp1dOLyzQFG2AhUg4PXD6R9XyJNdCUzFCjKh+Ro0Shm+mR/sRYpEh5X5qb0Iccbqj5nGHALycKuVvYoivnqJpaE5n7Hg1dqSLHWExLjkbo7liCIrTmO/1FlVCzWwimwhqQrGJYSlXFGq3GJZyRKE4xLCEicIV3FB8XK575s4aMRTy3iR0DtI0ZA50uqpLXifIB5ZnorGgkYuyNEEsHIdQ3tYU4kVxKvQnSxZimsoHvgeni3GWIgt5wPdh6VnnLITyafQIfojSErwRL67WnCft9tnkuyDOXaJtPZTr6GXOkxYeobBpvDJ1JBvOC55fmGsMqBxGqy7SowCcetSGU69QEpQL80HhJLbOH079N6gZvpEnbN+bSRN7Qx5P1fKDmDrXcYbwUITEfFP3xiTYExQDdera2kLI/+0+kRMdo/z+x+SPPHvml7qOQm0akV5xGvFDZFZhBlgX2N1RW+wKwUyQ32gfCvOiaM7+wh9ZLpkJ0uTo1zrkzQ6tuTOP8LeS3EKMwgrtRXHKunLTdHytRPyQ6iKOOYvbQw7gTyKCJGg/8nYTKRhfouFHTwQ5QRycO+U3+JE1mVgCQMop++4UOIlJENfSNTyJxakKyin7dr1q55W7lqDhSayCeLuBgyALiCAacaARjo7JQrRT9p2bTUUQ3z67abw7Zd/BZibIJ+LgxSn7Wsh7LBaibeTcRNJ8BZmIICnaz7NTTuDPpGtmh+3YBFuMxvyU33fLw1RW8Wwv84r2cm2j8CaAreBHNkO2gqRoH2LV1wu+I2RDTOaUu84fbWo2KfKF6oHz2y5rPEVkgmQLVRKLZIXFMdW9WCU9nN7yXDnPfhmR2h9NgFkWrRP4M1jaK0Kb12TX4tRT51KmXCtkgcqS2DpnQ3ejegpP6GspQG04ddPxba4lL0+aiOxjCV1CSV2LK3M7hEY+HthmO4S0111HyD9NvQkq3A5RtINohDgi8dsgC+cX7g9FgogJjvE9OF7cjbg0/Td7ru4RP/dFWzMLt2UaBylNp61rvpuQyeBx0YHCAFEJ2wuajDzT2aqDKyNmxpz+ID7ufT4smsHNp0/x0EcZUByi9FEm1G5R+qgCaqcofVQJX+CWqv9quwzkHq+wIyGfqco4RaGZaNT1maogFzIDmyaOaOWeToO61hAoj0kMaf+MyGzRbAR0+GcIxVD+EcGAqnW8UvdjFULU8Q9VEuQ7pcv4hyoSWLIfAFQyz6pMkEUob982yWL0kUlq4VRtcglDfJo83ZuTPHBgjv9zwwqOrOF+bgAAAABJRU5ErkJggg==",he="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEUAAAA8CAYAAAAwoHcgAAAFH0lEQVR4Ae1b/3XbIBA+++X/eoPQCZpOUGWCOhPEmaDuBFImSDKB3QmSTCBlgiYTiEwQb3DlxBFhGSHJlvxD6vcexgaE4ePugAONgIGIMxVdqxDAcWDFQVrxuwqvFEaj0Qo6wog+FCGhiiL+8yc4PCYcCIJDERI0Qc8qJIokCW2BJAQ1lipM4Eih2nahQqDCXIVHFVJcR8x92b0PXFl6zISUQbVZMBGxRQ71ZUF5sC24omNQmZ3ABM0LEhRuNdj88AJ6BJae1JKcoMnzI3pKxUtlqG6gBfDIzCA3lLtCQj4TNZp1VFsiFYX8M1LP3tZ9sDVJYUP4gd2C6o9Rq8pFjTYJS2oesY46tUxKivtHilpdhKddEyaE8BeriOGCO5OCekQOjQX6yYm4XFzVmawy6AcphBT16rysnfdc7s7XGUKfSDG4wxI1wXxdM3Xlj6G/mKsQlxBzBXpWW7jy+0wKgWanDWJ4WqclCKVvqFHfSSEQMRvmQRGTqIgCzVyBnTcEUghT1fG5I90sWEM7cSikEEIsTNfsbqB9X2Cr2JBIoU67ZtkHjj8laUikEIKi/WDbIkF7HTMMjRSCa23yRwVh1GuIpFw71iYJxxlhQySFCFmTFlYhWrsE9HuIpBB+ONLICf6NvgyVlMCR9gbarkwqSUHti5hyqHTqML46wnfQiyVplZNWvkm/5N9XhTrtsrtCOOyKNHneXTJqx2/Rkxajw2eB1i4ZPMB1T1hqpZs0YaU9Wv9rl20DF4V2TTl9NvY0njZKEWz6WgMo330W64itRizoGV5F1vUH/wZtALtAUeolx271Qb3Ace0VDERFvgsz0CTb1r4UJDFMYD1nc3MUB9W0p9SmTKEav6A5flrfZUXZkCXrHvJ1RJsolfRx0wcalvGhSi0E5LvXrqTFhmnP+biigA8SmsOutw6pdIwRsLo9wJ5QRsoTVCOB5sg6xjNM3ek9kxZWoy5hBundSQqPjE9kJdQTabomsQRNxqWqd8npIdRHdtMA2kepNpyVZagORLzkoC21sLISFW7q3AdxjS7quzAzaAYyuk+t3kHZVH/B8erM9xQRo6IIcx9ErbNc1Ge4RXyBzTPmiVXWpJMdWcH6QGQOIpX+Au2h2A/z/7LP5z5VmBTaP+f04KxGZwPQRvFchRclKXWM8LFDOiRecPzqJQXzu3AGxCZtsS+7vIi3B7w50shtkJHl2/sIWCfEgKSmi9lgn3BJewBMls91MPPkXcNpI7F/YD6RZOk+UgT0E8+Oqd0MckIfQ/S8uVbGAWh7QvZycKRIXq1/glVHgF59ZxgaKVeONLPl+JSgIZHyYNTDgGfYAPTtUGnSh0IKqY1rGWFW8mubWx8pp7w4syFBnxCsAfW9uAAKUkIYV1R26pCgV9/STmS1CaHEBeIj5dT3OAk4CGHQlVGhwq0rv5QULpzA6YHUnjrrJAS1R0BwmaWzBt4ulx2GkTvAda08LSl7aCzQf7l4weUewQdTmSefXj4qEnNMpFDbyBEmPH0gZ1bM5du5ho66w7HVkEOSYl5YsD2CvrbToKb87BJrnGxWOpkIrJuXqEeDDspcFWe6DO1DckwLr1VdPy13ng7sIk66ZfdqrYcJ/1+CKlTQC1JQ240Qc/tnbE3zk0zWz4+tHj4wmIg5rtu77cmwKp4ZacFd3tDsGKgN+ZRJWGCHr+Cal7UjyJe9mUGDw0NA/tK2cORL0ItLOgt6atORPjJf8Phe65cc26/0U9z5a/3/AOogERP3A4yAAAAAAElFTkSuQmCC";function ge(e){var n;const t="string"==typeof e.logo?(0,i.jsx)("img",{src:e.logo,alt:""}):null!==(n=e.logo)&&void 0!==n?n:pe(e.acrValue)?(0,i.jsx)("img",{src:pe(e.acrValue),alt:""}):(0,i.jsx)("span",{children:" "});return t?(0,i.jsx)("div",Object.assign({className:"criipto-eid-logo"},{children:t})):null}function pe(e){return e.startsWith("urn:grn:authn:dk:mitid")?re:e.startsWith("urn:grn:authn:fi:mobile")?oe:e.startsWith("urn:grn:authn:itsme")?se:e.startsWith("urn:grn:authn:se:bankid")?ce:e.startsWith("urn:grn:authn:no:bankid")?ae:e.startsWith("urn:grn:authn:no:vipps")?le:e.startsWith("urn:grn:authn:se:frejaid")?ue:e.startsWith("urn:grn:authn:uk:oneid")?Ae:e.startsWith("urn:grn:authn:de:personalausweis")?de:e.startsWith("urn:grn:authn:nl:idin")?he:void 0}function fe(e){return(0,i.jsx)("a",Object.assign({className:`criipto-verify-button ${e.className}`,href:e.href,onClick:e.onClick},{children:e.children}))}function ve(e){return(0,i.jsx)("button",Object.assign({className:`criipto-verify-button ${e.className}`,type:"button",onClick:e.onClick},{children:e.children}))}const me=require("qrcode");var ke=e.n(me);const Ie="data:image/png;base64,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";var be=function(e,n,i,t){return new(i||(i=Promise))(function(r,o){function s(e){try{l(t.next(e))}catch(e){o(e)}}function a(e){try{l(t.throw(e))}catch(e){o(e)}}function l(e){var n;e.done?r(e.value):(n=e.value,n instanceof i?n:new i(function(e){e(n)})).then(s,a)}l((t=t.apply(e,n||[])).next())})};function Ce(e){return Array.from(e.keys()).reduce((n,i)=>(n[i]=e.get(i),n),{})}function Ee(e){var n,r,o,s,a,l;const c=(0,t.useRef)(null),{buildAuthorizeUrl:d,completionStrategy:A,handleResponse:h,generatePKCE:g,redirectUri:p,uiLocales:f}=(0,t.useContext)(u),v=null!==(r=null!==(n=e.language)&&void 0!==n?n:f)&&void 0!==r?r:"en",k=e.redirectUri||p,[I,b]=(0,t.useState)(null),[C,E]=(0,t.useState)(null),[B,D]=(0,t.useState)(null),[y,w]=(0,t.useState)(void 0),[Q,U]=(0,t.useState)(!1),[R,S]=(0,t.useState)(!1),j=(0,t.useCallback)(()=>be(this,void 0,void 0,function*(){D(null),b(null),E(null),w(void 0);const e=yield g();d({acrValues:"urn:grn:authn:se:bankid:another-device:qr",responseMode:"json",pkce:e,redirectUri:k,prompt:"login"}).then(e=>fetch(e).then(e=>e.json())).then(n=>{w(e),b(n.initialQrCode),E(n.pollUrl)}).catch(console.error)}),[d,k]);(0,t.useEffect)(()=>{j()},[j]);const O=()=>{U(!1),j()},x=(0,t.useCallback)(e=>{"Collect failed: startFailed"!==e&&'"Collect failed: startFailed"'!==e?(D(new Error(e)),h(new Error(e),{pkce:y,redirectUri:k,source:"SEBankIDQrCode"})):O()},[y,k]),W=(0,t.useCallback)(e=>be(this,void 0,void 0,function*(){U(!0);const n={pkce:y},i=yield function(e){return be(this,void 0,void 0,function*(){if(e.includes("error=")){const n=Ce(new URL(e).searchParams);return{location:e,response:n}}const n=yield fetch(e);if(n.status>=400)return new Error(yield n.text());const{location:i}=yield n.json();return{location:i,response:Ce(new URL(i).searchParams)}})}(e);if(i instanceof Error)return x(i.message);const{location:t,response:r}=i;"openidprovider"!==A?yield h(r,{pkce:n.pkce,redirectUri:k,source:"SEBankIDQrCode"}):window.location.href=t}),[A,y]),V=function(e,n){const{width:i,qrMargin:r}=n,[o,s]=(0,t.useState)(null);return(0,t.useEffect)(()=>{if(!e)return;let n=!0;return(()=>{be(this,void 0,void 0,function*(){const t=yield ke().toDataURL(e,{errorCorrectionLevel:"low",scale:10,width:i,margin:null!=r?r:4});n&&s(t)})})(),()=>{n=!1}},[e,r,i]),o}(I,{width:R?null!==(o=window.innerHeight)&&void 0!==o?o:null===(s=c.current)||void 0===s?void 0:s.offsetWidth:null===(a=c.current)||void 0===a?void 0:a.offsetWidth,qrMargin:null!==(l=e.qrMargin)&&void 0!==l?l:R?2:void 0});!function(e,n){const{onQrCode:i,onComplete:r,onError:o,enabled:s}=n;(0,t.useEffect)(()=>{if(!e)return;if(!s)return;let n,t=!0;const a=()=>be(this,void 0,void 0,function*(){if(!t)return;const s=yield fetch(e);if(t){if(s.status<400){const e=yield s.json();if(e.qrCode&&i(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),()=>{t=!1,clearTimeout(n)}},[e,i,r,o,s])}(C,{enabled:!Q,onQrCode:b,onComplete:W,onError:x});const L=m(v),P=(0,i.jsx)("button",Object.assign({"aria-label":L.thisIsTheQR,ref:c,className:"criipto-se-bankid-qr-canvas",onClick:()=>S(e=>!e)},{children:V?(0,i.jsx)("img",{src:V}):null})),N=(0,i.jsxs)("div",Object.assign({className:"criipto-se-bankid-qr"},{children:[(0,i.jsxs)("aside",Object.assign({className:"criipto-se-bankid-qr--help-text"},{children:[Q?L.completingLogin:L.openAndScan,(0,i.jsx)("img",{src:Ie})]})),P]}));return!I&&e.fallback?e.fallback:e.children?e.children({qrElement:N,imageElement:P,error:B,isCompleting:Q,retry:()=>O(),fullscreen:R}):R?(0,i.jsx)("dialog",Object.assign({className:"criipto-se-bankid-qr-fullscreen",open:!0},{children:P})):N}Ee.acr_values="urn:grn:authn:se:bankid:another-device:qr";const Be=(0,t.createContext)({multiple:!1,acrValues:[]});function De(e){const n=r().Children.toArray(e.children).flatMap(e=>{if(!e||"object"!=typeof e)return[];if("type"in e){if(e.type===we){const n=e.props;return n.acrValue?[n.acrValue]:[]}if(e.type===ye){const n=e.props;return n.acrValue?[n.acrValue]:[]}if(e.type===Ee)return["urn:grn:authn:se:bankid:another-device:qr"]}return[]}),t={multiple:n.length>1,acrValues:n};return(0,i.jsx)(Be.Provider,Object.assign({value:t},{children:e.children}))}function ye(e){var n,o,s;const{acrValue:a,href:l}=e,c=(0,t.useContext)(Be),u=!c.multiple||Q(e.acrValue,c.acrValues),d=null!==(n=e.language)&&void 0!==n?n:"en",A=null!==(o=e.action)&&void 0!==o?o:"login",h=`criipto-eid-btn ${Qe(a)}${e.className?` ${e.className}`:""}`,{title:g,subtitle:p}=y(d,a,{disambiguate:R(a,c.acrValues)}),f=null!==(s=e.children)&&void 0!==s?s:(0,i.jsxs)(r().Fragment,{children:[B(d,A)?`${B(d,A)} `:"",g," ",u?null:Ue(p)]}),v=(0,i.jsxs)(r().Fragment,{children:[(0,i.jsx)(ge,{acrValue:a,logo:e.logo}),(0,i.jsx)("span",{children:f})]});return l?(0,i.jsx)(r().Fragment,{children:(0,i.jsx)(fe,Object.assign({},e,{href:l,className:h,onClick:e.onClick},{children:v}))}):(0,i.jsx)(r().Fragment,{children:(0,i.jsx)(ve,Object.assign({},e,{className:h,onClick:e.onClick},{children:v}))})}function we(e){var n,s,a,l,c;const{acrValue:d}=e,A=(0,t.useContext)(Be),h=!A.multiple||Q(e.acrValue,A.acrValues),g=(0,t.useContext)(u),{buildAuthorizeUrl:p}=g,f=null!==(s=null!==(n=e.language)&&void 0!==n?n:g.uiLocales)&&void 0!==s?s:"en",v=null!==(l=null!==(a=e.action)&&void 0!==a?a:g.action)&&void 0!==l?l:"login",m=`criipto-eid-btn ${Qe(d)}${e.className?` ${e.className}`:""}`,[k,I]=(0,t.useState)(null),[b,C]=(0,t.useState)(e.href),E=e.redirectUri||g.redirectUri;(0,t.useEffect)(()=>{if(e.href)return;let n=!0;return p({redirectUri:E,acrValues:d,loginHint:void 0}).then(e=>{n&&C(e)}).catch(console.error),()=>{n=!1}},[e.href,p,d,g.pkce,E]);const{title:D,subtitle:w}=y(f,d,{disambiguate:R(d,A.acrValues)}),U=null!==(c=e.children)&&void 0!==c?c:(0,i.jsxs)(r().Fragment,{children:[B(f,v)?`${B(f,v)} `:"",D," ",h?null:Ue(w)]}),S=(0,i.jsxs)(r().Fragment,{children:[(0,i.jsx)(ye,Object.assign({},e,{href:b,className:m,onClick:n=>{if(!e.href){if(g.pkce&&"code_verifier"in g.pkce&&(0,o.savePKCEState)(g.store,{response_type:"id_token",pkce_code_verifier:g.pkce.code_verifier,redirect_uri:E}),e.popup){let i="function"==typeof e.popup?e.popup({acrValue:d,onHide:()=>I(null)}):!0===e.popup;!1!==i&&(n.preventDefault(),"boolean"==typeof i?g.loginWithPopup({acrValues:[d],redirectUri:E,backdrop:!0}):(I(i),g.loginWithPopup({acrValues:[d],redirectUri:E,backdrop:!1})))}e.onClick&&e.onClick(n)}}})),k]});return e.href||"urn:grn:authn:se:bankid:same-device"!==d?S:(0,i.jsx)(te,Object.assign({redirectUri:e.redirectUri,fallback:S,className:m,userAgent:e.userAgent,logo:(0,i.jsx)(ge,{acrValue:d,logo:e.logo})},{children:(0,i.jsx)("span",{children:U})}))}function Qe(e){return(e=e.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(" ")}function Ue(e){return e?e.substring(0,1).toLowerCase()+e.substr(1,e.length):e}function Re(e){var n,r;const{action:o,uiLocales:s,acrValues:a}=(0,t.useContext)(u),l=e.language||s||"en",c=w(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,i.jsx)(Se,Object.assign({},e,{acrValues:c})):(0,i.jsx)("div",Object.assign({className:"criipto-eid-selector"},{children:(0,i.jsx)(De,{children:c.map(n=>(0,i.jsx)(we,{acrValue:n,onClick:e.onSelect?()=>e.onSelect(n):void 0,redirectUri:e.redirectUri,popup:e.popup,language:l,action:o,userAgent:e.userAgent},n))})}))}function Se(e){const{acrValues:n}=e,{action:r,uiLocales:o}=(0,t.useContext)(u),s=e.language||o||"en",a=n.includes(Ee.acr_values),l=n.filter(e=>e!==Ee.acr_values),c=K("undefined"!=typeof navigator?navigator.userAgent:e.userAgent),d="iOS"===(null==c?void 0:c.os.name)?"iOS":"Android"===(null==c?void 0:c.os.name)?"android":null,A=a&&!d;return(0,i.jsx)("div",Object.assign({className:"criipto-eid-selector"},{children:(0,i.jsxs)(De,{children:[l.map(n=>(0,i.jsx)(we,{acrValue:n,onClick:e.onSelect?()=>e.onSelect(n):void 0,redirectUri:e.redirectUri,popup:e.popup,language:s,action:r,userAgent:e.userAgent},n)),A?(0,i.jsx)(Ee,{language:s,redirectUri:e.redirectUri,fallback:(0,i.jsx)(we,{acrValue:Ee.acr_values,popup:e.popup,language:s,action:r,userAgent:e.userAgent})}):a&&d?(0,i.jsx)(we,{acrValue:Ee.acr_values,redirectUri:e.redirectUri,popup:e.popup,language:s,action:r,userAgent:e.userAgent}):null]})}))}const je=e=>{var n,r;const{children:s,margin:a,className:l}=e,c=(0,t.useRef)(null),{client:d,buildOptions:A,buildAuthorizeUrl:h,handleResponse:g,pkce:p,store:f,acrValues:v}=(0,t.useContext)(u),[m,k]=(0,t.useState)(()=>Math.random().toString()),[I,b]=(0,t.useState)(!1),[C,E]=(0,t.useState)(!1),[B,D]=(0,t.useState)(null),[y,w]=(0,t.useState)(null),Q=null==y?void 0:y.client.qr_enabled,U=null!==(r=null!==(n=e.acrValues)&&void 0!==n?n:v)&&void 0!==r?r:[];(0,t.useEffect)(()=>{let e=!0;return d.fetchCriiptoConfiguration().then(n=>{e&&w(n)}),()=>{e=!1}},[d]);const R=(0,t.useCallback)(()=>{return e=void 0,n=void 0,t=function*(){var e;if(!y)return;const n=(null!==(e=y.client.qr_intermediary_url)&&void 0!==e?e:y.qr_intermediary_url).replace("/{id}","").replace("{id}",""),i=new URL(yield h({acrValues:U})),t=new URLSearchParams(i.search);t.set("domain",i.host),i.host=new URL(n).host,i.port=new URL(n).port,i.pathname=new URL(n).pathname+"/authorize",i.search=t.toString(),p&&"code_verifier"in p&&(0,o.savePKCEState)(f,{response_type:"id_token",pkce_code_verifier:p.code_verifier,redirect_uri:t.get("redirect_uri")}),window.location.href=i.toString()},new((i=void 0)||(i=Promise))(function(r,o){function s(e){try{l(t.next(e))}catch(e){o(e)}}function a(e){try{l(t.throw(e))}catch(e){o(e)}}function l(e){var n;e.done?r(e.value):(n=e.value,n instanceof i?n:new i(function(e){e(n)})).then(s,a)}l((t=t.apply(e,n||[])).next())});var e,n,i,t},[h,y,U]),S=(0,t.useCallback)(()=>d.qr.authorize(c.current,Object.assign(Object.assign({},A({acrValues:U})),{margin:a})),[d,A,a,U]);return(0,t.useLayoutEffect)(()=>{if(!c.current)return;if(B)return;if(!Q)return;const e=S();return e.onAcknowledged=()=>{b(!0)},e.then(n=>{e.cancelled||g(n,{pkce:p&&"code_verifier"in p?p:void 0,source:"QRCode"})}).catch(n=>{n instanceof o.UserCancelledError?E(!0):e.cancelled||(D(n),g(n,{source:"QRCode"}))}),()=>{e.cancel()}},[S,p,g,m,B,Q]),s({qrElement:(0,i.jsx)("div",{ref:c,className:l}),isAcknowledged:I,isCancelled:C,isEnabled:null==y?void 0:y.client.qr_enabled,error:B,retry:()=>{b(!1),E(!1),D(null),k(Math.random().toString())},redirect:R})};function Oe(){const{result:e,claims:n,loginWithRedirect:i,loginWithPopup:r,acrValues:o,isLoading:s,isInitializing:a,logout:l,checkSession:c}=(0,t.useContext)(u);return{result:e,claims:n,error:e&&"error"in e?e:null,loginWithRedirect:i,loginWithPopup:r,acrValues:o,isLoading:s,isInitializing:a,checkSession:c,logout:l}}var xe=exports;for(var We in n)xe[We]=n[We];n.__esModule&&Object.defineProperty(xe,"__esModule",{value:!0});
|
|
2
2
|
//# sourceMappingURL=criipto-verify-react.cjs.js.map
|