Socket
Socket
Sign inDemoInstall

@mxenabled/web-widget-sdk

Package Overview
Dependencies
1
Maintainers
22
Versions
13
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

Comparing version 0.0.10 to 0.0.11

32

dist/amd/index.js

@@ -198,3 +198,3 @@ define(['exports'], (function (exports) { 'use strict';

const sdkVersion = "0.0.10";
const sdkVersion = "0.0.11";

@@ -299,2 +299,3 @@ // This is an internal error. Thrown when we are decoding a post message's

Type["ConnectUpdateCredentials"] = "mx/connect/updateCredentials";
Type["ConnectBackToSearch"] = "mx/connect/backToSearch";
Type["PulseOverdraftWarningCtaTransferFunds"] = "mx/pulse/overdraftWarning/cta/transferFunds";

@@ -338,2 +339,4 @@ Type["AccountCreated"] = "mx/account/created";

"mx/connect/updatecredentials": Type.ConnectUpdateCredentials,
[Type.ConnectBackToSearch]: Type.ConnectBackToSearch,
"mx/connect/backtosearch": Type.ConnectBackToSearch,
[Type.PulseOverdraftWarningCtaTransferFunds]: Type.PulseOverdraftWarningCtaTransferFunds,

@@ -392,3 +395,3 @@ "mx/pulse/overdraftwarning/cta/transferfunds": Type.PulseOverdraftWarningCtaTransferFunds,

assertMessageProp(metadata, "mx/connect/loaded", "session_guid", "string");
assertMessageProp(metadata, "mx/connect/loaded", "initial_step", ["search", "selectMember", "enterCreds", "mfa", "connected", "loginError", "disclosure"]);
assertMessageProp(metadata, "mx/connect/loaded", "initial_step", "string");
return {

@@ -546,2 +549,12 @@ type,

};
case Type.ConnectBackToSearch:
assertMessageProp(metadata, "mx/connect/backToSearch", "user_guid", "string");
assertMessageProp(metadata, "mx/connect/backToSearch", "session_guid", "string");
assertMessageProp(metadata, "mx/connect/backToSearch", "context", "string");
return {
type,
user_guid: metadata.user_guid,
session_guid: metadata.session_guid,
context: metadata.context,
};
case Type.PulseOverdraftWarningCtaTransferFunds:

@@ -610,5 +623,6 @@ assertMessageProp(metadata, "mx/pulse/overdraftWarning/cta/transferFunds", "account_guid", "string");

function dispatchWidgetPostMessageEvent(event, callbacks) {
let payload;
try {
dispatchOnMessage(event, callbacks);
const payload = buildPayloadFromPostMessageEventData(event.data);
payload = buildPayloadFromPostMessageEventData(event.data);
dispatchWidgetInternalMessage(payload, callbacks);

@@ -619,2 +633,3 @@ }

}
return payload;
}

@@ -650,5 +665,6 @@ /**

function dispatchConnectPostMessageEvent(event, callbacks) {
let payload;
try {
dispatchOnMessage(event, callbacks);
const payload = buildPayloadFromPostMessageEventData(event.data);
payload = buildPayloadFromPostMessageEventData(event.data);
dispatchConnectInternalMessage(payload, callbacks);

@@ -659,2 +675,3 @@ }

}
return payload;
}

@@ -723,2 +740,5 @@ /**

break;
case Type.ConnectBackToSearch:
callbacks.onBackToSearch?.(payload);
break;
default:

@@ -733,5 +753,6 @@ throw new PostMessageUnknownTypeError(payload.type);

function dispatchPulsePostMessageEvent(event, callbacks) {
let payload;
try {
dispatchOnMessage(event, callbacks);
const payload = buildPayloadFromPostMessageEventData(event.data);
payload = buildPayloadFromPostMessageEventData(event.data);
dispatchPulseInternalMessage(payload, callbacks);

@@ -742,2 +763,3 @@ }

}
return payload;
}

@@ -744,0 +766,0 @@ /**

2

dist/amd/index.min.js

@@ -1,1 +0,1 @@

define(["exports"],(function(e){"use strict";function t(e){return"clientId"in e&&"string"==typeof e.clientId&&"apiKey"in e&&"string"==typeof e.apiKey&&"userGuid"in e&&"string"==typeof e.userGuid&&"environment"in e&&"string"==typeof e.environment}class n extends Error{constructor(){super("Missing required widget props!\n\nComponent needs one of the following groups of props:\n\n - url\n\n - or -\n\n - proxy\n\n - or -\n\n - apiKey\n - clientId\n - environment\n - userGuid"),Object.setPrototypeOf(this,n.prototype)}}class i extends Error{constructor(e){super(`Request failed: ${e}`),this.statusCode=e,Object.setPrototypeOf(this,i.prototype)}}var s;!function(e){e.SAND="sand",e.QA="qa",e.INT="integration",e.PROD="production"}(s||(s={}));const r={[s.SAND]:s.SAND,[s.QA]:s.QA,[s.INT]:s.INT,[s.PROD]:s.PROD};const o={[s.SAND]:"https://api.sand.internal.mx",[s.QA]:"https://api.qa.internal.mx",[s.INT]:"https://int-api.mx.com",[s.PROD]:"https://api.mx.com"};function c(e){const t=function(e){const t=r[e];if(!t)throw new Error(`Invalid MX environment: ${e}`);return t}(e),n=o[t];if(!n)throw new Error(`Missing host for MX environment: ${e}`);return n}var a;function u(e){return{client_redirect_url:e.clientRedirectUrl,color_scheme:e.colorScheme,current_institution_code:e.currentInstitutionCode,current_institution_guid:e.currentInstitutionGuid,current_member_guid:e.currentMemberGuid,disable_institution_search:e.disableInstitutionSearch,include_transactions:e.includeTransactions,is_mobile_webview:e.isMobileWebview||!1,mode:e.mode,oauth_referral_source:e.oauthReferralSource,ui_message_version:e.uiMessageVersion||4,ui_message_webview_url_scheme:e.uiMessageWebviewUrlScheme,update_credentials:e.updateCredentials,widget_type:e.widgetType}}function d(e){return e.widget_url.url}function g(e){const i=function(e){if(function(e){return"proxy"in e&&"string"==typeof e.proxy}(e))return function(e){return e.proxy}(e);if(t(e))return function(e){const t=c(e.environment),n=e.userGuid;return`${t}/users/${n}/widget_urls`}(e);throw new n}(e),s=function(e){const n={Accept:"application/vnd.mx.api.v1+json","Content-Type":"application/json"};e.language&&(n["Accept-Language"]=e.language);if(t(e)){const{apiKey:t,clientId:i}=e,s=btoa(`${i}:${t}`);n.Authorization=`Basic ${s}`}const i="cors",s="POST",r=JSON.stringify({widget_url:u(e)});return{method:s,headers:n,body:r,mode:i}}(e);return{url:i,options:s}}function m(e){return e}function p(e){if(!e.ok)throw new i(e.status);return e.json()}function l(e){console.error(e)}!function(e){e.AccountsWidget="accounts_widget",e.BudgetsWidget="budgets_widget",e.ConnectWidget="connect_widget",e.ConnectionsWidget="connections_widget",e.DebtsWidget="debts_widget",e.FinstrongWidget="finstrong_widget",e.GoalsWidget="goals_widget",e.HelpWidget="help_widget",e.MasterWidget="master_widget",e.MiniBudgetsWidget="mini_budgets_widget",e.MiniFinstrongWidget="mini_finstrong_widget",e.MiniPulseCarouselWidget="mini_pulse_carousel_widget",e.MiniSpendingWidget="mini_spending_widget",e.PulseWidget="pulse_widget",e.SettingsWidget="settings_widget",e.SpendingWidget="spending_widget",e.TransactionsWidget="transactions_widget",e.TrendsWidget="trends_widget"}(a||(a={}));class _ extends Error{messageType;field;expectedType;gotValue;constructor(e,t,n,i){super(`Unable to decode '${t}' from '${e}'`),this.messageType=e,this.field=t,this.expectedType=n,this.gotValue=i,Object.setPrototypeOf(this,_.prototype)}}class C extends Error{postMessageType;constructor(e){super(`Unknown post message: ${e}`),this.postMessageType=e,Object.setPrototypeOf(this,C.prototype)}}function h(e,t,n,i,s={}){const r=e[n],o=void 0!==r,c="string"==typeof r,a="number"==typeof r,u="object"==typeof r&&!Array.isArray(r),d="boolean"==typeof r,g="string"===i,m="number"===i,p=i instanceof Array,l="object"==typeof i&&!Array.isArray(i),C="boolean"===i;if(o||!s.optional){if(!o)throw new _(t,n,i,r);if(g&&!c)throw new _(t,n,i,r);if(m&&!a)throw new _(t,n,i,r);if(!(!p||c&&i.includes(r)))throw new _(t,n,i,r);if(l&&!u)throw new _(t,n,i,r);if(C&&!d)throw new _(t,n,i,r);l&&u&&Object.keys(i).forEach((e=>{h(r,t,e,i[e])}))}}var b;!function(e){e.Load="mx/load",e.Ping="mx/ping",e.Navigation="mx/navigation",e.FocusTrap="mx/focusTrap",e.ClientOAuthComplete="mx/client/oauthComplete",e.ConnectLoaded="mx/connect/loaded",e.ConnectEnterCredentials="mx/connect/enterCredentials",e.ConnectInstitutionSearch="mx/connect/institutionSearch",e.ConnectSelectedInstitution="mx/connect/selectedInstitution",e.ConnectMemberConnected="mx/connect/memberConnected",e.ConnectConnectedPrimaryAction="mx/connect/connected/primaryAction",e.ConnectMemberDeleted="mx/connect/memberDeleted",e.ConnectCreateMemberError="mx/connect/createMemberError",e.ConnectMemberStatusUpdate="mx/connect/memberStatusUpdate",e.ConnectOAuthError="mx/connect/oauthError",e.ConnectOAuthRequested="mx/connect/oauthRequested",e.ConnectStepChange="mx/connect/stepChange",e.ConnectSubmitMFA="mx/connect/submitMFA",e.ConnectUpdateCredentials="mx/connect/updateCredentials",e.PulseOverdraftWarningCtaTransferFunds="mx/pulse/overdraftWarning/cta/transferFunds",e.AccountCreated="mx/account/created"}(b||(b={}));const f={[b.Load]:b.Load,[b.Ping]:b.Ping,[b.Navigation]:b.Navigation,[b.FocusTrap]:b.FocusTrap,"mx/focustrap":b.FocusTrap,[b.ClientOAuthComplete]:b.ClientOAuthComplete,"mx/client/oauthcomplete":b.ClientOAuthComplete,[b.ConnectLoaded]:b.ConnectLoaded,[b.ConnectEnterCredentials]:b.ConnectEnterCredentials,"mx/connect/entercredentials":b.ConnectEnterCredentials,[b.ConnectInstitutionSearch]:b.ConnectInstitutionSearch,"mx/connect/institutionsearch":b.ConnectInstitutionSearch,[b.ConnectSelectedInstitution]:b.ConnectSelectedInstitution,"mx/connect/selectedinstitution":b.ConnectSelectedInstitution,[b.ConnectMemberConnected]:b.ConnectMemberConnected,"mx/connect/memberconnected":b.ConnectMemberConnected,[b.ConnectConnectedPrimaryAction]:b.ConnectConnectedPrimaryAction,"mx/connect/connected/primaryaction":b.ConnectConnectedPrimaryAction,[b.ConnectMemberDeleted]:b.ConnectMemberDeleted,"mx/connect/memberdeleted":b.ConnectMemberDeleted,[b.ConnectCreateMemberError]:b.ConnectCreateMemberError,"mx/connect/createmembererror":b.ConnectCreateMemberError,[b.ConnectMemberStatusUpdate]:b.ConnectMemberStatusUpdate,"mx/connect/memberstatusupdate":b.ConnectMemberStatusUpdate,[b.ConnectOAuthError]:b.ConnectOAuthError,"mx/connect/oautherror":b.ConnectOAuthError,[b.ConnectOAuthRequested]:b.ConnectOAuthRequested,"mx/connect/oauthrequested":b.ConnectOAuthRequested,[b.ConnectStepChange]:b.ConnectStepChange,"mx/connect/stepchange":b.ConnectStepChange,[b.ConnectSubmitMFA]:b.ConnectSubmitMFA,"mx/connect/submitmfa":b.ConnectSubmitMFA,[b.ConnectUpdateCredentials]:b.ConnectUpdateCredentials,"mx/connect/updatecredentials":b.ConnectUpdateCredentials,[b.PulseOverdraftWarningCtaTransferFunds]:b.PulseOverdraftWarningCtaTransferFunds,"mx/pulse/overdraftwarning/cta/transferfunds":b.PulseOverdraftWarningCtaTransferFunds,[b.AccountCreated]:b.AccountCreated};function x(e){const t=e.type||"type not provided";let n;if(!t||!(t in f))throw new C(t);n=f[t];const i=function(e,t){switch(e){case b.Load:return{type:e};case b.Ping:return h(t,"mx/ping","user_guid","string"),h(t,"mx/ping","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case b.Navigation:return h(t,"mx/navigation","user_guid","string"),h(t,"mx/navigation","session_guid","string"),h(t,"mx/navigation","did_go_back","boolean"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,did_go_back:t.did_go_back};case b.FocusTrap:return h(t,"mx/focusTrap","user_guid","string"),h(t,"mx/focusTrap","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case b.ClientOAuthComplete:return h(t,"mx/client/oauthComplete","url","string"),{type:e,url:t.url};case b.ConnectLoaded:return h(t,"mx/connect/loaded","user_guid","string"),h(t,"mx/connect/loaded","session_guid","string"),h(t,"mx/connect/loaded","initial_step",["search","selectMember","enterCreds","mfa","connected","loginError","disclosure"]),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,initial_step:t.initial_step};case b.ConnectEnterCredentials:return h(t,"mx/connect/enterCredentials","user_guid","string"),h(t,"mx/connect/enterCredentials","session_guid","string"),h(t,"mx/connect/enterCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution:t.institution};case b.ConnectInstitutionSearch:return h(t,"mx/connect/institutionSearch","user_guid","string"),h(t,"mx/connect/institutionSearch","session_guid","string"),h(t,"mx/connect/institutionSearch","query","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,query:t.query};case b.ConnectSelectedInstitution:return h(t,"mx/connect/selectedInstitution","user_guid","string"),h(t,"mx/connect/selectedInstitution","session_guid","string"),h(t,"mx/connect/selectedInstitution","code","string"),h(t,"mx/connect/selectedInstitution","guid","string"),h(t,"mx/connect/selectedInstitution","name","string"),h(t,"mx/connect/selectedInstitution","url","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,code:t.code,guid:t.guid,name:t.name,url:t.url};case b.ConnectMemberConnected:return h(t,"mx/connect/memberConnected","user_guid","string"),h(t,"mx/connect/memberConnected","session_guid","string"),h(t,"mx/connect/memberConnected","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectConnectedPrimaryAction:return h(t,"mx/connect/connected/primaryAction","user_guid","string"),h(t,"mx/connect/connected/primaryAction","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case b.ConnectMemberDeleted:return h(t,"mx/connect/memberDeleted","user_guid","string"),h(t,"mx/connect/memberDeleted","session_guid","string"),h(t,"mx/connect/memberDeleted","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectCreateMemberError:return h(t,"mx/connect/createMemberError","user_guid","string"),h(t,"mx/connect/createMemberError","session_guid","string"),h(t,"mx/connect/createMemberError","institution_guid","string"),h(t,"mx/connect/createMemberError","institution_code","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution_guid:t.institution_guid,institution_code:t.institution_code};case b.ConnectMemberStatusUpdate:return h(t,"mx/connect/memberStatusUpdate","user_guid","string"),h(t,"mx/connect/memberStatusUpdate","session_guid","string"),h(t,"mx/connect/memberStatusUpdate","member_guid","string"),h(t,"mx/connect/memberStatusUpdate","connection_status","number"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,connection_status:t.connection_status};case b.ConnectOAuthError:return h(t,"mx/connect/oauthError","user_guid","string"),h(t,"mx/connect/oauthError","session_guid","string"),h(t,"mx/connect/oauthError","member_guid","string",{optional:!0}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectOAuthRequested:return h(t,"mx/connect/oauthRequested","user_guid","string"),h(t,"mx/connect/oauthRequested","session_guid","string"),h(t,"mx/connect/oauthRequested","url","string"),h(t,"mx/connect/oauthRequested","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,url:t.url,member_guid:t.member_guid};case b.ConnectStepChange:return h(t,"mx/connect/stepChange","user_guid","string"),h(t,"mx/connect/stepChange","session_guid","string"),h(t,"mx/connect/stepChange","previous","string"),h(t,"mx/connect/stepChange","current","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,previous:t.previous,current:t.current};case b.ConnectSubmitMFA:return h(t,"mx/connect/submitMFA","user_guid","string"),h(t,"mx/connect/submitMFA","session_guid","string"),h(t,"mx/connect/submitMFA","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectUpdateCredentials:return h(t,"mx/connect/updateCredentials","user_guid","string"),h(t,"mx/connect/updateCredentials","session_guid","string"),h(t,"mx/connect/updateCredentials","member_guid","string"),h(t,"mx/connect/updateCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,institution:t.institution};case b.PulseOverdraftWarningCtaTransferFunds:return h(t,"mx/pulse/overdraftWarning/cta/transferFunds","account_guid","string"),h(t,"mx/pulse/overdraftWarning/cta/transferFunds","amount","number"),{type:e,account_guid:t.account_guid,amount:t.amount};case b.AccountCreated:return h(t,"mx/account/created","guid","string"),{type:e,guid:t.guid};default:throw new C(e)}}(n,e.metadata||{});return i}function y(e,t,n){if(t instanceof _)n.onInvalidMessageError?.(e,t);else{if(!(t instanceof C))throw t;n.onInvalidMessageError?.(e,t)}}function w(e,t){t.onMessage?.(e)}function M(e,t){try{w(e,t);!function(e,t){switch(e.type){case b.Load:t.onLoad?.(e);break;case b.Ping:t.onPing?.(e);break;case b.Navigation:t.onNavigation?.(e);break;case b.FocusTrap:t.onFocusTrap?.(e);break;case b.AccountCreated:t.onAccountCreated?.(e);break;default:throw new C(e.type)}}(x(e.data),t)}catch(n){y(e,n,t)}}function W(e,t){try{w(e,t);!function(e,t){switch(e.type){case b.Load:t.onLoad?.(e);break;case b.Ping:t.onPing?.(e);break;case b.Navigation:t.onNavigation?.(e);break;case b.FocusTrap:t.onFocusTrap?.(e);break;case b.AccountCreated:t.onAccountCreated?.(e);break;case b.ConnectLoaded:t.onLoaded?.(e);break;case b.ConnectEnterCredentials:t.onEnterCredentials?.(e);break;case b.ConnectInstitutionSearch:t.onInstitutionSearch?.(e);break;case b.ConnectSelectedInstitution:t.onSelectedInstitution?.(e);break;case b.ConnectMemberConnected:t.onMemberConnected?.(e);break;case b.ConnectConnectedPrimaryAction:t.onConnectedPrimaryAction?.(e);break;case b.ConnectMemberDeleted:t.onMemberDeleted?.(e);break;case b.ConnectCreateMemberError:t.onCreateMemberError?.(e);break;case b.ConnectMemberStatusUpdate:t.onMemberStatusUpdate?.(e);break;case b.ConnectOAuthError:t.onOAuthError?.(e);break;case b.ConnectOAuthRequested:t.onOAuthRequested?.(e);break;case b.ConnectStepChange:t.onStepChange?.(e);break;case b.ConnectSubmitMFA:t.onSubmitMFA?.(e);break;case b.ConnectUpdateCredentials:t.onUpdateCredentials?.(e);break;default:throw new C(e.type)}}(x(e.data),t)}catch(n){y(e,n,t)}}function A(e,t){try{w(e,t);!function(e,t){switch(e.type){case b.Load:t.onLoad?.(e);break;case b.Ping:t.onPing?.(e);break;case b.Navigation:t.onNavigation?.(e);break;case b.FocusTrap:t.onFocusTrap?.(e);break;case b.AccountCreated:t.onAccountCreated?.(e);break;case b.PulseOverdraftWarningCtaTransferFunds:t.onOverdraftWarningCtaTransferFunds?.(e);break;default:throw new C(e.type)}}(x(e.data),t)}catch(n){y(e,n,t)}}class v{constructor(e){if(this.isUnmounting=!1,this.options=e,this.iframe=document.createElement("iframe"),this.style=e.style||{border:"none",height:"550px",width:"320px"},this.messageCallback=e=>{this.handleMXPostMessage(e)},"string"==typeof e.container){const t=document.querySelector(e.container);if(!t)throw new Error(`Unable to find widget container. Ensure that an element matching a selector for '${this.options.container}' is available in the DOM before you initialize the widget.`);this.container=t}else{if(!(e.container instanceof Element))throw new Error("Invalid or missing value for container property, expecting a query selector string or a DOM Element.");this.container=e.container}this.setupIframe(),this.setupListener()}get widgetType(){if(this.options.widgetType)return this.options.widgetType;throw new Error("Missing value for widgetType property, expecting a string (eg. connect_widget).")}get dispatcher(){return M}navigateBack(){return new Promise((e=>{const t=this.iframe.contentWindow,n={mx:!0,type:b.Navigation,payload:{action:"back"}};if(!t)throw new Error("Unable to navigate back, iframe element is not available.");const i=t=>{t.data.type===b.Navigation&&(window.removeEventListener("message",i),e(t.data.metadata.did_go_back))};window.addEventListener("message",i,!1),t.postMessage(JSON.stringify(n),this.targetOrigin)}))}ping(){this.postMessageToWidget({type:"ping"})}unmount(){this.isUnmounting=!0,this.teardownListener(),this.teardownIframe()}get targetOrigin(){var e;const t=/^https?:\/\/[^/]+/i;let n;return this.ssoUrl&&this.ssoUrl.match(t)&&(n=null===(e=this.ssoUrl.match(t))||void 0===e?void 0:e[0]),n||"https://widgets.moneydesktop.com"}handleMXPostMessage(e){e.data.mx&&(this.dispatcher(e,this.options),e.data.type===b.Load&&this.postMessageToWidget({type:"mx/sdk/info",metadata:{sdk:"web",version:"0.0.10"}}))}postMessageToWidget(e){if(!this.iframe.contentWindow)throw new Error("Unable to postMessage to widget, iframe doesn't exist");this.iframe.contentWindow.postMessage(JSON.stringify(e),this.targetOrigin)}setupIframe(){(function(e){if(function(e){return"url"in e&&"string"==typeof e.url}(e))return Promise.resolve(e.url);const t=e.ssoRequestBuilder||g,n=e.ssoRequestPreprocess||m,i=e.ssoRequestPostprocess||d,s=e.onSsoUrlLoadError||l,r=n(t(e));return fetch(r.url,r.options).then(p).then(i).catch(s)})(Object.assign(Object.assign({},this.options),{widgetType:this.widgetType})).then((e=>{!this.isUnmounting&&e&&(this.ssoUrl=e,this.iframe.setAttribute("data-test-id","mx-widget-iframe"),this.iframe.setAttribute("title",this.options.iframeTitle||"Widget Iframe"),this.iframe.setAttribute("src",e),Object.keys(this.style).forEach((e=>{this.iframe.style[e]=this.style[e]})),this.container.appendChild(this.iframe))}))}teardownIframe(){this.container.contains(this.iframe)&&this.container.removeChild(this.iframe)}setupListener(){window.addEventListener("message",this.messageCallback,!1)}teardownListener(){window.removeEventListener("message",this.messageCallback,!1)}}e.AccountsWidget=class extends v{get widgetType(){return a.AccountsWidget}},e.BudgetsWidget=class extends v{get widgetType(){return a.BudgetsWidget}},e.ConnectWidget=class extends v{get widgetType(){return a.ConnectWidget}get dispatcher(){return W}},e.ConnectionsWidget=class extends v{get widgetType(){return a.ConnectionsWidget}},e.DebtsWidget=class extends v{get widgetType(){return a.DebtsWidget}},e.FinstrongWidget=class extends v{get widgetType(){return a.FinstrongWidget}},e.GoalsWidget=class extends v{get widgetType(){return a.GoalsWidget}},e.HelpWidget=class extends v{get widgetType(){return a.HelpWidget}},e.MasterWidget=class extends v{get widgetType(){return a.MasterWidget}},e.MiniBudgetsWidget=class extends v{get widgetType(){return a.MiniBudgetsWidget}},e.MiniFinstrongWidget=class extends v{get widgetType(){return a.MiniFinstrongWidget}},e.MiniPulseCarouselWidget=class extends v{get widgetType(){return a.MiniPulseCarouselWidget}get dispatcher(){return A}},e.MiniSpendingWidget=class extends v{get widgetType(){return a.MiniSpendingWidget}},e.PulseWidget=class extends v{get widgetType(){return a.PulseWidget}get dispatcher(){return A}},e.SettingsWidget=class extends v{get widgetType(){return a.SettingsWidget}},e.SpendingWidget=class extends v{get widgetType(){return a.SpendingWidget}},e.TransactionsWidget=class extends v{get widgetType(){return a.TransactionsWidget}},e.TrendsWidget=class extends v{get widgetType(){return a.TrendsWidget}},e.Widget=v,Object.defineProperty(e,"__esModule",{value:!0})}));
define(["exports"],(function(e){"use strict";function t(e){return"clientId"in e&&"string"==typeof e.clientId&&"apiKey"in e&&"string"==typeof e.apiKey&&"userGuid"in e&&"string"==typeof e.userGuid&&"environment"in e&&"string"==typeof e.environment}class n extends Error{constructor(){super("Missing required widget props!\n\nComponent needs one of the following groups of props:\n\n - url\n\n - or -\n\n - proxy\n\n - or -\n\n - apiKey\n - clientId\n - environment\n - userGuid"),Object.setPrototypeOf(this,n.prototype)}}class i extends Error{constructor(e){super(`Request failed: ${e}`),this.statusCode=e,Object.setPrototypeOf(this,i.prototype)}}var s;!function(e){e.SAND="sand",e.QA="qa",e.INT="integration",e.PROD="production"}(s||(s={}));const r={[s.SAND]:s.SAND,[s.QA]:s.QA,[s.INT]:s.INT,[s.PROD]:s.PROD};const o={[s.SAND]:"https://api.sand.internal.mx",[s.QA]:"https://api.qa.internal.mx",[s.INT]:"https://int-api.mx.com",[s.PROD]:"https://api.mx.com"};function c(e){const t=function(e){const t=r[e];if(!t)throw new Error(`Invalid MX environment: ${e}`);return t}(e),n=o[t];if(!n)throw new Error(`Missing host for MX environment: ${e}`);return n}var a;function u(e){return{client_redirect_url:e.clientRedirectUrl,color_scheme:e.colorScheme,current_institution_code:e.currentInstitutionCode,current_institution_guid:e.currentInstitutionGuid,current_member_guid:e.currentMemberGuid,disable_institution_search:e.disableInstitutionSearch,include_transactions:e.includeTransactions,is_mobile_webview:e.isMobileWebview||!1,mode:e.mode,oauth_referral_source:e.oauthReferralSource,ui_message_version:e.uiMessageVersion||4,ui_message_webview_url_scheme:e.uiMessageWebviewUrlScheme,update_credentials:e.updateCredentials,widget_type:e.widgetType}}function d(e){return e.widget_url.url}function g(e){const i=function(e){if(function(e){return"proxy"in e&&"string"==typeof e.proxy}(e))return function(e){return e.proxy}(e);if(t(e))return function(e){const t=c(e.environment),n=e.userGuid;return`${t}/users/${n}/widget_urls`}(e);throw new n}(e),s=function(e){const n={Accept:"application/vnd.mx.api.v1+json","Content-Type":"application/json"};e.language&&(n["Accept-Language"]=e.language);if(t(e)){const{apiKey:t,clientId:i}=e,s=btoa(`${i}:${t}`);n.Authorization=`Basic ${s}`}const i="cors",s="POST",r=JSON.stringify({widget_url:u(e)});return{method:s,headers:n,body:r,mode:i}}(e);return{url:i,options:s}}function m(e){return e}function p(e){if(!e.ok)throw new i(e.status);return e.json()}function l(e){console.error(e)}!function(e){e.AccountsWidget="accounts_widget",e.BudgetsWidget="budgets_widget",e.ConnectWidget="connect_widget",e.ConnectionsWidget="connections_widget",e.DebtsWidget="debts_widget",e.FinstrongWidget="finstrong_widget",e.GoalsWidget="goals_widget",e.HelpWidget="help_widget",e.MasterWidget="master_widget",e.MiniBudgetsWidget="mini_budgets_widget",e.MiniFinstrongWidget="mini_finstrong_widget",e.MiniPulseCarouselWidget="mini_pulse_carousel_widget",e.MiniSpendingWidget="mini_spending_widget",e.PulseWidget="pulse_widget",e.SettingsWidget="settings_widget",e.SpendingWidget="spending_widget",e.TransactionsWidget="transactions_widget",e.TrendsWidget="trends_widget"}(a||(a={}));class _ extends Error{messageType;field;expectedType;gotValue;constructor(e,t,n,i){super(`Unable to decode '${t}' from '${e}'`),this.messageType=e,this.field=t,this.expectedType=n,this.gotValue=i,Object.setPrototypeOf(this,_.prototype)}}class h extends Error{postMessageType;constructor(e){super(`Unknown post message: ${e}`),this.postMessageType=e,Object.setPrototypeOf(this,h.prototype)}}function C(e,t,n,i,s={}){const r=e[n],o=void 0!==r,c="string"==typeof r,a="number"==typeof r,u="object"==typeof r&&!Array.isArray(r),d="boolean"==typeof r,g="string"===i,m="number"===i,p=i instanceof Array,l="object"==typeof i&&!Array.isArray(i),h="boolean"===i;if(o||!s.optional){if(!o)throw new _(t,n,i,r);if(g&&!c)throw new _(t,n,i,r);if(m&&!a)throw new _(t,n,i,r);if(!(!p||c&&i.includes(r)))throw new _(t,n,i,r);if(l&&!u)throw new _(t,n,i,r);if(h&&!d)throw new _(t,n,i,r);l&&u&&Object.keys(i).forEach((e=>{C(r,t,e,i[e])}))}}var b;!function(e){e.Load="mx/load",e.Ping="mx/ping",e.Navigation="mx/navigation",e.FocusTrap="mx/focusTrap",e.ClientOAuthComplete="mx/client/oauthComplete",e.ConnectLoaded="mx/connect/loaded",e.ConnectEnterCredentials="mx/connect/enterCredentials",e.ConnectInstitutionSearch="mx/connect/institutionSearch",e.ConnectSelectedInstitution="mx/connect/selectedInstitution",e.ConnectMemberConnected="mx/connect/memberConnected",e.ConnectConnectedPrimaryAction="mx/connect/connected/primaryAction",e.ConnectMemberDeleted="mx/connect/memberDeleted",e.ConnectCreateMemberError="mx/connect/createMemberError",e.ConnectMemberStatusUpdate="mx/connect/memberStatusUpdate",e.ConnectOAuthError="mx/connect/oauthError",e.ConnectOAuthRequested="mx/connect/oauthRequested",e.ConnectStepChange="mx/connect/stepChange",e.ConnectSubmitMFA="mx/connect/submitMFA",e.ConnectUpdateCredentials="mx/connect/updateCredentials",e.ConnectBackToSearch="mx/connect/backToSearch",e.PulseOverdraftWarningCtaTransferFunds="mx/pulse/overdraftWarning/cta/transferFunds",e.AccountCreated="mx/account/created"}(b||(b={}));const f={[b.Load]:b.Load,[b.Ping]:b.Ping,[b.Navigation]:b.Navigation,[b.FocusTrap]:b.FocusTrap,"mx/focustrap":b.FocusTrap,[b.ClientOAuthComplete]:b.ClientOAuthComplete,"mx/client/oauthcomplete":b.ClientOAuthComplete,[b.ConnectLoaded]:b.ConnectLoaded,[b.ConnectEnterCredentials]:b.ConnectEnterCredentials,"mx/connect/entercredentials":b.ConnectEnterCredentials,[b.ConnectInstitutionSearch]:b.ConnectInstitutionSearch,"mx/connect/institutionsearch":b.ConnectInstitutionSearch,[b.ConnectSelectedInstitution]:b.ConnectSelectedInstitution,"mx/connect/selectedinstitution":b.ConnectSelectedInstitution,[b.ConnectMemberConnected]:b.ConnectMemberConnected,"mx/connect/memberconnected":b.ConnectMemberConnected,[b.ConnectConnectedPrimaryAction]:b.ConnectConnectedPrimaryAction,"mx/connect/connected/primaryaction":b.ConnectConnectedPrimaryAction,[b.ConnectMemberDeleted]:b.ConnectMemberDeleted,"mx/connect/memberdeleted":b.ConnectMemberDeleted,[b.ConnectCreateMemberError]:b.ConnectCreateMemberError,"mx/connect/createmembererror":b.ConnectCreateMemberError,[b.ConnectMemberStatusUpdate]:b.ConnectMemberStatusUpdate,"mx/connect/memberstatusupdate":b.ConnectMemberStatusUpdate,[b.ConnectOAuthError]:b.ConnectOAuthError,"mx/connect/oautherror":b.ConnectOAuthError,[b.ConnectOAuthRequested]:b.ConnectOAuthRequested,"mx/connect/oauthrequested":b.ConnectOAuthRequested,[b.ConnectStepChange]:b.ConnectStepChange,"mx/connect/stepchange":b.ConnectStepChange,[b.ConnectSubmitMFA]:b.ConnectSubmitMFA,"mx/connect/submitmfa":b.ConnectSubmitMFA,[b.ConnectUpdateCredentials]:b.ConnectUpdateCredentials,"mx/connect/updatecredentials":b.ConnectUpdateCredentials,[b.ConnectBackToSearch]:b.ConnectBackToSearch,"mx/connect/backtosearch":b.ConnectBackToSearch,[b.PulseOverdraftWarningCtaTransferFunds]:b.PulseOverdraftWarningCtaTransferFunds,"mx/pulse/overdraftwarning/cta/transferfunds":b.PulseOverdraftWarningCtaTransferFunds,[b.AccountCreated]:b.AccountCreated};function x(e){const t=e.type||"type not provided";let n;if(!t||!(t in f))throw new h(t);n=f[t];const i=function(e,t){switch(e){case b.Load:return{type:e};case b.Ping:return C(t,"mx/ping","user_guid","string"),C(t,"mx/ping","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case b.Navigation:return C(t,"mx/navigation","user_guid","string"),C(t,"mx/navigation","session_guid","string"),C(t,"mx/navigation","did_go_back","boolean"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,did_go_back:t.did_go_back};case b.FocusTrap:return C(t,"mx/focusTrap","user_guid","string"),C(t,"mx/focusTrap","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case b.ClientOAuthComplete:return C(t,"mx/client/oauthComplete","url","string"),{type:e,url:t.url};case b.ConnectLoaded:return C(t,"mx/connect/loaded","user_guid","string"),C(t,"mx/connect/loaded","session_guid","string"),C(t,"mx/connect/loaded","initial_step","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,initial_step:t.initial_step};case b.ConnectEnterCredentials:return C(t,"mx/connect/enterCredentials","user_guid","string"),C(t,"mx/connect/enterCredentials","session_guid","string"),C(t,"mx/connect/enterCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution:t.institution};case b.ConnectInstitutionSearch:return C(t,"mx/connect/institutionSearch","user_guid","string"),C(t,"mx/connect/institutionSearch","session_guid","string"),C(t,"mx/connect/institutionSearch","query","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,query:t.query};case b.ConnectSelectedInstitution:return C(t,"mx/connect/selectedInstitution","user_guid","string"),C(t,"mx/connect/selectedInstitution","session_guid","string"),C(t,"mx/connect/selectedInstitution","code","string"),C(t,"mx/connect/selectedInstitution","guid","string"),C(t,"mx/connect/selectedInstitution","name","string"),C(t,"mx/connect/selectedInstitution","url","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,code:t.code,guid:t.guid,name:t.name,url:t.url};case b.ConnectMemberConnected:return C(t,"mx/connect/memberConnected","user_guid","string"),C(t,"mx/connect/memberConnected","session_guid","string"),C(t,"mx/connect/memberConnected","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectConnectedPrimaryAction:return C(t,"mx/connect/connected/primaryAction","user_guid","string"),C(t,"mx/connect/connected/primaryAction","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case b.ConnectMemberDeleted:return C(t,"mx/connect/memberDeleted","user_guid","string"),C(t,"mx/connect/memberDeleted","session_guid","string"),C(t,"mx/connect/memberDeleted","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectCreateMemberError:return C(t,"mx/connect/createMemberError","user_guid","string"),C(t,"mx/connect/createMemberError","session_guid","string"),C(t,"mx/connect/createMemberError","institution_guid","string"),C(t,"mx/connect/createMemberError","institution_code","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution_guid:t.institution_guid,institution_code:t.institution_code};case b.ConnectMemberStatusUpdate:return C(t,"mx/connect/memberStatusUpdate","user_guid","string"),C(t,"mx/connect/memberStatusUpdate","session_guid","string"),C(t,"mx/connect/memberStatusUpdate","member_guid","string"),C(t,"mx/connect/memberStatusUpdate","connection_status","number"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,connection_status:t.connection_status};case b.ConnectOAuthError:return C(t,"mx/connect/oauthError","user_guid","string"),C(t,"mx/connect/oauthError","session_guid","string"),C(t,"mx/connect/oauthError","member_guid","string",{optional:!0}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectOAuthRequested:return C(t,"mx/connect/oauthRequested","user_guid","string"),C(t,"mx/connect/oauthRequested","session_guid","string"),C(t,"mx/connect/oauthRequested","url","string"),C(t,"mx/connect/oauthRequested","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,url:t.url,member_guid:t.member_guid};case b.ConnectStepChange:return C(t,"mx/connect/stepChange","user_guid","string"),C(t,"mx/connect/stepChange","session_guid","string"),C(t,"mx/connect/stepChange","previous","string"),C(t,"mx/connect/stepChange","current","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,previous:t.previous,current:t.current};case b.ConnectSubmitMFA:return C(t,"mx/connect/submitMFA","user_guid","string"),C(t,"mx/connect/submitMFA","session_guid","string"),C(t,"mx/connect/submitMFA","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectUpdateCredentials:return C(t,"mx/connect/updateCredentials","user_guid","string"),C(t,"mx/connect/updateCredentials","session_guid","string"),C(t,"mx/connect/updateCredentials","member_guid","string"),C(t,"mx/connect/updateCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,institution:t.institution};case b.ConnectBackToSearch:return C(t,"mx/connect/backToSearch","user_guid","string"),C(t,"mx/connect/backToSearch","session_guid","string"),C(t,"mx/connect/backToSearch","context","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,context:t.context};case b.PulseOverdraftWarningCtaTransferFunds:return C(t,"mx/pulse/overdraftWarning/cta/transferFunds","account_guid","string"),C(t,"mx/pulse/overdraftWarning/cta/transferFunds","amount","number"),{type:e,account_guid:t.account_guid,amount:t.amount};case b.AccountCreated:return C(t,"mx/account/created","guid","string"),{type:e,guid:t.guid};default:throw new h(e)}}(n,e.metadata||{});return i}function y(e,t,n){if(t instanceof _)n.onInvalidMessageError?.(e,t);else{if(!(t instanceof h))throw t;n.onInvalidMessageError?.(e,t)}}function w(e,t){t.onMessage?.(e)}function M(e,t){let n;try{w(e,t),n=x(e.data),function(e,t){switch(e.type){case b.Load:t.onLoad?.(e);break;case b.Ping:t.onPing?.(e);break;case b.Navigation:t.onNavigation?.(e);break;case b.FocusTrap:t.onFocusTrap?.(e);break;case b.AccountCreated:t.onAccountCreated?.(e);break;default:throw new h(e.type)}}(n,t)}catch(n){y(e,n,t)}return n}function T(e,t){let n;try{w(e,t),n=x(e.data),function(e,t){switch(e.type){case b.Load:t.onLoad?.(e);break;case b.Ping:t.onPing?.(e);break;case b.Navigation:t.onNavigation?.(e);break;case b.FocusTrap:t.onFocusTrap?.(e);break;case b.AccountCreated:t.onAccountCreated?.(e);break;case b.ConnectLoaded:t.onLoaded?.(e);break;case b.ConnectEnterCredentials:t.onEnterCredentials?.(e);break;case b.ConnectInstitutionSearch:t.onInstitutionSearch?.(e);break;case b.ConnectSelectedInstitution:t.onSelectedInstitution?.(e);break;case b.ConnectMemberConnected:t.onMemberConnected?.(e);break;case b.ConnectConnectedPrimaryAction:t.onConnectedPrimaryAction?.(e);break;case b.ConnectMemberDeleted:t.onMemberDeleted?.(e);break;case b.ConnectCreateMemberError:t.onCreateMemberError?.(e);break;case b.ConnectMemberStatusUpdate:t.onMemberStatusUpdate?.(e);break;case b.ConnectOAuthError:t.onOAuthError?.(e);break;case b.ConnectOAuthRequested:t.onOAuthRequested?.(e);break;case b.ConnectStepChange:t.onStepChange?.(e);break;case b.ConnectSubmitMFA:t.onSubmitMFA?.(e);break;case b.ConnectUpdateCredentials:t.onUpdateCredentials?.(e);break;case b.ConnectBackToSearch:t.onBackToSearch?.(e);break;default:throw new h(e.type)}}(n,t)}catch(n){y(e,n,t)}return n}function S(e,t){let n;try{w(e,t),n=x(e.data),function(e,t){switch(e.type){case b.Load:t.onLoad?.(e);break;case b.Ping:t.onPing?.(e);break;case b.Navigation:t.onNavigation?.(e);break;case b.FocusTrap:t.onFocusTrap?.(e);break;case b.AccountCreated:t.onAccountCreated?.(e);break;case b.PulseOverdraftWarningCtaTransferFunds:t.onOverdraftWarningCtaTransferFunds?.(e);break;default:throw new h(e.type)}}(n,t)}catch(n){y(e,n,t)}return n}class W{constructor(e){if(this.isUnmounting=!1,this.options=e,this.iframe=document.createElement("iframe"),this.style=e.style||{border:"none",height:"550px",width:"320px"},this.messageCallback=e=>{this.handleMXPostMessage(e)},"string"==typeof e.container){const t=document.querySelector(e.container);if(!t)throw new Error(`Unable to find widget container. Ensure that an element matching a selector for '${this.options.container}' is available in the DOM before you initialize the widget.`);this.container=t}else{if(!(e.container instanceof Element))throw new Error("Invalid or missing value for container property, expecting a query selector string or a DOM Element.");this.container=e.container}this.setupIframe(),this.setupListener()}get widgetType(){if(this.options.widgetType)return this.options.widgetType;throw new Error("Missing value for widgetType property, expecting a string (eg. connect_widget).")}get dispatcher(){return M}navigateBack(){return new Promise((e=>{const t=this.iframe.contentWindow,n={mx:!0,type:b.Navigation,payload:{action:"back"}};if(!t)throw new Error("Unable to navigate back, iframe element is not available.");const i=t=>{t.data.type===b.Navigation&&(window.removeEventListener("message",i),e(t.data.metadata.did_go_back))};window.addEventListener("message",i,!1),t.postMessage(JSON.stringify(n),this.targetOrigin)}))}ping(){this.postMessageToWidget({type:"ping"})}unmount(){this.isUnmounting=!0,this.teardownListener(),this.teardownIframe()}get targetOrigin(){var e;const t=/^https?:\/\/[^/]+/i;let n;return this.ssoUrl&&this.ssoUrl.match(t)&&(n=null===(e=this.ssoUrl.match(t))||void 0===e?void 0:e[0]),n||"https://widgets.moneydesktop.com"}handleMXPostMessage(e){e.data.mx&&(this.dispatcher(e,this.options),e.data.type===b.Load&&this.postMessageToWidget({type:"mx/sdk/info",metadata:{sdk:"web",version:"0.0.11"}}))}postMessageToWidget(e){if(!this.iframe.contentWindow)throw new Error("Unable to postMessage to widget, iframe doesn't exist");this.iframe.contentWindow.postMessage(JSON.stringify(e),this.targetOrigin)}setupIframe(){(function(e){if(function(e){return"url"in e&&"string"==typeof e.url}(e))return Promise.resolve(e.url);const t=e.ssoRequestBuilder||g,n=e.ssoRequestPreprocess||m,i=e.ssoRequestPostprocess||d,s=e.onSsoUrlLoadError||l,r=n(t(e));return fetch(r.url,r.options).then(p).then(i).catch(s)})(Object.assign(Object.assign({},this.options),{widgetType:this.widgetType})).then((e=>{!this.isUnmounting&&e&&(this.ssoUrl=e,this.iframe.setAttribute("data-test-id","mx-widget-iframe"),this.iframe.setAttribute("title",this.options.iframeTitle||"Widget Iframe"),this.iframe.setAttribute("src",e),Object.keys(this.style).forEach((e=>{this.iframe.style[e]=this.style[e]})),this.container.appendChild(this.iframe))}))}teardownIframe(){this.container.contains(this.iframe)&&this.container.removeChild(this.iframe)}setupListener(){window.addEventListener("message",this.messageCallback,!1)}teardownListener(){window.removeEventListener("message",this.messageCallback,!1)}}e.AccountsWidget=class extends W{get widgetType(){return a.AccountsWidget}},e.BudgetsWidget=class extends W{get widgetType(){return a.BudgetsWidget}},e.ConnectWidget=class extends W{get widgetType(){return a.ConnectWidget}get dispatcher(){return T}},e.ConnectionsWidget=class extends W{get widgetType(){return a.ConnectionsWidget}},e.DebtsWidget=class extends W{get widgetType(){return a.DebtsWidget}},e.FinstrongWidget=class extends W{get widgetType(){return a.FinstrongWidget}},e.GoalsWidget=class extends W{get widgetType(){return a.GoalsWidget}},e.HelpWidget=class extends W{get widgetType(){return a.HelpWidget}},e.MasterWidget=class extends W{get widgetType(){return a.MasterWidget}},e.MiniBudgetsWidget=class extends W{get widgetType(){return a.MiniBudgetsWidget}},e.MiniFinstrongWidget=class extends W{get widgetType(){return a.MiniFinstrongWidget}},e.MiniPulseCarouselWidget=class extends W{get widgetType(){return a.MiniPulseCarouselWidget}get dispatcher(){return S}},e.MiniSpendingWidget=class extends W{get widgetType(){return a.MiniSpendingWidget}},e.PulseWidget=class extends W{get widgetType(){return a.PulseWidget}get dispatcher(){return S}},e.SettingsWidget=class extends W{get widgetType(){return a.SettingsWidget}},e.SpendingWidget=class extends W{get widgetType(){return a.SpendingWidget}},e.TransactionsWidget=class extends W{get widgetType(){return a.TransactionsWidget}},e.TrendsWidget=class extends W{get widgetType(){return a.TrendsWidget}},e.Widget=W,Object.defineProperty(e,"__esModule",{value:!0})}));

@@ -200,3 +200,3 @@ 'use strict';

const sdkVersion = "0.0.10";
const sdkVersion = "0.0.11";

@@ -301,2 +301,3 @@ // This is an internal error. Thrown when we are decoding a post message's

Type["ConnectUpdateCredentials"] = "mx/connect/updateCredentials";
Type["ConnectBackToSearch"] = "mx/connect/backToSearch";
Type["PulseOverdraftWarningCtaTransferFunds"] = "mx/pulse/overdraftWarning/cta/transferFunds";

@@ -340,2 +341,4 @@ Type["AccountCreated"] = "mx/account/created";

"mx/connect/updatecredentials": Type.ConnectUpdateCredentials,
[Type.ConnectBackToSearch]: Type.ConnectBackToSearch,
"mx/connect/backtosearch": Type.ConnectBackToSearch,
[Type.PulseOverdraftWarningCtaTransferFunds]: Type.PulseOverdraftWarningCtaTransferFunds,

@@ -394,3 +397,3 @@ "mx/pulse/overdraftwarning/cta/transferfunds": Type.PulseOverdraftWarningCtaTransferFunds,

assertMessageProp(metadata, "mx/connect/loaded", "session_guid", "string");
assertMessageProp(metadata, "mx/connect/loaded", "initial_step", ["search", "selectMember", "enterCreds", "mfa", "connected", "loginError", "disclosure"]);
assertMessageProp(metadata, "mx/connect/loaded", "initial_step", "string");
return {

@@ -548,2 +551,12 @@ type,

};
case Type.ConnectBackToSearch:
assertMessageProp(metadata, "mx/connect/backToSearch", "user_guid", "string");
assertMessageProp(metadata, "mx/connect/backToSearch", "session_guid", "string");
assertMessageProp(metadata, "mx/connect/backToSearch", "context", "string");
return {
type,
user_guid: metadata.user_guid,
session_guid: metadata.session_guid,
context: metadata.context,
};
case Type.PulseOverdraftWarningCtaTransferFunds:

@@ -612,5 +625,6 @@ assertMessageProp(metadata, "mx/pulse/overdraftWarning/cta/transferFunds", "account_guid", "string");

function dispatchWidgetPostMessageEvent(event, callbacks) {
let payload;
try {
dispatchOnMessage(event, callbacks);
const payload = buildPayloadFromPostMessageEventData(event.data);
payload = buildPayloadFromPostMessageEventData(event.data);
dispatchWidgetInternalMessage(payload, callbacks);

@@ -621,2 +635,3 @@ }

}
return payload;
}

@@ -652,5 +667,6 @@ /**

function dispatchConnectPostMessageEvent(event, callbacks) {
let payload;
try {
dispatchOnMessage(event, callbacks);
const payload = buildPayloadFromPostMessageEventData(event.data);
payload = buildPayloadFromPostMessageEventData(event.data);
dispatchConnectInternalMessage(payload, callbacks);

@@ -661,2 +677,3 @@ }

}
return payload;
}

@@ -725,2 +742,5 @@ /**

break;
case Type.ConnectBackToSearch:
callbacks.onBackToSearch?.(payload);
break;
default:

@@ -735,5 +755,6 @@ throw new PostMessageUnknownTypeError(payload.type);

function dispatchPulsePostMessageEvent(event, callbacks) {
let payload;
try {
dispatchOnMessage(event, callbacks);
const payload = buildPayloadFromPostMessageEventData(event.data);
payload = buildPayloadFromPostMessageEventData(event.data);
dispatchPulseInternalMessage(payload, callbacks);

@@ -744,2 +765,3 @@ }

}
return payload;
}

@@ -746,0 +768,0 @@ /**

@@ -1,1 +0,1 @@

"use strict";function e(e){return"clientId"in e&&"string"==typeof e.clientId&&"apiKey"in e&&"string"==typeof e.apiKey&&"userGuid"in e&&"string"==typeof e.userGuid&&"environment"in e&&"string"==typeof e.environment}Object.defineProperty(exports,"__esModule",{value:!0});class t extends Error{constructor(){super("Missing required widget props!\n\nComponent needs one of the following groups of props:\n\n - url\n\n - or -\n\n - proxy\n\n - or -\n\n - apiKey\n - clientId\n - environment\n - userGuid"),Object.setPrototypeOf(this,t.prototype)}}class n extends Error{constructor(e){super(`Request failed: ${e}`),this.statusCode=e,Object.setPrototypeOf(this,n.prototype)}}var i;!function(e){e.SAND="sand",e.QA="qa",e.INT="integration",e.PROD="production"}(i||(i={}));const s={[i.SAND]:i.SAND,[i.QA]:i.QA,[i.INT]:i.INT,[i.PROD]:i.PROD};const r={[i.SAND]:"https://api.sand.internal.mx",[i.QA]:"https://api.qa.internal.mx",[i.INT]:"https://int-api.mx.com",[i.PROD]:"https://api.mx.com"};function o(e){const t=function(e){const t=s[e];if(!t)throw new Error(`Invalid MX environment: ${e}`);return t}(e),n=r[t];if(!n)throw new Error(`Missing host for MX environment: ${e}`);return n}var c;function a(e){return{client_redirect_url:e.clientRedirectUrl,color_scheme:e.colorScheme,current_institution_code:e.currentInstitutionCode,current_institution_guid:e.currentInstitutionGuid,current_member_guid:e.currentMemberGuid,disable_institution_search:e.disableInstitutionSearch,include_transactions:e.includeTransactions,is_mobile_webview:e.isMobileWebview||!1,mode:e.mode,oauth_referral_source:e.oauthReferralSource,ui_message_version:e.uiMessageVersion||4,ui_message_webview_url_scheme:e.uiMessageWebviewUrlScheme,update_credentials:e.updateCredentials,widget_type:e.widgetType}}function u(e){return e.widget_url.url}function d(n){const i=function(n){if(function(e){return"proxy"in e&&"string"==typeof e.proxy}(n))return function(e){return e.proxy}(n);if(e(n))return function(e){const t=o(e.environment),n=e.userGuid;return`${t}/users/${n}/widget_urls`}(n);throw new t}(n),s=function(t){const n={Accept:"application/vnd.mx.api.v1+json","Content-Type":"application/json"};t.language&&(n["Accept-Language"]=t.language);if(e(t)){const{apiKey:e,clientId:i}=t,s=btoa(`${i}:${e}`);n.Authorization=`Basic ${s}`}const i="cors",s="POST",r=JSON.stringify({widget_url:a(t)});return{method:s,headers:n,body:r,mode:i}}(n);return{url:i,options:s}}function g(e){return e}function m(e){if(!e.ok)throw new n(e.status);return e.json()}function p(e){console.error(e)}!function(e){e.AccountsWidget="accounts_widget",e.BudgetsWidget="budgets_widget",e.ConnectWidget="connect_widget",e.ConnectionsWidget="connections_widget",e.DebtsWidget="debts_widget",e.FinstrongWidget="finstrong_widget",e.GoalsWidget="goals_widget",e.HelpWidget="help_widget",e.MasterWidget="master_widget",e.MiniBudgetsWidget="mini_budgets_widget",e.MiniFinstrongWidget="mini_finstrong_widget",e.MiniPulseCarouselWidget="mini_pulse_carousel_widget",e.MiniSpendingWidget="mini_spending_widget",e.PulseWidget="pulse_widget",e.SettingsWidget="settings_widget",e.SpendingWidget="spending_widget",e.TransactionsWidget="transactions_widget",e.TrendsWidget="trends_widget"}(c||(c={}));class l extends Error{messageType;field;expectedType;gotValue;constructor(e,t,n,i){super(`Unable to decode '${t}' from '${e}'`),this.messageType=e,this.field=t,this.expectedType=n,this.gotValue=i,Object.setPrototypeOf(this,l.prototype)}}class _ extends Error{postMessageType;constructor(e){super(`Unknown post message: ${e}`),this.postMessageType=e,Object.setPrototypeOf(this,_.prototype)}}function C(e,t,n,i,s={}){const r=e[n],o=void 0!==r,c="string"==typeof r,a="number"==typeof r,u="object"==typeof r&&!Array.isArray(r),d="boolean"==typeof r,g="string"===i,m="number"===i,p=i instanceof Array,_="object"==typeof i&&!Array.isArray(i),h="boolean"===i;if(o||!s.optional){if(!o)throw new l(t,n,i,r);if(g&&!c)throw new l(t,n,i,r);if(m&&!a)throw new l(t,n,i,r);if(!(!p||c&&i.includes(r)))throw new l(t,n,i,r);if(_&&!u)throw new l(t,n,i,r);if(h&&!d)throw new l(t,n,i,r);_&&u&&Object.keys(i).forEach((e=>{C(r,t,e,i[e])}))}}var h;!function(e){e.Load="mx/load",e.Ping="mx/ping",e.Navigation="mx/navigation",e.FocusTrap="mx/focusTrap",e.ClientOAuthComplete="mx/client/oauthComplete",e.ConnectLoaded="mx/connect/loaded",e.ConnectEnterCredentials="mx/connect/enterCredentials",e.ConnectInstitutionSearch="mx/connect/institutionSearch",e.ConnectSelectedInstitution="mx/connect/selectedInstitution",e.ConnectMemberConnected="mx/connect/memberConnected",e.ConnectConnectedPrimaryAction="mx/connect/connected/primaryAction",e.ConnectMemberDeleted="mx/connect/memberDeleted",e.ConnectCreateMemberError="mx/connect/createMemberError",e.ConnectMemberStatusUpdate="mx/connect/memberStatusUpdate",e.ConnectOAuthError="mx/connect/oauthError",e.ConnectOAuthRequested="mx/connect/oauthRequested",e.ConnectStepChange="mx/connect/stepChange",e.ConnectSubmitMFA="mx/connect/submitMFA",e.ConnectUpdateCredentials="mx/connect/updateCredentials",e.PulseOverdraftWarningCtaTransferFunds="mx/pulse/overdraftWarning/cta/transferFunds",e.AccountCreated="mx/account/created"}(h||(h={}));const b={[h.Load]:h.Load,[h.Ping]:h.Ping,[h.Navigation]:h.Navigation,[h.FocusTrap]:h.FocusTrap,"mx/focustrap":h.FocusTrap,[h.ClientOAuthComplete]:h.ClientOAuthComplete,"mx/client/oauthcomplete":h.ClientOAuthComplete,[h.ConnectLoaded]:h.ConnectLoaded,[h.ConnectEnterCredentials]:h.ConnectEnterCredentials,"mx/connect/entercredentials":h.ConnectEnterCredentials,[h.ConnectInstitutionSearch]:h.ConnectInstitutionSearch,"mx/connect/institutionsearch":h.ConnectInstitutionSearch,[h.ConnectSelectedInstitution]:h.ConnectSelectedInstitution,"mx/connect/selectedinstitution":h.ConnectSelectedInstitution,[h.ConnectMemberConnected]:h.ConnectMemberConnected,"mx/connect/memberconnected":h.ConnectMemberConnected,[h.ConnectConnectedPrimaryAction]:h.ConnectConnectedPrimaryAction,"mx/connect/connected/primaryaction":h.ConnectConnectedPrimaryAction,[h.ConnectMemberDeleted]:h.ConnectMemberDeleted,"mx/connect/memberdeleted":h.ConnectMemberDeleted,[h.ConnectCreateMemberError]:h.ConnectCreateMemberError,"mx/connect/createmembererror":h.ConnectCreateMemberError,[h.ConnectMemberStatusUpdate]:h.ConnectMemberStatusUpdate,"mx/connect/memberstatusupdate":h.ConnectMemberStatusUpdate,[h.ConnectOAuthError]:h.ConnectOAuthError,"mx/connect/oautherror":h.ConnectOAuthError,[h.ConnectOAuthRequested]:h.ConnectOAuthRequested,"mx/connect/oauthrequested":h.ConnectOAuthRequested,[h.ConnectStepChange]:h.ConnectStepChange,"mx/connect/stepchange":h.ConnectStepChange,[h.ConnectSubmitMFA]:h.ConnectSubmitMFA,"mx/connect/submitmfa":h.ConnectSubmitMFA,[h.ConnectUpdateCredentials]:h.ConnectUpdateCredentials,"mx/connect/updatecredentials":h.ConnectUpdateCredentials,[h.PulseOverdraftWarningCtaTransferFunds]:h.PulseOverdraftWarningCtaTransferFunds,"mx/pulse/overdraftwarning/cta/transferfunds":h.PulseOverdraftWarningCtaTransferFunds,[h.AccountCreated]:h.AccountCreated};function x(e){const t=e.type||"type not provided";let n;if(!t||!(t in b))throw new _(t);n=b[t];const i=function(e,t){switch(e){case h.Load:return{type:e};case h.Ping:return C(t,"mx/ping","user_guid","string"),C(t,"mx/ping","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case h.Navigation:return C(t,"mx/navigation","user_guid","string"),C(t,"mx/navigation","session_guid","string"),C(t,"mx/navigation","did_go_back","boolean"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,did_go_back:t.did_go_back};case h.FocusTrap:return C(t,"mx/focusTrap","user_guid","string"),C(t,"mx/focusTrap","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case h.ClientOAuthComplete:return C(t,"mx/client/oauthComplete","url","string"),{type:e,url:t.url};case h.ConnectLoaded:return C(t,"mx/connect/loaded","user_guid","string"),C(t,"mx/connect/loaded","session_guid","string"),C(t,"mx/connect/loaded","initial_step",["search","selectMember","enterCreds","mfa","connected","loginError","disclosure"]),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,initial_step:t.initial_step};case h.ConnectEnterCredentials:return C(t,"mx/connect/enterCredentials","user_guid","string"),C(t,"mx/connect/enterCredentials","session_guid","string"),C(t,"mx/connect/enterCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution:t.institution};case h.ConnectInstitutionSearch:return C(t,"mx/connect/institutionSearch","user_guid","string"),C(t,"mx/connect/institutionSearch","session_guid","string"),C(t,"mx/connect/institutionSearch","query","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,query:t.query};case h.ConnectSelectedInstitution:return C(t,"mx/connect/selectedInstitution","user_guid","string"),C(t,"mx/connect/selectedInstitution","session_guid","string"),C(t,"mx/connect/selectedInstitution","code","string"),C(t,"mx/connect/selectedInstitution","guid","string"),C(t,"mx/connect/selectedInstitution","name","string"),C(t,"mx/connect/selectedInstitution","url","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,code:t.code,guid:t.guid,name:t.name,url:t.url};case h.ConnectMemberConnected:return C(t,"mx/connect/memberConnected","user_guid","string"),C(t,"mx/connect/memberConnected","session_guid","string"),C(t,"mx/connect/memberConnected","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case h.ConnectConnectedPrimaryAction:return C(t,"mx/connect/connected/primaryAction","user_guid","string"),C(t,"mx/connect/connected/primaryAction","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case h.ConnectMemberDeleted:return C(t,"mx/connect/memberDeleted","user_guid","string"),C(t,"mx/connect/memberDeleted","session_guid","string"),C(t,"mx/connect/memberDeleted","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case h.ConnectCreateMemberError:return C(t,"mx/connect/createMemberError","user_guid","string"),C(t,"mx/connect/createMemberError","session_guid","string"),C(t,"mx/connect/createMemberError","institution_guid","string"),C(t,"mx/connect/createMemberError","institution_code","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution_guid:t.institution_guid,institution_code:t.institution_code};case h.ConnectMemberStatusUpdate:return C(t,"mx/connect/memberStatusUpdate","user_guid","string"),C(t,"mx/connect/memberStatusUpdate","session_guid","string"),C(t,"mx/connect/memberStatusUpdate","member_guid","string"),C(t,"mx/connect/memberStatusUpdate","connection_status","number"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,connection_status:t.connection_status};case h.ConnectOAuthError:return C(t,"mx/connect/oauthError","user_guid","string"),C(t,"mx/connect/oauthError","session_guid","string"),C(t,"mx/connect/oauthError","member_guid","string",{optional:!0}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case h.ConnectOAuthRequested:return C(t,"mx/connect/oauthRequested","user_guid","string"),C(t,"mx/connect/oauthRequested","session_guid","string"),C(t,"mx/connect/oauthRequested","url","string"),C(t,"mx/connect/oauthRequested","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,url:t.url,member_guid:t.member_guid};case h.ConnectStepChange:return C(t,"mx/connect/stepChange","user_guid","string"),C(t,"mx/connect/stepChange","session_guid","string"),C(t,"mx/connect/stepChange","previous","string"),C(t,"mx/connect/stepChange","current","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,previous:t.previous,current:t.current};case h.ConnectSubmitMFA:return C(t,"mx/connect/submitMFA","user_guid","string"),C(t,"mx/connect/submitMFA","session_guid","string"),C(t,"mx/connect/submitMFA","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case h.ConnectUpdateCredentials:return C(t,"mx/connect/updateCredentials","user_guid","string"),C(t,"mx/connect/updateCredentials","session_guid","string"),C(t,"mx/connect/updateCredentials","member_guid","string"),C(t,"mx/connect/updateCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,institution:t.institution};case h.PulseOverdraftWarningCtaTransferFunds:return C(t,"mx/pulse/overdraftWarning/cta/transferFunds","account_guid","string"),C(t,"mx/pulse/overdraftWarning/cta/transferFunds","amount","number"),{type:e,account_guid:t.account_guid,amount:t.amount};case h.AccountCreated:return C(t,"mx/account/created","guid","string"),{type:e,guid:t.guid};default:throw new _(e)}}(n,e.metadata||{});return i}function f(e,t,n){if(t instanceof l)n.onInvalidMessageError?.(e,t);else{if(!(t instanceof _))throw t;n.onInvalidMessageError?.(e,t)}}function y(e,t){t.onMessage?.(e)}function w(e,t){try{y(e,t);!function(e,t){switch(e.type){case h.Load:t.onLoad?.(e);break;case h.Ping:t.onPing?.(e);break;case h.Navigation:t.onNavigation?.(e);break;case h.FocusTrap:t.onFocusTrap?.(e);break;case h.AccountCreated:t.onAccountCreated?.(e);break;default:throw new _(e.type)}}(x(e.data),t)}catch(n){f(e,n,t)}}function M(e,t){try{y(e,t);!function(e,t){switch(e.type){case h.Load:t.onLoad?.(e);break;case h.Ping:t.onPing?.(e);break;case h.Navigation:t.onNavigation?.(e);break;case h.FocusTrap:t.onFocusTrap?.(e);break;case h.AccountCreated:t.onAccountCreated?.(e);break;case h.ConnectLoaded:t.onLoaded?.(e);break;case h.ConnectEnterCredentials:t.onEnterCredentials?.(e);break;case h.ConnectInstitutionSearch:t.onInstitutionSearch?.(e);break;case h.ConnectSelectedInstitution:t.onSelectedInstitution?.(e);break;case h.ConnectMemberConnected:t.onMemberConnected?.(e);break;case h.ConnectConnectedPrimaryAction:t.onConnectedPrimaryAction?.(e);break;case h.ConnectMemberDeleted:t.onMemberDeleted?.(e);break;case h.ConnectCreateMemberError:t.onCreateMemberError?.(e);break;case h.ConnectMemberStatusUpdate:t.onMemberStatusUpdate?.(e);break;case h.ConnectOAuthError:t.onOAuthError?.(e);break;case h.ConnectOAuthRequested:t.onOAuthRequested?.(e);break;case h.ConnectStepChange:t.onStepChange?.(e);break;case h.ConnectSubmitMFA:t.onSubmitMFA?.(e);break;case h.ConnectUpdateCredentials:t.onUpdateCredentials?.(e);break;default:throw new _(e.type)}}(x(e.data),t)}catch(n){f(e,n,t)}}function W(e,t){try{y(e,t);!function(e,t){switch(e.type){case h.Load:t.onLoad?.(e);break;case h.Ping:t.onPing?.(e);break;case h.Navigation:t.onNavigation?.(e);break;case h.FocusTrap:t.onFocusTrap?.(e);break;case h.AccountCreated:t.onAccountCreated?.(e);break;case h.PulseOverdraftWarningCtaTransferFunds:t.onOverdraftWarningCtaTransferFunds?.(e);break;default:throw new _(e.type)}}(x(e.data),t)}catch(n){f(e,n,t)}}class A{constructor(e){if(this.isUnmounting=!1,this.options=e,this.iframe=document.createElement("iframe"),this.style=e.style||{border:"none",height:"550px",width:"320px"},this.messageCallback=e=>{this.handleMXPostMessage(e)},"string"==typeof e.container){const t=document.querySelector(e.container);if(!t)throw new Error(`Unable to find widget container. Ensure that an element matching a selector for '${this.options.container}' is available in the DOM before you initialize the widget.`);this.container=t}else{if(!(e.container instanceof Element))throw new Error("Invalid or missing value for container property, expecting a query selector string or a DOM Element.");this.container=e.container}this.setupIframe(),this.setupListener()}get widgetType(){if(this.options.widgetType)return this.options.widgetType;throw new Error("Missing value for widgetType property, expecting a string (eg. connect_widget).")}get dispatcher(){return w}navigateBack(){return new Promise((e=>{const t=this.iframe.contentWindow,n={mx:!0,type:h.Navigation,payload:{action:"back"}};if(!t)throw new Error("Unable to navigate back, iframe element is not available.");const i=t=>{t.data.type===h.Navigation&&(window.removeEventListener("message",i),e(t.data.metadata.did_go_back))};window.addEventListener("message",i,!1),t.postMessage(JSON.stringify(n),this.targetOrigin)}))}ping(){this.postMessageToWidget({type:"ping"})}unmount(){this.isUnmounting=!0,this.teardownListener(),this.teardownIframe()}get targetOrigin(){var e;const t=/^https?:\/\/[^/]+/i;let n;return this.ssoUrl&&this.ssoUrl.match(t)&&(n=null===(e=this.ssoUrl.match(t))||void 0===e?void 0:e[0]),n||"https://widgets.moneydesktop.com"}handleMXPostMessage(e){e.data.mx&&(this.dispatcher(e,this.options),e.data.type===h.Load&&this.postMessageToWidget({type:"mx/sdk/info",metadata:{sdk:"web",version:"0.0.10"}}))}postMessageToWidget(e){if(!this.iframe.contentWindow)throw new Error("Unable to postMessage to widget, iframe doesn't exist");this.iframe.contentWindow.postMessage(JSON.stringify(e),this.targetOrigin)}setupIframe(){(function(e){if(function(e){return"url"in e&&"string"==typeof e.url}(e))return Promise.resolve(e.url);const t=e.ssoRequestBuilder||d,n=e.ssoRequestPreprocess||g,i=e.ssoRequestPostprocess||u,s=e.onSsoUrlLoadError||p,r=n(t(e));return fetch(r.url,r.options).then(m).then(i).catch(s)})(Object.assign(Object.assign({},this.options),{widgetType:this.widgetType})).then((e=>{!this.isUnmounting&&e&&(this.ssoUrl=e,this.iframe.setAttribute("data-test-id","mx-widget-iframe"),this.iframe.setAttribute("title",this.options.iframeTitle||"Widget Iframe"),this.iframe.setAttribute("src",e),Object.keys(this.style).forEach((e=>{this.iframe.style[e]=this.style[e]})),this.container.appendChild(this.iframe))}))}teardownIframe(){this.container.contains(this.iframe)&&this.container.removeChild(this.iframe)}setupListener(){window.addEventListener("message",this.messageCallback,!1)}teardownListener(){window.removeEventListener("message",this.messageCallback,!1)}}exports.AccountsWidget=class extends A{get widgetType(){return c.AccountsWidget}},exports.BudgetsWidget=class extends A{get widgetType(){return c.BudgetsWidget}},exports.ConnectWidget=class extends A{get widgetType(){return c.ConnectWidget}get dispatcher(){return M}},exports.ConnectionsWidget=class extends A{get widgetType(){return c.ConnectionsWidget}},exports.DebtsWidget=class extends A{get widgetType(){return c.DebtsWidget}},exports.FinstrongWidget=class extends A{get widgetType(){return c.FinstrongWidget}},exports.GoalsWidget=class extends A{get widgetType(){return c.GoalsWidget}},exports.HelpWidget=class extends A{get widgetType(){return c.HelpWidget}},exports.MasterWidget=class extends A{get widgetType(){return c.MasterWidget}},exports.MiniBudgetsWidget=class extends A{get widgetType(){return c.MiniBudgetsWidget}},exports.MiniFinstrongWidget=class extends A{get widgetType(){return c.MiniFinstrongWidget}},exports.MiniPulseCarouselWidget=class extends A{get widgetType(){return c.MiniPulseCarouselWidget}get dispatcher(){return W}},exports.MiniSpendingWidget=class extends A{get widgetType(){return c.MiniSpendingWidget}},exports.PulseWidget=class extends A{get widgetType(){return c.PulseWidget}get dispatcher(){return W}},exports.SettingsWidget=class extends A{get widgetType(){return c.SettingsWidget}},exports.SpendingWidget=class extends A{get widgetType(){return c.SpendingWidget}},exports.TransactionsWidget=class extends A{get widgetType(){return c.TransactionsWidget}},exports.TrendsWidget=class extends A{get widgetType(){return c.TrendsWidget}},exports.Widget=A;
"use strict";function e(e){return"clientId"in e&&"string"==typeof e.clientId&&"apiKey"in e&&"string"==typeof e.apiKey&&"userGuid"in e&&"string"==typeof e.userGuid&&"environment"in e&&"string"==typeof e.environment}Object.defineProperty(exports,"__esModule",{value:!0});class t extends Error{constructor(){super("Missing required widget props!\n\nComponent needs one of the following groups of props:\n\n - url\n\n - or -\n\n - proxy\n\n - or -\n\n - apiKey\n - clientId\n - environment\n - userGuid"),Object.setPrototypeOf(this,t.prototype)}}class n extends Error{constructor(e){super(`Request failed: ${e}`),this.statusCode=e,Object.setPrototypeOf(this,n.prototype)}}var i;!function(e){e.SAND="sand",e.QA="qa",e.INT="integration",e.PROD="production"}(i||(i={}));const s={[i.SAND]:i.SAND,[i.QA]:i.QA,[i.INT]:i.INT,[i.PROD]:i.PROD};const r={[i.SAND]:"https://api.sand.internal.mx",[i.QA]:"https://api.qa.internal.mx",[i.INT]:"https://int-api.mx.com",[i.PROD]:"https://api.mx.com"};function o(e){const t=function(e){const t=s[e];if(!t)throw new Error(`Invalid MX environment: ${e}`);return t}(e),n=r[t];if(!n)throw new Error(`Missing host for MX environment: ${e}`);return n}var c;function a(e){return{client_redirect_url:e.clientRedirectUrl,color_scheme:e.colorScheme,current_institution_code:e.currentInstitutionCode,current_institution_guid:e.currentInstitutionGuid,current_member_guid:e.currentMemberGuid,disable_institution_search:e.disableInstitutionSearch,include_transactions:e.includeTransactions,is_mobile_webview:e.isMobileWebview||!1,mode:e.mode,oauth_referral_source:e.oauthReferralSource,ui_message_version:e.uiMessageVersion||4,ui_message_webview_url_scheme:e.uiMessageWebviewUrlScheme,update_credentials:e.updateCredentials,widget_type:e.widgetType}}function u(e){return e.widget_url.url}function d(n){const i=function(n){if(function(e){return"proxy"in e&&"string"==typeof e.proxy}(n))return function(e){return e.proxy}(n);if(e(n))return function(e){const t=o(e.environment),n=e.userGuid;return`${t}/users/${n}/widget_urls`}(n);throw new t}(n),s=function(t){const n={Accept:"application/vnd.mx.api.v1+json","Content-Type":"application/json"};t.language&&(n["Accept-Language"]=t.language);if(e(t)){const{apiKey:e,clientId:i}=t,s=btoa(`${i}:${e}`);n.Authorization=`Basic ${s}`}const i="cors",s="POST",r=JSON.stringify({widget_url:a(t)});return{method:s,headers:n,body:r,mode:i}}(n);return{url:i,options:s}}function g(e){return e}function m(e){if(!e.ok)throw new n(e.status);return e.json()}function p(e){console.error(e)}!function(e){e.AccountsWidget="accounts_widget",e.BudgetsWidget="budgets_widget",e.ConnectWidget="connect_widget",e.ConnectionsWidget="connections_widget",e.DebtsWidget="debts_widget",e.FinstrongWidget="finstrong_widget",e.GoalsWidget="goals_widget",e.HelpWidget="help_widget",e.MasterWidget="master_widget",e.MiniBudgetsWidget="mini_budgets_widget",e.MiniFinstrongWidget="mini_finstrong_widget",e.MiniPulseCarouselWidget="mini_pulse_carousel_widget",e.MiniSpendingWidget="mini_spending_widget",e.PulseWidget="pulse_widget",e.SettingsWidget="settings_widget",e.SpendingWidget="spending_widget",e.TransactionsWidget="transactions_widget",e.TrendsWidget="trends_widget"}(c||(c={}));class l extends Error{messageType;field;expectedType;gotValue;constructor(e,t,n,i){super(`Unable to decode '${t}' from '${e}'`),this.messageType=e,this.field=t,this.expectedType=n,this.gotValue=i,Object.setPrototypeOf(this,l.prototype)}}class _ extends Error{postMessageType;constructor(e){super(`Unknown post message: ${e}`),this.postMessageType=e,Object.setPrototypeOf(this,_.prototype)}}function h(e,t,n,i,s={}){const r=e[n],o=void 0!==r,c="string"==typeof r,a="number"==typeof r,u="object"==typeof r&&!Array.isArray(r),d="boolean"==typeof r,g="string"===i,m="number"===i,p=i instanceof Array,_="object"==typeof i&&!Array.isArray(i),C="boolean"===i;if(o||!s.optional){if(!o)throw new l(t,n,i,r);if(g&&!c)throw new l(t,n,i,r);if(m&&!a)throw new l(t,n,i,r);if(!(!p||c&&i.includes(r)))throw new l(t,n,i,r);if(_&&!u)throw new l(t,n,i,r);if(C&&!d)throw new l(t,n,i,r);_&&u&&Object.keys(i).forEach((e=>{h(r,t,e,i[e])}))}}var C;!function(e){e.Load="mx/load",e.Ping="mx/ping",e.Navigation="mx/navigation",e.FocusTrap="mx/focusTrap",e.ClientOAuthComplete="mx/client/oauthComplete",e.ConnectLoaded="mx/connect/loaded",e.ConnectEnterCredentials="mx/connect/enterCredentials",e.ConnectInstitutionSearch="mx/connect/institutionSearch",e.ConnectSelectedInstitution="mx/connect/selectedInstitution",e.ConnectMemberConnected="mx/connect/memberConnected",e.ConnectConnectedPrimaryAction="mx/connect/connected/primaryAction",e.ConnectMemberDeleted="mx/connect/memberDeleted",e.ConnectCreateMemberError="mx/connect/createMemberError",e.ConnectMemberStatusUpdate="mx/connect/memberStatusUpdate",e.ConnectOAuthError="mx/connect/oauthError",e.ConnectOAuthRequested="mx/connect/oauthRequested",e.ConnectStepChange="mx/connect/stepChange",e.ConnectSubmitMFA="mx/connect/submitMFA",e.ConnectUpdateCredentials="mx/connect/updateCredentials",e.ConnectBackToSearch="mx/connect/backToSearch",e.PulseOverdraftWarningCtaTransferFunds="mx/pulse/overdraftWarning/cta/transferFunds",e.AccountCreated="mx/account/created"}(C||(C={}));const b={[C.Load]:C.Load,[C.Ping]:C.Ping,[C.Navigation]:C.Navigation,[C.FocusTrap]:C.FocusTrap,"mx/focustrap":C.FocusTrap,[C.ClientOAuthComplete]:C.ClientOAuthComplete,"mx/client/oauthcomplete":C.ClientOAuthComplete,[C.ConnectLoaded]:C.ConnectLoaded,[C.ConnectEnterCredentials]:C.ConnectEnterCredentials,"mx/connect/entercredentials":C.ConnectEnterCredentials,[C.ConnectInstitutionSearch]:C.ConnectInstitutionSearch,"mx/connect/institutionsearch":C.ConnectInstitutionSearch,[C.ConnectSelectedInstitution]:C.ConnectSelectedInstitution,"mx/connect/selectedinstitution":C.ConnectSelectedInstitution,[C.ConnectMemberConnected]:C.ConnectMemberConnected,"mx/connect/memberconnected":C.ConnectMemberConnected,[C.ConnectConnectedPrimaryAction]:C.ConnectConnectedPrimaryAction,"mx/connect/connected/primaryaction":C.ConnectConnectedPrimaryAction,[C.ConnectMemberDeleted]:C.ConnectMemberDeleted,"mx/connect/memberdeleted":C.ConnectMemberDeleted,[C.ConnectCreateMemberError]:C.ConnectCreateMemberError,"mx/connect/createmembererror":C.ConnectCreateMemberError,[C.ConnectMemberStatusUpdate]:C.ConnectMemberStatusUpdate,"mx/connect/memberstatusupdate":C.ConnectMemberStatusUpdate,[C.ConnectOAuthError]:C.ConnectOAuthError,"mx/connect/oautherror":C.ConnectOAuthError,[C.ConnectOAuthRequested]:C.ConnectOAuthRequested,"mx/connect/oauthrequested":C.ConnectOAuthRequested,[C.ConnectStepChange]:C.ConnectStepChange,"mx/connect/stepchange":C.ConnectStepChange,[C.ConnectSubmitMFA]:C.ConnectSubmitMFA,"mx/connect/submitmfa":C.ConnectSubmitMFA,[C.ConnectUpdateCredentials]:C.ConnectUpdateCredentials,"mx/connect/updatecredentials":C.ConnectUpdateCredentials,[C.ConnectBackToSearch]:C.ConnectBackToSearch,"mx/connect/backtosearch":C.ConnectBackToSearch,[C.PulseOverdraftWarningCtaTransferFunds]:C.PulseOverdraftWarningCtaTransferFunds,"mx/pulse/overdraftwarning/cta/transferfunds":C.PulseOverdraftWarningCtaTransferFunds,[C.AccountCreated]:C.AccountCreated};function x(e){const t=e.type||"type not provided";let n;if(!t||!(t in b))throw new _(t);n=b[t];const i=function(e,t){switch(e){case C.Load:return{type:e};case C.Ping:return h(t,"mx/ping","user_guid","string"),h(t,"mx/ping","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case C.Navigation:return h(t,"mx/navigation","user_guid","string"),h(t,"mx/navigation","session_guid","string"),h(t,"mx/navigation","did_go_back","boolean"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,did_go_back:t.did_go_back};case C.FocusTrap:return h(t,"mx/focusTrap","user_guid","string"),h(t,"mx/focusTrap","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case C.ClientOAuthComplete:return h(t,"mx/client/oauthComplete","url","string"),{type:e,url:t.url};case C.ConnectLoaded:return h(t,"mx/connect/loaded","user_guid","string"),h(t,"mx/connect/loaded","session_guid","string"),h(t,"mx/connect/loaded","initial_step","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,initial_step:t.initial_step};case C.ConnectEnterCredentials:return h(t,"mx/connect/enterCredentials","user_guid","string"),h(t,"mx/connect/enterCredentials","session_guid","string"),h(t,"mx/connect/enterCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution:t.institution};case C.ConnectInstitutionSearch:return h(t,"mx/connect/institutionSearch","user_guid","string"),h(t,"mx/connect/institutionSearch","session_guid","string"),h(t,"mx/connect/institutionSearch","query","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,query:t.query};case C.ConnectSelectedInstitution:return h(t,"mx/connect/selectedInstitution","user_guid","string"),h(t,"mx/connect/selectedInstitution","session_guid","string"),h(t,"mx/connect/selectedInstitution","code","string"),h(t,"mx/connect/selectedInstitution","guid","string"),h(t,"mx/connect/selectedInstitution","name","string"),h(t,"mx/connect/selectedInstitution","url","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,code:t.code,guid:t.guid,name:t.name,url:t.url};case C.ConnectMemberConnected:return h(t,"mx/connect/memberConnected","user_guid","string"),h(t,"mx/connect/memberConnected","session_guid","string"),h(t,"mx/connect/memberConnected","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case C.ConnectConnectedPrimaryAction:return h(t,"mx/connect/connected/primaryAction","user_guid","string"),h(t,"mx/connect/connected/primaryAction","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case C.ConnectMemberDeleted:return h(t,"mx/connect/memberDeleted","user_guid","string"),h(t,"mx/connect/memberDeleted","session_guid","string"),h(t,"mx/connect/memberDeleted","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case C.ConnectCreateMemberError:return h(t,"mx/connect/createMemberError","user_guid","string"),h(t,"mx/connect/createMemberError","session_guid","string"),h(t,"mx/connect/createMemberError","institution_guid","string"),h(t,"mx/connect/createMemberError","institution_code","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution_guid:t.institution_guid,institution_code:t.institution_code};case C.ConnectMemberStatusUpdate:return h(t,"mx/connect/memberStatusUpdate","user_guid","string"),h(t,"mx/connect/memberStatusUpdate","session_guid","string"),h(t,"mx/connect/memberStatusUpdate","member_guid","string"),h(t,"mx/connect/memberStatusUpdate","connection_status","number"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,connection_status:t.connection_status};case C.ConnectOAuthError:return h(t,"mx/connect/oauthError","user_guid","string"),h(t,"mx/connect/oauthError","session_guid","string"),h(t,"mx/connect/oauthError","member_guid","string",{optional:!0}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case C.ConnectOAuthRequested:return h(t,"mx/connect/oauthRequested","user_guid","string"),h(t,"mx/connect/oauthRequested","session_guid","string"),h(t,"mx/connect/oauthRequested","url","string"),h(t,"mx/connect/oauthRequested","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,url:t.url,member_guid:t.member_guid};case C.ConnectStepChange:return h(t,"mx/connect/stepChange","user_guid","string"),h(t,"mx/connect/stepChange","session_guid","string"),h(t,"mx/connect/stepChange","previous","string"),h(t,"mx/connect/stepChange","current","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,previous:t.previous,current:t.current};case C.ConnectSubmitMFA:return h(t,"mx/connect/submitMFA","user_guid","string"),h(t,"mx/connect/submitMFA","session_guid","string"),h(t,"mx/connect/submitMFA","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case C.ConnectUpdateCredentials:return h(t,"mx/connect/updateCredentials","user_guid","string"),h(t,"mx/connect/updateCredentials","session_guid","string"),h(t,"mx/connect/updateCredentials","member_guid","string"),h(t,"mx/connect/updateCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,institution:t.institution};case C.ConnectBackToSearch:return h(t,"mx/connect/backToSearch","user_guid","string"),h(t,"mx/connect/backToSearch","session_guid","string"),h(t,"mx/connect/backToSearch","context","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,context:t.context};case C.PulseOverdraftWarningCtaTransferFunds:return h(t,"mx/pulse/overdraftWarning/cta/transferFunds","account_guid","string"),h(t,"mx/pulse/overdraftWarning/cta/transferFunds","amount","number"),{type:e,account_guid:t.account_guid,amount:t.amount};case C.AccountCreated:return h(t,"mx/account/created","guid","string"),{type:e,guid:t.guid};default:throw new _(e)}}(n,e.metadata||{});return i}function f(e,t,n){if(t instanceof l)n.onInvalidMessageError?.(e,t);else{if(!(t instanceof _))throw t;n.onInvalidMessageError?.(e,t)}}function y(e,t){t.onMessage?.(e)}function w(e,t){let n;try{y(e,t),n=x(e.data),function(e,t){switch(e.type){case C.Load:t.onLoad?.(e);break;case C.Ping:t.onPing?.(e);break;case C.Navigation:t.onNavigation?.(e);break;case C.FocusTrap:t.onFocusTrap?.(e);break;case C.AccountCreated:t.onAccountCreated?.(e);break;default:throw new _(e.type)}}(n,t)}catch(n){f(e,n,t)}return n}function M(e,t){let n;try{y(e,t),n=x(e.data),function(e,t){switch(e.type){case C.Load:t.onLoad?.(e);break;case C.Ping:t.onPing?.(e);break;case C.Navigation:t.onNavigation?.(e);break;case C.FocusTrap:t.onFocusTrap?.(e);break;case C.AccountCreated:t.onAccountCreated?.(e);break;case C.ConnectLoaded:t.onLoaded?.(e);break;case C.ConnectEnterCredentials:t.onEnterCredentials?.(e);break;case C.ConnectInstitutionSearch:t.onInstitutionSearch?.(e);break;case C.ConnectSelectedInstitution:t.onSelectedInstitution?.(e);break;case C.ConnectMemberConnected:t.onMemberConnected?.(e);break;case C.ConnectConnectedPrimaryAction:t.onConnectedPrimaryAction?.(e);break;case C.ConnectMemberDeleted:t.onMemberDeleted?.(e);break;case C.ConnectCreateMemberError:t.onCreateMemberError?.(e);break;case C.ConnectMemberStatusUpdate:t.onMemberStatusUpdate?.(e);break;case C.ConnectOAuthError:t.onOAuthError?.(e);break;case C.ConnectOAuthRequested:t.onOAuthRequested?.(e);break;case C.ConnectStepChange:t.onStepChange?.(e);break;case C.ConnectSubmitMFA:t.onSubmitMFA?.(e);break;case C.ConnectUpdateCredentials:t.onUpdateCredentials?.(e);break;case C.ConnectBackToSearch:t.onBackToSearch?.(e);break;default:throw new _(e.type)}}(n,t)}catch(n){f(e,n,t)}return n}function T(e,t){let n;try{y(e,t),n=x(e.data),function(e,t){switch(e.type){case C.Load:t.onLoad?.(e);break;case C.Ping:t.onPing?.(e);break;case C.Navigation:t.onNavigation?.(e);break;case C.FocusTrap:t.onFocusTrap?.(e);break;case C.AccountCreated:t.onAccountCreated?.(e);break;case C.PulseOverdraftWarningCtaTransferFunds:t.onOverdraftWarningCtaTransferFunds?.(e);break;default:throw new _(e.type)}}(n,t)}catch(n){f(e,n,t)}return n}class S{constructor(e){if(this.isUnmounting=!1,this.options=e,this.iframe=document.createElement("iframe"),this.style=e.style||{border:"none",height:"550px",width:"320px"},this.messageCallback=e=>{this.handleMXPostMessage(e)},"string"==typeof e.container){const t=document.querySelector(e.container);if(!t)throw new Error(`Unable to find widget container. Ensure that an element matching a selector for '${this.options.container}' is available in the DOM before you initialize the widget.`);this.container=t}else{if(!(e.container instanceof Element))throw new Error("Invalid or missing value for container property, expecting a query selector string or a DOM Element.");this.container=e.container}this.setupIframe(),this.setupListener()}get widgetType(){if(this.options.widgetType)return this.options.widgetType;throw new Error("Missing value for widgetType property, expecting a string (eg. connect_widget).")}get dispatcher(){return w}navigateBack(){return new Promise((e=>{const t=this.iframe.contentWindow,n={mx:!0,type:C.Navigation,payload:{action:"back"}};if(!t)throw new Error("Unable to navigate back, iframe element is not available.");const i=t=>{t.data.type===C.Navigation&&(window.removeEventListener("message",i),e(t.data.metadata.did_go_back))};window.addEventListener("message",i,!1),t.postMessage(JSON.stringify(n),this.targetOrigin)}))}ping(){this.postMessageToWidget({type:"ping"})}unmount(){this.isUnmounting=!0,this.teardownListener(),this.teardownIframe()}get targetOrigin(){var e;const t=/^https?:\/\/[^/]+/i;let n;return this.ssoUrl&&this.ssoUrl.match(t)&&(n=null===(e=this.ssoUrl.match(t))||void 0===e?void 0:e[0]),n||"https://widgets.moneydesktop.com"}handleMXPostMessage(e){e.data.mx&&(this.dispatcher(e,this.options),e.data.type===C.Load&&this.postMessageToWidget({type:"mx/sdk/info",metadata:{sdk:"web",version:"0.0.11"}}))}postMessageToWidget(e){if(!this.iframe.contentWindow)throw new Error("Unable to postMessage to widget, iframe doesn't exist");this.iframe.contentWindow.postMessage(JSON.stringify(e),this.targetOrigin)}setupIframe(){(function(e){if(function(e){return"url"in e&&"string"==typeof e.url}(e))return Promise.resolve(e.url);const t=e.ssoRequestBuilder||d,n=e.ssoRequestPreprocess||g,i=e.ssoRequestPostprocess||u,s=e.onSsoUrlLoadError||p,r=n(t(e));return fetch(r.url,r.options).then(m).then(i).catch(s)})(Object.assign(Object.assign({},this.options),{widgetType:this.widgetType})).then((e=>{!this.isUnmounting&&e&&(this.ssoUrl=e,this.iframe.setAttribute("data-test-id","mx-widget-iframe"),this.iframe.setAttribute("title",this.options.iframeTitle||"Widget Iframe"),this.iframe.setAttribute("src",e),Object.keys(this.style).forEach((e=>{this.iframe.style[e]=this.style[e]})),this.container.appendChild(this.iframe))}))}teardownIframe(){this.container.contains(this.iframe)&&this.container.removeChild(this.iframe)}setupListener(){window.addEventListener("message",this.messageCallback,!1)}teardownListener(){window.removeEventListener("message",this.messageCallback,!1)}}exports.AccountsWidget=class extends S{get widgetType(){return c.AccountsWidget}},exports.BudgetsWidget=class extends S{get widgetType(){return c.BudgetsWidget}},exports.ConnectWidget=class extends S{get widgetType(){return c.ConnectWidget}get dispatcher(){return M}},exports.ConnectionsWidget=class extends S{get widgetType(){return c.ConnectionsWidget}},exports.DebtsWidget=class extends S{get widgetType(){return c.DebtsWidget}},exports.FinstrongWidget=class extends S{get widgetType(){return c.FinstrongWidget}},exports.GoalsWidget=class extends S{get widgetType(){return c.GoalsWidget}},exports.HelpWidget=class extends S{get widgetType(){return c.HelpWidget}},exports.MasterWidget=class extends S{get widgetType(){return c.MasterWidget}},exports.MiniBudgetsWidget=class extends S{get widgetType(){return c.MiniBudgetsWidget}},exports.MiniFinstrongWidget=class extends S{get widgetType(){return c.MiniFinstrongWidget}},exports.MiniPulseCarouselWidget=class extends S{get widgetType(){return c.MiniPulseCarouselWidget}get dispatcher(){return T}},exports.MiniSpendingWidget=class extends S{get widgetType(){return c.MiniSpendingWidget}},exports.PulseWidget=class extends S{get widgetType(){return c.PulseWidget}get dispatcher(){return T}},exports.SettingsWidget=class extends S{get widgetType(){return c.SettingsWidget}},exports.SpendingWidget=class extends S{get widgetType(){return c.SpendingWidget}},exports.TransactionsWidget=class extends S{get widgetType(){return c.TransactionsWidget}},exports.TrendsWidget=class extends S{get widgetType(){return c.TrendsWidget}},exports.Widget=S;

@@ -196,3 +196,3 @@ function isSsoUrlMethodUrl(props) {

const sdkVersion = "0.0.10";
const sdkVersion = "0.0.11";

@@ -297,2 +297,3 @@ // This is an internal error. Thrown when we are decoding a post message's

Type["ConnectUpdateCredentials"] = "mx/connect/updateCredentials";
Type["ConnectBackToSearch"] = "mx/connect/backToSearch";
Type["PulseOverdraftWarningCtaTransferFunds"] = "mx/pulse/overdraftWarning/cta/transferFunds";

@@ -336,2 +337,4 @@ Type["AccountCreated"] = "mx/account/created";

"mx/connect/updatecredentials": Type.ConnectUpdateCredentials,
[Type.ConnectBackToSearch]: Type.ConnectBackToSearch,
"mx/connect/backtosearch": Type.ConnectBackToSearch,
[Type.PulseOverdraftWarningCtaTransferFunds]: Type.PulseOverdraftWarningCtaTransferFunds,

@@ -390,3 +393,3 @@ "mx/pulse/overdraftwarning/cta/transferfunds": Type.PulseOverdraftWarningCtaTransferFunds,

assertMessageProp(metadata, "mx/connect/loaded", "session_guid", "string");
assertMessageProp(metadata, "mx/connect/loaded", "initial_step", ["search", "selectMember", "enterCreds", "mfa", "connected", "loginError", "disclosure"]);
assertMessageProp(metadata, "mx/connect/loaded", "initial_step", "string");
return {

@@ -544,2 +547,12 @@ type,

};
case Type.ConnectBackToSearch:
assertMessageProp(metadata, "mx/connect/backToSearch", "user_guid", "string");
assertMessageProp(metadata, "mx/connect/backToSearch", "session_guid", "string");
assertMessageProp(metadata, "mx/connect/backToSearch", "context", "string");
return {
type,
user_guid: metadata.user_guid,
session_guid: metadata.session_guid,
context: metadata.context,
};
case Type.PulseOverdraftWarningCtaTransferFunds:

@@ -608,5 +621,6 @@ assertMessageProp(metadata, "mx/pulse/overdraftWarning/cta/transferFunds", "account_guid", "string");

function dispatchWidgetPostMessageEvent(event, callbacks) {
let payload;
try {
dispatchOnMessage(event, callbacks);
const payload = buildPayloadFromPostMessageEventData(event.data);
payload = buildPayloadFromPostMessageEventData(event.data);
dispatchWidgetInternalMessage(payload, callbacks);

@@ -617,2 +631,3 @@ }

}
return payload;
}

@@ -648,5 +663,6 @@ /**

function dispatchConnectPostMessageEvent(event, callbacks) {
let payload;
try {
dispatchOnMessage(event, callbacks);
const payload = buildPayloadFromPostMessageEventData(event.data);
payload = buildPayloadFromPostMessageEventData(event.data);
dispatchConnectInternalMessage(payload, callbacks);

@@ -657,2 +673,3 @@ }

}
return payload;
}

@@ -721,2 +738,5 @@ /**

break;
case Type.ConnectBackToSearch:
callbacks.onBackToSearch?.(payload);
break;
default:

@@ -731,5 +751,6 @@ throw new PostMessageUnknownTypeError(payload.type);

function dispatchPulsePostMessageEvent(event, callbacks) {
let payload;
try {
dispatchOnMessage(event, callbacks);
const payload = buildPayloadFromPostMessageEventData(event.data);
payload = buildPayloadFromPostMessageEventData(event.data);
dispatchPulseInternalMessage(payload, callbacks);

@@ -740,2 +761,3 @@ }

}
return payload;
}

@@ -742,0 +764,0 @@ /**

@@ -1,1 +0,1 @@

function e(e){return"clientId"in e&&"string"==typeof e.clientId&&"apiKey"in e&&"string"==typeof e.apiKey&&"userGuid"in e&&"string"==typeof e.userGuid&&"environment"in e&&"string"==typeof e.environment}class t extends Error{constructor(){super("Missing required widget props!\n\nComponent needs one of the following groups of props:\n\n - url\n\n - or -\n\n - proxy\n\n - or -\n\n - apiKey\n - clientId\n - environment\n - userGuid"),Object.setPrototypeOf(this,t.prototype)}}class n extends Error{constructor(e){super(`Request failed: ${e}`),this.statusCode=e,Object.setPrototypeOf(this,n.prototype)}}var i;!function(e){e.SAND="sand",e.QA="qa",e.INT="integration",e.PROD="production"}(i||(i={}));const s={[i.SAND]:i.SAND,[i.QA]:i.QA,[i.INT]:i.INT,[i.PROD]:i.PROD};const r={[i.SAND]:"https://api.sand.internal.mx",[i.QA]:"https://api.qa.internal.mx",[i.INT]:"https://int-api.mx.com",[i.PROD]:"https://api.mx.com"};function o(e){const t=function(e){const t=s[e];if(!t)throw new Error(`Invalid MX environment: ${e}`);return t}(e),n=r[t];if(!n)throw new Error(`Missing host for MX environment: ${e}`);return n}var c;function a(e){return{client_redirect_url:e.clientRedirectUrl,color_scheme:e.colorScheme,current_institution_code:e.currentInstitutionCode,current_institution_guid:e.currentInstitutionGuid,current_member_guid:e.currentMemberGuid,disable_institution_search:e.disableInstitutionSearch,include_transactions:e.includeTransactions,is_mobile_webview:e.isMobileWebview||!1,mode:e.mode,oauth_referral_source:e.oauthReferralSource,ui_message_version:e.uiMessageVersion||4,ui_message_webview_url_scheme:e.uiMessageWebviewUrlScheme,update_credentials:e.updateCredentials,widget_type:e.widgetType}}function u(e){return e.widget_url.url}function d(n){const i=function(n){if(function(e){return"proxy"in e&&"string"==typeof e.proxy}(n))return function(e){return e.proxy}(n);if(e(n))return function(e){const t=o(e.environment),n=e.userGuid;return`${t}/users/${n}/widget_urls`}(n);throw new t}(n),s=function(t){const n={Accept:"application/vnd.mx.api.v1+json","Content-Type":"application/json"};t.language&&(n["Accept-Language"]=t.language);if(e(t)){const{apiKey:e,clientId:i}=t,s=btoa(`${i}:${e}`);n.Authorization=`Basic ${s}`}const i="cors",s="POST",r=JSON.stringify({widget_url:a(t)});return{method:s,headers:n,body:r,mode:i}}(n);return{url:i,options:s}}function g(e){return e}function m(e){if(!e.ok)throw new n(e.status);return e.json()}function p(e){console.error(e)}!function(e){e.AccountsWidget="accounts_widget",e.BudgetsWidget="budgets_widget",e.ConnectWidget="connect_widget",e.ConnectionsWidget="connections_widget",e.DebtsWidget="debts_widget",e.FinstrongWidget="finstrong_widget",e.GoalsWidget="goals_widget",e.HelpWidget="help_widget",e.MasterWidget="master_widget",e.MiniBudgetsWidget="mini_budgets_widget",e.MiniFinstrongWidget="mini_finstrong_widget",e.MiniPulseCarouselWidget="mini_pulse_carousel_widget",e.MiniSpendingWidget="mini_spending_widget",e.PulseWidget="pulse_widget",e.SettingsWidget="settings_widget",e.SpendingWidget="spending_widget",e.TransactionsWidget="transactions_widget",e.TrendsWidget="trends_widget"}(c||(c={}));class l extends Error{messageType;field;expectedType;gotValue;constructor(e,t,n,i){super(`Unable to decode '${t}' from '${e}'`),this.messageType=e,this.field=t,this.expectedType=n,this.gotValue=i,Object.setPrototypeOf(this,l.prototype)}}class _ extends Error{postMessageType;constructor(e){super(`Unknown post message: ${e}`),this.postMessageType=e,Object.setPrototypeOf(this,_.prototype)}}function h(e,t,n,i,s={}){const r=e[n],o=void 0!==r,c="string"==typeof r,a="number"==typeof r,u="object"==typeof r&&!Array.isArray(r),d="boolean"==typeof r,g="string"===i,m="number"===i,p=i instanceof Array,_="object"==typeof i&&!Array.isArray(i),C="boolean"===i;if(o||!s.optional){if(!o)throw new l(t,n,i,r);if(g&&!c)throw new l(t,n,i,r);if(m&&!a)throw new l(t,n,i,r);if(!(!p||c&&i.includes(r)))throw new l(t,n,i,r);if(_&&!u)throw new l(t,n,i,r);if(C&&!d)throw new l(t,n,i,r);_&&u&&Object.keys(i).forEach((e=>{h(r,t,e,i[e])}))}}var C;!function(e){e.Load="mx/load",e.Ping="mx/ping",e.Navigation="mx/navigation",e.FocusTrap="mx/focusTrap",e.ClientOAuthComplete="mx/client/oauthComplete",e.ConnectLoaded="mx/connect/loaded",e.ConnectEnterCredentials="mx/connect/enterCredentials",e.ConnectInstitutionSearch="mx/connect/institutionSearch",e.ConnectSelectedInstitution="mx/connect/selectedInstitution",e.ConnectMemberConnected="mx/connect/memberConnected",e.ConnectConnectedPrimaryAction="mx/connect/connected/primaryAction",e.ConnectMemberDeleted="mx/connect/memberDeleted",e.ConnectCreateMemberError="mx/connect/createMemberError",e.ConnectMemberStatusUpdate="mx/connect/memberStatusUpdate",e.ConnectOAuthError="mx/connect/oauthError",e.ConnectOAuthRequested="mx/connect/oauthRequested",e.ConnectStepChange="mx/connect/stepChange",e.ConnectSubmitMFA="mx/connect/submitMFA",e.ConnectUpdateCredentials="mx/connect/updateCredentials",e.PulseOverdraftWarningCtaTransferFunds="mx/pulse/overdraftWarning/cta/transferFunds",e.AccountCreated="mx/account/created"}(C||(C={}));const b={[C.Load]:C.Load,[C.Ping]:C.Ping,[C.Navigation]:C.Navigation,[C.FocusTrap]:C.FocusTrap,"mx/focustrap":C.FocusTrap,[C.ClientOAuthComplete]:C.ClientOAuthComplete,"mx/client/oauthcomplete":C.ClientOAuthComplete,[C.ConnectLoaded]:C.ConnectLoaded,[C.ConnectEnterCredentials]:C.ConnectEnterCredentials,"mx/connect/entercredentials":C.ConnectEnterCredentials,[C.ConnectInstitutionSearch]:C.ConnectInstitutionSearch,"mx/connect/institutionsearch":C.ConnectInstitutionSearch,[C.ConnectSelectedInstitution]:C.ConnectSelectedInstitution,"mx/connect/selectedinstitution":C.ConnectSelectedInstitution,[C.ConnectMemberConnected]:C.ConnectMemberConnected,"mx/connect/memberconnected":C.ConnectMemberConnected,[C.ConnectConnectedPrimaryAction]:C.ConnectConnectedPrimaryAction,"mx/connect/connected/primaryaction":C.ConnectConnectedPrimaryAction,[C.ConnectMemberDeleted]:C.ConnectMemberDeleted,"mx/connect/memberdeleted":C.ConnectMemberDeleted,[C.ConnectCreateMemberError]:C.ConnectCreateMemberError,"mx/connect/createmembererror":C.ConnectCreateMemberError,[C.ConnectMemberStatusUpdate]:C.ConnectMemberStatusUpdate,"mx/connect/memberstatusupdate":C.ConnectMemberStatusUpdate,[C.ConnectOAuthError]:C.ConnectOAuthError,"mx/connect/oautherror":C.ConnectOAuthError,[C.ConnectOAuthRequested]:C.ConnectOAuthRequested,"mx/connect/oauthrequested":C.ConnectOAuthRequested,[C.ConnectStepChange]:C.ConnectStepChange,"mx/connect/stepchange":C.ConnectStepChange,[C.ConnectSubmitMFA]:C.ConnectSubmitMFA,"mx/connect/submitmfa":C.ConnectSubmitMFA,[C.ConnectUpdateCredentials]:C.ConnectUpdateCredentials,"mx/connect/updatecredentials":C.ConnectUpdateCredentials,[C.PulseOverdraftWarningCtaTransferFunds]:C.PulseOverdraftWarningCtaTransferFunds,"mx/pulse/overdraftwarning/cta/transferfunds":C.PulseOverdraftWarningCtaTransferFunds,[C.AccountCreated]:C.AccountCreated};function f(e){const t=e.type||"type not provided";let n;if(!t||!(t in b))throw new _(t);n=b[t];const i=function(e,t){switch(e){case C.Load:return{type:e};case C.Ping:return h(t,"mx/ping","user_guid","string"),h(t,"mx/ping","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case C.Navigation:return h(t,"mx/navigation","user_guid","string"),h(t,"mx/navigation","session_guid","string"),h(t,"mx/navigation","did_go_back","boolean"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,did_go_back:t.did_go_back};case C.FocusTrap:return h(t,"mx/focusTrap","user_guid","string"),h(t,"mx/focusTrap","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case C.ClientOAuthComplete:return h(t,"mx/client/oauthComplete","url","string"),{type:e,url:t.url};case C.ConnectLoaded:return h(t,"mx/connect/loaded","user_guid","string"),h(t,"mx/connect/loaded","session_guid","string"),h(t,"mx/connect/loaded","initial_step",["search","selectMember","enterCreds","mfa","connected","loginError","disclosure"]),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,initial_step:t.initial_step};case C.ConnectEnterCredentials:return h(t,"mx/connect/enterCredentials","user_guid","string"),h(t,"mx/connect/enterCredentials","session_guid","string"),h(t,"mx/connect/enterCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution:t.institution};case C.ConnectInstitutionSearch:return h(t,"mx/connect/institutionSearch","user_guid","string"),h(t,"mx/connect/institutionSearch","session_guid","string"),h(t,"mx/connect/institutionSearch","query","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,query:t.query};case C.ConnectSelectedInstitution:return h(t,"mx/connect/selectedInstitution","user_guid","string"),h(t,"mx/connect/selectedInstitution","session_guid","string"),h(t,"mx/connect/selectedInstitution","code","string"),h(t,"mx/connect/selectedInstitution","guid","string"),h(t,"mx/connect/selectedInstitution","name","string"),h(t,"mx/connect/selectedInstitution","url","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,code:t.code,guid:t.guid,name:t.name,url:t.url};case C.ConnectMemberConnected:return h(t,"mx/connect/memberConnected","user_guid","string"),h(t,"mx/connect/memberConnected","session_guid","string"),h(t,"mx/connect/memberConnected","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case C.ConnectConnectedPrimaryAction:return h(t,"mx/connect/connected/primaryAction","user_guid","string"),h(t,"mx/connect/connected/primaryAction","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case C.ConnectMemberDeleted:return h(t,"mx/connect/memberDeleted","user_guid","string"),h(t,"mx/connect/memberDeleted","session_guid","string"),h(t,"mx/connect/memberDeleted","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case C.ConnectCreateMemberError:return h(t,"mx/connect/createMemberError","user_guid","string"),h(t,"mx/connect/createMemberError","session_guid","string"),h(t,"mx/connect/createMemberError","institution_guid","string"),h(t,"mx/connect/createMemberError","institution_code","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution_guid:t.institution_guid,institution_code:t.institution_code};case C.ConnectMemberStatusUpdate:return h(t,"mx/connect/memberStatusUpdate","user_guid","string"),h(t,"mx/connect/memberStatusUpdate","session_guid","string"),h(t,"mx/connect/memberStatusUpdate","member_guid","string"),h(t,"mx/connect/memberStatusUpdate","connection_status","number"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,connection_status:t.connection_status};case C.ConnectOAuthError:return h(t,"mx/connect/oauthError","user_guid","string"),h(t,"mx/connect/oauthError","session_guid","string"),h(t,"mx/connect/oauthError","member_guid","string",{optional:!0}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case C.ConnectOAuthRequested:return h(t,"mx/connect/oauthRequested","user_guid","string"),h(t,"mx/connect/oauthRequested","session_guid","string"),h(t,"mx/connect/oauthRequested","url","string"),h(t,"mx/connect/oauthRequested","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,url:t.url,member_guid:t.member_guid};case C.ConnectStepChange:return h(t,"mx/connect/stepChange","user_guid","string"),h(t,"mx/connect/stepChange","session_guid","string"),h(t,"mx/connect/stepChange","previous","string"),h(t,"mx/connect/stepChange","current","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,previous:t.previous,current:t.current};case C.ConnectSubmitMFA:return h(t,"mx/connect/submitMFA","user_guid","string"),h(t,"mx/connect/submitMFA","session_guid","string"),h(t,"mx/connect/submitMFA","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case C.ConnectUpdateCredentials:return h(t,"mx/connect/updateCredentials","user_guid","string"),h(t,"mx/connect/updateCredentials","session_guid","string"),h(t,"mx/connect/updateCredentials","member_guid","string"),h(t,"mx/connect/updateCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,institution:t.institution};case C.PulseOverdraftWarningCtaTransferFunds:return h(t,"mx/pulse/overdraftWarning/cta/transferFunds","account_guid","string"),h(t,"mx/pulse/overdraftWarning/cta/transferFunds","amount","number"),{type:e,account_guid:t.account_guid,amount:t.amount};case C.AccountCreated:return h(t,"mx/account/created","guid","string"),{type:e,guid:t.guid};default:throw new _(e)}}(n,e.metadata||{});return i}function x(e,t,n){if(t instanceof l)n.onInvalidMessageError?.(e,t);else{if(!(t instanceof _))throw t;n.onInvalidMessageError?.(e,t)}}function y(e,t){t.onMessage?.(e)}function w(e,t){try{y(e,t);!function(e,t){switch(e.type){case C.Load:t.onLoad?.(e);break;case C.Ping:t.onPing?.(e);break;case C.Navigation:t.onNavigation?.(e);break;case C.FocusTrap:t.onFocusTrap?.(e);break;case C.AccountCreated:t.onAccountCreated?.(e);break;default:throw new _(e.type)}}(f(e.data),t)}catch(n){x(e,n,t)}}function M(e,t){try{y(e,t);!function(e,t){switch(e.type){case C.Load:t.onLoad?.(e);break;case C.Ping:t.onPing?.(e);break;case C.Navigation:t.onNavigation?.(e);break;case C.FocusTrap:t.onFocusTrap?.(e);break;case C.AccountCreated:t.onAccountCreated?.(e);break;case C.ConnectLoaded:t.onLoaded?.(e);break;case C.ConnectEnterCredentials:t.onEnterCredentials?.(e);break;case C.ConnectInstitutionSearch:t.onInstitutionSearch?.(e);break;case C.ConnectSelectedInstitution:t.onSelectedInstitution?.(e);break;case C.ConnectMemberConnected:t.onMemberConnected?.(e);break;case C.ConnectConnectedPrimaryAction:t.onConnectedPrimaryAction?.(e);break;case C.ConnectMemberDeleted:t.onMemberDeleted?.(e);break;case C.ConnectCreateMemberError:t.onCreateMemberError?.(e);break;case C.ConnectMemberStatusUpdate:t.onMemberStatusUpdate?.(e);break;case C.ConnectOAuthError:t.onOAuthError?.(e);break;case C.ConnectOAuthRequested:t.onOAuthRequested?.(e);break;case C.ConnectStepChange:t.onStepChange?.(e);break;case C.ConnectSubmitMFA:t.onSubmitMFA?.(e);break;case C.ConnectUpdateCredentials:t.onUpdateCredentials?.(e);break;default:throw new _(e.type)}}(f(e.data),t)}catch(n){x(e,n,t)}}function A(e,t){try{y(e,t);!function(e,t){switch(e.type){case C.Load:t.onLoad?.(e);break;case C.Ping:t.onPing?.(e);break;case C.Navigation:t.onNavigation?.(e);break;case C.FocusTrap:t.onFocusTrap?.(e);break;case C.AccountCreated:t.onAccountCreated?.(e);break;case C.PulseOverdraftWarningCtaTransferFunds:t.onOverdraftWarningCtaTransferFunds?.(e);break;default:throw new _(e.type)}}(f(e.data),t)}catch(n){x(e,n,t)}}class v{constructor(e){if(this.isUnmounting=!1,this.options=e,this.iframe=document.createElement("iframe"),this.style=e.style||{border:"none",height:"550px",width:"320px"},this.messageCallback=e=>{this.handleMXPostMessage(e)},"string"==typeof e.container){const t=document.querySelector(e.container);if(!t)throw new Error(`Unable to find widget container. Ensure that an element matching a selector for '${this.options.container}' is available in the DOM before you initialize the widget.`);this.container=t}else{if(!(e.container instanceof Element))throw new Error("Invalid or missing value for container property, expecting a query selector string or a DOM Element.");this.container=e.container}this.setupIframe(),this.setupListener()}get widgetType(){if(this.options.widgetType)return this.options.widgetType;throw new Error("Missing value for widgetType property, expecting a string (eg. connect_widget).")}get dispatcher(){return w}navigateBack(){return new Promise((e=>{const t=this.iframe.contentWindow,n={mx:!0,type:C.Navigation,payload:{action:"back"}};if(!t)throw new Error("Unable to navigate back, iframe element is not available.");const i=t=>{t.data.type===C.Navigation&&(window.removeEventListener("message",i),e(t.data.metadata.did_go_back))};window.addEventListener("message",i,!1),t.postMessage(JSON.stringify(n),this.targetOrigin)}))}ping(){this.postMessageToWidget({type:"ping"})}unmount(){this.isUnmounting=!0,this.teardownListener(),this.teardownIframe()}get targetOrigin(){var e;const t=/^https?:\/\/[^/]+/i;let n;return this.ssoUrl&&this.ssoUrl.match(t)&&(n=null===(e=this.ssoUrl.match(t))||void 0===e?void 0:e[0]),n||"https://widgets.moneydesktop.com"}handleMXPostMessage(e){e.data.mx&&(this.dispatcher(e,this.options),e.data.type===C.Load&&this.postMessageToWidget({type:"mx/sdk/info",metadata:{sdk:"web",version:"0.0.10"}}))}postMessageToWidget(e){if(!this.iframe.contentWindow)throw new Error("Unable to postMessage to widget, iframe doesn't exist");this.iframe.contentWindow.postMessage(JSON.stringify(e),this.targetOrigin)}setupIframe(){(function(e){if(function(e){return"url"in e&&"string"==typeof e.url}(e))return Promise.resolve(e.url);const t=e.ssoRequestBuilder||d,n=e.ssoRequestPreprocess||g,i=e.ssoRequestPostprocess||u,s=e.onSsoUrlLoadError||p,r=n(t(e));return fetch(r.url,r.options).then(m).then(i).catch(s)})(Object.assign(Object.assign({},this.options),{widgetType:this.widgetType})).then((e=>{!this.isUnmounting&&e&&(this.ssoUrl=e,this.iframe.setAttribute("data-test-id","mx-widget-iframe"),this.iframe.setAttribute("title",this.options.iframeTitle||"Widget Iframe"),this.iframe.setAttribute("src",e),Object.keys(this.style).forEach((e=>{this.iframe.style[e]=this.style[e]})),this.container.appendChild(this.iframe))}))}teardownIframe(){this.container.contains(this.iframe)&&this.container.removeChild(this.iframe)}setupListener(){window.addEventListener("message",this.messageCallback,!1)}teardownListener(){window.removeEventListener("message",this.messageCallback,!1)}}class T extends v{get widgetType(){return c.AccountsWidget}}class S extends v{get widgetType(){return c.BudgetsWidget}}class E extends v{get widgetType(){return c.ConnectWidget}get dispatcher(){return M}}class W extends v{get widgetType(){return c.ConnectionsWidget}}class O extends v{get widgetType(){return c.DebtsWidget}}class k extends v{get widgetType(){return c.FinstrongWidget}}class P extends v{get widgetType(){return c.GoalsWidget}}class I extends v{get widgetType(){return c.HelpWidget}}class F extends v{get widgetType(){return c.MasterWidget}}class U extends v{get widgetType(){return c.MiniBudgetsWidget}}class L extends v{get widgetType(){return c.MiniFinstrongWidget}}class q extends v{get widgetType(){return c.MiniPulseCarouselWidget}get dispatcher(){return A}}class D extends v{get widgetType(){return c.MiniSpendingWidget}}class N extends v{get widgetType(){return c.PulseWidget}get dispatcher(){return A}}class R extends v{get widgetType(){return c.SettingsWidget}}class j extends v{get widgetType(){return c.SpendingWidget}}class $ extends v{get widgetType(){return c.TransactionsWidget}}class G extends v{get widgetType(){return c.TrendsWidget}}export{T as AccountsWidget,S as BudgetsWidget,E as ConnectWidget,W as ConnectionsWidget,O as DebtsWidget,k as FinstrongWidget,P as GoalsWidget,I as HelpWidget,F as MasterWidget,U as MiniBudgetsWidget,L as MiniFinstrongWidget,q as MiniPulseCarouselWidget,D as MiniSpendingWidget,N as PulseWidget,R as SettingsWidget,j as SpendingWidget,$ as TransactionsWidget,G as TrendsWidget,v as Widget};
function e(e){return"clientId"in e&&"string"==typeof e.clientId&&"apiKey"in e&&"string"==typeof e.apiKey&&"userGuid"in e&&"string"==typeof e.userGuid&&"environment"in e&&"string"==typeof e.environment}class t extends Error{constructor(){super("Missing required widget props!\n\nComponent needs one of the following groups of props:\n\n - url\n\n - or -\n\n - proxy\n\n - or -\n\n - apiKey\n - clientId\n - environment\n - userGuid"),Object.setPrototypeOf(this,t.prototype)}}class n extends Error{constructor(e){super(`Request failed: ${e}`),this.statusCode=e,Object.setPrototypeOf(this,n.prototype)}}var i;!function(e){e.SAND="sand",e.QA="qa",e.INT="integration",e.PROD="production"}(i||(i={}));const r={[i.SAND]:i.SAND,[i.QA]:i.QA,[i.INT]:i.INT,[i.PROD]:i.PROD};const s={[i.SAND]:"https://api.sand.internal.mx",[i.QA]:"https://api.qa.internal.mx",[i.INT]:"https://int-api.mx.com",[i.PROD]:"https://api.mx.com"};function o(e){const t=function(e){const t=r[e];if(!t)throw new Error(`Invalid MX environment: ${e}`);return t}(e),n=s[t];if(!n)throw new Error(`Missing host for MX environment: ${e}`);return n}var c;function a(e){return{client_redirect_url:e.clientRedirectUrl,color_scheme:e.colorScheme,current_institution_code:e.currentInstitutionCode,current_institution_guid:e.currentInstitutionGuid,current_member_guid:e.currentMemberGuid,disable_institution_search:e.disableInstitutionSearch,include_transactions:e.includeTransactions,is_mobile_webview:e.isMobileWebview||!1,mode:e.mode,oauth_referral_source:e.oauthReferralSource,ui_message_version:e.uiMessageVersion||4,ui_message_webview_url_scheme:e.uiMessageWebviewUrlScheme,update_credentials:e.updateCredentials,widget_type:e.widgetType}}function u(e){return e.widget_url.url}function d(n){const i=function(n){if(function(e){return"proxy"in e&&"string"==typeof e.proxy}(n))return function(e){return e.proxy}(n);if(e(n))return function(e){const t=o(e.environment),n=e.userGuid;return`${t}/users/${n}/widget_urls`}(n);throw new t}(n),r=function(t){const n={Accept:"application/vnd.mx.api.v1+json","Content-Type":"application/json"};t.language&&(n["Accept-Language"]=t.language);if(e(t)){const{apiKey:e,clientId:i}=t,r=btoa(`${i}:${e}`);n.Authorization=`Basic ${r}`}const i="cors",r="POST",s=JSON.stringify({widget_url:a(t)});return{method:r,headers:n,body:s,mode:i}}(n);return{url:i,options:r}}function g(e){return e}function m(e){if(!e.ok)throw new n(e.status);return e.json()}function p(e){console.error(e)}!function(e){e.AccountsWidget="accounts_widget",e.BudgetsWidget="budgets_widget",e.ConnectWidget="connect_widget",e.ConnectionsWidget="connections_widget",e.DebtsWidget="debts_widget",e.FinstrongWidget="finstrong_widget",e.GoalsWidget="goals_widget",e.HelpWidget="help_widget",e.MasterWidget="master_widget",e.MiniBudgetsWidget="mini_budgets_widget",e.MiniFinstrongWidget="mini_finstrong_widget",e.MiniPulseCarouselWidget="mini_pulse_carousel_widget",e.MiniSpendingWidget="mini_spending_widget",e.PulseWidget="pulse_widget",e.SettingsWidget="settings_widget",e.SpendingWidget="spending_widget",e.TransactionsWidget="transactions_widget",e.TrendsWidget="trends_widget"}(c||(c={}));class l extends Error{messageType;field;expectedType;gotValue;constructor(e,t,n,i){super(`Unable to decode '${t}' from '${e}'`),this.messageType=e,this.field=t,this.expectedType=n,this.gotValue=i,Object.setPrototypeOf(this,l.prototype)}}class _ extends Error{postMessageType;constructor(e){super(`Unknown post message: ${e}`),this.postMessageType=e,Object.setPrototypeOf(this,_.prototype)}}function h(e,t,n,i,r={}){const s=e[n],o=void 0!==s,c="string"==typeof s,a="number"==typeof s,u="object"==typeof s&&!Array.isArray(s),d="boolean"==typeof s,g="string"===i,m="number"===i,p=i instanceof Array,_="object"==typeof i&&!Array.isArray(i),C="boolean"===i;if(o||!r.optional){if(!o)throw new l(t,n,i,s);if(g&&!c)throw new l(t,n,i,s);if(m&&!a)throw new l(t,n,i,s);if(!(!p||c&&i.includes(s)))throw new l(t,n,i,s);if(_&&!u)throw new l(t,n,i,s);if(C&&!d)throw new l(t,n,i,s);_&&u&&Object.keys(i).forEach((e=>{h(s,t,e,i[e])}))}}var C;!function(e){e.Load="mx/load",e.Ping="mx/ping",e.Navigation="mx/navigation",e.FocusTrap="mx/focusTrap",e.ClientOAuthComplete="mx/client/oauthComplete",e.ConnectLoaded="mx/connect/loaded",e.ConnectEnterCredentials="mx/connect/enterCredentials",e.ConnectInstitutionSearch="mx/connect/institutionSearch",e.ConnectSelectedInstitution="mx/connect/selectedInstitution",e.ConnectMemberConnected="mx/connect/memberConnected",e.ConnectConnectedPrimaryAction="mx/connect/connected/primaryAction",e.ConnectMemberDeleted="mx/connect/memberDeleted",e.ConnectCreateMemberError="mx/connect/createMemberError",e.ConnectMemberStatusUpdate="mx/connect/memberStatusUpdate",e.ConnectOAuthError="mx/connect/oauthError",e.ConnectOAuthRequested="mx/connect/oauthRequested",e.ConnectStepChange="mx/connect/stepChange",e.ConnectSubmitMFA="mx/connect/submitMFA",e.ConnectUpdateCredentials="mx/connect/updateCredentials",e.ConnectBackToSearch="mx/connect/backToSearch",e.PulseOverdraftWarningCtaTransferFunds="mx/pulse/overdraftWarning/cta/transferFunds",e.AccountCreated="mx/account/created"}(C||(C={}));const b={[C.Load]:C.Load,[C.Ping]:C.Ping,[C.Navigation]:C.Navigation,[C.FocusTrap]:C.FocusTrap,"mx/focustrap":C.FocusTrap,[C.ClientOAuthComplete]:C.ClientOAuthComplete,"mx/client/oauthcomplete":C.ClientOAuthComplete,[C.ConnectLoaded]:C.ConnectLoaded,[C.ConnectEnterCredentials]:C.ConnectEnterCredentials,"mx/connect/entercredentials":C.ConnectEnterCredentials,[C.ConnectInstitutionSearch]:C.ConnectInstitutionSearch,"mx/connect/institutionsearch":C.ConnectInstitutionSearch,[C.ConnectSelectedInstitution]:C.ConnectSelectedInstitution,"mx/connect/selectedinstitution":C.ConnectSelectedInstitution,[C.ConnectMemberConnected]:C.ConnectMemberConnected,"mx/connect/memberconnected":C.ConnectMemberConnected,[C.ConnectConnectedPrimaryAction]:C.ConnectConnectedPrimaryAction,"mx/connect/connected/primaryaction":C.ConnectConnectedPrimaryAction,[C.ConnectMemberDeleted]:C.ConnectMemberDeleted,"mx/connect/memberdeleted":C.ConnectMemberDeleted,[C.ConnectCreateMemberError]:C.ConnectCreateMemberError,"mx/connect/createmembererror":C.ConnectCreateMemberError,[C.ConnectMemberStatusUpdate]:C.ConnectMemberStatusUpdate,"mx/connect/memberstatusupdate":C.ConnectMemberStatusUpdate,[C.ConnectOAuthError]:C.ConnectOAuthError,"mx/connect/oautherror":C.ConnectOAuthError,[C.ConnectOAuthRequested]:C.ConnectOAuthRequested,"mx/connect/oauthrequested":C.ConnectOAuthRequested,[C.ConnectStepChange]:C.ConnectStepChange,"mx/connect/stepchange":C.ConnectStepChange,[C.ConnectSubmitMFA]:C.ConnectSubmitMFA,"mx/connect/submitmfa":C.ConnectSubmitMFA,[C.ConnectUpdateCredentials]:C.ConnectUpdateCredentials,"mx/connect/updatecredentials":C.ConnectUpdateCredentials,[C.ConnectBackToSearch]:C.ConnectBackToSearch,"mx/connect/backtosearch":C.ConnectBackToSearch,[C.PulseOverdraftWarningCtaTransferFunds]:C.PulseOverdraftWarningCtaTransferFunds,"mx/pulse/overdraftwarning/cta/transferfunds":C.PulseOverdraftWarningCtaTransferFunds,[C.AccountCreated]:C.AccountCreated};function f(e){const t=e.type||"type not provided";let n;if(!t||!(t in b))throw new _(t);n=b[t];const i=function(e,t){switch(e){case C.Load:return{type:e};case C.Ping:return h(t,"mx/ping","user_guid","string"),h(t,"mx/ping","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case C.Navigation:return h(t,"mx/navigation","user_guid","string"),h(t,"mx/navigation","session_guid","string"),h(t,"mx/navigation","did_go_back","boolean"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,did_go_back:t.did_go_back};case C.FocusTrap:return h(t,"mx/focusTrap","user_guid","string"),h(t,"mx/focusTrap","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case C.ClientOAuthComplete:return h(t,"mx/client/oauthComplete","url","string"),{type:e,url:t.url};case C.ConnectLoaded:return h(t,"mx/connect/loaded","user_guid","string"),h(t,"mx/connect/loaded","session_guid","string"),h(t,"mx/connect/loaded","initial_step","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,initial_step:t.initial_step};case C.ConnectEnterCredentials:return h(t,"mx/connect/enterCredentials","user_guid","string"),h(t,"mx/connect/enterCredentials","session_guid","string"),h(t,"mx/connect/enterCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution:t.institution};case C.ConnectInstitutionSearch:return h(t,"mx/connect/institutionSearch","user_guid","string"),h(t,"mx/connect/institutionSearch","session_guid","string"),h(t,"mx/connect/institutionSearch","query","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,query:t.query};case C.ConnectSelectedInstitution:return h(t,"mx/connect/selectedInstitution","user_guid","string"),h(t,"mx/connect/selectedInstitution","session_guid","string"),h(t,"mx/connect/selectedInstitution","code","string"),h(t,"mx/connect/selectedInstitution","guid","string"),h(t,"mx/connect/selectedInstitution","name","string"),h(t,"mx/connect/selectedInstitution","url","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,code:t.code,guid:t.guid,name:t.name,url:t.url};case C.ConnectMemberConnected:return h(t,"mx/connect/memberConnected","user_guid","string"),h(t,"mx/connect/memberConnected","session_guid","string"),h(t,"mx/connect/memberConnected","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case C.ConnectConnectedPrimaryAction:return h(t,"mx/connect/connected/primaryAction","user_guid","string"),h(t,"mx/connect/connected/primaryAction","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case C.ConnectMemberDeleted:return h(t,"mx/connect/memberDeleted","user_guid","string"),h(t,"mx/connect/memberDeleted","session_guid","string"),h(t,"mx/connect/memberDeleted","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case C.ConnectCreateMemberError:return h(t,"mx/connect/createMemberError","user_guid","string"),h(t,"mx/connect/createMemberError","session_guid","string"),h(t,"mx/connect/createMemberError","institution_guid","string"),h(t,"mx/connect/createMemberError","institution_code","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution_guid:t.institution_guid,institution_code:t.institution_code};case C.ConnectMemberStatusUpdate:return h(t,"mx/connect/memberStatusUpdate","user_guid","string"),h(t,"mx/connect/memberStatusUpdate","session_guid","string"),h(t,"mx/connect/memberStatusUpdate","member_guid","string"),h(t,"mx/connect/memberStatusUpdate","connection_status","number"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,connection_status:t.connection_status};case C.ConnectOAuthError:return h(t,"mx/connect/oauthError","user_guid","string"),h(t,"mx/connect/oauthError","session_guid","string"),h(t,"mx/connect/oauthError","member_guid","string",{optional:!0}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case C.ConnectOAuthRequested:return h(t,"mx/connect/oauthRequested","user_guid","string"),h(t,"mx/connect/oauthRequested","session_guid","string"),h(t,"mx/connect/oauthRequested","url","string"),h(t,"mx/connect/oauthRequested","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,url:t.url,member_guid:t.member_guid};case C.ConnectStepChange:return h(t,"mx/connect/stepChange","user_guid","string"),h(t,"mx/connect/stepChange","session_guid","string"),h(t,"mx/connect/stepChange","previous","string"),h(t,"mx/connect/stepChange","current","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,previous:t.previous,current:t.current};case C.ConnectSubmitMFA:return h(t,"mx/connect/submitMFA","user_guid","string"),h(t,"mx/connect/submitMFA","session_guid","string"),h(t,"mx/connect/submitMFA","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case C.ConnectUpdateCredentials:return h(t,"mx/connect/updateCredentials","user_guid","string"),h(t,"mx/connect/updateCredentials","session_guid","string"),h(t,"mx/connect/updateCredentials","member_guid","string"),h(t,"mx/connect/updateCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,institution:t.institution};case C.ConnectBackToSearch:return h(t,"mx/connect/backToSearch","user_guid","string"),h(t,"mx/connect/backToSearch","session_guid","string"),h(t,"mx/connect/backToSearch","context","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,context:t.context};case C.PulseOverdraftWarningCtaTransferFunds:return h(t,"mx/pulse/overdraftWarning/cta/transferFunds","account_guid","string"),h(t,"mx/pulse/overdraftWarning/cta/transferFunds","amount","number"),{type:e,account_guid:t.account_guid,amount:t.amount};case C.AccountCreated:return h(t,"mx/account/created","guid","string"),{type:e,guid:t.guid};default:throw new _(e)}}(n,e.metadata||{});return i}function x(e,t,n){if(t instanceof l)n.onInvalidMessageError?.(e,t);else{if(!(t instanceof _))throw t;n.onInvalidMessageError?.(e,t)}}function y(e,t){t.onMessage?.(e)}function w(e,t){let n;try{y(e,t),n=f(e.data),function(e,t){switch(e.type){case C.Load:t.onLoad?.(e);break;case C.Ping:t.onPing?.(e);break;case C.Navigation:t.onNavigation?.(e);break;case C.FocusTrap:t.onFocusTrap?.(e);break;case C.AccountCreated:t.onAccountCreated?.(e);break;default:throw new _(e.type)}}(n,t)}catch(n){x(e,n,t)}return n}function M(e,t){let n;try{y(e,t),n=f(e.data),function(e,t){switch(e.type){case C.Load:t.onLoad?.(e);break;case C.Ping:t.onPing?.(e);break;case C.Navigation:t.onNavigation?.(e);break;case C.FocusTrap:t.onFocusTrap?.(e);break;case C.AccountCreated:t.onAccountCreated?.(e);break;case C.ConnectLoaded:t.onLoaded?.(e);break;case C.ConnectEnterCredentials:t.onEnterCredentials?.(e);break;case C.ConnectInstitutionSearch:t.onInstitutionSearch?.(e);break;case C.ConnectSelectedInstitution:t.onSelectedInstitution?.(e);break;case C.ConnectMemberConnected:t.onMemberConnected?.(e);break;case C.ConnectConnectedPrimaryAction:t.onConnectedPrimaryAction?.(e);break;case C.ConnectMemberDeleted:t.onMemberDeleted?.(e);break;case C.ConnectCreateMemberError:t.onCreateMemberError?.(e);break;case C.ConnectMemberStatusUpdate:t.onMemberStatusUpdate?.(e);break;case C.ConnectOAuthError:t.onOAuthError?.(e);break;case C.ConnectOAuthRequested:t.onOAuthRequested?.(e);break;case C.ConnectStepChange:t.onStepChange?.(e);break;case C.ConnectSubmitMFA:t.onSubmitMFA?.(e);break;case C.ConnectUpdateCredentials:t.onUpdateCredentials?.(e);break;case C.ConnectBackToSearch:t.onBackToSearch?.(e);break;default:throw new _(e.type)}}(n,t)}catch(n){x(e,n,t)}return n}function T(e,t){let n;try{y(e,t),n=f(e.data),function(e,t){switch(e.type){case C.Load:t.onLoad?.(e);break;case C.Ping:t.onPing?.(e);break;case C.Navigation:t.onNavigation?.(e);break;case C.FocusTrap:t.onFocusTrap?.(e);break;case C.AccountCreated:t.onAccountCreated?.(e);break;case C.PulseOverdraftWarningCtaTransferFunds:t.onOverdraftWarningCtaTransferFunds?.(e);break;default:throw new _(e.type)}}(n,t)}catch(n){x(e,n,t)}return n}class S{constructor(e){if(this.isUnmounting=!1,this.options=e,this.iframe=document.createElement("iframe"),this.style=e.style||{border:"none",height:"550px",width:"320px"},this.messageCallback=e=>{this.handleMXPostMessage(e)},"string"==typeof e.container){const t=document.querySelector(e.container);if(!t)throw new Error(`Unable to find widget container. Ensure that an element matching a selector for '${this.options.container}' is available in the DOM before you initialize the widget.`);this.container=t}else{if(!(e.container instanceof Element))throw new Error("Invalid or missing value for container property, expecting a query selector string or a DOM Element.");this.container=e.container}this.setupIframe(),this.setupListener()}get widgetType(){if(this.options.widgetType)return this.options.widgetType;throw new Error("Missing value for widgetType property, expecting a string (eg. connect_widget).")}get dispatcher(){return w}navigateBack(){return new Promise((e=>{const t=this.iframe.contentWindow,n={mx:!0,type:C.Navigation,payload:{action:"back"}};if(!t)throw new Error("Unable to navigate back, iframe element is not available.");const i=t=>{t.data.type===C.Navigation&&(window.removeEventListener("message",i),e(t.data.metadata.did_go_back))};window.addEventListener("message",i,!1),t.postMessage(JSON.stringify(n),this.targetOrigin)}))}ping(){this.postMessageToWidget({type:"ping"})}unmount(){this.isUnmounting=!0,this.teardownListener(),this.teardownIframe()}get targetOrigin(){var e;const t=/^https?:\/\/[^/]+/i;let n;return this.ssoUrl&&this.ssoUrl.match(t)&&(n=null===(e=this.ssoUrl.match(t))||void 0===e?void 0:e[0]),n||"https://widgets.moneydesktop.com"}handleMXPostMessage(e){e.data.mx&&(this.dispatcher(e,this.options),e.data.type===C.Load&&this.postMessageToWidget({type:"mx/sdk/info",metadata:{sdk:"web",version:"0.0.11"}}))}postMessageToWidget(e){if(!this.iframe.contentWindow)throw new Error("Unable to postMessage to widget, iframe doesn't exist");this.iframe.contentWindow.postMessage(JSON.stringify(e),this.targetOrigin)}setupIframe(){(function(e){if(function(e){return"url"in e&&"string"==typeof e.url}(e))return Promise.resolve(e.url);const t=e.ssoRequestBuilder||d,n=e.ssoRequestPreprocess||g,i=e.ssoRequestPostprocess||u,r=e.onSsoUrlLoadError||p,s=n(t(e));return fetch(s.url,s.options).then(m).then(i).catch(r)})(Object.assign(Object.assign({},this.options),{widgetType:this.widgetType})).then((e=>{!this.isUnmounting&&e&&(this.ssoUrl=e,this.iframe.setAttribute("data-test-id","mx-widget-iframe"),this.iframe.setAttribute("title",this.options.iframeTitle||"Widget Iframe"),this.iframe.setAttribute("src",e),Object.keys(this.style).forEach((e=>{this.iframe.style[e]=this.style[e]})),this.container.appendChild(this.iframe))}))}teardownIframe(){this.container.contains(this.iframe)&&this.container.removeChild(this.iframe)}setupListener(){window.addEventListener("message",this.messageCallback,!1)}teardownListener(){window.removeEventListener("message",this.messageCallback,!1)}}class A extends S{get widgetType(){return c.AccountsWidget}}class v extends S{get widgetType(){return c.BudgetsWidget}}class k extends S{get widgetType(){return c.ConnectWidget}get dispatcher(){return M}}class W extends S{get widgetType(){return c.ConnectionsWidget}}class E extends S{get widgetType(){return c.DebtsWidget}}class O extends S{get widgetType(){return c.FinstrongWidget}}class P extends S{get widgetType(){return c.GoalsWidget}}class I extends S{get widgetType(){return c.HelpWidget}}class F extends S{get widgetType(){return c.MasterWidget}}class U extends S{get widgetType(){return c.MiniBudgetsWidget}}class L extends S{get widgetType(){return c.MiniFinstrongWidget}}class q extends S{get widgetType(){return c.MiniPulseCarouselWidget}get dispatcher(){return T}}class D extends S{get widgetType(){return c.MiniSpendingWidget}}class N extends S{get widgetType(){return c.PulseWidget}get dispatcher(){return T}}class R extends S{get widgetType(){return c.SettingsWidget}}class B extends S{get widgetType(){return c.SpendingWidget}}class j extends S{get widgetType(){return c.TransactionsWidget}}class $ extends S{get widgetType(){return c.TrendsWidget}}export{A as AccountsWidget,v as BudgetsWidget,k as ConnectWidget,W as ConnectionsWidget,E as DebtsWidget,O as FinstrongWidget,P as GoalsWidget,I as HelpWidget,F as MasterWidget,U as MiniBudgetsWidget,L as MiniFinstrongWidget,q as MiniPulseCarouselWidget,D as MiniSpendingWidget,N as PulseWidget,R as SettingsWidget,B as SpendingWidget,j as TransactionsWidget,$ as TrendsWidget,S as Widget};

@@ -1,1 +0,1 @@

export declare const sdkVersion = "0.0.10";
export declare const sdkVersion = "0.0.11";

@@ -202,3 +202,3 @@ (function (global, factory) {

const sdkVersion = "0.0.10";
const sdkVersion = "0.0.11";

@@ -303,2 +303,3 @@ // This is an internal error. Thrown when we are decoding a post message's

Type["ConnectUpdateCredentials"] = "mx/connect/updateCredentials";
Type["ConnectBackToSearch"] = "mx/connect/backToSearch";
Type["PulseOverdraftWarningCtaTransferFunds"] = "mx/pulse/overdraftWarning/cta/transferFunds";

@@ -342,2 +343,4 @@ Type["AccountCreated"] = "mx/account/created";

"mx/connect/updatecredentials": Type.ConnectUpdateCredentials,
[Type.ConnectBackToSearch]: Type.ConnectBackToSearch,
"mx/connect/backtosearch": Type.ConnectBackToSearch,
[Type.PulseOverdraftWarningCtaTransferFunds]: Type.PulseOverdraftWarningCtaTransferFunds,

@@ -396,3 +399,3 @@ "mx/pulse/overdraftwarning/cta/transferfunds": Type.PulseOverdraftWarningCtaTransferFunds,

assertMessageProp(metadata, "mx/connect/loaded", "session_guid", "string");
assertMessageProp(metadata, "mx/connect/loaded", "initial_step", ["search", "selectMember", "enterCreds", "mfa", "connected", "loginError", "disclosure"]);
assertMessageProp(metadata, "mx/connect/loaded", "initial_step", "string");
return {

@@ -550,2 +553,12 @@ type,

};
case Type.ConnectBackToSearch:
assertMessageProp(metadata, "mx/connect/backToSearch", "user_guid", "string");
assertMessageProp(metadata, "mx/connect/backToSearch", "session_guid", "string");
assertMessageProp(metadata, "mx/connect/backToSearch", "context", "string");
return {
type,
user_guid: metadata.user_guid,
session_guid: metadata.session_guid,
context: metadata.context,
};
case Type.PulseOverdraftWarningCtaTransferFunds:

@@ -614,5 +627,6 @@ assertMessageProp(metadata, "mx/pulse/overdraftWarning/cta/transferFunds", "account_guid", "string");

function dispatchWidgetPostMessageEvent(event, callbacks) {
let payload;
try {
dispatchOnMessage(event, callbacks);
const payload = buildPayloadFromPostMessageEventData(event.data);
payload = buildPayloadFromPostMessageEventData(event.data);
dispatchWidgetInternalMessage(payload, callbacks);

@@ -623,2 +637,3 @@ }

}
return payload;
}

@@ -654,5 +669,6 @@ /**

function dispatchConnectPostMessageEvent(event, callbacks) {
let payload;
try {
dispatchOnMessage(event, callbacks);
const payload = buildPayloadFromPostMessageEventData(event.data);
payload = buildPayloadFromPostMessageEventData(event.data);
dispatchConnectInternalMessage(payload, callbacks);

@@ -663,2 +679,3 @@ }

}
return payload;
}

@@ -727,2 +744,5 @@ /**

break;
case Type.ConnectBackToSearch:
callbacks.onBackToSearch?.(payload);
break;
default:

@@ -737,5 +757,6 @@ throw new PostMessageUnknownTypeError(payload.type);

function dispatchPulsePostMessageEvent(event, callbacks) {
let payload;
try {
dispatchOnMessage(event, callbacks);
const payload = buildPayloadFromPostMessageEventData(event.data);
payload = buildPayloadFromPostMessageEventData(event.data);
dispatchPulseInternalMessage(payload, callbacks);

@@ -746,2 +767,3 @@ }

}
return payload;
}

@@ -748,0 +770,0 @@ /**

@@ -1,1 +0,1 @@

!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).widgetSdk={})}(this,(function(e){"use strict";function t(e){return"clientId"in e&&"string"==typeof e.clientId&&"apiKey"in e&&"string"==typeof e.apiKey&&"userGuid"in e&&"string"==typeof e.userGuid&&"environment"in e&&"string"==typeof e.environment}class n extends Error{constructor(){super("Missing required widget props!\n\nComponent needs one of the following groups of props:\n\n - url\n\n - or -\n\n - proxy\n\n - or -\n\n - apiKey\n - clientId\n - environment\n - userGuid"),Object.setPrototypeOf(this,n.prototype)}}class i extends Error{constructor(e){super(`Request failed: ${e}`),this.statusCode=e,Object.setPrototypeOf(this,i.prototype)}}var s;!function(e){e.SAND="sand",e.QA="qa",e.INT="integration",e.PROD="production"}(s||(s={}));const r={[s.SAND]:s.SAND,[s.QA]:s.QA,[s.INT]:s.INT,[s.PROD]:s.PROD};const o={[s.SAND]:"https://api.sand.internal.mx",[s.QA]:"https://api.qa.internal.mx",[s.INT]:"https://int-api.mx.com",[s.PROD]:"https://api.mx.com"};function c(e){const t=function(e){const t=r[e];if(!t)throw new Error(`Invalid MX environment: ${e}`);return t}(e),n=o[t];if(!n)throw new Error(`Missing host for MX environment: ${e}`);return n}var a;function d(e){return{client_redirect_url:e.clientRedirectUrl,color_scheme:e.colorScheme,current_institution_code:e.currentInstitutionCode,current_institution_guid:e.currentInstitutionGuid,current_member_guid:e.currentMemberGuid,disable_institution_search:e.disableInstitutionSearch,include_transactions:e.includeTransactions,is_mobile_webview:e.isMobileWebview||!1,mode:e.mode,oauth_referral_source:e.oauthReferralSource,ui_message_version:e.uiMessageVersion||4,ui_message_webview_url_scheme:e.uiMessageWebviewUrlScheme,update_credentials:e.updateCredentials,widget_type:e.widgetType}}function u(e){return e.widget_url.url}function g(e){const i=function(e){if(function(e){return"proxy"in e&&"string"==typeof e.proxy}(e))return function(e){return e.proxy}(e);if(t(e))return function(e){const t=c(e.environment),n=e.userGuid;return`${t}/users/${n}/widget_urls`}(e);throw new n}(e),s=function(e){const n={Accept:"application/vnd.mx.api.v1+json","Content-Type":"application/json"};e.language&&(n["Accept-Language"]=e.language);if(t(e)){const{apiKey:t,clientId:i}=e,s=btoa(`${i}:${t}`);n.Authorization=`Basic ${s}`}const i="cors",s="POST",r=JSON.stringify({widget_url:d(e)});return{method:s,headers:n,body:r,mode:i}}(e);return{url:i,options:s}}function m(e){return e}function p(e){if(!e.ok)throw new i(e.status);return e.json()}function l(e){console.error(e)}!function(e){e.AccountsWidget="accounts_widget",e.BudgetsWidget="budgets_widget",e.ConnectWidget="connect_widget",e.ConnectionsWidget="connections_widget",e.DebtsWidget="debts_widget",e.FinstrongWidget="finstrong_widget",e.GoalsWidget="goals_widget",e.HelpWidget="help_widget",e.MasterWidget="master_widget",e.MiniBudgetsWidget="mini_budgets_widget",e.MiniFinstrongWidget="mini_finstrong_widget",e.MiniPulseCarouselWidget="mini_pulse_carousel_widget",e.MiniSpendingWidget="mini_spending_widget",e.PulseWidget="pulse_widget",e.SettingsWidget="settings_widget",e.SpendingWidget="spending_widget",e.TransactionsWidget="transactions_widget",e.TrendsWidget="trends_widget"}(a||(a={}));class _ extends Error{messageType;field;expectedType;gotValue;constructor(e,t,n,i){super(`Unable to decode '${t}' from '${e}'`),this.messageType=e,this.field=t,this.expectedType=n,this.gotValue=i,Object.setPrototypeOf(this,_.prototype)}}class h extends Error{postMessageType;constructor(e){super(`Unknown post message: ${e}`),this.postMessageType=e,Object.setPrototypeOf(this,h.prototype)}}function C(e,t,n,i,s={}){const r=e[n],o=void 0!==r,c="string"==typeof r,a="number"==typeof r,d="object"==typeof r&&!Array.isArray(r),u="boolean"==typeof r,g="string"===i,m="number"===i,p=i instanceof Array,l="object"==typeof i&&!Array.isArray(i),h="boolean"===i;if(o||!s.optional){if(!o)throw new _(t,n,i,r);if(g&&!c)throw new _(t,n,i,r);if(m&&!a)throw new _(t,n,i,r);if(!(!p||c&&i.includes(r)))throw new _(t,n,i,r);if(l&&!d)throw new _(t,n,i,r);if(h&&!u)throw new _(t,n,i,r);l&&d&&Object.keys(i).forEach((e=>{C(r,t,e,i[e])}))}}var b;!function(e){e.Load="mx/load",e.Ping="mx/ping",e.Navigation="mx/navigation",e.FocusTrap="mx/focusTrap",e.ClientOAuthComplete="mx/client/oauthComplete",e.ConnectLoaded="mx/connect/loaded",e.ConnectEnterCredentials="mx/connect/enterCredentials",e.ConnectInstitutionSearch="mx/connect/institutionSearch",e.ConnectSelectedInstitution="mx/connect/selectedInstitution",e.ConnectMemberConnected="mx/connect/memberConnected",e.ConnectConnectedPrimaryAction="mx/connect/connected/primaryAction",e.ConnectMemberDeleted="mx/connect/memberDeleted",e.ConnectCreateMemberError="mx/connect/createMemberError",e.ConnectMemberStatusUpdate="mx/connect/memberStatusUpdate",e.ConnectOAuthError="mx/connect/oauthError",e.ConnectOAuthRequested="mx/connect/oauthRequested",e.ConnectStepChange="mx/connect/stepChange",e.ConnectSubmitMFA="mx/connect/submitMFA",e.ConnectUpdateCredentials="mx/connect/updateCredentials",e.PulseOverdraftWarningCtaTransferFunds="mx/pulse/overdraftWarning/cta/transferFunds",e.AccountCreated="mx/account/created"}(b||(b={}));const f={[b.Load]:b.Load,[b.Ping]:b.Ping,[b.Navigation]:b.Navigation,[b.FocusTrap]:b.FocusTrap,"mx/focustrap":b.FocusTrap,[b.ClientOAuthComplete]:b.ClientOAuthComplete,"mx/client/oauthcomplete":b.ClientOAuthComplete,[b.ConnectLoaded]:b.ConnectLoaded,[b.ConnectEnterCredentials]:b.ConnectEnterCredentials,"mx/connect/entercredentials":b.ConnectEnterCredentials,[b.ConnectInstitutionSearch]:b.ConnectInstitutionSearch,"mx/connect/institutionsearch":b.ConnectInstitutionSearch,[b.ConnectSelectedInstitution]:b.ConnectSelectedInstitution,"mx/connect/selectedinstitution":b.ConnectSelectedInstitution,[b.ConnectMemberConnected]:b.ConnectMemberConnected,"mx/connect/memberconnected":b.ConnectMemberConnected,[b.ConnectConnectedPrimaryAction]:b.ConnectConnectedPrimaryAction,"mx/connect/connected/primaryaction":b.ConnectConnectedPrimaryAction,[b.ConnectMemberDeleted]:b.ConnectMemberDeleted,"mx/connect/memberdeleted":b.ConnectMemberDeleted,[b.ConnectCreateMemberError]:b.ConnectCreateMemberError,"mx/connect/createmembererror":b.ConnectCreateMemberError,[b.ConnectMemberStatusUpdate]:b.ConnectMemberStatusUpdate,"mx/connect/memberstatusupdate":b.ConnectMemberStatusUpdate,[b.ConnectOAuthError]:b.ConnectOAuthError,"mx/connect/oautherror":b.ConnectOAuthError,[b.ConnectOAuthRequested]:b.ConnectOAuthRequested,"mx/connect/oauthrequested":b.ConnectOAuthRequested,[b.ConnectStepChange]:b.ConnectStepChange,"mx/connect/stepchange":b.ConnectStepChange,[b.ConnectSubmitMFA]:b.ConnectSubmitMFA,"mx/connect/submitmfa":b.ConnectSubmitMFA,[b.ConnectUpdateCredentials]:b.ConnectUpdateCredentials,"mx/connect/updatecredentials":b.ConnectUpdateCredentials,[b.PulseOverdraftWarningCtaTransferFunds]:b.PulseOverdraftWarningCtaTransferFunds,"mx/pulse/overdraftwarning/cta/transferfunds":b.PulseOverdraftWarningCtaTransferFunds,[b.AccountCreated]:b.AccountCreated};function x(e){const t=e.type||"type not provided";let n;if(!t||!(t in f))throw new h(t);n=f[t];const i=function(e,t){switch(e){case b.Load:return{type:e};case b.Ping:return C(t,"mx/ping","user_guid","string"),C(t,"mx/ping","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case b.Navigation:return C(t,"mx/navigation","user_guid","string"),C(t,"mx/navigation","session_guid","string"),C(t,"mx/navigation","did_go_back","boolean"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,did_go_back:t.did_go_back};case b.FocusTrap:return C(t,"mx/focusTrap","user_guid","string"),C(t,"mx/focusTrap","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case b.ClientOAuthComplete:return C(t,"mx/client/oauthComplete","url","string"),{type:e,url:t.url};case b.ConnectLoaded:return C(t,"mx/connect/loaded","user_guid","string"),C(t,"mx/connect/loaded","session_guid","string"),C(t,"mx/connect/loaded","initial_step",["search","selectMember","enterCreds","mfa","connected","loginError","disclosure"]),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,initial_step:t.initial_step};case b.ConnectEnterCredentials:return C(t,"mx/connect/enterCredentials","user_guid","string"),C(t,"mx/connect/enterCredentials","session_guid","string"),C(t,"mx/connect/enterCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution:t.institution};case b.ConnectInstitutionSearch:return C(t,"mx/connect/institutionSearch","user_guid","string"),C(t,"mx/connect/institutionSearch","session_guid","string"),C(t,"mx/connect/institutionSearch","query","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,query:t.query};case b.ConnectSelectedInstitution:return C(t,"mx/connect/selectedInstitution","user_guid","string"),C(t,"mx/connect/selectedInstitution","session_guid","string"),C(t,"mx/connect/selectedInstitution","code","string"),C(t,"mx/connect/selectedInstitution","guid","string"),C(t,"mx/connect/selectedInstitution","name","string"),C(t,"mx/connect/selectedInstitution","url","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,code:t.code,guid:t.guid,name:t.name,url:t.url};case b.ConnectMemberConnected:return C(t,"mx/connect/memberConnected","user_guid","string"),C(t,"mx/connect/memberConnected","session_guid","string"),C(t,"mx/connect/memberConnected","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectConnectedPrimaryAction:return C(t,"mx/connect/connected/primaryAction","user_guid","string"),C(t,"mx/connect/connected/primaryAction","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case b.ConnectMemberDeleted:return C(t,"mx/connect/memberDeleted","user_guid","string"),C(t,"mx/connect/memberDeleted","session_guid","string"),C(t,"mx/connect/memberDeleted","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectCreateMemberError:return C(t,"mx/connect/createMemberError","user_guid","string"),C(t,"mx/connect/createMemberError","session_guid","string"),C(t,"mx/connect/createMemberError","institution_guid","string"),C(t,"mx/connect/createMemberError","institution_code","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution_guid:t.institution_guid,institution_code:t.institution_code};case b.ConnectMemberStatusUpdate:return C(t,"mx/connect/memberStatusUpdate","user_guid","string"),C(t,"mx/connect/memberStatusUpdate","session_guid","string"),C(t,"mx/connect/memberStatusUpdate","member_guid","string"),C(t,"mx/connect/memberStatusUpdate","connection_status","number"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,connection_status:t.connection_status};case b.ConnectOAuthError:return C(t,"mx/connect/oauthError","user_guid","string"),C(t,"mx/connect/oauthError","session_guid","string"),C(t,"mx/connect/oauthError","member_guid","string",{optional:!0}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectOAuthRequested:return C(t,"mx/connect/oauthRequested","user_guid","string"),C(t,"mx/connect/oauthRequested","session_guid","string"),C(t,"mx/connect/oauthRequested","url","string"),C(t,"mx/connect/oauthRequested","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,url:t.url,member_guid:t.member_guid};case b.ConnectStepChange:return C(t,"mx/connect/stepChange","user_guid","string"),C(t,"mx/connect/stepChange","session_guid","string"),C(t,"mx/connect/stepChange","previous","string"),C(t,"mx/connect/stepChange","current","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,previous:t.previous,current:t.current};case b.ConnectSubmitMFA:return C(t,"mx/connect/submitMFA","user_guid","string"),C(t,"mx/connect/submitMFA","session_guid","string"),C(t,"mx/connect/submitMFA","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectUpdateCredentials:return C(t,"mx/connect/updateCredentials","user_guid","string"),C(t,"mx/connect/updateCredentials","session_guid","string"),C(t,"mx/connect/updateCredentials","member_guid","string"),C(t,"mx/connect/updateCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,institution:t.institution};case b.PulseOverdraftWarningCtaTransferFunds:return C(t,"mx/pulse/overdraftWarning/cta/transferFunds","account_guid","string"),C(t,"mx/pulse/overdraftWarning/cta/transferFunds","amount","number"),{type:e,account_guid:t.account_guid,amount:t.amount};case b.AccountCreated:return C(t,"mx/account/created","guid","string"),{type:e,guid:t.guid};default:throw new h(e)}}(n,e.metadata||{});return i}function y(e,t,n){if(t instanceof _)n.onInvalidMessageError?.(e,t);else{if(!(t instanceof h))throw t;n.onInvalidMessageError?.(e,t)}}function w(e,t){t.onMessage?.(e)}function M(e,t){try{w(e,t);!function(e,t){switch(e.type){case b.Load:t.onLoad?.(e);break;case b.Ping:t.onPing?.(e);break;case b.Navigation:t.onNavigation?.(e);break;case b.FocusTrap:t.onFocusTrap?.(e);break;case b.AccountCreated:t.onAccountCreated?.(e);break;default:throw new h(e.type)}}(x(e.data),t)}catch(n){y(e,n,t)}}function W(e,t){try{w(e,t);!function(e,t){switch(e.type){case b.Load:t.onLoad?.(e);break;case b.Ping:t.onPing?.(e);break;case b.Navigation:t.onNavigation?.(e);break;case b.FocusTrap:t.onFocusTrap?.(e);break;case b.AccountCreated:t.onAccountCreated?.(e);break;case b.ConnectLoaded:t.onLoaded?.(e);break;case b.ConnectEnterCredentials:t.onEnterCredentials?.(e);break;case b.ConnectInstitutionSearch:t.onInstitutionSearch?.(e);break;case b.ConnectSelectedInstitution:t.onSelectedInstitution?.(e);break;case b.ConnectMemberConnected:t.onMemberConnected?.(e);break;case b.ConnectConnectedPrimaryAction:t.onConnectedPrimaryAction?.(e);break;case b.ConnectMemberDeleted:t.onMemberDeleted?.(e);break;case b.ConnectCreateMemberError:t.onCreateMemberError?.(e);break;case b.ConnectMemberStatusUpdate:t.onMemberStatusUpdate?.(e);break;case b.ConnectOAuthError:t.onOAuthError?.(e);break;case b.ConnectOAuthRequested:t.onOAuthRequested?.(e);break;case b.ConnectStepChange:t.onStepChange?.(e);break;case b.ConnectSubmitMFA:t.onSubmitMFA?.(e);break;case b.ConnectUpdateCredentials:t.onUpdateCredentials?.(e);break;default:throw new h(e.type)}}(x(e.data),t)}catch(n){y(e,n,t)}}function A(e,t){try{w(e,t);!function(e,t){switch(e.type){case b.Load:t.onLoad?.(e);break;case b.Ping:t.onPing?.(e);break;case b.Navigation:t.onNavigation?.(e);break;case b.FocusTrap:t.onFocusTrap?.(e);break;case b.AccountCreated:t.onAccountCreated?.(e);break;case b.PulseOverdraftWarningCtaTransferFunds:t.onOverdraftWarningCtaTransferFunds?.(e);break;default:throw new h(e.type)}}(x(e.data),t)}catch(n){y(e,n,t)}}class v{constructor(e){if(this.isUnmounting=!1,this.options=e,this.iframe=document.createElement("iframe"),this.style=e.style||{border:"none",height:"550px",width:"320px"},this.messageCallback=e=>{this.handleMXPostMessage(e)},"string"==typeof e.container){const t=document.querySelector(e.container);if(!t)throw new Error(`Unable to find widget container. Ensure that an element matching a selector for '${this.options.container}' is available in the DOM before you initialize the widget.`);this.container=t}else{if(!(e.container instanceof Element))throw new Error("Invalid or missing value for container property, expecting a query selector string or a DOM Element.");this.container=e.container}this.setupIframe(),this.setupListener()}get widgetType(){if(this.options.widgetType)return this.options.widgetType;throw new Error("Missing value for widgetType property, expecting a string (eg. connect_widget).")}get dispatcher(){return M}navigateBack(){return new Promise((e=>{const t=this.iframe.contentWindow,n={mx:!0,type:b.Navigation,payload:{action:"back"}};if(!t)throw new Error("Unable to navigate back, iframe element is not available.");const i=t=>{t.data.type===b.Navigation&&(window.removeEventListener("message",i),e(t.data.metadata.did_go_back))};window.addEventListener("message",i,!1),t.postMessage(JSON.stringify(n),this.targetOrigin)}))}ping(){this.postMessageToWidget({type:"ping"})}unmount(){this.isUnmounting=!0,this.teardownListener(),this.teardownIframe()}get targetOrigin(){var e;const t=/^https?:\/\/[^/]+/i;let n;return this.ssoUrl&&this.ssoUrl.match(t)&&(n=null===(e=this.ssoUrl.match(t))||void 0===e?void 0:e[0]),n||"https://widgets.moneydesktop.com"}handleMXPostMessage(e){e.data.mx&&(this.dispatcher(e,this.options),e.data.type===b.Load&&this.postMessageToWidget({type:"mx/sdk/info",metadata:{sdk:"web",version:"0.0.10"}}))}postMessageToWidget(e){if(!this.iframe.contentWindow)throw new Error("Unable to postMessage to widget, iframe doesn't exist");this.iframe.contentWindow.postMessage(JSON.stringify(e),this.targetOrigin)}setupIframe(){(function(e){if(function(e){return"url"in e&&"string"==typeof e.url}(e))return Promise.resolve(e.url);const t=e.ssoRequestBuilder||g,n=e.ssoRequestPreprocess||m,i=e.ssoRequestPostprocess||u,s=e.onSsoUrlLoadError||l,r=n(t(e));return fetch(r.url,r.options).then(p).then(i).catch(s)})(Object.assign(Object.assign({},this.options),{widgetType:this.widgetType})).then((e=>{!this.isUnmounting&&e&&(this.ssoUrl=e,this.iframe.setAttribute("data-test-id","mx-widget-iframe"),this.iframe.setAttribute("title",this.options.iframeTitle||"Widget Iframe"),this.iframe.setAttribute("src",e),Object.keys(this.style).forEach((e=>{this.iframe.style[e]=this.style[e]})),this.container.appendChild(this.iframe))}))}teardownIframe(){this.container.contains(this.iframe)&&this.container.removeChild(this.iframe)}setupListener(){window.addEventListener("message",this.messageCallback,!1)}teardownListener(){window.removeEventListener("message",this.messageCallback,!1)}}e.AccountsWidget=class extends v{get widgetType(){return a.AccountsWidget}},e.BudgetsWidget=class extends v{get widgetType(){return a.BudgetsWidget}},e.ConnectWidget=class extends v{get widgetType(){return a.ConnectWidget}get dispatcher(){return W}},e.ConnectionsWidget=class extends v{get widgetType(){return a.ConnectionsWidget}},e.DebtsWidget=class extends v{get widgetType(){return a.DebtsWidget}},e.FinstrongWidget=class extends v{get widgetType(){return a.FinstrongWidget}},e.GoalsWidget=class extends v{get widgetType(){return a.GoalsWidget}},e.HelpWidget=class extends v{get widgetType(){return a.HelpWidget}},e.MasterWidget=class extends v{get widgetType(){return a.MasterWidget}},e.MiniBudgetsWidget=class extends v{get widgetType(){return a.MiniBudgetsWidget}},e.MiniFinstrongWidget=class extends v{get widgetType(){return a.MiniFinstrongWidget}},e.MiniPulseCarouselWidget=class extends v{get widgetType(){return a.MiniPulseCarouselWidget}get dispatcher(){return A}},e.MiniSpendingWidget=class extends v{get widgetType(){return a.MiniSpendingWidget}},e.PulseWidget=class extends v{get widgetType(){return a.PulseWidget}get dispatcher(){return A}},e.SettingsWidget=class extends v{get widgetType(){return a.SettingsWidget}},e.SpendingWidget=class extends v{get widgetType(){return a.SpendingWidget}},e.TransactionsWidget=class extends v{get widgetType(){return a.TransactionsWidget}},e.TrendsWidget=class extends v{get widgetType(){return a.TrendsWidget}},e.Widget=v,Object.defineProperty(e,"__esModule",{value:!0})}));
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).widgetSdk={})}(this,(function(e){"use strict";function t(e){return"clientId"in e&&"string"==typeof e.clientId&&"apiKey"in e&&"string"==typeof e.apiKey&&"userGuid"in e&&"string"==typeof e.userGuid&&"environment"in e&&"string"==typeof e.environment}class n extends Error{constructor(){super("Missing required widget props!\n\nComponent needs one of the following groups of props:\n\n - url\n\n - or -\n\n - proxy\n\n - or -\n\n - apiKey\n - clientId\n - environment\n - userGuid"),Object.setPrototypeOf(this,n.prototype)}}class i extends Error{constructor(e){super(`Request failed: ${e}`),this.statusCode=e,Object.setPrototypeOf(this,i.prototype)}}var s;!function(e){e.SAND="sand",e.QA="qa",e.INT="integration",e.PROD="production"}(s||(s={}));const r={[s.SAND]:s.SAND,[s.QA]:s.QA,[s.INT]:s.INT,[s.PROD]:s.PROD};const o={[s.SAND]:"https://api.sand.internal.mx",[s.QA]:"https://api.qa.internal.mx",[s.INT]:"https://int-api.mx.com",[s.PROD]:"https://api.mx.com"};function c(e){const t=function(e){const t=r[e];if(!t)throw new Error(`Invalid MX environment: ${e}`);return t}(e),n=o[t];if(!n)throw new Error(`Missing host for MX environment: ${e}`);return n}var a;function u(e){return{client_redirect_url:e.clientRedirectUrl,color_scheme:e.colorScheme,current_institution_code:e.currentInstitutionCode,current_institution_guid:e.currentInstitutionGuid,current_member_guid:e.currentMemberGuid,disable_institution_search:e.disableInstitutionSearch,include_transactions:e.includeTransactions,is_mobile_webview:e.isMobileWebview||!1,mode:e.mode,oauth_referral_source:e.oauthReferralSource,ui_message_version:e.uiMessageVersion||4,ui_message_webview_url_scheme:e.uiMessageWebviewUrlScheme,update_credentials:e.updateCredentials,widget_type:e.widgetType}}function d(e){return e.widget_url.url}function g(e){const i=function(e){if(function(e){return"proxy"in e&&"string"==typeof e.proxy}(e))return function(e){return e.proxy}(e);if(t(e))return function(e){const t=c(e.environment),n=e.userGuid;return`${t}/users/${n}/widget_urls`}(e);throw new n}(e),s=function(e){const n={Accept:"application/vnd.mx.api.v1+json","Content-Type":"application/json"};e.language&&(n["Accept-Language"]=e.language);if(t(e)){const{apiKey:t,clientId:i}=e,s=btoa(`${i}:${t}`);n.Authorization=`Basic ${s}`}const i="cors",s="POST",r=JSON.stringify({widget_url:u(e)});return{method:s,headers:n,body:r,mode:i}}(e);return{url:i,options:s}}function m(e){return e}function p(e){if(!e.ok)throw new i(e.status);return e.json()}function l(e){console.error(e)}!function(e){e.AccountsWidget="accounts_widget",e.BudgetsWidget="budgets_widget",e.ConnectWidget="connect_widget",e.ConnectionsWidget="connections_widget",e.DebtsWidget="debts_widget",e.FinstrongWidget="finstrong_widget",e.GoalsWidget="goals_widget",e.HelpWidget="help_widget",e.MasterWidget="master_widget",e.MiniBudgetsWidget="mini_budgets_widget",e.MiniFinstrongWidget="mini_finstrong_widget",e.MiniPulseCarouselWidget="mini_pulse_carousel_widget",e.MiniSpendingWidget="mini_spending_widget",e.PulseWidget="pulse_widget",e.SettingsWidget="settings_widget",e.SpendingWidget="spending_widget",e.TransactionsWidget="transactions_widget",e.TrendsWidget="trends_widget"}(a||(a={}));class _ extends Error{messageType;field;expectedType;gotValue;constructor(e,t,n,i){super(`Unable to decode '${t}' from '${e}'`),this.messageType=e,this.field=t,this.expectedType=n,this.gotValue=i,Object.setPrototypeOf(this,_.prototype)}}class h extends Error{postMessageType;constructor(e){super(`Unknown post message: ${e}`),this.postMessageType=e,Object.setPrototypeOf(this,h.prototype)}}function C(e,t,n,i,s={}){const r=e[n],o=void 0!==r,c="string"==typeof r,a="number"==typeof r,u="object"==typeof r&&!Array.isArray(r),d="boolean"==typeof r,g="string"===i,m="number"===i,p=i instanceof Array,l="object"==typeof i&&!Array.isArray(i),h="boolean"===i;if(o||!s.optional){if(!o)throw new _(t,n,i,r);if(g&&!c)throw new _(t,n,i,r);if(m&&!a)throw new _(t,n,i,r);if(!(!p||c&&i.includes(r)))throw new _(t,n,i,r);if(l&&!u)throw new _(t,n,i,r);if(h&&!d)throw new _(t,n,i,r);l&&u&&Object.keys(i).forEach((e=>{C(r,t,e,i[e])}))}}var b;!function(e){e.Load="mx/load",e.Ping="mx/ping",e.Navigation="mx/navigation",e.FocusTrap="mx/focusTrap",e.ClientOAuthComplete="mx/client/oauthComplete",e.ConnectLoaded="mx/connect/loaded",e.ConnectEnterCredentials="mx/connect/enterCredentials",e.ConnectInstitutionSearch="mx/connect/institutionSearch",e.ConnectSelectedInstitution="mx/connect/selectedInstitution",e.ConnectMemberConnected="mx/connect/memberConnected",e.ConnectConnectedPrimaryAction="mx/connect/connected/primaryAction",e.ConnectMemberDeleted="mx/connect/memberDeleted",e.ConnectCreateMemberError="mx/connect/createMemberError",e.ConnectMemberStatusUpdate="mx/connect/memberStatusUpdate",e.ConnectOAuthError="mx/connect/oauthError",e.ConnectOAuthRequested="mx/connect/oauthRequested",e.ConnectStepChange="mx/connect/stepChange",e.ConnectSubmitMFA="mx/connect/submitMFA",e.ConnectUpdateCredentials="mx/connect/updateCredentials",e.ConnectBackToSearch="mx/connect/backToSearch",e.PulseOverdraftWarningCtaTransferFunds="mx/pulse/overdraftWarning/cta/transferFunds",e.AccountCreated="mx/account/created"}(b||(b={}));const f={[b.Load]:b.Load,[b.Ping]:b.Ping,[b.Navigation]:b.Navigation,[b.FocusTrap]:b.FocusTrap,"mx/focustrap":b.FocusTrap,[b.ClientOAuthComplete]:b.ClientOAuthComplete,"mx/client/oauthcomplete":b.ClientOAuthComplete,[b.ConnectLoaded]:b.ConnectLoaded,[b.ConnectEnterCredentials]:b.ConnectEnterCredentials,"mx/connect/entercredentials":b.ConnectEnterCredentials,[b.ConnectInstitutionSearch]:b.ConnectInstitutionSearch,"mx/connect/institutionsearch":b.ConnectInstitutionSearch,[b.ConnectSelectedInstitution]:b.ConnectSelectedInstitution,"mx/connect/selectedinstitution":b.ConnectSelectedInstitution,[b.ConnectMemberConnected]:b.ConnectMemberConnected,"mx/connect/memberconnected":b.ConnectMemberConnected,[b.ConnectConnectedPrimaryAction]:b.ConnectConnectedPrimaryAction,"mx/connect/connected/primaryaction":b.ConnectConnectedPrimaryAction,[b.ConnectMemberDeleted]:b.ConnectMemberDeleted,"mx/connect/memberdeleted":b.ConnectMemberDeleted,[b.ConnectCreateMemberError]:b.ConnectCreateMemberError,"mx/connect/createmembererror":b.ConnectCreateMemberError,[b.ConnectMemberStatusUpdate]:b.ConnectMemberStatusUpdate,"mx/connect/memberstatusupdate":b.ConnectMemberStatusUpdate,[b.ConnectOAuthError]:b.ConnectOAuthError,"mx/connect/oautherror":b.ConnectOAuthError,[b.ConnectOAuthRequested]:b.ConnectOAuthRequested,"mx/connect/oauthrequested":b.ConnectOAuthRequested,[b.ConnectStepChange]:b.ConnectStepChange,"mx/connect/stepchange":b.ConnectStepChange,[b.ConnectSubmitMFA]:b.ConnectSubmitMFA,"mx/connect/submitmfa":b.ConnectSubmitMFA,[b.ConnectUpdateCredentials]:b.ConnectUpdateCredentials,"mx/connect/updatecredentials":b.ConnectUpdateCredentials,[b.ConnectBackToSearch]:b.ConnectBackToSearch,"mx/connect/backtosearch":b.ConnectBackToSearch,[b.PulseOverdraftWarningCtaTransferFunds]:b.PulseOverdraftWarningCtaTransferFunds,"mx/pulse/overdraftwarning/cta/transferfunds":b.PulseOverdraftWarningCtaTransferFunds,[b.AccountCreated]:b.AccountCreated};function x(e){const t=e.type||"type not provided";let n;if(!t||!(t in f))throw new h(t);n=f[t];const i=function(e,t){switch(e){case b.Load:return{type:e};case b.Ping:return C(t,"mx/ping","user_guid","string"),C(t,"mx/ping","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case b.Navigation:return C(t,"mx/navigation","user_guid","string"),C(t,"mx/navigation","session_guid","string"),C(t,"mx/navigation","did_go_back","boolean"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,did_go_back:t.did_go_back};case b.FocusTrap:return C(t,"mx/focusTrap","user_guid","string"),C(t,"mx/focusTrap","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case b.ClientOAuthComplete:return C(t,"mx/client/oauthComplete","url","string"),{type:e,url:t.url};case b.ConnectLoaded:return C(t,"mx/connect/loaded","user_guid","string"),C(t,"mx/connect/loaded","session_guid","string"),C(t,"mx/connect/loaded","initial_step","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,initial_step:t.initial_step};case b.ConnectEnterCredentials:return C(t,"mx/connect/enterCredentials","user_guid","string"),C(t,"mx/connect/enterCredentials","session_guid","string"),C(t,"mx/connect/enterCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution:t.institution};case b.ConnectInstitutionSearch:return C(t,"mx/connect/institutionSearch","user_guid","string"),C(t,"mx/connect/institutionSearch","session_guid","string"),C(t,"mx/connect/institutionSearch","query","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,query:t.query};case b.ConnectSelectedInstitution:return C(t,"mx/connect/selectedInstitution","user_guid","string"),C(t,"mx/connect/selectedInstitution","session_guid","string"),C(t,"mx/connect/selectedInstitution","code","string"),C(t,"mx/connect/selectedInstitution","guid","string"),C(t,"mx/connect/selectedInstitution","name","string"),C(t,"mx/connect/selectedInstitution","url","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,code:t.code,guid:t.guid,name:t.name,url:t.url};case b.ConnectMemberConnected:return C(t,"mx/connect/memberConnected","user_guid","string"),C(t,"mx/connect/memberConnected","session_guid","string"),C(t,"mx/connect/memberConnected","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectConnectedPrimaryAction:return C(t,"mx/connect/connected/primaryAction","user_guid","string"),C(t,"mx/connect/connected/primaryAction","session_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid};case b.ConnectMemberDeleted:return C(t,"mx/connect/memberDeleted","user_guid","string"),C(t,"mx/connect/memberDeleted","session_guid","string"),C(t,"mx/connect/memberDeleted","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectCreateMemberError:return C(t,"mx/connect/createMemberError","user_guid","string"),C(t,"mx/connect/createMemberError","session_guid","string"),C(t,"mx/connect/createMemberError","institution_guid","string"),C(t,"mx/connect/createMemberError","institution_code","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,institution_guid:t.institution_guid,institution_code:t.institution_code};case b.ConnectMemberStatusUpdate:return C(t,"mx/connect/memberStatusUpdate","user_guid","string"),C(t,"mx/connect/memberStatusUpdate","session_guid","string"),C(t,"mx/connect/memberStatusUpdate","member_guid","string"),C(t,"mx/connect/memberStatusUpdate","connection_status","number"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,connection_status:t.connection_status};case b.ConnectOAuthError:return C(t,"mx/connect/oauthError","user_guid","string"),C(t,"mx/connect/oauthError","session_guid","string"),C(t,"mx/connect/oauthError","member_guid","string",{optional:!0}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectOAuthRequested:return C(t,"mx/connect/oauthRequested","user_guid","string"),C(t,"mx/connect/oauthRequested","session_guid","string"),C(t,"mx/connect/oauthRequested","url","string"),C(t,"mx/connect/oauthRequested","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,url:t.url,member_guid:t.member_guid};case b.ConnectStepChange:return C(t,"mx/connect/stepChange","user_guid","string"),C(t,"mx/connect/stepChange","session_guid","string"),C(t,"mx/connect/stepChange","previous","string"),C(t,"mx/connect/stepChange","current","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,previous:t.previous,current:t.current};case b.ConnectSubmitMFA:return C(t,"mx/connect/submitMFA","user_guid","string"),C(t,"mx/connect/submitMFA","session_guid","string"),C(t,"mx/connect/submitMFA","member_guid","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid};case b.ConnectUpdateCredentials:return C(t,"mx/connect/updateCredentials","user_guid","string"),C(t,"mx/connect/updateCredentials","session_guid","string"),C(t,"mx/connect/updateCredentials","member_guid","string"),C(t,"mx/connect/updateCredentials","institution",{code:"string",guid:"string"}),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,member_guid:t.member_guid,institution:t.institution};case b.ConnectBackToSearch:return C(t,"mx/connect/backToSearch","user_guid","string"),C(t,"mx/connect/backToSearch","session_guid","string"),C(t,"mx/connect/backToSearch","context","string"),{type:e,user_guid:t.user_guid,session_guid:t.session_guid,context:t.context};case b.PulseOverdraftWarningCtaTransferFunds:return C(t,"mx/pulse/overdraftWarning/cta/transferFunds","account_guid","string"),C(t,"mx/pulse/overdraftWarning/cta/transferFunds","amount","number"),{type:e,account_guid:t.account_guid,amount:t.amount};case b.AccountCreated:return C(t,"mx/account/created","guid","string"),{type:e,guid:t.guid};default:throw new h(e)}}(n,e.metadata||{});return i}function y(e,t,n){if(t instanceof _)n.onInvalidMessageError?.(e,t);else{if(!(t instanceof h))throw t;n.onInvalidMessageError?.(e,t)}}function w(e,t){t.onMessage?.(e)}function M(e,t){let n;try{w(e,t),n=x(e.data),function(e,t){switch(e.type){case b.Load:t.onLoad?.(e);break;case b.Ping:t.onPing?.(e);break;case b.Navigation:t.onNavigation?.(e);break;case b.FocusTrap:t.onFocusTrap?.(e);break;case b.AccountCreated:t.onAccountCreated?.(e);break;default:throw new h(e.type)}}(n,t)}catch(n){y(e,n,t)}return n}function T(e,t){let n;try{w(e,t),n=x(e.data),function(e,t){switch(e.type){case b.Load:t.onLoad?.(e);break;case b.Ping:t.onPing?.(e);break;case b.Navigation:t.onNavigation?.(e);break;case b.FocusTrap:t.onFocusTrap?.(e);break;case b.AccountCreated:t.onAccountCreated?.(e);break;case b.ConnectLoaded:t.onLoaded?.(e);break;case b.ConnectEnterCredentials:t.onEnterCredentials?.(e);break;case b.ConnectInstitutionSearch:t.onInstitutionSearch?.(e);break;case b.ConnectSelectedInstitution:t.onSelectedInstitution?.(e);break;case b.ConnectMemberConnected:t.onMemberConnected?.(e);break;case b.ConnectConnectedPrimaryAction:t.onConnectedPrimaryAction?.(e);break;case b.ConnectMemberDeleted:t.onMemberDeleted?.(e);break;case b.ConnectCreateMemberError:t.onCreateMemberError?.(e);break;case b.ConnectMemberStatusUpdate:t.onMemberStatusUpdate?.(e);break;case b.ConnectOAuthError:t.onOAuthError?.(e);break;case b.ConnectOAuthRequested:t.onOAuthRequested?.(e);break;case b.ConnectStepChange:t.onStepChange?.(e);break;case b.ConnectSubmitMFA:t.onSubmitMFA?.(e);break;case b.ConnectUpdateCredentials:t.onUpdateCredentials?.(e);break;case b.ConnectBackToSearch:t.onBackToSearch?.(e);break;default:throw new h(e.type)}}(n,t)}catch(n){y(e,n,t)}return n}function S(e,t){let n;try{w(e,t),n=x(e.data),function(e,t){switch(e.type){case b.Load:t.onLoad?.(e);break;case b.Ping:t.onPing?.(e);break;case b.Navigation:t.onNavigation?.(e);break;case b.FocusTrap:t.onFocusTrap?.(e);break;case b.AccountCreated:t.onAccountCreated?.(e);break;case b.PulseOverdraftWarningCtaTransferFunds:t.onOverdraftWarningCtaTransferFunds?.(e);break;default:throw new h(e.type)}}(n,t)}catch(n){y(e,n,t)}return n}class W{constructor(e){if(this.isUnmounting=!1,this.options=e,this.iframe=document.createElement("iframe"),this.style=e.style||{border:"none",height:"550px",width:"320px"},this.messageCallback=e=>{this.handleMXPostMessage(e)},"string"==typeof e.container){const t=document.querySelector(e.container);if(!t)throw new Error(`Unable to find widget container. Ensure that an element matching a selector for '${this.options.container}' is available in the DOM before you initialize the widget.`);this.container=t}else{if(!(e.container instanceof Element))throw new Error("Invalid or missing value for container property, expecting a query selector string or a DOM Element.");this.container=e.container}this.setupIframe(),this.setupListener()}get widgetType(){if(this.options.widgetType)return this.options.widgetType;throw new Error("Missing value for widgetType property, expecting a string (eg. connect_widget).")}get dispatcher(){return M}navigateBack(){return new Promise((e=>{const t=this.iframe.contentWindow,n={mx:!0,type:b.Navigation,payload:{action:"back"}};if(!t)throw new Error("Unable to navigate back, iframe element is not available.");const i=t=>{t.data.type===b.Navigation&&(window.removeEventListener("message",i),e(t.data.metadata.did_go_back))};window.addEventListener("message",i,!1),t.postMessage(JSON.stringify(n),this.targetOrigin)}))}ping(){this.postMessageToWidget({type:"ping"})}unmount(){this.isUnmounting=!0,this.teardownListener(),this.teardownIframe()}get targetOrigin(){var e;const t=/^https?:\/\/[^/]+/i;let n;return this.ssoUrl&&this.ssoUrl.match(t)&&(n=null===(e=this.ssoUrl.match(t))||void 0===e?void 0:e[0]),n||"https://widgets.moneydesktop.com"}handleMXPostMessage(e){e.data.mx&&(this.dispatcher(e,this.options),e.data.type===b.Load&&this.postMessageToWidget({type:"mx/sdk/info",metadata:{sdk:"web",version:"0.0.11"}}))}postMessageToWidget(e){if(!this.iframe.contentWindow)throw new Error("Unable to postMessage to widget, iframe doesn't exist");this.iframe.contentWindow.postMessage(JSON.stringify(e),this.targetOrigin)}setupIframe(){(function(e){if(function(e){return"url"in e&&"string"==typeof e.url}(e))return Promise.resolve(e.url);const t=e.ssoRequestBuilder||g,n=e.ssoRequestPreprocess||m,i=e.ssoRequestPostprocess||d,s=e.onSsoUrlLoadError||l,r=n(t(e));return fetch(r.url,r.options).then(p).then(i).catch(s)})(Object.assign(Object.assign({},this.options),{widgetType:this.widgetType})).then((e=>{!this.isUnmounting&&e&&(this.ssoUrl=e,this.iframe.setAttribute("data-test-id","mx-widget-iframe"),this.iframe.setAttribute("title",this.options.iframeTitle||"Widget Iframe"),this.iframe.setAttribute("src",e),Object.keys(this.style).forEach((e=>{this.iframe.style[e]=this.style[e]})),this.container.appendChild(this.iframe))}))}teardownIframe(){this.container.contains(this.iframe)&&this.container.removeChild(this.iframe)}setupListener(){window.addEventListener("message",this.messageCallback,!1)}teardownListener(){window.removeEventListener("message",this.messageCallback,!1)}}e.AccountsWidget=class extends W{get widgetType(){return a.AccountsWidget}},e.BudgetsWidget=class extends W{get widgetType(){return a.BudgetsWidget}},e.ConnectWidget=class extends W{get widgetType(){return a.ConnectWidget}get dispatcher(){return T}},e.ConnectionsWidget=class extends W{get widgetType(){return a.ConnectionsWidget}},e.DebtsWidget=class extends W{get widgetType(){return a.DebtsWidget}},e.FinstrongWidget=class extends W{get widgetType(){return a.FinstrongWidget}},e.GoalsWidget=class extends W{get widgetType(){return a.GoalsWidget}},e.HelpWidget=class extends W{get widgetType(){return a.HelpWidget}},e.MasterWidget=class extends W{get widgetType(){return a.MasterWidget}},e.MiniBudgetsWidget=class extends W{get widgetType(){return a.MiniBudgetsWidget}},e.MiniFinstrongWidget=class extends W{get widgetType(){return a.MiniFinstrongWidget}},e.MiniPulseCarouselWidget=class extends W{get widgetType(){return a.MiniPulseCarouselWidget}get dispatcher(){return S}},e.MiniSpendingWidget=class extends W{get widgetType(){return a.MiniSpendingWidget}},e.PulseWidget=class extends W{get widgetType(){return a.PulseWidget}get dispatcher(){return S}},e.SettingsWidget=class extends W{get widgetType(){return a.SettingsWidget}},e.SpendingWidget=class extends W{get widgetType(){return a.SpendingWidget}},e.TransactionsWidget=class extends W{get widgetType(){return a.TransactionsWidget}},e.TrendsWidget=class extends W{get widgetType(){return a.TrendsWidget}},e.Widget=W,Object.defineProperty(e,"__esModule",{value:!0})}));
{
"name": "@mxenabled/web-widget-sdk",
"version": "0.0.10",
"version": "0.0.11",
"description": "MX Web Widget SDK",

@@ -22,2 +22,3 @@ "main": "./dist/cjs/index.js",

"build": "npm run clean && npm run compile && npm run bundle && npm run documentation",
"build:optional": "[ ! -d build ] && npm run build || true",
"bundle": "rollup -c",

@@ -34,2 +35,3 @@ "clean": "npm run clean:build && npm run clean:dist",

"documentation": "cp node_modules/@mxenabled/widget-post-message-definitions/docs/web-sdk-generated.md docs/widget_callback_props.md",
"example": "npm run build:optional && mx-sso-api-proxy run --serve-local-files --open-path example",
"format": "npm run prettier -- -w",

@@ -61,3 +63,3 @@ "lint": "eslint src example jest cypress",

"dependencies": {
"@mxenabled/widget-post-message-definitions": "^1.0.8"
"@mxenabled/widget-post-message-definitions": "^1.2.0"
},

@@ -69,2 +71,3 @@ "devDependencies": {

"@babel/preset-typescript": "^7.16.7",
"@mxenabled/sso-api-proxy": "^1.2.0",
"@rollup/plugin-node-resolve": "^13.1.3",

@@ -71,0 +74,0 @@ "@rollup/plugin-typescript": "^8.3.1",

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc