@criipto/verify-react 0.14.3 → 0.14.6

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.
@@ -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:()=>V,AuthMethodSelector:()=>M,CriiptoVerifyProvider:()=>S,OAuth2Error:()=>o.OAuth2Error,QRCode:()=>P,actions:()=>a,filterAcrValues:()=>f,useCriiptoVerify:()=>H});const t=require("react/jsx-runtime"),i=require("react");var r=e.n(i);const o=require("@criipto/auth-js");var c=e.n(o);const a=["confirm","accept","approve","sign","login"],l=()=>{throw new Error("You forgot to wrap your component in <CriiptoVerifyProvider>.")},s={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:sessionStorage,isLoading:!1,client:null},A=(0,i.createContext)(s);function u(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 d(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 g(e){return(e=e.replace("urn:grn:authn:","")).startsWith("fi")?"fi":e.startsWith("itsme")?"itsme":e.split(":").slice(0,2).join(":")}function h(e,n){const t=g(n=n.replace("urn:grn:authn:",""));if("be:eid"===t)return{title:u(n).replace("BEEID","Belgian eID")};if("nl:digid"===t)return{title:u(n).replace("NL ","")};if("dk:mitid"===t)return{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"===t)return{title:u(n).replace("FI","FTN")};if("itsme"===t)return{title:u(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 enheten"),"nb"===e&&(t="På denne enheten")),"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:u(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":u(n).replace("NO ",""),subtitle:t}}return"no:vipps"===t?{title:u(n).replace("NO ","")}:{title:u(n)}}function f(e){let n=e.slice(),t=function(e){let n=null;return e.forEach((e=>{if(e.startsWith("urn:grn:authn:dk:mitid"))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);return t?e.filter((e=>!e.startsWith("urn:grn:authn:dk:mitid"))).concat([t]).sort(((e,t)=>n.indexOf(e)-n.indexOf(t))):e}require("@criipto/auth-js/dist/index.css");const p=require("jwt-decode");var v=e.n(p),m=function(e,n,t,i){return new(t||(t=Promise))((function(r,o){function c(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(c,a)}l((i=i.apply(e,n||[])).next())}))};const k="@criipto-verify-react/session",w=["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"];function C(e){const{options:n,action:t}=e,i=(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 r=(null==n?void 0:n.loginHint)?null==n?void 0:n.loginHint.split(" "):[];return t&&(r=r.filter((e=>!e.startsWith("action:"))),1===i.length?w.includes(i[0])&&r.push(`action:${t}`):i.length>=2?i.some((e=>w.includes(e)))&&r.push(`action:${t}`):r.push(`action:${t}`)),r.length?r.join(" "):void 0}const U=sessionStorage,S=e=>{var n,r;const l=e.redirectUri||window.location.href,s=(0,i.useMemo)((()=>new(c())({domain:e.domain,clientID:e.clientID,store:U,redirectUri:e.redirectUri})),[e.domain,e.clientID,e.redirectUri]),[u,d]=(0,i.useState)(null);(0,i.useEffect)((()=>{let e=!0;return m(void 0,void 0,void 0,(function*(){const n=yield s.fetchOpenIDConfiguration();e&&d(n)})),()=>{e=!1}}),[s]);const[g,h]=(0,i.useState)(null),p=(0,i.useMemo)((()=>g&&"id_token"in g?v()(g.id_token):null),[g]),[w,S]=(0,i.useState)(!1),[E,B]=(0,i.useState)(e.pkce),b=e.response||"token",Q=e.completionStrategy||"client",y=e.uiLocales,j=e.loginHint,O=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}(j))&&void 0!==r?r:"login",X=e.sessionStore,D=()=>{if(!e.pkce){if("token"!==b||"client"!==Q)return(0,o.clearPKCEState)(U),void B(void 0);(0,o.clearPKCEState)(U),m(void 0,void 0,void 0,(function*(){const e=yield(0,o.generatePKCE)();B(e)}))}},I=(0,i.useCallback)((n=>{var t,i,r,o;return Object.assign(Object.assign({redirectUri:l,responseType:"code"},n||{}),{state:null!==(t=e.state)&&void 0!==t?t:null==n?void 0:n.state,prompt:null!==(i=e.prompt)&&void 0!==i?i:null==n?void 0:n.prompt,scope:null!==(r=e.scope)&&void 0!==r?r:null==n?void 0:n.scope,uiLocales:null!=y?y:null==n?void 0:n.uiLocales,pkce:null!==(o=null==n?void 0:n.pkce)&&void 0!==o?o:E,loginHint:C({options:n,action:O})})}),[E,e.state,e.prompt,e.scope,y,O,l]),R=(0,i.useCallback)((e=>m(void 0,void 0,void 0,(function*(){return yield s.buildAuthorizeUrl(s.buildAuthorizeParams(I(e)))}))),[s,I]),G=(0,i.useCallback)(((e,n)=>m(void 0,void 0,void 0,(function*(){if(e instanceof Error)h(e);else if(n.pkce&&"token"===b){let t=n.redirectUri||l;if(!t)throw new Error("redirectUri must be configured globally or per authentication component");yield s.processResponse(e,{code_verifier:n.pkce.code_verifier,redirect_uri:t}).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==X||X.setItem(k,e.id_token)):h(null)})).catch((e=>{h(e)}))}else(null==e?void 0:e.code)?h({code:e.code}):(null==e?void 0:e.id_token)?(h({id_token:e.id_token}),null==X||X.setItem(k,e.id_token)):(null==e?void 0:e.error)?h(new o.OAuth2Error(e.error,e.error_description)):h(null);D()}))),[D,b,h,s,X]),W=(0,i.useCallback)((()=>m(void 0,void 0,void 0,(function*(){return s.checkSession({redirectUri:l}).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==X||X.setItem(k,e.id_token)):h(null)}))}))),[X,s,l]),x=(0,i.useCallback)((e=>m(void 0,void 0,void 0,(function*(){var n;null==X||X.removeItem(k),yield s.logout({redirectUri:null!==(n=null==e?void 0:e.redirectUri)&&void 0!==n?n:l})}))),[X,s]),N=(0,i.useMemo)((()=>({loginWithRedirect:e=>m(void 0,void 0,void 0,(function*(){yield s.redirect.authorize(I(e))})),loginWithPopup:e=>s.popup.authorize(I(e)).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}):h(null)})).catch((e=>{h(e)})),checkSession:W,logout:x,fetchOpenIDConfiguration:()=>s.fetchOpenIDConfiguration(),buildAuthorizeUrl:R,generatePKCE:()=>m(void 0,void 0,void 0,(function*(){if("token"===b&&"client"===Q)return yield(0,o.generatePKCE)()})),buildOptions:I,handleResponse:G,responseType:b,completionStrategy:Q,result:g,claims:p,domain:s.domain,redirectUri:l,action:O,pkce:E,store:U,isLoading:w,acrValues:u?f(u.acr_values_supported):void 0,client:s,uiLocales:y})),[s,l,b,Q,g,p,O,E,e.state,e.prompt,w,G,x,u,y,W]);return(0,i.useEffect)((()=>{if(!s.redirect.hasMatch())return void D();let e=!0;S(!0);const n=(0,o.parseAuthorizeResponseFromLocation)(window.location);return n.code&&"code"===b?(S(!1),h({code:n.code}),void D()):(s.redirect.match().then((n=>{e&&(S(!1),(null==n?void 0:n.code)?h({code:n.code}):(null==n?void 0:n.id_token)?h({id_token:n.id_token}):h(null),D())})).catch((n=>{e&&(S(!1),h(n),D())})),()=>{e=!1})}),[e.pkce,b]),(0,i.useEffect)((()=>{if(X&&!p)if(p);else{const e=X.getItem(k);if(!e)return;h({id_token:e})}}),[X,p]),(0,i.useEffect)((()=>{if(!p)return;if(!X)return;const e=setInterval((()=>{const e=Date.now();if(p.exp<e/1e3)return h(null),void(null==X||X.removeItem(k))}),5e3);return()=>clearInterval(e)}),[X,p,g]),(0,i.useEffect)((()=>{if(!X)return;if(s.redirect.hasMatch())return;if(X.getItem(k))return;let e=!0;return S(!0),W().catch((e=>{console.error("session silent check error",e)})).finally((()=>{e&&S(!1)})),()=>{e=!1}}),[X,s,l]),(0,t.jsx)(A.Provider,Object.assign({value:N},{children:e.children}))};function E(e){return e.test(navigator.userAgent)}function B(){return E(/iPad|iPhone|iPod/)&&!window.MSStream?"ios":E(/Android/)?"android":null}function b(e){const{links:n,onError:t,onComplete:o,onInitiate:c}=e,[a,l]=(0,i.useState)(!1),{domain:s}=(0,i.useContext)(A);return(0,i.useEffect)((()=>{if(!a)return;let e=!0;const i=()=>{return r=this,c=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(`https://${s}${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,c||[])).next())}));var r,c,a,l};return setTimeout(i,1e3),()=>{e=!1}}),[a]),r().cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{c(),l(!0)}}))}function Q(e){const{links:n,onError:t,onComplete:o,onInitiate:c,onLog:a}=e,[l,s]=(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",c),()=>{document.removeEventListener("visibilitychange",c)})),n);const c=()=>{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("android","onForeground",l.toString()),l&&o(n.completeUrl)},new((i=void 0)||(i=Promise))((function(n,o){function c(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(c,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("android","handleInitiate"),c(),s(!0)}}))}const y="@criipto/verify-react:sebankid:state",j=function(){const e=sessionStorage.getItem(y);if(e)return JSON.parse(e)}();function O(e){const{links:n,onError:t,onComplete:o,onInitiate:c,onLog:a,pkce:l,redirectUri:s}=e;return(0,i.useEffect)((()=>{j&&(sessionStorage.removeItem(y),o(j.links.completeUrl))}),[]),r().cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{var e;a("iOS","handleInitiate"),e={links:n,redirectUri:s,pkce:l},sessionStorage.setItem(y,JSON.stringify(e)),c()}}))}var X=function(e,n,t,i){return new(t||(t=Promise))((function(r,o){function c(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(c,a)}l((i=i.apply(e,n||[])).next())}))};const D=B();function I(e){var n,o;const[c,a]=(0,i.useState)(e.href),[l,s]=(0,i.useState)(null!==(n=null==j?void 0:j.links)&&void 0!==n?n:null),[u,d]=(0,i.useState)(null!==(o=null==j?void 0:j.pkce)&&void 0!==o?o:void 0),[g,h]=(0,i.useState)(null),[f,p]=(0,i.useState)([]),[v,m]=(0,i.useState)(!!j),{buildAuthorizeUrl:k,completionStrategy:w,generatePKCE:C,handleResponse:U,redirectUri:S}=(0,i.useContext)(A),E=e.redirectUri||S,B=(...e)=>{p((n=>n.concat([e])))},y=(0,i.useCallback)((n=>X(this,void 0,void 0,(function*(){const t={pkce:u};d(void 0),s(null),a(e.href);const i=yield fetch(n);if(i.status>=400)return void h(yield i.text());const{location:r}=yield i.json();if("openidprovider"===w)return void(window.location.href=r);const o=new URL(r),c=(l=o.searchParams,Array.from(l.keys()).reduce(((e,n)=>(e[n]=l.get(n),e)),{}));var l;yield U(c,{pkce:t.pkce,redirectUri:E})}))),[w,u]),I=(0,i.useCallback)((()=>X(this,void 0,void 0,(function*(){B("SEBankID: Refresh authorize url");const e=yield C();k({acrValues:"urn:grn:authn:se:bankid:same-device",loginHint:"appswitch:browser",responseMode:"json",pkce:e,redirectUri:E}).then((e=>fetch(e).then((e=>e.json())))).then((n=>{d(e||void 0),s(n);const t="ios"===D?encodeURIComponent(window.location.href):"null",i=`${D?n.launchLinks.universalLink:n.launchLinks.customFileHandlerUrl}&redirect=${t}`;B(window.location.href),B(i),a(i)})).catch(console.error)}))),[k,E]);(0,i.useEffect)((()=>{v||I()}),[I,v]),(0,i.useEffect)((()=>{if(v)return;const e=setInterval((()=>{v||I()}),25e3);return()=>clearInterval(e)}),[I,v]);const R=()=>{B("Initiated"),m(!0),h(null)},G=e=>{m(!1),h(e)},W=(0,t.jsxs)("a",Object.assign({className:`${e.className} ${v?"criipto-eid-btn--disabled":""}`,href:c,onClick:R},{children:[(0,t.jsx)("div",Object.assign({className:"criipto-eid-logo"},{children:v?(0,t.jsx)("div",{className:"criipto-eid-loader"}):e.logo})),e.children]}));return(0,t.jsxs)(r().Fragment,{children:[l?(0,t.jsx)(r().Fragment,{children:null===D?(0,t.jsx)(b,Object.assign({links:l,onError:G,onComplete:y,onInitiate:R,onLog:B},{children:W})):"android"===D?(0,t.jsx)(Q,Object.assign({links:l,onError:G,onComplete:y,onInitiate:R,onLog:B},{children:W})):"ios"===D?(0,t.jsx)(O,Object.assign({links:l,onError:G,onComplete:y,onInitiate:R,onLog:B,redirectUri:E,pkce:u},{children:W})):W}):W,g&&(0,t.jsx)("p",{children:g})]})}function R(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:G(e.acrValue)?(0,t.jsx)("img",{src:G(e.acrValue),alt:""}):null;return i?(0,t.jsx)("div",Object.assign({className:"criipto-eid-logo"},{children:i})):null}function G(e){return e.startsWith("urn:grn:authn:be:eid")?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFEAAAA8CAYAAAAe5VayAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUdSURBVHgB7Zzveds2EMZPffy9ygRBJrC9ATVB3AmsTOB4AjETSJ3A6gRNJjA9QdUJzEwQZQL0XvEgQZAIgCzo2CR/z4OQog6U9AZ/7g6EiXqE1nqhw/zg8g+Xv7nccclo5ECkiOd45vLARVELfqMRoLjMubQScxTxlDlVYuaxFUYR61lIN1chw1FEP4oLJqErn9EoYpgpVULe1hlMqEdI13sfMIMosMukTCmOLZfZZDLZ0MgBFn3KZS5jX6wrpNz7RLdEqZzR26fksuEWtbUvwsfkQx5Rv+C6M4oFwnFZipffN07GOV393ueIurcx4qGZr/QweNaWKDpOSDSqaaj1hW7SR3JHg1DvWxj7iSsgHx6pmr2GyJrHu0840VVi4tFju2Xbdzhx/cQhCwgwU3/GCQtU8OGrx3YqQh9ElOasaGShD27MfcD2I/7ZdWep9Ewjhq/cEv/ACWuD3pnV2JVs98G0xIxGbG70Yfb1dWlMQFMjYtjvGR5Gk28BO3UhJxk1Y0XH/0MFdQuiixs6/nxcyz110JIyqaeoObvMDXfXklvblupj7MsL3S4ljrDpybzge1DHbJ3Pw48q7Ws1oBXds/2cj/DrFMVj2/pE3M3OinoOi73mA+LdktpRet5TvcknOtEEoo0Hu5ehW/LhE3VAX5Oy6HpzqpKpylwUB7qgxPQ9sw0xH5xrXygxQ1geuNLHGZfkmelUIiLevKZqklJyjmtljT3co4zLO+5iiJo+UDVelZQeCLhfaJJk7JYSckEJ4C/2p3PpO5cNtwC4GEs6+Hg7f891TWTQX7M9xEWY5V1da4G77uJ1WZrSaXe2ZkTThWY+305ayf9xRepQ1CFJRERKSFfLCHArbp0ZEcIgmF/ZK2W6ypz/kJI79p24Il2RpDvTcfJyzgWh0kxaogmd9rOiiHZn1VkgCmG7ldgXgVDrVdFVd1bkuBbO6trHM3XcJEhBb4RULfEc6OJTd2lSWJ255tqVlI6ks7FLlyKCSy4nEwkL+1e4atIf7vqGihLStYg/z13kFgqX59JfNVmiuHQyQKndp05FLD3PrUDAnF6GtfM6uYhd+okrz3twzjsdpwTkPd1YOXkWP1ZECII1VoRnMbFnbkcxcGm09ZSBTDYIDQunHl7PqV18W1oFkc9n/pxr20CSsxklBt052CL4y5ilw634e787JhjjruRebtY7pyqrjLpPtu/Ih5kkB3C/n2Yml2sragBW3XzvSwCwoA6IEhGDsTW+4QcerQfwe4iRvzl1YJfTwanG60fbCZe65xIC3ykhsiC/oPbOu6/eNkpEBns+TJeGKFtZ/Ydw+wlEhEOLzMTO/XBF1UPlaz5+scW06i7oTJfTx/tNYDvV9XtQ8P57OuwKaCPexvnedZRm8d63QN0lu+5PhxTaa2IOfzbiwYbMTCwF/RrMsqai14cZ17OA3b9GxJdyOd4Ka2uo8blEuydudyLK4N5oNuw5O99Shx+x3o2btp+I1ljSSG61wpBLtD65oof7lKxhaWkxD9jWTzZ6uEIuG2rgDx919eD7Ug8DLE/cNBQw/llOueGD7mfLfNTVpvFpQwHBUStsshkI0QSigLah02sBnsjTmc1AsaHh/uH4EdoPW3f6pbalvQXkB6qAmYmrTeZp3CBpo9v/DYgYbuo+t+s1lj5w9tEXm1FEPyVVXbj0GY077+tBLuE6JCAYW+IpBZf7JhPIKGIFxr01VTupQjsSThiiiGZNp6AqlbVpI5zNf5XRuR7tdpDGAAAAAElFTkSuQmCC":e.startsWith("urn:grn:authn:nl:digid")?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAHAAAAAuCAYAAADwZJ3MAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAUlSURBVHgB7Zzvdds4DMCRe/f9fBOEneDSCSJPUHeCcyZIOoGVCZxOYN0E6U1gZYKkE1idIOkEOMCkn3WqJEAiacmxf++hckMwpAn+AUEqAGeOmgsYCYho6PGJZELy/eLi4huMCKpfQo+/wNbvieqXwxkLNU6Kv7JxRh26bhOSx5r6rTgNBmY7Al1FulbmjXrhG3jCxqPHoiG5oDI+wICwoegxb0j+RvX7XNE/fFu63tSHV5I1yZLkCnrgRlobCQwEzwAoc1nJs8D+rNG2ZaKt42/gB/e0hOSO5NkZ429tZrRTpBHUrmE4jEIngXAkYNtyrW1LXwNWMSQZ6tcv7yk4Mpr6FRAHA/u2bJzdQhuwXDiPyLs2JTfv59DOPzAcBbQbkdO/Q1wM2LZM6xJjGZDh6XXZVHCJL9DcSA9k5AIGwnWwLy0qDyEcOSWLxrbE/k6Mlta5HK2zsC7ps3N0CyOB6jIjeS7Vjz/PGnQXGJe0rtCVkIkbdOPkFbvDeUQvFe2e6xJGiqvfRNBZKNpiU5I+JNVCV0KGVU1Fr12+DepYwwmAsgHXNXmuSG47tCXrbTtS7zWQ5n4OJ93QxylJpsiSYIctxilB7fhC8tUFLVJFFkOyXWJ+B0+ck3FDxikUhXN6FK8S97FUfu6mOXYwXkj+PaCz4QXV856+yw/6uBJU70jv6/YT9phC68D/OyJNJJU8K0H/UigzUZS7QbelQXmKu+7ynWrqs8B2nkHXlkuUuQ29jbhR6HyCQNAXeKAHrymJoGrAbmmWMDzaOOk9yIGEWVADuuk0F9QS8AStN8g9uetWg0fhHI4AN+VngtpVjI28dI7XK+hdIfX4PQaOhychfRLDgD8kBfTY61HeOXQfecfKi6Tg7YXWENvbWyj1uB6F+xxi1I+SmLHQ4LjRZwS1giShNeRPko8s9H/eX2XwDolhQI2X9RP6IXmwBcmUgwzlH7Jz5YIOKRwXRlKIYUDpANbn+kAipKdtpxe8SQbZSx4TRlKIYcCZkC4uzHWgjbS0jW7uGJooz6huuwlIoceXoAZUrlEZ9EOamrUdQ/SSx4DrsImgFs6ArkCNhyjtbfpi4J2A9qRBc3qTBTGgMx4XaATVzOOEXVo3DeruaQYL5cWgZDwjqLJj9uRlQBfSSunjM+hGwD30xBleMmLrDOA62hxGCtpTfm5Lzb415X+0G3k2VAJ2HWL5wxUyA31wNg1wv4XXuaQlnY9YflI5aTUB7Y2ARxgBuD+RMdCvLbOdw6Y14Axk77KNwrnwvrAHmQg6C7QHxxnsHRaeNn3qHxIDuvWtiQJKM1mMUFpdgVMIA/e6FOSeauD4Nu0aeAmZlmey2KG0olqgD4prfu+ZAmraMqYBc5KPoe910u/L6PEApwWv/Wy8X/a6MQzIo2ROhU1j3UOh38ujsI8RCziuoDa3X+qC8kWdQkgD5mBPvD8oQ1peOCNygLpQZsnBrsWSvpR+CHikpWDbstX52zkx7K3loOetJL63vqSyG08u3HSauRAee57sjk8q9dw2xu6EAru/NNo1dtu1LZkC9nXNqa5HEe6LggsuXDad+ne9ZXZmZGD7qwGqK39j4hD7wGC4a4FSmOlz03SO9m5o2x6y63R5pgvKy66PdescG0+Rd9SB7jpG82dGNKCNIWrDUDlY52D3GrgUvRn8DyqcBMpR2IfzizeHAN2tbAzLSbz6NhqcEVcYBu4M2mOcMyGhhp9j/7dcmeXZeCPAGZK9T83r36/OcAbeAf8BIoccO1vtVLIAAAAASUVORK5CYII=":e.startsWith("urn:grn:authn:dk:mitid")?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAAAjCAYAAABctgKLAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAS9SURBVHgB7Zv/VdswEMe/6ev/zQZ1J2g6Qc0EtBNgJgAmIEwQOkFgAmACzATABBET4E6g3iGlNUE/LMnBwuXznp5D9BPrfHc6XybIGCllSZev+s+ryWQikCG0zildSiqfqfBnQeWe1nuHd+Kgm3oqXzJHRvDGU1lSeZRmbrUQx47v4lGPf01lQeUgZq4JD2Cp4yfuFD1AcxzSZddQ1dAcPw3tK7oszaPhJ/W5xMDQGmd0uaBSdGh+QmueIxDeZYTTUOH7c05z1t7WHgkrkAiP4ZhjZelz6+hzgYHR/9OjDGOOQGQ6Kyp7rjlYA7ikrCYp2kECNPwtXWaWakHjfzH0YcEoELgm6vcDygab5qnRE571udgJWYdnb0I4g9JCwjiJhz1EQn0PPWPbNMC1o8/SMZ+t3zV6goVMxhO0DtkvK2nQ6B86rIOdsSkC0ZMdII4Ty/eNo+612EU8s5h72RMFletNIegiALzgJcI5RpyahFaT7ByK1tf83U4GR8EZ4uF7WWA4Cigh+CuEXQSAYbVXdmy79uIrJMCevvYPCi5s9zM5V6c+wZ8wLAXUw/lEVwFgll3Ul1Yxx+gJ2vQHLninTw7XpuBjQKcCamOPPO2iVf8aLWhGYWubAFe7DaYmByjSnNRI0273yAP2z45iPM3SNiLXyTBWEeN8T5jPO7ePxDmHPAVswnGMaYgJWLOUdlMQ4yy+KbSDKhDHIfKB93DXJQCN5fsChuOdVJGuAv8HfEJpAvvMSXhyUf9rZi4B4PcANq97LlUs/AnpdvzOoOzmaNCnkX10F4JT6jN0/MJE6TMB+466ReuzzbYJDB+42Qr6hdQ3KAG3IahU1NbnOA/F1HkKYEmnp5sXvzBUszPENs0V3GC1J2RvIe0X66vlc++eN8UUqKmRGJewzC/osk9rYCEvoXIX+H6whrij+hvkTeE9BvIrYfoHOfxZGqpZ7dscwjPqe44t044R0DqbLu22sAYBtybIlq6nAJu9s22+wEhV/9joFAjSapw3dIFuzHNN39oG2gxtBqWaN5AS1nSOBHpMQZtXUf1DIv/lAPL9sOUgQPs+NZRvkmNO411oIMh39BEYuerXji9HETkzqYI/FF1CHalXUuUPFsiHJkgAtAS7Nni0ql+qNDA+7rIZjH0jWFG51UKUA5fBoWCdKFobqkar+vVTy5tfIh0WnoXMI8P5JuZdALNpCgRGqvpbm1+gX44H1gScWymiBMBgCsbs9Se/3naNPaBP8JTyH6sB2qZgzKq/xBYiiC1i0+1S4WyrK/4QkhBiYh95YTuhzBBHb5lNDjikXvaZtu5BoJXUE60BGFb7mal+mwBM20cw7dEfuNSvrivxOqRkGody1N6zJAHIEFfkrYI6i3N0hs/xbMI+O9rHprTHUGH78MNRbf6sbmwC0GfCRYnXYyoTfkTaAQGVUv/CVxuVAGg7WqMfYv2GWL6if/ipn1P5ZnsvkeoE5gg7pknn9i0/jTb6FDjeeDZxv2jjnVlLoxMA/eaSfzzKHnyFOGJDvSkUiEdA+T81AhNR+NfB3y11D315+Dp/0PSLmN8m1aTfttlU4r1PqlvjFHieqbPGmbGj+7kcxG3w4l449uapPZXH1ESXPzSxXZJw46hxAAAAAElFTkSuQmCC":e.startsWith("urn:grn:authn:dk:nemid")?"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJIAAAAeCAYAAADHCUctAAAACXBIWXMAABYlAAAWJQFJUiTwAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAU5SURBVHgB7Vvtdds6DEVy+v9lg+pNkHSCsBPUnaDOBHEmsDJB+iawO0GyQZQJ7DdB1AnaTsDimkBFq7KoD8qOE91zcGhZImHRIHgJkCfEsNYaLi5Z8pOTk28UCdxuwsWdtHsTeNZw8YX64Zb15LRbx5SLT3L5EPldDRfXLGcsy5htV+i64OKR3DtcBZ7F75mxnMtvCyEX+Z9lXdefZUWp3cazKO8NdK42GnhuauPguqWOGcV5z7SibUMDwXuX5wbPLmw/rFi+WOcUduIduVEEZCywdFSAF7mi/eG993nC8pM6gEfPU83tcylzlrXoueMOyrjemjrCOu8wl8uvLIZcP8K7ZnR4XEiJd0ypvm8TkQuvhCxxk98VHj+trOlZ3iXLxEYcrba5RzKe3pQGgDcyF3K90lFtO3pgjFKpvxm5VXqGgG3nkfT3zakl5P2mXhvaX0n52VP/gq3tgdyoAuY24M5igfVm5EaL6k1peHwm550SlnvqhoXUz6W9VwXwIxbwvX+p+H8SlpV44j84rah/S65jMErvbSS+FAL/WOhN5XJwYxISqdO3aatPnjdy+bkxKT1SyP8Dg8rJ2caj72hOKypgDsXoQunP/4PjAMaUcXHj6TNN6lm3+tN+mfXhWMcEGSwfydnGxtH8uenNfZd+JXAk756hDmjKkSrqzW1kzlTHXfi7pdz7EZrOS7zoro2eWNgXR6pp0+fSc/2y0pDk3n3TDt6hsJMhSd15TGMKGNKZ1+GY/892tOE/99xWTywc2pCk3Ue1DVyfBp4Hh8jJubHBOqYKMs0ph5lXjf6IuuCq1WXXTecpFeT6I71t3EqJwWVqDUk62CekUQJ4TYEVg6d/NuQol/n/xtO19a5yrTG36Wsn1yEIv9SY1KeQR9IKGhJAAM/QHlEypunAxrSk7fDHZolri1QPkAYCn28JmZQmaEiA5Mm00sIOHBIQLpLKPDzZszHpu2r4Q/NawFKm3BEOuZRnjQxJgD8SriyhYnRGh0whIJHgKYZcMlm9BXhJTh1TKC2g3DBhWVHBi25ohI9cyqSxIZUCeNPYfEm8EEY+jBTeALEZ4+8awDSLKGtoJ0FfyLv6keoNGRfOOKLAL/3QxiMNnUKBERn5DB7y4ZBcRIKMMNic5eqtk+sd+EfKn60MSbCVQqEIkDiR5m5mL4WH8O/4Kh7wgUZUIZEyb21I5RRKpPiObmgDmf2PRhwLdPDnXTySun31GrM+IQGsyqiw7HFFdCSQlbuRy4dOhgTA7VMRErjvwZd0w9l65CFHhYn3+amzIQl0T8/eUygjDg5NI4GO5L0MKVIKRZfUe9n3NKI/ZHGUyOWGjvT1SFUplIt2LWxOKwDJvtMvI9pD/iP1RqnSkd6GBJRSKG13VYK4q1e6po7QgGbdNpAR/WDdhj4N+Wyli6IYkqBTCkWmR/1BE9th75EYjgY0ExoRFTJIMeuAB+u5va1TRtEMqbQNo1UKpbQC3Ow9aroKFFeLfJgf0BxTGREgGxNTcrlPnS1mVYcy31FEILHKirGchxFtTtjKrSZ7mrEChNs0Uh/eKeMSJ1bXvnGIkeHE7ISKWAbuz4Y84XrkQH9+DzyDlEciYmh7AZRRXarIFrikCBA3uLLbaMx97N/nqHzs+n5hw3utF/osDQj78rbazm13PEv985AeeCRMK0msBKl4jg/WGWZC7tx/47Zluwg825Sc19FTn+SVOTkvl7F8aziVwVNhhA2dgkH7iegbCmsq3r8WIMTWeaImZ/9zcp4d5dOrpAjcGe8hNOJF4jf9Ajp09a6TmAAAAABJRU5ErkJggg==":e.startsWith("urn:grn:authn:fi:bank-id")?"data:image/png;base64,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":e.startsWith("urn:grn:authn:fi")?"data:image/png;base64,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":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 W(e){return(0,t.jsx)("a",Object.assign({className:`criipto-verify-button ${e.className}`,href:e.href,onClick:e.onClick},{children:e.children}))}function x(e){return(0,t.jsx)("button",Object.assign({className:`criipto-verify-button ${e.className}`,type:"button",onClick:e.onClick},{children:e.children}))}const N=B();function V(e){var n,c,a,l,s;const{acrValue:u,standalone:g}=e,f=(0,i.useContext)(A),p=null!==(c=null!==(n=e.language)&&void 0!==n?n:f.uiLocales)&&void 0!==c?c:"en",v=null!==(l=null!==(a=e.action)&&void 0!==a?a:f.action)&&void 0!==l?l:"login",m=`criipto-eid-btn ${E=u,(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(" ")}${e.className?` ${e.className}`:""}`,[k,w]=(0,i.useState)(null),[C,U]=(0,i.useState)(e.href),S=e.redirectUri||f.redirectUri;var E;(0,i.useEffect)((()=>{if(e.href)return;let n,t=!0;return u.startsWith("urn:grn:authn:dk:mitid")&&N&&(n=`appswitch:${N} target:web`),f.buildAuthorizeUrl({redirectUri:S,acrValues:u,loginHint:n}).then((e=>{t&&U(e)})).catch(console.error),()=>{t=!1}}),[e.href,u,f.pkce,S]);const B=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:S}),e.popup){let t="function"==typeof e.popup?e.popup({acrValue:u,onHide:()=>w(null)}):!0===e.popup;!1!==t&&(n.preventDefault(),"boolean"==typeof t?f.loginWithPopup({acrValues:[u],redirectUri:S,backdrop:!0}):(w(t),f.loginWithPopup({acrValues:[u],redirectUri:S,backdrop:!1})))}e.onClick&&e.onClick(n)}},b=null!==(s=e.children)&&void 0!==s?s:(0,t.jsxs)(r().Fragment,{children:[d(p,v)?`${d(p,v)} `:"",h(p,u).title," ",g?null:(Q=h(p,u).subtitle,Q?Q.substring(0,1).toLowerCase()+Q.substr(1,Q.length):Q)]});var Q;if(!e.href&&"urn:grn:authn:se:bankid:same-device"===u)return(0,t.jsx)(I,Object.assign({redirectUri:e.redirectUri,href:C,className:m,logo:(0,t.jsx)(R,{acrValue:u,logo:e.logo})},{children:b}));const y=(0,t.jsxs)(r().Fragment,{children:[(0,t.jsx)(R,{acrValue:u,logo:e.logo}),b]});return C?(0,t.jsxs)(r().Fragment,{children:[(0,t.jsx)(W,Object.assign({},e,{href:C,className:m,onClick:B},{children:y})),k]}):(0,t.jsxs)(r().Fragment,{children:[(0,t.jsx)(x,Object.assign({},e,{className:m,onClick:B},{children:y})),k]})}function Y(e,n){const t=g(e),i=n.reduce(((e,n)=>e+(g(n)===t?1:0)),0);return 1===i}function M(e){var n,r;const{fetchOpenIDConfiguration:o,action:c,uiLocales:a}=(0,i.useContext)(A),l=e.language||a||"en",[s,u]=(0,i.useState)(null);(0,i.useEffect)((()=>{if(e.acrValues)return;let n=!0;return(()=>{var e,t,i,r;e=this,t=void 0,r=function*(){const e=yield o();n&&u(e)},new((i=void 0)||(i=Promise))((function(n,o){function c(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(c,a)}l((r=r.apply(e,t||[])).next())}))})(),()=>{n=!1}}),[e.acrValues]);const d=f(null!==(r=null!==(n=e.acrValues)&&void 0!==n?n:null==s?void 0:s.acr_values_supported)&&void 0!==r?r:[]);return(0,t.jsx)("div",Object.assign({className:"criipto-eid-selector"},{children:d.map((n=>(0,t.jsx)(V,{acrValue:n,onClick:e.onSelect?()=>e.onSelect(n):void 0,redirectUri:e.redirectUri,popup:e.popup,language:l,action:c,standalone:Y(n,d)},n)))}))}const P=e=>{const{children:n,margin:r,className:c}=e,a=(0,i.useRef)(null),{client:l,buildOptions:s,buildAuthorizeUrl:u,handleResponse:d,pkce:g,store:h}=(0,i.useContext)(A),[f,p]=(0,i.useState)((()=>Math.random().toString())),[v,m]=(0,i.useState)(!1),[k,w]=(0,i.useState)(!1),[C,U]=(0,i.useState)(null),[S,E]=(0,i.useState)(null),[B,b]=(0,i.useState)(void 0);(0,i.useEffect)((()=>{let e=!0;return l.fetchCriiptoConfiguration().then((n=>{e&&E(n)})),()=>{e=!1}}),[l]),(0,i.useEffect)((()=>{if(!S)return;let e=!0;return u().then((n=>{var t;if(!e)return;const i=(null!==(t=S.client.qr_intermediary_url)&&void 0!==t?t:S.qr_intermediary_url).replace("/{id}","").replace("{id}",""),r=new URL(n),o=new URLSearchParams(r.search);o.set("domain",r.hostname),r.hostname=new URL(i).hostname,r.pathname=new URL(i).pathname+"/authorize",r.search=o.toString(),b(r.toString())})),()=>{e=!1}}),[u,S]);const Q=(0,i.useCallback)((()=>{return e=void 0,n=void 0,i=function*(){var e;if(!S)return;const n=(null!==(e=S.client.qr_intermediary_url)&&void 0!==e?e:S.qr_intermediary_url).replace("/{id}","").replace("{id}",""),t=new URL(yield u()),i=new URLSearchParams(t.search);i.set("domain",t.hostname),t.hostname=new URL(n).hostname,t.pathname=new URL(n).pathname+"/authorize",t.search=i.toString(),g&&"code_verifier"in g&&(0,o.savePKCEState)(h,{response_type:"id_token",pkce_code_verifier:g.code_verifier,redirect_uri:i.get("redirect_uri")}),window.location.href=t.toString()},new((t=void 0)||(t=Promise))((function(r,o){function c(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(c,a)}l((i=i.apply(e,n||[])).next())}));var e,n,t,i}),[u,S]),y=(0,i.useCallback)((()=>l.qr.authorize(a.current,Object.assign(Object.assign({},s()),{margin:r}))),[l,s,r]);return(0,i.useEffect)((()=>{if(!a.current)return;if(C)return;const e=y();return e.onAcknowledged=()=>{m(!0)},e.then((n=>{e.cancelled||d(n,{pkce:g&&"code_verifier"in g?g:void 0})})).catch((n=>{n instanceof o.UserCancelledError?w(!0):e.cancelled||(U(n),d(n,{}))})),()=>{e.cancel()}}),[y,g,d,f,C]),n({qrElement:(0,t.jsx)("div",{ref:a,className:c}),isAcknowledged:v,isCancelled:k,isEnabled:null==S?void 0:S.client.qr_enabled,error:C,retry:()=>{m(!1),w(!1),U(null),p(Math.random().toString())},redirect:Q})};function H(){const{result:e,claims:n,loginWithRedirect:t,loginWithPopup:r,acrValues:o,isLoading:c,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:c,checkSession:l,logout:a}}var Z=n.AuthMethodButton,J=n.AuthMethodSelector,F=n.CriiptoVerifyProvider,z=n.OAuth2Error,K=n.QRCode,L=n.actions,T=n.filterAcrValues,q=n.useCriiptoVerify;export{Z as AuthMethodButton,J as AuthMethodSelector,F as CriiptoVerifyProvider,z as OAuth2Error,K as QRCode,L as actions,T as filterAcrValues,q as useCriiptoVerify};
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:()=>M,AuthMethodSelector:()=>H,CriiptoVerifyProvider:()=>B,OAuth2Error:()=>o.OAuth2Error,QRCode:()=>z,actions:()=>s,filterAcrValues:()=>p,useCriiptoVerify:()=>Y});const t=require("react/jsx-runtime"),i=require("react");var r=e.n(i);const o=require("@criipto/auth-js");var A=e.n(o);const s=["confirm","accept","approve","sign","login"],c=()=>{throw new Error("You forgot to wrap your component in <CriiptoVerifyProvider>.")},l={loginWithRedirect:c,loginWithPopup:c,checkSession:c,logout:c,fetchOpenIDConfiguration:c,buildAuthorizeUrl:c,generatePKCE:c,buildOptions:c,handleResponse:c,responseType:"token",completionStrategy:"client",result:null,claims:null,domain:"",action:"login",pkce:void 0,store:sessionStorage,isLoading:!1,client:null},a=(0,i.createContext)(l),u=(require("@criipto/auth-js/dist/index.css"),"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,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 g(e){return(e=e.replace("urn:grn:authn:","")).startsWith("fi")?"fi":e.startsWith("itsme")?"itsme":e.split(":").slice(0,2).join(":")}function f(e,n){const t=g(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{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 enheten"),"nb"===e&&(t="På denne enheten")),"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 p(e){let n=e.slice(),t=function(e){let n=null;return e.forEach((e=>{if(e.startsWith("urn:grn:authn:dk:mitid"))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"))).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 v=require("jwt-decode");var m=e.n(v),C=function(e,n,t,i){return new(t||(t=Promise))((function(r,o){function A(e){try{c(i.next(e))}catch(e){o(e)}}function s(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(A,s)}c((i=i.apply(e,n||[])).next())}))};const k="@criipto-verify-react/session",b=["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"];function I(e){const{options:n,action:t}=e,i=(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 r=(null==n?void 0:n.loginHint)?null==n?void 0:n.loginHint.split(" "):[];return t&&(r=r.filter((e=>!e.startsWith("action:"))),1===i.length?b.includes(i[0])&&r.push(`action:${t}`):i.length>=2?i.some((e=>b.includes(e)))&&r.push(`action:${t}`):r.push(`action:${t}`)),r.length?r.join(" "):void 0}const E=sessionStorage,B=e=>{var n,r;const c=e.redirectUri||window.location.href,l=(0,i.useMemo)((()=>new(A())({domain:e.domain,clientID:e.clientID,store:E,redirectUri:e.redirectUri})),[e.domain,e.clientID,e.redirectUri]),[u,d]=(0,i.useState)(null);(0,i.useEffect)((()=>{let e=!0;return C(void 0,void 0,void 0,(function*(){const n=yield l.fetchOpenIDConfiguration();e&&d(n)})),()=>{e=!1}}),[l]);const[h,g]=(0,i.useState)(null),f=(0,i.useMemo)((()=>h&&"id_token"in h?m()(h.id_token):null),[h]),[v,b]=(0,i.useState)(!1),[B,y]=(0,i.useState)(e.pkce),w=e.response||"token",j=e.completionStrategy||"client",Q=e.uiLocales,x=e.loginHint,O=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 s.includes(t)?t:void 0}(x))&&void 0!==r?r:"login",R=e.sessionStore,L=()=>{if(!e.pkce){if("token"!==w||"client"!==j)return(0,o.clearPKCEState)(E),void y(void 0);(0,o.clearPKCEState)(E),C(void 0,void 0,void 0,(function*(){const e=yield(0,o.generatePKCE)();y(e)}))}},D=(0,i.useCallback)((n=>{var t,i,r,o;return Object.assign(Object.assign({redirectUri:c,responseType:"code"},n||{}),{state:null!==(t=e.state)&&void 0!==t?t:null==n?void 0:n.state,prompt:null!==(i=e.prompt)&&void 0!==i?i:null==n?void 0:n.prompt,scope:null!==(r=e.scope)&&void 0!==r?r:null==n?void 0:n.scope,uiLocales:null!=Q?Q:null==n?void 0:n.uiLocales,pkce:null!==(o=null==n?void 0:n.pkce)&&void 0!==o?o:B,loginHint:I({options:n,action:O})})}),[B,e.state,e.prompt,e.scope,Q,O,c]),P=(0,i.useCallback)((e=>C(void 0,void 0,void 0,(function*(){return yield l.buildAuthorizeUrl(l.buildAuthorizeParams(D(e)))}))),[l,D]),T=(0,i.useCallback)(((e,n)=>C(void 0,void 0,void 0,(function*(){if(e instanceof Error)g(e);else if(n.pkce&&"token"===w){let t=n.redirectUri||c;if(!t)throw new Error("redirectUri must be configured globally or per authentication component");yield l.processResponse(e,{code_verifier:n.pkce.code_verifier,redirect_uri:t}).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==R||R.setItem(k,e.id_token)):g(null)})).catch((e=>{g(e)}))}else(null==e?void 0:e.code)?g({code:e.code}):(null==e?void 0:e.id_token)?(g({id_token:e.id_token}),null==R||R.setItem(k,e.id_token)):(null==e?void 0:e.error)?g(new o.OAuth2Error(e.error,e.error_description)):g(null);L()}))),[L,w,g,l,R]),S=(0,i.useCallback)((()=>C(void 0,void 0,void 0,(function*(){return l.checkSession({redirectUri:c}).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==R||R.setItem(k,e.id_token)):g(null)}))}))),[R,l,c]),U=(0,i.useCallback)((e=>C(void 0,void 0,void 0,(function*(){var n;null==R||R.removeItem(k),yield l.logout({redirectUri:null!==(n=null==e?void 0:e.redirectUri)&&void 0!==n?n:c})}))),[R,l]),N=(0,i.useMemo)((()=>({loginWithRedirect:e=>C(void 0,void 0,void 0,(function*(){yield l.redirect.authorize(D(e))})),loginWithPopup:e=>l.popup.authorize(D(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:S,logout:U,fetchOpenIDConfiguration:()=>l.fetchOpenIDConfiguration(),buildAuthorizeUrl:P,generatePKCE:()=>C(void 0,void 0,void 0,(function*(){if("token"===w&&"client"===j)return yield(0,o.generatePKCE)()})),buildOptions:D,handleResponse:T,responseType:w,completionStrategy:j,result:h,claims:f,domain:l.domain,redirectUri:c,action:O,pkce:B,store:E,isLoading:v,acrValues:u?p(u.acr_values_supported):void 0,client:l,uiLocales:Q})),[l,c,w,j,h,f,O,B,e.state,e.prompt,v,T,U,u,Q,S]);return(0,i.useEffect)((()=>{if(!l.redirect.hasMatch())return void L();let e=!0;b(!0);const n=(0,o.parseAuthorizeResponseFromLocation)(window.location);return n.code&&"code"===w?(b(!1),g({code:n.code}),void L()):(l.redirect.match().then((n=>{e&&(b(!1),(null==n?void 0:n.code)?g({code:n.code}):(null==n?void 0:n.id_token)?g({id_token:n.id_token}):g(null),L())})).catch((n=>{e&&(b(!1),g(n),L())})),()=>{e=!1})}),[e.pkce,w]),(0,i.useEffect)((()=>{if(R&&!f)if(f);else{const e=R.getItem(k);if(!e)return;g({id_token:e})}}),[R,f]),(0,i.useEffect)((()=>{if(!f)return;if(!R)return;const e=setInterval((()=>{const e=Date.now();if(f.exp<e/1e3)return g(null),void(null==R||R.removeItem(k))}),5e3);return()=>clearInterval(e)}),[R,f,h]),(0,i.useEffect)((()=>{if(!R)return;if(l.redirect.hasMatch())return;if(R.getItem(k))return;let e=!0;return b(!0),S().catch((e=>{console.error("session silent check error",e)})).finally((()=>{e&&b(!1)})),()=>{e=!1}}),[R,l,c]),(0,t.jsx)(a.Provider,Object.assign({value:N},{children:e.children}))};function y(e){return e.test(navigator.userAgent)}function w(){return y(/iPad|iPhone|iPod/)&&!window.MSStream?"ios":y(/Android/)?"android":null}function j(e){const{links:n,onError:t,onComplete:o,onInitiate:A}=e,[s,c]=(0,i.useState)(!1),{domain:l}=(0,i.useContext)(a);return(0,i.useEffect)((()=>{if(!s)return;let e=!0;const i=()=>{return r=this,A=void 0,c=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(`https://${l}${n}`))}{if(!e)return;const n=yield r.text();t(n)}}else setTimeout(i,1e3)},new((s=void 0)||(s=Promise))((function(e,n){function t(e){try{o(c.next(e))}catch(e){n(e)}}function i(e){try{o(c.throw(e))}catch(e){n(e)}}function o(n){var r;n.done?e(n.value):(r=n.value,r instanceof s?r:new s((function(e){e(r)}))).then(t,i)}o((c=c.apply(r,A||[])).next())}));var r,A,s,c};return setTimeout(i,1e3),()=>{e=!1}}),[s]),r().cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{A(),c(!0)}}))}function Q(e){const{links:n,onError:t,onComplete:o,onInitiate:A,onLog:s}=e,[c,l]=(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",A),()=>{document.removeEventListener("visibilitychange",A)})),n);const A=()=>{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*(){s("android","onForeground",c.toString()),c&&o(n.completeUrl)},new((i=void 0)||(i=Promise))((function(n,o){function A(e){try{c(r.next(e))}catch(e){o(e)}}function s(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(A,s)}c((r=r.apply(e,t||[])).next())}));var e,t,i,r}),[n,c]),r().cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{s("android","handleInitiate"),A(),l(!0)}}))}const x="@criipto/verify-react:sebankid:state",O=function(){const e=sessionStorage.getItem(x);if(e)return JSON.parse(e)}();function R(e){const{links:n,onError:t,onComplete:o,onInitiate:A,onLog:s,pkce:c,redirectUri:l}=e;return(0,i.useEffect)((()=>{O&&(sessionStorage.removeItem(x),o(O.links.completeUrl))}),[]),r().cloneElement(e.children,Object.assign(Object.assign({},e.children.props),{onClick:()=>{var e;s("iOS","handleInitiate"),e={links:n,redirectUri:l,pkce:c},sessionStorage.setItem(x,JSON.stringify(e)),A()}}))}var L=function(e,n,t,i){return new(t||(t=Promise))((function(r,o){function A(e){try{c(i.next(e))}catch(e){o(e)}}function s(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(A,s)}c((i=i.apply(e,n||[])).next())}))};const D=w();function P(e){var n,o;const[A,s]=(0,i.useState)(e.href),[c,l]=(0,i.useState)(null!==(n=null==O?void 0:O.links)&&void 0!==n?n:null),[u,d]=(0,i.useState)(null!==(o=null==O?void 0:O.pkce)&&void 0!==o?o:void 0),[h,g]=(0,i.useState)(null),[f,p]=(0,i.useState)([]),[v,m]=(0,i.useState)(!!O),{buildAuthorizeUrl:C,completionStrategy:k,generatePKCE:b,handleResponse:I,redirectUri:E}=(0,i.useContext)(a),B=e.redirectUri||E,y=(...e)=>{p((n=>n.concat([e])))},w=(0,i.useCallback)((n=>L(this,void 0,void 0,(function*(){const t={pkce:u};d(void 0),l(null),s(e.href);const i=yield fetch(n);if(i.status>=400)return void g(yield i.text());const{location:r}=yield i.json();if("openidprovider"===k)return void(window.location.href=r);const o=new URL(r),A=(c=o.searchParams,Array.from(c.keys()).reduce(((e,n)=>(e[n]=c.get(n),e)),{}));var c;yield I(A,{pkce:t.pkce,redirectUri:B})}))),[k,u]),x=(0,i.useCallback)((()=>L(this,void 0,void 0,(function*(){y("SEBankID: Refresh authorize url");const e=yield b();C({acrValues:"urn:grn:authn:se:bankid:same-device",loginHint:"appswitch:browser",responseMode:"json",pkce:e,redirectUri:B}).then((e=>fetch(e).then((e=>e.json())))).then((n=>{d(e||void 0),l(n);const t="ios"===D?encodeURIComponent(window.location.href):"null",i=`${D?n.launchLinks.universalLink:n.launchLinks.customFileHandlerUrl}&redirect=${t}`;y(window.location.href),y(i),s(i)})).catch(console.error)}))),[C,B]);(0,i.useEffect)((()=>{v||x()}),[x,v]),(0,i.useEffect)((()=>{if(v)return;const e=setInterval((()=>{v||x()}),25e3);return()=>clearInterval(e)}),[x,v]);const P=()=>{y("Initiated"),m(!0),g(null)},T=e=>{m(!1),g(e)},S=(0,t.jsxs)("a",Object.assign({className:`${e.className} ${v?"criipto-eid-btn--disabled":""}`,href:A,onClick:P},{children:[(0,t.jsx)("div",Object.assign({className:"criipto-eid-logo"},{children:v?(0,t.jsx)("div",{className:"criipto-eid-loader"}):e.logo})),e.children]}));return(0,t.jsxs)(r().Fragment,{children:[c?(0,t.jsx)(r().Fragment,{children:null===D?(0,t.jsx)(j,Object.assign({links:c,onError:T,onComplete:w,onInitiate:P,onLog:y},{children:S})):"android"===D?(0,t.jsx)(Q,Object.assign({links:c,onError:T,onComplete:w,onInitiate:P,onLog:y},{children:S})):"ios"===D?(0,t.jsx)(R,Object.assign({links:c,onError:T,onComplete:w,onInitiate:P,onLog:y,redirectUri:B,pkce:u},{children:S})):S}):S,h&&(0,t.jsx)("p",{children:h})]})}function T(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:S(e.acrValue)?(0,t.jsx)("img",{src:S(e.acrValue),alt:""}):(0,t.jsx)("span",{children:" "});return i?(0,t.jsx)("div",Object.assign({className:"criipto-eid-logo"},{children:i})):null}function S(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 U(e){return(0,t.jsx)("a",Object.assign({className:`criipto-verify-button ${e.className}`,href:e.href,onClick:e.onClick},{children:e.children}))}function N(e){return(0,t.jsx)("button",Object.assign({className:`criipto-verify-button ${e.className}`,type:"button",onClick:e.onClick},{children:e.children}))}const V=w();function M(e){var n,A,s,c,l;const{acrValue:u,standalone:d}=e,g=(0,i.useContext)(a),p=null!==(A=null!==(n=e.language)&&void 0!==n?n:g.uiLocales)&&void 0!==A?A:"en",v=null!==(c=null!==(s=e.action)&&void 0!==s?s:g.action)&&void 0!==c?c:"login",m=`criipto-eid-btn ${B=u,(B=B.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}`:""}`,[C,k]=(0,i.useState)(null),[b,I]=(0,i.useState)(e.href),E=e.redirectUri||g.redirectUri;var B;(0,i.useEffect)((()=>{if(e.href)return;let n,t=!0;return u.startsWith("urn:grn:authn:dk:mitid")&&V&&(n=`appswitch:${V} target:web`),g.buildAuthorizeUrl({redirectUri:E,acrValues:u,loginHint:n}).then((e=>{t&&I(e)})).catch(console.error),()=>{t=!1}}),[e.href,u,g.pkce,E]);const y=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 t="function"==typeof e.popup?e.popup({acrValue:u,onHide:()=>k(null)}):!0===e.popup;!1!==t&&(n.preventDefault(),"boolean"==typeof t?g.loginWithPopup({acrValues:[u],redirectUri:E,backdrop:!0}):(k(t),g.loginWithPopup({acrValues:[u],redirectUri:E,backdrop:!1})))}e.onClick&&e.onClick(n)}},w=null!==(l=e.children)&&void 0!==l?l:(0,t.jsxs)(r().Fragment,{children:[h(p,v)?`${h(p,v)} `:"",f(p,u).title," ",d?null:(j=f(p,u).subtitle,j?j.substring(0,1).toLowerCase()+j.substr(1,j.length):j)]});var j;if(!e.href&&"urn:grn:authn:se:bankid:same-device"===u)return(0,t.jsx)(P,Object.assign({redirectUri:e.redirectUri,href:b,className:m,logo:(0,t.jsx)(T,{acrValue:u,logo:e.logo})},{children:w}));const Q=(0,t.jsxs)(r().Fragment,{children:[(0,t.jsx)(T,{acrValue:u,logo:e.logo}),w]});return b?(0,t.jsxs)(r().Fragment,{children:[(0,t.jsx)(U,Object.assign({},e,{href:b,className:m,onClick:y},{children:Q})),C]}):(0,t.jsxs)(r().Fragment,{children:[(0,t.jsx)(N,Object.assign({},e,{className:m,onClick:y},{children:Q})),C]})}function W(e,n){const t=g(e),i=n.reduce(((e,n)=>e+(g(n)===t?1:0)),0);return 1===i}function H(e){var n,r;const{fetchOpenIDConfiguration:o,action:A,uiLocales:s}=(0,i.useContext)(a),c=e.language||s||"en",[l,u]=(0,i.useState)(null);(0,i.useEffect)((()=>{if(e.acrValues)return;let n=!0;return(()=>{var e,t,i,r;e=this,t=void 0,r=function*(){const e=yield o();n&&u(e)},new((i=void 0)||(i=Promise))((function(n,o){function A(e){try{c(r.next(e))}catch(e){o(e)}}function s(e){try{c(r.throw(e))}catch(e){o(e)}}function c(e){var t;e.done?n(e.value):(t=e.value,t instanceof i?t:new i((function(e){e(t)}))).then(A,s)}c((r=r.apply(e,t||[])).next())}))})(),()=>{n=!1}}),[e.acrValues]);const d=p(null!==(r=null!==(n=e.acrValues)&&void 0!==n?n:null==l?void 0:l.acr_values_supported)&&void 0!==r?r:[]);return(0,t.jsx)("div",Object.assign({className:"criipto-eid-selector"},{children:d.map((n=>(0,t.jsx)(M,{acrValue:n,onClick:e.onSelect?()=>e.onSelect(n):void 0,redirectUri:e.redirectUri,popup:e.popup,language:c,action:A,standalone:W(n,d)},n)))}))}const z=e=>{const{children:n,margin:r,className:A}=e,s=(0,i.useRef)(null),{client:c,buildOptions:l,buildAuthorizeUrl:u,handleResponse:d,pkce:h,store:g}=(0,i.useContext)(a),[f,p]=(0,i.useState)((()=>Math.random().toString())),[v,m]=(0,i.useState)(!1),[C,k]=(0,i.useState)(!1),[b,I]=(0,i.useState)(null),[E,B]=(0,i.useState)(null),[y,w]=(0,i.useState)(void 0);(0,i.useEffect)((()=>{let e=!0;return c.fetchCriiptoConfiguration().then((n=>{e&&B(n)})),()=>{e=!1}}),[c]),(0,i.useEffect)((()=>{if(!E)return;let e=!0;return u().then((n=>{var t;if(!e)return;const i=(null!==(t=E.client.qr_intermediary_url)&&void 0!==t?t:E.qr_intermediary_url).replace("/{id}","").replace("{id}",""),r=new URL(n),o=new URLSearchParams(r.search);o.set("domain",r.hostname),r.hostname=new URL(i).hostname,r.pathname=new URL(i).pathname+"/authorize",r.search=o.toString(),w(r.toString())})),()=>{e=!1}}),[u,E]);const j=(0,i.useCallback)((()=>{return e=void 0,n=void 0,i=function*(){var e;if(!E)return;const n=(null!==(e=E.client.qr_intermediary_url)&&void 0!==e?e:E.qr_intermediary_url).replace("/{id}","").replace("{id}",""),t=new URL(yield u()),i=new URLSearchParams(t.search);i.set("domain",t.hostname),t.hostname=new URL(n).hostname,t.pathname=new URL(n).pathname+"/authorize",t.search=i.toString(),h&&"code_verifier"in h&&(0,o.savePKCEState)(g,{response_type:"id_token",pkce_code_verifier:h.code_verifier,redirect_uri:i.get("redirect_uri")}),window.location.href=t.toString()},new((t=void 0)||(t=Promise))((function(r,o){function A(e){try{c(i.next(e))}catch(e){o(e)}}function s(e){try{c(i.throw(e))}catch(e){o(e)}}function c(e){var n;e.done?r(e.value):(n=e.value,n instanceof t?n:new t((function(e){e(n)}))).then(A,s)}c((i=i.apply(e,n||[])).next())}));var e,n,t,i}),[u,E]),Q=(0,i.useCallback)((()=>c.qr.authorize(s.current,Object.assign(Object.assign({},l()),{margin:r}))),[c,l,r]);return(0,i.useEffect)((()=>{if(!s.current)return;if(b)return;const e=Q();return e.onAcknowledged=()=>{m(!0)},e.then((n=>{e.cancelled||d(n,{pkce:h&&"code_verifier"in h?h:void 0})})).catch((n=>{n instanceof o.UserCancelledError?k(!0):e.cancelled||(I(n),d(n,{}))})),()=>{e.cancel()}}),[Q,h,d,f,b]),n({qrElement:(0,t.jsx)("div",{ref:s,className:A}),isAcknowledged:v,isCancelled:C,isEnabled:null==E?void 0:E.client.qr_enabled,error:b,retry:()=>{m(!1),k(!1),I(null),p(Math.random().toString())},redirect:j})};function Y(){const{result:e,claims:n,loginWithRedirect:t,loginWithPopup:r,acrValues:o,isLoading:A,logout:s,checkSession:c}=(0,i.useContext)(a);return{result:e,claims:n,error:e&&"error"in e?e:null,loginWithRedirect:t,loginWithPopup:r,acrValues:o,isLoading:A,checkSession:c,logout:s}}var X=n.AuthMethodButton,J=n.AuthMethodSelector,Z=n.CriiptoVerifyProvider,K=n.OAuth2Error,G=n.QRCode,F=n.actions,q=n.filterAcrValues,_=n.useCriiptoVerify;export{X as AuthMethodButton,J as AuthMethodSelector,Z as CriiptoVerifyProvider,K as OAuth2Error,G as QRCode,F as actions,q as filterAcrValues,_ as useCriiptoVerify};
2
2
  //# sourceMappingURL=criipto-verify-react.esm.js.map