@bigbinary/neeto-payments-frontend 6.1.11 → 6.1.13

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 (221) hide show
  1. package/dist/AccountsDashboard.js +473 -0
  2. package/dist/AccountsDashboard.js.map +1 -0
  3. package/dist/AdminCancelRecurringPaymentButton.js +65 -0
  4. package/dist/AdminCancelRecurringPaymentButton.js.map +1 -0
  5. package/dist/CashPaymentButton.js +58 -0
  6. package/dist/CashPaymentButton.js.map +1 -0
  7. package/dist/ConfirmCashPaymentButton.js +98 -0
  8. package/dist/ConfirmCashPaymentButton.js.map +1 -0
  9. package/dist/CopyButtonWrapper-Bp5IVO76.js +26 -0
  10. package/dist/CopyButtonWrapper-Bp5IVO76.js.map +1 -0
  11. package/dist/CustomerCancelRecurringPaymentForm.js +103 -0
  12. package/dist/CustomerCancelRecurringPaymentForm.js.map +1 -0
  13. package/dist/ExportModal-DyRGg_4o.js +120 -0
  14. package/dist/ExportModal-DyRGg_4o.js.map +1 -0
  15. package/dist/ManualUpiConnect.js +228 -0
  16. package/dist/ManualUpiConnect.js.map +1 -0
  17. package/dist/ManualUpiPayment.js +125 -0
  18. package/dist/ManualUpiPayment.js.map +1 -0
  19. package/dist/ManualUpiPaymentConfirmButton.js +155 -0
  20. package/dist/ManualUpiPaymentConfirmButton.js.map +1 -0
  21. package/dist/ManualUpiPaymentRejectButton.js +126 -0
  22. package/dist/ManualUpiPaymentRejectButton.js.map +1 -0
  23. package/dist/PaymentKindRestrictionAlert.js +31 -0
  24. package/dist/PaymentKindRestrictionAlert.js.map +1 -0
  25. package/dist/PaymentsDashboard.js +555 -0
  26. package/dist/PaymentsDashboard.js.map +1 -0
  27. package/dist/PayoutsDashboard.js +510 -0
  28. package/dist/PayoutsDashboard.js.map +1 -0
  29. package/dist/PayoutsPage.js +158 -0
  30. package/dist/PayoutsPage.js.map +1 -0
  31. package/dist/RazorpayConnect.js +115 -0
  32. package/dist/RazorpayConnect.js.map +1 -0
  33. package/dist/RazorpayLinkedAccountForm.js +201 -0
  34. package/dist/RazorpayLinkedAccountForm.js.map +1 -0
  35. package/dist/RazorpayPaymentButton.js +127 -0
  36. package/dist/RazorpayPaymentButton.js.map +1 -0
  37. package/dist/RecurringPaymentSettings.js +119 -0
  38. package/dist/RecurringPaymentSettings.js.map +1 -0
  39. package/dist/RefundsDashboard.js +484 -0
  40. package/dist/RefundsDashboard.js.map +1 -0
  41. package/dist/SplitTransfersDashboard.js +1042 -0
  42. package/dist/SplitTransfersDashboard.js.map +1 -0
  43. package/dist/StripeCheckoutSetting.js +82 -0
  44. package/dist/StripeCheckoutSetting.js.map +1 -0
  45. package/dist/StripeConnect.js +376 -0
  46. package/dist/StripeConnect.js.map +1 -0
  47. package/dist/StripeManage.js +46 -0
  48. package/dist/StripeManage.js.map +1 -0
  49. package/dist/TaxesDashboard.js +355 -0
  50. package/dist/TaxesDashboard.js.map +1 -0
  51. package/dist/buildStripeTransactionLink.js +12 -0
  52. package/dist/buildStripeTransactionLink.js.map +1 -0
  53. package/dist/cjs/AccountsDashboard.js +475 -0
  54. package/dist/cjs/AccountsDashboard.js.map +1 -0
  55. package/dist/cjs/AdminCancelRecurringPaymentButton.js +67 -0
  56. package/dist/cjs/AdminCancelRecurringPaymentButton.js.map +1 -0
  57. package/dist/cjs/CashPaymentButton.js +60 -0
  58. package/dist/cjs/CashPaymentButton.js.map +1 -0
  59. package/dist/cjs/ConfirmCashPaymentButton.js +100 -0
  60. package/dist/cjs/ConfirmCashPaymentButton.js.map +1 -0
  61. package/dist/cjs/CopyButtonWrapper-I-kdKiiB.js +29 -0
  62. package/dist/cjs/CopyButtonWrapper-I-kdKiiB.js.map +1 -0
  63. package/dist/cjs/CustomerCancelRecurringPaymentForm.js +105 -0
  64. package/dist/cjs/CustomerCancelRecurringPaymentForm.js.map +1 -0
  65. package/dist/cjs/ExportModal-DE-VcN1X.js +122 -0
  66. package/dist/cjs/ExportModal-DE-VcN1X.js.map +1 -0
  67. package/dist/cjs/ManualUpiConnect.js +249 -0
  68. package/dist/cjs/ManualUpiConnect.js.map +1 -0
  69. package/dist/cjs/ManualUpiPayment.js +146 -0
  70. package/dist/cjs/ManualUpiPayment.js.map +1 -0
  71. package/dist/cjs/ManualUpiPaymentConfirmButton.js +176 -0
  72. package/dist/cjs/ManualUpiPaymentConfirmButton.js.map +1 -0
  73. package/dist/cjs/ManualUpiPaymentRejectButton.js +128 -0
  74. package/dist/cjs/ManualUpiPaymentRejectButton.js.map +1 -0
  75. package/dist/cjs/PaymentKindRestrictionAlert.js +33 -0
  76. package/dist/cjs/PaymentKindRestrictionAlert.js.map +1 -0
  77. package/dist/cjs/PaymentsDashboard.js +557 -0
  78. package/dist/cjs/PaymentsDashboard.js.map +1 -0
  79. package/dist/cjs/PayoutsDashboard.js +512 -0
  80. package/dist/cjs/PayoutsDashboard.js.map +1 -0
  81. package/dist/cjs/PayoutsPage.js +160 -0
  82. package/dist/cjs/PayoutsPage.js.map +1 -0
  83. package/dist/cjs/RazorpayConnect.js +117 -0
  84. package/dist/cjs/RazorpayConnect.js.map +1 -0
  85. package/dist/cjs/RazorpayLinkedAccountForm.js +203 -0
  86. package/dist/cjs/RazorpayLinkedAccountForm.js.map +1 -0
  87. package/dist/cjs/RazorpayPaymentButton.js +129 -0
  88. package/dist/cjs/RazorpayPaymentButton.js.map +1 -0
  89. package/dist/cjs/RecurringPaymentSettings.js +140 -0
  90. package/dist/cjs/RecurringPaymentSettings.js.map +1 -0
  91. package/dist/cjs/RefundsDashboard.js +486 -0
  92. package/dist/cjs/RefundsDashboard.js.map +1 -0
  93. package/dist/cjs/SplitTransfersDashboard.js +1063 -0
  94. package/dist/cjs/SplitTransfersDashboard.js.map +1 -0
  95. package/dist/cjs/StripeCheckoutSetting.js +84 -0
  96. package/dist/cjs/StripeCheckoutSetting.js.map +1 -0
  97. package/dist/cjs/StripeConnect.js +397 -0
  98. package/dist/cjs/StripeConnect.js.map +1 -0
  99. package/dist/cjs/StripeManage.js +48 -0
  100. package/dist/cjs/StripeManage.js.map +1 -0
  101. package/dist/cjs/TaxesDashboard.js +376 -0
  102. package/dist/cjs/TaxesDashboard.js.map +1 -0
  103. package/dist/cjs/buildStripeTransactionLink.js +14 -0
  104. package/dist/cjs/buildStripeTransactionLink.js.map +1 -0
  105. package/dist/cjs/constants.js +38 -0
  106. package/dist/cjs/constants.js.map +1 -0
  107. package/dist/cjs/dashboard-BiCB2A6S.js +96 -0
  108. package/dist/cjs/dashboard-BiCB2A6S.js.map +1 -0
  109. package/dist/cjs/exportChannel-BL2RGGhP.js +38 -0
  110. package/dist/cjs/exportChannel-BL2RGGhP.js.map +1 -0
  111. package/dist/cjs/getAddressElementOptions.js +14 -0
  112. package/dist/cjs/getAddressElementOptions.js.map +1 -0
  113. package/dist/cjs/getAmountInLargestCurrencyUnit.js +14 -0
  114. package/dist/cjs/getAmountInLargestCurrencyUnit.js.map +1 -0
  115. package/dist/cjs/getAmountInSmallestCurrencyUnit.js +14 -0
  116. package/dist/cjs/getAmountInSmallestCurrencyUnit.js.map +1 -0
  117. package/dist/cjs/getAmountWithAppliedTax.js +14 -0
  118. package/dist/cjs/getAmountWithAppliedTax.js.map +1 -0
  119. package/dist/cjs/getFormattedAmount.js +14 -0
  120. package/dist/cjs/getFormattedAmount.js.map +1 -0
  121. package/dist/cjs/getFormattedDiscountedAmount.js +14 -0
  122. package/dist/cjs/getFormattedDiscountedAmount.js.map +1 -0
  123. package/dist/cjs/getFormattedDiscountedPercentage.js +14 -0
  124. package/dist/cjs/getFormattedDiscountedPercentage.js.map +1 -0
  125. package/dist/cjs/getFormattedTaxAmount.js +14 -0
  126. package/dist/cjs/getFormattedTaxAmount.js.map +1 -0
  127. package/dist/cjs/getFormattedTipAmount.js +14 -0
  128. package/dist/cjs/getFormattedTipAmount.js.map +1 -0
  129. package/dist/cjs/getQrCodeValue.js +14 -0
  130. package/dist/cjs/getQrCodeValue.js.map +1 -0
  131. package/dist/cjs/getTaxAmount.js +14 -0
  132. package/dist/cjs/getTaxAmount.js.map +1 -0
  133. package/dist/cjs/getTipAmount.js +14 -0
  134. package/dist/cjs/getTipAmount.js.map +1 -0
  135. package/dist/cjs/hasAmountToPay.js +14 -0
  136. package/dist/cjs/hasAmountToPay.js.map +1 -0
  137. package/dist/cjs/index-D6V3Vofs.js +855 -0
  138. package/dist/cjs/index-D6V3Vofs.js.map +1 -0
  139. package/dist/cjs/index.js +121 -0
  140. package/dist/cjs/index.js.map +1 -0
  141. package/dist/cjs/queryConstants-Dc6wh21D.js +35 -0
  142. package/dist/cjs/queryConstants-Dc6wh21D.js.map +1 -0
  143. package/dist/cjs/renderFunctions-DhCwlBWw.js +48 -0
  144. package/dist/cjs/renderFunctions-DhCwlBWw.js.map +1 -0
  145. package/dist/cjs/stripe.esm-CrNYjPcC.js +132 -0
  146. package/dist/cjs/stripe.esm-CrNYjPcC.js.map +1 -0
  147. package/dist/cjs/useAccountsApi-B2MZWHMY.js +42 -0
  148. package/dist/cjs/useAccountsApi-B2MZWHMY.js.map +1 -0
  149. package/dist/cjs/useIntegrationsApi-CVlTmLKc.js +20 -0
  150. package/dist/cjs/useIntegrationsApi-CVlTmLKc.js.map +1 -0
  151. package/dist/cjs/usePaymentApi-BCE_Ql18.js +29 -0
  152. package/dist/cjs/usePaymentApi-BCE_Ql18.js.map +1 -0
  153. package/dist/cjs/usePaymentApi-Bl8jWvnG.js +44 -0
  154. package/dist/cjs/usePaymentApi-Bl8jWvnG.js.map +1 -0
  155. package/dist/cjs/usePaymentApi-CiwXBe90.js +29 -0
  156. package/dist/cjs/usePaymentApi-CiwXBe90.js.map +1 -0
  157. package/dist/cjs/usePlatformApi-CcGVG4Qi.js +55 -0
  158. package/dist/cjs/usePlatformApi-CcGVG4Qi.js.map +1 -0
  159. package/dist/cjs/useRazorpayPayment.js +88 -0
  160. package/dist/cjs/useRazorpayPayment.js.map +1 -0
  161. package/dist/cjs/useStripePromise.js +31 -0
  162. package/dist/cjs/useStripePromise.js.map +1 -0
  163. package/dist/constants.js +8 -0
  164. package/dist/constants.js.map +1 -0
  165. package/dist/dashboard-CwvqEeOl.js +90 -0
  166. package/dist/dashboard-CwvqEeOl.js.map +1 -0
  167. package/dist/exportChannel-Db0U5gc1.js +35 -0
  168. package/dist/exportChannel-Db0U5gc1.js.map +1 -0
  169. package/dist/getAddressElementOptions.js +12 -0
  170. package/dist/getAddressElementOptions.js.map +1 -0
  171. package/dist/getAmountInLargestCurrencyUnit.js +12 -0
  172. package/dist/getAmountInLargestCurrencyUnit.js.map +1 -0
  173. package/dist/getAmountInSmallestCurrencyUnit.js +12 -0
  174. package/dist/getAmountInSmallestCurrencyUnit.js.map +1 -0
  175. package/dist/getAmountWithAppliedTax.js +12 -0
  176. package/dist/getAmountWithAppliedTax.js.map +1 -0
  177. package/dist/getFormattedAmount.js +12 -0
  178. package/dist/getFormattedAmount.js.map +1 -0
  179. package/dist/getFormattedDiscountedAmount.js +12 -0
  180. package/dist/getFormattedDiscountedAmount.js.map +1 -0
  181. package/dist/getFormattedDiscountedPercentage.js +12 -0
  182. package/dist/getFormattedDiscountedPercentage.js.map +1 -0
  183. package/dist/getFormattedTaxAmount.js +12 -0
  184. package/dist/getFormattedTaxAmount.js.map +1 -0
  185. package/dist/getFormattedTipAmount.js +12 -0
  186. package/dist/getFormattedTipAmount.js.map +1 -0
  187. package/dist/getQrCodeValue.js +12 -0
  188. package/dist/getQrCodeValue.js.map +1 -0
  189. package/dist/getTaxAmount.js +12 -0
  190. package/dist/getTaxAmount.js.map +1 -0
  191. package/dist/getTipAmount.js +12 -0
  192. package/dist/getTipAmount.js.map +1 -0
  193. package/dist/hasAmountToPay.js +12 -0
  194. package/dist/hasAmountToPay.js.map +1 -0
  195. package/dist/index-CNouM9_z.js +804 -0
  196. package/dist/index-CNouM9_z.js.map +1 -0
  197. package/dist/index.js +78 -0
  198. package/dist/index.js.map +1 -0
  199. package/dist/queryConstants-C7AqdemO.js +33 -0
  200. package/dist/queryConstants-C7AqdemO.js.map +1 -0
  201. package/dist/renderFunctions-Bx5nzyE_.js +44 -0
  202. package/dist/renderFunctions-Bx5nzyE_.js.map +1 -0
  203. package/dist/stripe.esm-DuZ_gsAa.js +130 -0
  204. package/dist/stripe.esm-DuZ_gsAa.js.map +1 -0
  205. package/dist/useAccountsApi-C9_eNmEZ.js +38 -0
  206. package/dist/useAccountsApi-C9_eNmEZ.js.map +1 -0
  207. package/dist/useIntegrationsApi-D9eA_FrB.js +18 -0
  208. package/dist/useIntegrationsApi-D9eA_FrB.js.map +1 -0
  209. package/dist/usePaymentApi-B98qoM7U.js +26 -0
  210. package/dist/usePaymentApi-B98qoM7U.js.map +1 -0
  211. package/dist/usePaymentApi-DMHHdCK1.js +41 -0
  212. package/dist/usePaymentApi-DMHHdCK1.js.map +1 -0
  213. package/dist/usePaymentApi-DSlW_EBq.js +27 -0
  214. package/dist/usePaymentApi-DSlW_EBq.js.map +1 -0
  215. package/dist/usePlatformApi-sJUY6wju.js +50 -0
  216. package/dist/usePlatformApi-sJUY6wju.js.map +1 -0
  217. package/dist/useRazorpayPayment.js +86 -0
  218. package/dist/useRazorpayPayment.js.map +1 -0
  219. package/dist/useStripePromise.js +29 -0
  220. package/dist/useStripePromise.js.map +1 -0
  221. package/package.json +1 -1
