@mx-cartographer/experiences 9.6.7 → 9.6.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) hide show
  1. package/CHANGELOG.md +8 -0
  2. package/dist/common/components/Banner.es.js +66 -26
  3. package/dist/common/components/Banner.es.js.map +1 -1
  4. package/dist/common/components/ConnectDrawer.d.ts +2 -0
  5. package/dist/common/components/ConnectDrawer.es.js +15 -14
  6. package/dist/common/components/ConnectDrawer.es.js.map +1 -1
  7. package/dist/common/components/ConnectWidgetPanel.d.ts +2 -0
  8. package/dist/common/components/ConnectWidgetPanel.es.js +48 -39
  9. package/dist/common/components/ConnectWidgetPanel.es.js.map +1 -1
  10. package/dist/common/constants/Analytics.d.ts +6 -0
  11. package/dist/common/constants/Analytics.es.js +7 -1
  12. package/dist/common/constants/Analytics.es.js.map +1 -1
  13. package/dist/common/constants/Connect.d.ts +7 -0
  14. package/dist/common/constants/Connect.es.js +6 -4
  15. package/dist/common/constants/Connect.es.js.map +1 -1
  16. package/dist/common/constants/index.d.ts +2 -1
  17. package/dist/common/index.es.js +95 -93
  18. package/dist/core/api/BannerApi.d.ts +1 -0
  19. package/dist/core/api/BannerApi.es.js +4 -2
  20. package/dist/core/api/BannerApi.es.js.map +1 -1
  21. package/dist/core/stores/AppDataStore.d.ts +1 -0
  22. package/dist/core/stores/AppDataStore.es.js +9 -2
  23. package/dist/core/stores/AppDataStore.es.js.map +1 -1
  24. package/dist/core/types/AppData.d.ts +2 -0
  25. package/dist/core/types/localization/InsightsFeedCopy.d.ts +1 -1
  26. package/dist/insights-v2/actionBlocks/MakeTransferActionBlock/layout.es.js +6 -6
  27. package/dist/insights-v2/actionBlocks/MakeTransferActionBlock/layout.es.js.map +1 -1
  28. package/dist/insights-v2/actionBlocks/TransactionHistoryBlock/layout.d.ts +2 -2
  29. package/dist/insights-v2/actionBlocks/TransactionHistoryBlock/layout.es.js +15 -15
  30. package/dist/insights-v2/actionBlocks/TransactionHistoryBlock/layout.es.js.map +1 -1
  31. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/layout.d.ts +1 -1
  32. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/layout.es.js +1 -1
  33. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/layout.es.js.map +1 -1
  34. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/utils.d.ts +1 -1
  35. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/utils.es.js +16 -16
  36. package/dist/insights-v2/blocks/ChartBlocks/BarchartBlock/utils.es.js.map +1 -1
  37. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/AccountBlock.es.js +6 -7
  38. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/AccountBlock.es.js.map +1 -1
  39. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/layout.d.ts +1 -1
  40. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/layout.es.js +14 -30
  41. package/dist/insights-v2/blocks/ComponentBlocks/AccountBlock/layout.es.js.map +1 -1
  42. package/dist/insights-v2/blocks/ComponentBlocks/TransactionBlock/layout.d.ts +8 -8
  43. package/dist/insights-v2/blocks/ComponentBlocks/TransactionBlock/layout.es.js +14 -14
  44. package/dist/insights-v2/blocks/ComponentBlocks/TransactionBlock/layout.es.js.map +1 -1
  45. package/dist/insights-v2/blocks/ComponentBlocks/UpcomingSubscriptionBlock/UpcomingSubscriptionBlock.es.js +1 -1
  46. package/dist/insights-v2/blocks/ComponentBlocks/UpcomingSubscriptionBlock/UpcomingSubscriptionBlock.es.js.map +1 -1
  47. package/dist/insights-v2/blocks/ComponentBlocks/UpcomingSubscriptionBlock/layout.d.ts +4 -3
  48. package/dist/insights-v2/blocks/ComponentBlocks/UpcomingSubscriptionBlock/layout.es.js +2 -2
  49. package/dist/insights-v2/blocks/ComponentBlocks/UpcomingSubscriptionBlock/layout.es.js.map +1 -1
  50. package/package.json +1 -1
package/CHANGELOG.md CHANGED
@@ -1,3 +1,11 @@
1
+ ## [9.6.9] - 10-13-2026
2
+
3
+ - **CHANGED** - Renamed Insights V2 `instance_slot.variant` / CTA `variant` values from beat-specific names to behavior/design names so any beat can reuse them (ditto-contract changes — the backend must send the new values). AccountBlock: `transparent_overdraft`→`overdraft_warning`, `low_account_balance`→`low_balance_alert`, `monthly_credit_card_interest_summary`→`interest_charges_summary`, `celebrate_credit_card_payoff`→`payoff_celebration`, `savings_account_deposit`→`savings_deposit`, and `unified_deposit` + `unified_deposit_emergency_fund` collapsed into a single `deposit_received` (their layout configs were identical). TransactionBlock: `subscription_detected`→`info_wash`, `unexpected_subscription_payment`→`warning_wash`. TransactionHistoryBlock / BarchartBlock: `bill_amount_not_standard`→`not_standard_amount`, `savings_account_balances_summary`→`account_balance` (the `savings_account_balances_summary_drawer_title` copy key becomes `account_balance_drawer_title` — paired `mrs_content` change). MakeTransfer: payload keys `save_an_extra_100`→`save_extra`, `save_enough_to_live_on`→`save_enough` (aligning with the existing `save_extra_title`/`save_enough_title` copy). UpcomingSubscriptionBlock: `upcoming_subscription`→`hero`. Updated all layout maps, mock payloads, stories and tests; unrelated Settings notification copy keys that share these strings were left untouched
4
+
5
+ ## [9.6.8] - 10-13-2026
6
+
7
+ - **ADDED** - Dashboard banner can open the Connect widget in-app: a connect-type banner (`deep_link_type`) opens `ConnectDrawer` instead of an external link, with banner and connect-widget analytics (MEW-3504)
8
+
1
9
  ## [9.6.7] - 10-13-2026
2
10
 
3
11
  - **ADDED** - `debts_block` component block for the Debt Payoff Strategies beat, registered through `BlockType` and the `blocks` registry. Renders the new presentational `DebtPayoffCard` (account row with an optional strategy pill, current balance, and projected payoff / monthly payment / interest rate rows) from facts carried flat on `instance_slot`: `payoff_date`, `monthly_payment` and `interest_rate` are new optional `InstanceSlot` fields beside the shared `amount`, `account_*`, `institution_*` and `status_text`. One look for now (`instance_slot.variant` is not read until a second design branch exists); the logo falls back to a card glyph for credit-card debt and the bank glyph otherwise. Row labels come from a new `insights_feed.debts_block` copy namespace; until a host ships it, the card renders the account row only and warns once (`debts_block: copy namespace missing`), and a slot with no `amount` renders no balance rather than `$0.00`. Mock payloads, beats fixtures, stories and tests (WEC-1298)
