@mx-cartographer/experiences 4.0.14-alpha.JB1 → 4.0.14-alpha.JB2

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 (582) hide show
  1. package/dist/AccountStore-B23-oV1B.mjs +244 -0
  2. package/dist/AccountStore-B23-oV1B.mjs.map +1 -0
  3. package/dist/BeatApi-BxXgbSJY.mjs +99 -0
  4. package/dist/BeatApi-BxXgbSJY.mjs.map +1 -0
  5. package/dist/BudgetUtil-BSn9Zr71.mjs +208 -0
  6. package/dist/BudgetUtil-BSn9Zr71.mjs.map +1 -0
  7. package/dist/CashflowApi-zcebgnO1.mjs +103 -0
  8. package/dist/CashflowApi-zcebgnO1.mjs.map +1 -0
  9. package/dist/CashflowStore-gPEEBiXo.mjs +53 -0
  10. package/dist/CashflowStore-gPEEBiXo.mjs.map +1 -0
  11. package/dist/Categories-XVFviD23.mjs +117 -0
  12. package/dist/Categories-XVFviD23.mjs.map +1 -0
  13. package/dist/CategoryStore-CSNSMNA6.mjs +298 -0
  14. package/dist/CategoryStore-CSNSMNA6.mjs.map +1 -0
  15. package/dist/ConnectMiniWidget-Ep65CtHH.mjs +10854 -0
  16. package/dist/ConnectMiniWidget-Ep65CtHH.mjs.map +1 -0
  17. package/dist/DebtsStore-Duf3n1vZ.mjs +127 -0
  18. package/dist/DebtsStore-Duf3n1vZ.mjs.map +1 -0
  19. package/dist/Donut-DgMeKScZ.mjs +53 -0
  20. package/dist/Donut-DgMeKScZ.mjs.map +1 -0
  21. package/dist/Fetch-DpUi1_Dx.mjs +99 -0
  22. package/dist/Fetch-DpUi1_Dx.mjs.map +1 -0
  23. package/dist/GoalStore-BYoRLx99.mjs +128 -0
  24. package/dist/GoalStore-BYoRLx99.mjs.map +1 -0
  25. package/dist/MerchantStore-RhLvDvX-.mjs +118 -0
  26. package/dist/MerchantStore-RhLvDvX-.mjs.map +1 -0
  27. package/dist/NetWorthStore-syD1VnxE.mjs +66 -0
  28. package/dist/NetWorthStore-syD1VnxE.mjs.map +1 -0
  29. package/dist/NotificationStore-CqTYHfJC.mjs +141 -0
  30. package/dist/NotificationStore-CqTYHfJC.mjs.map +1 -0
  31. package/dist/RecurringActivityStore-B_COvGWG.mjs +304 -0
  32. package/dist/RecurringActivityStore-B_COvGWG.mjs.map +1 -0
  33. package/dist/StackedLineChart-CCqGRwvs.mjs +342 -0
  34. package/dist/StackedLineChart-CCqGRwvs.mjs.map +1 -0
  35. package/dist/TransactionStore-BUrjBWkk.mjs +478 -0
  36. package/dist/TransactionStore-BUrjBWkk.mjs.map +1 -0
  37. package/dist/index.es.js +12 -17869
  38. package/dist/index.es.js.map +1 -1
  39. package/dist/index.es10.js +107 -0
  40. package/dist/index.es10.js.map +1 -0
  41. package/dist/index.es11.js +159 -0
  42. package/dist/index.es11.js.map +1 -0
  43. package/dist/index.es12.js +483 -0
  44. package/dist/index.es12.js.map +1 -0
  45. package/dist/index.es13.js +620 -0
  46. package/dist/index.es13.js.map +1 -0
  47. package/dist/index.es14.js +788 -0
  48. package/dist/index.es14.js.map +1 -0
  49. package/dist/index.es15.js +891 -0
  50. package/dist/index.es15.js.map +1 -0
  51. package/dist/index.es16.js +962 -0
  52. package/dist/index.es16.js.map +1 -0
  53. package/dist/index.es17.js +1904 -0
  54. package/dist/index.es17.js.map +1 -0
  55. package/dist/index.es2.js +11 -0
  56. package/dist/index.es2.js.map +1 -0
  57. package/dist/index.es3.js +10 -0
  58. package/dist/index.es3.js.map +1 -0
  59. package/dist/index.es4.js +9 -0
  60. package/dist/index.es4.js.map +1 -0
  61. package/dist/index.es5.js +7 -0
  62. package/dist/index.es5.js.map +1 -0
  63. package/dist/index.es6.js +7 -0
  64. package/dist/index.es6.js.map +1 -0
  65. package/dist/index.es7.js +10 -0
  66. package/dist/index.es7.js.map +1 -0
  67. package/dist/index.es8.js +10 -0
  68. package/dist/index.es8.js.map +1 -0
  69. package/dist/index.es9.js +18 -0
  70. package/dist/index.es9.js.map +1 -0
  71. package/dist/useCombineEvents-CZUDHE96.mjs +170 -0
  72. package/dist/useCombineEvents-CZUDHE96.mjs.map +1 -0
  73. package/dist/usePrevious-BLb3umpI.mjs +11 -0
  74. package/dist/usePrevious-BLb3umpI.mjs.map +1 -0
  75. package/package.json +2 -3
  76. package/src/accounts/AccountsMiniWidget.tsx +0 -62
  77. package/src/accounts/AccountsWidget.tsx +0 -93
  78. package/src/accounts/ConnectMiniWidget.tsx +0 -36
  79. package/src/accounts/__tests__/Accounts.test.tsx +0 -561
  80. package/src/accounts/api/AccountApi.ts +0 -74
  81. package/src/accounts/api/__mocks__/AccountApi.ts +0 -46
  82. package/src/accounts/components/AccountListItem.tsx +0 -102
  83. package/src/accounts/components/AccountsList.tsx +0 -133
  84. package/src/accounts/components/ConnectImage.tsx +0 -314
  85. package/src/accounts/components/ConnectMiniWidgetCard.tsx +0 -41
  86. package/src/accounts/components/ConnectStatus.tsx +0 -44
  87. package/src/accounts/components/ConnectionStatusIcons.tsx +0 -26
  88. package/src/accounts/components/ConnectionsDrawer.tsx +0 -84
  89. package/src/accounts/components/detailsdrawer/Accounts/AccountActions.tsx +0 -177
  90. package/src/accounts/components/detailsdrawer/Accounts/AccountActionsRow.tsx +0 -33
  91. package/src/accounts/components/detailsdrawer/Accounts/AccountConnection.tsx +0 -139
  92. package/src/accounts/components/detailsdrawer/Accounts/AccountDetailEdit.tsx +0 -162
  93. package/src/accounts/components/detailsdrawer/Accounts/AccountDetails.tsx +0 -98
  94. package/src/accounts/components/detailsdrawer/Accounts/AccountDetailsChart.tsx +0 -63
  95. package/src/accounts/components/detailsdrawer/Accounts/AccountDetailsContent.tsx +0 -52
  96. package/src/accounts/components/detailsdrawer/Accounts/AccountDetailsHeader.tsx +0 -71
  97. package/src/accounts/components/detailsdrawer/Accounts/AccountDetailsTab.tsx +0 -25
  98. package/src/accounts/components/detailsdrawer/Accounts/ConnectionErrorMessage.tsx +0 -99
  99. package/src/accounts/components/detailsdrawer/Transactions/TransactionsTab.tsx +0 -51
  100. package/src/accounts/constants/Accounts.ts +0 -11
  101. package/src/accounts/hooks/useGetMergeableAccounts.tsx +0 -13
  102. package/src/accounts/hooks/useUiStore.ts +0 -12
  103. package/src/accounts/index.ts +0 -8
  104. package/src/accounts/stores/AccountStore.ts +0 -220
  105. package/src/accounts/stores/UiStore.ts +0 -18
  106. package/src/accounts/stores/__tests__/AccountStore.test.ts +0 -204
  107. package/src/accounts/utils/AccountFields.tsx +0 -248
  108. package/src/accounts/utils/Accounts.ts +0 -28
  109. package/src/accounts/utils/__tests__/AccountFieldsUtils.test.tsx +0 -215
  110. package/src/accounts/utils/__tests__/AccountsUtils.test.tsx +0 -104
  111. package/src/accounts/utils/getConnectionMessages.tsx +0 -198
  112. package/src/accounts/utils/index.ts +0 -1
  113. package/src/budgets/BubbleBudgetsMiniWidget.tsx +0 -57
  114. package/src/budgets/BubbleBudgetsWidget.tsx +0 -154
  115. package/src/budgets/__tests__/BubbleBudgetsWidget.test.tsx +0 -40
  116. package/src/budgets/__tests__/BudgetList.test.tsx +0 -38
  117. package/src/budgets/__tests__/BudgetsStore.test.tsx +0 -48
  118. package/src/budgets/__tests__/Overview.test.tsx +0 -38
  119. package/src/budgets/api/BudgetsApi.ts +0 -43
  120. package/src/budgets/api/__mocks__/BudgetsApi.ts +0 -7
  121. package/src/budgets/components/AddBudgets.tsx +0 -50
  122. package/src/budgets/components/BubbleBudgets.tsx +0 -73
  123. package/src/budgets/components/BubbleChart.tsx +0 -50
  124. package/src/budgets/components/BudgetDetailsDrawer.tsx +0 -134
  125. package/src/budgets/components/BudgetList.tsx +0 -50
  126. package/src/budgets/components/Overview.tsx +0 -156
  127. package/src/budgets/components/ZeroState.tsx +0 -23
  128. package/src/budgets/components/addbudget/Header.tsx +0 -59
  129. package/src/budgets/components/addbudget/RecalculateBudgetRow.tsx +0 -53
  130. package/src/budgets/components/addbudget/RecalculateBudgets.tsx +0 -69
  131. package/src/budgets/components/addbudget/UnbudgetedRow.tsx +0 -57
  132. package/src/budgets/components/bubblechart/Bubble.tsx +0 -148
  133. package/src/budgets/components/bubblechart/Mercury.tsx +0 -57
  134. package/src/budgets/components/budgetdetails/AddSubBudget.tsx +0 -111
  135. package/src/budgets/components/budgetdetails/BudgetDetails.tsx +0 -93
  136. package/src/budgets/components/budgetdetails/Header.tsx +0 -48
  137. package/src/budgets/components/budgetdetails/SubBudgetList.tsx +0 -148
  138. package/src/budgets/components/budgetlist/BudgetRow.tsx +0 -63
  139. package/src/budgets/components/budgetlist/SubBudgetRow.tsx +0 -64
  140. package/src/budgets/components/budgetlist/SubBudgetZeroState.tsx +0 -22
  141. package/src/budgets/components/shared/BudgetAmount.tsx +0 -54
  142. package/src/budgets/index.ts +0 -2
  143. package/src/budgets/store/BudgetsStore.ts +0 -183
  144. package/src/budgets/utils/BubblesSVG.ts +0 -142
  145. package/src/budgets/utils/BudgetUtil.ts +0 -140
  146. package/src/cashflow/CashflowMiniWidget.tsx +0 -25
  147. package/src/cashflow/CashflowOnboarding.tsx +0 -298
  148. package/src/cashflow/CashflowWidget.tsx +0 -111
  149. package/src/cashflow/api/CashflowApi.ts +0 -62
  150. package/src/cashflow/api/__mocks__/CashflowApi.ts +0 -15
  151. package/src/cashflow/components/CashflowAmountHeading.tsx +0 -46
  152. package/src/cashflow/components/CashflowContent.tsx +0 -63
  153. package/src/cashflow/components/CashflowHeading.tsx +0 -172
  154. package/src/cashflow/components/CashflowWidgetContent.tsx +0 -225
  155. package/src/cashflow/components/DetailsExpenseHeader.tsx +0 -47
  156. package/src/cashflow/components/DetailsExpenseRow.tsx +0 -46
  157. package/src/cashflow/components/DetailsFooter.tsx +0 -28
  158. package/src/cashflow/components/DetailsTab.tsx +0 -128
  159. package/src/cashflow/components/RemainingCash.tsx +0 -44
  160. package/src/cashflow/components/SummaryTab.tsx +0 -247
  161. package/src/cashflow/components/onboarding/StepOne.tsx +0 -90
  162. package/src/cashflow/components/onboarding/StepTwo.tsx +0 -23
  163. package/src/cashflow/context/hooks.tsx +0 -12
  164. package/src/cashflow/images/cashflow-onboarding.png +0 -0
  165. package/src/cashflow/images/loading-animation.gif +0 -0
  166. package/src/cashflow/index.ts +0 -5
  167. package/src/cashflow/stores/CashflowStore.ts +0 -26
  168. package/src/cashflow/stores/UiStore.ts +0 -48
  169. package/src/cashflow/stores/__tests__/CashflowStore.test.ts +0 -16
  170. package/src/cashflow/util/Filters.ts +0 -15
  171. package/src/categories/components/CategoryList.tsx +0 -64
  172. package/src/categories/components/CategoryRow.tsx +0 -68
  173. package/src/categories/components/CategorySelector.tsx +0 -80
  174. package/src/categories/components/CategorySelectorDrawer.tsx +0 -41
  175. package/src/categories/components/CustomCategories/AddSubcategory.tsx +0 -65
  176. package/src/categories/components/CustomCategories/CustomCategoryModal.tsx +0 -99
  177. package/src/categories/components/CustomCategories/DeleteSubcategory.tsx +0 -49
  178. package/src/categories/components/CustomCategories/RenameSubcategory.tsx +0 -48
  179. package/src/categories/components/CustomCategories/index.ts +0 -4
  180. package/src/categories/components/SubcategoryList.tsx +0 -47
  181. package/src/categories/components/SubcategoryRow.tsx +0 -123
  182. package/src/categories/constants/Analytics.ts +0 -89
  183. package/src/categories/constants/OnClickEvents.ts +0 -13
  184. package/src/categories/context/hooks.ts +0 -12
  185. package/src/categories/index.ts +0 -5
  186. package/src/categories/stores/CategoryStore.ts +0 -184
  187. package/src/categories/stores/UiStore.ts +0 -36
  188. package/src/categories/stores/__tests__/CategoryStore.test.ts +0 -54
  189. package/src/categories/util/CategoryUtil.ts +0 -136
  190. package/src/common/api/AnalyticsApi.ts +0 -49
  191. package/src/common/api/BeatApi.ts +0 -32
  192. package/src/common/api/CategoryApi.ts +0 -52
  193. package/src/common/api/GlobalCopyApi.ts +0 -17
  194. package/src/common/api/LocalizedCopyApi.ts +0 -21
  195. package/src/common/api/NotificationApi.ts +0 -40
  196. package/src/common/api/ScheduledPaymentsApi.ts +0 -37
  197. package/src/common/api/UserApi.ts +0 -23
  198. package/src/common/api/WidgetApi.ts +0 -15
  199. package/src/common/api/__mocks__/BeatApi.ts +0 -8
  200. package/src/common/api/__mocks__/CategoryApi.ts +0 -15
  201. package/src/common/api/__mocks__/GlobalCopyApi.ts +0 -7
  202. package/src/common/api/__mocks__/NotificationApi.ts +0 -11
  203. package/src/common/api/__mocks__/ScheduledPaymentsApi.ts +0 -7
  204. package/src/common/api/__mocks__/UserApi.ts +0 -9
  205. package/src/common/api/__mocks__/WidgetApi.ts +0 -11
  206. package/src/common/api/index.ts +0 -9
  207. package/src/common/components/ConnectDrawer.tsx +0 -87
  208. package/src/common/components/CurrencyInput.tsx +0 -147
  209. package/src/common/components/CurrencyText.tsx +0 -44
  210. package/src/common/components/DataRow.tsx +0 -52
  211. package/src/common/components/IconBacking.tsx +0 -41
  212. package/src/common/components/InformationTooltip.tsx +0 -52
  213. package/src/common/components/ListItemWrapper.tsx +0 -49
  214. package/src/common/components/Loader.tsx +0 -24
  215. package/src/common/components/MiniWidgetContainer.tsx +0 -64
  216. package/src/common/components/ResponsiveButton.tsx +0 -65
  217. package/src/common/components/SearchBox.tsx +0 -64
  218. package/src/common/components/SelectionBox.tsx +0 -64
  219. package/src/common/components/SubheaderRow.tsx +0 -22
  220. package/src/common/components/TabContentContainer.tsx +0 -28
  221. package/src/common/components/WidgetContainer.tsx +0 -239
  222. package/src/common/components/accountfilter/AccountFilter.tsx +0 -133
  223. package/src/common/components/accountfilter/AccountFilterOptions.tsx +0 -263
  224. package/src/common/components/accountfilter/index.ts +0 -1
  225. package/src/common/components/barchart/Bar.tsx +0 -123
  226. package/src/common/components/barchart/BarChart.tsx +0 -136
  227. package/src/common/components/barchart/BarColumn.tsx +0 -150
  228. package/src/common/components/barchart/Legend.tsx +0 -60
  229. package/src/common/components/barchart/Util.ts +0 -54
  230. package/src/common/components/barchart/__tests__/BarChart.test.tsx +0 -46
  231. package/src/common/components/barchart/index.ts +0 -1
  232. package/src/common/components/calendar/Calendar.tsx +0 -223
  233. package/src/common/components/calendar/Day.tsx +0 -127
  234. package/src/common/components/calendar/Header.tsx +0 -58
  235. package/src/common/components/calendar/__tests__/Calendar.test.tsx +0 -50
  236. package/src/common/components/calendar/index.ts +0 -1
  237. package/src/common/components/calendar/upcomingActivity/CalendarIcons.tsx +0 -40
  238. package/src/common/components/charts/Donut.tsx +0 -82
  239. package/src/common/components/charts/LineChart.tsx +0 -204
  240. package/src/common/components/charts/StackedLineChart.tsx +0 -292
  241. package/src/common/components/charts/StatusBar.tsx +0 -41
  242. package/src/common/components/charts/index.ts +0 -4
  243. package/src/common/components/charts/linechart/CustomLegend.tsx +0 -49
  244. package/src/common/components/charts/linechart/CustomLine.tsx +0 -31
  245. package/src/common/components/charts/linechart/CustomMark.tsx +0 -68
  246. package/src/common/components/charts/stackedlinechart/CategoryIconLabel.tsx +0 -29
  247. package/src/common/components/charts/stackedlinechart/CustomAreaTooltip.tsx +0 -115
  248. package/src/common/components/charts/stackedlinechart/CustomLegend.tsx +0 -73
  249. package/src/common/components/charts/stackedlinechart/CustomPointTooltip.tsx +0 -41
  250. package/src/common/components/charts/stackedlinechart/utils.ts +0 -13
  251. package/src/common/components/daterangeselector/DateRangeSelector.tsx +0 -383
  252. package/src/common/components/daterangeselector/index.ts +0 -1
  253. package/src/common/components/dialog/Dialog.tsx +0 -92
  254. package/src/common/components/dialog/index.ts +0 -1
  255. package/src/common/components/donuts/MultiSegmentDonut.tsx +0 -89
  256. package/src/common/components/donuts/SingleSegmentDonut.tsx +0 -75
  257. package/src/common/components/donuts/index.ts +0 -2
  258. package/src/common/components/drawer/Drawer.tsx +0 -97
  259. package/src/common/components/drawer/Header.tsx +0 -64
  260. package/src/common/components/drawer/index.ts +0 -1
  261. package/src/common/components/index.ts +0 -22
  262. package/src/common/constants/Account.ts +0 -30
  263. package/src/common/constants/Analytics.ts +0 -70
  264. package/src/common/constants/ApiEndpoints.ts +0 -30
  265. package/src/common/constants/Category.ts +0 -302
  266. package/src/common/constants/Connect.ts +0 -2
  267. package/src/common/constants/DateFormats.ts +0 -122
  268. package/src/common/constants/Donut.ts +0 -2
  269. package/src/common/constants/Numbers.ts +0 -6
  270. package/src/common/constants/ScheduledPayment.ts +0 -21
  271. package/src/common/constants/Sizes.ts +0 -7
  272. package/src/common/constants/SpendingPlan.ts +0 -17
  273. package/src/common/constants/Table.ts +0 -13
  274. package/src/common/constants/index.ts +0 -21
  275. package/src/common/context/GlobalDataProvider.tsx +0 -31
  276. package/src/common/context/WidgetContainerProvider.tsx +0 -24
  277. package/src/common/context/__mocks__/GlobalDataProvider.tsx +0 -25
  278. package/src/common/context/hooks.tsx +0 -57
  279. package/src/common/context/index.ts +0 -22
  280. package/src/common/hooks/__tests__/useDimensions.test.tsx +0 -190
  281. package/src/common/hooks/index.ts +0 -3
  282. package/src/common/hooks/useCombineEvents.tsx +0 -53
  283. package/src/common/hooks/useDimensions.tsx +0 -78
  284. package/src/common/hooks/usePrevious.tsx +0 -10
  285. package/src/common/hooks/useScreenSize.tsx +0 -15
  286. package/src/common/index.ts +0 -23
  287. package/src/common/stores/ConnectStore.ts +0 -26
  288. package/src/common/stores/GlobalCopyStore.ts +0 -36
  289. package/src/common/stores/GlobalStore.ts +0 -83
  290. package/src/common/stores/GlobalUiStore.ts +0 -66
  291. package/src/common/stores/UserStore.ts +0 -45
  292. package/src/common/stores/__tests__/GlobalCopyStore.test.ts +0 -23
  293. package/src/common/stores/__tests__/GlobalStore.test.ts +0 -24
  294. package/src/common/stores/index.ts +0 -3
  295. package/src/common/types/Account.ts +0 -406
  296. package/src/common/types/Activity.ts +0 -31
  297. package/src/common/types/Analytics.ts +0 -70
  298. package/src/common/types/Beat.ts +0 -71
  299. package/src/common/types/Budget.ts +0 -29
  300. package/src/common/types/Cashflow.ts +0 -110
  301. package/src/common/types/Category.ts +0 -68
  302. package/src/common/types/Date.ts +0 -2
  303. package/src/common/types/Debt.ts +0 -19
  304. package/src/common/types/Expense.ts +0 -20
  305. package/src/common/types/Global.ts +0 -13
  306. package/src/common/types/GlobalCopy.ts +0 -37
  307. package/src/common/types/Goal.ts +0 -59
  308. package/src/common/types/Institution.ts +0 -11
  309. package/src/common/types/LocalizedContent.ts +0 -9
  310. package/src/common/types/Merchant.ts +0 -6
  311. package/src/common/types/Notification.ts +0 -15
  312. package/src/common/types/ScheduledPayment.ts +0 -15
  313. package/src/common/types/ScreenSize.tsx +0 -4
  314. package/src/common/types/SpendingPlan.ts +0 -48
  315. package/src/common/types/Transaction.ts +0 -91
  316. package/src/common/types/User.ts +0 -20
  317. package/src/common/types/Widgets.ts +0 -11
  318. package/src/common/types/index.ts +0 -93
  319. package/src/common/types/localization/AccountFilterCopy.ts +0 -12
  320. package/src/common/types/localization/AccountTypeCopy.ts +0 -16
  321. package/src/common/types/localization/AccountsCopy.ts +0 -113
  322. package/src/common/types/localization/BudgetsCopy.ts +0 -52
  323. package/src/common/types/localization/CashflowCopy.ts +0 -77
  324. package/src/common/types/localization/CategoryCopy.ts +0 -18
  325. package/src/common/types/localization/CommonCopy.ts +0 -30
  326. package/src/common/types/localization/ConnectCopy.ts +0 -74
  327. package/src/common/types/localization/CurrencyInputCopy.ts +0 -6
  328. package/src/common/types/localization/DateRangePickerCopy.ts +0 -23
  329. package/src/common/types/localization/GoalsCopy.ts +0 -37
  330. package/src/common/types/localization/InsightsFeedCopy.ts +0 -26
  331. package/src/common/types/localization/MicroInsightsCopy.ts +0 -28
  332. package/src/common/types/localization/NetWorthCopy.ts +0 -14
  333. package/src/common/types/localization/NotificationsCopy.ts +0 -7
  334. package/src/common/types/localization/RecurringCopy.ts +0 -76
  335. package/src/common/types/localization/SpendingCopy.ts +0 -16
  336. package/src/common/types/localization/TransactionsCopy.ts +0 -81
  337. package/src/common/types/localization/TrendsCopy.ts +0 -10
  338. package/src/common/types/localization/index.ts +0 -19
  339. package/src/common/utils/AccountFilter.ts +0 -45
  340. package/src/common/utils/Analytics.ts +0 -51
  341. package/src/common/utils/Categories.ts +0 -75
  342. package/src/common/utils/DateUtil.ts +0 -67
  343. package/src/common/utils/Fetch.ts +0 -115
  344. package/src/common/utils/Localization.ts +0 -67
  345. package/src/common/utils/NumberFormatting.ts +0 -65
  346. package/src/common/utils/__tests__/Fetch.test.tsx +0 -34
  347. package/src/common/utils/index.ts +0 -18
  348. package/src/dashboard/Dashboard.tsx +0 -92
  349. package/src/dashboard/Greeting.tsx +0 -75
  350. package/src/dashboard/__tests__/Dashboard.test.tsx +0 -84
  351. package/src/dashboard/constants/Dashboard.ts +0 -4
  352. package/src/dashboard/index.ts +0 -3
  353. package/src/dashboard/types/DashboardTypes.ts +0 -9
  354. package/src/debts/DebtsWidget.tsx +0 -90
  355. package/src/debts/components/DebtsChart.tsx +0 -190
  356. package/src/debts/components/DebtsTable.tsx +0 -209
  357. package/src/debts/components/SnowballCard.tsx +0 -70
  358. package/src/debts/components/SnowballDrawer.tsx +0 -384
  359. package/src/debts/components/debtstable/AccountCell.tsx +0 -25
  360. package/src/debts/components/debtstable/PriorityCell.tsx +0 -46
  361. package/src/debts/index.ts +0 -4
  362. package/src/debts/store/DebtsStore.ts +0 -20
  363. package/src/debts/utils/DebtStore.ts +0 -75
  364. package/src/debts/utils/DebtsWidget.ts +0 -32
  365. package/src/debts/utils/SnowballCard.tsx +0 -48
  366. package/src/goals/GoalsWidget.tsx +0 -128
  367. package/src/goals/api/GoalApi.ts +0 -29
  368. package/src/goals/components/GoalDetails.tsx +0 -240
  369. package/src/goals/components/GoalList.tsx +0 -101
  370. package/src/goals/components/GoalStatusCard.tsx +0 -87
  371. package/src/goals/components/TabTitle.tsx +0 -21
  372. package/src/goals/constants/CopyKeys.ts +0 -29
  373. package/src/goals/index.ts +0 -2
  374. package/src/goals/stores/GoalStore.ts +0 -47
  375. package/src/goals/util/GoalsUtil.ts +0 -61
  376. package/src/index.ts +0 -17
  377. package/src/insights/README.md +0 -16
  378. package/src/insights/contexts/ToastContext.tsx +0 -62
  379. package/src/insights/index.ts +0 -5
  380. package/src/insights/settings/SettingsDrawer.tsx +0 -40
  381. package/src/insights/settings/__tests__/SettingsDrawer.test.tsx +0 -50
  382. package/src/insights/settings/components/PulseSubheaderRow.tsx +0 -34
  383. package/src/insights/settings/components/SettingsItem.tsx +0 -55
  384. package/src/insights/settings/components/Toast.tsx +0 -69
  385. package/src/insights/settings/hiddeninsights/__tests__/HiddenInsightsDrawer.test.tsx +0 -108
  386. package/src/insights/settings/hiddeninsights/__tests__/SubCategoryDrawer.test.tsx +0 -150
  387. package/src/insights/settings/hiddeninsights/components/CategoryEmptyState.tsx +0 -50
  388. package/src/insights/settings/hiddeninsights/components/HiddenInsightsDrawer.tsx +0 -222
  389. package/src/insights/settings/hiddeninsights/components/HiddenInsightsDrawerWrapper.tsx +0 -24
  390. package/src/insights/settings/hiddeninsights/components/SubCategoryDrawer.tsx +0 -256
  391. package/src/insights/settings/hiddeninsights/images/no-insights.png +0 -0
  392. package/src/insights/settings/hiddeninsights/types/index.ts +0 -74
  393. package/src/insights/settings/manageaccounts/__tests__/AccountGroup.test.tsx +0 -92
  394. package/src/insights/settings/manageaccounts/__tests__/ManageAccountsDrawer.test.tsx +0 -83
  395. package/src/insights/settings/manageaccounts/components/AccountGroup.tsx +0 -109
  396. package/src/insights/settings/manageaccounts/components/ManageAccountsDrawer.tsx +0 -63
  397. package/src/insights/settings/manageaccounts/types/index.ts +0 -13
  398. package/src/insights/settings/types/index.ts +0 -4
  399. package/src/insights/store/BeatStore.ts +0 -25
  400. package/src/insights/utils/beatTemplateCategories.ts +0 -103
  401. package/src/merchants/api/MerchantApi.ts +0 -33
  402. package/src/merchants/components/MerchantLookup.tsx +0 -117
  403. package/src/merchants/index.ts +0 -2
  404. package/src/merchants/stores/MerchantStore.ts +0 -42
  405. package/src/microinsights/analytics.ts +0 -31
  406. package/src/microinsights/components/beatCard/BeatCard.tsx +0 -124
  407. package/src/microinsights/components/beaticons/BeatCategoryIcon.tsx +0 -20
  408. package/src/microinsights/components/beaticons/BeatIcon.tsx +0 -45
  409. package/src/microinsights/components/beaticons/BeatMerchantLogo.tsx +0 -33
  410. package/src/microinsights/components/beaticons/ChartFilledIcon.tsx +0 -37
  411. package/src/microinsights/components/beaticons/MonthlySpendComparisonIcon.tsx +0 -30
  412. package/src/microinsights/components/beaticons/ZeroStateIcon.tsx +0 -558
  413. package/src/microinsights/components/beaticons/index.tsx +0 -7
  414. package/src/microinsights/components/carouselheader/CarouselHeader.tsx +0 -111
  415. package/src/microinsights/components/insightsmicrowidget/InsightsMicroWidget.tsx +0 -163
  416. package/src/microinsights/components/microBeatCarousel/CarouselControls.tsx +0 -99
  417. package/src/microinsights/components/microBeatCarousel/MicroBeatCarousel.tsx +0 -207
  418. package/src/microinsights/components/microInsightCard/MicroInsightCard.tsx +0 -173
  419. package/src/microinsights/components/noRelevantInsightsCard/NoRelevantInsightsCard.tsx +0 -89
  420. package/src/microinsights/components/spinner/Spinner.tsx +0 -21
  421. package/src/microinsights/components/viewMoreMicroCard/ViewMoreMicroCard.tsx +0 -101
  422. package/src/microinsights/components/zeroStateCard/ZeroStateCard.tsx +0 -62
  423. package/src/microinsights/constants/Analytics.ts +0 -192
  424. package/src/microinsights/constants/App.ts +0 -53
  425. package/src/microinsights/constants/Insights.tsx +0 -3
  426. package/src/microinsights/constants/OnClickEvents.ts +0 -3
  427. package/src/microinsights/context/InsightsMicroWidgetDataProvider.tsx +0 -24
  428. package/src/microinsights/context/hooks.tsx +0 -65
  429. package/src/microinsights/index.ts +0 -16
  430. package/src/microinsights/interfaces.ts +0 -28
  431. package/src/microinsights/stores/AppStore.ts +0 -34
  432. package/src/microinsights/stores/CopyStore.ts +0 -38
  433. package/src/microinsights/stores/InsightsMicroWidgetStore.ts +0 -61
  434. package/src/microinsights/types/BeatUIComponent.ts +0 -5
  435. package/src/microinsights/utils/DataSeries.ts +0 -20
  436. package/src/networth/NetWorthWidget.tsx +0 -171
  437. package/src/networth/__tests__/AssetsLiabilitiesDetail.test.tsx +0 -94
  438. package/src/networth/__tests__/NetWorthChart.test.tsx +0 -31
  439. package/src/networth/__tests__/NetWorthList.test.tsx +0 -33
  440. package/src/networth/components/AssetsLiabilitiesDetail.tsx +0 -146
  441. package/src/networth/components/GainsLossesDetail.tsx +0 -110
  442. package/src/networth/components/NetWorthChange.tsx +0 -51
  443. package/src/networth/components/NetWorthChart.tsx +0 -71
  444. package/src/networth/components/NetWorthList.tsx +0 -91
  445. package/src/networth/components/NetWorthListItem.tsx +0 -72
  446. package/src/networth/components/NetWorthSummary.tsx +0 -36
  447. package/src/networth/index.ts +0 -5
  448. package/src/networth/stores/NetWorthStore.ts +0 -99
  449. package/src/networth/stores/__tests__/NetWorthStore.test.ts +0 -32
  450. package/src/networth/types/NetWorth.ts +0 -59
  451. package/src/networth/utils/NetWorthUtils.ts +0 -177
  452. package/src/networth/utils/__tests__/NetWorthUtils.test.ts +0 -198
  453. package/src/notifications/__tests__/NotificationList.test.tsx +0 -67
  454. package/src/notifications/components/DateRow.tsx +0 -21
  455. package/src/notifications/components/NotificationBadge.tsx +0 -51
  456. package/src/notifications/components/NotificationCard.tsx +0 -63
  457. package/src/notifications/components/NotificationList.tsx +0 -65
  458. package/src/notifications/constants/NotificationConstants.ts +0 -104
  459. package/src/notifications/index.ts +0 -3
  460. package/src/notifications/stores/NotificationStore.ts +0 -62
  461. package/src/notifications/utils/NotificationUtils.ts +0 -21
  462. package/src/recurringactivity/RecurringActivityMiniWidget.tsx +0 -45
  463. package/src/recurringactivity/RecurringActivityWidget.tsx +0 -89
  464. package/src/recurringactivity/__tests__/BuildActivities.test.ts +0 -30
  465. package/src/recurringactivity/__tests__/BuildNewActivity.test.ts +0 -59
  466. package/src/recurringactivity/__tests__/RecurringActivityWidget.test.tsx +0 -33
  467. package/src/recurringactivity/components/ActivityBadges.tsx +0 -40
  468. package/src/recurringactivity/components/ActivityDetails.tsx +0 -196
  469. package/src/recurringactivity/components/ActivityList.tsx +0 -141
  470. package/src/recurringactivity/components/ActivityRow.tsx +0 -161
  471. package/src/recurringactivity/components/ActivityStatus.tsx +0 -82
  472. package/src/recurringactivity/components/MiniWidgetContent.tsx +0 -61
  473. package/src/recurringactivity/components/RecurringActivity.tsx +0 -165
  474. package/src/recurringactivity/components/actions/FrequencyAction.tsx +0 -130
  475. package/src/recurringactivity/components/actions/PaymentDateAction.tsx +0 -99
  476. package/src/recurringactivity/components/activitycalendar/ActivityCalendar.tsx +0 -100
  477. package/src/recurringactivity/components/activitycalendar/ActivityDay.tsx +0 -88
  478. package/src/recurringactivity/components/activitycalendar/Legend.tsx +0 -42
  479. package/src/recurringactivity/components/shared/ActivitySettings.tsx +0 -43
  480. package/src/recurringactivity/components/shared/activitysettings/AddActivity.tsx +0 -175
  481. package/src/recurringactivity/components/shared/activitysettings/AddActivityDetails.tsx +0 -148
  482. package/src/recurringactivity/components/shared/activitysettings/ManageExpenses.tsx +0 -84
  483. package/src/recurringactivity/components/shared/activitysettings/ManageIncome.tsx +0 -102
  484. package/src/recurringactivity/components/shared/activitysettings/SelectTransaction.tsx +0 -45
  485. package/src/recurringactivity/index.ts +0 -5
  486. package/src/recurringactivity/stores/RecurringActivityStore.ts +0 -312
  487. package/src/recurringactivity/util/RecurringActivityUtils.ts +0 -40
  488. package/src/recurringactivity/util/buildActivities.ts +0 -334
  489. package/src/recurringactivity/util/buildNewActivity.ts +0 -111
  490. package/src/recurringactivity/util/getRecurrence.ts +0 -50
  491. package/src/recurringactivity/util/getStatus.ts +0 -32
  492. package/src/recurringactivity/util/updateActivity.ts +0 -66
  493. package/src/spending/SpendingMiniWidget.tsx +0 -23
  494. package/src/spending/SpendingWidget.tsx +0 -71
  495. package/src/spending/__tests__/MiniSpendingChart.test.tsx +0 -43
  496. package/src/spending/__tests__/SpendingData.test.ts +0 -38
  497. package/src/spending/__tests__/SpendingMiniWidget.test.tsx +0 -49
  498. package/src/spending/__tests__/SpendingWidget.test.tsx +0 -49
  499. package/src/spending/components/MiniSpendingChart.tsx +0 -125
  500. package/src/spending/components/Spending.tsx +0 -175
  501. package/src/spending/components/SpendingChart.tsx +0 -74
  502. package/src/spending/components/SpendingDonut.tsx +0 -125
  503. package/src/spending/components/SpendingLegend.tsx +0 -41
  504. package/src/spending/components/SpendingList.tsx +0 -112
  505. package/src/spending/components/SpendingTabLabel.tsx +0 -25
  506. package/src/spending/index.ts +0 -2
  507. package/src/spending/utils/SpendingData.ts +0 -196
  508. package/src/transactions/TransactionWidget.tsx +0 -319
  509. package/src/transactions/analytics.ts +0 -12
  510. package/src/transactions/api/TransactionApi.ts +0 -204
  511. package/src/transactions/api/__mocks__/TransactionApi.ts +0 -20
  512. package/src/transactions/components/shared/TransactionDetails.tsx +0 -140
  513. package/src/transactions/components/shared/TransactionList.tsx +0 -124
  514. package/src/transactions/components/shared/TransactionTable.tsx +0 -123
  515. package/src/transactions/components/shared/transactiondetails/Description.tsx +0 -97
  516. package/src/transactions/components/shared/transactiondetails/FlagTransaction.tsx +0 -63
  517. package/src/transactions/components/shared/transactiondetails/ManualTransactionDetails.tsx +0 -148
  518. package/src/transactions/components/shared/transactiondetails/TransactionAmountHeader.tsx +0 -39
  519. package/src/transactions/components/shared/transactiondetails/actions/CategoryAction.tsx +0 -149
  520. package/src/transactions/components/shared/transactiondetails/actions/DateAction.tsx +0 -119
  521. package/src/transactions/components/shared/transactiondetails/actions/DeleteAction.tsx +0 -85
  522. package/src/transactions/components/shared/transactiondetails/actions/DeleteLogoAction.tsx +0 -88
  523. package/src/transactions/components/shared/transactiondetails/actions/HideAction.tsx +0 -126
  524. package/src/transactions/components/shared/transactiondetails/actions/MemoAction.tsx +0 -112
  525. package/src/transactions/components/shared/transactiondetails/actions/SplitAction.tsx +0 -234
  526. package/src/transactions/components/shared/transactiondetails/actions/TagsAction.tsx +0 -119
  527. package/src/transactions/components/shared/transactiondetails/actions/index.ts +0 -8
  528. package/src/transactions/components/shared/transactionlist/DateRow.tsx +0 -33
  529. package/src/transactions/components/shared/transactionlist/TransactionRow.tsx +0 -92
  530. package/src/transactions/components/shared/transactionlist/ZeroState.tsx +0 -36
  531. package/src/transactions/components/shared/transactiontable/cells/AccountCell.tsx +0 -12
  532. package/src/transactions/components/shared/transactiontable/cells/AmountCell.tsx +0 -35
  533. package/src/transactions/components/shared/transactiontable/cells/CategoryCell.tsx +0 -37
  534. package/src/transactions/components/shared/transactiontable/cells/DateCell.tsx +0 -17
  535. package/src/transactions/components/shared/transactiontable/cells/FlagCell.tsx +0 -43
  536. package/src/transactions/components/shared/transactiontable/cells/HeaderCell.tsx +0 -11
  537. package/src/transactions/components/shared/transactiontable/cells/PayeeCell.tsx +0 -21
  538. package/src/transactions/components/shared/transactiontable/cells/index.ts +0 -7
  539. package/src/transactions/components/splitmanager/SplitManager.tsx +0 -93
  540. package/src/transactions/components/splitmanager/SplitRow.tsx +0 -149
  541. package/src/transactions/components/splitmanager/index.ts +0 -1
  542. package/src/transactions/components/tagmanager/Header.tsx +0 -100
  543. package/src/transactions/components/tagmanager/SearchBox.tsx +0 -60
  544. package/src/transactions/components/tagmanager/TagManager.tsx +0 -51
  545. package/src/transactions/components/tagmanager/TagRow.tsx +0 -145
  546. package/src/transactions/components/tagmanager/index.ts +0 -1
  547. package/src/transactions/components/transactionwidget/AddAccountModal.tsx +0 -30
  548. package/src/transactions/components/transactionwidget/actions/AddTransactionAction.tsx +0 -74
  549. package/src/transactions/components/transactionwidget/actions/EditCategoryAction.tsx +0 -80
  550. package/src/transactions/components/transactionwidget/actions/ExportCsvAction.tsx +0 -32
  551. package/src/transactions/constants/Actions.ts +0 -28
  552. package/src/transactions/constants/Analytics.ts +0 -272
  553. package/src/transactions/constants/OnClickEvents.ts +0 -45
  554. package/src/transactions/constants/Transaction.ts +0 -32
  555. package/src/transactions/constants/TransactionsTable.ts +0 -26
  556. package/src/transactions/context/hooks.tsx +0 -12
  557. package/src/transactions/index.ts +0 -12
  558. package/src/transactions/stores/TransactionStore.ts +0 -327
  559. package/src/transactions/stores/UiStore.ts +0 -72
  560. package/src/transactions/stores/__tests__/TransactionStore.test.ts +0 -80
  561. package/src/transactions/utils/Filters.ts +0 -35
  562. package/src/transactions/utils/Transactions.ts +0 -22
  563. package/src/transactions/utils/buildDetailedTransactions.ts +0 -66
  564. package/src/transactions/utils/exportTransactionsToCSV.ts +0 -85
  565. package/src/transactions/utils/sortAndFilterTransactions.ts +0 -127
  566. package/src/trends/TrendsFullWidget.tsx +0 -286
  567. package/src/trends/TrendsMiniWidget.tsx +0 -49
  568. package/src/trends/__tests__/TrendsFullWidget.test.tsx +0 -45
  569. package/src/trends/__tests__/TrendsMiniWidget.test.tsx +0 -35
  570. package/src/trends/components/SpendingChart.tsx +0 -29
  571. package/src/trends/components/TrendsChart.tsx +0 -75
  572. package/src/trends/components/TrendsDrawer.tsx +0 -74
  573. package/src/trends/components/TrendsTable.tsx +0 -161
  574. package/src/trends/components/__tests__/SpendingChart.test.tsx +0 -37
  575. package/src/trends/components/trendstable/AmountCell.tsx +0 -14
  576. package/src/trends/components/trendstable/CategoryCell.tsx +0 -39
  577. package/src/trends/components/trendstable/HeaderCell.tsx +0 -8
  578. package/src/trends/index.ts +0 -2
  579. package/src/trends/mocks.ts +0 -423
  580. package/src/trends/utils/SpendingData.ts +0 -76
  581. package/src/trends/utils/TrendsData.ts +0 -127
  582. package/src/trends/utils/shared.ts +0 -39