@@ -0,0 +1,486 @@
1
+ 'use strict';
2
+
3
+ var react = require('react');
4
+ var constants$1 = require('neetocommons/constants');
5
+ var utils = require('neetocommons/utils');
6
+ var neetoFiltersFrontend = require('@bigbinary/neeto-filters-frontend');
7
+ var neetoui = require('@bigbinary/neetoui');
8
+ var ramda = require('ramda');
9
+ var reactRouterDom = require('react-router-dom');
10
+ var ExportModal = require('./ExportModal-DE-VcN1X.js');
11
+ var reactQuery = require('@tanstack/react-query');
12
+ var axios = require('axios');
13
+ var constants = require('./index-D6V3Vofs.js');
14
+ var queryConstants = require('./queryConstants-Dc6wh21D.js');
15
+ var i18next = require('i18next');
16
+ var neetocist = require('neetocist');
17
+ var Columns = require('@bigbinary/neeto-molecules/Columns');
18
+ var TableWrapper = require('@bigbinary/neeto-molecules/TableWrapper');
19
+ var reactI18next = require('react-i18next');
20
+ var exportChannel = require('./exportChannel-BL2RGGhP.js');
21
+ var DateFormat = require('@bigbinary/neeto-molecules/DateFormat');
22
+ var CopyButtonWrapper = require('./CopyButtonWrapper-I-kdKiiB.js');
23
+ var jsxRuntime = require('react/jsx-runtime');
24
+ var Header = require('@bigbinary/neeto-molecules/Header');
25
+ var SubHeader = require('@bigbinary/neeto-molecules/SubHeader');
26
+ require('@bigbinary/neeto-icons');
27
+ require('decimal.js');
28
+ require('@bigbinary/neeto-molecules/CopyToClipboardButton');
29
+
30
+ const list = payload => axios.get(`${constants.BASE_URL}/api/v1/refunds`, {
31
+ params: payload
32
+ });
33
+ const refundsApi = {
34
+ list
35
+ };
36
+
37
+ const useFetchRefunds = (payload = {}, options = {}) => reactQuery.useQuery({
38
+ queryKey: [queryConstants.QUERY_KEYS.REFUNDS_LIST, payload],
39
+ queryFn: () => refundsApi.list(payload),
40
+ ...options
41
+ });
42
+
43
+ const REFUND_DASHBOARD_TAB = {
44
+ all: "all",
45
+ successful: "successful",
46
+ declined: "declined",
47
+ pending: "pending"
48
+ };
49
+ const SEARCH_PROPS = {
50
+ node: "identifier,",
51
+ key: "search_term",
52
+ model: "NeetoPaymentsEngine::Refund,",
53
+ placeholder: i18next.t("neetoPayments.common.searchByIdentifier")
54
+ };
55
+ const FILTER_COLUMNS = [{
56
+ key: "payment_provider",
57
+ label: i18next.t("neetoPayments.common.paymentProvider"),
58
+ node: "payment_provider",
59
+ type: "single_option",
60
+ values: ramda.map(neetocist.toLabelAndValue, constants.PAYMENT_PROVIDERS)
61
+ }, {
62
+ key: "amount",
63
+ label: i18next.t("neetoPayments.common.refundAmount"),
64
+ node: "amount",
65
+ type: "decimal"
66
+ }, {
67
+ key: "payment_amount",
68
+ label: i18next.t("neetoPayments.common.paymentAmount"),
69
+ node: "payment.amount",
70
+ model: "NeetoPaymentsEngine::Payment",
71
+ type: "decimal"
72
+ }, {
73
+ key: "refunded_at",
74
+ label: i18next.t("neetoPayments.common.refundTime"),
75
+ node: "refunded_at",
76
+ type: "date"
77
+ }];
78
+ const TAG_STYLE = {
79
+ initiated: "info",
80
+ declined: "danger",
81
+ successful: "success",
82
+ refunded: "secondary",
83
+ pending: "warning"
84
+ };
85
+
86
+ const renderIdentifier = (identifier, {
87
+ receiptUrl
88
+ }) => {
89
+ const isTemporaryIdentifier = identifier?.startsWith("temp_");
90
+ if (isTemporaryIdentifier) {
91
+ return /*#__PURE__*/jsxRuntime.jsx(neetoui.Tooltip, {
92
+ content: i18next.t("neetoPayments.tooltipContent.paymentIdentifierUnavailable"),
93
+ position: "top",
94
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
95
+ className: "text-center",
96
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
97
+ style: "body2",
98
+ children: i18next.t("neetoPayments.common.notAvailable")
99
+ })
100
+ })
101
+ });
102
+ }
103
+ return /*#__PURE__*/jsxRuntime.jsx(CopyButtonWrapper.CopyButtonWrapper, {
104
+ content: identifier,
105
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Button, {
106
+ href: receiptUrl,
107
+ label: identifier,
108
+ size: "small",
109
+ style: "link",
110
+ target: "_blank"
111
+ })
112
+ });
113
+ };
114
+ const getTagStyle = status => TAG_STYLE[status] || constants.DEFAULT_TAG_STYLE;
115
+ const preProcessStatus = (type, status, record = {}) => {
116
+ if (type === "payment") {
117
+ return record.isRefunded ? "refunded" : status;
118
+ }
119
+ return neetocist.snakeToCamelCase(status);
120
+ };
121
+ const renderStatus = ramda.curry((type, status, record) => {
122
+ const processedStatus = preProcessStatus(type, status, record);
123
+ return /*#__PURE__*/jsxRuntime.jsx(neetoui.Tooltip, {
124
+ content: i18next.t(`neetoPayments.tooltipContent.${type}.${processedStatus}`),
125
+ position: "top",
126
+ children: /*#__PURE__*/jsxRuntime.jsx("div", {
127
+ className: "w-fit",
128
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Tag, {
129
+ style: getTagStyle(processedStatus),
130
+ label: neetocist.humanize(i18next.t(`neetoPayments.tagLabels.${type}.${processedStatus}`))
131
+ })
132
+ })
133
+ });
134
+ });
135
+ const renderDate = date => {
136
+ if (neetocist.isPresent(date)) {
137
+ return /*#__PURE__*/jsxRuntime.jsx(DateFormat.DateTime, {
138
+ date
139
+ });
140
+ }
141
+ return /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
142
+ style: "body2",
143
+ children: i18next.t("neetoPayments.common.notAvailable")
144
+ });
145
+ };
146
+ const getDefaultColumns = () => [{
147
+ title: i18next.t("neetoPayments.common.id"),
148
+ dataIndex: "id",
149
+ key: "id",
150
+ width: 85,
151
+ position: 0,
152
+ isHidable: false
153
+ }, {
154
+ title: i18next.t("neetoPayments.common.identifier"),
155
+ dataIndex: "identifier",
156
+ key: "identifier",
157
+ width: 300,
158
+ render: renderIdentifier,
159
+ position: 1,
160
+ isHidable: false
161
+ }, {
162
+ title: i18next.t("neetoPayments.common.provider"),
163
+ dataIndex: "paymentProvider",
164
+ key: "paymentProvider",
165
+ width: 150,
166
+ render: neetocist.humanize,
167
+ position: 2,
168
+ sorter: false
169
+ }, {
170
+ title: i18next.t("neetoPayments.common.status"),
171
+ dataIndex: "status",
172
+ key: "status",
173
+ width: 200,
174
+ render: renderStatus("refund"),
175
+ sorter: true,
176
+ position: 3,
177
+ isHidable: false
178
+ }, {
179
+ title: i18next.t("neetoPayments.common.refundAmount"),
180
+ dataIndex: "amount",
181
+ key: "amount",
182
+ width: 203,
183
+ sorter: true,
184
+ render: constants.formatAmount,
185
+ position: 4
186
+ }, {
187
+ title: i18next.t("neetoPayments.common.paymentAmount"),
188
+ dataIndex: ["payment", "amount"],
189
+ key: "paymentAmount",
190
+ width: 210,
191
+ sorter: true,
192
+ render: constants.formatAmount,
193
+ position: 4
194
+ }, {
195
+ title: i18next.t("neetoPayments.common.currency"),
196
+ dataIndex: "currency",
197
+ key: "currency",
198
+ width: 180,
199
+ sorter: true,
200
+ render: constants.formatCurrency,
201
+ position: 4
202
+ }, {
203
+ title: i18next.t("neetoPayments.common.refundTime"),
204
+ dataIndex: "refundedAt",
205
+ key: "refundedAt",
206
+ width: 190,
207
+ render: renderDate,
208
+ sorter: true,
209
+ position: 5
210
+ }, {
211
+ title: i18next.t("neetoPayments.common.paymentIdentifier"),
212
+ dataIndex: ["payment", "identifier"],
213
+ key: "paymentIdentifier",
214
+ width: 300,
215
+ render: renderIdentifier,
216
+ position: 6
217
+ }];
218
+
219
+ const buildSearchProps = (searchProps, searchTerm) => ramda.mergeDeepWith(ramda.concat, SEARCH_PROPS, ramda.mergeLeft({
220
+ value: searchTerm.trim()
221
+ }, searchProps));
222
+ const buildFilterColumns = (payableEntityColumns = []) => ramda.reject(ramda.isNil, ramda.concat(FILTER_COLUMNS, ramda.map(ramda.prop("filterProps"), payableEntityColumns)));
223
+ const buildRowData = ({
224
+ refunds,
225
+ pageProperties = {}
226
+ }) => refunds?.map((element, index) => ({
227
+ ...element,
228
+ id: ramda.isEmpty(pageProperties) ? index + 1 : pageProperties.pageSize * (pageProperties.page - 1) + index + 1
229
+ }));
230
+
231
+ const List = ({
232
+ isFetching,
233
+ refunds,
234
+ views,
235
+ payableEntityColumns,
236
+ setSortProperties,
237
+ pageProperties,
238
+ handleTablePagination
239
+ }) => {
240
+ const {
241
+ t
242
+ } = reactI18next.useTranslation();
243
+ const {
244
+ tab = REFUND_DASHBOARD_TAB.all
245
+ } = utils.getQueryParams();
246
+ const refundsCount = views[tab];
247
+ const allColumns = constants.buildDefaultTableColumns({
248
+ payableEntityColumns,
249
+ defaultColumns: getDefaultColumns(),
250
+ isAllTab: tab === REFUND_DASHBOARD_TAB.all
251
+ });
252
+ const {
253
+ isTableConfigurationLoading,
254
+ customizedColumns,
255
+ hideColumn
256
+ } = Columns.useTableConfigurations(`${exportChannel.TABLE_KEYS.REFUNDS_TABLE}-${tab}`, allColumns);
257
+ const handleTableChange = (_, __, sorter) => {
258
+ const processedDataIndex = neetocist.camelToSnakeCase(constants.processDataIndex(sorter.field));
259
+ const sortBy = neetocist.isPresent(constants.ASSOCIATED_TABLE_COLUMNS[processedDataIndex]) ? constants.ASSOCIATED_TABLE_COLUMNS[processedDataIndex] : processedDataIndex;
260
+ setSortProperties(neetocist.isPresent(sorter?.column) ? {
261
+ sortBy,
262
+ orderBy: sorter.order === "ascend" ? "ASC" : "DESC"
263
+ } : constants.DEFAULT_SORT_PROPERTIES);
264
+ };
265
+ if (neetocist.isNotPresent(refunds)) {
266
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
267
+ className: "flex h-full w-full items-center justify-center",
268
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.NoData, {
269
+ title: tab === REFUND_DASHBOARD_TAB.all ? t("neetoPayments.emptyState.refund") : t("neetoPayments.emptyState.refundWithStatus", {
270
+ status: tab
271
+ })
272
+ })
273
+ });
274
+ }
275
+ return /*#__PURE__*/jsxRuntime.jsx(TableWrapper, {
276
+ hasPagination: refundsCount > pageProperties?.pageSize,
277
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Table, {
278
+ fixedHeight: true,
279
+ allowRowClick: false,
280
+ columnData: customizedColumns,
281
+ currentPageNumber: pageProperties?.page,
282
+ handlePageChange: handleTablePagination,
283
+ loading: isFetching || isTableConfigurationLoading,
284
+ rowData: buildRowData({
285
+ refunds,
286
+ pageProperties,
287
+ tab
288
+ }),
289
+ rowSelection: false,
290
+ sortDirections: constants.SORT_DIRECTIONS,
291
+ totalCount: refundsCount,
292
+ paginationProps: {
293
+ showSizeChanger: true,
294
+ hideOnSinglePage: true,
295
+ pageSize: pageProperties?.pageSize,
296
+ total: refundsCount
297
+ },
298
+ onChange: handleTableChange,
299
+ onColumnHide: ({
300
+ key
301
+ }) => hideColumn(key)
302
+ })
303
+ });
304
+ };
305
+
306
+ const TopSection = ({
307
+ views,
308
+ filters,
309
+ setFilters,
310
+ filterableColumns,
311
+ searchKeywordProps,
312
+ payableEntityColumns,
313
+ setIsExportModalOpen
314
+ }) => {
315
+ const [isFilterPaneOpen, setIsFilterPaneOpen] = react.useState(false);
316
+ const {
317
+ t
318
+ } = reactI18next.useTranslation();
319
+ const history = reactRouterDom.useHistory();
320
+ const {
321
+ tab = REFUND_DASHBOARD_TAB.all
322
+ } = utils.getQueryParams();
323
+ const refundsCount = views?.[tab];
324
+ const isRefundCountVisible = refundsCount > 0 || refundsCount === 0 && neetocist.isPresent(filters);
325
+ const isFilterButtonVisible = isRefundCountVisible || neetocist.isPresent(filters);
326
+ const handleFiltersChange = filters => {
327
+ react.startTransition(() => {
328
+ setFilters(filters);
329
+ });
330
+ };
331
+ const handleTabChange = tab => {
332
+ const queryParams = utils.getQueryParams({
333
+ toCamelCase: false
334
+ });
335
+ const newParams = {
336
+ tab,
337
+ page: constants$1.DEFAULT_PAGE_INDEX,
338
+ page_size: constants$1.DEFAULT_PAGE_SIZE
339
+ };
340
+ history.push(utils.buildUrl(window.location.pathname, ramda.mergeLeft(newParams, queryParams)));
341
+ };
342
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
343
+ children: [/*#__PURE__*/jsxRuntime.jsx(Header, {
344
+ title: t("neetoPayments.title.refunds"),
345
+ searchProps: isFilterButtonVisible && {
346
+ placeholder: searchKeywordProps.placeholder,
347
+ className: "w-80"
348
+ }
349
+ }), constants.shouldTabsVisible(views) && /*#__PURE__*/jsxRuntime.jsx(neetoui.Tab, {
350
+ children: Object.keys(REFUND_DASHBOARD_TAB).map(item => /*#__PURE__*/jsxRuntime.jsx(neetoui.Tab.Item, {
351
+ active: tab === item,
352
+ onClick: () => handleTabChange(item),
353
+ children: t(`neetoPayments.common.${item}`)
354
+ }, item))
355
+ }), /*#__PURE__*/jsxRuntime.jsx(SubHeader, {
356
+ className: "my-4",
357
+ leftActionBlock: isRefundCountVisible && /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
358
+ className: "neeto-ui-gray-800 me-2 font-semibold",
359
+ component: "h4",
360
+ children: tab === REFUND_DASHBOARD_TAB.all ? t("neetoPayments.countOf.refund", {
361
+ count: refundsCount
362
+ }) : t("neetoPayments.countOf.refundWithStatus", {
363
+ count: refundsCount,
364
+ status: tab
365
+ })
366
+ }),
367
+ rightActionBlock: isFilterButtonVisible && /*#__PURE__*/jsxRuntime.jsx(SubHeader.RightBlock, {
368
+ columnsButtonProps: {
369
+ columnData: constants.buildDefaultTableColumns({
370
+ defaultColumns: getDefaultColumns(),
371
+ payableEntityColumns,
372
+ isAllTab: tab === REFUND_DASHBOARD_TAB.all
373
+ }).map(ramda.modify("dataIndex", constants.processDataIndex)),
374
+ fixedColumns: constants.UN_HIDEABLE_COLUMNS,
375
+ tableKey: `${exportChannel.TABLE_KEYS.REFUNDS_TABLE}-${tab}`
376
+ },
377
+ downloadButtonProps: {
378
+ onClick: () => setIsExportModalOpen(true)
379
+ },
380
+ filterProps: {
381
+ columns: filterableColumns,
382
+ isOpen: isFilterPaneOpen,
383
+ keyword: searchKeywordProps,
384
+ setIsOpen: setIsFilterPaneOpen,
385
+ onChange: handleFiltersChange
386
+ }
387
+ })
388
+ }), /*#__PURE__*/jsxRuntime.jsx(neetoFiltersFrontend.Bar, {
389
+ columns: filterableColumns,
390
+ keyword: searchKeywordProps,
391
+ setIsPaneOpen: setIsFilterPaneOpen,
392
+ onChange: handleFiltersChange
393
+ })]
394
+ });
395
+ };
396
+
397
+ const RefundsDashboard = ({
398
+ searchProps,
399
+ payableEntityColumns,
400
+ accountIds
401
+ }) => {
402
+ const {
403
+ searchTerm = ""
404
+ } = utils.getQueryParams();
405
+ const filterableColumns = buildFilterColumns(payableEntityColumns);
406
+ const searchKeywordProps = buildSearchProps(searchProps, searchTerm);
407
+ const [sortProperties, setSortProperties] = react.useState(constants.DEFAULT_SORT_PROPERTIES);
408
+ const [pageProperties, setPageProperties] = react.useState(constants.DEFAULT_PAGE_VALUES);
409
+ const [isExportModalOpen, setIsExportModalOpen] = react.useState(false);
410
+ const [filters, setFilters] = react.useState(neetoFiltersFrontend.buildFiltersFromURL([...filterableColumns, searchKeywordProps]));
411
+ const history = reactRouterDom.useHistory();
412
+ const {
413
+ tab = REFUND_DASHBOARD_TAB.all
414
+ } = utils.getQueryParams();
415
+ const payload = {
416
+ tab,
417
+ filters,
418
+ accountIds,
419
+ ...pageProperties,
420
+ ...sortProperties
421
+ };
422
+ const {
423
+ data: {
424
+ refunds,
425
+ views
426
+ } = {},
427
+ isFetching,
428
+ isPending: isRefundsLoading
429
+ } = useFetchRefunds(payload, {
430
+ enabled: true
431
+ });
432
+ const handleTablePagination = (page, pageSize) => {
433
+ const queryParams = utils.getQueryParams({
434
+ toCamelCase: false
435
+ });
436
+ history.push(utils.buildUrl(window.location.pathname, ramda.mergeLeft({
437
+ page,
438
+ page_size: pageSize
439
+ }, queryParams)));
440
+ setPageProperties({
441
+ page,
442
+ pageSize
443
+ });
444
+ };
445
+ react.useEffect(() => {
446
+ handleTablePagination(constants$1.DEFAULT_PAGE_INDEX, constants$1.DEFAULT_PAGE_SIZE);
447
+ setSortProperties(constants.DEFAULT_SORT_PROPERTIES);
448
+ }, [filters, tab]);
449
+ if (isRefundsLoading) {
450
+ return /*#__PURE__*/jsxRuntime.jsx("div", {
451
+ className: "flex h-full w-full items-center justify-center",
452
+ children: /*#__PURE__*/jsxRuntime.jsx(neetoui.Spinner, {})
453
+ });
454
+ }
455
+ return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
456
+ children: [/*#__PURE__*/jsxRuntime.jsx(TopSection, {
457
+ filterableColumns,
458
+ filters,
459
+ pageProperties,
460
+ payableEntityColumns,
461
+ searchKeywordProps,
462
+ setFilters,
463
+ setIsExportModalOpen,
464
+ setPageProperties,
465
+ setSortProperties,
466
+ views
467
+ }), /*#__PURE__*/jsxRuntime.jsx(List, {
468
+ handleTablePagination,
469
+ isFetching,
470
+ pageProperties,
471
+ payableEntityColumns,
472
+ refunds,
473
+ setSortProperties,
474
+ views
475
+ }), /*#__PURE__*/jsxRuntime.jsx(ExportModal.ExportModal, {
476
+ filters,
477
+ isExportModalOpen,
478
+ setIsExportModalOpen,
479
+ sortProperties,
480
+ dashboardKind: constants.DASHBOARD_KIND.refunds
481
+ })]
482
+ });
483
+ };
484
+
485
+ module.exports = RefundsDashboard;
486
+ //# sourceMappingURL=RefundsDashboard.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RefundsDashboard.js","sources":["../../app/javascript/src/apis/refunds.js","../../app/javascript/src/hooks/reactQuery/useRefundsApi.js","../../app/javascript/src/components/RefundsDashboard/constants.js","../../app/javascript/src/components/RefundsDashboard/columns/utils.jsx","../../app/javascript/src/components/RefundsDashboard/utils.js","../../app/javascript/src/components/RefundsDashboard/List.jsx","../../app/javascript/src/components/RefundsDashboard/TopSection.jsx","../../app/javascript/src/components/RefundsDashboard/index.jsx"],"sourcesContent":["import axios from \"axios\";\n\nimport { BASE_URL } from \"src/constants\";\n\nconst list = payload =>\n axios.get(`${BASE_URL}/api/v1/refunds`, { params: payload });\n\nconst refundsApi = { list };\n\nexport default refundsApi;\n","import { useQuery } from \"@tanstack/react-query\";\n\nimport refundsApi from \"apis/refunds\";\nimport { QUERY_KEYS } from \"src/common/queryConstants\";\n\nexport const useFetchRefunds = (payload = {}, options = {}) =>\n useQuery({\n queryKey: [QUERY_KEYS.REFUNDS_LIST, payload],\n queryFn: () => refundsApi.list(payload),\n ...options,\n });\n","import { t } from \"i18next\";\nimport { toLabelAndValue } from \"neetocist\";\nimport { map } from \"ramda\";\n\nimport { PAYMENT_PROVIDERS } from \"src/constants\";\n\nexport const COLUMNS_STORAGE_KEY = \"refundsDashboard\";\n\nexport const REFUND_DASHBOARD_TAB = {\n all: \"all\",\n successful: \"successful\",\n declined: \"declined\",\n pending: \"pending\",\n};\n\nexport const SEARCH_PROPS = {\n node: \"identifier,\",\n key: \"search_term\",\n model: \"NeetoPaymentsEngine::Refund,\",\n placeholder: t(\"neetoPayments.common.searchByIdentifier\"),\n};\n\nexport const FILTER_COLUMNS = [\n {\n key: \"payment_provider\",\n label: t(\"neetoPayments.common.paymentProvider\"),\n node: \"payment_provider\",\n type: \"single_option\",\n values: map(toLabelAndValue, PAYMENT_PROVIDERS),\n },\n {\n key: \"amount\",\n label: t(\"neetoPayments.common.refundAmount\"),\n node: \"amount\",\n type: \"decimal\",\n },\n {\n key: \"payment_amount\",\n label: t(\"neetoPayments.common.paymentAmount\"),\n node: \"payment.amount\",\n model: \"NeetoPaymentsEngine::Payment\",\n type: \"decimal\",\n },\n {\n key: \"refunded_at\",\n label: t(\"neetoPayments.common.refundTime\"),\n node: \"refunded_at\",\n type: \"date\",\n },\n];\n\nexport const TAG_STYLE = {\n initiated: \"info\",\n declined: \"danger\",\n successful: \"success\",\n refunded: \"secondary\",\n pending: \"warning\",\n};\n","import { t } from \"i18next\";\nimport { snakeToCamelCase, humanize, isPresent } from \"neetocist\";\nimport DateFormat from \"neetomolecules/DateFormat\";\nimport { Button, Tag, Tooltip, Typography } from \"neetoui\";\nimport { curry } from \"ramda\";\n\nimport CopyButtonWrapper from \"components/Common/CopyButtonWrapper\";\nimport { DEFAULT_TAG_STYLE } from \"src/constants\";\nimport { formatAmount, formatCurrency } from \"utils\";\n\nimport { TAG_STYLE } from \"../constants\";\n\nconst renderIdentifier = (identifier, { receiptUrl }) => {\n const isTemporaryIdentifier = identifier?.startsWith(\"temp_\");\n\n if (isTemporaryIdentifier) {\n return (\n <Tooltip\n content={t(\"neetoPayments.tooltipContent.paymentIdentifierUnavailable\")}\n position=\"top\"\n >\n <div className=\"text-center\">\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n </div>\n </Tooltip>\n );\n }\n\n return (\n <CopyButtonWrapper content={identifier}>\n <Button\n href={receiptUrl}\n label={identifier}\n size=\"small\"\n style=\"link\"\n target=\"_blank\"\n />\n </CopyButtonWrapper>\n );\n};\n\nconst getTagStyle = status => TAG_STYLE[status] || DEFAULT_TAG_STYLE;\n\nconst preProcessStatus = (type, status, record = {}) => {\n if (type === \"payment\") {\n return record.isRefunded ? \"refunded\" : status;\n }\n\n return snakeToCamelCase(status);\n};\n\nconst renderStatus = curry((type, status, record) => {\n const processedStatus = preProcessStatus(type, status, record);\n\n return (\n <Tooltip\n content={t(`neetoPayments.tooltipContent.${type}.${processedStatus}`)}\n position=\"top\"\n >\n <div className=\"w-fit\">\n <Tag\n style={getTagStyle(processedStatus)}\n label={humanize(\n t(`neetoPayments.tagLabels.${type}.${processedStatus}`)\n )}\n />\n </div>\n </Tooltip>\n );\n});\n\nconst renderDate = date => {\n if (isPresent(date)) {\n return <DateFormat.DateTime {...{ date }} />;\n }\n\n return (\n <Typography style=\"body2\">\n {t(\"neetoPayments.common.notAvailable\")}\n </Typography>\n );\n};\n\nexport const getDefaultColumns = () => [\n {\n title: t(\"neetoPayments.common.id\"),\n dataIndex: \"id\",\n key: \"id\",\n width: 85,\n position: 0,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.identifier\"),\n dataIndex: \"identifier\",\n key: \"identifier\",\n width: 300,\n render: renderIdentifier,\n position: 1,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.provider\"),\n dataIndex: \"paymentProvider\",\n key: \"paymentProvider\",\n width: 150,\n render: humanize,\n position: 2,\n sorter: false,\n },\n {\n title: t(\"neetoPayments.common.status\"),\n dataIndex: \"status\",\n key: \"status\",\n width: 200,\n render: renderStatus(\"refund\"),\n sorter: true,\n position: 3,\n isHidable: false,\n },\n {\n title: t(\"neetoPayments.common.refundAmount\"),\n dataIndex: \"amount\",\n key: \"amount\",\n width: 203,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.paymentAmount\"),\n dataIndex: [\"payment\", \"amount\"],\n key: \"paymentAmount\",\n width: 210,\n sorter: true,\n render: formatAmount,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.currency\"),\n dataIndex: \"currency\",\n key: \"currency\",\n width: 180,\n sorter: true,\n render: formatCurrency,\n position: 4,\n },\n {\n title: t(\"neetoPayments.common.refundTime\"),\n dataIndex: \"refundedAt\",\n key: \"refundedAt\",\n width: 190,\n render: renderDate,\n sorter: true,\n position: 5,\n },\n {\n title: t(\"neetoPayments.common.paymentIdentifier\"),\n dataIndex: [\"payment\", \"identifier\"],\n key: \"paymentIdentifier\",\n width: 300,\n render: renderIdentifier,\n position: 6,\n },\n];\n","import {\n map,\n prop,\n concat,\n mergeDeepWith,\n mergeLeft,\n isNil,\n reject,\n isEmpty,\n} from \"ramda\";\n\nimport { FILTER_COLUMNS, SEARCH_PROPS } from \"./constants\";\n\nexport const buildSearchProps = (searchProps, searchTerm) =>\n mergeDeepWith(\n concat,\n SEARCH_PROPS,\n mergeLeft({ value: searchTerm.trim() }, searchProps)\n );\n\nexport const buildFilterColumns = (payableEntityColumns = []) =>\n reject(\n isNil,\n concat(FILTER_COLUMNS, map(prop(\"filterProps\"), payableEntityColumns))\n );\n\nexport const buildRowData = ({ refunds, pageProperties = {} }) =>\n refunds?.map((element, index) => ({\n ...element,\n id: isEmpty(pageProperties)\n ? index + 1\n : pageProperties.pageSize * (pageProperties.page - 1) + index + 1,\n }));\n","import { camelToSnakeCase, isNotPresent, isPresent } from \"neetocist\";\nimport { getQueryParams } from \"neetocommons/utils\";\nimport { useTableConfigurations } from \"neetomolecules/Columns\";\nimport TableWrapper from \"neetomolecules/TableWrapper\";\nimport { Table, NoData } from \"neetoui\";\nimport { useTranslation } from \"react-i18next\";\n\nimport {\n SORT_DIRECTIONS,\n DEFAULT_SORT_PROPERTIES,\n ASSOCIATED_TABLE_COLUMNS,\n} from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport { buildDefaultTableColumns, processDataIndex } from \"utils\";\n\nimport { getDefaultColumns } from \"./columns/utils\";\nimport { REFUND_DASHBOARD_TAB } from \"./constants\";\nimport { buildRowData } from \"./utils\";\n\nconst List = ({\n isFetching,\n refunds,\n views,\n payableEntityColumns,\n setSortProperties,\n pageProperties,\n handleTablePagination,\n}) => {\n const { t } = useTranslation();\n const { tab = REFUND_DASHBOARD_TAB.all } = getQueryParams();\n\n const refundsCount = views[tab];\n\n const allColumns = buildDefaultTableColumns({\n payableEntityColumns,\n defaultColumns: getDefaultColumns(),\n isAllTab: tab === REFUND_DASHBOARD_TAB.all,\n });\n\n const { isTableConfigurationLoading, customizedColumns, hideColumn } =\n useTableConfigurations(`${TABLE_KEYS.REFUNDS_TABLE}-${tab}`, allColumns);\n\n const handleTableChange = (_, __, sorter) => {\n const processedDataIndex = camelToSnakeCase(processDataIndex(sorter.field));\n const sortBy = isPresent(ASSOCIATED_TABLE_COLUMNS[processedDataIndex])\n ? ASSOCIATED_TABLE_COLUMNS[processedDataIndex]\n : processedDataIndex;\n\n setSortProperties(\n isPresent(sorter?.column)\n ? { sortBy, orderBy: sorter.order === \"ascend\" ? \"ASC\" : \"DESC\" }\n : DEFAULT_SORT_PROPERTIES\n );\n };\n\n if (isNotPresent(refunds)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <NoData\n title={\n tab === REFUND_DASHBOARD_TAB.all\n ? t(\"neetoPayments.emptyState.refund\")\n : t(\"neetoPayments.emptyState.refundWithStatus\", {\n status: tab,\n })\n }\n />\n </div>\n );\n }\n\n return (\n <TableWrapper hasPagination={refundsCount > pageProperties?.pageSize}>\n <Table\n fixedHeight\n allowRowClick={false}\n columnData={customizedColumns}\n currentPageNumber={pageProperties?.page}\n handlePageChange={handleTablePagination}\n loading={isFetching || isTableConfigurationLoading}\n rowData={buildRowData({ refunds, pageProperties, tab })}\n rowSelection={false}\n sortDirections={SORT_DIRECTIONS}\n totalCount={refundsCount}\n paginationProps={{\n showSizeChanger: true,\n hideOnSinglePage: true,\n pageSize: pageProperties?.pageSize,\n total: refundsCount,\n }}\n onChange={handleTableChange}\n onColumnHide={({ key }) => hideColumn(key)}\n />\n </TableWrapper>\n );\n};\n\nexport default List;\n","import { startTransition, useState } from \"react\";\n\nimport { isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { Bar as FiltersBar } from \"neetofilters\";\nimport Header from \"neetomolecules/Header\";\nimport SubHeader from \"neetomolecules/SubHeader\";\nimport { Tab, Typography } from \"neetoui\";\nimport { mergeLeft, modify } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { UN_HIDEABLE_COLUMNS } from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport {\n processDataIndex,\n shouldTabsVisible,\n buildDefaultTableColumns,\n} from \"utils\";\n\nimport { getDefaultColumns } from \"./columns/utils\";\nimport { REFUND_DASHBOARD_TAB } from \"./constants\";\n\nconst TopSection = ({\n views,\n filters,\n setFilters,\n filterableColumns,\n searchKeywordProps,\n payableEntityColumns,\n setIsExportModalOpen,\n}) => {\n const [isFilterPaneOpen, setIsFilterPaneOpen] = useState(false);\n\n const { t } = useTranslation();\n const history = useHistory();\n const { tab = REFUND_DASHBOARD_TAB.all } = getQueryParams();\n\n const refundsCount = views?.[tab];\n const isRefundCountVisible =\n refundsCount > 0 || (refundsCount === 0 && isPresent(filters));\n const isFilterButtonVisible = isRefundCountVisible || isPresent(filters);\n\n const handleFiltersChange = filters => {\n startTransition(() => {\n setFilters(filters);\n });\n };\n\n const handleTabChange = tab => {\n const queryParams = getQueryParams({ toCamelCase: false });\n const newParams = {\n tab,\n page: DEFAULT_PAGE_INDEX,\n page_size: DEFAULT_PAGE_SIZE,\n };\n\n history.push(\n buildUrl(window.location.pathname, mergeLeft(newParams, queryParams))\n );\n };\n\n return (\n <>\n <Header\n title={t(\"neetoPayments.title.refunds\")}\n searchProps={\n isFilterButtonVisible && {\n placeholder: searchKeywordProps.placeholder,\n className: \"w-80\",\n }\n }\n />\n {shouldTabsVisible(views) && (\n <Tab>\n {Object.keys(REFUND_DASHBOARD_TAB).map(item => (\n <Tab.Item\n active={tab === item}\n key={item}\n onClick={() => handleTabChange(item)}\n >\n {t(`neetoPayments.common.${item}`)}\n </Tab.Item>\n ))}\n </Tab>\n )}\n <SubHeader\n className=\"my-4\"\n leftActionBlock={\n isRefundCountVisible && (\n <Typography\n className=\"neeto-ui-gray-800 me-2 font-semibold\"\n component=\"h4\"\n >\n {tab === REFUND_DASHBOARD_TAB.all\n ? t(\"neetoPayments.countOf.refund\", { count: refundsCount })\n : t(\"neetoPayments.countOf.refundWithStatus\", {\n count: refundsCount,\n status: tab,\n })}\n </Typography>\n )\n }\n rightActionBlock={\n isFilterButtonVisible && (\n <SubHeader.RightBlock\n columnsButtonProps={{\n columnData: buildDefaultTableColumns({\n defaultColumns: getDefaultColumns(),\n payableEntityColumns,\n isAllTab: tab === REFUND_DASHBOARD_TAB.all,\n }).map(modify(\"dataIndex\", processDataIndex)),\n fixedColumns: UN_HIDEABLE_COLUMNS,\n tableKey: `${TABLE_KEYS.REFUNDS_TABLE}-${tab}`,\n }}\n downloadButtonProps={{\n onClick: () => setIsExportModalOpen(true),\n }}\n filterProps={{\n columns: filterableColumns,\n isOpen: isFilterPaneOpen,\n keyword: searchKeywordProps,\n setIsOpen: setIsFilterPaneOpen,\n onChange: handleFiltersChange,\n }}\n />\n )\n }\n />\n <FiltersBar\n columns={filterableColumns}\n keyword={searchKeywordProps}\n setIsPaneOpen={setIsFilterPaneOpen}\n onChange={handleFiltersChange}\n />\n </>\n );\n};\n\nexport default TopSection;\n","import { useEffect, useState } from \"react\";\n\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { buildFiltersFromURL } from \"neetofilters\";\nimport { Spinner } from \"neetoui\";\nimport { mergeLeft } from \"ramda\";\nimport { useHistory } from \"react-router-dom\";\n\nimport ExportModal from \"components/Common/ExportModal\";\nimport { useFetchRefunds } from \"hooks/reactQuery/useRefundsApi\";\nimport {\n DEFAULT_SORT_PROPERTIES,\n DEFAULT_PAGE_VALUES,\n DASHBOARD_KIND,\n} from \"src/constants\";\n\nimport { REFUND_DASHBOARD_TAB } from \"./constants\";\nimport List from \"./List\";\nimport TopSection from \"./TopSection\";\nimport { buildFilterColumns, buildSearchProps } from \"./utils\";\n\nconst RefundsDashboard = ({\n searchProps,\n payableEntityColumns,\n accountIds,\n}) => {\n const { searchTerm = \"\" } = getQueryParams();\n const filterableColumns = buildFilterColumns(payableEntityColumns);\n const searchKeywordProps = buildSearchProps(searchProps, searchTerm);\n\n const [sortProperties, setSortProperties] = useState(DEFAULT_SORT_PROPERTIES);\n const [pageProperties, setPageProperties] = useState(DEFAULT_PAGE_VALUES);\n const [isExportModalOpen, setIsExportModalOpen] = useState(false);\n const [filters, setFilters] = useState(\n buildFiltersFromURL([...filterableColumns, searchKeywordProps])\n );\n\n const history = useHistory();\n const { tab = REFUND_DASHBOARD_TAB.all } = getQueryParams();\n const payload = {\n tab,\n filters,\n accountIds,\n ...pageProperties,\n ...sortProperties,\n };\n\n const {\n data: { refunds, views } = {},\n isFetching,\n isPending: isRefundsLoading,\n } = useFetchRefunds(payload, { enabled: true });\n\n const handleTablePagination = (page, pageSize) => {\n const queryParams = getQueryParams({ toCamelCase: false });\n history.push(\n buildUrl(\n window.location.pathname,\n mergeLeft({ page, page_size: pageSize }, queryParams)\n )\n );\n setPageProperties({ page, pageSize });\n };\n\n useEffect(() => {\n handleTablePagination(DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE);\n setSortProperties(DEFAULT_SORT_PROPERTIES);\n }, [filters, tab]);\n\n if (isRefundsLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n return (\n <>\n <TopSection\n {...{\n filterableColumns,\n filters,\n pageProperties,\n payableEntityColumns,\n searchKeywordProps,\n setFilters,\n setIsExportModalOpen,\n setPageProperties,\n setSortProperties,\n views,\n }}\n />\n <List\n {...{\n handleTablePagination,\n isFetching,\n pageProperties,\n payableEntityColumns,\n refunds,\n setSortProperties,\n views,\n }}\n />\n <ExportModal\n {...{\n filters,\n isExportModalOpen,\n setIsExportModalOpen,\n sortProperties,\n }}\n dashboardKind={DASHBOARD_KIND.refunds}\n />\n </>\n );\n};\n\nexport default RefundsDashboard;\n"],"names":["list","payload","axios","get","BASE_URL","params","refundsApi","useFetchRefunds","options","useQuery","queryKey","QUERY_KEYS","REFUNDS_LIST","queryFn","REFUND_DASHBOARD_TAB","all","successful","declined","pending","SEARCH_PROPS","node","key","model","placeholder","t","FILTER_COLUMNS","label","type","values","map","toLabelAndValue","PAYMENT_PROVIDERS","TAG_STYLE","initiated","refunded","renderIdentifier","identifier","receiptUrl","isTemporaryIdentifier","startsWith","_jsx","Tooltip","content","position","children","className","Typography","style","CopyButtonWrapper","Button","href","size","target","getTagStyle","status","DEFAULT_TAG_STYLE","preProcessStatus","record","isRefunded","snakeToCamelCase","renderStatus","curry","processedStatus","Tag","humanize","renderDate","date","isPresent","DateFormat","DateTime","getDefaultColumns","title","dataIndex","width","isHidable","render","sorter","formatAmount","formatCurrency","buildSearchProps","searchProps","searchTerm","mergeDeepWith","concat","mergeLeft","value","trim","buildFilterColumns","payableEntityColumns","reject","isNil","prop","buildRowData","refunds","pageProperties","element","index","id","isEmpty","pageSize","page","List","isFetching","views","setSortProperties","handleTablePagination","useTranslation","tab","getQueryParams","refundsCount","allColumns","buildDefaultTableColumns","defaultColumns","isAllTab","isTableConfigurationLoading","customizedColumns","hideColumn","useTableConfigurations","TABLE_KEYS","REFUNDS_TABLE","handleTableChange","_","__","processedDataIndex","camelToSnakeCase","processDataIndex","field","sortBy","ASSOCIATED_TABLE_COLUMNS","column","orderBy","order","DEFAULT_SORT_PROPERTIES","isNotPresent","NoData","TableWrapper","hasPagination","Table","fixedHeight","allowRowClick","columnData","currentPageNumber","handlePageChange","loading","rowData","rowSelection","sortDirections","SORT_DIRECTIONS","totalCount","paginationProps","showSizeChanger","hideOnSinglePage","total","onChange","onColumnHide","TopSection","filters","setFilters","filterableColumns","searchKeywordProps","setIsExportModalOpen","isFilterPaneOpen","setIsFilterPaneOpen","useState","history","useHistory","isRefundCountVisible","isFilterButtonVisible","handleFiltersChange","startTransition","handleTabChange","queryParams","toCamelCase","newParams","DEFAULT_PAGE_INDEX","page_size","DEFAULT_PAGE_SIZE","push","buildUrl","window","location","pathname","_jsxs","_Fragment","Header","shouldTabsVisible","Tab","Object","keys","item","Item","active","onClick","SubHeader","leftActionBlock","component","count","rightActionBlock","RightBlock","columnsButtonProps","modify","fixedColumns","UN_HIDEABLE_COLUMNS","tableKey","downloadButtonProps","filterProps","columns","isOpen","keyword","setIsOpen","FiltersBar","setIsPaneOpen","RefundsDashboard","accountIds","sortProperties","setPageProperties","DEFAULT_PAGE_VALUES","isExportModalOpen","buildFiltersFromURL","data","isPending","isRefundsLoading","enabled","useEffect","Spinner","ExportModal","dashboardKind","DASHBOARD_KIND"],"mappings":"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"}