@bigbinary/neeto-payments-frontend 3.3.31 → 3.3.33

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 (150) hide show
  1. package/app/javascript/src/translations/en.json +10 -1
  2. package/dist/AccountsDashboard.js +545 -0
  3. package/dist/AccountsDashboard.js.map +1 -0
  4. package/dist/AdminCancelRecurringPaymentButton.js +79 -0
  5. package/dist/AdminCancelRecurringPaymentButton.js.map +1 -0
  6. package/dist/CashPaymentButton.js +55 -0
  7. package/dist/CashPaymentButton.js.map +1 -0
  8. package/dist/ConfirmCashPaymentButton.js +104 -0
  9. package/dist/ConfirmCashPaymentButton.js.map +1 -0
  10. package/dist/ConfirmUpiPaymentButton.js +151 -0
  11. package/dist/ConfirmUpiPaymentButton.js.map +1 -0
  12. package/dist/CopyButtonWrapper-SoJkwX-d.js +27 -0
  13. package/dist/CopyButtonWrapper-SoJkwX-d.js.map +1 -0
  14. package/dist/CustomerCancelRecurringPaymentForm.js +111 -0
  15. package/dist/CustomerCancelRecurringPaymentForm.js.map +1 -0
  16. package/dist/ExportModal-BsFxUaYJ.js +131 -0
  17. package/dist/ExportModal-BsFxUaYJ.js.map +1 -0
  18. package/dist/ManualUpiPaymentConfirmButton.js +188 -0
  19. package/dist/ManualUpiPaymentConfirmButton.js.map +1 -0
  20. package/dist/PaymentKindRestrictionAlert.js +39 -0
  21. package/dist/PaymentKindRestrictionAlert.js.map +1 -0
  22. package/dist/PaymentsDashboard.js +586 -0
  23. package/dist/PaymentsDashboard.js.map +1 -0
  24. package/dist/PayoutsDashboard.js +559 -0
  25. package/dist/PayoutsDashboard.js.map +1 -0
  26. package/dist/PayoutsPage.js +162 -0
  27. package/dist/PayoutsPage.js.map +1 -0
  28. package/dist/RazorpayPaymentButton.js +145 -0
  29. package/dist/RazorpayPaymentButton.js.map +1 -0
  30. package/dist/RecurringPaymentSettings.js +132 -0
  31. package/dist/RecurringPaymentSettings.js.map +1 -0
  32. package/dist/RefundsDashboard.js +531 -0
  33. package/dist/RefundsDashboard.js.map +1 -0
  34. package/dist/SplitTransfersDashboard.js +1119 -0
  35. package/dist/SplitTransfersDashboard.js.map +1 -0
  36. package/dist/TaxesDashboard.js +411 -0
  37. package/dist/TaxesDashboard.js.map +1 -0
  38. package/dist/UpiConnect.js +171 -0
  39. package/dist/UpiConnect.js.map +1 -0
  40. package/dist/UpiPayment.js +120 -0
  41. package/dist/UpiPayment.js.map +1 -0
  42. package/dist/buildStripeTransactionLink.js +11 -0
  43. package/dist/buildStripeTransactionLink.js.map +1 -0
  44. package/dist/cjs/AccountsDashboard.js +547 -0
  45. package/dist/cjs/AccountsDashboard.js.map +1 -0
  46. package/dist/cjs/AdminCancelRecurringPaymentButton.js +81 -0
  47. package/dist/cjs/AdminCancelRecurringPaymentButton.js.map +1 -0
  48. package/dist/cjs/CashPaymentButton.js +57 -0
  49. package/dist/cjs/CashPaymentButton.js.map +1 -0
  50. package/dist/cjs/ConfirmCashPaymentButton.js +106 -0
  51. package/dist/cjs/ConfirmCashPaymentButton.js.map +1 -0
  52. package/dist/cjs/ConfirmUpiPaymentButton.js +172 -0
  53. package/dist/cjs/ConfirmUpiPaymentButton.js.map +1 -0
  54. package/dist/cjs/CopyButtonWrapper-Ds1k64E0.js +30 -0
  55. package/dist/cjs/CopyButtonWrapper-Ds1k64E0.js.map +1 -0
  56. package/dist/cjs/CustomerCancelRecurringPaymentForm.js +113 -0
  57. package/dist/cjs/CustomerCancelRecurringPaymentForm.js.map +1 -0
  58. package/dist/cjs/ExportModal-BJ2TrvE8.js +133 -0
  59. package/dist/cjs/ExportModal-BJ2TrvE8.js.map +1 -0
  60. package/dist/cjs/ManualUpiPaymentConfirmButton.js +209 -0
  61. package/dist/cjs/ManualUpiPaymentConfirmButton.js.map +1 -0
  62. package/dist/cjs/PaymentKindRestrictionAlert.js +41 -0
  63. package/dist/cjs/PaymentKindRestrictionAlert.js.map +1 -0
  64. package/dist/cjs/PaymentsDashboard.js +588 -0
  65. package/dist/cjs/PaymentsDashboard.js.map +1 -0
  66. package/dist/cjs/PayoutsDashboard.js +561 -0
  67. package/dist/cjs/PayoutsDashboard.js.map +1 -0
  68. package/dist/cjs/PayoutsPage.js +164 -0
  69. package/dist/cjs/PayoutsPage.js.map +1 -0
  70. package/dist/cjs/RazorpayPaymentButton.js +147 -0
  71. package/dist/cjs/RazorpayPaymentButton.js.map +1 -0
  72. package/dist/cjs/RecurringPaymentSettings.js +153 -0
  73. package/dist/cjs/RecurringPaymentSettings.js.map +1 -0
  74. package/dist/cjs/RefundsDashboard.js +533 -0
  75. package/dist/cjs/RefundsDashboard.js.map +1 -0
  76. package/dist/cjs/SplitTransfersDashboard.js +1140 -0
  77. package/dist/cjs/SplitTransfersDashboard.js.map +1 -0
  78. package/dist/cjs/TaxesDashboard.js +432 -0
  79. package/dist/cjs/TaxesDashboard.js.map +1 -0
  80. package/dist/cjs/UpiConnect.js +192 -0
  81. package/dist/cjs/UpiConnect.js.map +1 -0
  82. package/dist/cjs/UpiPayment.js +141 -0
  83. package/dist/cjs/UpiPayment.js.map +1 -0
  84. package/dist/cjs/buildStripeTransactionLink.js +13 -0
  85. package/dist/cjs/buildStripeTransactionLink.js.map +1 -0
  86. package/dist/cjs/constants.js +32 -0
  87. package/dist/cjs/constants.js.map +1 -0
  88. package/dist/cjs/dashboard-Bjhw-y9S.js +112 -0
  89. package/dist/cjs/dashboard-Bjhw-y9S.js.map +1 -0
  90. package/dist/cjs/exportChannel-BsZ3fusx.js +24 -0
  91. package/dist/cjs/exportChannel-BsZ3fusx.js.map +1 -0
  92. package/dist/cjs/getAmountInSmallestCurrencyUnit.js +13 -0
  93. package/dist/cjs/getAmountInSmallestCurrencyUnit.js.map +1 -0
  94. package/dist/cjs/index-CihS_E6s.js +638 -0
  95. package/dist/cjs/index-CihS_E6s.js.map +1 -0
  96. package/dist/cjs/index.js +119 -0
  97. package/dist/cjs/index.js.map +1 -0
  98. package/dist/cjs/queryConstants-DGg4cX3r.js +29 -0
  99. package/dist/cjs/queryConstants-DGg4cX3r.js.map +1 -0
  100. package/dist/cjs/renderFunctions-CbgNQLUZ.js +56 -0
  101. package/dist/cjs/renderFunctions-CbgNQLUZ.js.map +1 -0
  102. package/dist/cjs/stripe.esm-CrNYjPcC.js +132 -0
  103. package/dist/cjs/stripe.esm-CrNYjPcC.js.map +1 -0
  104. package/dist/cjs/usePaymentApi-BR4z3fpQ.js +41 -0
  105. package/dist/cjs/usePaymentApi-BR4z3fpQ.js.map +1 -0
  106. package/dist/cjs/usePaymentApi-ojnHNkQj.js +39 -0
  107. package/dist/cjs/usePaymentApi-ojnHNkQj.js.map +1 -0
  108. package/dist/cjs/usePaymentsApi-DY7TZaXP.js +41 -0
  109. package/dist/cjs/usePaymentsApi-DY7TZaXP.js.map +1 -0
  110. package/dist/cjs/usePlatformApi-B65EA1Nh.js +84 -0
  111. package/dist/cjs/usePlatformApi-B65EA1Nh.js.map +1 -0
  112. package/dist/cjs/useRazorpayPayment.js +112 -0
  113. package/dist/cjs/useRazorpayPayment.js.map +1 -0
  114. package/dist/cjs/useStripePromise.js +57 -0
  115. package/dist/cjs/useStripePromise.js.map +1 -0
  116. package/dist/constants.js +7 -0
  117. package/dist/constants.js.map +1 -0
  118. package/dist/dashboard-C5diLksA.js +106 -0
  119. package/dist/dashboard-C5diLksA.js.map +1 -0
  120. package/dist/exportChannel-CViICC6x.js +22 -0
  121. package/dist/exportChannel-CViICC6x.js.map +1 -0
  122. package/dist/getAmountInSmallestCurrencyUnit.js +11 -0
  123. package/dist/getAmountInSmallestCurrencyUnit.js.map +1 -0
  124. package/dist/index-ojfe66jf.js +604 -0
  125. package/dist/index-ojfe66jf.js.map +1 -0
  126. package/dist/index.js +93 -0
  127. package/dist/index.js.map +1 -0
  128. package/dist/queryConstants-mgjK5Hgk.js +27 -0
  129. package/dist/queryConstants-mgjK5Hgk.js.map +1 -0
  130. package/dist/renderFunctions-ObVxaGJ7.js +52 -0
  131. package/dist/renderFunctions-ObVxaGJ7.js.map +1 -0
  132. package/dist/stripe.esm-DuZ_gsAa.js +130 -0
  133. package/dist/stripe.esm-DuZ_gsAa.js.map +1 -0
  134. package/dist/usePaymentApi-B8ZEA19B.js +37 -0
  135. package/dist/usePaymentApi-B8ZEA19B.js.map +1 -0
  136. package/dist/usePaymentApi-C0JTbQH1.js +38 -0
  137. package/dist/usePaymentApi-C0JTbQH1.js.map +1 -0
  138. package/dist/usePaymentsApi-DQz8xzHV.js +38 -0
  139. package/dist/usePaymentsApi-DQz8xzHV.js.map +1 -0
  140. package/dist/usePlatformApi-CFaJ_LxH.js +79 -0
  141. package/dist/usePlatformApi-CFaJ_LxH.js.map +1 -0
  142. package/dist/useRazorpayPayment.js +110 -0
  143. package/dist/useRazorpayPayment.js.map +1 -0
  144. package/dist/useStripePromise.js +55 -0
  145. package/dist/useStripePromise.js.map +1 -0
  146. package/package.json +7 -7
  147. package/types/CashPaymentButton.d.ts +17 -0
  148. package/types/ConfirmCashPaymentButton.d.ts +11 -0
  149. package/types.d.ts +1 -1
  150. package/types/StripeConnect.d.ts +0 -13