@@ -0,0 +1,478 @@
1
+ import { makeAutoObservable as R, runInAction as u } from "mobx";
2
+ import { getUnixTime as A } from "date-fns/getUnixTime";
3
+ import { endOfToday as f } from "date-fns/endOfToday";
4
+ import { formatISO as N } from "date-fns/formatISO";
5
+ import { fromUnixTime as y } from "date-fns/fromUnixTime";
6
+ import { isBefore as b } from "date-fns/isBefore";
7
+ import { startOfMonth as I } from "date-fns/startOfMonth";
8
+ import { startOfToday as C } from "date-fns/startOfToday";
9
+ import { subDays as O } from "date-fns/subDays";
10
+ import "bowser";
11
+ import "date-fns/intlFormat";
12
+ import { V as v, an as x, ao as _, af as T, ag as m, ap as B, aq as L } from "./ConnectMiniWidget-Ep65CtHH.mjs";
13
+ import "react";
14
+ import "@honeybadger-io/react";
15
+ import "numeral";
16
+ import "date-fns/addMonths";
17
+ import "date-fns/addQuarters";
18
+ import "date-fns/addWeeks";
19
+ import "date-fns/addYears";
20
+ import "date-fns/getDay";
21
+ import "date-fns/nextDay";
22
+ import "date-fns/setDate";
23
+ import { B as D } from "./BeatApi-BxXgbSJY.mjs";
24
+ import "react/jsx-runtime";
25
+ import "@mui/material/Button";
26
+ import "@kyper/mui";
27
+ import "@mui/material/Tooltip";
28
+ import "@mui/material/Box";
29
+ import "@mui/material/IconButton";
30
+ import "@mui/material/styles/useTheme";
31
+ import "@mui/material/useMediaQuery";
32
+ import "@mxenabled/cssinjs";
33
+ import "date-fns/addDays";
34
+ import "date-fns/eachDayOfInterval";
35
+ import "date-fns/eachWeekOfInterval";
36
+ import { endOfMonth as M } from "date-fns/endOfMonth";
37
+ import { format as G } from "date-fns/format";
38
+ import "date-fns/isSameMonth";
39
+ import "date-fns/subMonths";
40
+ import "@mui/material/Paper";
41
+ import "@mui/icons-material/KeyboardArrowLeftRounded";
42
+ import "@mui/icons-material/KeyboardArrowRightRounded";
43
+ import "date-fns/isSameDay";
44
+ import "date-fns/isWithinInterval";
45
+ import "d3";
46
+ import "@mui/material/styles";
47
+ import "@mui/x-charts";
48
+ import "@mui/material/Stack";
49
+ import "@mui/material";
50
+ import "date-fns/differenceInCalendarDays";
51
+ import "date-fns/endOfYear";
52
+ import "date-fns/startOfYear";
53
+ import "date-fns/subYears";
54
+ import "@mui/material/ButtonGroup";
55
+ import "@mui/material/Tab";
56
+ import "@mui/material/Tabs";
57
+ import "@mui/material/ToggleButton";
58
+ import "@mui/material/ToggleButtonGroup";
59
+ import "@mui/material/Dialog";
60
+ import "@mui/material/DialogContent";
61
+ import "@mui/icons-material/ArrowBackOutlined";
62
+ import "@mui/material/Card";
63
+ import "@mui/material/CardHeader";
64
+ import "@mui/material/CardContent";
65
+ import "uuid";
66
+ import "@mui/material/CircularProgress";
67
+ import "@mui/material/FormControlLabel";
68
+ import "@mui/material/Radio";
69
+ import "@mui/material/Avatar";
70
+ import "@mui/material/ListItem";
71
+ import "@mui/material/ListItemAvatar";
72
+ import "@mui/material/ListItemButton";
73
+ import "@mui/material/ListItemText";
74
+ import "@mui/material/ListItemIcon";
75
+ import "date-fns/differenceInDays";
76
+ import "@mui/x-data-grid-pro";
77
+ import "date-fns";
78
+ import "date-fns/getMonth";
79
+ import "date-fns/isAfter";
80
+ import "date-fns/parseISO";
81
+ import "date-fns/subWeeks";
82
+ import { F as U, A as c } from "./Fetch-DpUi1_Dx.mjs";
83
+ class w {
84
+ fetchInstance;
85
+ constructor(t, a) {
86
+ this.fetchInstance = new U(t, a);
87
+ }
88
+ addTag = async (t) => this.fetchInstance.post(c.TAGS, t).then((a) => a.tag);
89
+ addTagging = async (t) => this.fetchInstance.post(c.TAGGINGS, t).then((a) => a.tagging);
90
+ addTransaction = async (t) => this.fetchInstance.post(c.TRANSACTIONS, t).then((a) => a.transaction);
91
+ addTransactionRule = async (t) => this.fetchInstance.post(c.TRANSACTION_RULES, t).then((a) => a);
92
+ getTaggings = async () => this.fetchInstance.get(c.TAGGINGS).then((t) => t.map((a) => a.tagging));
93
+ getTags = async () => this.fetchInstance.get(c.TAGS).then((t) => t.map((a) => a.tag));
94
+ getTransactionRules = async () => this.fetchInstance.get(c.TRANSACTION_RULES).then((t) => t.transaction_rules);
95
+ getTransactionsByDateRange = async (t, a) => this.fetchInstance.get(`${c.TRANSACTIONS}/by_date/${t}/${a}`).then((e) => e.map((i) => i.transaction));
96
+ // DEPRECATED
97
+ getTransactionsByAccountsAndDateRange = async (t, a, e) => {
98
+ console.warn("DEPRECATED: getTransactionsByAccountsAndDateRange will be removed");
99
+ const i = t.reduce(
100
+ (o, n, s) => `${o}account_guids[]=${n}${s !== t.length - 1 ? "&" : ""}`,
101
+ ""
102
+ );
103
+ return this.fetchInstance.get(`${c.TRANSACTIONS}/by_date/${a}/${e}?${i}`).then((o) => o.map((n) => n.transaction));
104
+ };
105
+ // DEPRECATED
106
+ getTransactionsByGuids = async (t) => (console.warn("DEPRECATED: getTransactionsByGuids will be removed"), this.fetchInstance.post(`${c.TRANSACTIONS}/by_guids`, { guids: t.join("+") }).then((a) => a.map((e) => e.transaction)));
107
+ // DEPRECATED
108
+ getTransactionsByCategoryAndDate = async (t, a, e) => (console.warn("DEPRECATED: getTransactionsByCategoryAndDate will be removed"), this.fetchInstance.get(
109
+ `${c.TRANSACTIONS}/by_category_guid/${t}/by_date/${a}/${e}`
110
+ ).then((i) => i.map((o) => o.transaction)));
111
+ // DEPRECATED
112
+ getTransactionsByCategoryDateAndAccounts = async (t, a, e, i) => {
113
+ console.warn("DEPRECATED: getTransactionsByCategoryDateAndAccounts will be removed");
114
+ const o = i.reduce(
115
+ (n, s, r) => `${n}account_guids[]=${s}${r !== i.length - 1 ? "&" : ""}`,
116
+ ""
117
+ );
118
+ return this.fetchInstance.get(
119
+ `${c.TRANSACTIONS}/by_category_guid/${t}/by_date/${a}/${e}?${o}`
120
+ ).then((n) => n.map((s) => s.transaction));
121
+ };
122
+ // DEPRECATED
123
+ getTransactionsByCategoriesDateAndAccounts = async (t, a, e, i) => {
124
+ console.warn("DEPRECATED: getTransactionsByCategoriesDateAndAccounts will be removed");
125
+ const o = i.reduce(
126
+ (n, s, r) => `${n}account_guids[]=${s}${r !== i.length - 1 ? "&" : ""}`,
127
+ ""
128
+ );
129
+ return this.fetchInstance.get(
130
+ `${c.TRANSACTIONS}/by_category_guids/${t.join(
131
+ "+"
132
+ )}/by_date/${a}/${e}?${o}`
133
+ ).then((n) => n.map((s) => s.transaction));
134
+ };
135
+ /**
136
+ * DEPRECATED
137
+ * Get all transactions by the top level category, between begin date and end date, and optionally
138
+ * filtered by accounts
139
+ * @param categoryGuid The top level category guid
140
+ * @param beginDate the start date
141
+ * @param endDate the end date
142
+ * @param accountGuids an optional list of account guids
143
+ */
144
+ getTransactionsByTopLevelCategoryAndDate = async (t, a, e, i = []) => {
145
+ console.warn("DEPRECATED: getTransactionsByTopLevelCategoryAndDate will be removed");
146
+ let o = `${c.TRANSACTIONS}/by_top_level_category_guid/${t}/by_date/${a}/${e}`;
147
+ if (i.length > 0) {
148
+ const n = i.reduce(
149
+ (s, r, g) => `${s}account_guids[]=${r}${g !== i.length - 1 ? "&" : ""}`,
150
+ ""
151
+ );
152
+ o += `?${n}`;
153
+ }
154
+ return this.fetchInstance.get(o).then((n) => n.map((s) => s.transaction));
155
+ };
156
+ removeTag = async (t) => this.fetchInstance.delete(`${c.TAGS}/${t}`).then((a) => a);
157
+ removeTagging = async (t) => this.fetchInstance.delete(`${c.TAGGINGS}/${t}`).then((a) => a);
158
+ removeTransaction = async (t) => this.fetchInstance.delete(`${c.TRANSACTIONS}/${t}`).then((a) => a);
159
+ removeTransactionSplit = async (t) => this.fetchInstance.delete(`${c.TRANSACTIONS}/${t}/unsplit`).then((a) => a);
160
+ updateTransactionRule = async (t) => this.fetchInstance.put(`${c.TRANSACTION_RULES}/${t.guid}`, t).then((a) => a);
161
+ updateTag = async (t) => this.fetchInstance.put(`${c.TAGS}/${t.guid}`, t).then((a) => a.tag);
162
+ updateTransaction = async (t) => this.fetchInstance.put(`${c.TRANSACTIONS}/${t.guid}`, t).then((a) => a.transaction);
163
+ }
164
+ const E = {
165
+ ASC: "ASC",
166
+ DESC: "DESC",
167
+ DIRECTION: {
168
+ ASC: "ascending",
169
+ DESC: "descending"
170
+ },
171
+ ALIGN: {
172
+ center: "center",
173
+ left: "flex-start",
174
+ right: "flex-end"
175
+ }
176
+ }, P = (d, t, a, e = []) => {
177
+ const i = t.reduce((s, r) => ({ ...s, [r.guid]: r }), {}), o = a.reduce((s, r) => ({ ...s, [r.guid]: r }), {}), n = e.reduce((s, r) => {
178
+ const { transaction_guid: g, tag_guid: h } = r;
179
+ if (!s[g])
180
+ return {
181
+ ...s,
182
+ [g]: [h]
183
+ };
184
+ const p = [...s[g], h];
185
+ return {
186
+ ...s,
187
+ [g]: p
188
+ };
189
+ }, {});
190
+ return d.map((s) => {
191
+ const r = i[s.account_guid], g = s.category_guid ? o[s.category_guid] : null, h = n[s.guid] ?? [];
192
+ return {
193
+ ...s,
194
+ account: r?.user_name || "Unknown",
195
+ accountIsClosed: r?.is_closed,
196
+ accountIsHidden: r?.is_hidden,
197
+ category: g?.name || "Uncategorized",
198
+ isIncome: s.top_level_category_guid === v.INCOME,
199
+ isPending: s.feed_status === x.PENDING,
200
+ number: r?.account_number || "",
201
+ payee: s.description,
202
+ tags: h
203
+ };
204
+ });
205
+ }, F = async (d, t) => !t || !_[d] ? null : t.sendAnalyticEvent(_[d]), S = {
206
+ FLAG: "flag",
207
+ DATE: "date",
208
+ PAYEE: "payee",
209
+ CATEGORY: "category",
210
+ ACCOUNT: "account",
211
+ AMOUNT: "amount"
212
+ }, V = "uncategorized", z = (d, t, a, e, i, o) => {
213
+ const n = Y(d, i, o), s = H(n, a, e);
214
+ return t.forEach((r) => {
215
+ const g = s.findIndex((p) => p.guid === r), h = o.filter((p) => p.parent_guid === r);
216
+ s.splice(g + 1, 0, ...h);
217
+ }), s;
218
+ }, Y = (d, t, a) => {
219
+ const {
220
+ accounts: e = [],
221
+ dateRange: i = { start: I(C()), end: f() },
222
+ custom: o = () => !0,
223
+ searchTerm: n = ""
224
+ } = d;
225
+ return a.filter((s) => !s.parent_guid).filter((s) => !!e.find((r) => r === s.account_guid)).filter((s) => s.date > A(i.start) && s.date < A(i.end)).filter(o).filter((s) => {
226
+ if (n === V && s.has_been_split)
227
+ return !1;
228
+ if (/^spl/i.test(n) && (s.has_been_split || s.parent_guid))
229
+ return !0;
230
+ const g = s.tags.some(
231
+ (p) => l(n, t.find(($) => $.guid === p)?.name)
232
+ ), h = y(s.date);
233
+ return l(n, s.payee) || l(n, s.feed_description) || l(n, s.category) || l(n, T(h, m.MONTH)) || l(n, T(h, m.DAY)) || l(n, T(h, m.FULL_MONTH_DAY)) || l(n, T(h, m.MONTH_DAY_YEAR)) || l(n, G(h, B)) || l(n, s.account) || l(n, `${s.amount}`) || l(n, s.memo) || g;
234
+ });
235
+ }, H = (d, t, a) => [...d].sort((e, i) => {
236
+ const o = t, n = (e[o] || "") > (i[o] || "");
237
+ let s = n ? -1 : 1, r = n ? 1 : -1;
238
+ return (t === S.DATE || t === S.AMOUNT) && (s = n ? 1 : -1, r = n ? -1 : 1), a === E.ASC ? s : r;
239
+ }), l = (d, t) => {
240
+ const a = d.toLowerCase().split(" "), e = t?.toString().toLowerCase() ?? "";
241
+ return a.every((i) => e.indexOf(i) > -1);
242
+ };
243
+ class j {
244
+ beginDate = I(/* @__PURE__ */ new Date());
245
+ endDate = M(/* @__PURE__ */ new Date());
246
+ expandedSplits = [];
247
+ isInitialized = !1;
248
+ height = 550;
249
+ width = 1e3;
250
+ shouldDisableDrawerScroll = !1;
251
+ searchValue = "";
252
+ selectedAccountGuids = [];
253
+ manualTransaction = L;
254
+ isAmountValid = !1;
255
+ showInsights = !1;
256
+ constructor() {
257
+ R(this);
258
+ }
259
+ setDateRange = (t, a) => {
260
+ this.beginDate = t, this.endDate = a;
261
+ };
262
+ setIsInitialized = (t) => this.isInitialized = t;
263
+ setIsAmountValid = (t) => this.isAmountValid = t;
264
+ setSearchValue = (t) => this.searchValue = t;
265
+ setSelectedAccountGuids = (t) => this.selectedAccountGuids = t;
266
+ setShouldDisableDrawerScroll = (t) => this.shouldDisableDrawerScroll = t;
267
+ setShowInsights = (t) => {
268
+ this.showInsights = t;
269
+ };
270
+ setSize = (t, a) => {
271
+ this.height = t, this.width = a;
272
+ };
273
+ toggleSplit = (t) => {
274
+ const a = [...this.expandedSplits], e = this.expandedSplits.findIndex((i) => i === t);
275
+ e >= 0 ? a.splice(e, 1) : a.push(t), this.expandedSplits = a;
276
+ };
277
+ updateManualTransaction = (t) => {
278
+ this.manualTransaction = t;
279
+ };
280
+ }
281
+ class Sa {
282
+ api = new w("/", "");
283
+ beatApi = new D("/", "");
284
+ globalStore;
285
+ uiStore;
286
+ isLoading = !0;
287
+ taggings = [];
288
+ tags = [];
289
+ transactionRules = [];
290
+ transactions = [];
291
+ associatedBeats = [];
292
+ cachedStartDate = O(C(), 90);
293
+ onAnalyticEvent = F;
294
+ sortColumn = S.DATE;
295
+ sortDirection = E.DESC;
296
+ filter = {};
297
+ constructor(t) {
298
+ this.globalStore = t, this.uiStore = new j(), R(this);
299
+ }
300
+ initialize = async (t, a) => {
301
+ this.api = new w(t, a), this.beatApi = new D(t, a), Promise.all([
302
+ this.loadAssociatedBeats(I(/* @__PURE__ */ new Date())),
303
+ this.loadTags(),
304
+ this.loadTaggings(),
305
+ this.loadTransactionRules(),
306
+ // By default loads 90 days of transactions
307
+ this.loadTransactions()
308
+ ]).then(() => this.uiStore.setIsInitialized(!0));
309
+ };
310
+ get sortedTransactions() {
311
+ return z(
312
+ this.filter,
313
+ this.uiStore.expandedSplits,
314
+ this.sortColumn,
315
+ this.sortDirection,
316
+ this.tags,
317
+ this.transactions
318
+ );
319
+ }
320
+ addTag = async (t) => {
321
+ await this.api.addTag({ name: t }), await this.loadTags();
322
+ };
323
+ addTagging = async (t, a) => {
324
+ await this.api.addTagging({
325
+ tag_guid: t,
326
+ transaction_guid: a
327
+ });
328
+ };
329
+ addOrUpdateTransactionRule = async (t, a) => {
330
+ const e = this.transactionRules.find(
331
+ (i) => i.guid === a.user_transaction_rule_guid
332
+ );
333
+ e ? await this.api.updateTransactionRule({
334
+ ...e,
335
+ category_guid: t,
336
+ description: a.description
337
+ }) : await this.api.addTransactionRule({
338
+ category_guid: t,
339
+ description: a.description,
340
+ match_description: a.description
341
+ }), await this.loadTransactionRules();
342
+ };
343
+ addTransaction = async (t) => {
344
+ const a = await this.api.addTransaction(t);
345
+ a && u(
346
+ () => this.transactions = this.augmentTransactions([a, ...this.transactions])
347
+ );
348
+ };
349
+ augmentTransactions = (t) => P(
350
+ t,
351
+ this.globalStore.accountStore.accounts,
352
+ this.globalStore.categoryStore.categories,
353
+ this.taggings
354
+ );
355
+ loadAssociatedBeats = async (t) => {
356
+ const a = t ? N(t, { representation: "date" }) : void 0, e = await this.beatApi.getBeatsWithAssociatedTransaction(a);
357
+ u(() => this.associatedBeats = e);
358
+ };
359
+ loadTags = async () => {
360
+ const t = await this.api.getTags();
361
+ u(() => this.tags = t);
362
+ };
363
+ loadTaggings = async () => {
364
+ const t = await this.api.getTaggings();
365
+ u(() => this.taggings = t);
366
+ };
367
+ loadTransactionRules = async () => {
368
+ const t = await this.api.getTransactionRules();
369
+ u(() => this.transactionRules = t);
370
+ };
371
+ loadTransactions = async (t = this.cachedStartDate, a = f()) => {
372
+ this.setIsLoading(!0), this.transactions = [];
373
+ try {
374
+ const e = await this.api.getTransactionsByDateRange(
375
+ A(t),
376
+ A(a)
377
+ );
378
+ u(() => {
379
+ this.transactions = this.augmentTransactions(e);
380
+ });
381
+ } catch (e) {
382
+ console.error(`Error occurred while loading transactions: ${e}`);
383
+ }
384
+ this.setIsLoading(!1);
385
+ };
386
+ // DEPRECATED
387
+ loadTransactionsByDateRange = async (t, a) => {
388
+ console.warn("DEPRECATED: loadTransactionsByDateRange will be removed"), this.setFilter({
389
+ ...this.filter,
390
+ dateRange: { start: y(a), end: y(t) }
391
+ });
392
+ };
393
+ removeTag = async (t) => {
394
+ await this.api.removeTag(t), await this.loadTags();
395
+ };
396
+ removeTagging = async (t) => {
397
+ await this.api.removeTagging(t);
398
+ };
399
+ removeTransaction = async (t) => {
400
+ await this.api.removeTransaction(t);
401
+ const a = this.transactions.findIndex((e) => e.guid === t);
402
+ if (a >= 0) {
403
+ const e = [...this.transactions];
404
+ e.splice(a, 1), u(() => this.transactions = e);
405
+ }
406
+ };
407
+ setFilter = (t) => {
408
+ this.filter = t, t.dateRange && b(t.dateRange.start, this.cachedStartDate) && this.loadTransactions(t.dateRange.start, f()).then(() => {
409
+ t.dateRange && (this.cachedStartDate = t.dateRange.start);
410
+ });
411
+ };
412
+ setIsLoading = (t) => this.isLoading = t;
413
+ setSortData = (t, a) => {
414
+ this.sortColumn = t, this.sortDirection = a;
415
+ };
416
+ splitTransaction = async (t, a) => {
417
+ const e = await this.api.updateTransaction(t), i = [];
418
+ for (let n = 0; n < a.length; n++) {
419
+ const s = await this.api.addTransaction(a[n]);
420
+ i.push(s);
421
+ }
422
+ const o = this.transactions.findIndex((n) => n.guid === t.guid);
423
+ o >= 0 && u(
424
+ () => this.transactions = this.augmentTransactions([
425
+ ...this.transactions.slice(0, o),
426
+ e,
427
+ ...this.transactions.slice(o + 1),
428
+ ...i
429
+ ])
430
+ );
431
+ };
432
+ unSplitTransaction = async (t) => {
433
+ const a = this.transactions.filter((n) => n.parent_guid === t);
434
+ await this.api.removeTransactionSplit(t);
435
+ const e = [...this.transactions];
436
+ a.forEach((n) => {
437
+ const s = e.findIndex((r) => r.guid === n.guid);
438
+ s >= 0 && e.splice(s, 1);
439
+ });
440
+ const i = e.findIndex((n) => n.guid === t), o = e[i];
441
+ o.has_been_split = !1, i >= 0 && u(
442
+ () => this.transactions = [
443
+ ...e.slice(0, i),
444
+ o,
445
+ ...e.slice(i + 1)
446
+ ]
447
+ );
448
+ };
449
+ updateTaggings = async (t, a) => {
450
+ for (let e = 0; e < t.length; e++) {
451
+ const i = t[e];
452
+ this.taggings.some((o) => o.tag_guid === i) || await this.addTagging(i, a);
453
+ }
454
+ for (let e = 0; e < this.taggings.length; e++) {
455
+ const i = this.taggings[e];
456
+ t.includes(i.tag_guid) || await this.removeTagging(i.guid);
457
+ }
458
+ await this.loadTaggings();
459
+ };
460
+ updateTag = async (t) => {
461
+ await this.api.updateTag(t), await this.loadTags();
462
+ };
463
+ updateTransaction = async (t) => {
464
+ const a = await this.api.updateTransaction(t), e = this.transactions.findIndex((i) => i.guid === t.guid);
465
+ e >= 0 && u(
466
+ () => this.transactions = this.augmentTransactions([
467
+ ...this.transactions.slice(0, e),
468
+ a,
469
+ ...this.transactions.slice(e + 1)
470
+ ])
471
+ );
472
+ };
473
+ }
474
+ export {
475
+ w as T,
476
+ Sa as a
477
+ };
478
+ //# sourceMappingURL=TransactionStore-BUrjBWkk.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TransactionStore-BUrjBWkk.mjs","sources":["../src/transactions/api/TransactionApi.ts","../src/common/constants/Table.ts","../src/transactions/utils/buildDetailedTransactions.ts","../src/transactions/analytics.ts","../src/transactions/constants/TransactionsTable.ts","../src/transactions/utils/sortAndFilterTransactions.ts","../src/transactions/stores/UiStore.ts","../src/transactions/stores/TransactionStore.ts"],"sourcesContent":["import { Fetch } from '../../common'\nimport { ApiEndpoints } from '../../common'\n\nimport type { Tag, Tagging, Transaction, TransactionRule } from '../../common'\n\nexport class TransactionApi {\n fetchInstance: Fetch\n\n constructor(endpoint: string, token: string) {\n this.fetchInstance = new Fetch(endpoint, token)\n }\n\n addTag = async (tag: Tag) => {\n return this.fetchInstance.post(ApiEndpoints.TAGS, tag).then((data) => data.tag)\n }\n\n addTagging = async (tagging: Tagging) => {\n return this.fetchInstance.post(ApiEndpoints.TAGGINGS, tagging).then((data) => data.tagging)\n }\n\n addTransaction = async (transaction: Transaction) => {\n return this.fetchInstance\n .post(ApiEndpoints.TRANSACTIONS, transaction)\n .then((data) => data.transaction)\n }\n\n addTransactionRule = async (rule: TransactionRule) => {\n return this.fetchInstance.post(ApiEndpoints.TRANSACTION_RULES, rule).then((data) => data)\n }\n\n getTaggings = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.TAGGINGS)\n .then((data) => data.map((item: { tagging: Tagging }) => item.tagging))\n }\n\n getTags = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.TAGS)\n .then((data) => data.map((item: { tag: Tag }) => item.tag))\n }\n\n getTransactionRules = async () => {\n return this.fetchInstance\n .get(ApiEndpoints.TRANSACTION_RULES)\n .then((data) => data.transaction_rules)\n }\n\n getTransactionsByDateRange = async (startDate: number, endDate: number) => {\n return this.fetchInstance\n .get(`${ApiEndpoints.TRANSACTIONS}/by_date/${startDate}/${endDate}`)\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n // DEPRECATED\n getTransactionsByAccountsAndDateRange = async (\n accountGuids: string[],\n beginDate: number,\n endDate: number,\n ) => {\n console.warn('DEPRECATED: getTransactionsByAccountsAndDateRange will be removed')\n const accountsList = accountGuids.reduce(\n (acc: string, guid: string, i: number) =>\n `${acc}account_guids[]=${guid}${i !== accountGuids.length - 1 ? '&' : ''}`,\n '',\n )\n\n return this.fetchInstance\n .get(`${ApiEndpoints.TRANSACTIONS}/by_date/${beginDate}/${endDate}?${accountsList}`)\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n // DEPRECATED\n getTransactionsByGuids = async (guids: string[]) => {\n console.warn('DEPRECATED: getTransactionsByGuids will be removed')\n return this.fetchInstance\n .post(`${ApiEndpoints.TRANSACTIONS}/by_guids`, { guids: guids.join('+') })\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n // DEPRECATED\n getTransactionsByCategoryAndDate = async (\n categoryGuid: string,\n beginDate: number,\n endDate: number,\n ) => {\n console.warn('DEPRECATED: getTransactionsByCategoryAndDate will be removed')\n return this.fetchInstance\n .get(\n `${ApiEndpoints.TRANSACTIONS}/by_category_guid/${categoryGuid}/by_date/${beginDate}/${endDate}`,\n )\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n // DEPRECATED\n getTransactionsByCategoryDateAndAccounts = async (\n categoryGuid: string,\n beginDate: number,\n endDate: number,\n accountGuids: string[],\n ) => {\n console.warn('DEPRECATED: getTransactionsByCategoryDateAndAccounts will be removed')\n const accountsList = accountGuids.reduce(\n (acc: string, guid: string, i: number) =>\n `${acc}account_guids[]=${guid}${i !== accountGuids.length - 1 ? '&' : ''}`,\n '',\n )\n\n return this.fetchInstance\n .get(\n `${ApiEndpoints.TRANSACTIONS}/by_category_guid/${categoryGuid}/by_date/${beginDate}/${endDate}?${accountsList}`,\n )\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n // DEPRECATED\n getTransactionsByCategoriesDateAndAccounts = async (\n categoryGuids: string[],\n beginDate: number,\n endDate: number,\n accountGuids: string[],\n ) => {\n console.warn('DEPRECATED: getTransactionsByCategoriesDateAndAccounts will be removed')\n const accountsList = accountGuids.reduce(\n (acc: string, guid: string, i: number) =>\n `${acc}account_guids[]=${guid}${i !== accountGuids.length - 1 ? '&' : ''}`,\n '',\n )\n\n return this.fetchInstance\n .get(\n `${ApiEndpoints.TRANSACTIONS}/by_category_guids/${categoryGuids.join(\n '+',\n )}/by_date/${beginDate}/${endDate}?${accountsList}`,\n )\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n /**\n * DEPRECATED\n * Get all transactions by the top level category, between begin date and end date, and optionally\n * filtered by accounts\n * @param categoryGuid The top level category guid\n * @param beginDate the start date\n * @param endDate the end date\n * @param accountGuids an optional list of account guids\n */\n getTransactionsByTopLevelCategoryAndDate = async (\n categoryGuid: string,\n beginDate: number,\n endDate: number,\n accountGuids: string[] = [],\n ) => {\n console.warn('DEPRECATED: getTransactionsByTopLevelCategoryAndDate will be removed')\n let url = `${ApiEndpoints.TRANSACTIONS}/by_top_level_category_guid/${categoryGuid}/by_date/${beginDate}/${endDate}`\n\n if (accountGuids.length > 0) {\n const accountsList = accountGuids.reduce(\n (acc: string, guid: string, i: number) =>\n `${acc}account_guids[]=${guid}${i !== accountGuids.length - 1 ? '&' : ''}`,\n '',\n )\n url += `?${accountsList}`\n }\n\n return this.fetchInstance\n .get(url)\n .then((data) => data.map((item: { transaction: Transaction }) => item.transaction))\n }\n\n removeTag = async (guid: string) => {\n return this.fetchInstance.delete(`${ApiEndpoints.TAGS}/${guid}`).then((data) => data)\n }\n\n removeTagging = async (guid: string) => {\n return this.fetchInstance.delete(`${ApiEndpoints.TAGGINGS}/${guid}`).then((data) => data)\n }\n\n removeTransaction = async (guid: string) => {\n return this.fetchInstance.delete(`${ApiEndpoints.TRANSACTIONS}/${guid}`).then((data) => data)\n }\n\n removeTransactionSplit = async (guid: string) => {\n return this.fetchInstance\n .delete(`${ApiEndpoints.TRANSACTIONS}/${guid}/unsplit`)\n .then((data) => data)\n }\n\n updateTransactionRule = async (rule: TransactionRule) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.TRANSACTION_RULES}/${rule.guid}`, rule)\n .then((data) => data)\n }\n\n updateTag = async (tag: Tag) => {\n return this.fetchInstance.put(`${ApiEndpoints.TAGS}/${tag.guid}`, tag).then((data) => data.tag)\n }\n\n updateTransaction = async (transaction: Transaction) => {\n return this.fetchInstance\n .put(`${ApiEndpoints.TRANSACTIONS}/${transaction.guid}`, transaction)\n .then((data) => data.transaction)\n }\n}\n","export const TABLE_CONST = {\n ASC: 'ASC',\n DESC: 'DESC',\n DIRECTION: {\n ASC: 'ascending',\n DESC: 'descending',\n },\n ALIGN: {\n center: 'center',\n left: 'flex-start',\n right: 'flex-end',\n },\n}\n","import { CategoryGuids, TransactionStatus } from '../../common'\n\nimport type { Account, Category, Tagging, Transaction } from '../../common'\n\ninterface AccountsMap {\n [key: string]: Account\n}\n\ninterface CategoriesMap {\n [key: string]: Category\n}\n\ninterface TaggingsMap {\n [key: string]: string[]\n}\n\nexport const buildDetailedTransactions = (\n transactions: Transaction[],\n accounts: Account[],\n categories: Category[],\n taggings: Tagging[] = [],\n) => {\n const accountsMap = accounts.reduce((acc: AccountsMap, account: Account) => {\n return { ...acc, [account.guid]: account }\n }, {})\n\n const categoriesMap = categories.reduce((acc: CategoriesMap, category: Category) => {\n return { ...acc, [category.guid]: category }\n }, {})\n\n const taggingsMap = taggings.reduce((acc: TaggingsMap, tagging: Tagging) => {\n const { transaction_guid, tag_guid } = tagging\n\n if (!acc[transaction_guid]) {\n return {\n ...acc,\n [transaction_guid]: [tag_guid],\n }\n }\n const tags = [...acc[transaction_guid], tag_guid] as string[]\n\n return {\n ...acc,\n [transaction_guid]: tags,\n }\n }, {})\n\n return transactions.map((transaction: Transaction) => {\n const account = accountsMap[transaction.account_guid]\n const category = transaction.category_guid ? categoriesMap[transaction.category_guid] : null\n const tags = taggingsMap[transaction.guid] ?? []\n\n return {\n ...transaction,\n account: account?.user_name || 'Unknown',\n accountIsClosed: account?.is_closed,\n accountIsHidden: account?.is_hidden,\n category: category?.name || 'Uncategorized',\n isIncome: transaction.top_level_category_guid === CategoryGuids.INCOME,\n isPending: transaction.feed_status === TransactionStatus.PENDING,\n number: account?.account_number || '',\n payee: transaction.description,\n tags,\n }\n })\n}\n","import { analyticsSession } from '../common'\nimport { AnalyticsEventsObjectType } from '../common/types/Analytics'\n\nimport { ANALYTICS_EVENTS } from './constants/Analytics'\n\nexport type AnalyticSession = Awaited<ReturnType<typeof analyticsSession>>\n\nexport const onAnalyticEvent = async (event: string, session: AnalyticSession | null) => {\n if (!session || !ANALYTICS_EVENTS[event]) return null\n\n return session.sendAnalyticEvent(ANALYTICS_EVENTS[event] as AnalyticsEventsObjectType)\n}\n","export const ROW_HEIGHT = 48\n\nconst FLAG_COLUMN_WIDTH = 24\nconst DATE_COLUMN_WIDTH = 64\nconst AMOUNT_COLUMN_WIDTH = 112\nconst VARIABLE_COLUMN_WIDTH = `calc((100% - ${\n FLAG_COLUMN_WIDTH + DATE_COLUMN_WIDTH + AMOUNT_COLUMN_WIDTH\n}px) / 3)`\n\nexport const COLUMN_WIDTH = {\n FLAG: FLAG_COLUMN_WIDTH, // Fixed width\n DATE: DATE_COLUMN_WIDTH, // Fixed width\n PAYEE: VARIABLE_COLUMN_WIDTH, // 1/3 of remaining width\n CATEGORY: VARIABLE_COLUMN_WIDTH, // 1/3 of remaining width\n ACCOUNT: VARIABLE_COLUMN_WIDTH, // 1/3 of remaining width\n AMOUNT: AMOUNT_COLUMN_WIDTH, // Fixed width\n}\n\nexport const COLUMN_NAMES = {\n FLAG: 'flag',\n DATE: 'date',\n PAYEE: 'payee',\n CATEGORY: 'category',\n ACCOUNT: 'account',\n AMOUNT: 'amount',\n}\n","import { endOfToday } from 'date-fns/endOfToday'\nimport { format } from 'date-fns/format'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { getUnixTime } from 'date-fns/getUnixTime'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\n\nimport { TABLE_CONST } from '../../common/constants/Table'\nimport { DATE_FORMATS_INTL, formatDate, ORDINAL_DATE_FORMAT, Tag, Transaction } from '../../common'\n\nimport { COLUMN_NAMES } from '../constants/TransactionsTable'\nimport { type TransactionFilter } from '../stores/TransactionStore'\n\nconst UNCATEGORIZED_TERM = 'uncategorized'\n\nexport const sortAndFilterTransactions = (\n filter: TransactionFilter,\n expandedSplits: string[],\n sortColumn: string,\n sortDirection: string,\n tags: Tag[],\n transactions: Transaction[],\n) => {\n const filteredTransactions = filterTransactions(filter, tags, transactions)\n\n const sortedTransactions = sortTransactions(filteredTransactions, sortColumn, sortDirection)\n\n expandedSplits.forEach((guid) => {\n const index = sortedTransactions.findIndex((t) => t.guid === guid)\n const children = transactions.filter((t) => t.parent_guid === guid)\n sortedTransactions.splice(index + 1, 0, ...children)\n })\n return sortedTransactions\n}\n\nconst filterTransactions = (\n filter: TransactionFilter,\n tags: Tag[],\n transactions: Transaction[],\n) => {\n const {\n accounts = [],\n dateRange = { start: startOfMonth(startOfToday()), end: endOfToday() },\n custom = () => true,\n searchTerm: searchFilter = '',\n } = filter\n\n return (\n transactions\n // Filters out Split transaction children\n .filter((t) => !t.parent_guid)\n // Filter for selected accounts\n .filter((t) => Boolean(accounts.find((guid) => guid === t.account_guid)))\n // Filter for Date Range\n .filter((t) => t.date > getUnixTime(dateRange.start) && t.date < getUnixTime(dateRange.end))\n // Custom filter\n .filter(custom)\n // Search filter\n .filter((transaction) => {\n // Don't return uncategorized split transactions\n if (searchFilter === UNCATEGORIZED_TERM && transaction.has_been_split) {\n return false\n }\n\n // Split check - When searching for \"Splits\" and transaction is a split or is a parent of a split(s)\n const splitPattern = /^spl/i\n if (\n splitPattern.test(searchFilter) &&\n (transaction.has_been_split || Boolean(transaction.parent_guid))\n ) {\n return true\n }\n\n // Check transactions tags\n const isTagIncludedInSearch = transaction.tags.some((guid) =>\n isIncludedInSearch(searchFilter, tags.find((tag) => tag.guid === guid)?.name),\n )\n\n const date = fromUnixTime(transaction.date)\n return (\n isIncludedInSearch(searchFilter, transaction.payee) ||\n isIncludedInSearch(searchFilter, transaction.feed_description) ||\n isIncludedInSearch(searchFilter, transaction.category) ||\n isIncludedInSearch(searchFilter, formatDate(date, DATE_FORMATS_INTL.MONTH)) ||\n isIncludedInSearch(searchFilter, formatDate(date, DATE_FORMATS_INTL.DAY)) ||\n isIncludedInSearch(searchFilter, formatDate(date, DATE_FORMATS_INTL.FULL_MONTH_DAY)) ||\n isIncludedInSearch(searchFilter, formatDate(date, DATE_FORMATS_INTL.MONTH_DAY_YEAR)) ||\n isIncludedInSearch(searchFilter, format(date, ORDINAL_DATE_FORMAT)) ||\n isIncludedInSearch(searchFilter, transaction.account) ||\n isIncludedInSearch(searchFilter, `${transaction.amount}`) ||\n isIncludedInSearch(searchFilter, transaction.memo) ||\n isTagIncludedInSearch\n )\n })\n )\n}\n\nconst sortTransactions = (\n transactions: Transaction[],\n sortColumn: string,\n sortDirection: string,\n) => {\n return [...transactions].sort((a: Transaction, b: Transaction) => {\n const column = sortColumn as keyof Transaction\n const sortCompare = (a[column] || '') > (b[column] || '')\n\n let sortASC = sortCompare ? -1 : 1\n let sortDESC = sortCompare ? 1 : -1\n\n if (sortColumn === COLUMN_NAMES.DATE || sortColumn === COLUMN_NAMES.AMOUNT) {\n sortASC = sortCompare ? 1 : -1\n sortDESC = sortCompare ? -1 : 1\n }\n\n return sortDirection === TABLE_CONST.ASC ? sortASC : sortDESC\n })\n}\n\n/**\n * Determines if a value is included within the terms set in the search bar\n */\nconst isIncludedInSearch = (searchFilter: string, value: string | null | undefined) => {\n const lowerCasedTerms = searchFilter.toLowerCase().split(' ')\n const lowerCasedValue = value?.toString().toLowerCase() ?? ''\n\n return lowerCasedTerms.every((filter) => lowerCasedValue.indexOf(filter) > -1)\n}\n","import { makeAutoObservable } from 'mobx'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { endOfMonth } from 'date-fns/endOfMonth'\n\nimport type { Transaction } from '../../common'\n\nimport { DEFAULT_TRANSACTION } from '../constants/Transaction'\n\nexport class UiStore {\n beginDate = startOfMonth(new Date())\n endDate = endOfMonth(new Date())\n\n expandedSplits = [] as string[]\n isInitialized = false\n height = 550\n width = 1000\n shouldDisableDrawerScroll = false\n\n searchValue = ''\n selectedAccountGuids = [] as string[]\n\n manualTransaction: Transaction = DEFAULT_TRANSACTION\n isAmountValid = false\n\n showInsights = false\n\n constructor() {\n makeAutoObservable(this)\n }\n\n setDateRange = (beginDate: Date, endDate: Date) => {\n this.beginDate = beginDate\n this.endDate = endDate\n }\n\n setIsInitialized = (isInitialized: boolean) => (this.isInitialized = isInitialized)\n\n setIsAmountValid = (valid: boolean) => (this.isAmountValid = valid)\n\n setSearchValue = (searchValue: string) => (this.searchValue = searchValue)\n\n setSelectedAccountGuids = (accountGuids: string[]) => (this.selectedAccountGuids = accountGuids)\n\n setShouldDisableDrawerScroll = (shouldDisable: boolean) =>\n (this.shouldDisableDrawerScroll = shouldDisable)\n\n setShowInsights = (showInsights: boolean) => {\n this.showInsights = showInsights\n }\n\n setSize = (height: number, width: number) => {\n this.height = height\n this.width = width\n }\n\n toggleSplit = (guid: string) => {\n const expandedSplits = [...this.expandedSplits]\n const index = this.expandedSplits.findIndex((splitGuid) => splitGuid === guid)\n\n if (index >= 0) {\n expandedSplits.splice(index, 1)\n } else {\n expandedSplits.push(guid)\n }\n\n this.expandedSplits = expandedSplits\n }\n\n updateManualTransaction = (manualTransaction: Transaction) => {\n this.manualTransaction = manualTransaction\n }\n}\n","import { makeAutoObservable, runInAction } from 'mobx'\nimport { getUnixTime } from 'date-fns/getUnixTime'\nimport { endOfToday } from 'date-fns/endOfToday'\nimport { formatISO } from 'date-fns/formatISO'\nimport { fromUnixTime } from 'date-fns/fromUnixTime'\nimport { isBefore } from 'date-fns/isBefore'\nimport { startOfMonth } from 'date-fns/startOfMonth'\nimport { startOfToday } from 'date-fns/startOfToday'\nimport { subDays } from 'date-fns/subDays'\n\nimport { TABLE_CONST } from '../../common/constants/Table'\n\nimport { BeatApi } from '../../common'\nimport type { Beat, GlobalStore, Tag, Tagging, Transaction, TransactionRule } from '../../common'\n\nimport { buildDetailedTransactions } from '../utils/buildDetailedTransactions'\nimport { onAnalyticEvent } from '../analytics'\nimport { TransactionApi } from '../api/TransactionApi'\nimport { COLUMN_NAMES } from '../constants/TransactionsTable'\nimport { sortAndFilterTransactions } from '../utils/sortAndFilterTransactions'\nimport { UiStore } from './UiStore'\n\nexport type TransactionFilter = {\n accounts?: string[]\n dateRange?: { start: Date; end: Date }\n custom?: (value: Transaction) => boolean\n searchTerm?: string\n}\n\nexport class TransactionStore {\n api = new TransactionApi('/', '')\n beatApi = new BeatApi('/', '')\n\n globalStore: GlobalStore\n uiStore: UiStore\n\n isLoading = true\n taggings: Tagging[] = []\n tags: Tag[] = []\n transactionRules: TransactionRule[] = []\n transactions: Transaction[] = []\n\n associatedBeats: Beat[] = []\n\n cachedStartDate: Date = subDays(startOfToday(), 90)\n\n onAnalyticEvent = onAnalyticEvent\n sortColumn = COLUMN_NAMES.DATE\n sortDirection = TABLE_CONST.DESC\n\n filter: TransactionFilter = {}\n\n constructor(globalStore: GlobalStore) {\n this.globalStore = globalStore\n this.uiStore = new UiStore()\n\n makeAutoObservable(this)\n }\n\n initialize = async (endpoint: string, token: string) => {\n this.api = new TransactionApi(endpoint, token)\n this.beatApi = new BeatApi(endpoint, token)\n\n Promise.all([\n this.loadAssociatedBeats(startOfMonth(new Date())),\n this.loadTags(),\n this.loadTaggings(),\n this.loadTransactionRules(),\n // By default loads 90 days of transactions\n this.loadTransactions(),\n ]).then(() => this.uiStore.setIsInitialized(true))\n }\n\n get sortedTransactions(): Transaction[] {\n return sortAndFilterTransactions(\n this.filter,\n this.uiStore.expandedSplits,\n this.sortColumn,\n this.sortDirection,\n this.tags,\n this.transactions,\n )\n }\n\n addTag = async (name: string) => {\n await this.api.addTag({ name } as Tag)\n await this.loadTags()\n }\n\n addTagging = async (tagGuid: string, transactionGuid: string) => {\n await this.api.addTagging({\n tag_guid: tagGuid,\n transaction_guid: transactionGuid,\n } as Tagging)\n }\n\n addOrUpdateTransactionRule = async (categoryGuid: string, transaction: Transaction) => {\n const existingRule = this.transactionRules.find(\n (rule: TransactionRule) => rule.guid === transaction.user_transaction_rule_guid,\n ) as TransactionRule | undefined\n\n if (existingRule) {\n await this.api.updateTransactionRule({\n ...existingRule,\n category_guid: categoryGuid,\n description: transaction.description,\n } as TransactionRule)\n } else {\n await this.api.addTransactionRule({\n category_guid: categoryGuid,\n description: transaction.description,\n match_description: transaction.description,\n } as TransactionRule)\n }\n await this.loadTransactionRules()\n }\n\n addTransaction = async (transaction: Transaction) => {\n const newTransaction = await this.api.addTransaction(transaction)\n\n if (newTransaction) {\n runInAction(\n () =>\n (this.transactions = this.augmentTransactions([newTransaction, ...this.transactions])),\n )\n }\n }\n\n augmentTransactions = (transactions: Transaction[]) => {\n return buildDetailedTransactions(\n transactions,\n this.globalStore.accountStore.accounts,\n this.globalStore.categoryStore.categories,\n this.taggings,\n )\n }\n\n loadAssociatedBeats = async (fromDate?: Date) => {\n const fromDateISO = fromDate ? formatISO(fromDate, { representation: 'date' }) : undefined\n const beats = await this.beatApi.getBeatsWithAssociatedTransaction(fromDateISO)\n runInAction(() => (this.associatedBeats = beats))\n }\n\n loadTags = async () => {\n const tags = await this.api.getTags()\n runInAction(() => (this.tags = tags))\n }\n\n loadTaggings = async () => {\n const taggings = await this.api.getTaggings()\n runInAction(() => (this.taggings = taggings))\n }\n\n loadTransactionRules = async () => {\n const transactionRules = await this.api.getTransactionRules()\n runInAction(() => (this.transactionRules = transactionRules))\n }\n\n loadTransactions = async (\n startDate: Date = this.cachedStartDate,\n endDate: Date = endOfToday(),\n ) => {\n this.setIsLoading(true)\n this.transactions = []\n\n try {\n const transactions = await this.api.getTransactionsByDateRange(\n getUnixTime(startDate),\n getUnixTime(endDate),\n )\n runInAction(() => {\n this.transactions = this.augmentTransactions(transactions)\n })\n } catch (error) {\n console.error(`Error occurred while loading transactions: ${error}`)\n }\n this.setIsLoading(false)\n }\n\n // DEPRECATED\n loadTransactionsByDateRange = async (endDate: number, startDate: number) => {\n console.warn('DEPRECATED: loadTransactionsByDateRange will be removed')\n this.setFilter({\n ...this.filter,\n dateRange: { start: fromUnixTime(startDate), end: fromUnixTime(endDate) },\n })\n }\n\n removeTag = async (tagGuid: string) => {\n await this.api.removeTag(tagGuid)\n await this.loadTags()\n }\n\n removeTagging = async (taggingGuid: string) => {\n await this.api.removeTagging(taggingGuid)\n }\n\n removeTransaction = async (transactionGuid: string) => {\n await this.api.removeTransaction(transactionGuid)\n\n const index = this.transactions.findIndex((t: Transaction) => t.guid === transactionGuid)\n\n if (index >= 0) {\n const updatedTransactions = [...this.transactions]\n updatedTransactions.splice(index, 1)\n runInAction(() => (this.transactions = updatedTransactions))\n }\n }\n\n setFilter = (filter: TransactionFilter) => {\n this.filter = filter\n\n // Only reload transactions if new start date is prior to the current cached start date\n // Cached date range end date is always today\n if (filter.dateRange && isBefore(filter.dateRange.start, this.cachedStartDate)) {\n this.loadTransactions(filter.dateRange.start, endOfToday()).then(() => {\n if (filter.dateRange) {\n this.cachedStartDate = filter.dateRange.start\n }\n })\n }\n }\n\n setIsLoading = (isLoading: boolean) => (this.isLoading = isLoading)\n\n setSortData = (sortColumn: string, sortDirection: string) => {\n this.sortColumn = sortColumn\n this.sortDirection = sortDirection\n }\n\n splitTransaction = async (transaction: Transaction, splits: Transaction[]) => {\n const updatedTransaction = await this.api.updateTransaction(transaction)\n const children = [] as Transaction[]\n\n for (let i = 0; i < splits.length; i++) {\n const child = await this.api.addTransaction(splits[i])\n children.push(child)\n }\n\n const index = this.transactions.findIndex((t: Transaction) => t.guid === transaction.guid)\n\n if (index >= 0) {\n runInAction(\n () =>\n (this.transactions = this.augmentTransactions([\n ...this.transactions.slice(0, index),\n updatedTransaction,\n ...this.transactions.slice(index + 1),\n ...children,\n ])),\n )\n }\n }\n\n unSplitTransaction = async (guid: string) => {\n const children = this.transactions.filter((t) => t.parent_guid === guid)\n\n await this.api.removeTransactionSplit(guid)\n\n // Remove children\n const transactions = [...this.transactions]\n children.forEach((child) => {\n const index = transactions.findIndex((t) => t.guid === child.guid)\n\n if (index >= 0) {\n transactions.splice(index, 1)\n }\n })\n\n // Update parent\n const index = transactions.findIndex((t) => t.guid === guid)\n const transaction = transactions[index]\n transaction.has_been_split = false\n if (index >= 0) {\n runInAction(\n () =>\n (this.transactions = [\n ...transactions.slice(0, index),\n transaction,\n ...transactions.slice(index + 1),\n ]),\n )\n }\n }\n\n updateTaggings = async (tagGuids: string[], transactionGuid: string) => {\n // Add tags that don't current exist in taggings\n for (let i = 0; i < tagGuids.length; i++) {\n const tagGuid = tagGuids[i]\n if (!this.taggings.some((tagging: Tagging) => tagging.tag_guid === tagGuid)) {\n await this.addTagging(tagGuid, transactionGuid)\n }\n }\n\n // Remove tags that are in taggings but not in tagGuids\n for (let i = 0; i < this.taggings.length; i++) {\n const tagging = this.taggings[i]\n if (!tagGuids.includes(tagging.tag_guid)) {\n await this.removeTagging(tagging.guid)\n }\n }\n\n await this.loadTaggings()\n }\n\n updateTag = async (tag: Tag) => {\n await this.api.updateTag(tag)\n await this.loadTags()\n }\n\n updateTransaction = async (transaction: Transaction) => {\n const updatedTransaction = await this.api.updateTransaction(transaction)\n\n const index = this.transactions.findIndex((t: Transaction) => t.guid === transaction.guid)\n\n if (index >= 0) {\n runInAction(\n () =>\n (this.transactions = this.augmentTransactions([\n ...this.transactions.slice(0, index),\n updatedTransaction,\n ...this.transactions.slice(index + 1),\n ])),\n )\n }\n }\n}\n"],"names":["TransactionApi","endpoint","token","Fetch","tag","ApiEndpoints","data","tagging","transaction","rule","item","startDate","endDate","accountGuids","beginDate","accountsList","acc","guid","i","guids","categoryGuid","categoryGuids","url","TABLE_CONST","buildDetailedTransactions","transactions","accounts","categories","taggings","accountsMap","account","categoriesMap","category","taggingsMap","transaction_guid","tag_guid","tags","CategoryGuids","TransactionStatus","onAnalyticEvent","event","session","ANALYTICS_EVENTS","COLUMN_NAMES","UNCATEGORIZED_TERM","sortAndFilterTransactions","filter","expandedSplits","sortColumn","sortDirection","filteredTransactions","filterTransactions","sortedTransactions","sortTransactions","index","t","children","dateRange","startOfMonth","startOfToday","endOfToday","custom","searchFilter","getUnixTime","isTagIncludedInSearch","isIncludedInSearch","date","fromUnixTime","formatDate","DATE_FORMATS_INTL","format","ORDINAL_DATE_FORMAT","a","b","column","sortCompare","sortASC","sortDESC","value","lowerCasedTerms","lowerCasedValue","UiStore","endOfMonth","DEFAULT_TRANSACTION","makeAutoObservable","isInitialized","valid","searchValue","shouldDisable","showInsights","height","width","splitGuid","manualTransaction","TransactionStore","BeatApi","subDays","globalStore","name","tagGuid","transactionGuid","existingRule","newTransaction","runInAction","fromDate","fromDateISO","formatISO","beats","transactionRules","error","taggingGuid","updatedTransactions","isBefore","isLoading","splits","updatedTransaction","child","tagGuids"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAKO,MAAMA,EAAe;AAAA,EAC1B;AAAA,EAEA,YAAYC,GAAkBC,GAAe;AAC3C,SAAK,gBAAgB,IAAIC,EAAMF,GAAUC,CAAK;AAAA,EAChD;AAAA,EAEA,SAAS,OAAOE,MACP,KAAK,cAAc,KAAKC,EAAa,MAAMD,CAAG,EAAE,KAAK,CAACE,MAASA,EAAK,GAAG;AAAA,EAGhF,aAAa,OAAOC,MACX,KAAK,cAAc,KAAKF,EAAa,UAAUE,CAAO,EAAE,KAAK,CAACD,MAASA,EAAK,OAAO;AAAA,EAG5F,iBAAiB,OAAOE,MACf,KAAK,cACT,KAAKH,EAAa,cAAcG,CAAW,EAC3C,KAAK,CAACF,MAASA,EAAK,WAAW;AAAA,EAGpC,qBAAqB,OAAOG,MACnB,KAAK,cAAc,KAAKJ,EAAa,mBAAmBI,CAAI,EAAE,KAAK,CAACH,MAASA,CAAI;AAAA,EAG1F,cAAc,YACL,KAAK,cACT,IAAID,EAAa,QAAQ,EACzB,KAAK,CAACC,MAASA,EAAK,IAAI,CAACI,MAA+BA,EAAK,OAAO,CAAC;AAAA,EAG1E,UAAU,YACD,KAAK,cACT,IAAIL,EAAa,IAAI,EACrB,KAAK,CAACC,MAASA,EAAK,IAAI,CAACI,MAAuBA,EAAK,GAAG,CAAC;AAAA,EAG9D,sBAAsB,YACb,KAAK,cACT,IAAIL,EAAa,iBAAiB,EAClC,KAAK,CAACC,MAASA,EAAK,iBAAiB;AAAA,EAG1C,6BAA6B,OAAOK,GAAmBC,MAC9C,KAAK,cACT,IAAI,GAAGP,EAAa,YAAY,YAAYM,CAAS,IAAIC,CAAO,EAAE,EAClE,KAAK,CAACN,MAASA,EAAK,IAAI,CAACI,MAAuCA,EAAK,WAAW,CAAC;AAAA;AAAA,EAItF,wCAAwC,OACtCG,GACAC,GACAF,MACG;AACH,YAAQ,KAAK,mEAAmE;AAChF,UAAMG,IAAeF,EAAa;AAAA,MAChC,CAACG,GAAaC,GAAcC,MAC1B,GAAGF,CAAG,mBAAmBC,CAAI,GAAGC,MAAML,EAAa,SAAS,IAAI,MAAM,EAAE;AAAA,MAC1E;AAAA,IAAA;AAGK,WAAA,KAAK,cACT,IAAI,GAAGR,EAAa,YAAY,YAAYS,CAAS,IAAIF,CAAO,IAAIG,CAAY,EAAE,EAClF,KAAK,CAACT,MAASA,EAAK,IAAI,CAACI,MAAuCA,EAAK,WAAW,CAAC;AAAA,EAAA;AAAA;AAAA,EAItF,yBAAyB,OAAOS,OAC9B,QAAQ,KAAK,oDAAoD,GAC1D,KAAK,cACT,KAAK,GAAGd,EAAa,YAAY,aAAa,EAAE,OAAOc,EAAM,KAAK,GAAG,GAAG,EACxE,KAAK,CAACb,MAASA,EAAK,IAAI,CAACI,MAAuCA,EAAK,WAAW,CAAC;AAAA;AAAA,EAItF,mCAAmC,OACjCU,GACAN,GACAF,OAEA,QAAQ,KAAK,8DAA8D,GACpE,KAAK,cACT;AAAA,IACC,GAAGP,EAAa,YAAY,qBAAqBe,CAAY,YAAYN,CAAS,IAAIF,CAAO;AAAA,EAAA,EAE9F,KAAK,CAACN,MAASA,EAAK,IAAI,CAACI,MAAuCA,EAAK,WAAW,CAAC;AAAA;AAAA,EAItF,2CAA2C,OACzCU,GACAN,GACAF,GACAC,MACG;AACH,YAAQ,KAAK,sEAAsE;AACnF,UAAME,IAAeF,EAAa;AAAA,MAChC,CAACG,GAAaC,GAAcC,MAC1B,GAAGF,CAAG,mBAAmBC,CAAI,GAAGC,MAAML,EAAa,SAAS,IAAI,MAAM,EAAE;AAAA,MAC1E;AAAA,IAAA;AAGF,WAAO,KAAK,cACT;AAAA,MACC,GAAGR,EAAa,YAAY,qBAAqBe,CAAY,YAAYN,CAAS,IAAIF,CAAO,IAAIG,CAAY;AAAA,IAAA,EAE9G,KAAK,CAACT,MAASA,EAAK,IAAI,CAACI,MAAuCA,EAAK,WAAW,CAAC;AAAA,EAAA;AAAA;AAAA,EAItF,6CAA6C,OAC3CW,GACAP,GACAF,GACAC,MACG;AACH,YAAQ,KAAK,wEAAwE;AACrF,UAAME,IAAeF,EAAa;AAAA,MAChC,CAACG,GAAaC,GAAcC,MAC1B,GAAGF,CAAG,mBAAmBC,CAAI,GAAGC,MAAML,EAAa,SAAS,IAAI,MAAM,EAAE;AAAA,MAC1E;AAAA,IAAA;AAGF,WAAO,KAAK,cACT;AAAA,MACC,GAAGR,EAAa,YAAY,sBAAsBgB,EAAc;AAAA,QAC9D;AAAA,MAAA,CACD,YAAYP,CAAS,IAAIF,CAAO,IAAIG,CAAY;AAAA,IAAA,EAElD,KAAK,CAACT,MAASA,EAAK,IAAI,CAACI,MAAuCA,EAAK,WAAW,CAAC;AAAA,EAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAYtF,2CAA2C,OACzCU,GACAN,GACAF,GACAC,IAAyB,CAAA,MACtB;AACH,YAAQ,KAAK,sEAAsE;AAC/E,QAAAS,IAAM,GAAGjB,EAAa,YAAY,+BAA+Be,CAAY,YAAYN,CAAS,IAAIF,CAAO;AAE7G,QAAAC,EAAa,SAAS,GAAG;AAC3B,YAAME,IAAeF,EAAa;AAAA,QAChC,CAACG,GAAaC,GAAcC,MAC1B,GAAGF,CAAG,mBAAmBC,CAAI,GAAGC,MAAML,EAAa,SAAS,IAAI,MAAM,EAAE;AAAA,QAC1E;AAAA,MAAA;AAEF,MAAAS,KAAO,IAAIP,CAAY;AAAA,IACzB;AAEA,WAAO,KAAK,cACT,IAAIO,CAAG,EACP,KAAK,CAAChB,MAASA,EAAK,IAAI,CAACI,MAAuCA,EAAK,WAAW,CAAC;AAAA,EAAA;AAAA,EAGtF,YAAY,OAAOO,MACV,KAAK,cAAc,OAAO,GAAGZ,EAAa,IAAI,IAAIY,CAAI,EAAE,EAAE,KAAK,CAACX,MAASA,CAAI;AAAA,EAGtF,gBAAgB,OAAOW,MACd,KAAK,cAAc,OAAO,GAAGZ,EAAa,QAAQ,IAAIY,CAAI,EAAE,EAAE,KAAK,CAACX,MAASA,CAAI;AAAA,EAG1F,oBAAoB,OAAOW,MAClB,KAAK,cAAc,OAAO,GAAGZ,EAAa,YAAY,IAAIY,CAAI,EAAE,EAAE,KAAK,CAACX,MAASA,CAAI;AAAA,EAG9F,yBAAyB,OAAOW,MACvB,KAAK,cACT,OAAO,GAAGZ,EAAa,YAAY,IAAIY,CAAI,UAAU,EACrD,KAAK,CAACX,MAASA,CAAI;AAAA,EAGxB,wBAAwB,OAAOG,MACtB,KAAK,cACT,IAAI,GAAGJ,EAAa,iBAAiB,IAAII,EAAK,IAAI,IAAIA,CAAI,EAC1D,KAAK,CAACH,MAASA,CAAI;AAAA,EAGxB,YAAY,OAAOF,MACV,KAAK,cAAc,IAAI,GAAGC,EAAa,IAAI,IAAID,EAAI,IAAI,IAAIA,CAAG,EAAE,KAAK,CAACE,MAASA,EAAK,GAAG;AAAA,EAGhG,oBAAoB,OAAOE,MAClB,KAAK,cACT,IAAI,GAAGH,EAAa,YAAY,IAAIG,EAAY,IAAI,IAAIA,CAAW,EACnE,KAAK,CAACF,MAASA,EAAK,WAAW;AAEtC;AC3MO,MAAMiB,IAAc;AAAA,EACzB,KAAK;AAAA,EACL,MAAM;AAAA,EACN,WAAW;AAAA,IACT,KAAK;AAAA,IACL,MAAM;AAAA,EACR;AAAA,EACA,OAAO;AAAA,IACL,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,OAAO;AAAA,EACT;AACF,GCIaC,IAA4B,CACvCC,GACAC,GACAC,GACAC,IAAsB,CAAA,MACnB;AACH,QAAMC,IAAcH,EAAS,OAAO,CAACV,GAAkBc,OAC9C,EAAE,GAAGd,GAAK,CAACc,EAAQ,IAAI,GAAGA,EAAQ,IACxC,CAAE,CAAA,GAECC,IAAgBJ,EAAW,OAAO,CAACX,GAAoBgB,OACpD,EAAE,GAAGhB,GAAK,CAACgB,EAAS,IAAI,GAAGA,EAAS,IAC1C,CAAE,CAAA,GAECC,IAAcL,EAAS,OAAO,CAACZ,GAAkBT,MAAqB;AACpE,UAAA,EAAE,kBAAA2B,GAAkB,UAAAC,EAAa,IAAA5B;AAEnC,QAAA,CAACS,EAAIkB,CAAgB;AAChB,aAAA;AAAA,QACL,GAAGlB;AAAA,QACH,CAACkB,CAAgB,GAAG,CAACC,CAAQ;AAAA,MAAA;AAGjC,UAAMC,IAAO,CAAC,GAAGpB,EAAIkB,CAAgB,GAAGC,CAAQ;AAEzC,WAAA;AAAA,MACL,GAAGnB;AAAA,MACH,CAACkB,CAAgB,GAAGE;AAAA,IAAA;AAAA,EAExB,GAAG,CAAE,CAAA;AAEE,SAAAX,EAAa,IAAI,CAACjB,MAA6B;AAC9C,UAAAsB,IAAUD,EAAYrB,EAAY,YAAY,GAC9CwB,IAAWxB,EAAY,gBAAgBuB,EAAcvB,EAAY,aAAa,IAAI,MAClF4B,IAAOH,EAAYzB,EAAY,IAAI,KAAK,CAAA;AAEvC,WAAA;AAAA,MACL,GAAGA;AAAA,MACH,SAASsB,GAAS,aAAa;AAAA,MAC/B,iBAAiBA,GAAS;AAAA,MAC1B,iBAAiBA,GAAS;AAAA,MAC1B,UAAUE,GAAU,QAAQ;AAAA,MAC5B,UAAUxB,EAAY,4BAA4B6B,EAAc;AAAA,MAChE,WAAW7B,EAAY,gBAAgB8B,EAAkB;AAAA,MACzD,QAAQR,GAAS,kBAAkB;AAAA,MACnC,OAAOtB,EAAY;AAAA,MACnB,MAAA4B;AAAA,IAAA;AAAA,EACF,CACD;AACH,GC1DaG,IAAkB,OAAOC,GAAeC,MAC/C,CAACA,KAAW,CAACC,EAAiBF,CAAK,IAAU,OAE1CC,EAAQ,kBAAkBC,EAAiBF,CAAK,CAA8B,GCQ1EG,IAAe;AAAA,EAC1B,MAAM;AAAA,EACN,MAAM;AAAA,EACN,OAAO;AAAA,EACP,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AACV,GCZMC,IAAqB,iBAEdC,IAA4B,CACvCC,GACAC,GACAC,GACAC,GACAb,GACAX,MACG;AACH,QAAMyB,IAAuBC,EAAmBL,GAAQV,GAAMX,CAAY,GAEpE2B,IAAqBC,EAAiBH,GAAsBF,GAAYC,CAAa;AAE5E,SAAAF,EAAA,QAAQ,CAAC9B,MAAS;AAC/B,UAAMqC,IAAQF,EAAmB,UAAU,CAACG,MAAMA,EAAE,SAAStC,CAAI,GAC3DuC,IAAW/B,EAAa,OAAO,CAAC8B,MAAMA,EAAE,gBAAgBtC,CAAI;AAClE,IAAAmC,EAAmB,OAAOE,IAAQ,GAAG,GAAG,GAAGE,CAAQ;AAAA,EAAA,CACpD,GACMJ;AACT,GAEMD,IAAqB,CACzBL,GACAV,GACAX,MACG;AACG,QAAA;AAAA,IACJ,UAAAC,IAAW,CAAC;AAAA,IACZ,WAAA+B,IAAY,EAAE,OAAOC,EAAaC,GAAc,GAAG,KAAKC,IAAa;AAAA,IACrE,QAAAC,IAAS,MAAM;AAAA,IACf,YAAYC,IAAe;AAAA,EACzB,IAAAhB;AAEJ,SACErB,EAEG,OAAO,CAAC8B,MAAM,CAACA,EAAE,WAAW,EAE5B,OAAO,CAACA,MAAM,EAAQ7B,EAAS,KAAK,CAACT,MAASA,MAASsC,EAAE,YAAY,CAAE,EAEvE,OAAO,CAACA,MAAMA,EAAE,OAAOQ,EAAYN,EAAU,KAAK,KAAKF,EAAE,OAAOQ,EAAYN,EAAU,GAAG,CAAC,EAE1F,OAAOI,CAAM,EAEb,OAAO,CAACrD,MAAgB;AAEnB,QAAAsD,MAAiBlB,KAAsBpC,EAAY;AAC9C,aAAA;AAMP,QAFmB,QAEN,KAAKsD,CAAY,MAC7BtD,EAAY,kBAA0BA,EAAY;AAE5C,aAAA;AAIH,UAAAwD,IAAwBxD,EAAY,KAAK;AAAA,MAAK,CAACS,MACnDgD,EAAmBH,GAAc1B,EAAK,KAAK,CAAChC,MAAQA,EAAI,SAASa,CAAI,GAAG,IAAI;AAAA,IAAA,GAGxEiD,IAAOC,EAAa3D,EAAY,IAAI;AAC1C,WACEyD,EAAmBH,GAActD,EAAY,KAAK,KAClDyD,EAAmBH,GAActD,EAAY,gBAAgB,KAC7DyD,EAAmBH,GAActD,EAAY,QAAQ,KACrDyD,EAAmBH,GAAcM,EAAWF,GAAMG,EAAkB,KAAK,CAAC,KAC1EJ,EAAmBH,GAAcM,EAAWF,GAAMG,EAAkB,GAAG,CAAC,KACxEJ,EAAmBH,GAAcM,EAAWF,GAAMG,EAAkB,cAAc,CAAC,KACnFJ,EAAmBH,GAAcM,EAAWF,GAAMG,EAAkB,cAAc,CAAC,KACnFJ,EAAmBH,GAAcQ,EAAOJ,GAAMK,CAAmB,CAAC,KAClEN,EAAmBH,GAActD,EAAY,OAAO,KACpDyD,EAAmBH,GAAc,GAAGtD,EAAY,MAAM,EAAE,KACxDyD,EAAmBH,GAActD,EAAY,IAAI,KACjDwD;AAAA,EAAA,CAEH;AAEP,GAEMX,IAAmB,CACvB5B,GACAuB,GACAC,MAEO,CAAC,GAAGxB,CAAY,EAAE,KAAK,CAAC+C,GAAgBC,MAAmB;AAChE,QAAMC,IAAS1B,GACT2B,KAAeH,EAAEE,CAAM,KAAK,OAAOD,EAAEC,CAAM,KAAK;AAElD,MAAAE,IAAUD,IAAc,KAAK,GAC7BE,IAAWF,IAAc,IAAI;AAEjC,UAAI3B,MAAeL,EAAa,QAAQK,MAAeL,EAAa,YAClEiC,IAAUD,IAAc,IAAI,IAC5BE,IAAWF,IAAc,KAAK,IAGzB1B,MAAkB1B,EAAY,MAAMqD,IAAUC;AAAA,CACtD,GAMGZ,IAAqB,CAACH,GAAsBgB,MAAqC;AACrF,QAAMC,IAAkBjB,EAAa,YAAY,EAAE,MAAM,GAAG,GACtDkB,IAAkBF,GAAO,SAAS,EAAE,iBAAiB;AAEpD,SAAAC,EAAgB,MAAM,CAACjC,MAAWkC,EAAgB,QAAQlC,CAAM,IAAI,EAAE;AAC/E;ACtHO,MAAMmC,EAAQ;AAAA,EACnB,YAAYvB,EAAiB,oBAAA,KAAA,CAAM;AAAA,EACnC,UAAUwB,EAAe,oBAAA,KAAA,CAAM;AAAA,EAE/B,iBAAiB,CAAA;AAAA,EACjB,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,4BAA4B;AAAA,EAE5B,cAAc;AAAA,EACd,uBAAuB,CAAA;AAAA,EAEvB,oBAAiCC;AAAA,EACjC,gBAAgB;AAAA,EAEhB,eAAe;AAAA,EAEf,cAAc;AACZ,IAAAC,EAAmB,IAAI;AAAA,EACzB;AAAA,EAEA,eAAe,CAACtE,GAAiBF,MAAkB;AACjD,SAAK,YAAYE,GACjB,KAAK,UAAUF;AAAA,EAAA;AAAA,EAGjB,mBAAmB,CAACyE,MAA4B,KAAK,gBAAgBA;AAAA,EAErE,mBAAmB,CAACC,MAAoB,KAAK,gBAAgBA;AAAA,EAE7D,iBAAiB,CAACC,MAAyB,KAAK,cAAcA;AAAA,EAE9D,0BAA0B,CAAC1E,MAA4B,KAAK,uBAAuBA;AAAA,EAEnF,+BAA+B,CAAC2E,MAC7B,KAAK,4BAA4BA;AAAA,EAEpC,kBAAkB,CAACC,MAA0B;AAC3C,SAAK,eAAeA;AAAA,EAAA;AAAA,EAGtB,UAAU,CAACC,GAAgBC,MAAkB;AAC3C,SAAK,SAASD,GACd,KAAK,QAAQC;AAAA,EAAA;AAAA,EAGf,cAAc,CAAC1E,MAAiB;AAC9B,UAAM8B,IAAiB,CAAC,GAAG,KAAK,cAAc,GACxCO,IAAQ,KAAK,eAAe,UAAU,CAACsC,MAAcA,MAAc3E,CAAI;AAE7E,IAAIqC,KAAS,IACIP,EAAA,OAAOO,GAAO,CAAC,IAE9BP,EAAe,KAAK9B,CAAI,GAG1B,KAAK,iBAAiB8B;AAAA,EAAA;AAAA,EAGxB,0BAA0B,CAAC8C,MAAmC;AAC5D,SAAK,oBAAoBA;AAAA,EAAA;AAE7B;AC1CO,MAAMC,GAAiB;AAAA,EAC5B,MAAM,IAAI9F,EAAe,KAAK,EAAE;AAAA,EAChC,UAAU,IAAI+F,EAAQ,KAAK,EAAE;AAAA,EAE7B;AAAA,EACA;AAAA,EAEA,YAAY;AAAA,EACZ,WAAsB,CAAA;AAAA,EACtB,OAAc,CAAA;AAAA,EACd,mBAAsC,CAAA;AAAA,EACtC,eAA8B,CAAA;AAAA,EAE9B,kBAA0B,CAAA;AAAA,EAE1B,kBAAwBC,EAAQrC,EAAa,GAAG,EAAE;AAAA,EAElD,kBAAkBpB;AAAA,EAClB,aAAaI,EAAa;AAAA,EAC1B,gBAAgBpB,EAAY;AAAA,EAE5B,SAA4B,CAAA;AAAA,EAE5B,YAAY0E,GAA0B;AACpC,SAAK,cAAcA,GACd,KAAA,UAAU,IAAIhB,KAEnBG,EAAmB,IAAI;AAAA,EACzB;AAAA,EAEA,aAAa,OAAOnF,GAAkBC,MAAkB;AACtD,SAAK,MAAM,IAAIF,EAAeC,GAAUC,CAAK,GAC7C,KAAK,UAAU,IAAI6F,EAAQ9F,GAAUC,CAAK,GAE1C,QAAQ,IAAI;AAAA,MACV,KAAK,oBAAoBwD,EAAiB,oBAAA,KAAM,CAAA,CAAC;AAAA,MACjD,KAAK,SAAS;AAAA,MACd,KAAK,aAAa;AAAA,MAClB,KAAK,qBAAqB;AAAA;AAAA,MAE1B,KAAK,iBAAiB;AAAA,IAAA,CACvB,EAAE,KAAK,MAAM,KAAK,QAAQ,iBAAiB,EAAI,CAAC;AAAA,EAAA;AAAA,EAGnD,IAAI,qBAAoC;AAC/B,WAAAb;AAAA,MACL,KAAK;AAAA,MACL,KAAK,QAAQ;AAAA,MACb,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,MACL,KAAK;AAAA,IAAA;AAAA,EAET;AAAA,EAEA,SAAS,OAAOqD,MAAiB;AAC/B,UAAM,KAAK,IAAI,OAAO,EAAE,MAAAA,EAAa,CAAA,GACrC,MAAM,KAAK;EAAS;AAAA,EAGtB,aAAa,OAAOC,GAAiBC,MAA4B;AACzD,UAAA,KAAK,IAAI,WAAW;AAAA,MACxB,UAAUD;AAAA,MACV,kBAAkBC;AAAA,IAAA,CACR;AAAA,EAAA;AAAA,EAGd,6BAA6B,OAAOhF,GAAsBZ,MAA6B;AAC/E,UAAA6F,IAAe,KAAK,iBAAiB;AAAA,MACzC,CAAC5F,MAA0BA,EAAK,SAASD,EAAY;AAAA,IAAA;AAGvD,IAAI6F,IACI,MAAA,KAAK,IAAI,sBAAsB;AAAA,MACnC,GAAGA;AAAA,MACH,eAAejF;AAAA,MACf,aAAaZ,EAAY;AAAA,IAAA,CACP,IAEd,MAAA,KAAK,IAAI,mBAAmB;AAAA,MAChC,eAAeY;AAAA,MACf,aAAaZ,EAAY;AAAA,MACzB,mBAAmBA,EAAY;AAAA,IAAA,CACb,GAEtB,MAAM,KAAK;EAAqB;AAAA,EAGlC,iBAAiB,OAAOA,MAA6B;AACnD,UAAM8F,IAAiB,MAAM,KAAK,IAAI,eAAe9F,CAAW;AAEhE,IAAI8F,KACFC;AAAA,MACE,MACG,KAAK,eAAe,KAAK,oBAAoB,CAACD,GAAgB,GAAG,KAAK,YAAY,CAAC;AAAA,IAAA;AAAA,EAE1F;AAAA,EAGF,sBAAsB,CAAC7E,MACdD;AAAA,IACLC;AAAA,IACA,KAAK,YAAY,aAAa;AAAA,IAC9B,KAAK,YAAY,cAAc;AAAA,IAC/B,KAAK;AAAA,EAAA;AAAA,EAIT,sBAAsB,OAAO+E,MAAoB;AACzC,UAAAC,IAAcD,IAAWE,EAAUF,GAAU,EAAE,gBAAgB,OAAA,CAAQ,IAAI,QAC3EG,IAAQ,MAAM,KAAK,QAAQ,kCAAkCF,CAAW;AAClE,IAAAF,EAAA,MAAO,KAAK,kBAAkBI,CAAM;AAAA,EAAA;AAAA,EAGlD,WAAW,YAAY;AACrB,UAAMvE,IAAO,MAAM,KAAK,IAAI,QAAQ;AACxB,IAAAmE,EAAA,MAAO,KAAK,OAAOnE,CAAK;AAAA,EAAA;AAAA,EAGtC,eAAe,YAAY;AACzB,UAAMR,IAAW,MAAM,KAAK,IAAI,YAAY;AAChC,IAAA2E,EAAA,MAAO,KAAK,WAAW3E,CAAS;AAAA,EAAA;AAAA,EAG9C,uBAAuB,YAAY;AACjC,UAAMgF,IAAmB,MAAM,KAAK,IAAI,oBAAoB;AAChD,IAAAL,EAAA,MAAO,KAAK,mBAAmBK,CAAiB;AAAA,EAAA;AAAA,EAG9D,mBAAmB,OACjBjG,IAAkB,KAAK,iBACvBC,IAAgBgD,QACb;AACH,SAAK,aAAa,EAAI,GACtB,KAAK,eAAe;AAEhB,QAAA;AACI,YAAAnC,IAAe,MAAM,KAAK,IAAI;AAAA,QAClCsC,EAAYpD,CAAS;AAAA,QACrBoD,EAAYnD,CAAO;AAAA,MAAA;AAErB,MAAA2F,EAAY,MAAM;AACX,aAAA,eAAe,KAAK,oBAAoB9E,CAAY;AAAA,MAAA,CAC1D;AAAA,aACMoF,GAAO;AACN,cAAA,MAAM,8CAA8CA,CAAK,EAAE;AAAA,IACrE;AACA,SAAK,aAAa,EAAK;AAAA,EAAA;AAAA;AAAA,EAIzB,8BAA8B,OAAOjG,GAAiBD,MAAsB;AAC1E,YAAQ,KAAK,yDAAyD,GACtE,KAAK,UAAU;AAAA,MACb,GAAG,KAAK;AAAA,MACR,WAAW,EAAE,OAAOwD,EAAaxD,CAAS,GAAG,KAAKwD,EAAavD,CAAO,EAAE;AAAA,IAAA,CACzE;AAAA,EAAA;AAAA,EAGH,YAAY,OAAOuF,MAAoB;AAC/B,UAAA,KAAK,IAAI,UAAUA,CAAO,GAChC,MAAM,KAAK;EAAS;AAAA,EAGtB,gBAAgB,OAAOW,MAAwB;AACvC,UAAA,KAAK,IAAI,cAAcA,CAAW;AAAA,EAAA;AAAA,EAG1C,oBAAoB,OAAOV,MAA4B;AAC/C,UAAA,KAAK,IAAI,kBAAkBA,CAAe;AAE1C,UAAA9C,IAAQ,KAAK,aAAa,UAAU,CAACC,MAAmBA,EAAE,SAAS6C,CAAe;AAExF,QAAI9C,KAAS,GAAG;AACd,YAAMyD,IAAsB,CAAC,GAAG,KAAK,YAAY;AAC7B,MAAAA,EAAA,OAAOzD,GAAO,CAAC,GACvBiD,EAAA,MAAO,KAAK,eAAeQ,CAAoB;AAAA,IAC7D;AAAA,EAAA;AAAA,EAGF,YAAY,CAACjE,MAA8B;AACzC,SAAK,SAASA,GAIVA,EAAO,aAAakE,EAASlE,EAAO,UAAU,OAAO,KAAK,eAAe,KACtE,KAAA,iBAAiBA,EAAO,UAAU,OAAOc,EAAY,CAAA,EAAE,KAAK,MAAM;AACrE,MAAId,EAAO,cACJ,KAAA,kBAAkBA,EAAO,UAAU;AAAA,IAC1C,CACD;AAAA,EACH;AAAA,EAGF,eAAe,CAACmE,MAAwB,KAAK,YAAYA;AAAA,EAEzD,cAAc,CAACjE,GAAoBC,MAA0B;AAC3D,SAAK,aAAaD,GAClB,KAAK,gBAAgBC;AAAA,EAAA;AAAA,EAGvB,mBAAmB,OAAOzC,GAA0B0G,MAA0B;AAC5E,UAAMC,IAAqB,MAAM,KAAK,IAAI,kBAAkB3G,CAAW,GACjEgD,IAAW,CAAA;AAEjB,aAAStC,IAAI,GAAGA,IAAIgG,EAAO,QAAQhG,KAAK;AACtC,YAAMkG,IAAQ,MAAM,KAAK,IAAI,eAAeF,EAAOhG,CAAC,CAAC;AACrD,MAAAsC,EAAS,KAAK4D,CAAK;AAAA,IACrB;AAEM,UAAA9D,IAAQ,KAAK,aAAa,UAAU,CAACC,MAAmBA,EAAE,SAAS/C,EAAY,IAAI;AAEzF,IAAI8C,KAAS,KACXiD;AAAA,MACE,MACG,KAAK,eAAe,KAAK,oBAAoB;AAAA,QAC5C,GAAG,KAAK,aAAa,MAAM,GAAGjD,CAAK;AAAA,QACnC6D;AAAA,QACA,GAAG,KAAK,aAAa,MAAM7D,IAAQ,CAAC;AAAA,QACpC,GAAGE;AAAA,MAAA,CACJ;AAAA,IAAA;AAAA,EAEP;AAAA,EAGF,qBAAqB,OAAOvC,MAAiB;AACrC,UAAAuC,IAAW,KAAK,aAAa,OAAO,CAACD,MAAMA,EAAE,gBAAgBtC,CAAI;AAEjE,UAAA,KAAK,IAAI,uBAAuBA,CAAI;AAG1C,UAAMQ,IAAe,CAAC,GAAG,KAAK,YAAY;AACjC,IAAA+B,EAAA,QAAQ,CAAC4D,MAAU;AACpB9D,YAAAA,IAAQ7B,EAAa,UAAU,CAAC8B,MAAMA,EAAE,SAAS6D,EAAM,IAAI;AAEjE,MAAI9D,KAAS,KACE7B,EAAA,OAAO6B,GAAO,CAAC;AAAA,IAC9B,CACD;AAGD,UAAMA,IAAQ7B,EAAa,UAAU,CAAC8B,MAAMA,EAAE,SAAStC,CAAI,GACrDT,IAAciB,EAAa6B,CAAK;AACtC,IAAA9C,EAAY,iBAAiB,IACzB8C,KAAS,KACXiD;AAAA,MACE,MACG,KAAK,eAAe;AAAA,QACnB,GAAG9E,EAAa,MAAM,GAAG6B,CAAK;AAAA,QAC9B9C;AAAA,QACA,GAAGiB,EAAa,MAAM6B,IAAQ,CAAC;AAAA,MACjC;AAAA,IAAA;AAAA,EAEN;AAAA,EAGF,iBAAiB,OAAO+D,GAAoBjB,MAA4B;AAEtE,aAASlF,IAAI,GAAGA,IAAImG,EAAS,QAAQnG,KAAK;AAClC,YAAAiF,IAAUkB,EAASnG,CAAC;AACtB,MAAC,KAAK,SAAS,KAAK,CAACX,MAAqBA,EAAQ,aAAa4F,CAAO,KAClE,MAAA,KAAK,WAAWA,GAASC,CAAe;AAAA,IAElD;AAGA,aAASlF,IAAI,GAAGA,IAAI,KAAK,SAAS,QAAQA,KAAK;AACvC,YAAAX,IAAU,KAAK,SAASW,CAAC;AAC/B,MAAKmG,EAAS,SAAS9G,EAAQ,QAAQ,KAC/B,MAAA,KAAK,cAAcA,EAAQ,IAAI;AAAA,IAEzC;AAEA,UAAM,KAAK;EAAa;AAAA,EAG1B,YAAY,OAAOH,MAAa;AACxB,UAAA,KAAK,IAAI,UAAUA,CAAG,GAC5B,MAAM,KAAK;EAAS;AAAA,EAGtB,oBAAoB,OAAOI,MAA6B;AACtD,UAAM2G,IAAqB,MAAM,KAAK,IAAI,kBAAkB3G,CAAW,GAEjE8C,IAAQ,KAAK,aAAa,UAAU,CAACC,MAAmBA,EAAE,SAAS/C,EAAY,IAAI;AAEzF,IAAI8C,KAAS,KACXiD;AAAA,MACE,MACG,KAAK,eAAe,KAAK,oBAAoB;AAAA,QAC5C,GAAG,KAAK,aAAa,MAAM,GAAGjD,CAAK;AAAA,QACnC6D;AAAA,QACA,GAAG,KAAK,aAAa,MAAM7D,IAAQ,CAAC;AAAA,MAAA,CACrC;AAAA,IAAA;AAAA,EAEP;AAEJ;"}