@capitalos/react 1.3.0 → 1.3.2
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/_tsup-dts-rollup.d.mts +4 -9
- package/dist/_tsup-dts-rollup.d.ts +4 -9
- package/dist/esm/index.js +2 -2
- package/dist/esm/index.js.map +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
|
@@ -767,17 +767,13 @@ export declare type MakePaymentProps = CommonProps & {
|
|
|
767
767
|
/**
|
|
768
768
|
* Renders the CapitalOS Manage Bank Connections experience.
|
|
769
769
|
*/
|
|
770
|
-
export declare function ManageBankConnections({
|
|
770
|
+
export declare function ManageBankConnections({ onClose, ...restOfProps }: ManageBankConnectionsProps): JSX.Element;
|
|
771
771
|
|
|
772
772
|
export declare type ManageBankConnectionsProps = CommonProps & {
|
|
773
773
|
/**
|
|
774
|
-
* Callback to invoke when the user
|
|
774
|
+
* Callback to invoke when the user closes the bank connections management interface.
|
|
775
775
|
*/
|
|
776
|
-
|
|
777
|
-
/**
|
|
778
|
-
* Callback to invoke when the user has cancelled managing bank connections.
|
|
779
|
-
*/
|
|
780
|
-
onCancel: () => void;
|
|
776
|
+
onClose: () => void;
|
|
781
777
|
};
|
|
782
778
|
|
|
783
779
|
export declare function Mfa({ onDone, onCancel, mfaId, destination, codeLength, canResendAfter, operationName, ...restOfProps }: MfaProps): JSX.Element;
|
|
@@ -900,8 +896,7 @@ export declare type ParentFunctions = {
|
|
|
900
896
|
onDone?: () => void;
|
|
901
897
|
};
|
|
902
898
|
manageBankConnections?: {
|
|
903
|
-
|
|
904
|
-
onCancel?: () => void;
|
|
899
|
+
onClose?: () => void;
|
|
905
900
|
};
|
|
906
901
|
configureAutoPay?: {
|
|
907
902
|
onClose?: () => void;
|
|
@@ -767,17 +767,13 @@ export declare type MakePaymentProps = CommonProps & {
|
|
|
767
767
|
/**
|
|
768
768
|
* Renders the CapitalOS Manage Bank Connections experience.
|
|
769
769
|
*/
|
|
770
|
-
export declare function ManageBankConnections({
|
|
770
|
+
export declare function ManageBankConnections({ onClose, ...restOfProps }: ManageBankConnectionsProps): JSX.Element;
|
|
771
771
|
|
|
772
772
|
export declare type ManageBankConnectionsProps = CommonProps & {
|
|
773
773
|
/**
|
|
774
|
-
* Callback to invoke when the user
|
|
774
|
+
* Callback to invoke when the user closes the bank connections management interface.
|
|
775
775
|
*/
|
|
776
|
-
|
|
777
|
-
/**
|
|
778
|
-
* Callback to invoke when the user has cancelled managing bank connections.
|
|
779
|
-
*/
|
|
780
|
-
onCancel: () => void;
|
|
776
|
+
onClose: () => void;
|
|
781
777
|
};
|
|
782
778
|
|
|
783
779
|
export declare function Mfa({ onDone, onCancel, mfaId, destination, codeLength, canResendAfter, operationName, ...restOfProps }: MfaProps): JSX.Element;
|
|
@@ -900,8 +896,7 @@ export declare type ParentFunctions = {
|
|
|
900
896
|
onDone?: () => void;
|
|
901
897
|
};
|
|
902
898
|
manageBankConnections?: {
|
|
903
|
-
|
|
904
|
-
onCancel?: () => void;
|
|
899
|
+
onClose?: () => void;
|
|
905
900
|
};
|
|
906
901
|
configureAutoPay?: {
|
|
907
902
|
onClose?: () => void;
|
package/dist/esm/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
"use client";var be=Object.defineProperty,ke=Object.defineProperties;var Te=Object.getOwnPropertyDescriptors;var U=Object.getOwnPropertySymbols;var te=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable;var oe=(e,n,o)=>n in e?be(e,n,{enumerable:!0,configurable:!0,writable:!0,value:o}):e[n]=o,c=(e,n)=>{for(var o in n||(n={}))te.call(n,o)&&oe(e,o,n[o]);if(U)for(var o of U(n))re.call(n,o)&&oe(e,o,n[o]);return e},d=(e,n)=>ke(e,Te(n));var h=(e,n)=>{var o={};for(var t in e)te.call(e,t)&&n.indexOf(t)<0&&(o[t]=e[t]);if(e!=null&&U)for(var t of U(e))n.indexOf(t)<0&&re.call(e,t)&&(o[t]=e[t]);return o};var L=(e,n,o)=>new Promise((t,r)=>{var i=l=>{try{a(o.next(l))}catch(m){r(m)}},s=l=>{try{a(o.throw(l))}catch(m){r(m)}},a=l=>l.done?t(l.value):Promise.resolve(l.value).then(i,s);a((o=o.apply(e,n)).next())});import f,{useMemo as g,useContext as dn}from"react";import B from"react";import z,{createContext as en,useContext as nn,useState as H,useMemo as xe,useCallback as S,useEffect as on}from"react";import je,{useMemo as Ve,useRef as $e}from"react";var y=class extends Error{constructor({message:n,code:o}){super(n),this.name="CapitalOSError",this.code=o}},b={unauthorized:"unauthorized",invalid_account_status:"invalid_account_status",unsupported_entry_point:"unsupported_entry_point",internal_error:"internal_error"},D=class extends y{constructor(n){super({message:`Invalid token ${n!=null?n:""}`,code:b.unauthorized}),this.name="CapitalOSInvalidTokenError"}};import{connectToChild as De}from"penpal";import{useCallback as we,useEffect as J,useMemo as ae,useRef as W,useState as ce}from"react";var ie="1.3.0";function Ae(e){let n=JSON.stringify(e),o=btoa(n);return encodeURIComponent(o)}function K(e){try{let n=decodeURIComponent(e),o=atob(n);return JSON.parse(o)}catch(n){throw new D}}function Le(e){try{return decodeURIComponent(e)}catch(n){return e}}function se({tokenData:e,renderingContext:n,theme:o,onError:t}){try{let r=n?d(c({},n),{referer:window.location.href}):null,i=r?Ae(r):null,s=new URL(e.baseUrl),a=Le(e.token);return e.paramLocation==="search"?s.searchParams.set(e.paramKey,a):e.paramLocation==="hash"&&(s.hash=e.paramKey+"="+encodeURIComponent(a)),s.searchParams.set("sdkVersion",ie),i&&s.searchParams.set("renderingContext",i),o&&s.searchParams.set("theme",o),s.toString()}catch(r){t==null||t(new D);return}}function q(e){let o=K(e).path;if(!o||typeof o!="string")throw new D;return{token:e,tokenType:"oneTime",baseUrl:o,paramKey:"token",paramLocation:"search"}}var Se=1e4;function X({iframeRef:e,token:n,onError:o,methods:t}){let[r,i]=ce(null);return J(()=>{if(!e.current)return;let s=De({iframe:e.current,childOrigin:"*",debug:!0,timeout:Se,methods:t});return s.promise.then(()=>{i(s)}).catch(a=>{o==null||o(a),i(null)}),()=>{s.destroy(),i(null)}},[n,e]),r}function Z({tokenData:e,renderingContext:n,theme:o,onError:t}){let r=W(t),i=W(n);return ae(()=>{if(e)return se({tokenData:e,renderingContext:i.current,theme:o,onError:r.current})},[e,o,r,i])}function j(e){let{oneTimeToken:n,enableLogging:o,onError:t,renderingContext:r,theme:i,methods:s}=e,{tokenData:a,error:l,invalidateToken:m}=G(),{log:C,warn:P}=w(o),[v,k]=ce(!1),T=W(null);Re(l,t);let E=ae(()=>n?q(n):a,[n,a]),I=we(()=>{if(C("Token expired, invalidating..."),n){t==null||t(new y({message:"Token expired. Cannot automatically refresh when using token prop.",code:b.unauthorized}));return}m(),k(!1)},[n,m,C,t]);J(()=>{n&&a&&P("token was provided both from provider and from the token prop. the prop will take precedence")},[n,a,P]);let x=Z({tokenData:E,renderingContext:r,theme:i,onError:t}),u=X({iframeRef:T,token:E==null?void 0:E.token,onError:A=>{t==null||t(A),k(!0)},methods:c({onLoad:()=>{k(!0)},onError:A=>{let ve=new y(A);t==null||t(ve)},onTokenExpired:I},s)});return{isLoaded:v,url:x,tokenData:E,iframeRef:T,connection:u}}function Re(e,n){let o=W(!1);J(()=>{e&&!o.current&&(n==null||n(e),o.current=!0)},[e,n])}import{iframeResizer as Fe}from"iframe-resizer";import ze,{forwardRef as He,useEffect as Be,useImperativeHandle as Ne,useRef as _e}from"react";var M=He((e,n)=>{let o=e.title||"iframe",{iframeHTMLAttributes:t,resizerOptions:r}=We(e),i=_e(null);return Be(()=>{let s=i.current;return Fe(c({},r),s),()=>s.iFrameResizer&&s.iFrameResizer.removeListeners()}),Ne(n,()=>i.current),ze.createElement("iframe",d(c({},t),{title:o,ref:i}))});M.displayName="IframeResizer";var Ue=["autoResize","bodyBackground","bodyMargin","bodyPadding","checkOrigin","inPageLinks","heightCalculationMethod","interval","log","maxHeight","maxWidth","minHeight","minWidth","resizeFrom","scrolling","sizeHeight","sizeWidth","warningTimeout","tolerance","widthCalculationMethod","onClosed","onInit","onMessage","onResized","onScroll"],qe=new Set(Ue);function We(e){return Object.keys(e).reduce((o,t)=>{let r=e[t];return qe.has(t)?r!==void 0&&(o.resizerOptions[t]=e[t]):o.iframeHTMLAttributes[t]=e[t],o},{resizerOptions:{},iframeHTMLAttributes:{}})}function de(e){let{oneTimeToken:n,enableLogging:o,onExchangeComplete:t,onExchangeError:r}=e,i=R(o),s=$e(null),a=Ve(()=>q(n),[n]),m=Z({tokenData:a,onError:r,renderingContext:{entryPoint:"tokenExchange"}});return X({iframeRef:s,token:n,onError:r,methods:{onLoad:()=>{},onError:C=>{r==null||r(new y(C))},tokenExchange:{onLongLivedToken:t}}}),je.createElement(M,{src:m,checkOrigin:!1,style:{display:"none"},log:i,ref:s})}var Q={enableLogging:!1},Y="[CapitalOS] ",V={log:(e,n=Q)=>{n.enableLogging&&console.log(`${Y}${e}`)},warn:(e,n=Q)=>{n.enableLogging&&console.warn(`${Y}${e}`)},error:(e,n=Q)=>{n.enableLogging&&console.error(`${Y}${e}`)}};import F,{createContext as Ge,useState as Qe,useMemo as ge,useCallback as Ye}from"react";import Ke from"react";import{useMemo as Je}from"react";function le(l){var m=l,{onDone:e,onCancel:n,mfaId:o,destination:t,codeLength:r,canResendAfter:i,operationName:s}=m,a=h(m,["onDone","onCancel","mfaId","destination","codeLength","canResendAfter","operationName"]);let C="mfa",P=Je(()=>({entryPoint:C,mfaId:o,destination:t,codeLength:r,canResendAfter:i,operationName:s}),[C,o,t,r,i,s]);return Ke.createElement(p,d(c({},a),{renderingContext:P,methods:{mfa:{onDone:e,onCancel:n}}}))}import pe,{useEffect as Xe}from"react";var ue={backdrop:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.4)",backdropFilter:"blur(2px)",zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",padding:"20px"},container:{backgroundColor:"white",borderRadius:"8px",boxShadow:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -2px rgb(0 0 0 / 0.05)",maxWidth:"600px",width:"100%",maxHeight:"90vh",overflow:"hidden",position:"relative"}};function me({onClose:e,children:n,ariaLabel:o="Modal dialog"}){Xe(()=>{let r=i=>{i.key==="Escape"&&e()};return document.addEventListener("keydown",r),()=>{document.removeEventListener("keydown",r)}},[e]);let t=r=>{r.target===r.currentTarget&&e()};return pe.createElement("div",{style:ue.backdrop,onClick:t,role:"dialog","aria-modal":"true","aria-label":o},pe.createElement("div",{style:ue.container},n))}import{useState as Ze,useCallback as $}from"react";function fe(){var m;let[e,n]=Ze(null),{log:o}=w(),t=$(C=>(o("MFA requested"),new Promise((P,v)=>{n({context:C,resolve:P,reject:v})})),[o]),r=$(()=>{e&&(o("MFA completed successfully"),e.resolve({success:!0,canceled:!1,data:void 0}),n(null))},[e,o]),i=$(()=>{e&&(o("MFA canceled"),e.resolve({success:!1,canceled:!0}),n(null))},[e,o]),s=$(C=>{e&&(o("MFA error: "+C.message),e.resolve({success:!1,canceled:!1,error:C}),n(null))},[e,o]),a=!!e,l=(m=e==null?void 0:e.context)!=null?m:null;return{activeMfaRequest:e,isMfaActive:a,mfaContext:l,requestMfa:t,handleMfaDone:r,handleMfaCancel:i,handleMfaError:s}}var ee=Ge(null);function Ce({children:e}){let[n,o]=Qe(null),{log:t}=w(),{requestMfa:r,handleMfaDone:i,handleMfaCancel:s,isMfaActive:a,mfaContext:l}=fe(),m=Ye(x=>L(this,null,function*(){let u=yield r(x);return u.success?{success:!0}:u.canceled?{success:!1,canceled:!0}:{success:!1,error:u.error.message}}),[r]),C=ge(()=>n?{freezeCard:x=>L(this,null,function*(){try{let u=yield n.freezeCard(x);return u.success?{success:!0,canceled:!1,data:u.data}:u.canceled?{success:!1,canceled:!0}:{success:!1,canceled:!1,error:new y({code:b.internal_error,message:u.error})}}catch(u){return{success:!1,canceled:!1,error:new y({code:b.internal_error,message:u instanceof Error?u.message:"Communication error with iframe"})}}}),unfreezeCard:x=>L(this,null,function*(){try{let u=yield n.unfreezeCard(x);return u.success?{success:!0,canceled:!1,data:u.data}:u.canceled?{success:!1,canceled:!0}:{success:!1,canceled:!1,error:new y({code:b.internal_error,message:u.error})}}catch(u){return{success:!1,canceled:!1,error:new y({code:b.internal_error,message:u instanceof Error?u.message:"Communication error with iframe"})}}})}:null,[n]),P=ge(()=>({"system-messages":{requestMfa:m},mfa:{onDone:i,onCancel:s}}),[m,i,s]),{isLoaded:v,url:k,connection:T,iframeRef:E}=j({renderingContext:{entryPoint:"actions"},methods:P});F.useEffect(()=>{let x=!0;return T&&T.promise.then(u=>{x&&(o(u),t("Actions iframe child functions loaded"))}),()=>{x=!1}},[T,t]);let I=!v||!n;return F.createElement(ee.Provider,{value:{childFunctions:n,actions:C,isLoading:I}},e,k&&F.createElement(M,{src:k,style:{display:"none"},checkOrigin:!1,ref:E}),a&&l&&F.createElement(me,{onClose:s,ariaLabel:"Multi-factor authentication"},F.createElement(le,d(c({mfaId:l.mfaId,destination:l.destination,codeLength:l.codeLength,canResendAfter:l.canResendAfter},l.operationName&&{operationName:l.operationName}),{onDone:i,onCancel:s}))))}var he=en({isLoading:!1,invalidateToken:()=>{},enableLogging:!1}),tn=({getToken:e,enableLogging:n,children:o})=>{let[t,r]=H(void 0),[i,s]=H(void 0),[a,l]=H(void 0),[m,C]=H(!1),[P,v]=H(void 0),k=S(()=>L(void 0,null,function*(){C(!0);try{let x=yield e();r(x),v(void 0);let u=K(x),A=new URL(u.path);A.pathname="",s(A.toString())}catch(x){v(x)}finally{C(!1)}}),[e]),T=S(()=>{l(void 0)},[]);on(()=>{a||k()},[a,k]);let E=S(x=>{l(x),r(void 0),v(void 0)},[]),I=xe(()=>{if(a&&!i)throw new y({message:"baseUrl is required for long lived tokens",code:b.unauthorized});return{tokenData:a?{token:a,tokenType:"longLived",baseUrl:i,paramKey:"access_token",paramLocation:"hash"}:void 0,isLoading:m,error:P,invalidateToken:T,enableLogging:n!=null?n:!1}},[a,m,P,T,i,n]);return z.createElement(z.Fragment,null,z.createElement(he.Provider,{value:I},z.createElement(Ce,null,o)),t&&!a&&z.createElement(de,{oneTimeToken:t,onExchangeComplete:E,enableLogging:n,onExchangeError:v}))},G=()=>nn(he);function R(e){let{enableLogging:n}=G();return e!==void 0?e:n}function w(e){let n=R(e),o=S(i=>{V.log(i,{enableLogging:n})},[n]),t=S(i=>{V.warn(i,{enableLogging:n})},[n]),r=S(i=>{V.error(i,{enableLogging:n})},[n]);return xe(()=>({log:o,warn:t,error:r}),[o,t,r])}function p(e){let{token:n,className:o,enableLogging:t,onError:r,loadingComponent:i,renderingContext:s,methods:a,theme:l,sizeWidth:m}=e,C=R(t),{isLoaded:P,url:v,tokenData:k,iframeRef:T}=j({oneTimeToken:n,enableLogging:C,onError:r,renderingContext:s,theme:l,methods:a});if(!k||!v)return B.createElement(B.Fragment,null,i||null);let E=s.entryPoint!=="insightsWidget";return B.createElement(B.Fragment,null,!P&&i,B.createElement(M,{src:v,allow:"clipboard-write",checkOrigin:!1,style:{width:"1px",height:"0px",minWidth:"100%"},className:o,log:C,ref:T,hidden:!P,onResized:I=>{if(!E)return;let x=`${parseInt(I.height)+12}px`;I.iframe.style.height=x},sizeWidth:m}))}import _,{useMemo as rn}from"react";import{useState as sn}from"react";import O,{useState as ye}from"react";var N={bugButton:{position:"fixed",left:"12px",bottom:"12px",margin:"12px",padding:"4px",display:"inline-flex",alignItems:"center",borderRadius:"9999px",border:"1px solid transparent",backgroundColor:"#2563eb",color:"white",opacity:.4,boxShadow:"0 1px 3px 0 rgb(0 0 0 / 0.1)",cursor:"pointer",zIndex:50,transition:"opacity 0.3s ease-in-out"},bugButtonHover:{backgroundColor:"#1d4ed8",opacity:1},bugButtonFocus:{outline:"none",boxShadow:"0 0 0 2px white, 0 0 0 4px #3b82f6"},bugIcon:{width:"20px",height:"20px"},loadingButton:{cursor:"default",opacity:1,animation:"pulse 1s cubic-bezier(0.4, 0, 0.6, 1) infinite"}},Pe=()=>O.createElement("svg",{style:N.bugIcon,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:"1.5",stroke:"currentColor"},O.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 12.75c1.148 0 2.278.08 3.383.237 1.037.146 1.866.966 1.866 2.013 0 3.728-2.35 6.75-5.25 6.75S6.75 18.728 6.75 15c0-1.046.83-1.867 1.866-2.013A24.204 24.204 0 0 1 12 12.75Zm0 0c2.883 0 5.647.508 8.207 1.44a23.91 23.91 0 0 1-1.152 6.06M12 12.75c-2.883 0-5.647.508-8.208 1.44.125 2.104.52 4.136 1.153 6.06M12 12.75a2.25 2.25 0 0 0 2.248-2.354M12 12.75a2.25 2.25 0 0 1-2.248-2.354M12 8.25c.995 0 1.971-.08 2.922-.236.403-.066.74-.358.795-.762a3.778 3.778 0 0 0-.399-2.25M12 8.25c-.995 0-1.97-.08-2.922-.236-.402-.066-.74-.358-.795-.762a3.734 3.734 0 0 1 .4-2.253M12 8.25a2.25 2.25 0 0 0-2.248 2.146M12 8.25a2.25 2.25 0 0 1 2.248 2.146M8.683 5a6.032 6.032 0 0 1-1.155-1.002c.07-.63.27-1.222.574-1.747m.581 2.749A3.75 3.75 0 0 1 15.318 5m0 0c.427-.283.815-.62 1.155-.999a4.471 4.471 0 0 0-.575-1.752M4.921 6a24.048 24.048 0 0 0-.392 3.314c1.668.546 3.416.914 5.223 1.082M19.08 6c.205 1.08.337 2.187.392 3.314a23.882 23.882 0 0 1-5.223 1.082"}));function ne({onClick:e,isLoading:n=!1}){let[o,t]=ye(!1),[r,i]=ye(!1),s=c(c(c(c({},N.bugButton),n&&N.loadingButton),!n&&o&&N.bugButtonHover),!n&&r&&N.bugButtonFocus);return n?O.createElement("div",{style:s},O.createElement("style",null,`
|
|
1
|
+
"use client";var ke=Object.defineProperty,be=Object.defineProperties;var Te=Object.getOwnPropertyDescriptors;var U=Object.getOwnPropertySymbols;var oe=Object.prototype.hasOwnProperty,re=Object.prototype.propertyIsEnumerable;var te=(e,n,t)=>n in e?ke(e,n,{enumerable:!0,configurable:!0,writable:!0,value:t}):e[n]=t,c=(e,n)=>{for(var t in n||(n={}))oe.call(n,t)&&te(e,t,n[t]);if(U)for(var t of U(n))re.call(n,t)&&te(e,t,n[t]);return e},d=(e,n)=>be(e,Te(n));var h=(e,n)=>{var t={};for(var o in e)oe.call(e,o)&&n.indexOf(o)<0&&(t[o]=e[o]);if(e!=null&&U)for(var o of U(e))n.indexOf(o)<0&&re.call(e,o)&&(t[o]=e[o]);return t};var L=(e,n,t)=>new Promise((o,r)=>{var i=l=>{try{a(t.next(l))}catch(m){r(m)}},s=l=>{try{a(t.throw(l))}catch(m){r(m)}},a=l=>l.done?o(l.value):Promise.resolve(l.value).then(i,s);a((t=t.apply(e,n)).next())});import f,{useMemo as g,useContext as dn}from"react";import B from"react";import z,{createContext as en,useContext as nn,useState as H,useMemo as xe,useCallback as S,useEffect as tn}from"react";import je,{useMemo as Ve,useRef as $e}from"react";var y=class extends Error{constructor({message:n,code:t}){super(n),this.name="CapitalOSError",this.code=t}},k={unauthorized:"unauthorized",invalid_account_status:"invalid_account_status",unsupported_entry_point:"unsupported_entry_point",internal_error:"internal_error"},D=class extends y{constructor(n){super({message:`Invalid token ${n!=null?n:""}`,code:k.unauthorized}),this.name="CapitalOSInvalidTokenError"}};import{connectToChild as De}from"penpal";import{useCallback as we,useEffect as J,useMemo as ae,useRef as W,useState as ce}from"react";var ie="1.3.2";function Ae(e){let n=JSON.stringify(e),t=btoa(n);return encodeURIComponent(t)}function K(e){try{let n=decodeURIComponent(e),t=atob(n);return JSON.parse(t)}catch(n){throw new D}}function Le(e){try{return decodeURIComponent(e)}catch(n){return e}}function se({tokenData:e,renderingContext:n,theme:t,onError:o}){try{let r=n?d(c({},n),{referer:window.location.href}):null,i=r?Ae(r):null,s=new URL(e.baseUrl),a=Le(e.token);return e.paramLocation==="search"?s.searchParams.set(e.paramKey,a):e.paramLocation==="hash"&&(s.hash=e.paramKey+"="+encodeURIComponent(a)),s.searchParams.set("sdkVersion",ie),i&&s.searchParams.set("renderingContext",i),t&&s.searchParams.set("theme",t),s.toString()}catch(r){o==null||o(new D);return}}function q(e){let t=K(e).path;if(!t||typeof t!="string")throw new D;return{token:e,tokenType:"oneTime",baseUrl:t,paramKey:"token",paramLocation:"search"}}var Se=1e4;function X({iframeRef:e,token:n,onError:t,methods:o}){let[r,i]=ce(null);return J(()=>{if(!e.current)return;let s=De({iframe:e.current,childOrigin:"*",debug:!0,timeout:Se,methods:o});return s.promise.then(()=>{i(s)}).catch(a=>{t==null||t(a),i(null)}),()=>{s.destroy(),i(null)}},[n,e]),r}function Z({tokenData:e,renderingContext:n,theme:t,onError:o}){let r=W(o),i=W(n);return ae(()=>{if(e)return se({tokenData:e,renderingContext:i.current,theme:t,onError:r.current})},[e,t,r,i])}function j(e){let{oneTimeToken:n,enableLogging:t,onError:o,renderingContext:r,theme:i,methods:s}=e,{tokenData:a,error:l,invalidateToken:m}=G(),{log:C,warn:P}=w(t),[v,b]=ce(!1),T=W(null);Re(l,o);let E=ae(()=>n?q(n):a,[n,a]),I=we(()=>{if(C("Token expired, invalidating..."),n){o==null||o(new y({message:"Token expired. Cannot automatically refresh when using token prop.",code:k.unauthorized}));return}m(),b(!1)},[n,m,C,o]);J(()=>{n&&a&&P("token was provided both from provider and from the token prop. the prop will take precedence")},[n,a,P]);let x=Z({tokenData:E,renderingContext:r,theme:i,onError:o}),u=X({iframeRef:T,token:E==null?void 0:E.token,onError:A=>{o==null||o(A),b(!0)},methods:c({onLoad:()=>{b(!0)},onError:A=>{let ve=new y(A);o==null||o(ve)},onTokenExpired:I},s)});return{isLoaded:v,url:x,tokenData:E,iframeRef:T,connection:u}}function Re(e,n){let t=W(!1);J(()=>{e&&!t.current&&(n==null||n(e),t.current=!0)},[e,n])}import{iframeResizer as Fe}from"iframe-resizer";import ze,{forwardRef as He,useEffect as Be,useImperativeHandle as Ne,useRef as _e}from"react";var M=He((e,n)=>{let t=e.title||"iframe",{iframeHTMLAttributes:o,resizerOptions:r}=We(e),i=_e(null);return Be(()=>{let s=i.current;return Fe(c({},r),s),()=>s.iFrameResizer&&s.iFrameResizer.removeListeners()}),Ne(n,()=>i.current),ze.createElement("iframe",d(c({},o),{title:t,ref:i}))});M.displayName="IframeResizer";var Ue=["autoResize","bodyBackground","bodyMargin","bodyPadding","checkOrigin","inPageLinks","heightCalculationMethod","interval","log","maxHeight","maxWidth","minHeight","minWidth","resizeFrom","scrolling","sizeHeight","sizeWidth","warningTimeout","tolerance","widthCalculationMethod","onClosed","onInit","onMessage","onResized","onScroll"],qe=new Set(Ue);function We(e){return Object.keys(e).reduce((t,o)=>{let r=e[o];return qe.has(o)?r!==void 0&&(t.resizerOptions[o]=e[o]):t.iframeHTMLAttributes[o]=e[o],t},{resizerOptions:{},iframeHTMLAttributes:{}})}function de(e){let{oneTimeToken:n,enableLogging:t,onExchangeComplete:o,onExchangeError:r}=e,i=R(t),s=$e(null),a=Ve(()=>q(n),[n]),m=Z({tokenData:a,onError:r,renderingContext:{entryPoint:"tokenExchange"}});return X({iframeRef:s,token:n,onError:r,methods:{onLoad:()=>{},onError:C=>{r==null||r(new y(C))},tokenExchange:{onLongLivedToken:o}}}),je.createElement(M,{src:m,checkOrigin:!1,style:{display:"none"},log:i,ref:s})}var Q={enableLogging:!1},Y="[CapitalOS] ",V={log:(e,n=Q)=>{n.enableLogging&&console.log(`${Y}${e}`)},warn:(e,n=Q)=>{n.enableLogging&&console.warn(`${Y}${e}`)},error:(e,n=Q)=>{n.enableLogging&&console.error(`${Y}${e}`)}};import F,{createContext as Ge,useState as Qe,useMemo as ge,useCallback as Ye}from"react";import Ke from"react";import{useMemo as Je}from"react";function le(l){var m=l,{onDone:e,onCancel:n,mfaId:t,destination:o,codeLength:r,canResendAfter:i,operationName:s}=m,a=h(m,["onDone","onCancel","mfaId","destination","codeLength","canResendAfter","operationName"]);let C="mfa",P=Je(()=>({entryPoint:C,mfaId:t,destination:o,codeLength:r,canResendAfter:i,operationName:s}),[C,t,o,r,i,s]);return Ke.createElement(p,d(c({},a),{renderingContext:P,methods:{mfa:{onDone:e,onCancel:n}}}))}import pe,{useEffect as Xe}from"react";var ue={backdrop:{position:"fixed",top:0,left:0,right:0,bottom:0,backgroundColor:"rgba(0, 0, 0, 0.4)",backdropFilter:"blur(2px)",zIndex:1e3,display:"flex",alignItems:"center",justifyContent:"center",padding:"20px"},container:{backgroundColor:"white",borderRadius:"8px",boxShadow:"0 10px 15px -3px rgb(0 0 0 / 0.1), 0 4px 6px -2px rgb(0 0 0 / 0.05)",maxWidth:"600px",width:"100%",maxHeight:"90vh",overflow:"hidden",position:"relative"}};function me({onClose:e,children:n,ariaLabel:t="Modal dialog"}){Xe(()=>{let r=i=>{i.key==="Escape"&&e()};return document.addEventListener("keydown",r),()=>{document.removeEventListener("keydown",r)}},[e]);let o=r=>{r.target===r.currentTarget&&e()};return pe.createElement("div",{style:ue.backdrop,onClick:o,role:"dialog","aria-modal":"true","aria-label":t},pe.createElement("div",{style:ue.container},n))}import{useState as Ze,useCallback as $}from"react";function fe(){var m;let[e,n]=Ze(null),{log:t}=w(),o=$(C=>(t("MFA requested"),new Promise((P,v)=>{n({context:C,resolve:P,reject:v})})),[t]),r=$(()=>{e&&(t("MFA completed successfully"),e.resolve({success:!0,canceled:!1,data:void 0}),n(null))},[e,t]),i=$(()=>{e&&(t("MFA canceled"),e.resolve({success:!1,canceled:!0}),n(null))},[e,t]),s=$(C=>{e&&(t("MFA error: "+C.message),e.resolve({success:!1,canceled:!1,error:C}),n(null))},[e,t]),a=!!e,l=(m=e==null?void 0:e.context)!=null?m:null;return{activeMfaRequest:e,isMfaActive:a,mfaContext:l,requestMfa:o,handleMfaDone:r,handleMfaCancel:i,handleMfaError:s}}var ee=Ge(null);function Ce({children:e}){let[n,t]=Qe(null),{log:o}=w(),{requestMfa:r,handleMfaDone:i,handleMfaCancel:s,isMfaActive:a,mfaContext:l}=fe(),m=Ye(x=>L(this,null,function*(){let u=yield r(x);return u.success?{success:!0}:u.canceled?{success:!1,canceled:!0}:{success:!1,error:u.error.message}}),[r]),C=ge(()=>n?{freezeCard:x=>L(this,null,function*(){try{let u=yield n.freezeCard(x);return u.success?{success:!0,canceled:!1,data:u.data}:u.canceled?{success:!1,canceled:!0}:{success:!1,canceled:!1,error:new y({code:k.internal_error,message:u.error})}}catch(u){return{success:!1,canceled:!1,error:new y({code:k.internal_error,message:u instanceof Error?u.message:"Communication error with iframe"})}}}),unfreezeCard:x=>L(this,null,function*(){try{let u=yield n.unfreezeCard(x);return u.success?{success:!0,canceled:!1,data:u.data}:u.canceled?{success:!1,canceled:!0}:{success:!1,canceled:!1,error:new y({code:k.internal_error,message:u.error})}}catch(u){return{success:!1,canceled:!1,error:new y({code:k.internal_error,message:u instanceof Error?u.message:"Communication error with iframe"})}}})}:null,[n]),P=ge(()=>({"system-messages":{requestMfa:m},mfa:{onDone:i,onCancel:s}}),[m,i,s]),{isLoaded:v,url:b,connection:T,iframeRef:E}=j({renderingContext:{entryPoint:"actions"},methods:P});F.useEffect(()=>{let x=!0;return T&&T.promise.then(u=>{x&&(t(u),o("Actions iframe child functions loaded"))}),()=>{x=!1}},[T,o]);let I=!v||!n;return F.createElement(ee.Provider,{value:{childFunctions:n,actions:C,isLoading:I}},e,b&&F.createElement(M,{src:b,style:{display:"none"},checkOrigin:!1,ref:E}),a&&l&&F.createElement(me,{onClose:s,ariaLabel:"Multi-factor authentication"},F.createElement(le,d(c({mfaId:l.mfaId,destination:l.destination,codeLength:l.codeLength,canResendAfter:l.canResendAfter},l.operationName&&{operationName:l.operationName}),{onDone:i,onCancel:s}))))}var he=en({isLoading:!1,invalidateToken:()=>{},enableLogging:!1}),on=({getToken:e,enableLogging:n,children:t})=>{let[o,r]=H(void 0),[i,s]=H(void 0),[a,l]=H(void 0),[m,C]=H(!1),[P,v]=H(void 0),b=S(()=>L(void 0,null,function*(){C(!0);try{let x=yield e();r(x),v(void 0);let u=K(x),A=new URL(u.path);A.pathname="",s(A.toString())}catch(x){v(x)}finally{C(!1)}}),[e]),T=S(()=>{l(void 0)},[]);tn(()=>{a||b()},[a,b]);let E=S(x=>{l(x),r(void 0),v(void 0)},[]),I=xe(()=>{if(a&&!i)throw new y({message:"baseUrl is required for long lived tokens",code:k.unauthorized});return{tokenData:a?{token:a,tokenType:"longLived",baseUrl:i,paramKey:"access_token",paramLocation:"hash"}:void 0,isLoading:m,error:P,invalidateToken:T,enableLogging:n!=null?n:!1}},[a,m,P,T,i,n]);return z.createElement(z.Fragment,null,z.createElement(he.Provider,{value:I},z.createElement(Ce,null,t)),o&&!a&&z.createElement(de,{oneTimeToken:o,onExchangeComplete:E,enableLogging:n,onExchangeError:v}))},G=()=>nn(he);function R(e){let{enableLogging:n}=G();return e!==void 0?e:n}function w(e){let n=R(e),t=S(i=>{V.log(i,{enableLogging:n})},[n]),o=S(i=>{V.warn(i,{enableLogging:n})},[n]),r=S(i=>{V.error(i,{enableLogging:n})},[n]);return xe(()=>({log:t,warn:o,error:r}),[t,o,r])}function p(e){let{token:n,className:t,enableLogging:o,onError:r,loadingComponent:i,renderingContext:s,methods:a,theme:l,sizeWidth:m}=e,C=R(o),{isLoaded:P,url:v,tokenData:b,iframeRef:T}=j({oneTimeToken:n,enableLogging:C,onError:r,renderingContext:s,theme:l,methods:a});if(!b||!v)return B.createElement(B.Fragment,null,i||null);let E=s.entryPoint!=="insightsWidget";return B.createElement(B.Fragment,null,!P&&i,B.createElement(M,{src:v,allow:"clipboard-write",checkOrigin:!1,style:{width:"1px",height:"0px",minWidth:"100%"},className:t,log:C,ref:T,hidden:!P,onResized:I=>{if(!E)return;let x=`${parseInt(I.height)+12}px`;I.iframe.style.height=x},sizeWidth:m}))}import _,{useMemo as rn}from"react";import{useState as sn}from"react";import O,{useState as ye}from"react";var N={bugButton:{position:"fixed",left:"12px",bottom:"12px",margin:"12px",padding:"4px",display:"inline-flex",alignItems:"center",borderRadius:"9999px",border:"1px solid transparent",backgroundColor:"#2563eb",color:"white",opacity:.4,boxShadow:"0 1px 3px 0 rgb(0 0 0 / 0.1)",cursor:"pointer",zIndex:50,transition:"opacity 0.3s ease-in-out"},bugButtonHover:{backgroundColor:"#1d4ed8",opacity:1},bugButtonFocus:{outline:"none",boxShadow:"0 0 0 2px white, 0 0 0 4px #3b82f6"},bugIcon:{width:"20px",height:"20px"},loadingButton:{cursor:"default",opacity:1,animation:"pulse 1s cubic-bezier(0.4, 0, 0.6, 1) infinite"}},Pe=()=>O.createElement("svg",{style:N.bugIcon,xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24",strokeWidth:"1.5",stroke:"currentColor"},O.createElement("path",{strokeLinecap:"round",strokeLinejoin:"round",d:"M12 12.75c1.148 0 2.278.08 3.383.237 1.037.146 1.866.966 1.866 2.013 0 3.728-2.35 6.75-5.25 6.75S6.75 18.728 6.75 15c0-1.046.83-1.867 1.866-2.013A24.204 24.204 0 0 1 12 12.75Zm0 0c2.883 0 5.647.508 8.207 1.44a23.91 23.91 0 0 1-1.152 6.06M12 12.75c-2.883 0-5.647.508-8.208 1.44.125 2.104.52 4.136 1.153 6.06M12 12.75a2.25 2.25 0 0 0 2.248-2.354M12 12.75a2.25 2.25 0 0 1-2.248-2.354M12 8.25c.995 0 1.971-.08 2.922-.236.403-.066.74-.358.795-.762a3.778 3.778 0 0 0-.399-2.25M12 8.25c-.995 0-1.97-.08-2.922-.236-.402-.066-.74-.358-.795-.762a3.734 3.734 0 0 1 .4-2.253M12 8.25a2.25 2.25 0 0 0-2.248 2.146M12 8.25a2.25 2.25 0 0 1 2.248 2.146M8.683 5a6.032 6.032 0 0 1-1.155-1.002c.07-.63.27-1.222.574-1.747m.581 2.749A3.75 3.75 0 0 1 15.318 5m0 0c.427-.283.815-.62 1.155-.999a4.471 4.471 0 0 0-.575-1.752M4.921 6a24.048 24.048 0 0 0-.392 3.314c1.668.546 3.416.914 5.223 1.082M19.08 6c.205 1.08.337 2.187.392 3.314a23.882 23.882 0 0 1-5.223 1.082"}));function ne({onClick:e,isLoading:n=!1}){let[t,o]=ye(!1),[r,i]=ye(!1),s=c(c(c(c({},N.bugButton),n&&N.loadingButton),!n&&t&&N.bugButtonHover),!n&&r&&N.bugButtonFocus);return n?O.createElement("div",{style:s},O.createElement("style",null,`
|
|
2
2
|
@keyframes pulse {
|
|
3
3
|
0%, 100% {
|
|
4
4
|
opacity: 1;
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
opacity: 0.4;
|
|
8
8
|
}
|
|
9
9
|
}
|
|
10
|
-
`),O.createElement(Pe,null)):O.createElement("button",{id:"dev-tools-button",onClick:e,type:"button",style:s,onMouseEnter:()=>
|
|
10
|
+
`),O.createElement(Pe,null)):O.createElement("button",{id:"dev-tools-button",onClick:e,type:"button",style:s,onMouseEnter:()=>o(!0),onMouseLeave:()=>o(!1),onFocus:()=>i(!0),onBlur:()=>i(!1)},O.createElement(Pe,null))}var an={panel:{position:"fixed",bottom:"20px",left:"20px",zIndex:50}};function cn(e){let n="devTools",t=rn(()=>({entryPoint:n}),[n]),[o,r]=sn(!1);return _.createElement("aside",{"aria-label":"CapitalOS dev tools"},!o&&_.createElement(ne,{onClick:()=>r(!o)}),o&&_.createElement("div",{style:an.panel},_.createElement(p,d(c({},e),{renderingContext:t,methods:{devTools:{onClose:()=>r(!1)}},enableLogging:!0,sizeWidth:!0,loadingComponent:_.createElement(ne,{isLoading:!0})}))))}function ln(e){let n="cardsApp",t=g(()=>({entryPoint:n}),[n]);return f.createElement(p,d(c({},e),{renderingContext:t}))}var Xt=ln;function Zt(r){var i=r,{cardholder:e,onDone:n,onCancel:t}=i,o=h(i,["cardholder","onDone","onCancel"]);let s="createCard",a=g(()=>({entryPoint:s,cardholder:e}),[e]);return f.createElement(p,d(c({},o),{renderingContext:a,methods:{createCard:{onDone:n,onCancel:t}}}))}function Gt(r){var i=r,{transactionId:e,onDone:n,onCancel:t}=i,o=h(i,["transactionId","onDone","onCancel"]);let s="createDispute",a=g(()=>({entryPoint:s,transactionId:e}),[e]);return f.createElement(p,d(c({},o),{renderingContext:a,methods:{createDispute:{onDone:n,onCancel:t}}}))}function Qt(e){let n="billPayApp",t=g(()=>({entryPoint:n}),[n]);return f.createElement(p,d(c({},e),{renderingContext:t}))}function Yt(e){let s=e,{onCardCanceled:n,onHideSensitiveDetails:t}=s,o=h(s,["onCardCanceled","onHideSensitiveDetails"]),r="cardDetails",i=g(()=>({entryPoint:r,cardId:e.cardId,cardOnly:e.cardOnly,backOnly:e.backOnly,hideAddress:e.hideAddress}),[r,e.cardId,e.cardOnly,e.backOnly,e.hideAddress]);return f.createElement(p,d(c({},o),{renderingContext:i,methods:{cardDetails:{onCardCanceled:n!=null?n:()=>{},onHideSensitiveDetails:t!=null?t:()=>{}}}}))}function eo(e){let n="accountDetails",t=g(()=>({entryPoint:n}),[n]);return f.createElement(p,d(c({},e),{renderingContext:t}))}function no(e){let n="accountActions",t=g(()=>({entryPoint:n}),[n]);return f.createElement(p,d(c({},e),{renderingContext:t}))}function to(t){var o=t,{onClose:e}=o,n=h(o,["onClose"]);let r="manageBankConnections",i=g(()=>({entryPoint:r}),[r]);return f.createElement(p,d(c({},n),{renderingContext:i,methods:{manageBankConnections:{onClose:e}}}))}function oo(t){var o=t,{onClose:e}=o,n=h(o,["onClose"]);let r="configureAutoPay",i=g(()=>({entryPoint:r}),[r]);return f.createElement(p,d(c({},n),{renderingContext:i,methods:{configureAutoPay:{onClose:e}}}))}function ro(t){var o=t,{onClose:e}=o,n=h(o,["onClose"]);let r="policySettings",i=g(()=>({entryPoint:r}),[r]);return f.createElement(p,d(c({},n),{renderingContext:i,methods:{policySettings:{onClose:e}}}))}function io(o){var r=o,{cardId:e,onClose:n}=r,t=h(r,["cardId","onClose"]);let i="connectToVendors",s=g(()=>({entryPoint:i,cardId:e}),[i,e]);return f.createElement(p,d(c({},t),{renderingContext:s,methods:{connectToVendors:{onClose:n}}}))}function so(e){let n="insightsDashboard",t=g(()=>({entryPoint:n}),[n]);return f.createElement(p,d(c({},e),{renderingContext:t}))}function ao(e){let n="insightsWidget",{widget:t,hideTitle:o,height:r,width:i}=e,s=g(()=>({entryPoint:n,widget:t,hideTitle:o,height:r,width:i}),[n,t,o,r,i]);return f.createElement(p,d(c({},e),{renderingContext:s}))}function co(r){var i=r,{onDone:e,entryPoint:n,exitPoint:t}=i,o=h(i,["onDone","entryPoint","exitPoint"]);let s="onboarding",a=g(()=>({entryPoint:s,onboardingEntryPoint:n,onboardingExitPoint:t}),[s,n,t]);return f.createElement(p,d(c({},o),{renderingContext:a,methods:{onboarding:{onDone:e}}}))}function lo(t){var o=t,{onDone:e}=o,n=h(o,["onDone"]);let r="makePayment",i=g(()=>({entryPoint:r}),[r]);return f.createElement(p,d(c({},n),{renderingContext:i,methods:{makePayment:{onDone:e}}}))}function po(o){var r=o,{onDone:e,onCancel:n}=r,t=h(r,["onDone","onCancel"]);let i="contactSupport",s=g(()=>({entryPoint:i}),[i]);return f.createElement(p,d(c({},t),{renderingContext:s,methods:{contactSupport:{onDone:e,onCancel:n}}}))}function uo(t){var o=t,{onDone:e}=o,n=h(o,["onDone"]);let r="statements",i=g(()=>({entryPoint:r}),[r]);return f.createElement(p,d(c({},n),{renderingContext:i,methods:{statements:{onDone:e}}}))}function mo(t){var o=t,{onDone:e}=o,n=h(o,["onDone"]);let r="legalDocuments",i=g(()=>({entryPoint:r}),[r]);return f.createElement(p,d(c({},n),{renderingContext:i,methods:{legalDocuments:{onDone:e}}}))}function fo(r){var i=r,{cardId:e,onDone:n,onClose:t}=i,o=h(i,["cardId","onDone","onClose"]);let s="replaceCard",a=g(()=>({entryPoint:s,cardId:e}),[e]);return f.createElement(p,d(c({},o),{renderingContext:a,methods:{replaceCard:{onDone:n,onClose:t}}}))}function go(r){var i=r,{cardId:e,onDone:n,onClose:t}=i,o=h(i,["cardId","onDone","onClose"]);let s="terminateCard",a=g(()=>({entryPoint:s,cardId:e}),[e]);return f.createElement(p,d(c({},o),{renderingContext:a,methods:{terminateCard:{onDone:n,onClose:t}}}))}function Co(e){let n="transactions",t=g(()=>({entryPoint:n}),[n]);return f.createElement(p,d(c({},e),{renderingContext:t}))}function xo(){let e=dn(ee);if(!e)throw new y({message:"useActions must be used within a CapitalOsAuthenticationProvider",code:k.internal_error});let{childFunctions:n,isLoading:t}=e;return{actions:n,isLoading:t}}export{no as AccountActions,eo as AccountDetails,Xt as App,Qt as BillPayApp,on as CapitalOsAuthenticationProvider,Yt as CardDetails,ln as CardsApp,oo as ConfigureAutoPay,io as ConnectToVendors,po as ContactSupport,cn as DevTools,Gt as DisputeTransaction,so as InsightsDashboard,ao as InsightsWidget,Zt as IssueCard,mo as LegalDocuments,lo as MakePayment,to as ManageBankConnections,co as Onboarding,ro as PolicySettings,fo as ReplaceCard,uo as Statements,go as TerminateCard,Co as Transactions,xo as useActions};
|
|
11
11
|
//# sourceMappingURL=index.js.map
|