@@ -0,0 +1,586 @@
1
+ import _defineProperty from '@babel/runtime/helpers/defineProperty';
2
+ import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
3
+ import _slicedToArray from '@babel/runtime/helpers/slicedToArray';
4
+ import { useState, startTransition, useEffect } from 'react';
5
+ import { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from '@bigbinary/neeto-commons-frontend/constants';
6
+ import { getQueryParams, buildUrl } from '@bigbinary/neeto-commons-frontend/utils';
7
+ import { buildFiltersFromURL } from '@bigbinary/neeto-filters-frontend/utils';
8
+ import Spinner from '@bigbinary/neetoui/Spinner';
9
+ import { map, curry, concat, mergeDeepWith, mergeLeft, reject, isNil, prop, isEmpty, modify } from 'ramda';
10
+ import { useHistory } from 'react-router-dom';
11
+ import { E as ExportModal } from './ExportModal-BsFxUaYJ.js';
12
+ import { useQuery } from '@tanstack/react-query';
13
+ import axios from 'axios';
14
+ import { B as BASE_URL, P as PAYMENT_PROVIDERS, c as DEFAULT_TAG_STYLE, f as formatAmount, d as formatCurrency, e as getUniquePaymentProviders, h as buildDefaultTableColumns, S as SORT_DIRECTIONS, p as processDataIndex, s as shouldTabsVisible, U as UN_HIDEABLE_COLUMNS, i as DEFAULT_PAGE_VALUES, j as DASHBOARD_KIND } from './index-ojfe66jf.js';
15
+ import { Q as QUERY_KEYS } from './queryConstants-mgjK5Hgk.js';
16
+ import { t } from 'i18next';
17
+ import { toLabelAndValue, isNotPresent, snakeToCamelCase, humanize, isPresent, camelToSnakeCase } from '@bigbinary/neeto-cist';
18
+ import { useHiddenColumns } from '@bigbinary/neeto-molecules/Columns';
19
+ import TableWrapper from '@bigbinary/neeto-molecules/TableWrapper';
20
+ import Table from '@bigbinary/neetoui/Table';
21
+ import NoData from '@bigbinary/neetoui/NoData';
22
+ import { useTranslation } from 'react-i18next';
23
+ import DateFormat from '@bigbinary/neeto-molecules/DateFormat';
24
+ import Button from '@bigbinary/neetoui/Button';
25
+ import Tag from '@bigbinary/neetoui/Tag';
26
+ import Tooltip from '@bigbinary/neetoui/Tooltip';
27
+ import Typography from '@bigbinary/neetoui/Typography';
28
+ import { C as CopyButtonWrapper } from './CopyButtonWrapper-SoJkwX-d.js';
29
+ import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
30
+ import FiltersBar from '@bigbinary/neeto-filters-frontend/Bar';
31
+ import Header from '@bigbinary/neeto-molecules/Header';
32
+ import SubHeader from '@bigbinary/neeto-molecules/SubHeader';
33
+ import Tab from '@bigbinary/neetoui/Tab';
34
+ import '@bigbinary/neeto-icons/Download';
35
+ import '@bigbinary/neetoui/Modal';
36
+ import './exportChannel-CViICC6x.js';
37
+ import '@bigbinary/neeto-molecules/CopyToClipboardButton';
38
+
39
+ var list = function list(payload) {
40
+ return axios.get("".concat(BASE_URL, "/api/v1/payments"), {
41
+ params: payload
42
+ });
43
+ };
44
+ var paymentsApi = {
45
+ list: list
46
+ };
47
+
48
+ function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
49
+ function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
50
+ var useFetchPayments = function useFetchPayments() {
51
+ var payload = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
52
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
53
+ return useQuery(_objectSpread$2({
54
+ queryKey: [QUERY_KEYS.PAYMENTS_LIST, payload],
55
+ queryFn: function queryFn() {
56
+ return paymentsApi.list(payload);
57
+ }
58
+ }, options));
59
+ };
60
+
61
+ var COLUMNS_STORAGE_KEY = "paymentsDashboard";
62
+ var PAYMENT_DASHBOARD_TAB = {
63
+ all: "all",
64
+ successful: "successful",
65
+ declined: "declined",
66
+ refunded: "refunded",
67
+ pending: "pending"
68
+ };
69
+ var SEARCH_PROPS = {
70
+ node: "identifier,",
71
+ key: "search_term",
72
+ model: "NeetoPaymentsEngine::Payment,"
73
+ };
74
+ var FILTER_COLUMNS = [{
75
+ key: "payment_provider",
76
+ label: t("neetoPayments.common.paymentProvider"),
77
+ node: "payment_provider",
78
+ type: "single_option",
79
+ values: [].concat(_toConsumableArray(map(toLabelAndValue, PAYMENT_PROVIDERS)), [{
80
+ label: t("neetoPayments.common.upi").toUpperCase(),
81
+ value: "eupi"
82
+ }])
83
+ }, {
84
+ key: "amount",
85
+ label: t("neetoPayments.common.amount"),
86
+ node: "amount",
87
+ type: "decimal"
88
+ }, {
89
+ key: "payment_time",
90
+ label: t("neetoPayments.common.paymentTime"),
91
+ node: "payment_at",
92
+ type: "date"
93
+ }];
94
+ var TAG_STYLE = {
95
+ initiated: "info",
96
+ declined: "danger",
97
+ successful: "success",
98
+ refunded: "secondary",
99
+ cancelled: "secondary",
100
+ pending: "warning",
101
+ paid: "success",
102
+ failed: "danger",
103
+ in_transit: "info"
104
+ };
105
+ var PAYMENT_PROVIDER = {
106
+ eupi: "eupi"
107
+ };
108
+ var DEFAULT_SORT_PROPERTIES = {
109
+ sortBy: "payment_at",
110
+ orderBy: "DESC"
111
+ };
112
+
113
+ var renderIdentifier = function renderIdentifier(identifier, _ref) {
114
+ var receiptUrl = _ref.receiptUrl;
115
+ var isTemporaryIdentifier = identifier === null || identifier === void 0 ? void 0 : identifier.startsWith("temp_");
116
+ if (isTemporaryIdentifier) {
117
+ return /*#__PURE__*/jsx(Tooltip, {
118
+ content: t("neetoPayments.tooltipContent.paymentIdentifierUnavailable"),
119
+ position: "top",
120
+ children: /*#__PURE__*/jsx("div", {
121
+ className: "text-center",
122
+ children: /*#__PURE__*/jsx(Typography, {
123
+ style: "body2",
124
+ children: t("neetoPayments.common.notAvailable")
125
+ })
126
+ })
127
+ });
128
+ }
129
+ return /*#__PURE__*/jsx(CopyButtonWrapper, {
130
+ content: identifier,
131
+ children: /*#__PURE__*/jsx(Button, {
132
+ href: receiptUrl,
133
+ label: identifier,
134
+ size: "small",
135
+ style: "link",
136
+ target: "_blank"
137
+ })
138
+ });
139
+ };
140
+ var getTagStyle = function getTagStyle(status) {
141
+ return TAG_STYLE[status] || DEFAULT_TAG_STYLE;
142
+ };
143
+ var preProcessStatus = function preProcessStatus(type, status) {
144
+ var record = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};
145
+ if (type === "payment") {
146
+ return record.isRefunded ? "refunded" : status;
147
+ }
148
+ return snakeToCamelCase(status);
149
+ };
150
+ var renderStatus = curry(function (type, status, record) {
151
+ if (isNotPresent(status)) {
152
+ return /*#__PURE__*/jsx(Typography, {
153
+ style: "body2",
154
+ children: t("neetoPayments.common.notAvailable")
155
+ });
156
+ }
157
+ var processedStatus = preProcessStatus(type, status, record);
158
+ return /*#__PURE__*/jsx(Tooltip, {
159
+ content: t("neetoPayments.tooltipContent.".concat(type, ".").concat(processedStatus)),
160
+ position: "top",
161
+ children: /*#__PURE__*/jsx("div", {
162
+ className: "w-fit",
163
+ children: /*#__PURE__*/jsx(Tag, {
164
+ label: t("neetoPayments.tagLabels.".concat(type, ".").concat(processedStatus)),
165
+ style: getTagStyle(processedStatus)
166
+ })
167
+ })
168
+ });
169
+ });
170
+ var renderPaymentProvider = function renderPaymentProvider(paymentProvider) {
171
+ if (paymentProvider === PAYMENT_PROVIDER.eupi) {
172
+ return t("neetoPayments.common.upi");
173
+ }
174
+ return humanize(paymentProvider);
175
+ };
176
+ var renderDate = function renderDate(date) {
177
+ if (isPresent(date)) {
178
+ return /*#__PURE__*/jsx(DateFormat.DateTime, {
179
+ date: date
180
+ });
181
+ }
182
+ return /*#__PURE__*/jsx(Typography, {
183
+ style: "body2",
184
+ children: t("neetoPayments.common.notAvailable")
185
+ });
186
+ };
187
+ var renderPayoutTraceId = function renderPayoutTraceId(value) {
188
+ if (isPresent(value)) return value;
189
+ return /*#__PURE__*/jsx(Typography, {
190
+ style: "body2",
191
+ children: t("neetoPayments.common.notAvailable")
192
+ });
193
+ };
194
+ var getDefaultColumns = function getDefaultColumns(dashboardKind) {
195
+ var columns = [{
196
+ title: t("neetoPayments.common.id"),
197
+ dataIndex: "id",
198
+ key: "id",
199
+ width: 85,
200
+ position: 0,
201
+ isHidable: false
202
+ }, {
203
+ title: t("neetoPayments.common.identifier"),
204
+ dataIndex: "identifier",
205
+ key: "identifier",
206
+ width: 300,
207
+ render: renderIdentifier,
208
+ position: 1,
209
+ isHidable: false
210
+ }, {
211
+ title: t("neetoPayments.common.provider"),
212
+ dataIndex: "paymentProvider",
213
+ key: "paymentProvider",
214
+ width: 150,
215
+ render: renderPaymentProvider,
216
+ position: 2,
217
+ sorter: false
218
+ }, {
219
+ title: t("neetoPayments.common.status"),
220
+ dataIndex: "status",
221
+ key: "status",
222
+ width: 150,
223
+ render: renderStatus("transaction"),
224
+ sorter: true,
225
+ position: 3,
226
+ isHidable: false
227
+ }, {
228
+ title: t("neetoPayments.common.totalAmount"),
229
+ dataIndex: "amount",
230
+ key: "amount",
231
+ width: 200,
232
+ sorter: true,
233
+ render: formatAmount,
234
+ position: 4
235
+ }, {
236
+ title: t("neetoPayments.common.taxAmount"),
237
+ dataIndex: "taxAmount",
238
+ key: "taxAmount",
239
+ width: 200,
240
+ sorter: true,
241
+ render: formatAmount,
242
+ position: 4
243
+ }, {
244
+ title: t("neetoPayments.common.currency"),
245
+ dataIndex: "currency",
246
+ key: "currency",
247
+ width: 180,
248
+ sorter: true,
249
+ render: formatCurrency,
250
+ position: 4
251
+ }, {
252
+ title: t("neetoPayments.common.paymentTime"),
253
+ dataIndex: "paymentAt",
254
+ key: "paymentTime",
255
+ width: 190,
256
+ render: renderDate,
257
+ sorter: true,
258
+ position: 6
259
+ }];
260
+ if (dashboardKind === "connected") {
261
+ columns = concat([{
262
+ title: t("neetoPayments.common.payoutStatus"),
263
+ dataIndex: ["payout", "status"],
264
+ key: "payoutStatus",
265
+ width: 200,
266
+ render: renderStatus("payout"),
267
+ sorter: false,
268
+ position: 7
269
+ }, {
270
+ title: t("neetoPayments.common.payoutArrivalDate"),
271
+ dataIndex: ["payout", "arrivalDate"],
272
+ key: "payoutArrivalDate",
273
+ width: 235,
274
+ render: renderDate,
275
+ sorter: true,
276
+ position: 8
277
+ }, {
278
+ title: t("neetoPayments.common.payoutTraceId"),
279
+ dataIndex: ["payout", "traceId", "value"],
280
+ key: "payoutTraceId",
281
+ width: 205,
282
+ render: renderPayoutTraceId,
283
+ sorter: false,
284
+ position: 9
285
+ }], columns);
286
+ }
287
+ return columns;
288
+ };
289
+
290
+ function ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
291
+ function _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
292
+ var buildSearchProps = function buildSearchProps(searchProps, searchTerm) {
293
+ return mergeDeepWith(concat, SEARCH_PROPS, mergeLeft({
294
+ value: searchTerm.trim()
295
+ }, searchProps));
296
+ };
297
+ var buildFilterColumns = function buildFilterColumns() {
298
+ var payableEntityColumns = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];
299
+ return reject(isNil, concat(FILTER_COLUMNS, map(prop("filterProps"), payableEntityColumns)));
300
+ };
301
+ var buildRowData = function buildRowData(_ref) {
302
+ var payments = _ref.payments,
303
+ _ref$pageProperties = _ref.pageProperties,
304
+ pageProperties = _ref$pageProperties === void 0 ? {} : _ref$pageProperties;
305
+ return payments === null || payments === void 0 ? void 0 : payments.map(function (element, index) {
306
+ return _objectSpread$1(_objectSpread$1({}, element), {}, {
307
+ id: isEmpty(pageProperties) ? index + 1 : pageProperties.pageSize * (pageProperties.page - 1) + index + 1
308
+ });
309
+ });
310
+ };
311
+
312
+ var List = function List(_ref) {
313
+ var dashboardKind = _ref.dashboardKind,
314
+ isFetching = _ref.isFetching,
315
+ payments = _ref.payments,
316
+ payableEntityColumns = _ref.payableEntityColumns,
317
+ setSortProperties = _ref.setSortProperties,
318
+ pageProperties = _ref.pageProperties,
319
+ handleTablePagination = _ref.handleTablePagination,
320
+ views = _ref.views;
321
+ var _useTranslation = useTranslation(),
322
+ t = _useTranslation.t;
323
+ var _getQueryParams = getQueryParams(),
324
+ _getQueryParams$tab = _getQueryParams.tab,
325
+ tab = _getQueryParams$tab === void 0 ? PAYMENT_DASHBOARD_TAB.all : _getQueryParams$tab;
326
+ var _useHiddenColumns = useHiddenColumns(COLUMNS_STORAGE_KEY),
327
+ hideColumn = _useHiddenColumns.hideColumn,
328
+ _useHiddenColumns$hid = _useHiddenColumns.hiddenColumns,
329
+ hiddenColumns = _useHiddenColumns$hid === void 0 ? [] : _useHiddenColumns$hid;
330
+ var paymentsCount = views[tab];
331
+ var isMultipleProvidersExist = getUniquePaymentProviders(payments !== null && payments !== void 0 ? payments : []).length > 1;
332
+ var visibleColumns = buildDefaultTableColumns({
333
+ hiddenColumns: hiddenColumns,
334
+ payableEntityColumns: payableEntityColumns,
335
+ isMultipleProvidersExist: isMultipleProvidersExist,
336
+ defaultColumns: getDefaultColumns(dashboardKind),
337
+ isAllTab: tab === PAYMENT_DASHBOARD_TAB.all
338
+ });
339
+ var handleColumnHiding = function handleColumnHiding(column) {
340
+ hideColumn(processDataIndex(column.dataIndex));
341
+ };
342
+ var handleTableChange = function handleTableChange(_, __, sorter) {
343
+ setSortProperties(isPresent(sorter === null || sorter === void 0 ? void 0 : sorter.column) ? {
344
+ sortBy: camelToSnakeCase(processDataIndex(sorter.field)),
345
+ orderBy: sorter.order === "ascend" ? "ASC" : "DESC"
346
+ } : DEFAULT_SORT_PROPERTIES);
347
+ };
348
+ if (isNotPresent(payments)) {
349
+ return /*#__PURE__*/jsx("div", {
350
+ className: "flex h-full w-full items-center justify-center",
351
+ children: /*#__PURE__*/jsx(NoData, {
352
+ title: tab === PAYMENT_DASHBOARD_TAB.all ? t("neetoPayments.emptyState.payments") : t("neetoPayments.emptyState.paymentsWithStatus", {
353
+ status: tab
354
+ })
355
+ })
356
+ });
357
+ }
358
+ return /*#__PURE__*/jsx(TableWrapper, {
359
+ hasPagination: paymentsCount > (pageProperties === null || pageProperties === void 0 ? void 0 : pageProperties.pageSize),
360
+ children: /*#__PURE__*/jsx(Table, {
361
+ fixedHeight: true,
362
+ allowRowClick: false,
363
+ columnData: visibleColumns,
364
+ currentPageNumber: pageProperties === null || pageProperties === void 0 ? void 0 : pageProperties.page,
365
+ handlePageChange: handleTablePagination,
366
+ loading: isFetching,
367
+ rowData: buildRowData({
368
+ payments: payments,
369
+ pageProperties: pageProperties,
370
+ tab: tab
371
+ }),
372
+ rowSelection: false,
373
+ sortDirections: SORT_DIRECTIONS,
374
+ totalCount: paymentsCount,
375
+ paginationProps: {
376
+ showSizeChanger: true,
377
+ hideOnSinglePage: true,
378
+ pageSize: pageProperties === null || pageProperties === void 0 ? void 0 : pageProperties.pageSize,
379
+ total: paymentsCount
380
+ },
381
+ onChange: handleTableChange,
382
+ onColumnHide: handleColumnHiding
383
+ })
384
+ });
385
+ };
386
+
387
+ var TopSection = function TopSection(_ref) {
388
+ var views = _ref.views,
389
+ filters = _ref.filters,
390
+ setFilters = _ref.setFilters,
391
+ filterableColumns = _ref.filterableColumns,
392
+ searchKeywordProps = _ref.searchKeywordProps,
393
+ payableEntityColumns = _ref.payableEntityColumns,
394
+ setIsExportModalOpen = _ref.setIsExportModalOpen;
395
+ var _useState = useState(false),
396
+ _useState2 = _slicedToArray(_useState, 2),
397
+ isFilterPaneOpen = _useState2[0],
398
+ setIsFilterPaneOpen = _useState2[1];
399
+ var _useTranslation = useTranslation(),
400
+ t = _useTranslation.t;
401
+ var history = useHistory();
402
+ var _getQueryParams = getQueryParams(),
403
+ _getQueryParams$tab = _getQueryParams.tab,
404
+ tab = _getQueryParams$tab === void 0 ? PAYMENT_DASHBOARD_TAB.all : _getQueryParams$tab;
405
+ var paymentsCount = views[tab];
406
+ var isPaymentCountVisible = paymentsCount > 0 || paymentsCount === 0 && isPresent(filters);
407
+ var isFilterButtonVisible = isPaymentCountVisible || isPresent(filters);
408
+ var handleFiltersChange = function handleFiltersChange(filters) {
409
+ startTransition(function () {
410
+ setFilters(filters);
411
+ });
412
+ };
413
+ var handleTabChange = function handleTabChange(tab) {
414
+ var queryParams = getQueryParams({
415
+ toCamelCase: false
416
+ });
417
+ var newParams = {
418
+ tab: tab,
419
+ page: DEFAULT_PAGE_INDEX,
420
+ page_size: DEFAULT_PAGE_SIZE
421
+ };
422
+ history.push(buildUrl(window.location.pathname, mergeLeft(newParams, queryParams)));
423
+ };
424
+ return /*#__PURE__*/jsxs(Fragment, {
425
+ children: [/*#__PURE__*/jsx(Header, {
426
+ title: t("neetoPayments.title.payments"),
427
+ searchProps: isFilterButtonVisible && {
428
+ placeholder: searchKeywordProps.placeholder,
429
+ className: searchKeywordProps.placeholder.length > 30 ? "w-96" : "w-64"
430
+ }
431
+ }), shouldTabsVisible(views) && /*#__PURE__*/jsx(Tab, {
432
+ children: Object.keys(PAYMENT_DASHBOARD_TAB).map(function (item) {
433
+ return /*#__PURE__*/jsx(Tab.Item, {
434
+ active: tab === item,
435
+ onClick: function onClick() {
436
+ return handleTabChange(item);
437
+ },
438
+ children: t("neetoPayments.common.".concat(item))
439
+ }, item);
440
+ })
441
+ }), /*#__PURE__*/jsx(SubHeader, {
442
+ className: "my-4",
443
+ leftActionBlock: isPaymentCountVisible && /*#__PURE__*/jsx(Typography, {
444
+ className: "neeto-ui-gray-800 mr-2 font-semibold",
445
+ component: "h4",
446
+ children: tab === PAYMENT_DASHBOARD_TAB.all ? t("neetoPayments.countOf.payment", {
447
+ count: paymentsCount
448
+ }) : t("neetoPayments.countOf.paymentWithStatus", {
449
+ count: paymentsCount,
450
+ status: tab
451
+ })
452
+ }),
453
+ rightActionBlock: isFilterButtonVisible && /*#__PURE__*/jsx(SubHeader.RightBlock, {
454
+ columnsButtonProps: {
455
+ columnData: concat(getDefaultColumns(), payableEntityColumns).map(modify("dataIndex", processDataIndex)),
456
+ fixedColumns: UN_HIDEABLE_COLUMNS,
457
+ localStorageKey: COLUMNS_STORAGE_KEY
458
+ },
459
+ downloadButtonProps: {
460
+ onClick: function onClick() {
461
+ return setIsExportModalOpen(true);
462
+ }
463
+ },
464
+ filterProps: {
465
+ columns: filterableColumns,
466
+ isOpen: isFilterPaneOpen,
467
+ keyword: searchKeywordProps,
468
+ setIsOpen: setIsFilterPaneOpen,
469
+ onChange: handleFiltersChange
470
+ }
471
+ })
472
+ }), /*#__PURE__*/jsx(FiltersBar, {
473
+ columns: filterableColumns,
474
+ keyword: searchKeywordProps,
475
+ setIsPaneOpen: setIsFilterPaneOpen,
476
+ onChange: handleFiltersChange
477
+ })]
478
+ });
479
+ };
480
+
481
+ function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
482
+ function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
483
+ var PaymentsDashboard = function PaymentsDashboard(_ref) {
484
+ var searchProps = _ref.searchProps,
485
+ payableEntityColumns = _ref.payableEntityColumns,
486
+ _ref$holdableIds = _ref.holdableIds,
487
+ holdableIds = _ref$holdableIds === void 0 ? {} : _ref$holdableIds,
488
+ _ref$dashboardKind = _ref.dashboardKind,
489
+ dashboardKind = _ref$dashboardKind === void 0 ? "platform" : _ref$dashboardKind;
490
+ var _getQueryParams = getQueryParams(),
491
+ _getQueryParams$searc = _getQueryParams.searchTerm,
492
+ searchTerm = _getQueryParams$searc === void 0 ? "" : _getQueryParams$searc;
493
+ var filterableColumns = buildFilterColumns(payableEntityColumns);
494
+ var searchKeywordProps = buildSearchProps(searchProps, searchTerm);
495
+ var _useState = useState(DEFAULT_SORT_PROPERTIES),
496
+ _useState2 = _slicedToArray(_useState, 2),
497
+ sortProperties = _useState2[0],
498
+ setSortProperties = _useState2[1];
499
+ var _useState3 = useState(DEFAULT_PAGE_VALUES),
500
+ _useState4 = _slicedToArray(_useState3, 2),
501
+ pageProperties = _useState4[0],
502
+ setPageProperties = _useState4[1];
503
+ var _useState5 = useState(false),
504
+ _useState6 = _slicedToArray(_useState5, 2),
505
+ isExportModalOpen = _useState6[0],
506
+ setIsExportModalOpen = _useState6[1];
507
+ var _useState7 = useState(buildFiltersFromURL([].concat(_toConsumableArray(filterableColumns), [searchKeywordProps]))),
508
+ _useState8 = _slicedToArray(_useState7, 2),
509
+ filters = _useState8[0],
510
+ setFilters = _useState8[1];
511
+ var history = useHistory();
512
+ var _getQueryParams2 = getQueryParams(),
513
+ _getQueryParams2$tab = _getQueryParams2.tab,
514
+ tab = _getQueryParams2$tab === void 0 ? PAYMENT_DASHBOARD_TAB.all : _getQueryParams2$tab;
515
+ var payload = _objectSpread(_objectSpread({
516
+ dashboardKind: dashboardKind,
517
+ holdableIds: holdableIds,
518
+ tab: tab,
519
+ filters: filters
520
+ }, pageProperties), sortProperties);
521
+ var _useFetchPayments = useFetchPayments(payload, {
522
+ enabled: true
523
+ }),
524
+ _useFetchPayments$dat = _useFetchPayments.data,
525
+ _useFetchPayments$dat2 = _useFetchPayments$dat === void 0 ? {} : _useFetchPayments$dat,
526
+ payments = _useFetchPayments$dat2.payments,
527
+ views = _useFetchPayments$dat2.views,
528
+ isFetching = _useFetchPayments.isFetching,
529
+ isPaymentsLoaidng = _useFetchPayments.isPending;
530
+ var handleTablePagination = function handleTablePagination(page, pageSize) {
531
+ var queryParams = getQueryParams({
532
+ toCamelCase: false
533
+ });
534
+ history.push(buildUrl(window.location.pathname, mergeLeft({
535
+ page: page,
536
+ page_size: pageSize
537
+ }, queryParams)));
538
+ setPageProperties({
539
+ page: page,
540
+ pageSize: pageSize
541
+ });
542
+ };
543
+ useEffect(function () {
544
+ handleTablePagination(DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE);
545
+ setSortProperties(DEFAULT_SORT_PROPERTIES);
546
+ }, [filters, tab]);
547
+ if (isPaymentsLoaidng) {
548
+ return /*#__PURE__*/jsx("div", {
549
+ className: "flex h-full w-full items-center justify-center",
550
+ children: /*#__PURE__*/jsx(Spinner, {})
551
+ });
552
+ }
553
+ return /*#__PURE__*/jsxs(Fragment, {
554
+ children: [/*#__PURE__*/jsx(TopSection, {
555
+ filterableColumns: filterableColumns,
556
+ filters: filters,
557
+ pageProperties: pageProperties,
558
+ payableEntityColumns: payableEntityColumns,
559
+ searchKeywordProps: searchKeywordProps,
560
+ setFilters: setFilters,
561
+ setIsExportModalOpen: setIsExportModalOpen,
562
+ setPageProperties: setPageProperties,
563
+ setSortProperties: setSortProperties,
564
+ views: views
565
+ }), /*#__PURE__*/jsx(List, {
566
+ dashboardKind: dashboardKind,
567
+ handleTablePagination: handleTablePagination,
568
+ isFetching: isFetching,
569
+ pageProperties: pageProperties,
570
+ payableEntityColumns: payableEntityColumns,
571
+ payments: payments,
572
+ setSortProperties: setSortProperties,
573
+ views: views
574
+ }), /*#__PURE__*/jsx(ExportModal, {
575
+ filters: filters,
576
+ holdableIds: holdableIds,
577
+ isExportModalOpen: isExportModalOpen,
578
+ setIsExportModalOpen: setIsExportModalOpen,
579
+ sortProperties: sortProperties,
580
+ dashboardKind: DASHBOARD_KIND.payments
581
+ })]
582
+ });
583
+ };
584
+
585
+ export { PaymentsDashboard as default };
586
+ //# sourceMappingURL=PaymentsDashboard.js.map