@@ -1,39 +1,79 @@
1
- import { useGlobalStore as l } from "../context/hooks.es.js";
2
- import i from "react";
3
- import { observer as n } from "mobx-react-lite";
4
- import m from "@mui/material/Stack";
5
- import { jsx as e } from "react/jsx-runtime";
6
- import { useTheme as s } from "@mui/material/styles";
7
- var b = n(() => {
8
- const t = s(), { appDataStore: { banner: r, loadBanner: a, user: o } } = l();
9
- return i.useEffect(() => {
10
- a().finally();
11
- }, [o]), r?.image_url ? /* @__PURE__ */ e(m, {
1
+ import { useEvent as f, useGlobalCopyStore as g, useGlobalStore as C } from "../context/hooks.es.js";
2
+ import { ANALYTICS_EVENTS as s } from "../constants/Analytics.es.js";
3
+ import { CONNECT_WIDGET_SOURCES as b, DEEP_LINK_TYPE as y } from "../constants/Connect.es.js";
4
+ import E from "./ConnectDrawer.es.js";
5
+ import t from "react";
6
+ import { observer as h } from "mobx-react-lite";
7
+ import k from "@mui/material/Stack";
8
+ import { jsx as r, jsxs as N } from "react/jsx-runtime";
9
+ import { useTheme as S } from "@mui/material/styles";
10
+ var P = h(() => {
11
+ const d = S(), { appDataStore: { banner: e, loadBanner: p, markBannerClicked: m, user: u } } = C(), { onEvent: n } = f(), { connect: _ } = g(), [o, i] = t.useState(!1);
12
+ if (t.useEffect(() => {
13
+ p();
14
+ }, [u]), t.useEffect(() => {
15
+ e?.image_url && n(s.BANNER_VIEW, {
16
+ banner_guid: e.guid,
17
+ deep_link_type: e.deep_link_type
18
+ });
19
+ }, [e?.guid, e?.image_url]), !e?.image_url) return null;
20
+ const l = e.deep_link_type === y.CONNECT, a = () => {
21
+ n(s.BANNER_CLICK, {
22
+ banner_guid: e.guid,
23
+ deep_link_type: e.deep_link_type
24
+ }), l && (e.guid && m(e.guid), i(!0));
25
+ }, c = /* @__PURE__ */ r("img", {
26
+ alt: "",
27
+ referrerPolicy: "no-referrer",
28
+ src: e.image_url,
29
+ style: {
30
+ width: "100%",
31
+ height: "auto",
32
+ border: `1px solid ${d.palette.grey[300]}`,
33
+ display: "block"
34
+ }
35
+ });
36
+ return /* @__PURE__ */ N(t.Fragment, { children: [/* @__PURE__ */ r(k, {
12
37
  sx: {
13
38
  alignItems: "center",
14
39
  width: "100%",
15
40
  mb: 24
16
41
  },
17
- children: /* @__PURE__ */ e("a", {
42
+ children: l ? /* @__PURE__ */ r("button", {
43
+ "aria-label": "Banner",
44
+ onClick: a,
45
+ style: {
46
+ background: "none",
47
+ border: "none",
48
+ cursor: "pointer",
49
+ display: "block",
50
+ padding: 0,
51
+ width: "100%"
52
+ },
53
+ type: "button",
54
+ children: c
55
+ }) : /* @__PURE__ */ r("a", {
18
56
  "aria-label": "Banner",
19
- href: r?.redirect_url,
20
- rel: "noreferrer",
21
- style: { width: "100%" },
57
+ href: e.redirect_url,
58
+ onClick: a,
59
+ referrerPolicy: "no-referrer",
60
+ rel: "noopener noreferrer",
61
+ style: {
62
+ display: "block",
63
+ width: "100%"
64
+ },
22
65
  target: "_blank",
23
- children: /* @__PURE__ */ e("img", {
24
- alt: "",
25
- src: r.image_url,
26
- style: {
27
- width: "100%",
28
- height: "auto",
29
- border: `1px solid ${t.palette.grey[300]}`
30
- }
31
- })
66
+ children: c
32
67
  })
33
- }) : null;
68
+ }), o && /* @__PURE__ */ r(E, {
69
+ onClose: () => i(!1),
70
+ showConnectWidget: o,
71
+ source: b.BANNER,
72
+ title: _?.mini_title ?? ""
73
+ })] });
34
74
  });
35
75
  export {
36
- b as Banner
76
+ P as Banner
37
77
  };
38
78
 
39
79
  //# sourceMappingURL=Banner.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Banner.es.js","names":[],"sources":["../../../src/common/components/Banner.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { useTheme } from '@mui/material/styles'\nimport Stack from '@mui/material/Stack'\n\nimport { useGlobalStore } from '..'\n\nexport const Banner = observer(() => {\n const theme = useTheme()\n const {\n appDataStore: { banner, loadBanner, user },\n } = useGlobalStore()\n\n React.useEffect(() => {\n loadBanner().finally()\n }, [user])\n\n if (!banner?.image_url) {\n return null\n }\n\n return (\n <Stack\n sx={{\n alignItems: 'center',\n width: '100%',\n mb: 24,\n }}\n >\n <a\n aria-label=\"Banner\"\n href={banner?.redirect_url}\n rel=\"noreferrer\"\n style={{\n width: '100%',\n }}\n target=\"_blank\"\n >\n <img\n alt=\"\"\n src={banner.image_url}\n style={{\n width: '100%',\n height: 'auto',\n border: `1px solid ${theme.palette.grey['300']}`,\n }}\n />\n </a>\n </Stack>\n )\n})\n"],"mappings":";;;;;;AAQA,IAAa,IAAS,EAAA,MAAe;AACnC,QAAM,IAAQ,EAAS,GACjB,EACJ,cAAc,EAAE,QAAA,GAAQ,YAAA,GAAY,MAAA,EAAA,EAAA,IAClC,EAAe;AAMnB,SAJA,EAAM,UAAA,MAAgB;AACpB,IAAA,EAAW,EAAE,QAAQ;AAAA,EACvB,GAAG,CAAC,CAAI,CAAC,GAEJ,GAAQ,YAKX,gBAAA,EAAC,GAAD;AAAA,IACE,IAAI;AAAA,MACF,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,IAAI;AAAA,IACN;AAAA,IAEA,UAAA,gBAAA,EAAC,KAAD;AAAA,MACE,cAAW;AAAA,MACX,MAAM,GAAQ;AAAA,MACd,KAAI;AAAA,MACJ,OAAO,EACL,OAAO,OACT;AAAA,MACA,QAAO;AAAA,MAEP,UAAA,gBAAA,EAAC,OAAD;AAAA,QACE,KAAI;AAAA,QACJ,KAAK,EAAO;AAAA,QACZ,OAAO;AAAA,UACL,OAAO;AAAA,UACP,QAAQ;AAAA,UACR,QAAQ,aAAa,EAAM,QAAQ,KAAK,GAAA,CAAA;AAAA,QAC1C;AAAA,MACD,CAAA;AAAA,IACA,CAAA;AAAA,EACE,CAAA,IA9BA;AAgCX,CAAC"}
1
+ {"version":3,"file":"Banner.es.js","names":[],"sources":["../../../src/common/components/Banner.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport { useTheme } from '@mui/material/styles'\nimport Stack from '@mui/material/Stack'\n\nimport ConnectDrawer from './ConnectDrawer'\nimport { useGlobalCopyStore, useGlobalStore } from '..'\nimport { useEvent } from '../context/hooks'\nimport { ANALYTICS_EVENTS, CONNECT_WIDGET_SOURCES, DEEP_LINK_TYPE } from '../constants'\n\nexport const Banner = observer(() => {\n const theme = useTheme()\n const {\n appDataStore: { banner, loadBanner, markBannerClicked, user },\n } = useGlobalStore()\n const { onEvent } = useEvent()\n const { connect: connectCopy } = useGlobalCopyStore()\n const [showConnectWidget, setShowConnectWidget] = React.useState(false)\n\n React.useEffect(() => {\n void loadBanner()\n }, [user])\n\n React.useEffect(() => {\n if (banner?.image_url) {\n onEvent(ANALYTICS_EVENTS.BANNER_VIEW, {\n banner_guid: banner.guid,\n deep_link_type: banner.deep_link_type,\n })\n }\n }, [banner?.guid, banner?.image_url])\n\n if (!banner?.image_url) {\n return null\n }\n\n const isConnect = banner.deep_link_type === DEEP_LINK_TYPE.CONNECT\n\n const handleClick = () => {\n onEvent(ANALYTICS_EVENTS.BANNER_CLICK, {\n banner_guid: banner.guid,\n deep_link_type: banner.deep_link_type,\n })\n\n if (isConnect) {\n // Record the click server-side (see AppDataStore.markBannerClicked).\n if (banner.guid) markBannerClicked(banner.guid)\n setShowConnectWidget(true)\n }\n }\n\n const image = (\n <img\n alt=\"\"\n referrerPolicy=\"no-referrer\"\n src={banner.image_url}\n style={{\n width: '100%',\n height: 'auto',\n border: `1px solid ${theme.palette.grey['300']}`,\n display: 'block',\n }}\n />\n )\n\n return (\n <React.Fragment>\n <Stack\n sx={{\n alignItems: 'center',\n width: '100%',\n mb: 24,\n }}\n >\n {isConnect ? (\n // Connect opens the drawer in-app, so render a button with no href/target:\n // there is no external destination to middle-click or open in a new tab,\n // so every interaction is forced through onClick.\n <button\n aria-label=\"Banner\"\n onClick={handleClick}\n style={{\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n display: 'block',\n padding: 0,\n width: '100%',\n }}\n type=\"button\"\n >\n {image}\n </button>\n ) : (\n // Every other type (incl. today's API, which omits deep_link_type) is a\n // real external link, keeping native middle-click / open-in-new-tab.\n <a\n aria-label=\"Banner\"\n href={banner.redirect_url}\n onClick={handleClick}\n referrerPolicy=\"no-referrer\"\n rel=\"noopener noreferrer\"\n style={{ display: 'block', width: '100%' }}\n target=\"_blank\"\n >\n {image}\n </a>\n )}\n </Stack>\n {showConnectWidget && (\n <ConnectDrawer\n onClose={() => setShowConnectWidget(false)}\n showConnectWidget={showConnectWidget}\n source={CONNECT_WIDGET_SOURCES.BANNER}\n title={connectCopy?.mini_title ?? ''}\n />\n )}\n </React.Fragment>\n )\n})\n"],"mappings":";;;;;;;;;AAWA,IAAa,IAAS,EAAA,MAAe;AACnC,QAAM,IAAQ,EAAS,GACjB,EACJ,cAAc,EAAE,QAAA,GAAQ,YAAA,GAAY,mBAAA,GAAmB,MAAA,EAAA,EAAA,IACrD,EAAe,GACb,EAAE,SAAA,EAAA,IAAY,EAAS,GACvB,EAAE,SAAS,EAAA,IAAgB,EAAmB,GAC9C,CAAC,GAAmB,CAAA,IAAwB,EAAM,SAAS,EAAK;AAetE,MAbA,EAAM,UAAA,MAAgB;AACpB,IAAA,EAAgB;AAAA,EAClB,GAAG,CAAC,CAAI,CAAC,GAET,EAAM,UAAA,MAAgB;AACpB,IAAI,GAAQ,aACV,EAAQ,EAAiB,aAAa;AAAA,MACpC,aAAa,EAAO;AAAA,MACpB,gBAAgB,EAAO;AAAA,IACzB,CAAC;AAAA,EAEL,GAAG,CAAC,GAAQ,MAAM,GAAQ,SAAS,CAAC,GAEhC,CAAC,GAAQ,UACX,QAAO;AAGT,QAAM,IAAY,EAAO,mBAAmB,EAAe,SAErD,IAAA,MAAoB;AACxB,IAAA,EAAQ,EAAiB,cAAc;AAAA,MACrC,aAAa,EAAO;AAAA,MACpB,gBAAgB,EAAO;AAAA,IACzB,CAAC,GAEG,MAEE,EAAO,QAAM,EAAkB,EAAO,IAAI,GAC9C,EAAqB,EAAI;AAAA,EAE7B,GAEM,IACJ,gBAAA,EAAC,OAAD;AAAA,IACE,KAAI;AAAA,IACJ,gBAAe;AAAA,IACf,KAAK,EAAO;AAAA,IACZ,OAAO;AAAA,MACL,OAAO;AAAA,MACP,QAAQ;AAAA,MACR,QAAQ,aAAa,EAAM,QAAQ,KAAK,GAAA,CAAA;AAAA,MACxC,SAAS;AAAA,IACX;AAAA,EACD,CAAA;AAGH,SACE,gBAAA,EAAC,EAAM,UAAP,EAAA,UAAA,CACE,gBAAA,EAAC,GAAD;AAAA,IACE,IAAI;AAAA,MACF,YAAY;AAAA,MACZ,OAAO;AAAA,MACP,IAAI;AAAA,IACN;AAAA,IAEC,UAAA,IAIC,gBAAA,EAAC,UAAD;AAAA,MACE,cAAW;AAAA,MACX,SAAS;AAAA,MACT,OAAO;AAAA,QACL,YAAY;AAAA,QACZ,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,SAAS;AAAA,QACT,SAAS;AAAA,QACT,OAAO;AAAA,MACT;AAAA,MACA,MAAK;AAAA,MAEJ,UAAA;AAAA,IACK,CAAA,IAIR,gBAAA,EAAC,KAAD;AAAA,MACE,cAAW;AAAA,MACX,MAAM,EAAO;AAAA,MACb,SAAS;AAAA,MACT,gBAAe;AAAA,MACf,KAAI;AAAA,MACJ,OAAO;AAAA,QAAE,SAAS;AAAA,QAAS,OAAO;AAAA,MAAO;AAAA,MACzC,QAAO;AAAA,MAEN,UAAA;AAAA,IACA,CAAA;AAAA,EAEA,CAAA,GACN,KACC,gBAAA,EAAC,GAAD;AAAA,IACE,SAAA,MAAe,EAAqB,EAAK;AAAA,IACtB,mBAAA;AAAA,IACnB,QAAQ,EAAuB;AAAA,IAC/B,OAAO,GAAa,cAAc;AAAA,EACnC,CAAA,CAEW,EAAA,CAAA;AAEpB,CAAC"}
@@ -1,8 +1,10 @@
1
1
  import { default as React } from 'react';
2
+ import { ConnectWidgetSource } from '../constants/Connect';
2
3
  interface ConnectDrawerProps {
3
4
  loadWidgetProps?: object;
4
5
  onClose: () => void;
5
6
  showConnectWidget: boolean;
7
+ source?: ConnectWidgetSource;
6
8
  title: string;
7
9
  }
8
10
  declare const _default: React.FunctionComponent<ConnectDrawerProps>;
@@ -1,26 +1,27 @@
1
- import { useAccountStore as i, useGlobalCopyStore as m } from "../context/hooks.es.js";
2
- import s from "./drawer/Drawer.es.js";
3
- import l from "./ConnectWidgetPanel.es.js";
1
+ import { useAccountStore as m, useGlobalCopyStore as s } from "../context/hooks.es.js";
2
+ import l from "./drawer/Drawer.es.js";
3
+ import f from "./ConnectWidgetPanel.es.js";
4
4
  import "react";
5
- import { observer as f } from "mobx-react-lite";
5
+ import { observer as p } from "mobx-react-lite";
6
6
  import { jsx as r } from "react/jsx-runtime";
7
- var p = ({ loadWidgetProps: e, onClose: t, showConnectWidget: o, title: n }) => {
8
- const { refreshAccounts: a } = i(), { connect: c } = m();
9
- return /* @__PURE__ */ r(s, {
10
- ariaLabelClose: c.close_manage_connection_aria,
7
+ var u = ({ loadWidgetProps: e, onClose: t, showConnectWidget: o, source: n, title: a }) => {
8
+ const { refreshAccounts: c } = m(), { connect: i } = s();
9
+ return /* @__PURE__ */ r(l, {
10
+ ariaLabelClose: i.close_manage_connection_aria,
11
11
  isOpen: o,
12
12
  onClose: () => {
13
- t(), a();
13
+ t(), c();
14
14
  },
15
- title: n,
16
- children: /* @__PURE__ */ r(l, {
15
+ title: a,
16
+ children: /* @__PURE__ */ r(f, {
17
17
  isActive: o,
18
- loadWidgetProps: e
18
+ loadWidgetProps: e,
19
+ source: n
19
20
  })
20
21
  });
21
- }, D = f(p);
22
+ }, w = p(u);
22
23
  export {
23
- D as default
24
+ w as default
24
25
  };
25
26
 
26
27
  //# sourceMappingURL=ConnectDrawer.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectDrawer.es.js","names":[],"sources":["../../../src/common/components/ConnectDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport ConnectWidgetPanel from './ConnectWidgetPanel'\nimport { Drawer, useAccountStore, useGlobalCopyStore } from '../../common'\n\ninterface ConnectDrawerProps {\n loadWidgetProps?: object\n onClose: () => void\n showConnectWidget: boolean\n title: string\n}\n\n/**\n * Drawer wrapper around `ConnectWidgetPanel` (SSO url via ConnectStore, the\n * iframe-based `@mxenabled/web-widget-sdk` ConnectWidget, loading/error\n * statuses) with an account refresh on close. Unchanged behaviour for its\n * existing callers; `ConnectWidgetActionBlock` renders `ConnectWidgetPanel`\n * directly instead, since `ActionBlockLayer` already supplies its own Drawer.\n */\nconst ConnectDrawer: React.FC<ConnectDrawerProps> = ({\n loadWidgetProps,\n onClose,\n showConnectWidget,\n title,\n}) => {\n const { refreshAccounts } = useAccountStore()\n const { connect: connectCopy } = useGlobalCopyStore()\n\n return (\n <Drawer\n ariaLabelClose={connectCopy.close_manage_connection_aria}\n isOpen={showConnectWidget}\n onClose={() => {\n onClose()\n refreshAccounts()\n }}\n title={title}\n >\n <ConnectWidgetPanel isActive={showConnectWidget} loadWidgetProps={loadWidgetProps} />\n </Drawer>\n )\n}\n\nexport default observer(ConnectDrawer)\n"],"mappings":";;;;;;AAoBA,IAAM,IAAA,CAA+C,EACnD,iBAAA,GACA,SAAA,GACA,mBAAA,GACA,OAAA,EAAA,MACI;AACJ,QAAM,EAAE,iBAAA,EAAA,IAAoB,EAAgB,GACtC,EAAE,SAAS,EAAA,IAAgB,EAAmB;AAEpD,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,gBAAgB,EAAY;AAAA,IAC5B,QAAQ;AAAA,IACR,SAAA,MAAe;AACb,MAAA,EAAQ,GACR,EAAgB;AAAA,IAClB;AAAA,IACO,OAAA;AAAA,IAEP,UAAA,gBAAA,EAAC,GAAD;AAAA,MAAoB,UAAU;AAAA,MAAoC,iBAAA;AAAA,IAAkB,CAAA;AAAA,EAC9E,CAAA;AAEZ,GAEA,IAAe,EAAS,CAAa"}
1
+ {"version":3,"file":"ConnectDrawer.es.js","names":[],"sources":["../../../src/common/components/ConnectDrawer.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\n\nimport ConnectWidgetPanel from './ConnectWidgetPanel'\nimport { Drawer, useAccountStore, useGlobalCopyStore } from '../../common'\nimport { type ConnectWidgetSource } from '../constants/Connect'\n\ninterface ConnectDrawerProps {\n loadWidgetProps?: object\n onClose: () => void\n showConnectWidget: boolean\n // Optional entry point; forwarded to ConnectWidgetPanel for lifecycle analytics.\n source?: ConnectWidgetSource\n title: string\n}\n\n/**\n * Drawer wrapper around `ConnectWidgetPanel` (SSO url via ConnectStore, the\n * iframe-based `@mxenabled/web-widget-sdk` ConnectWidget, loading/error\n * statuses) with an account refresh on close. Unchanged behaviour for its\n * existing callers; `ConnectWidgetActionBlock` renders `ConnectWidgetPanel`\n * directly instead, since `ActionBlockLayer` already supplies its own Drawer.\n */\nconst ConnectDrawer: React.FC<ConnectDrawerProps> = ({\n loadWidgetProps,\n onClose,\n showConnectWidget,\n source,\n title,\n}) => {\n const { refreshAccounts } = useAccountStore()\n const { connect: connectCopy } = useGlobalCopyStore()\n\n return (\n <Drawer\n ariaLabelClose={connectCopy.close_manage_connection_aria}\n isOpen={showConnectWidget}\n onClose={() => {\n onClose()\n refreshAccounts()\n }}\n title={title}\n >\n <ConnectWidgetPanel\n isActive={showConnectWidget}\n loadWidgetProps={loadWidgetProps}\n source={source}\n />\n </Drawer>\n )\n}\n\nexport default observer(ConnectDrawer)\n"],"mappings":";;;;;;AAuBA,IAAM,IAAA,CAA+C,EACnD,iBAAA,GACA,SAAA,GACA,mBAAA,GACA,QAAA,GACA,OAAA,EAAA,MACI;AACJ,QAAM,EAAE,iBAAA,EAAA,IAAoB,EAAgB,GACtC,EAAE,SAAS,EAAA,IAAgB,EAAmB;AAEpD,SACE,gBAAA,EAAC,GAAD;AAAA,IACE,gBAAgB,EAAY;AAAA,IAC5B,QAAQ;AAAA,IACR,SAAA,MAAe;AACb,MAAA,EAAQ,GACR,EAAgB;AAAA,IAClB;AAAA,IACO,OAAA;AAAA,IAEP,UAAA,gBAAA,EAAC,GAAD;AAAA,MACE,UAAU;AAAA,MACO,iBAAA;AAAA,MACT,QAAA;AAAA,IACT,CAAA;AAAA,EACK,CAAA;AAEZ,GAEA,IAAe,EAAS,CAAa"}
@@ -1,8 +1,10 @@
1
1
  import { default as React } from 'react';
2
+ import { ConnectWidgetSource } from '../constants';
2
3
  export interface ConnectWidgetPanelProps {
3
4
  loadWidgetProps?: object;
4
5
  /** Mounts/unmounts the underlying iframe-based ConnectWidget. */
5
6
  isActive: boolean;
7
+ source?: ConnectWidgetSource;
6
8
  }
7
9
  declare const _default: React.FunctionComponent<ConnectWidgetPanelProps>;
8
10
  export default _default;
@@ -1,44 +1,53 @@
1
- import { useConnectStore as g } from "../context/hooks.es.js";
2
- import { CONNECT_WIDGET_ID as s, MemberConnectionStatus as a } from "../constants/Connect.es.js";
3
- import i from "./ConnectStatus.es.js";
4
- import o from "react";
5
- import { observer as h } from "mobx-react-lite";
6
- import { jsx as l, jsxs as C } from "react/jsx-runtime";
7
- import { useTheme as E } from "@mui/material/styles";
8
- import { ConnectWidget as W } from "@mxenabled/web-widget-sdk";
9
- var x = ({ isActive: r, loadWidgetProps: d }) => {
10
- let n;
11
- const { loadWidget: f } = g(), [m, e] = o.useState(!1), [u, t] = o.useState(!1), { palette: { mode: c } } = E();
12
- return o.useEffect(() => (r ? (e(!0), f({
13
- mode: c,
14
- ...d
15
- }).then((p) => {
16
- n = new W({
17
- container: `#${s}`,
18
- style: {
19
- border: "none",
20
- height: "calc(100% - 62px)",
21
- maxWidth: "450px",
22
- position: "absolute",
23
- width: "100%"
24
- },
25
- url: p.url,
26
- onSsoUrlLoadError: () => {
27
- e(!1), t(!0);
28
- },
29
- onLoad: () => {
30
- e(!1), t(!1);
31
- }
32
- });
33
- })) : (e(!1), t(!1)), () => {
34
- n?.unmount();
35
- }), [r]), /* @__PURE__ */ C("div", {
36
- id: s,
37
- children: [u && /* @__PURE__ */ l(i, { status: a.Error }), m && /* @__PURE__ */ l(i, { status: a.Loading })]
1
+ import { useConnectStore as D, useEvent as W } from "../context/hooks.es.js";
2
+ import { ANALYTICS_EVENTS as n } from "../constants/Analytics.es.js";
3
+ import { CONNECT_WIDGET_ID as d, MemberConnectionStatus as u } from "../constants/Connect.es.js";
4
+ import c from "./ConnectStatus.es.js";
5
+ import t from "react";
6
+ import { observer as g } from "mobx-react-lite";
7
+ import { jsx as C, jsxs as O } from "react/jsx-runtime";
8
+ import { useTheme as I } from "@mui/material/styles";
9
+ import { ConnectWidget as S } from "@mxenabled/web-widget-sdk";
10
+ var L = ({ isActive: a, loadWidgetProps: N, source: e }) => {
11
+ let E;
12
+ const { loadWidget: p } = D(), { onEvent: r } = W(), [T, o] = t.useState(!1), [s, f] = t.useState(!1), i = t.useRef(!1), l = t.useRef(s);
13
+ l.current = s;
14
+ const { palette: { mode: _ } } = I();
15
+ return t.useEffect(() => {
16
+ const m = () => {
17
+ o(!1), f(!0), e && r(n.CONNECT_WIDGET_ERRORED, { source: e });
18
+ };
19
+ return a ? (i.current = !1, e && r(n.CONNECT_WIDGET_OPENED, { source: e }), o(!0), p({
20
+ mode: _,
21
+ ...N
22
+ }).then((h) => {
23
+ E = new S({
24
+ container: `#${d}`,
25
+ style: {
26
+ border: "none",
27
+ height: "calc(100% - 62px)",
28
+ maxWidth: "450px",
29
+ position: "absolute",
30
+ width: "100%"
31
+ },
32
+ url: h.url,
33
+ onSsoUrlLoadError: m,
34
+ onLoad: () => {
35
+ o(!1), f(!1);
36
+ },
37
+ onMemberConnected: () => {
38
+ i.current = !0, e && r(n.CONNECT_WIDGET_COMPLETED, { source: e });
39
+ }
40
+ });
41
+ }).catch(m)) : (o(!1), f(!1)), () => {
42
+ E?.unmount(), a && e && !i.current && !l.current && r(n.CONNECT_WIDGET_ABANDONED, { source: e });
43
+ };
44
+ }, [a]), /* @__PURE__ */ O("div", {
45
+ id: d,
46
+ children: [s && /* @__PURE__ */ C(c, { status: u.Error }), T && /* @__PURE__ */ C(c, { status: u.Loading })]
38
47
  });
39
- }, w = h(x);
48
+ }, A = g(L);
40
49
  export {
41
- w as default
50
+ A as default
42
51
  };
43
52
 
44
53
  //# sourceMappingURL=ConnectWidgetPanel.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectWidgetPanel.es.js","names":[],"sources":["../../../src/common/components/ConnectWidgetPanel.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { useTheme } from '@mui/material/styles'\nimport { ConnectWidget } from '@mxenabled/web-widget-sdk'\n\nimport ConnectStatus from './ConnectStatus'\nimport { CONNECT_WIDGET_ID, MemberConnectionStatus } from '../constants/Connect'\nimport { useConnectStore } from '../context/hooks'\n\nexport interface ConnectWidgetPanelProps {\n loadWidgetProps?: object\n /** Mounts/unmounts the underlying iframe-based ConnectWidget. */\n isActive: boolean\n}\n\n/**\n * The Connect widget itself (SSO url via ConnectStore, the iframe-based\n * `@mxenabled/web-widget-sdk` ConnectWidget, loading/error statuses) with no\n * `Drawer` of its own — content-only, so a caller can put it inside any\n * container (a `Drawer`, as `ConnectDrawer` does, or directly inside another\n * drawer's content slot, as `ConnectWidgetActionBlock` does).\n *\n * Extracted from `ConnectDrawer` so `ConnectWidgetActionBlock` can render just\n * the widget without nesting a second `Drawer` inside `ActionBlockLayer`'s.\n */\nconst ConnectWidgetPanel: React.FC<ConnectWidgetPanelProps> = ({ isActive, loadWidgetProps }) => {\n let connectWidget: ConnectWidget\n\n const { loadWidget } = useConnectStore()\n const [isLoading, setIsLoading] = React.useState(false)\n const [hasError, setHasError] = React.useState(false)\n const {\n palette: { mode },\n } = useTheme()\n\n React.useEffect(() => {\n if (isActive) {\n setIsLoading(true)\n loadWidget({ mode: mode, ...loadWidgetProps }).then((res) => {\n connectWidget = new ConnectWidget({\n container: `#${CONNECT_WIDGET_ID}`,\n style: {\n border: 'none',\n height: 'calc(100% - 62px)',\n maxWidth: '450px',\n position: 'absolute',\n width: '100%',\n },\n url: res.url,\n onSsoUrlLoadError: () => {\n setIsLoading(false)\n setHasError(true)\n },\n onLoad: () => {\n setIsLoading(false)\n setHasError(false)\n },\n })\n })\n } else {\n setIsLoading(false)\n setHasError(false)\n }\n\n return () => {\n connectWidget?.unmount()\n }\n }, [isActive])\n\n return (\n <div id={CONNECT_WIDGET_ID}>\n {hasError && <ConnectStatus status={MemberConnectionStatus.Error} />}\n {isLoading && <ConnectStatus status={MemberConnectionStatus.Loading} />}\n </div>\n )\n}\n\nexport default observer(ConnectWidgetPanel)\n"],"mappings":";;;;;;;;AAyBA,IAAM,IAAA,CAAyD,EAAE,UAAA,GAAU,iBAAA,EAAA,MAAsB;AAC/F,MAAI;AAEJ,QAAM,EAAE,YAAA,EAAA,IAAe,EAAgB,GACjC,CAAC,GAAW,CAAA,IAAgB,EAAM,SAAS,EAAK,GAChD,CAAC,GAAU,CAAA,IAAe,EAAM,SAAS,EAAK,GAC9C,EACJ,SAAS,EAAE,MAAA,EAAA,EAAA,IACT,EAAS;AAEb,SAAA,EAAM,UAAA,OACA,KACF,EAAa,EAAI,GACjB,EAAW;AAAA,IAAQ,MAAA;AAAA,IAAM,GAAG;AAAA,EAAgB,CAAC,EAAE,KAAA,CAAM,MAAQ;AAC3D,IAAA,IAAgB,IAAI,EAAc;AAAA,MAChC,WAAW,IAAI,CAAA;AAAA,MACf,OAAO;AAAA,QACL,QAAQ;AAAA,QACR,QAAQ;AAAA,QACR,UAAU;AAAA,QACV,UAAU;AAAA,QACV,OAAO;AAAA,MACT;AAAA,MACA,KAAK,EAAI;AAAA,MACT,mBAAA,MAAyB;AACvB,QAAA,EAAa,EAAK,GAClB,EAAY,EAAI;AAAA,MAClB;AAAA,MACA,QAAA,MAAc;AACZ,QAAA,EAAa,EAAK,GAClB,EAAY,EAAK;AAAA,MACnB;AAAA,IACF,CAAC;AAAA,EACH,CAAC,MAED,EAAa,EAAK,GAClB,EAAY,EAAK,IAGnB,MAAa;AACX,IAAA,GAAe,QAAQ;AAAA,EACzB,IACC,CAAC,CAAQ,CAAC,GAGX,gBAAA,EAAC,OAAD;AAAA,IAAK,IAAI;AAAA,IAAT,UAAA,CACG,KAAY,gBAAA,EAAC,GAAD,EAAe,QAAQ,EAAuB,MAAQ,CAAA,GAClE,KAAa,gBAAA,EAAC,GAAD,EAAe,QAAQ,EAAuB,QAAU,CAAA,CACnE;AAAA;AAET,GAEA,IAAe,EAAS,CAAkB"}
1
+ {"version":3,"file":"ConnectWidgetPanel.es.js","names":[],"sources":["../../../src/common/components/ConnectWidgetPanel.tsx"],"sourcesContent":["import React from 'react'\nimport { observer } from 'mobx-react-lite'\nimport { useTheme } from '@mui/material/styles'\nimport { ConnectWidget } from '@mxenabled/web-widget-sdk'\n\nimport ConnectStatus from './ConnectStatus'\nimport {\n ANALYTICS_EVENTS,\n CONNECT_WIDGET_ID,\n MemberConnectionStatus,\n type ConnectWidgetSource,\n} from '../constants'\nimport { useConnectStore, useEvent } from '../context/hooks'\n\nexport interface ConnectWidgetPanelProps {\n loadWidgetProps?: object\n /** Mounts/unmounts the underlying iframe-based ConnectWidget. */\n isActive: boolean\n // Optional entry point. When set, the widget lifecycle emits PostHog events:\n // opened on open, completed on member-connect, errored on load failure, and\n // abandoned when an open session ends (close/unmount) without connecting or\n // erroring. Emits nothing when unset, so existing call sites are unaffected.\n source?: ConnectWidgetSource\n}\n\n/**\n * The Connect widget itself (SSO url via ConnectStore, the iframe-based\n * `@mxenabled/web-widget-sdk` ConnectWidget, loading/error statuses) with no\n * `Drawer` of its own — content-only, so a caller can put it inside any\n * container (a `Drawer`, as `ConnectDrawer` does, or directly inside another\n * drawer's content slot, as `ConnectWidgetActionBlock` does).\n *\n * Extracted from `ConnectDrawer` so `ConnectWidgetActionBlock` can render just\n * the widget without nesting a second `Drawer` inside `ActionBlockLayer`'s.\n */\nconst ConnectWidgetPanel: React.FC<ConnectWidgetPanelProps> = ({\n isActive,\n loadWidgetProps,\n source,\n}) => {\n let connectWidget: ConnectWidget\n\n const { loadWidget } = useConnectStore()\n const { onEvent } = useEvent()\n const [isLoading, setIsLoading] = React.useState(false)\n const [hasError, setHasError] = React.useState(false)\n const hasConnectedMember = React.useRef(false)\n // Latest-value mirror of hasError so the effect cleanup's `abandoned` check\n // reads the current error, not the stale value captured when the effect ran.\n const hasErrorRef = React.useRef(hasError)\n hasErrorRef.current = hasError\n const {\n palette: { mode },\n } = useTheme()\n\n React.useEffect(() => {\n // Terminal failure path (SSO url fetch rejects or the widget reports a load\n // error): show the error state and close the funnel with an errored event.\n const handleError = () => {\n setIsLoading(false)\n setHasError(true)\n if (source) onEvent(ANALYTICS_EVENTS.CONNECT_WIDGET_ERRORED, { source })\n }\n\n if (isActive) {\n hasConnectedMember.current = false\n if (source) onEvent(ANALYTICS_EVENTS.CONNECT_WIDGET_OPENED, { source })\n setIsLoading(true)\n loadWidget({ mode: mode, ...loadWidgetProps })\n .then((res) => {\n connectWidget = new ConnectWidget({\n container: `#${CONNECT_WIDGET_ID}`,\n style: {\n border: 'none',\n height: 'calc(100% - 62px)',\n maxWidth: '450px',\n position: 'absolute',\n width: '100%',\n },\n url: res.url,\n onSsoUrlLoadError: handleError,\n onLoad: () => {\n setIsLoading(false)\n setHasError(false)\n },\n onMemberConnected: () => {\n hasConnectedMember.current = true\n if (source) onEvent(ANALYTICS_EVENTS.CONNECT_WIDGET_COMPLETED, { source })\n },\n })\n })\n .catch(handleError)\n } else {\n setIsLoading(false)\n setHasError(false)\n }\n\n return () => {\n connectWidget?.unmount()\n // Only an open session's cleanup (isActive captured true) is an abandonment;\n // skip initial-mount cleanup and completed/errored runs (the latter already\n // emitted their own terminal event).\n if (isActive && source && !hasConnectedMember.current && !hasErrorRef.current) {\n onEvent(ANALYTICS_EVENTS.CONNECT_WIDGET_ABANDONED, { source })\n }\n }\n }, [isActive])\n\n return (\n <div id={CONNECT_WIDGET_ID}>\n {hasError && <ConnectStatus status={MemberConnectionStatus.Error} />}\n {isLoading && <ConnectStatus status={MemberConnectionStatus.Loading} />}\n </div>\n )\n}\n\nexport default observer(ConnectWidgetPanel)\n"],"mappings":";;;;;;;;;AAmCA,IAAM,IAAA,CAAyD,EAC7D,UAAA,GACA,iBAAA,GACA,QAAA,EAAA,MACI;AACJ,MAAI;AAEJ,QAAM,EAAE,YAAA,EAAA,IAAe,EAAgB,GACjC,EAAE,SAAA,EAAA,IAAY,EAAS,GACvB,CAAC,GAAW,CAAA,IAAgB,EAAM,SAAS,EAAK,GAChD,CAAC,GAAU,CAAA,IAAe,EAAM,SAAS,EAAK,GAC9C,IAAqB,EAAM,OAAO,EAAK,GAGvC,IAAc,EAAM,OAAO,CAAQ;AACzC,EAAA,EAAY,UAAU;AACtB,QAAM,EACJ,SAAS,EAAE,MAAA,EAAA,EAAA,IACT,EAAS;AAEb,SAAA,EAAM,UAAA,MAAgB;AAGpB,UAAM,IAAA,MAAoB;AACxB,MAAA,EAAa,EAAK,GAClB,EAAY,EAAI,GACZ,KAAQ,EAAQ,EAAiB,wBAAwB,EAAE,QAAA,EAAO,CAAC;AAAA,IACzE;AAEA,WAAI,KACF,EAAmB,UAAU,IACzB,KAAQ,EAAQ,EAAiB,uBAAuB,EAAE,QAAA,EAAO,CAAC,GACtE,EAAa,EAAI,GACjB,EAAW;AAAA,MAAQ,MAAA;AAAA,MAAM,GAAG;AAAA,IAAgB,CAAC,EAC1C,KAAA,CAAM,MAAQ;AACb,MAAA,IAAgB,IAAI,EAAc;AAAA,QAChC,WAAW,IAAI,CAAA;AAAA,QACf,OAAO;AAAA,UACL,QAAQ;AAAA,UACR,QAAQ;AAAA,UACR,UAAU;AAAA,UACV,UAAU;AAAA,UACV,OAAO;AAAA,QACT;AAAA,QACA,KAAK,EAAI;AAAA,QACT,mBAAmB;AAAA,QACnB,QAAA,MAAc;AACZ,UAAA,EAAa,EAAK,GAClB,EAAY,EAAK;AAAA,QACnB;AAAA,QACA,mBAAA,MAAyB;AACvB,UAAA,EAAmB,UAAU,IACzB,KAAQ,EAAQ,EAAiB,0BAA0B,EAAE,QAAA,EAAO,CAAC;AAAA,QAC3E;AAAA,MACF,CAAC;AAAA,IACH,CAAC,EACA,MAAM,CAAW,MAEpB,EAAa,EAAK,GAClB,EAAY,EAAK,IAGnB,MAAa;AACX,MAAA,GAAe,QAAQ,GAInB,KAAY,KAAU,CAAC,EAAmB,WAAW,CAAC,EAAY,WACpE,EAAQ,EAAiB,0BAA0B,EAAE,QAAA,EAAO,CAAC;AAAA,IAEjE;AAAA,EACF,GAAG,CAAC,CAAQ,CAAC,GAGX,gBAAA,EAAC,OAAD;AAAA,IAAK,IAAI;AAAA,IAAT,UAAA,CACG,KAAY,gBAAA,EAAC,GAAD,EAAe,QAAQ,EAAuB,MAAQ,CAAA,GAClE,KAAa,gBAAA,EAAC,GAAD,EAAe,QAAQ,EAAuB,QAAU,CAAA,CACnE;AAAA;AAET,GAEA,IAAe,EAAS,CAAkB"}
@@ -132,4 +132,10 @@ export declare const ANALYTICS_EVENTS: {
132
132
  TRENDS_LOAD_WIDGET: string;
133
133
  TRENDS_VIEW_TRANSACTIONS: string;
134
134
  WIDGET_SIZE_CHANGED: string;
135
+ BANNER_VIEW: string;
136
+ BANNER_CLICK: string;
137
+ CONNECT_WIDGET_OPENED: string;
138
+ CONNECT_WIDGET_COMPLETED: string;
139
+ CONNECT_WIDGET_ABANDONED: string;
140
+ CONNECT_WIDGET_ERRORED: string;
135
141
  };
@@ -131,7 +131,13 @@ var _ = {
131
131
  TRENDS_HOVER_LEGEND: "trends_hover_ChartLegend",
132
132
  TRENDS_LOAD_WIDGET: "trends_load_widget",
133
133
  TRENDS_VIEW_TRANSACTIONS: "trends_view_transactions",
134
- WIDGET_SIZE_CHANGED: "widget_size_changed"
134
+ WIDGET_SIZE_CHANGED: "widget_size_changed",
135
+ BANNER_VIEW: "viewed_banner",
136
+ BANNER_CLICK: "clicked_banner",
137
+ CONNECT_WIDGET_OPENED: "opened_connect_widget",
138
+ CONNECT_WIDGET_COMPLETED: "completed_connect_widget",
139
+ CONNECT_WIDGET_ABANDONED: "abandoned_connect_widget",
140
+ CONNECT_WIDGET_ERRORED: "errored_connect_widget"
135
141
  };
136
142
  export {
137
143
  _ as ANALYTICS_EVENTS
@@ -1 +1 @@
1
- {"version":3,"file":"Analytics.es.js","names":[],"sources":["../../../src/common/constants/Analytics.ts"],"sourcesContent":["export const ANALYTICS_EVENTS = {\n ACCOUNTS_CLICK_ACCOUNT: 'accounts_widget_click_account',\n ACCOUNTS_CLICK_CONNECT: 'accounts_widget_click_connect_accounts',\n ACCOUNTS_CLICK_FILTER: 'accounts_widget_click_filter_accounts',\n ACCOUNTS_CLICK_SYNC: 'accounts_widget_click_sync',\n ACCOUNT_DETAILS_CLICK_HIDE: 'account_details_click_hide_account',\n ACCOUNT_DETAILS_CLICK_MARK_CLOSED: 'account_details_click_mark_as_closed',\n ACCOUNT_DETAILS_CLICK_MARK_DUPLICATE: 'account_details_click_mark_as_duplicate',\n ACCOUNT_DETAILS_CLICK_TRANSACTION: 'account_details_click_transaction',\n ACCOUNT_DETAILS_VIEW: 'account_details',\n ACCOUNT_DETAILS_VIEW_TRANSACTIONS: 'account_details_transactions',\n BUDGETS_CLICK_ADD: 'budgets_widget_click_add_budget',\n BUDGETS_CLICK_BUDGET_CATEGORY: 'budgets_widget_click_budget_category',\n BUDGETS_CLICK_EDIT_INCOME: 'budgets_widget_click_edit_income',\n BUDGETS_CLICK_FILTER: 'budgets_widget_click_filter_accounts',\n BUDGETS_VIEW: 'budgets',\n CASH_FLOW_CLICK_FILTER: 'cash_flow_widget_click_filter_accounts',\n CASH_FLOW_CLICK_SETTINGS: 'cash_flow_widget_click_settings',\n DEBTS_CLICK_CHART_AREA: 'debts_widget_click_chart_area',\n DEBTS_CLICK_FILTER: 'debts_widget_click_filter_accounts',\n DEBTS_CLICK_PAYDOWN: 'debts_widget_click_paydown',\n DEBTS_CLICK_PRIORITY: 'debts_widget_click_priority',\n DEBTS_CLICK_PRIORITIZE: 'debts_widget_click_prioritize',\n DEBTS_CLICK_SNOWBALL_CTA: 'debts_widget_click_snowball_cta',\n DEBTS_CLICK_TABLE_ROW: 'debts_widget_click_table_row',\n DEBTS_CLICK_TABLE_SORT: 'debts_widget_click_table_sort',\n DEBTS_SAVE_BALANCE_ACTION: 'debts_widget_click_balance_action',\n DEBTS_SAVE_PAYDOWN_ACTION: 'debts_widget_click_paydown_action',\n DEBTS_SAVE_PAYMENT_ACTION: 'debts_widget_click_payment_action',\n DEBTS_SAVE_RATE_ACTION: 'debts_widget_click_rate_action',\n DEBTS_VIEW: 'debts',\n DEBT_DETAILS_VIEW: 'debt_details',\n DEBT_SCHEDULE_VIEW: 'debt_schedule',\n GOALS_CLICK_ADD: 'goals_widget_click_add',\n GOALS_CLICK_FILTER: 'goals_widget_click_filter_accounts',\n GOALS_VIEW: 'goals',\n GOALS_MICRO_WIDGET_CTA: 'goals_micro_widget_click_see_details_cta',\n HELP_CLICK_CATEGORY: 'help_click_category',\n HELP_CLICK_NEED_MORE_ASSISTANCE: 'help_click_needMoreAssistance',\n HELP_CLICK_OPEN_CASE: 'help_click_openCase',\n HELP_CLICK_REQUEST_SUPPORT: 'help_click_requestSupport',\n HELP_CLICK_SUPPORT_FOR_INSTITUTION: 'help_click_supportForInstitution',\n HELP_CLICK_SUPPORT_FOR_MISSING_INSTITUTION: 'help_click_supportForMissingInstitution',\n HELP_CLICK_SUPPORT_TOPIC: 'help_click_supportTopic',\n HELP_CLICK_TOPIC: 'help_click_topic',\n HELP_EXPAND_CATEGORY: 'help_expand_category',\n HELP_EXPAND_TOPIC: 'help_expand_topic',\n HELP_SUBMIT_SUPPORT_REQUEST: 'help_submit_supportRequest',\n INVESTMENTS: 'Investments',\n INVESTMENT_WIDGET_ACCOUNT_FILTER_CLICK: 'investment_widget_account_filter_click',\n INVESTMENT_WIDGET_ALLOCATION_CLICK: 'investment_widget_allocation_click',\n INVESTMENT_WIDGET_ANALYSIS_CLICK: 'investment_widget_analysis_click',\n INVESTMENT_WIDGET_DETAILS_CLICK: 'investment_widget_details_click',\n NET_WORTH_VIEW: 'netWorth',\n NETWORTH_MICRO_WIDGET_CTA: 'net_worth_micro_widget_click_see_details_cta',\n NET_WORTH_WIDGET_CLICK_ASSETS_LIABILITIES: 'net_worth_widget_click_view_assets_liabilities',\n NET_WORTH_WIDGET_CLICK_FILTER: 'net_worth_widget_click_filter_accounts',\n NET_WORTH_WIDGET_CLICK_TIMEFRAME: 'netWorth_click_timePeriod',\n RECURRING_ACTIVITY_CLICK_ADD_EXPENSE:\n 'recurring_transactions_widget_manage_expenses_click_add_expense',\n RECURRING_ACTIVITY_CLICK_ADD_INCOME:\n 'recurring_transactions_widget_income_details_click_add_income',\n RECURRING_ACTIVITY_CLICK_CALENDAR_RIGHT: 'recurring_transactions_widget_click_calendar_right',\n RECURRING_ACTIVITY_CLICK_EXPENSE: 'recurring_transactions_widget_manage_expenses_click_expense',\n RECURRING_ACTIVITY_CLICK_FILTER: 'recurring_transactions_widget_click_filter_accounts',\n RECURRING_ACTIVITY_CLICK_INCOME: 'recurring_transactions_widget_click_income',\n RECURRING_ACTIVITY_CLICK_PAID: 'recurring_transactions_widget_click_paid_expense',\n RECURRING_ACTIVITY_CLICK_SETTINGS: 'recurring_transactions_widget_click_settings',\n RECURRING_ACTIVITY_CLICK_UPCOMING: 'recurring_transactions_widget_click_upcoming_transaction',\n RECURRING_TRANSACTIONS_CLICK_ADD_EXPENSE:\n 'recurring_transactions_widget_manage_expenses_click_add_expense',\n RECURRING_TRANSACTIONS_CLICK_ADD_INCOME:\n 'recurring_transactions_widget_income_details_click_add_income',\n RECURRING_TRANSACTIONS_CLICK_CALENDAR_RIGHT: 'recurring_transactions_widget_click_calendar_right',\n RECURRING_TRANSACTIONS_CLICK_EXPENSE:\n 'recurring_transactions_widget_manage_expenses_click_expense',\n RECURRING_TRANSACTIONS_CLICK_FILTER: 'recurring_transactions_widget_click_filter_accounts',\n RECURRING_TRANSACTIONS_CLICK_INCOME: 'recurring_transactions_widget_click_income',\n RECURRING_TRANSACTIONS_CLICK_PAID: 'recurring_transactions_widget_click_paid_expense',\n RECURRING_TRANSACTIONS_CLICK_SETTINGS: 'recurring_transactions_widget_click_settings',\n RECURRING_TRANSACTIONS_CLICK_UPCOMING: 'recurring_transactions_widget_click_upcoming_transaction',\n RECURRING_TRANSACTIONS_DETAILS_CLICK_DELETE: 'recurring_transactions_widget_details_click_delete',\n RECURRING_TRANSACTIONS_DETAILS_CLICK_PAYMENT_SCHEDULE:\n 'recurring_transactions_widget_details_click_payment_schedule',\n RECURRING_TRANSACTIONS_LIST_CLICK_MARK_AS_PAID:\n 'recurring_transactions_widget_list_click_mark_as_paid',\n RECURRING_TRANSACTIONS_LIST_CLICK_MARK_AS_UNPAID:\n 'recurring_transactions_widget_list_click_mark_as_unpaid',\n RECURRING_TRANSACTIONS_LIST_CLICK_MORE_MENU: 'recurring_transactions_widget_list_click_more_menu',\n RECURRING_TRANSACTIONS_MICRO_WIDGET_CTA: 'recurring_transactions_micro_widget_click_view_all_cta',\n SPENDING_CLICK_FILTER: 'spending_widget_click_filter_accounts',\n SPENDING_VIEW: 'spending',\n TRANSACTIONS_ADD_MANUAL_ACCOUNT_MODAL: 'transactions_add_manual_account_modal',\n TRANSACTIONS_CLICK_ADD: 'transactions_click_add_transaction',\n TRANSACTIONS_CLICK_DETAILS: 'transactions_click_transaction_details',\n TRANSACTIONS_CLICK_EXPORT: 'transactions_click_export_csv',\n TRANSACTIONS_CLICK_FILTER: 'transactions_click_filter_accounts',\n TRANSACTIONS_CLICK_SEARCH: 'transactions_click_search',\n TRANSACTIONS_VIEW: 'transactions',\n TRANSACTION_DETAILS_CLICK_AMOUNT: 'transaction_details_click_transaction_amount',\n TRANSACTION_DETAILS_CLICK_CATEGORY: 'transaction_details_click_category',\n TRANSACTION_DETAILS_CLICK_DATE: 'transaction_details_click_date',\n TRANSACTION_DETAILS_CLICK_DELETE_LOGO: 'transaction_details_click_delete_merchant_logo',\n TRANSACTION_DETAILS_CLICK_DESCRIPTION: 'transaction_details_click_edit_description',\n TRANSACTION_DETAILS_CLICK_FLAG: 'transaction_details_click_flag_transaction',\n TRANSACTION_DETAILS_CLICK_MEMO: 'transaction_details_click_memo',\n TRANSACTION_DETAILS_CLICK_SPLIT: 'transaction_details_click_split_transaction',\n TRANSACTION_DETAILS_CLICK_TAGS: 'transaction_details_click_tags',\n TRANSACTION_DETAILS_CLICK_UNSPLIT: 'transaction_details_click_unsplit_transaction',\n TRANSACTION_DETAILS_VIEW: 'transaction_details',\n TRANSACTIONS_TABLE_CLICK_CATEGORY: 'transactions_table_click_category',\n WIDGET_BACK_CLICK: 'widget_back_button_click',\n\n // NEW ANAYTICS EVENT FORMAT\n // widget_action_subject\n GOALS_CLICK_GET_STARTED: 'goals_click_getStarted',\n GOALS_CLICK_VIEW_DETAILS: 'goals_click_viewDetails',\n GOALS_LOAD_WIDGET: 'goals_load_widget',\n NET_WORTH_CLICK_GET_STARTED: 'netWorth_click_getStarted',\n NET_WORTH_CLICK_VIEW_DETAILS: 'netWorth_click_viewDetails',\n NET_WORTH_LOAD_WIDGET: 'netWorth_load_widget',\n RECURRING_TRANSACTIONS_CLICK_GET_STARTED: 'recurringTransactions_click_getStarted',\n RECURRING_TRANSACTIONS_CLICK_VIEW_ALL: 'recurringTransactions_click_viewAll',\n RECURRING_TRANSACTIONS_LOAD_WIDGET: 'recurringTransactions_load_widget',\n TRENDS_CLICK_ALL_CATEGORIES: 'trends_click_allCategories',\n TRENDS_CLICK_BACK: 'trends_click_back',\n TRENDS_CLICK_CHART: 'trends_click_chart',\n TRENDS_CLICK_CONNECT_ACCOUNTS: 'trends_click_connectAccounts',\n TRENDS_CLICK_EXPORT_CSV: 'trends_click_exportCSV',\n TRENDS_CLICK_FILTER: 'trends_click_filter',\n TRENDS_CLICK_GET_STARTED: 'trends_click_getStarted',\n TRENDS_CLICK_INSIGHT: 'trends_click_insight',\n TRENDS_CLICK_LEGEND: 'trends_click_legend',\n TRENDS_CLICK_LIST_ITEM: 'trends_click_listItem',\n TRENDS_CLICK_TABLE_SORT: 'trends_click_tableSort',\n TRENDS_CLICK_TIME_WINDOW: 'trends_click_timeWindow',\n TRENDS_CLICK_TOGGLE_VIEW: 'trends_click_toggleView',\n TRENDS_CLICK_VIEW_MORE: 'trends_click_viewMore',\n TRENDS_CLICK_VIEW_TRANSACTIONS: 'trends_click_viewTransactions',\n TRENDS_HOVER_AREA: 'trends_hover_chartArea',\n TRENDS_HOVER_POINT: 'trends_hover_chartPoint',\n TRENDS_HOVER_LEGEND: 'trends_hover_ChartLegend',\n TRENDS_LOAD_WIDGET: 'trends_load_widget',\n TRENDS_VIEW_TRANSACTIONS: 'trends_view_transactions',\n WIDGET_SIZE_CHANGED: 'widget_size_changed',\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"Analytics.es.js","names":[],"sources":["../../../src/common/constants/Analytics.ts"],"sourcesContent":["export const ANALYTICS_EVENTS = {\n ACCOUNTS_CLICK_ACCOUNT: 'accounts_widget_click_account',\n ACCOUNTS_CLICK_CONNECT: 'accounts_widget_click_connect_accounts',\n ACCOUNTS_CLICK_FILTER: 'accounts_widget_click_filter_accounts',\n ACCOUNTS_CLICK_SYNC: 'accounts_widget_click_sync',\n ACCOUNT_DETAILS_CLICK_HIDE: 'account_details_click_hide_account',\n ACCOUNT_DETAILS_CLICK_MARK_CLOSED: 'account_details_click_mark_as_closed',\n ACCOUNT_DETAILS_CLICK_MARK_DUPLICATE: 'account_details_click_mark_as_duplicate',\n ACCOUNT_DETAILS_CLICK_TRANSACTION: 'account_details_click_transaction',\n ACCOUNT_DETAILS_VIEW: 'account_details',\n ACCOUNT_DETAILS_VIEW_TRANSACTIONS: 'account_details_transactions',\n BUDGETS_CLICK_ADD: 'budgets_widget_click_add_budget',\n BUDGETS_CLICK_BUDGET_CATEGORY: 'budgets_widget_click_budget_category',\n BUDGETS_CLICK_EDIT_INCOME: 'budgets_widget_click_edit_income',\n BUDGETS_CLICK_FILTER: 'budgets_widget_click_filter_accounts',\n BUDGETS_VIEW: 'budgets',\n CASH_FLOW_CLICK_FILTER: 'cash_flow_widget_click_filter_accounts',\n CASH_FLOW_CLICK_SETTINGS: 'cash_flow_widget_click_settings',\n DEBTS_CLICK_CHART_AREA: 'debts_widget_click_chart_area',\n DEBTS_CLICK_FILTER: 'debts_widget_click_filter_accounts',\n DEBTS_CLICK_PAYDOWN: 'debts_widget_click_paydown',\n DEBTS_CLICK_PRIORITY: 'debts_widget_click_priority',\n DEBTS_CLICK_PRIORITIZE: 'debts_widget_click_prioritize',\n DEBTS_CLICK_SNOWBALL_CTA: 'debts_widget_click_snowball_cta',\n DEBTS_CLICK_TABLE_ROW: 'debts_widget_click_table_row',\n DEBTS_CLICK_TABLE_SORT: 'debts_widget_click_table_sort',\n DEBTS_SAVE_BALANCE_ACTION: 'debts_widget_click_balance_action',\n DEBTS_SAVE_PAYDOWN_ACTION: 'debts_widget_click_paydown_action',\n DEBTS_SAVE_PAYMENT_ACTION: 'debts_widget_click_payment_action',\n DEBTS_SAVE_RATE_ACTION: 'debts_widget_click_rate_action',\n DEBTS_VIEW: 'debts',\n DEBT_DETAILS_VIEW: 'debt_details',\n DEBT_SCHEDULE_VIEW: 'debt_schedule',\n GOALS_CLICK_ADD: 'goals_widget_click_add',\n GOALS_CLICK_FILTER: 'goals_widget_click_filter_accounts',\n GOALS_VIEW: 'goals',\n GOALS_MICRO_WIDGET_CTA: 'goals_micro_widget_click_see_details_cta',\n HELP_CLICK_CATEGORY: 'help_click_category',\n HELP_CLICK_NEED_MORE_ASSISTANCE: 'help_click_needMoreAssistance',\n HELP_CLICK_OPEN_CASE: 'help_click_openCase',\n HELP_CLICK_REQUEST_SUPPORT: 'help_click_requestSupport',\n HELP_CLICK_SUPPORT_FOR_INSTITUTION: 'help_click_supportForInstitution',\n HELP_CLICK_SUPPORT_FOR_MISSING_INSTITUTION: 'help_click_supportForMissingInstitution',\n HELP_CLICK_SUPPORT_TOPIC: 'help_click_supportTopic',\n HELP_CLICK_TOPIC: 'help_click_topic',\n HELP_EXPAND_CATEGORY: 'help_expand_category',\n HELP_EXPAND_TOPIC: 'help_expand_topic',\n HELP_SUBMIT_SUPPORT_REQUEST: 'help_submit_supportRequest',\n INVESTMENTS: 'Investments',\n INVESTMENT_WIDGET_ACCOUNT_FILTER_CLICK: 'investment_widget_account_filter_click',\n INVESTMENT_WIDGET_ALLOCATION_CLICK: 'investment_widget_allocation_click',\n INVESTMENT_WIDGET_ANALYSIS_CLICK: 'investment_widget_analysis_click',\n INVESTMENT_WIDGET_DETAILS_CLICK: 'investment_widget_details_click',\n NET_WORTH_VIEW: 'netWorth',\n NETWORTH_MICRO_WIDGET_CTA: 'net_worth_micro_widget_click_see_details_cta',\n NET_WORTH_WIDGET_CLICK_ASSETS_LIABILITIES: 'net_worth_widget_click_view_assets_liabilities',\n NET_WORTH_WIDGET_CLICK_FILTER: 'net_worth_widget_click_filter_accounts',\n NET_WORTH_WIDGET_CLICK_TIMEFRAME: 'netWorth_click_timePeriod',\n RECURRING_ACTIVITY_CLICK_ADD_EXPENSE:\n 'recurring_transactions_widget_manage_expenses_click_add_expense',\n RECURRING_ACTIVITY_CLICK_ADD_INCOME:\n 'recurring_transactions_widget_income_details_click_add_income',\n RECURRING_ACTIVITY_CLICK_CALENDAR_RIGHT: 'recurring_transactions_widget_click_calendar_right',\n RECURRING_ACTIVITY_CLICK_EXPENSE: 'recurring_transactions_widget_manage_expenses_click_expense',\n RECURRING_ACTIVITY_CLICK_FILTER: 'recurring_transactions_widget_click_filter_accounts',\n RECURRING_ACTIVITY_CLICK_INCOME: 'recurring_transactions_widget_click_income',\n RECURRING_ACTIVITY_CLICK_PAID: 'recurring_transactions_widget_click_paid_expense',\n RECURRING_ACTIVITY_CLICK_SETTINGS: 'recurring_transactions_widget_click_settings',\n RECURRING_ACTIVITY_CLICK_UPCOMING: 'recurring_transactions_widget_click_upcoming_transaction',\n RECURRING_TRANSACTIONS_CLICK_ADD_EXPENSE:\n 'recurring_transactions_widget_manage_expenses_click_add_expense',\n RECURRING_TRANSACTIONS_CLICK_ADD_INCOME:\n 'recurring_transactions_widget_income_details_click_add_income',\n RECURRING_TRANSACTIONS_CLICK_CALENDAR_RIGHT: 'recurring_transactions_widget_click_calendar_right',\n RECURRING_TRANSACTIONS_CLICK_EXPENSE:\n 'recurring_transactions_widget_manage_expenses_click_expense',\n RECURRING_TRANSACTIONS_CLICK_FILTER: 'recurring_transactions_widget_click_filter_accounts',\n RECURRING_TRANSACTIONS_CLICK_INCOME: 'recurring_transactions_widget_click_income',\n RECURRING_TRANSACTIONS_CLICK_PAID: 'recurring_transactions_widget_click_paid_expense',\n RECURRING_TRANSACTIONS_CLICK_SETTINGS: 'recurring_transactions_widget_click_settings',\n RECURRING_TRANSACTIONS_CLICK_UPCOMING: 'recurring_transactions_widget_click_upcoming_transaction',\n RECURRING_TRANSACTIONS_DETAILS_CLICK_DELETE: 'recurring_transactions_widget_details_click_delete',\n RECURRING_TRANSACTIONS_DETAILS_CLICK_PAYMENT_SCHEDULE:\n 'recurring_transactions_widget_details_click_payment_schedule',\n RECURRING_TRANSACTIONS_LIST_CLICK_MARK_AS_PAID:\n 'recurring_transactions_widget_list_click_mark_as_paid',\n RECURRING_TRANSACTIONS_LIST_CLICK_MARK_AS_UNPAID:\n 'recurring_transactions_widget_list_click_mark_as_unpaid',\n RECURRING_TRANSACTIONS_LIST_CLICK_MORE_MENU: 'recurring_transactions_widget_list_click_more_menu',\n RECURRING_TRANSACTIONS_MICRO_WIDGET_CTA: 'recurring_transactions_micro_widget_click_view_all_cta',\n SPENDING_CLICK_FILTER: 'spending_widget_click_filter_accounts',\n SPENDING_VIEW: 'spending',\n TRANSACTIONS_ADD_MANUAL_ACCOUNT_MODAL: 'transactions_add_manual_account_modal',\n TRANSACTIONS_CLICK_ADD: 'transactions_click_add_transaction',\n TRANSACTIONS_CLICK_DETAILS: 'transactions_click_transaction_details',\n TRANSACTIONS_CLICK_EXPORT: 'transactions_click_export_csv',\n TRANSACTIONS_CLICK_FILTER: 'transactions_click_filter_accounts',\n TRANSACTIONS_CLICK_SEARCH: 'transactions_click_search',\n TRANSACTIONS_VIEW: 'transactions',\n TRANSACTION_DETAILS_CLICK_AMOUNT: 'transaction_details_click_transaction_amount',\n TRANSACTION_DETAILS_CLICK_CATEGORY: 'transaction_details_click_category',\n TRANSACTION_DETAILS_CLICK_DATE: 'transaction_details_click_date',\n TRANSACTION_DETAILS_CLICK_DELETE_LOGO: 'transaction_details_click_delete_merchant_logo',\n TRANSACTION_DETAILS_CLICK_DESCRIPTION: 'transaction_details_click_edit_description',\n TRANSACTION_DETAILS_CLICK_FLAG: 'transaction_details_click_flag_transaction',\n TRANSACTION_DETAILS_CLICK_MEMO: 'transaction_details_click_memo',\n TRANSACTION_DETAILS_CLICK_SPLIT: 'transaction_details_click_split_transaction',\n TRANSACTION_DETAILS_CLICK_TAGS: 'transaction_details_click_tags',\n TRANSACTION_DETAILS_CLICK_UNSPLIT: 'transaction_details_click_unsplit_transaction',\n TRANSACTION_DETAILS_VIEW: 'transaction_details',\n TRANSACTIONS_TABLE_CLICK_CATEGORY: 'transactions_table_click_category',\n WIDGET_BACK_CLICK: 'widget_back_button_click',\n\n // NEW ANAYTICS EVENT FORMAT\n // widget_action_subject\n GOALS_CLICK_GET_STARTED: 'goals_click_getStarted',\n GOALS_CLICK_VIEW_DETAILS: 'goals_click_viewDetails',\n GOALS_LOAD_WIDGET: 'goals_load_widget',\n NET_WORTH_CLICK_GET_STARTED: 'netWorth_click_getStarted',\n NET_WORTH_CLICK_VIEW_DETAILS: 'netWorth_click_viewDetails',\n NET_WORTH_LOAD_WIDGET: 'netWorth_load_widget',\n RECURRING_TRANSACTIONS_CLICK_GET_STARTED: 'recurringTransactions_click_getStarted',\n RECURRING_TRANSACTIONS_CLICK_VIEW_ALL: 'recurringTransactions_click_viewAll',\n RECURRING_TRANSACTIONS_LOAD_WIDGET: 'recurringTransactions_load_widget',\n TRENDS_CLICK_ALL_CATEGORIES: 'trends_click_allCategories',\n TRENDS_CLICK_BACK: 'trends_click_back',\n TRENDS_CLICK_CHART: 'trends_click_chart',\n TRENDS_CLICK_CONNECT_ACCOUNTS: 'trends_click_connectAccounts',\n TRENDS_CLICK_EXPORT_CSV: 'trends_click_exportCSV',\n TRENDS_CLICK_FILTER: 'trends_click_filter',\n TRENDS_CLICK_GET_STARTED: 'trends_click_getStarted',\n TRENDS_CLICK_INSIGHT: 'trends_click_insight',\n TRENDS_CLICK_LEGEND: 'trends_click_legend',\n TRENDS_CLICK_LIST_ITEM: 'trends_click_listItem',\n TRENDS_CLICK_TABLE_SORT: 'trends_click_tableSort',\n TRENDS_CLICK_TIME_WINDOW: 'trends_click_timeWindow',\n TRENDS_CLICK_TOGGLE_VIEW: 'trends_click_toggleView',\n TRENDS_CLICK_VIEW_MORE: 'trends_click_viewMore',\n TRENDS_CLICK_VIEW_TRANSACTIONS: 'trends_click_viewTransactions',\n TRENDS_HOVER_AREA: 'trends_hover_chartArea',\n TRENDS_HOVER_POINT: 'trends_hover_chartPoint',\n TRENDS_HOVER_LEGEND: 'trends_hover_ChartLegend',\n TRENDS_LOAD_WIDGET: 'trends_load_widget',\n TRENDS_VIEW_TRANSACTIONS: 'trends_view_transactions',\n WIDGET_SIZE_CHANGED: 'widget_size_changed',\n\n // Banner ads & connect-widget lifecycle funnel (entry point in the `source`\n // property). Names are the contract with PostHog/Insights — do not rename.\n BANNER_VIEW: 'viewed_banner',\n BANNER_CLICK: 'clicked_banner',\n CONNECT_WIDGET_OPENED: 'opened_connect_widget',\n CONNECT_WIDGET_COMPLETED: 'completed_connect_widget',\n CONNECT_WIDGET_ABANDONED: 'abandoned_connect_widget',\n CONNECT_WIDGET_ERRORED: 'errored_connect_widget',\n}\n"],"mappings":"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"}
@@ -4,3 +4,10 @@ export declare enum MemberConnectionStatus {
4
4
  Loading = "loading",
5
5
  Error = "error"
6
6
  }
7
+ export declare const DEEP_LINK_TYPE: {
8
+ readonly CONNECT: 2;
9
+ };
10
+ export declare const CONNECT_WIDGET_SOURCES: {
11
+ readonly BANNER: "banner";
12
+ };
13
+ export type ConnectWidgetSource = (typeof CONNECT_WIDGET_SOURCES)[keyof typeof CONNECT_WIDGET_SOURCES];
@@ -1,9 +1,11 @@
1
- var n = "connect_widget", o = "connections_widget", _ = /* @__PURE__ */ (function(r) {
1
+ var E = "connect_widget", N = "connections_widget", _ = /* @__PURE__ */ (function(r) {
2
2
  return r.Loading = "loading", r.Error = "error", r;
3
- })({});
3
+ })({}), n = { CONNECT: 2 }, C = { BANNER: "banner" };
4
4
  export {
5
- o as CONNECTIONS_WIDGET_ID,
6
- n as CONNECT_WIDGET_ID,
5
+ N as CONNECTIONS_WIDGET_ID,
6
+ E as CONNECT_WIDGET_ID,
7
+ C as CONNECT_WIDGET_SOURCES,
8
+ n as DEEP_LINK_TYPE,
7
9
  _ as MemberConnectionStatus
8
10
  };
9
11
 
@@ -1 +1 @@
1
- {"version":3,"file":"Connect.es.js","names":[],"sources":["../../../src/common/constants/Connect.ts"],"sourcesContent":["export const CONNECT_WIDGET_ID = 'connect_widget'\nexport const CONNECTIONS_WIDGET_ID = 'connections_widget'\n\n// Connection state shared by the foundational `common` layer (ConnectDrawer /\n// ConnectStatus) and the accounts widget. Lives in `common` so `common` does not\n// have to depend on `accounts` (which created a common->accounts layering\n// violation and blocked per-widget code splitting).\nexport enum MemberConnectionStatus {\n Loading = 'loading',\n Error = 'error',\n}\n"],"mappings":"AAAA,IAAa,IAAoB,kBACpB,IAAwB,sBAMzB,IAAL,0BAAA,GAAA;AACL,SAAA,EAAA,UAAA,WACA,EAAA,QAAA;AACF,GAAA,CAAA,CAAA"}
1
+ {"version":3,"file":"Connect.es.js","names":[],"sources":["../../../src/common/constants/Connect.ts"],"sourcesContent":["export const CONNECT_WIDGET_ID = 'connect_widget'\nexport const CONNECTIONS_WIDGET_ID = 'connections_widget'\n\n// Connection state shared by the foundational `common` layer (ConnectDrawer /\n// ConnectStatus) and the accounts widget. Lives in `common` so `common` does not\n// have to depend on `accounts` (which created a common->accounts layering\n// violation and blocked per-widget code splitting).\nexport enum MemberConnectionStatus {\n Loading = 'loading',\n Error = 'error',\n}\n\n// In-app destination advertised by a banner ad (`Banner.deep_link_type`). Value\n// matches bullseye's DeepLinkType enum (CONNECT_WIDGET = 2). Longbow does not\n// surface it in the banner response yet, so until it does every banner falls\n// back to its external `redirect_url` and this path stays inert.\nexport const DEEP_LINK_TYPE = {\n CONNECT: 2,\n} as const\n\n// Entry point a ConnectDrawer was opened from, sent as `source` on the\n// connect-widget lifecycle events. Call sites with no source emit no events.\nexport const CONNECT_WIDGET_SOURCES = {\n BANNER: 'banner',\n} as const\n\nexport type ConnectWidgetSource =\n (typeof CONNECT_WIDGET_SOURCES)[keyof typeof CONNECT_WIDGET_SOURCES]\n"],"mappings":"AAAA,IAAa,IAAoB,kBACpB,IAAwB,sBAMzB,IAAL,0BAAA,GAAA;AACL,SAAA,EAAA,UAAA,WACA,EAAA,QAAA;AACF,GAAA,CAAA,CAAA,GAMa,IAAiB,EAC5B,SAAS,EACX,GAIa,IAAyB,EACpC,QAAQ,SACV"}
@@ -1,5 +1,6 @@
1
1
  export { ANALYTICS_EVENTS } from './Analytics';
2
- export { CONNECT_WIDGET_ID, CONNECTIONS_WIDGET_ID, MemberConnectionStatus } from './Connect';
2
+ export { CONNECT_WIDGET_ID, CONNECT_WIDGET_SOURCES, CONNECTIONS_WIDGET_ID, DEEP_LINK_TYPE, MemberConnectionStatus, } from './Connect';
3
+ export type { ConnectWidgetSource } from './Connect';
3
4
  export { INCOME_ACCOUNT_TYPES, PAYMENT_ACCOUNT_TYPES, SPENDING_ACCOUNT_TYPES } from './Account';
4
5
  export { RECURRENCE_COPY } from './ScheduledPayment';
5
6
  export { LOADING_STATUS } from './SpendingPlan';