@bigbinary/neeto-payments-frontend 6.3.4 → 6.3.6

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 (70) hide show
  1. package/app/javascript/src/translations/en.json +3 -3
  2. package/dist/{ExportModal-X-AJPdkc.js → ExportModal-k--5vSLt.js} +3 -3
  3. package/dist/ExportModal-k--5vSLt.js.map +1 -0
  4. package/dist/ManualUpiPayment.js +96 -21
  5. package/dist/ManualUpiPayment.js.map +1 -1
  6. package/dist/ManualUpiPaymentConfirmButton.js +1 -1
  7. package/dist/ManualUpiPaymentRejectButton.js +1 -1
  8. package/dist/cjs/{ExportModal-C7_QKb9q.js → ExportModal-Bt_Aal7b.js} +4 -4
  9. package/dist/cjs/ExportModal-Bt_Aal7b.js.map +1 -0
  10. package/dist/cjs/ManualUpiPayment.js +96 -21
  11. package/dist/cjs/ManualUpiPayment.js.map +1 -1
  12. package/dist/cjs/index.js +1 -0
  13. package/dist/cjs/index.js.map +1 -1
  14. package/dist/cjs/v2/AccountsDashboard.js +4 -2
  15. package/dist/cjs/v2/AccountsDashboard.js.map +1 -1
  16. package/dist/cjs/v2/ManualUpiConnect.js +2 -1
  17. package/dist/cjs/v2/ManualUpiConnect.js.map +1 -1
  18. package/dist/cjs/v2/ManualUpiPayment.js +100 -24
  19. package/dist/cjs/v2/ManualUpiPayment.js.map +1 -1
  20. package/dist/cjs/v2/PaymentsDashboard.js +4 -2
  21. package/dist/cjs/v2/PaymentsDashboard.js.map +1 -1
  22. package/dist/cjs/v2/PayoutsDashboard.js +4 -2
  23. package/dist/cjs/v2/PayoutsDashboard.js.map +1 -1
  24. package/dist/cjs/v2/PayoutsPage.js +5 -5
  25. package/dist/cjs/v2/PayoutsPage.js.map +1 -1
  26. package/dist/cjs/v2/RefundsDashboard.js +4 -2
  27. package/dist/cjs/v2/RefundsDashboard.js.map +1 -1
  28. package/dist/cjs/v2/SplitTransfersDashboard.js +5 -3
  29. package/dist/cjs/v2/SplitTransfersDashboard.js.map +1 -1
  30. package/dist/cjs/v2/StripeCheckoutSetting.js +19 -23
  31. package/dist/cjs/v2/StripeCheckoutSetting.js.map +1 -1
  32. package/dist/cjs/v2/StripeManage.js +3 -3
  33. package/dist/cjs/v2/StripeManage.js.map +1 -1
  34. package/dist/cjs/v2/TaxesDashboard.js +46 -38
  35. package/dist/cjs/v2/TaxesDashboard.js.map +1 -1
  36. package/dist/cjs/v2/index.js +3 -2
  37. package/dist/cjs/v2/index.js.map +1 -1
  38. package/dist/index.js +2 -1
  39. package/dist/index.js.map +1 -1
  40. package/dist/{usePaymentApi-C8fRdHmK.js → usePaymentApi-CjtkL3IU.js} +2 -2
  41. package/dist/{usePaymentApi-C8fRdHmK.js.map → usePaymentApi-CjtkL3IU.js.map} +1 -1
  42. package/dist/v2/AccountsDashboard.js +3 -1
  43. package/dist/v2/AccountsDashboard.js.map +1 -1
  44. package/dist/v2/ManualUpiConnect.js +2 -1
  45. package/dist/v2/ManualUpiConnect.js.map +1 -1
  46. package/dist/v2/ManualUpiPayment.js +100 -24
  47. package/dist/v2/ManualUpiPayment.js.map +1 -1
  48. package/dist/v2/ManualUpiPaymentConfirmButton.js +1 -1
  49. package/dist/v2/ManualUpiPaymentRejectButton.js +1 -1
  50. package/dist/v2/PaymentsDashboard.js +4 -2
  51. package/dist/v2/PaymentsDashboard.js.map +1 -1
  52. package/dist/v2/PayoutsDashboard.js +3 -1
  53. package/dist/v2/PayoutsDashboard.js.map +1 -1
  54. package/dist/v2/PayoutsPage.js +5 -5
  55. package/dist/v2/PayoutsPage.js.map +1 -1
  56. package/dist/v2/RefundsDashboard.js +4 -2
  57. package/dist/v2/RefundsDashboard.js.map +1 -1
  58. package/dist/v2/SplitTransfersDashboard.js +5 -3
  59. package/dist/v2/SplitTransfersDashboard.js.map +1 -1
  60. package/dist/v2/StripeCheckoutSetting.js +20 -24
  61. package/dist/v2/StripeCheckoutSetting.js.map +1 -1
  62. package/dist/v2/StripeManage.js +2 -2
  63. package/dist/v2/StripeManage.js.map +1 -1
  64. package/dist/v2/TaxesDashboard.js +47 -39
  65. package/dist/v2/TaxesDashboard.js.map +1 -1
  66. package/dist/v2/index.js +4 -3
  67. package/dist/v2/index.js.map +1 -1
  68. package/package.json +5 -3
  69. package/dist/ExportModal-X-AJPdkc.js.map +0 -1
  70. package/dist/cjs/ExportModal-C7_QKb9q.js.map +0 -1
@@ -4,15 +4,16 @@ var react = require('react');
4
4
  var activestorage = require('@rails/activestorage');
5
5
  var neetocist = require('neetocist');
6
6
  var neetoIcons = require('@bigbinary/neeto-icons');
7
- var neetoui = require('@bigbinary/neetoui');
8
- var formik = require('@bigbinary/neetoui/formik');
9
7
  var QRCodeImage = require('qrcode.react');
10
8
  var ramda = require('ramda');
11
9
  var reactI18next = require('react-i18next');
12
10
  var usePaymentApi = require('./usePaymentApi-CuL13mny.js');
11
+ var neetoui = require('@bigbinary/neetoui');
12
+ var formik$1 = require('@bigbinary/neetoui/formik');
13
13
  var constants = require('./index-CpEnC-Gq.js');
14
14
  var i18next = require('i18next');
15
15
  var yup = require('yup');
16
+ var formik = require('formik');
16
17
  var jsxRuntime = require('react/jsx-runtime');
17
18
  require('@tanstack/react-query');
18
19
  require('neetocommons/react-utils');
@@ -47,6 +48,7 @@ const DIRECT_UPLOAD_URL = "/rails/active_storage/direct_uploads";
47
48
  const INITIAL_VALUES = {
48
49
  identifier: ""
49
50
  };
51
+ const UPI_TRANSACTION_ID_LENGTH = 12;
50
52
  const buildValidationSchema = screenshotFile => yup__namespace.object({
51
53
  identifier: yup__namespace.number().typeError(i18next.t("neetoPayments.validations.invalidField", {
52
54
  entity: i18next.t("neetoPayments.common.transactionId")
@@ -57,6 +59,79 @@ const buildValidationSchema = screenshotFile => yup__namespace.object({
57
59
  }), value => neetocist.isNotPresent(value) || value?.toString().length === 12)
58
60
  });
59
61
 
62
+ const toSlots = value => Array.from({
63
+ length: UPI_TRANSACTION_ID_LENGTH
64
+ }, (_, index) => value[index] ?? "");
65
+ const UpiTransactionIdInput = ({
66
+ name = "identifier"
67
+ }) => {
68
+ const {
69
+ t
70
+ } = reactI18next.useTranslation();
71
+ const [, meta, helpers] = formik.useField(name);
72
+ const inputsRef = react.useRef([]);
73
+ const [slots, setSlots] = react.useState(() => toSlots((meta.initialValue ?? "").toString()));
74
+ const sync = nextSlots => {
75
+ setSlots(nextSlots);
76
+ helpers.setValue(nextSlots.join(""));
77
+ };
78
+ const setDigit = (index, digit) => sync(slots.map((slot, i) => i === index ? digit : slot));
79
+ const focusBox = index => inputsRef.current[index]?.focus();
80
+ const handleChange = (index, event) => {
81
+ const sanitized = event.target.value.replace(/\D/g, "");
82
+ setDigit(index, sanitized ? sanitized[sanitized.length - 1] : "");
83
+ if (sanitized && index < UPI_TRANSACTION_ID_LENGTH - 1) focusBox(index + 1);
84
+ };
85
+ const handleKeyDown = (index, event) => {
86
+ if (event.key === "Backspace" && !slots[index] && index > 0) {
87
+ event.preventDefault();
88
+ setDigit(index - 1, "");
89
+ focusBox(index - 1);
90
+ } else if (event.key === "ArrowLeft" && index > 0) {
91
+ focusBox(index - 1);
92
+ } else if (event.key === "ArrowRight" && index < UPI_TRANSACTION_ID_LENGTH - 1) {
93
+ focusBox(index + 1);
94
+ }
95
+ };
96
+ const handlePaste = event => {
97
+ event.preventDefault();
98
+ const pasted = event.clipboardData.getData("text").replace(/\D/g, "").slice(0, UPI_TRANSACTION_ID_LENGTH);
99
+ if (!pasted) return;
100
+ sync(toSlots(pasted));
101
+ focusBox(Math.min(pasted.length, UPI_TRANSACTION_ID_LENGTH - 1));
102
+ };
103
+ const showError = meta.touched && meta.error;
104
+ return /*#__PURE__*/jsxRuntime.jsxs("div", {
105
+ children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
106
+ className: "mb-2",
107
+ style: "body2",
108
+ weight: "medium",
109
+ children: t("neetoPayments.upi.payment.transaction.label")
110
+ }), /*#__PURE__*/jsxRuntime.jsx("div", {
111
+ className: "flex flex-wrap gap-2",
112
+ onPaste: handlePaste,
113
+ children: slots.map((slot, index) => /*#__PURE__*/jsxRuntime.jsx("input", {
114
+ autoComplete: "off",
115
+ className: "h-10 w-8 neeto-ui-rounded border neeto-ui-border-gray-300 text-center text-base focus:neeto-ui-border-gray-500 focus:outline-none",
116
+ "data-testid": `upi-transaction-id-box-${index}`,
117
+ inputMode: "numeric",
118
+ maxLength: 1,
119
+ ref: element => inputsRef.current[index] = element,
120
+ type: "text",
121
+ value: slot,
122
+ onBlur: () => helpers.setTouched(true),
123
+ onChange: event => handleChange(index, event),
124
+ onFocus: event => event.target.select(),
125
+ onKeyDown: event => handleKeyDown(index, event)
126
+ }, index))
127
+ }), showError && /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
128
+ className: "neeto-ui-text-error-500 mt-1",
129
+ style: "body3",
130
+ children: meta.error
131
+ })]
132
+ });
133
+ };
134
+
60
135
  const ManualUpiPayment = ({
61
136
  fee,
62
137
  payableId,
@@ -135,7 +210,7 @@ const ManualUpiPayment = ({
135
210
  paymentScreenshot
136
211
  });
137
212
  };
138
- return /*#__PURE__*/jsxRuntime.jsx(formik.Form, {
213
+ return /*#__PURE__*/jsxRuntime.jsx(formik$1.Form, {
139
214
  className: "space-y-4",
140
215
  formikProps: {
141
216
  onSubmit: handleSubmit,
@@ -146,42 +221,41 @@ const ManualUpiPayment = ({
146
221
  dirty
147
222
  }) => /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
148
223
  children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
149
- style: "body1",
224
+ className: "neeto-ui-text-gray-600",
225
+ style: "body2",
150
226
  children: t("neetoPayments.upi.payment.vpaText", {
151
227
  count: vpaIds.length
152
228
  })
153
229
  }), neetocist.isPresent(vpaIds) && /*#__PURE__*/jsxRuntime.jsx("div", {
154
- className: "grid grid-cols-1 gap-8 gap-y-4 sm:grid-cols-2",
230
+ className: "flex flex-wrap gap-8",
155
231
  children: vpaIds.map(vpaId => /*#__PURE__*/jsxRuntime.jsxs("div", {
156
232
  className: "flex flex-col items-center justify-center",
157
233
  children: [/*#__PURE__*/jsxRuntime.jsx(QRCodeImage, {
158
234
  size: 256,
159
235
  style: {
160
- width: 80,
161
- height: 80
236
+ width: 120,
237
+ height: 120
162
238
  },
163
239
  value: constants.getQrCodeValue(vpaId, amountToUpi)
164
240
  }), /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
165
241
  className: "w-full mt-2 text-center wrap-break-word",
166
242
  style: "body2",
243
+ weight: "medium",
167
244
  children: vpaId
168
245
  })]
169
246
  }, vpaId))
170
- }), /*#__PURE__*/jsxRuntime.jsx(formik.Input, {
171
- label: t("neetoPayments.upi.payment.transaction.label"),
172
- name: "identifier",
173
- placeholder: t("neetoPayments.upi.payment.transaction.placeholder"),
174
- type: "number"
247
+ }), /*#__PURE__*/jsxRuntime.jsx(UpiTransactionIdInput, {
248
+ name: "identifier"
175
249
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
176
250
  className: "flex items-center gap-3",
177
251
  children: [/*#__PURE__*/jsxRuntime.jsx("hr", {
178
- className: "flex-1 border-gray-300"
252
+ className: "flex-1 neeto-ui-border-gray-300"
179
253
  }), /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
180
- className: "text-gray-500 uppercase",
254
+ className: "neeto-ui-text-gray-500 uppercase",
181
255
  style: "body2",
182
256
  children: t("neetoPayments.common.or")
183
257
  }), /*#__PURE__*/jsxRuntime.jsx("hr", {
184
- className: "flex-1 border-gray-300"
258
+ className: "flex-1 neeto-ui-border-gray-300"
185
259
  })]
186
260
  }), /*#__PURE__*/jsxRuntime.jsxs("div", {
187
261
  children: [/*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
@@ -193,7 +267,7 @@ const ManualUpiPayment = ({
193
267
  className: "relative inline-block",
194
268
  children: [/*#__PURE__*/jsxRuntime.jsx("img", {
195
269
  alt: t("neetoPayments.upi.payment.screenshot.alt"),
196
- className: "max-h-40 rounded border border-gray-200",
270
+ className: "max-h-40 neeto-ui-rounded border neeto-ui-border-gray-200",
197
271
  src: screenshotPreview
198
272
  }), /*#__PURE__*/jsxRuntime.jsx(neetoui.Button, {
199
273
  className: "absolute -right-2 -top-2 neeto-ui-rounded-full neeto-ui-bg-white neeto-ui-shadow-sm",
@@ -203,7 +277,7 @@ const ManualUpiPayment = ({
203
277
  onClick: handleRemoveScreenshot
204
278
  })]
205
279
  }) : /*#__PURE__*/jsxRuntime.jsxs("div", {
206
- className: "flex cursor-pointer flex-col items-center justify-center rounded border-2 border-dashed border-gray-300 p-6 transition-colors hover:border-gray-400",
280
+ className: "flex cursor-pointer flex-col items-center justify-center neeto-ui-rounded border-2 border-dashed neeto-ui-border-gray-300 p-6 transition-colors hover:neeto-ui-border-gray-400",
207
281
  role: "button",
208
282
  tabIndex: 0,
209
283
  onClick: () => fileInputRef.current?.click(),
@@ -213,13 +287,14 @@ const ManualUpiPayment = ({
213
287
  }
214
288
  },
215
289
  children: [/*#__PURE__*/jsxRuntime.jsx("i", {
216
- className: "ri-upload-2-line text-2xl text-gray-400"
290
+ className: "ri-upload-2-line text-2xl neeto-ui-text-gray-400"
217
291
  }), /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
218
- className: "mt-1 text-gray-500",
292
+ className: "mt-1 text-blue-600 hover:underline",
219
293
  style: "body3",
294
+ weight: "medium",
220
295
  children: t("neetoPayments.upi.payment.screenshot.uploadText")
221
296
  }), /*#__PURE__*/jsxRuntime.jsx(neetoui.Typography, {
222
- className: "text-gray-400",
297
+ className: "neeto-ui-text-gray-400",
223
298
  style: "nano",
224
299
  children: t("neetoPayments.upi.payment.screenshot.formatHint", {
225
300
  maxSize: MAX_SCREENSHOT_SIZE_MB
@@ -233,7 +308,7 @@ const ManualUpiPayment = ({
233
308
  type: "file",
234
309
  onChange: handleScreenshotSelect
235
310
  })]
236
- }), /*#__PURE__*/jsxRuntime.jsx(formik.ActionBlock, {
311
+ }), /*#__PURE__*/jsxRuntime.jsx(formik$1.ActionBlock, {
237
312
  cancelButtonProps: {
238
313
  label: t("neetoPayments.upi.payment.buttons.back"),
239
314
  onClick: handleCancel,
@@ -1 +1 @@
1
- {"version":3,"file":"ManualUpiPayment.js","sources":["../../app/javascript/src/components/ManualUpiPayment/constants.js","../../app/javascript/src/components/ManualUpiPayment/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isPresent, isNotPresent } from \"neetocist\";\nimport * as yup from \"yup\";\n\nexport const ACCEPTED_SCREENSHOT_FORMATS = \"image/png,image/jpeg,image/jpg\";\n\nexport const MAX_SCREENSHOT_SIZE_MB = 5;\n\nexport const DIRECT_UPLOAD_URL = \"/rails/active_storage/direct_uploads\";\n\nexport const INITIAL_VALUES = { identifier: \"\" };\n\nexport const buildValidationSchema = screenshotFile =>\n yup.object({\n identifier: yup\n .number()\n .typeError(\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n })\n )\n .nullable()\n .transform((value, originalValue) =>\n originalValue === \"\" ? null : value\n )\n .test(\n \"identifier-or-screenshot\",\n t(\"neetoPayments.upi.payment.transaction.identifierOrScreenshot\"),\n value => isPresent(value) || isPresent(screenshotFile)\n )\n .test(\n \"is-integer\",\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n }),\n value => isNotPresent(value) || Number.isInteger(value)\n )\n .test(\n \"len\",\n t(\"neetoPayments.validations.length\", { length: 12 }),\n value => isNotPresent(value) || value?.toString().length === 12\n ),\n });\n","import { useRef, useState, useMemo, useEffect } from \"react\";\n\nimport { DirectUpload } from \"@rails/activestorage\";\nimport { noop, isPresent } from \"neetocist\";\nimport { Close } from \"neetoicons\";\nimport { Button, Toastr, Typography } from \"neetoui\";\nimport { ActionBlock, Form, Input } from \"neetoui/formik\";\nimport QRCodeImage from \"qrcode.react\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateUpiPayment } from \"hooks/reactQuery/manualUpi/usePaymentApi\";\nimport { getQrCodeValue } from \"utils\";\n\nimport {\n buildValidationSchema,\n ACCEPTED_SCREENSHOT_FORMATS,\n MAX_SCREENSHOT_SIZE_MB,\n DIRECT_UPLOAD_URL,\n INITIAL_VALUES,\n} from \"./constants\";\n\nconst ManualUpiPayment = ({\n fee,\n payableId,\n tip,\n amount,\n discountCode,\n customAmount,\n handleCancel,\n payableType = null,\n onBeforePayment = noop,\n onFailedPayment = noop,\n onSuccessfulPayment = noop,\n}) => {\n const { t } = useTranslation();\n const fileInputRef = useRef(null);\n const [screenshotFile, setScreenshotFile] = useState(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const screenshotPreview = useMemo(\n () => (screenshotFile ? URL.createObjectURL(screenshotFile) : null),\n [screenshotFile]\n );\n\n useEffect(\n () => () => {\n if (screenshotPreview) URL.revokeObjectURL(screenshotPreview);\n },\n [screenshotPreview]\n );\n\n const vpaIds = pluck(\"address\", fee?.vpas);\n const amountToUpi = customAmount || amount;\n\n const { isPending, mutate: createPayment } = useCreateUpiPayment({\n onSuccess: onSuccessfulPayment,\n onError: onFailedPayment,\n });\n\n const validationSchema = useMemo(\n () => buildValidationSchema(screenshotFile),\n [screenshotFile]\n );\n\n const handleScreenshotSelect = event => {\n const file = event.target.files[0];\n if (!file) return;\n\n if (file.size > MAX_SCREENSHOT_SIZE_MB * 1024 * 1024) {\n Toastr.error(\n t(\"neetoPayments.upi.payment.screenshot.tooLarge\", {\n maxSize: MAX_SCREENSHOT_SIZE_MB,\n })\n );\n\n return;\n }\n\n setScreenshotFile(file);\n };\n\n const handleRemoveScreenshot = () => {\n setScreenshotFile(null);\n if (fileInputRef.current) fileInputRef.current.value = \"\";\n };\n\n const uploadScreenshot = file =>\n new Promise((resolve, reject) => {\n const upload = new DirectUpload(file, DIRECT_UPLOAD_URL);\n upload.create((error, blob) => {\n if (error) reject(error);\n else resolve(blob.signed_id);\n });\n });\n\n const handleSubmit = async values => {\n onBeforePayment();\n\n let paymentScreenshot = null;\n if (screenshotFile) {\n try {\n setIsUploading(true);\n paymentScreenshot = await uploadScreenshot(screenshotFile);\n } catch {\n onFailedPayment();\n\n return;\n } finally {\n setIsUploading(false);\n }\n }\n\n createPayment({\n ...values,\n payableId,\n customAmount,\n payableType,\n discountCode,\n tipAttributes: tip,\n paymentScreenshot,\n });\n };\n\n return (\n <Form\n className=\"space-y-4\"\n formikProps={{\n onSubmit: handleSubmit,\n initialValues: INITIAL_VALUES,\n validationSchema,\n }}\n >\n {({ dirty }) => (\n <>\n <Typography style=\"body1\">\n {t(\"neetoPayments.upi.payment.vpaText\", { count: vpaIds.length })}\n </Typography>\n {isPresent(vpaIds) && (\n <div className=\"grid grid-cols-1 gap-8 gap-y-4 sm:grid-cols-2\">\n {vpaIds.map(vpaId => (\n <div\n className=\"flex flex-col items-center justify-center\"\n key={vpaId}\n >\n <QRCodeImage\n size={256}\n style={{ width: 80, height: 80 }}\n value={getQrCodeValue(vpaId, amountToUpi)}\n />\n <Typography\n className=\"w-full mt-2 text-center wrap-break-word\"\n style=\"body2\"\n >\n {vpaId}\n </Typography>\n </div>\n ))}\n </div>\n )}\n <Input\n label={t(\"neetoPayments.upi.payment.transaction.label\")}\n name=\"identifier\"\n placeholder={t(\"neetoPayments.upi.payment.transaction.placeholder\")}\n type=\"number\"\n />\n <div className=\"flex items-center gap-3\">\n <hr className=\"flex-1 border-gray-300\" />\n <Typography className=\"text-gray-500 uppercase\" style=\"body2\">\n {t(\"neetoPayments.common.or\")}\n </Typography>\n <hr className=\"flex-1 border-gray-300\" />\n </div>\n <div>\n <Typography className=\"mb-2\" style=\"body2\" weight=\"medium\">\n {t(\"neetoPayments.upi.payment.screenshot.label\")}\n </Typography>\n {screenshotPreview ? (\n <div className=\"relative inline-block\">\n <img\n alt={t(\"neetoPayments.upi.payment.screenshot.alt\")}\n className=\"max-h-40 rounded border border-gray-200\"\n src={screenshotPreview}\n />\n <Button\n className=\"absolute -right-2 -top-2 neeto-ui-rounded-full neeto-ui-bg-white neeto-ui-shadow-sm\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n onClick={handleRemoveScreenshot}\n />\n </div>\n ) : (\n <div\n className=\"flex cursor-pointer flex-col items-center justify-center rounded border-2 border-dashed border-gray-300 p-6 transition-colors hover:border-gray-400\"\n role=\"button\"\n tabIndex={0}\n onClick={() => fileInputRef.current?.click()}\n onKeyDown={e => {\n if (e.key === \"Enter\" || e.key === \" \") {\n fileInputRef.current?.click();\n }\n }}\n >\n <i className=\"ri-upload-2-line text-2xl text-gray-400\" />\n <Typography className=\"mt-1 text-gray-500\" style=\"body3\">\n {t(\"neetoPayments.upi.payment.screenshot.uploadText\")}\n </Typography>\n <Typography className=\"text-gray-400\" style=\"nano\">\n {t(\"neetoPayments.upi.payment.screenshot.formatHint\", {\n maxSize: MAX_SCREENSHOT_SIZE_MB,\n })}\n </Typography>\n </div>\n )}\n <input\n accept={ACCEPTED_SCREENSHOT_FORMATS}\n className=\"hidden\"\n data-testid=\"manual-upi-screenshot-upload-input-field\"\n ref={fileInputRef}\n type=\"file\"\n onChange={handleScreenshotSelect}\n />\n </div>\n <ActionBlock\n cancelButtonProps={{\n label: t(\"neetoPayments.upi.payment.buttons.back\"),\n onClick: handleCancel,\n disabled: isPending,\n }}\n submitButtonProps={{\n label: t(\"neetoPayments.upi.payment.buttons.submit\"),\n disabled: (!dirty && !screenshotFile) || isPending || isUploading,\n loading: isPending || isUploading,\n }}\n />\n </>\n )}\n </Form>\n );\n};\n\nexport default ManualUpiPayment;\n"],"names":["ACCEPTED_SCREENSHOT_FORMATS","MAX_SCREENSHOT_SIZE_MB","DIRECT_UPLOAD_URL","INITIAL_VALUES","identifier","buildValidationSchema","screenshotFile","yup","object","number","typeError","t","entity","nullable","transform","value","originalValue","test","isPresent","isNotPresent","Number","isInteger","length","toString","ManualUpiPayment","fee","payableId","tip","amount","discountCode","customAmount","handleCancel","payableType","onBeforePayment","noop","onFailedPayment","onSuccessfulPayment","useTranslation","fileInputRef","useRef","setScreenshotFile","useState","isUploading","setIsUploading","screenshotPreview","useMemo","URL","createObjectURL","useEffect","revokeObjectURL","vpaIds","pluck","vpas","amountToUpi","isPending","mutate","createPayment","useCreateUpiPayment","onSuccess","onError","validationSchema","handleScreenshotSelect","event","file","target","files","size","Toastr","error","maxSize","handleRemoveScreenshot","current","uploadScreenshot","Promise","resolve","reject","upload","DirectUpload","create","blob","signed_id","handleSubmit","values","paymentScreenshot","tipAttributes","_jsx","Form","className","formikProps","onSubmit","initialValues","children","dirty","_jsxs","_Fragment","Typography","style","count","map","vpaId","QRCodeImage","width","height","getQrCodeValue","Input","label","name","placeholder","type","weight","alt","src","Button","icon","Close","onClick","role","tabIndex","click","onKeyDown","e","key","accept","ref","onChange","ActionBlock","cancelButtonProps","disabled","submitButtonProps","loading"],"mappings":"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"}
1
+ {"version":3,"file":"ManualUpiPayment.js","sources":["../../app/javascript/src/components/ManualUpiPayment/constants.js","../../app/javascript/src/components/ManualUpiPayment/UpiTransactionIdInput.jsx","../../app/javascript/src/components/ManualUpiPayment/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\nimport { isPresent, isNotPresent } from \"neetocist\";\nimport * as yup from \"yup\";\n\nexport const ACCEPTED_SCREENSHOT_FORMATS = \"image/png,image/jpeg,image/jpg\";\n\nexport const MAX_SCREENSHOT_SIZE_MB = 5;\n\nexport const DIRECT_UPLOAD_URL = \"/rails/active_storage/direct_uploads\";\n\nexport const INITIAL_VALUES = { identifier: \"\" };\n\nexport const UPI_TRANSACTION_ID_LENGTH = 12;\n\nexport const buildValidationSchema = screenshotFile =>\n yup.object({\n identifier: yup\n .number()\n .typeError(\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n })\n )\n .nullable()\n .transform((value, originalValue) =>\n originalValue === \"\" ? null : value\n )\n .test(\n \"identifier-or-screenshot\",\n t(\"neetoPayments.upi.payment.transaction.identifierOrScreenshot\"),\n value => isPresent(value) || isPresent(screenshotFile)\n )\n .test(\n \"is-integer\",\n t(\"neetoPayments.validations.invalidField\", {\n entity: t(\"neetoPayments.common.transactionId\"),\n }),\n value => isNotPresent(value) || Number.isInteger(value)\n )\n .test(\n \"len\",\n t(\"neetoPayments.validations.length\", { length: 12 }),\n value => isNotPresent(value) || value?.toString().length === 12\n ),\n });\n","import { useRef, useState } from \"react\";\n\nimport { useField } from \"formik\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { Typography } from \"neetoui\";\n\nimport { UPI_TRANSACTION_ID_LENGTH as LENGTH } from \"./constants\";\n\nconst toSlots = value =>\n Array.from({ length: LENGTH }, (_, index) => value[index] ?? \"\");\n\nconst UpiTransactionIdInput = ({ name = \"identifier\" }) => {\n const { t } = useTranslation();\n const [, meta, helpers] = useField(name);\n const inputsRef = useRef([]);\n const [slots, setSlots] = useState(() =>\n toSlots((meta.initialValue ?? \"\").toString())\n );\n\n const sync = nextSlots => {\n setSlots(nextSlots);\n helpers.setValue(nextSlots.join(\"\"));\n };\n\n const setDigit = (index, digit) =>\n sync(slots.map((slot, i) => (i === index ? digit : slot)));\n\n const focusBox = index => inputsRef.current[index]?.focus();\n\n const handleChange = (index, event) => {\n const sanitized = event.target.value.replace(/\\D/g, \"\");\n setDigit(index, sanitized ? sanitized[sanitized.length - 1] : \"\");\n if (sanitized && index < LENGTH - 1) focusBox(index + 1);\n };\n\n const handleKeyDown = (index, event) => {\n if (event.key === \"Backspace\" && !slots[index] && index > 0) {\n event.preventDefault();\n setDigit(index - 1, \"\");\n focusBox(index - 1);\n } else if (event.key === \"ArrowLeft\" && index > 0) {\n focusBox(index - 1);\n } else if (event.key === \"ArrowRight\" && index < LENGTH - 1) {\n focusBox(index + 1);\n }\n };\n\n const handlePaste = event => {\n event.preventDefault();\n const pasted = event.clipboardData\n .getData(\"text\")\n .replace(/\\D/g, \"\")\n .slice(0, LENGTH);\n if (!pasted) return;\n\n sync(toSlots(pasted));\n focusBox(Math.min(pasted.length, LENGTH - 1));\n };\n\n const showError = meta.touched && meta.error;\n\n return (\n <div>\n <Typography className=\"mb-2\" style=\"body2\" weight=\"medium\">\n {t(\"neetoPayments.upi.payment.transaction.label\")}\n </Typography>\n <div className=\"flex flex-wrap gap-2\" onPaste={handlePaste}>\n {slots.map((slot, index) => (\n <input\n autoComplete=\"off\"\n className=\"h-10 w-8 neeto-ui-rounded border neeto-ui-border-gray-300 text-center text-base focus:neeto-ui-border-gray-500 focus:outline-none\"\n data-testid={`upi-transaction-id-box-${index}`}\n inputMode=\"numeric\"\n key={index}\n maxLength={1}\n ref={element => (inputsRef.current[index] = element)}\n type=\"text\"\n value={slot}\n onBlur={() => helpers.setTouched(true)}\n onChange={event => handleChange(index, event)}\n onFocus={event => event.target.select()}\n onKeyDown={event => handleKeyDown(index, event)}\n />\n ))}\n </div>\n {showError && (\n <Typography className=\"neeto-ui-text-error-500 mt-1\" style=\"body3\">\n {meta.error}\n </Typography>\n )}\n </div>\n );\n};\n\nexport default UpiTransactionIdInput;\n","import { useRef, useState, useMemo, useEffect } from \"react\";\n\nimport { DirectUpload } from \"@rails/activestorage\";\nimport { noop, isPresent } from \"neetocist\";\nimport { Close } from \"neetoicons\";\nimport QRCodeImage from \"qrcode.react\";\nimport { pluck } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useCreateUpiPayment } from \"hooks/reactQuery/manualUpi/usePaymentApi\";\nimport { Button, Toastr, Typography } from \"neetoui\";\nimport { ActionBlock, Form } from \"neetoui/formik\";\nimport { getQrCodeValue } from \"utils\";\n\nimport {\n buildValidationSchema,\n ACCEPTED_SCREENSHOT_FORMATS,\n MAX_SCREENSHOT_SIZE_MB,\n DIRECT_UPLOAD_URL,\n INITIAL_VALUES,\n} from \"./constants\";\nimport UpiTransactionIdInput from \"./UpiTransactionIdInput\";\n\nconst ManualUpiPayment = ({\n fee,\n payableId,\n tip,\n amount,\n discountCode,\n customAmount,\n handleCancel,\n payableType = null,\n onBeforePayment = noop,\n onFailedPayment = noop,\n onSuccessfulPayment = noop,\n}) => {\n const { t } = useTranslation();\n const fileInputRef = useRef(null);\n const [screenshotFile, setScreenshotFile] = useState(null);\n const [isUploading, setIsUploading] = useState(false);\n\n const screenshotPreview = useMemo(\n () => (screenshotFile ? URL.createObjectURL(screenshotFile) : null),\n [screenshotFile]\n );\n\n useEffect(\n () => () => {\n if (screenshotPreview) URL.revokeObjectURL(screenshotPreview);\n },\n [screenshotPreview]\n );\n\n const vpaIds = pluck(\"address\", fee?.vpas);\n const amountToUpi = customAmount || amount;\n\n const { isPending, mutate: createPayment } = useCreateUpiPayment({\n onSuccess: onSuccessfulPayment,\n onError: onFailedPayment,\n });\n\n const validationSchema = useMemo(\n () => buildValidationSchema(screenshotFile),\n [screenshotFile]\n );\n\n const handleScreenshotSelect = event => {\n const file = event.target.files[0];\n if (!file) return;\n\n if (file.size > MAX_SCREENSHOT_SIZE_MB * 1024 * 1024) {\n Toastr.error(\n t(\"neetoPayments.upi.payment.screenshot.tooLarge\", {\n maxSize: MAX_SCREENSHOT_SIZE_MB,\n })\n );\n\n return;\n }\n\n setScreenshotFile(file);\n };\n\n const handleRemoveScreenshot = () => {\n setScreenshotFile(null);\n if (fileInputRef.current) fileInputRef.current.value = \"\";\n };\n\n const uploadScreenshot = file =>\n new Promise((resolve, reject) => {\n const upload = new DirectUpload(file, DIRECT_UPLOAD_URL);\n upload.create((error, blob) => {\n if (error) reject(error);\n else resolve(blob.signed_id);\n });\n });\n\n const handleSubmit = async values => {\n onBeforePayment();\n\n let paymentScreenshot = null;\n if (screenshotFile) {\n try {\n setIsUploading(true);\n paymentScreenshot = await uploadScreenshot(screenshotFile);\n } catch {\n onFailedPayment();\n\n return;\n } finally {\n setIsUploading(false);\n }\n }\n\n createPayment({\n ...values,\n payableId,\n customAmount,\n payableType,\n discountCode,\n tipAttributes: tip,\n paymentScreenshot,\n });\n };\n\n return (\n <Form\n className=\"space-y-4\"\n formikProps={{\n onSubmit: handleSubmit,\n initialValues: INITIAL_VALUES,\n validationSchema,\n }}\n >\n {({ dirty }) => (\n <>\n <Typography className=\"neeto-ui-text-gray-600\" style=\"body2\">\n {t(\"neetoPayments.upi.payment.vpaText\", { count: vpaIds.length })}\n </Typography>\n {isPresent(vpaIds) && (\n <div className=\"flex flex-wrap gap-8\">\n {vpaIds.map(vpaId => (\n <div\n className=\"flex flex-col items-center justify-center\"\n key={vpaId}\n >\n <QRCodeImage\n size={256}\n style={{ width: 120, height: 120 }}\n value={getQrCodeValue(vpaId, amountToUpi)}\n />\n <Typography\n className=\"w-full mt-2 text-center wrap-break-word\"\n style=\"body2\"\n weight=\"medium\"\n >\n {vpaId}\n </Typography>\n </div>\n ))}\n </div>\n )}\n <UpiTransactionIdInput name=\"identifier\" />\n <div className=\"flex items-center gap-3\">\n <hr className=\"flex-1 neeto-ui-border-gray-300\" />\n <Typography\n className=\"neeto-ui-text-gray-500 uppercase\"\n style=\"body2\"\n >\n {t(\"neetoPayments.common.or\")}\n </Typography>\n <hr className=\"flex-1 neeto-ui-border-gray-300\" />\n </div>\n <div>\n <Typography className=\"mb-2\" style=\"body2\" weight=\"medium\">\n {t(\"neetoPayments.upi.payment.screenshot.label\")}\n </Typography>\n {screenshotPreview ? (\n <div className=\"relative inline-block\">\n <img\n alt={t(\"neetoPayments.upi.payment.screenshot.alt\")}\n className=\"max-h-40 neeto-ui-rounded border neeto-ui-border-gray-200\"\n src={screenshotPreview}\n />\n <Button\n className=\"absolute -right-2 -top-2 neeto-ui-rounded-full neeto-ui-bg-white neeto-ui-shadow-sm\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n onClick={handleRemoveScreenshot}\n />\n </div>\n ) : (\n <div\n className=\"flex cursor-pointer flex-col items-center justify-center neeto-ui-rounded border-2 border-dashed neeto-ui-border-gray-300 p-6 transition-colors hover:neeto-ui-border-gray-400\"\n role=\"button\"\n tabIndex={0}\n onClick={() => fileInputRef.current?.click()}\n onKeyDown={e => {\n if (e.key === \"Enter\" || e.key === \" \") {\n fileInputRef.current?.click();\n }\n }}\n >\n <i className=\"ri-upload-2-line text-2xl neeto-ui-text-gray-400\" />\n <Typography\n className=\"mt-1 text-blue-600 hover:underline\"\n style=\"body3\"\n weight=\"medium\"\n >\n {t(\"neetoPayments.upi.payment.screenshot.uploadText\")}\n </Typography>\n <Typography className=\"neeto-ui-text-gray-400\" style=\"nano\">\n {t(\"neetoPayments.upi.payment.screenshot.formatHint\", {\n maxSize: MAX_SCREENSHOT_SIZE_MB,\n })}\n </Typography>\n </div>\n )}\n <input\n accept={ACCEPTED_SCREENSHOT_FORMATS}\n className=\"hidden\"\n data-testid=\"manual-upi-screenshot-upload-input-field\"\n ref={fileInputRef}\n type=\"file\"\n onChange={handleScreenshotSelect}\n />\n </div>\n <ActionBlock\n cancelButtonProps={{\n label: t(\"neetoPayments.upi.payment.buttons.back\"),\n onClick: handleCancel,\n disabled: isPending,\n }}\n submitButtonProps={{\n label: t(\"neetoPayments.upi.payment.buttons.submit\"),\n disabled: (!dirty && !screenshotFile) || isPending || isUploading,\n loading: isPending || isUploading,\n }}\n />\n </>\n )}\n </Form>\n );\n};\n\nexport default ManualUpiPayment;\n"],"names":["ACCEPTED_SCREENSHOT_FORMATS","MAX_SCREENSHOT_SIZE_MB","DIRECT_UPLOAD_URL","INITIAL_VALUES","identifier","UPI_TRANSACTION_ID_LENGTH","buildValidationSchema","screenshotFile","yup","object","number","typeError","t","entity","nullable","transform","value","originalValue","test","isPresent","isNotPresent","Number","isInteger","length","toString","toSlots","Array","from","LENGTH","_","index","UpiTransactionIdInput","name","useTranslation","meta","helpers","useField","inputsRef","useRef","slots","setSlots","useState","initialValue","sync","nextSlots","setValue","join","setDigit","digit","map","slot","i","focusBox","current","focus","handleChange","event","sanitized","target","replace","handleKeyDown","key","preventDefault","handlePaste","pasted","clipboardData","getData","slice","Math","min","showError","touched","error","_jsxs","children","_jsx","Typography","className","style","weight","onPaste","autoComplete","inputMode","maxLength","ref","element","type","onBlur","setTouched","onChange","onFocus","select","onKeyDown","ManualUpiPayment","fee","payableId","tip","amount","discountCode","customAmount","handleCancel","payableType","onBeforePayment","noop","onFailedPayment","onSuccessfulPayment","fileInputRef","setScreenshotFile","isUploading","setIsUploading","screenshotPreview","useMemo","URL","createObjectURL","useEffect","revokeObjectURL","vpaIds","pluck","vpas","amountToUpi","isPending","mutate","createPayment","useCreateUpiPayment","onSuccess","onError","validationSchema","handleScreenshotSelect","file","files","size","Toastr","maxSize","handleRemoveScreenshot","uploadScreenshot","Promise","resolve","reject","upload","DirectUpload","create","blob","signed_id","handleSubmit","values","paymentScreenshot","tipAttributes","Form","formikProps","onSubmit","initialValues","dirty","_Fragment","count","vpaId","QRCodeImage","width","height","getQrCodeValue","alt","src","Button","icon","Close","onClick","role","tabIndex","click","e","accept","ActionBlock","cancelButtonProps","label","disabled","submitButtonProps","loading"],"mappings":"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"}
package/dist/cjs/index.js CHANGED
@@ -69,6 +69,7 @@ require('@bigbinary/neeto-molecules/MoreDropdown');
69
69
  require('@rails/activestorage');
70
70
  require('qrcode.react');
71
71
  require('./usePaymentApi-CuL13mny.js');
72
+ require('formik');
72
73
  require('./ExportModal-DwLOAhIs.js');
73
74
  require('./useExportsApi-rYuPpXWl.js');
74
75
  require('./usePaymentsApi-ZomyqUIJ.js');
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -11,7 +11,7 @@ var SubHeader = require('@bigbinary/neeto-molecules/v2/SubHeader');
11
11
  var reactI18next = require('react-i18next');
12
12
  var useExportsApi = require('../useExportsApi-CupgYUpS.js');
13
13
  var exportChannel = require('../exportChannel-BL2RGGhP.js');
14
- var neetoIcons = require('@bigbinary/neeto-icons');
14
+ var lucideReact = require('lucide-react');
15
15
  var constants = require('../index-CpEnC-Gq.js');
16
16
  var jsxRuntime = require('react/jsx-runtime');
17
17
  var utils = require('neetocommons/utils');
@@ -125,7 +125,7 @@ const ExportModal = ({
125
125
  children: downloadUrl ? /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Button, {
126
126
  "data-testid": "neeto-payments-download-button",
127
127
  href: downloadUrl,
128
- icon: neetoIcons.Download,
128
+ icon: lucideReact.Download,
129
129
  label: t("neetoPayments.common.download"),
130
130
  onClick: onClose
131
131
  }) : /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
@@ -341,6 +341,7 @@ const List = ({
341
341
  return /*#__PURE__*/jsxRuntime.jsx("div", {
342
342
  className: "flex h-full w-full items-center justify-center",
343
343
  children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Empty, {
344
+ icon: lucideReact.Building2,
344
345
  title: tab === TAB.all ? t("neetoPayments.emptyState.account") : t("neetoPayments.emptyState.accountWithStatus", {
345
346
  status: tab
346
347
  })
@@ -410,6 +411,7 @@ const AccountsDashboard = () => {
410
411
  className: "w-80"
411
412
  }
412
413
  }), isTabsVisible && /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tabs, {
414
+ size: "lg",
413
415
  value: tab,
414
416
  onValueChange: handleTabChange,
415
417
  children: /*#__PURE__*/jsxRuntime.jsx(neetoAtoms.Tabs.List, {
@@ -1 +1 @@
1
- {"version":3,"file":"AccountsDashboard.js","sources":["../../../app/javascript/src/v2/components/AccountsDashboard/constants/index.js","../../../app/javascript/src/v2/components/AccountsDashboard/ExportModal.jsx","../../../app/javascript/src/v2/components/AccountsDashboard/utils/renderFunctions.jsx","../../../app/javascript/src/v2/components/AccountsDashboard/constants/columns.js","../../../app/javascript/src/v2/components/AccountsDashboard/hooks/useFiltersAndPagination.js","../../../app/javascript/src/v2/components/AccountsDashboard/List.jsx","../../../app/javascript/src/v2/components/AccountsDashboard/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const TAB = {\n all: \"all\",\n connected: \"connected\",\n disconnected: \"disconnected\",\n incomplete: \"incomplete\",\n};\n\nexport const TABS = Object.values(TAB);\n\nexport const SEARCH_PROPS = {\n key: \"keyword\",\n node: \"identifier,user.first_name,last_name,email\",\n model: \"NeetoPaymentsEngine::Stripe::Account,User\",\n};\n\nexport const DASHBOARD_MANDATORY_COLUMNS = [\"id\", \"status\", \"identifier\"];\n\nexport const FILTER_COLUMNS = [\n {\n key: \"created_at\",\n label: t(\"neetoPayments.common.createdAt\"),\n node: \"created_at\",\n type: \"date\",\n showRuleSelector: true,\n },\n];\n\nexport const STRIPE_ACCOUNTS_TABLE_HIDDEN_COLUMNS_STORAGE_KEY =\n \"stripeAccountsDashboard\";\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { Button, Dialog, Typography } from \"@bigbinary/neeto-atoms\";\nimport { Download } from \"neetoicons\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useExportData } from \"hooks/reactQuery/stripe/useExportsApi\";\nimport exportChannel from \"src/channels/exportChannel\";\nimport { uuidV4 } from \"utils\";\n\nconst ExportModal = ({\n showExportModal,\n setShowExportModal,\n tab,\n filters,\n sortProperties = {},\n}) => {\n const { t } = useTranslation();\n const [downloadUrl, setDownloadUrl] = useState(\"\");\n const [isGenerating, setIsGenerating] = useState(false);\n\n const { mutate: exportCsv, isPending } = useExportData();\n const isFileLoading = isPending || isGenerating;\n\n const token = useMemo(() => `account-report-${uuidV4()}`, []);\n\n const receivedCallback = data => {\n if (!data.download_url) return;\n setDownloadUrl(data.download_url);\n setIsGenerating(false);\n };\n\n const handleGenerateClick = () => {\n const payload = {\n kind: \"account\",\n token,\n filters,\n tab,\n ...sortProperties,\n };\n\n exportCsv(payload, {\n onSuccess: () => {\n setDownloadUrl(\"\");\n setIsGenerating(true);\n },\n });\n };\n\n useEffect(() => {\n if (showExportModal) {\n const channel = exportChannel(token, receivedCallback);\n setDownloadUrl(\"\");\n setIsGenerating(false);\n\n return () => {\n channel.disconnected();\n };\n }\n\n return undefined;\n }, [showExportModal, token]);\n\n const onClose = () => setShowExportModal(false);\n\n return (\n <Dialog {...{ onClose }} isOpen={showExportModal}>\n <Dialog.Header>\n <Dialog.Title>{t(\"neetoPayments.export.title.account\")}</Dialog.Title>\n </Dialog.Header>\n <Dialog.Body>\n {isFileLoading ? (\n <Typography variant=\"body2\">\n {t(\"neetoPayments.export.pleaseWait\")}\n </Typography>\n ) : (\n <Typography variant=\"body2\">\n {downloadUrl\n ? t(\"neetoPayments.export.fileReady\")\n : t(\"neetoPayments.export.download.account\")}\n </Typography>\n )}\n </Dialog.Body>\n <Dialog.Footer className=\"space-x-2\">\n {downloadUrl ? (\n <Button\n data-testid=\"neeto-payments-download-button\"\n href={downloadUrl}\n icon={Download}\n label={t(\"neetoPayments.common.download\")}\n onClick={onClose}\n />\n ) : (\n <>\n <Button\n data-testid=\"cancel-button\"\n disabled={isFileLoading}\n label={t(\"neetoPayments.common.cancel\")}\n variant=\"outline\"\n onClick={onClose}\n />\n <Button\n data-testid=\"neeto-payments-export-button\"\n disabled={isFileLoading}\n label={t(\"neetoPayments.common.export\")}\n loading={isFileLoading}\n onClick={handleGenerateClick}\n />\n </>\n )}\n </Dialog.Footer>\n </Dialog>\n );\n};\n\nexport default ExportModal;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport { capitalize } from \"neetocist\";\nimport { join, map, pipe, split } from \"ramda\";\n\nimport { buildStripeAccountLink } from \"utils\";\nimport CopyButtonWrapper from \"v2/components/Common/CopyButtonWrapper\";\n\nexport const renderIdentifier = ({ identifier = \"\", isLive = false } = {}) => (\n <CopyButtonWrapper content={identifier}>\n <Button\n href={buildStripeAccountLink(identifier, isLive)}\n label={identifier}\n size=\"sm\"\n target=\"_blank\"\n variant=\"link\"\n />\n </CopyButtonWrapper>\n);\n\nexport const renderCountry = pipe(split(\"_\"), map(capitalize), join(\" \"));\n","import { t } from \"i18next\";\n\nimport {\n renderDate,\n renderFullName,\n renderStatus,\n} from \"v2/utils/renderFunctions\";\n\nimport { renderCountry, renderIdentifier } from \"../utils/renderFunctions\";\n\nexport const COLUMNS = [\n {\n header: t(\"neetoPayments.common.id\"),\n id: \"id\",\n accessorKey: \"id\",\n size: 85,\n enableHiding: false,\n },\n {\n header: t(\"neetoPayments.common.identifier\"),\n id: \"identifier\",\n accessorKey: \"identifier\",\n size: 300,\n cell: ({ row }) => renderIdentifier(row.original),\n enableHiding: false,\n },\n {\n header: t(\"neetoPayments.common.status\"),\n id: \"status\",\n accessorKey: \"status\",\n size: 150,\n cell: ({ row }) =>\n renderStatus(\"account\")(row.getValue(\"status\"), row.original),\n enableSorting: true,\n enableHiding: false,\n },\n {\n header: t(\"neetoPayments.common.name\"),\n id: \"first_name\",\n accessorKey: \"first_name\",\n size: 300,\n cell: ({ row }) => renderFullName(null, row.original),\n enableSorting: true,\n },\n {\n header: t(\"neetoPayments.common.email\"),\n id: \"email\",\n accessorKey: \"email\",\n size: 300,\n enableSorting: true,\n },\n {\n header: t(\"neetoPayments.common.country\"),\n id: \"country\",\n accessorKey: \"country\",\n size: 150,\n cell: ({ row }) => renderCountry(row.getValue(\"country\")),\n enableSorting: true,\n },\n {\n header: t(\"neetoPayments.common.createdAt\"),\n id: \"createdAt\",\n accessorKey: \"createdAt\",\n size: 220,\n cell: ({ row }) => renderDate(row.getValue(\"createdAt\")),\n enableSorting: true,\n },\n];\n","import { useState } from \"react\";\n\nimport { removeBy } from \"neetocist\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { useQueryParams } from \"neetocommons/v2/react-utils\";\nimport { buildFiltersFromURL } from \"neetofilters/v2\";\nimport { mergeLeft } from \"ramda\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { DEFAULT_SORT_PROPERTIES } from \"src/constants\";\nimport { buildDefaultPageProperties } from \"utils/dashboard\";\n\nimport { FILTER_COLUMNS, TAB, TABS, SEARCH_PROPS } from \"../constants\";\nimport { COLUMNS } from \"../constants/columns\";\n\nexport const useFiltersAndPagination = () => {\n const history = useHistory();\n const [isFilterButtonVisible, setIsFilterButtonVisible] = useState(false);\n const [isFilterPaneOpen, setIsFilterPaneOpen] = useState(false);\n const [pageProperties, setPageProperties] = useState(\n buildDefaultPageProperties(TABS)\n );\n const [sortProperties, setSortProperties] = useState(DEFAULT_SORT_PROPERTIES);\n const { tab = TAB.all } = useQueryParams();\n\n const { searchTerm = \"\" } = getQueryParams();\n const searchKeywordProps = {\n ...SEARCH_PROPS,\n key: \"search_term\",\n value: searchTerm.trim(),\n };\n\n const [filters, setFilters] = useState(\n buildFiltersFromURL([...FILTER_COLUMNS, searchKeywordProps])\n );\n const [dataSize, setDataSize] = useState(null);\n\n const columnData =\n tab !== TAB.all ? removeBy({ id: \"status\" }, COLUMNS) : COLUMNS;\n\n const handleTabChange = tab => {\n setDataSize(null);\n const queryParams = getQueryParams({ toCamelCase: false });\n const newParams = {\n tab,\n page: pageProperties[tab]?.page,\n page_size: pageProperties[tab]?.pageSize,\n };\n\n history.push(\n buildUrl(window.location.pathname, mergeLeft(newParams, queryParams))\n );\n };\n\n return {\n isFilterButtonVisible,\n isFilterPaneOpen,\n pageProperties,\n filters,\n searchKeywordProps,\n tab,\n sortProperties,\n columnData,\n dataSize,\n setDataSize,\n setIsFilterButtonVisible,\n setIsFilterPaneOpen,\n setPageProperties,\n setFilters,\n handleTabChange,\n setSortProperties,\n };\n};\n","import { useEffect } from \"react\";\n\nimport { DataTable, Empty, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { camelToSnakeCase, isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { useTableConfigurations } from \"neetomolecules/v2/Columns\";\nimport TableWrapper from \"neetomolecules/v2/TableWrapper\";\nimport { assoc, mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { useFetchConnectedAccounts } from \"hooks/reactQuery/stripe/useAccountsApi\";\nimport { DEFAULT_SORT_PROPERTIES } from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport { buildPayload, buildRowData } from \"utils/dashboard\";\n\nimport { TAB } from \"./constants\";\n\nconst List = ({\n columnData,\n filters,\n pageProperties,\n setDataSize,\n setIsFilterButtonVisible,\n setPageProperties,\n setSortProperties,\n sortProperties,\n tab,\n}) => {\n const history = useHistory();\n const { t } = useTranslation();\n const { isTableConfigurationLoading, customizedColumns, hideColumn } =\n useTableConfigurations(TABLE_KEYS.ACCOUNTS_TABLE, columnData);\n\n const {\n data: { accounts = [], views = {} } = {},\n isLoading,\n isFetching,\n } = useFetchConnectedAccounts(\n buildPayload({ filters, pageProperties, sortProperties, tab })\n );\n\n const dataSize = views[tab];\n\n useEffect(() => {\n setIsFilterButtonVisible(isPresent(accounts) || isPresent(filters));\n setDataSize(dataSize);\n }, [accounts]);\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(assoc(tab, { 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 (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n if (dataSize <= 0 || !isPresent(accounts)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Empty\n title={\n tab === TAB.all\n ? t(\"neetoPayments.emptyState.account\")\n : t(\"neetoPayments.emptyState.accountWithStatus\", { status: tab })\n }\n />\n </div>\n );\n }\n\n return (\n <TableWrapper hasPagination={dataSize > pageProperties[tab]?.pageSize}>\n <DataTable\n allowRowClick={false}\n columns={customizedColumns}\n currentPage={pageProperties[tab]?.page}\n data={buildRowData({ data: accounts, pageProperties, tab })}\n enableURLPagination={false}\n enableURLSort={false}\n loading={isFetching || isTableConfigurationLoading}\n totalCount={dataSize}\n onColumnHide={id => hideColumn(id)}\n onPageChange={page =>\n handleTablePagination(page, pageProperties[tab]?.pageSize)\n }\n onSort={sort =>\n sort\n ? setSortProperties({\n sortBy: camelToSnakeCase(sort.field),\n orderBy: sort.order === \"ascend\" ? \"ASC\" : \"DESC\",\n })\n : setSortProperties(DEFAULT_SORT_PROPERTIES)\n }\n />\n </TableWrapper>\n );\n};\n\nexport default List;\n","import { useState, useTransition } from \"react\";\n\nimport { Tabs, Typography } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport { isPresent } from \"neetocist\";\nimport { withTitle } from \"neetocommons/v2/react-utils\";\nimport { Bar as FiltersBar } from \"neetofilters/v2\";\nimport Header from \"neetomolecules/v2/Header\";\nimport SubHeader from \"neetomolecules/v2/SubHeader\";\nimport { useTranslation } from \"react-i18next\";\n\nimport withReactQuery from \"components/Common/withReactQuery\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\n\nimport {\n DASHBOARD_MANDATORY_COLUMNS,\n FILTER_COLUMNS,\n TAB,\n TABS,\n} from \"./constants\";\nimport ExportModal from \"./ExportModal\";\nimport { useFiltersAndPagination } from \"./hooks/useFiltersAndPagination\";\nimport List from \"./List\";\n\nconst AccountsDashboard = () => {\n const [_, startTransition] = useTransition();\n const { t } = useTranslation();\n\n const [showExportModal, setShowExportModal] = useState(false);\n const {\n isFilterButtonVisible,\n isFilterPaneOpen,\n pageProperties,\n filters,\n searchKeywordProps,\n tab,\n sortProperties,\n columnData,\n dataSize,\n setDataSize,\n setIsFilterButtonVisible,\n setIsFilterPaneOpen,\n setPageProperties,\n setFilters,\n handleTabChange,\n setSortProperties,\n } = useFiltersAndPagination();\n\n const isTabsVisible = isFilterButtonVisible || tab !== \"all\";\n\n const handleFiltersChange = filters => {\n startTransition(() => {\n setFilters(filters);\n });\n };\n\n return (\n <>\n <Header\n title={t(\"neetoPayments.title.account\")}\n searchProps={\n isFilterButtonVisible && {\n placeholder: t(\"neetoPayments.common.search\"),\n className: \"w-80\",\n }\n }\n />\n {isTabsVisible && (\n <Tabs value={tab} onValueChange={handleTabChange}>\n <Tabs.List>\n {TABS.map(item => (\n <Tabs.Item key={item} value={item}>\n {t(`neetoPayments.common.${item}`)}\n </Tabs.Item>\n ))}\n </Tabs.List>\n </Tabs>\n )}\n <SubHeader\n className=\"my-4\"\n leftActionBlock={\n isPresent(dataSize) && (\n <Typography className=\"me-2 font-semibold\" variant=\"body1\">\n {tab === TAB.all\n ? t(\"neetoPayments.countOf.account\", { count: dataSize })\n : t(\"neetoPayments.countOf.accountWithStatus\", {\n count: dataSize,\n status: tab,\n })}\n </Typography>\n )\n }\n rightActionBlock={\n isFilterButtonVisible && (\n <SubHeader.RightBlock\n columnsButtonProps={{\n columnData,\n fixedColumns: DASHBOARD_MANDATORY_COLUMNS,\n tableKey: TABLE_KEYS.ACCOUNTS_TABLE,\n }}\n downloadButtonProps={{\n onClick: () => setShowExportModal(true),\n }}\n filterProps={{\n columns: FILTER_COLUMNS,\n isOpen: isFilterPaneOpen,\n keyword: searchKeywordProps,\n setIsOpen: setIsFilterPaneOpen,\n onChange: handleFiltersChange,\n }}\n />\n )\n }\n />\n <FiltersBar\n columns={FILTER_COLUMNS}\n keyword={searchKeywordProps}\n setIsPaneOpen={setIsFilterPaneOpen}\n onChange={handleFiltersChange}\n />\n <List\n {...{\n columnData,\n filters,\n pageProperties,\n setDataSize,\n setIsFilterButtonVisible,\n setPageProperties,\n setSortProperties,\n sortProperties,\n tab,\n }}\n />\n <ExportModal\n {...{\n filters,\n setShowExportModal,\n showExportModal,\n sortProperties,\n tab,\n }}\n />\n </>\n );\n};\n\nexport default withTitle(\n withReactQuery(AccountsDashboard),\n t(\"neetoPayments.title.account\")\n);\n"],"names":["TAB","all","connected","disconnected","incomplete","TABS","Object","values","SEARCH_PROPS","key","node","model","DASHBOARD_MANDATORY_COLUMNS","FILTER_COLUMNS","label","t","type","showRuleSelector","ExportModal","showExportModal","setShowExportModal","tab","filters","sortProperties","useTranslation","downloadUrl","setDownloadUrl","useState","isGenerating","setIsGenerating","mutate","exportCsv","isPending","useExportData","isFileLoading","token","useMemo","uuidV4","receivedCallback","data","download_url","handleGenerateClick","payload","kind","onSuccess","useEffect","channel","exportChannel","undefined","onClose","_jsxs","Dialog","isOpen","children","_jsx","Header","Title","Body","Typography","variant","Footer","className","Button","href","icon","Download","onClick","_Fragment","disabled","loading","renderIdentifier","identifier","isLive","CopyButtonWrapper","content","buildStripeAccountLink","size","target","renderCountry","pipe","split","map","capitalize","join","COLUMNS","header","id","accessorKey","enableHiding","cell","row","original","renderStatus","getValue","enableSorting","renderFullName","renderDate","useFiltersAndPagination","history","useHistory","isFilterButtonVisible","setIsFilterButtonVisible","isFilterPaneOpen","setIsFilterPaneOpen","pageProperties","setPageProperties","buildDefaultPageProperties","setSortProperties","DEFAULT_SORT_PROPERTIES","useQueryParams","searchTerm","getQueryParams","searchKeywordProps","value","trim","setFilters","buildFiltersFromURL","dataSize","setDataSize","columnData","removeBy","handleTabChange","queryParams","toCamelCase","newParams","page","page_size","pageSize","push","buildUrl","window","location","pathname","mergeLeft","List","isTableConfigurationLoading","customizedColumns","hideColumn","useTableConfigurations","TABLE_KEYS","ACCOUNTS_TABLE","accounts","views","isLoading","isFetching","useFetchConnectedAccounts","buildPayload","isPresent","handleTablePagination","assoc","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","Spinner","Empty","title","status","TableWrapper","hasPagination","DataTable","allowRowClick","columns","currentPage","buildRowData","enableURLPagination","enableURLSort","totalCount","onColumnHide","onPageChange","onSort","sort","sortBy","camelToSnakeCase","field","orderBy","order","AccountsDashboard","_","startTransition","useTransition","isTabsVisible","handleFiltersChange","searchProps","placeholder","Tabs","onValueChange","item","Item","SubHeader","leftActionBlock","count","rightActionBlock","RightBlock","columnsButtonProps","fixedColumns","tableKey","downloadButtonProps","filterProps","keyword","setIsOpen","onChange","FiltersBar","setIsPaneOpen","withTitle","withReactQuery"],"mappings":"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"}
1
+ {"version":3,"file":"AccountsDashboard.js","sources":["../../../app/javascript/src/v2/components/AccountsDashboard/constants/index.js","../../../app/javascript/src/v2/components/AccountsDashboard/ExportModal.jsx","../../../app/javascript/src/v2/components/AccountsDashboard/utils/renderFunctions.jsx","../../../app/javascript/src/v2/components/AccountsDashboard/constants/columns.js","../../../app/javascript/src/v2/components/AccountsDashboard/hooks/useFiltersAndPagination.js","../../../app/javascript/src/v2/components/AccountsDashboard/List.jsx","../../../app/javascript/src/v2/components/AccountsDashboard/index.jsx"],"sourcesContent":["import { t } from \"i18next\";\n\nexport const TAB = {\n all: \"all\",\n connected: \"connected\",\n disconnected: \"disconnected\",\n incomplete: \"incomplete\",\n};\n\nexport const TABS = Object.values(TAB);\n\nexport const SEARCH_PROPS = {\n key: \"keyword\",\n node: \"identifier,user.first_name,last_name,email\",\n model: \"NeetoPaymentsEngine::Stripe::Account,User\",\n};\n\nexport const DASHBOARD_MANDATORY_COLUMNS = [\"id\", \"status\", \"identifier\"];\n\nexport const FILTER_COLUMNS = [\n {\n key: \"created_at\",\n label: t(\"neetoPayments.common.createdAt\"),\n node: \"created_at\",\n type: \"date\",\n showRuleSelector: true,\n },\n];\n\nexport const STRIPE_ACCOUNTS_TABLE_HIDDEN_COLUMNS_STORAGE_KEY =\n \"stripeAccountsDashboard\";\n","import { useEffect, useMemo, useState } from \"react\";\n\nimport { Button, Dialog, Typography } from \"@bigbinary/neeto-atoms\";\nimport { Download } from \"lucide-react\";\nimport { useTranslation } from \"react-i18next\";\n\nimport { useExportData } from \"hooks/reactQuery/stripe/useExportsApi\";\nimport exportChannel from \"src/channels/exportChannel\";\nimport { uuidV4 } from \"utils\";\n\nconst ExportModal = ({\n showExportModal,\n setShowExportModal,\n tab,\n filters,\n sortProperties = {},\n}) => {\n const { t } = useTranslation();\n const [downloadUrl, setDownloadUrl] = useState(\"\");\n const [isGenerating, setIsGenerating] = useState(false);\n\n const { mutate: exportCsv, isPending } = useExportData();\n const isFileLoading = isPending || isGenerating;\n\n const token = useMemo(() => `account-report-${uuidV4()}`, []);\n\n const receivedCallback = data => {\n if (!data.download_url) return;\n setDownloadUrl(data.download_url);\n setIsGenerating(false);\n };\n\n const handleGenerateClick = () => {\n const payload = {\n kind: \"account\",\n token,\n filters,\n tab,\n ...sortProperties,\n };\n\n exportCsv(payload, {\n onSuccess: () => {\n setDownloadUrl(\"\");\n setIsGenerating(true);\n },\n });\n };\n\n useEffect(() => {\n if (showExportModal) {\n const channel = exportChannel(token, receivedCallback);\n setDownloadUrl(\"\");\n setIsGenerating(false);\n\n return () => {\n channel.disconnected();\n };\n }\n\n return undefined;\n }, [showExportModal, token]);\n\n const onClose = () => setShowExportModal(false);\n\n return (\n <Dialog {...{ onClose }} isOpen={showExportModal}>\n <Dialog.Header>\n <Dialog.Title>{t(\"neetoPayments.export.title.account\")}</Dialog.Title>\n </Dialog.Header>\n <Dialog.Body>\n {isFileLoading ? (\n <Typography variant=\"body2\">\n {t(\"neetoPayments.export.pleaseWait\")}\n </Typography>\n ) : (\n <Typography variant=\"body2\">\n {downloadUrl\n ? t(\"neetoPayments.export.fileReady\")\n : t(\"neetoPayments.export.download.account\")}\n </Typography>\n )}\n </Dialog.Body>\n <Dialog.Footer className=\"space-x-2\">\n {downloadUrl ? (\n <Button\n data-testid=\"neeto-payments-download-button\"\n href={downloadUrl}\n icon={Download}\n label={t(\"neetoPayments.common.download\")}\n onClick={onClose}\n />\n ) : (\n <>\n <Button\n data-testid=\"cancel-button\"\n disabled={isFileLoading}\n label={t(\"neetoPayments.common.cancel\")}\n variant=\"outline\"\n onClick={onClose}\n />\n <Button\n data-testid=\"neeto-payments-export-button\"\n disabled={isFileLoading}\n label={t(\"neetoPayments.common.export\")}\n loading={isFileLoading}\n onClick={handleGenerateClick}\n />\n </>\n )}\n </Dialog.Footer>\n </Dialog>\n );\n};\n\nexport default ExportModal;\n","import { Button } from \"@bigbinary/neeto-atoms\";\nimport { capitalize } from \"neetocist\";\nimport { join, map, pipe, split } from \"ramda\";\n\nimport { buildStripeAccountLink } from \"utils\";\nimport CopyButtonWrapper from \"v2/components/Common/CopyButtonWrapper\";\n\nexport const renderIdentifier = ({ identifier = \"\", isLive = false } = {}) => (\n <CopyButtonWrapper content={identifier}>\n <Button\n href={buildStripeAccountLink(identifier, isLive)}\n label={identifier}\n size=\"sm\"\n target=\"_blank\"\n variant=\"link\"\n />\n </CopyButtonWrapper>\n);\n\nexport const renderCountry = pipe(split(\"_\"), map(capitalize), join(\" \"));\n","import { t } from \"i18next\";\n\nimport {\n renderDate,\n renderFullName,\n renderStatus,\n} from \"v2/utils/renderFunctions\";\n\nimport { renderCountry, renderIdentifier } from \"../utils/renderFunctions\";\n\nexport const COLUMNS = [\n {\n header: t(\"neetoPayments.common.id\"),\n id: \"id\",\n accessorKey: \"id\",\n size: 85,\n enableHiding: false,\n },\n {\n header: t(\"neetoPayments.common.identifier\"),\n id: \"identifier\",\n accessorKey: \"identifier\",\n size: 300,\n cell: ({ row }) => renderIdentifier(row.original),\n enableHiding: false,\n },\n {\n header: t(\"neetoPayments.common.status\"),\n id: \"status\",\n accessorKey: \"status\",\n size: 150,\n cell: ({ row }) =>\n renderStatus(\"account\")(row.getValue(\"status\"), row.original),\n enableSorting: true,\n enableHiding: false,\n },\n {\n header: t(\"neetoPayments.common.name\"),\n id: \"first_name\",\n accessorKey: \"first_name\",\n size: 300,\n cell: ({ row }) => renderFullName(null, row.original),\n enableSorting: true,\n },\n {\n header: t(\"neetoPayments.common.email\"),\n id: \"email\",\n accessorKey: \"email\",\n size: 300,\n enableSorting: true,\n },\n {\n header: t(\"neetoPayments.common.country\"),\n id: \"country\",\n accessorKey: \"country\",\n size: 150,\n cell: ({ row }) => renderCountry(row.getValue(\"country\")),\n enableSorting: true,\n },\n {\n header: t(\"neetoPayments.common.createdAt\"),\n id: \"createdAt\",\n accessorKey: \"createdAt\",\n size: 220,\n cell: ({ row }) => renderDate(row.getValue(\"createdAt\")),\n enableSorting: true,\n },\n];\n","import { useState } from \"react\";\n\nimport { removeBy } from \"neetocist\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { useQueryParams } from \"neetocommons/v2/react-utils\";\nimport { buildFiltersFromURL } from \"neetofilters/v2\";\nimport { mergeLeft } from \"ramda\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { DEFAULT_SORT_PROPERTIES } from \"src/constants\";\nimport { buildDefaultPageProperties } from \"utils/dashboard\";\n\nimport { FILTER_COLUMNS, TAB, TABS, SEARCH_PROPS } from \"../constants\";\nimport { COLUMNS } from \"../constants/columns\";\n\nexport const useFiltersAndPagination = () => {\n const history = useHistory();\n const [isFilterButtonVisible, setIsFilterButtonVisible] = useState(false);\n const [isFilterPaneOpen, setIsFilterPaneOpen] = useState(false);\n const [pageProperties, setPageProperties] = useState(\n buildDefaultPageProperties(TABS)\n );\n const [sortProperties, setSortProperties] = useState(DEFAULT_SORT_PROPERTIES);\n const { tab = TAB.all } = useQueryParams();\n\n const { searchTerm = \"\" } = getQueryParams();\n const searchKeywordProps = {\n ...SEARCH_PROPS,\n key: \"search_term\",\n value: searchTerm.trim(),\n };\n\n const [filters, setFilters] = useState(\n buildFiltersFromURL([...FILTER_COLUMNS, searchKeywordProps])\n );\n const [dataSize, setDataSize] = useState(null);\n\n const columnData =\n tab !== TAB.all ? removeBy({ id: \"status\" }, COLUMNS) : COLUMNS;\n\n const handleTabChange = tab => {\n setDataSize(null);\n const queryParams = getQueryParams({ toCamelCase: false });\n const newParams = {\n tab,\n page: pageProperties[tab]?.page,\n page_size: pageProperties[tab]?.pageSize,\n };\n\n history.push(\n buildUrl(window.location.pathname, mergeLeft(newParams, queryParams))\n );\n };\n\n return {\n isFilterButtonVisible,\n isFilterPaneOpen,\n pageProperties,\n filters,\n searchKeywordProps,\n tab,\n sortProperties,\n columnData,\n dataSize,\n setDataSize,\n setIsFilterButtonVisible,\n setIsFilterPaneOpen,\n setPageProperties,\n setFilters,\n handleTabChange,\n setSortProperties,\n };\n};\n","import { useEffect } from \"react\";\n\nimport { DataTable, Empty, Spinner } from \"@bigbinary/neeto-atoms\";\nimport { Building2 } from \"lucide-react\";\nimport { camelToSnakeCase, isPresent } from \"neetocist\";\nimport { DEFAULT_PAGE_INDEX, DEFAULT_PAGE_SIZE } from \"neetocommons/constants\";\nimport { buildUrl, getQueryParams } from \"neetocommons/utils\";\nimport { useTableConfigurations } from \"neetomolecules/v2/Columns\";\nimport TableWrapper from \"neetomolecules/v2/TableWrapper\";\nimport { assoc, mergeLeft } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\nimport { useHistory } from \"react-router-dom\";\n\nimport { useFetchConnectedAccounts } from \"hooks/reactQuery/stripe/useAccountsApi\";\nimport { DEFAULT_SORT_PROPERTIES } from \"src/constants\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\nimport { buildPayload, buildRowData } from \"utils/dashboard\";\n\nimport { TAB } from \"./constants\";\n\nconst List = ({\n columnData,\n filters,\n pageProperties,\n setDataSize,\n setIsFilterButtonVisible,\n setPageProperties,\n setSortProperties,\n sortProperties,\n tab,\n}) => {\n const history = useHistory();\n const { t } = useTranslation();\n const { isTableConfigurationLoading, customizedColumns, hideColumn } =\n useTableConfigurations(TABLE_KEYS.ACCOUNTS_TABLE, columnData);\n\n const {\n data: { accounts = [], views = {} } = {},\n isLoading,\n isFetching,\n } = useFetchConnectedAccounts(\n buildPayload({ filters, pageProperties, sortProperties, tab })\n );\n\n const dataSize = views[tab];\n\n useEffect(() => {\n setIsFilterButtonVisible(isPresent(accounts) || isPresent(filters));\n setDataSize(dataSize);\n }, [accounts]);\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(assoc(tab, { 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 (isLoading) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Spinner />\n </div>\n );\n }\n\n if (dataSize <= 0 || !isPresent(accounts)) {\n return (\n <div className=\"flex h-full w-full items-center justify-center\">\n <Empty\n icon={Building2}\n title={\n tab === TAB.all\n ? t(\"neetoPayments.emptyState.account\")\n : t(\"neetoPayments.emptyState.accountWithStatus\", { status: tab })\n }\n />\n </div>\n );\n }\n\n return (\n <TableWrapper hasPagination={dataSize > pageProperties[tab]?.pageSize}>\n <DataTable\n allowRowClick={false}\n columns={customizedColumns}\n currentPage={pageProperties[tab]?.page}\n data={buildRowData({ data: accounts, pageProperties, tab })}\n enableURLPagination={false}\n enableURLSort={false}\n loading={isFetching || isTableConfigurationLoading}\n totalCount={dataSize}\n onColumnHide={id => hideColumn(id)}\n onPageChange={page =>\n handleTablePagination(page, pageProperties[tab]?.pageSize)\n }\n onSort={sort =>\n sort\n ? setSortProperties({\n sortBy: camelToSnakeCase(sort.field),\n orderBy: sort.order === \"ascend\" ? \"ASC\" : \"DESC\",\n })\n : setSortProperties(DEFAULT_SORT_PROPERTIES)\n }\n />\n </TableWrapper>\n );\n};\n\nexport default List;\n","import { useState, useTransition } from \"react\";\n\nimport { Tabs, Typography } from \"@bigbinary/neeto-atoms\";\nimport { t } from \"i18next\";\nimport { isPresent } from \"neetocist\";\nimport { withTitle } from \"neetocommons/v2/react-utils\";\nimport { Bar as FiltersBar } from \"neetofilters/v2\";\nimport Header from \"neetomolecules/v2/Header\";\nimport SubHeader from \"neetomolecules/v2/SubHeader\";\nimport { useTranslation } from \"react-i18next\";\n\nimport withReactQuery from \"components/Common/withReactQuery\";\nimport { TABLE_KEYS } from \"src/constants/tableKeys\";\n\nimport {\n DASHBOARD_MANDATORY_COLUMNS,\n FILTER_COLUMNS,\n TAB,\n TABS,\n} from \"./constants\";\nimport ExportModal from \"./ExportModal\";\nimport { useFiltersAndPagination } from \"./hooks/useFiltersAndPagination\";\nimport List from \"./List\";\n\nconst AccountsDashboard = () => {\n const [_, startTransition] = useTransition();\n const { t } = useTranslation();\n\n const [showExportModal, setShowExportModal] = useState(false);\n const {\n isFilterButtonVisible,\n isFilterPaneOpen,\n pageProperties,\n filters,\n searchKeywordProps,\n tab,\n sortProperties,\n columnData,\n dataSize,\n setDataSize,\n setIsFilterButtonVisible,\n setIsFilterPaneOpen,\n setPageProperties,\n setFilters,\n handleTabChange,\n setSortProperties,\n } = useFiltersAndPagination();\n\n const isTabsVisible = isFilterButtonVisible || tab !== \"all\";\n\n const handleFiltersChange = filters => {\n startTransition(() => {\n setFilters(filters);\n });\n };\n\n return (\n <>\n <Header\n title={t(\"neetoPayments.title.account\")}\n searchProps={\n isFilterButtonVisible && {\n placeholder: t(\"neetoPayments.common.search\"),\n className: \"w-80\",\n }\n }\n />\n {isTabsVisible && (\n <Tabs size=\"lg\" value={tab} onValueChange={handleTabChange}>\n <Tabs.List>\n {TABS.map(item => (\n <Tabs.Item key={item} value={item}>\n {t(`neetoPayments.common.${item}`)}\n </Tabs.Item>\n ))}\n </Tabs.List>\n </Tabs>\n )}\n <SubHeader\n className=\"my-4\"\n leftActionBlock={\n isPresent(dataSize) && (\n <Typography className=\"me-2 font-semibold\" variant=\"body1\">\n {tab === TAB.all\n ? t(\"neetoPayments.countOf.account\", { count: dataSize })\n : t(\"neetoPayments.countOf.accountWithStatus\", {\n count: dataSize,\n status: tab,\n })}\n </Typography>\n )\n }\n rightActionBlock={\n isFilterButtonVisible && (\n <SubHeader.RightBlock\n columnsButtonProps={{\n columnData,\n fixedColumns: DASHBOARD_MANDATORY_COLUMNS,\n tableKey: TABLE_KEYS.ACCOUNTS_TABLE,\n }}\n downloadButtonProps={{\n onClick: () => setShowExportModal(true),\n }}\n filterProps={{\n columns: FILTER_COLUMNS,\n isOpen: isFilterPaneOpen,\n keyword: searchKeywordProps,\n setIsOpen: setIsFilterPaneOpen,\n onChange: handleFiltersChange,\n }}\n />\n )\n }\n />\n <FiltersBar\n columns={FILTER_COLUMNS}\n keyword={searchKeywordProps}\n setIsPaneOpen={setIsFilterPaneOpen}\n onChange={handleFiltersChange}\n />\n <List\n {...{\n columnData,\n filters,\n pageProperties,\n setDataSize,\n setIsFilterButtonVisible,\n setPageProperties,\n setSortProperties,\n sortProperties,\n tab,\n }}\n />\n <ExportModal\n {...{\n filters,\n setShowExportModal,\n showExportModal,\n sortProperties,\n tab,\n }}\n />\n </>\n );\n};\n\nexport default withTitle(\n withReactQuery(AccountsDashboard),\n t(\"neetoPayments.title.account\")\n);\n"],"names":["TAB","all","connected","disconnected","incomplete","TABS","Object","values","SEARCH_PROPS","key","node","model","DASHBOARD_MANDATORY_COLUMNS","FILTER_COLUMNS","label","t","type","showRuleSelector","ExportModal","showExportModal","setShowExportModal","tab","filters","sortProperties","useTranslation","downloadUrl","setDownloadUrl","useState","isGenerating","setIsGenerating","mutate","exportCsv","isPending","useExportData","isFileLoading","token","useMemo","uuidV4","receivedCallback","data","download_url","handleGenerateClick","payload","kind","onSuccess","useEffect","channel","exportChannel","undefined","onClose","_jsxs","Dialog","isOpen","children","_jsx","Header","Title","Body","Typography","variant","Footer","className","Button","href","icon","Download","onClick","_Fragment","disabled","loading","renderIdentifier","identifier","isLive","CopyButtonWrapper","content","buildStripeAccountLink","size","target","renderCountry","pipe","split","map","capitalize","join","COLUMNS","header","id","accessorKey","enableHiding","cell","row","original","renderStatus","getValue","enableSorting","renderFullName","renderDate","useFiltersAndPagination","history","useHistory","isFilterButtonVisible","setIsFilterButtonVisible","isFilterPaneOpen","setIsFilterPaneOpen","pageProperties","setPageProperties","buildDefaultPageProperties","setSortProperties","DEFAULT_SORT_PROPERTIES","useQueryParams","searchTerm","getQueryParams","searchKeywordProps","value","trim","setFilters","buildFiltersFromURL","dataSize","setDataSize","columnData","removeBy","handleTabChange","queryParams","toCamelCase","newParams","page","page_size","pageSize","push","buildUrl","window","location","pathname","mergeLeft","List","isTableConfigurationLoading","customizedColumns","hideColumn","useTableConfigurations","TABLE_KEYS","ACCOUNTS_TABLE","accounts","views","isLoading","isFetching","useFetchConnectedAccounts","buildPayload","isPresent","handleTablePagination","assoc","DEFAULT_PAGE_INDEX","DEFAULT_PAGE_SIZE","Spinner","Empty","Building2","title","status","TableWrapper","hasPagination","DataTable","allowRowClick","columns","currentPage","buildRowData","enableURLPagination","enableURLSort","totalCount","onColumnHide","onPageChange","onSort","sort","sortBy","camelToSnakeCase","field","orderBy","order","AccountsDashboard","_","startTransition","useTransition","isTabsVisible","handleFiltersChange","searchProps","placeholder","Tabs","onValueChange","item","Item","SubHeader","leftActionBlock","count","rightActionBlock","RightBlock","columnsButtonProps","fixedColumns","tableKey","downloadButtonProps","filterProps","keyword","setIsOpen","onChange","FiltersBar","setIsPaneOpen","withTitle","withReactQuery"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,MAAMA,GAAG,GAAG;AACjBC,EAAAA,GAAG,EAAE,KAAK;AACVC,EAAAA,SAAS,EAAE,WAAW;AACtBC,EAAAA,YAAY,EAAE,cAAc;AAC5BC,EAAAA,UAAU,EAAE;AACd,CAAC;AAEM,MAAMC,IAAI,GAAGC,MAAM,CAACC,MAAM,CAACP,GAAG,CAAC;AAE/B,MAAMQ,YAAY,GAAG;AAC1BC,EAAAA,GAAG,EAAE,SAAS;AACdC,EAAAA,IAAI,EAAE,4CAA4C;AAClDC,EAAAA,KAAK,EAAE;AACT,CAAC;AAEM,MAAMC,2BAA2B,GAAG,CAAC,IAAI,EAAE,QAAQ,EAAE,YAAY,CAAC;AAElE,MAAMC,cAAc,GAAG,CAC5B;AACEJ,EAAAA,GAAG,EAAE,YAAY;AACjBK,EAAAA,KAAK,EAAEC,SAAC,CAAC,gCAAgC,CAAC;AAC1CL,EAAAA,IAAI,EAAE,YAAY;AAClBM,EAAAA,IAAI,EAAE,MAAM;AACZC,EAAAA,gBAAgB,EAAE;AACpB,CAAC,CACF;;ACjBD,MAAMC,WAAW,GAAGA,CAAC;EACnBC,eAAe;EACfC,kBAAkB;EAClBC,GAAG;EACHC,OAAO;AACPC,EAAAA,cAAc,GAAG;AACnB,CAAC,KAAK;EACJ,MAAM;AAAER,IAAAA;GAAG,GAAGS,2BAAc,EAAE;EAC9B,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAGC,cAAQ,CAAC,EAAE,CAAC;EAClD,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGF,cAAQ,CAAC,KAAK,CAAC;EAEvD,MAAM;AAAEG,IAAAA,MAAM,EAAEC,SAAS;AAAEC,IAAAA;GAAW,GAAGC,2BAAa,EAAE;AACxD,EAAA,MAAMC,aAAa,GAAGF,SAAS,IAAIJ,YAAY;AAE/C,EAAA,MAAMO,KAAK,GAAGC,aAAO,CAAC,MAAM,CAAA,eAAA,EAAkBC,gBAAM,EAAE,CAAA,CAAE,EAAE,EAAE,CAAC;EAE7D,MAAMC,gBAAgB,GAAGC,IAAI,IAAI;AAC/B,IAAA,IAAI,CAACA,IAAI,CAACC,YAAY,EAAE;AACxBd,IAAAA,cAAc,CAACa,IAAI,CAACC,YAAY,CAAC;IACjCX,eAAe,CAAC,KAAK,CAAC;EACxB,CAAC;EAED,MAAMY,mBAAmB,GAAGA,MAAM;AAChC,IAAA,MAAMC,OAAO,GAAG;AACdC,MAAAA,IAAI,EAAE,SAAS;MACfR,KAAK;MACLb,OAAO;MACPD,GAAG;MACH,GAAGE;KACJ;IAEDQ,SAAS,CAACW,OAAO,EAAE;MACjBE,SAAS,EAAEA,MAAM;QACflB,cAAc,CAAC,EAAE,CAAC;QAClBG,eAAe,CAAC,IAAI,CAAC;AACvB,MAAA;AACF,KAAC,CAAC;EACJ,CAAC;AAEDgB,EAAAA,eAAS,CAAC,MAAM;AACd,IAAA,IAAI1B,eAAe,EAAE;AACnB,MAAA,MAAM2B,OAAO,GAAGC,2BAAa,CAACZ,KAAK,EAAEG,gBAAgB,CAAC;MACtDZ,cAAc,CAAC,EAAE,CAAC;MAClBG,eAAe,CAAC,KAAK,CAAC;AAEtB,MAAA,OAAO,MAAM;QACXiB,OAAO,CAAC3C,YAAY,EAAE;MACxB,CAAC;AACH,IAAA;AAEA,IAAA,OAAO6C,SAAS;AAClB,EAAA,CAAC,EAAE,CAAC7B,eAAe,EAAEgB,KAAK,CAAC,CAAC;AAE5B,EAAA,MAAMc,OAAO,GAAGA,MAAM7B,kBAAkB,CAAC,KAAK,CAAC;EAE/C,oBACE8B,eAAA,CAACC,iBAAM,EAAA;IAAOF,OAAO;AAAIG,IAAAA,MAAM,EAAEjC,eAAgB;AAAAkC,IAAAA,QAAA,EAAA,cAC/CC,cAAA,CAACH,iBAAM,CAACI,MAAM,EAAA;AAAAF,MAAAA,QAAA,eACZC,cAAA,CAACH,iBAAM,CAACK,KAAK,EAAA;QAAAH,QAAA,EAAEtC,CAAC,CAAC,oCAAoC;OAAgB;AAAC,KACzD,CAAC,eAChBuC,cAAA,CAACH,iBAAM,CAACM,IAAI,EAAA;AAAAJ,MAAAA,QAAA,EACTnB,aAAa,gBACZoB,cAAA,CAACI,qBAAU,EAAA;AAACC,QAAAA,OAAO,EAAC,OAAO;QAAAN,QAAA,EACxBtC,CAAC,CAAC,iCAAiC;AAAC,OAC3B,CAAC,gBAEbuC,cAAA,CAACI,qBAAU,EAAA;AAACC,QAAAA,OAAO,EAAC,OAAO;QAAAN,QAAA,EACxB5B,WAAW,GACRV,CAAC,CAAC,gCAAgC,CAAC,GACnCA,CAAC,CAAC,uCAAuC;OACnC;AACb,KACU,CAAC,eACduC,cAAA,CAACH,iBAAM,CAACS,MAAM,EAAA;AAACC,MAAAA,SAAS,EAAC,WAAW;AAAAR,MAAAA,QAAA,EACjC5B,WAAW,gBACV6B,cAAA,CAACQ,iBAAM,EAAA;AACL,QAAA,aAAA,EAAY,gCAAgC;AAC5CC,QAAAA,IAAI,EAAEtC,WAAY;AAClBuC,QAAAA,IAAI,EAAEC,oBAAS;AACfnD,QAAAA,KAAK,EAAEC,CAAC,CAAC,+BAA+B,CAAE;AAC1CmD,QAAAA,OAAO,EAAEjB;AAAQ,OAClB,CAAC,gBAEFC,eAAA,CAAAiB,mBAAA,EAAA;QAAAd,QAAA,EAAA,cACEC,cAAA,CAACQ,iBAAM,EAAA;AACL,UAAA,aAAA,EAAY,eAAe;AAC3BM,UAAAA,QAAQ,EAAElC,aAAc;AACxBpB,UAAAA,KAAK,EAAEC,CAAC,CAAC,6BAA6B,CAAE;AACxC4C,UAAAA,OAAO,EAAC,SAAS;AACjBO,UAAAA,OAAO,EAAEjB;AAAQ,SAClB,CAAC,eACFK,cAAA,CAACQ,iBAAM,EAAA;AACL,UAAA,aAAA,EAAY,8BAA8B;AAC1CM,UAAAA,QAAQ,EAAElC,aAAc;AACxBpB,UAAAA,KAAK,EAAEC,CAAC,CAAC,6BAA6B,CAAE;AACxCsD,UAAAA,OAAO,EAAEnC,aAAc;AACvBgC,UAAAA,OAAO,EAAEzB;AAAoB,SAC9B,CAAC;OACF;AACH,KACY,CAAC;AAAA,GACV,CAAC;AAEb,CAAC;;AC1GM,MAAM6B,gBAAgB,GAAGA,CAAC;AAAEC,EAAAA,UAAU,GAAG,EAAE;AAAEC,EAAAA,MAAM,GAAG;AAAM,CAAC,GAAG,EAAE,kBACvElB,cAAA,CAACmB,mCAAiB,EAAA;AAACC,EAAAA,OAAO,EAAEH,UAAW;EAAAlB,QAAA,eACrCC,cAAA,CAACQ,iBAAM,EAAA;AACLC,IAAAA,IAAI,EAAEY,gCAAsB,CAACJ,UAAU,EAAEC,MAAM,CAAE;AACjD1D,IAAAA,KAAK,EAAEyD,UAAW;AAClBK,IAAAA,IAAI,EAAC,IAAI;AACTC,IAAAA,MAAM,EAAC,QAAQ;AACflB,IAAAA,OAAO,EAAC;GACT;AAAC,CACe,CACpB;AAEM,MAAMmB,aAAa,GAAGC,UAAI,CAACC,WAAK,CAAC,GAAG,CAAC,EAAEC,SAAG,CAACC,oBAAU,CAAC,EAAEC,UAAI,CAAC,GAAG,CAAC,CAAC;;ACTlE,MAAMC,OAAO,GAAG,CACrB;AACEC,EAAAA,MAAM,EAAEtE,SAAC,CAAC,yBAAyB,CAAC;AACpCuE,EAAAA,EAAE,EAAE,IAAI;AACRC,EAAAA,WAAW,EAAE,IAAI;AACjBX,EAAAA,IAAI,EAAE,EAAE;AACRY,EAAAA,YAAY,EAAE;AAChB,CAAC,EACD;AACEH,EAAAA,MAAM,EAAEtE,SAAC,CAAC,iCAAiC,CAAC;AAC5CuE,EAAAA,EAAE,EAAE,YAAY;AAChBC,EAAAA,WAAW,EAAE,YAAY;AACzBX,EAAAA,IAAI,EAAE,GAAG;AACTa,EAAAA,IAAI,EAAEA,CAAC;AAAEC,IAAAA;AAAI,GAAC,KAAKpB,gBAAgB,CAACoB,GAAG,CAACC,QAAQ,CAAC;AACjDH,EAAAA,YAAY,EAAE;AAChB,CAAC,EACD;AACEH,EAAAA,MAAM,EAAEtE,SAAC,CAAC,6BAA6B,CAAC;AACxCuE,EAAAA,EAAE,EAAE,QAAQ;AACZC,EAAAA,WAAW,EAAE,QAAQ;AACrBX,EAAAA,IAAI,EAAE,GAAG;AACTa,EAAAA,IAAI,EAAEA,CAAC;AAAEC,IAAAA;AAAI,GAAC,KACZE,4BAAY,CAAC,SAAS,CAAC,CAACF,GAAG,CAACG,QAAQ,CAAC,QAAQ,CAAC,EAAEH,GAAG,CAACC,QAAQ,CAAC;AAC/DG,EAAAA,aAAa,EAAE,IAAI;AACnBN,EAAAA,YAAY,EAAE;AAChB,CAAC,EACD;AACEH,EAAAA,MAAM,EAAEtE,SAAC,CAAC,2BAA2B,CAAC;AACtCuE,EAAAA,EAAE,EAAE,YAAY;AAChBC,EAAAA,WAAW,EAAE,YAAY;AACzBX,EAAAA,IAAI,EAAE,GAAG;AACTa,EAAAA,IAAI,EAAEA,CAAC;AAAEC,IAAAA;GAAK,KAAKK,8BAAc,CAAC,IAAI,EAAEL,GAAG,CAACC,QAAQ,CAAC;AACrDG,EAAAA,aAAa,EAAE;AACjB,CAAC,EACD;AACET,EAAAA,MAAM,EAAEtE,SAAC,CAAC,4BAA4B,CAAC;AACvCuE,EAAAA,EAAE,EAAE,OAAO;AACXC,EAAAA,WAAW,EAAE,OAAO;AACpBX,EAAAA,IAAI,EAAE,GAAG;AACTkB,EAAAA,aAAa,EAAE;AACjB,CAAC,EACD;AACET,EAAAA,MAAM,EAAEtE,SAAC,CAAC,8BAA8B,CAAC;AACzCuE,EAAAA,EAAE,EAAE,SAAS;AACbC,EAAAA,WAAW,EAAE,SAAS;AACtBX,EAAAA,IAAI,EAAE,GAAG;AACTa,EAAAA,IAAI,EAAEA,CAAC;AAAEC,IAAAA;GAAK,KAAKZ,aAAa,CAACY,GAAG,CAACG,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzDC,EAAAA,aAAa,EAAE;AACjB,CAAC,EACD;AACET,EAAAA,MAAM,EAAEtE,SAAC,CAAC,gCAAgC,CAAC;AAC3CuE,EAAAA,EAAE,EAAE,WAAW;AACfC,EAAAA,WAAW,EAAE,WAAW;AACxBX,EAAAA,IAAI,EAAE,GAAG;AACTa,EAAAA,IAAI,EAAEA,CAAC;AAAEC,IAAAA;GAAK,KAAKM,0BAAU,CAACN,GAAG,CAACG,QAAQ,CAAC,WAAW,CAAC,CAAC;AACxDC,EAAAA,aAAa,EAAE;AACjB,CAAC,CACF;;ACpDM,MAAMG,uBAAuB,GAAGA,MAAM;AAC3C,EAAA,MAAMC,OAAO,GAAGC,yBAAU,EAAE;EAC5B,MAAM,CAACC,qBAAqB,EAAEC,wBAAwB,CAAC,GAAG1E,cAAQ,CAAC,KAAK,CAAC;EACzE,MAAM,CAAC2E,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG5E,cAAQ,CAAC,KAAK,CAAC;AAC/D,EAAA,MAAM,CAAC6E,cAAc,EAAEC,iBAAiB,CAAC,GAAG9E,cAAQ,CAClD+E,oCAA0B,CAACrG,IAAI,CACjC,CAAC;EACD,MAAM,CAACkB,cAAc,EAAEoF,iBAAiB,CAAC,GAAGhF,cAAQ,CAACiF,iCAAuB,CAAC;EAC7E,MAAM;IAAEvF,GAAG,GAAGrB,GAAG,CAACC;GAAK,GAAG4G,yBAAc,EAAE;EAE1C,MAAM;AAAEC,IAAAA,UAAU,GAAG;GAAI,GAAGC,oBAAc,EAAE;AAC5C,EAAA,MAAMC,kBAAkB,GAAG;AACzB,IAAA,GAAGxG,YAAY;AACfC,IAAAA,GAAG,EAAE,aAAa;AAClBwG,IAAAA,KAAK,EAAEH,UAAU,CAACI,IAAI;GACvB;AAED,EAAA,MAAM,CAAC5F,OAAO,EAAE6F,UAAU,CAAC,GAAGxF,cAAQ,CACpCyF,sBAAmB,CAAC,CAAC,GAAGvG,cAAc,EAAEmG,kBAAkB,CAAC,CAC7D,CAAC;EACD,MAAM,CAACK,QAAQ,EAAEC,WAAW,CAAC,GAAG3F,cAAQ,CAAC,IAAI,CAAC;EAE9C,MAAM4F,UAAU,GACdlG,GAAG,KAAKrB,GAAG,CAACC,GAAG,GAAGuH,kBAAQ,CAAC;AAAElC,IAAAA,EAAE,EAAE;AAAS,GAAC,EAAEF,OAAO,CAAC,GAAGA,OAAO;EAEjE,MAAMqC,eAAe,GAAGpG,GAAG,IAAI;IAC7BiG,WAAW,CAAC,IAAI,CAAC;IACjB,MAAMI,WAAW,GAAGX,oBAAc,CAAC;AAAEY,MAAAA,WAAW,EAAE;AAAM,KAAC,CAAC;AAC1D,IAAA,MAAMC,SAAS,GAAG;MAChBvG,GAAG;AACHwG,MAAAA,IAAI,EAAErB,cAAc,CAACnF,GAAG,CAAC,EAAEwG,IAAI;AAC/BC,MAAAA,SAAS,EAAEtB,cAAc,CAACnF,GAAG,CAAC,EAAE0G;KACjC;AAED7B,IAAAA,OAAO,CAAC8B,IAAI,CACVC,cAAQ,CAACC,MAAM,CAACC,QAAQ,CAACC,QAAQ,EAAEC,eAAS,CAACT,SAAS,EAAEF,WAAW,CAAC,CACtE,CAAC;EACH,CAAC;EAED,OAAO;IACLtB,qBAAqB;IACrBE,gBAAgB;IAChBE,cAAc;IACdlF,OAAO;IACP0F,kBAAkB;IAClB3F,GAAG;IACHE,cAAc;IACdgG,UAAU;IACVF,QAAQ;IACRC,WAAW;IACXjB,wBAAwB;IACxBE,mBAAmB;IACnBE,iBAAiB;IACjBU,UAAU;IACVM,eAAe;AACfd,IAAAA;GACD;AACH,CAAC;;ACpDD,MAAM2B,IAAI,GAAGA,CAAC;EACZf,UAAU;EACVjG,OAAO;EACPkF,cAAc;EACdc,WAAW;EACXjB,wBAAwB;EACxBI,iBAAiB;EACjBE,iBAAiB;EACjBpF,cAAc;AACdF,EAAAA;AACF,CAAC,KAAK;AACJ,EAAA,MAAM6E,OAAO,GAAGC,yBAAU,EAAE;EAC5B,MAAM;AAAEpF,IAAAA;GAAG,GAAGS,2BAAc,EAAE;EAC9B,MAAM;IAAE+G,2BAA2B;IAAEC,iBAAiB;AAAEC,IAAAA;GAAY,GAClEC,8BAAsB,CAACC,wBAAU,CAACC,cAAc,EAAErB,UAAU,CAAC;EAE/D,MAAM;AACJhF,IAAAA,IAAI,EAAE;AAAEsG,MAAAA,QAAQ,GAAG,EAAE;AAAEC,MAAAA,KAAK,GAAG;KAAI,GAAG,EAAE;IACxCC,SAAS;AACTC,IAAAA;AACF,GAAC,GAAGC,wCAAyB,CAC3BC,sBAAY,CAAC;IAAE5H,OAAO;IAAEkF,cAAc;IAAEjF,cAAc;AAAEF,IAAAA;AAAI,GAAC,CAC/D,CAAC;AAED,EAAA,MAAMgG,QAAQ,GAAGyB,KAAK,CAACzH,GAAG,CAAC;AAE3BwB,EAAAA,eAAS,CAAC,MAAM;IACdwD,wBAAwB,CAAC8C,mBAAS,CAACN,QAAQ,CAAC,IAAIM,mBAAS,CAAC7H,OAAO,CAAC,CAAC;IACnEgG,WAAW,CAACD,QAAQ,CAAC;AACvB,EAAA,CAAC,EAAE,CAACwB,QAAQ,CAAC,CAAC;AAEd,EAAA,MAAMO,qBAAqB,GAAGA,CAACvB,IAAI,EAAEE,QAAQ,KAAK;IAChD,MAAML,WAAW,GAAGX,oBAAc,CAAC;AAAEY,MAAAA,WAAW,EAAE;AAAM,KAAC,CAAC;AAC1DzB,IAAAA,OAAO,CAAC8B,IAAI,CACVC,cAAQ,CACNC,MAAM,CAACC,QAAQ,CAACC,QAAQ,EACxBC,eAAS,CAAC;MAAER,IAAI;AAAEC,MAAAA,SAAS,EAAEC;AAAS,KAAC,EAAEL,WAAW,CACtD,CACF,CAAC;AACDjB,IAAAA,iBAAiB,CAAC4C,WAAK,CAAChI,GAAG,EAAE;MAAEwG,IAAI;AAAEE,MAAAA;AAAS,KAAC,CAAC,CAAC;EACnD,CAAC;AAEDlF,EAAAA,eAAS,CAAC,MAAM;AACduG,IAAAA,qBAAqB,CAACE,8BAAkB,EAAEC,6BAAiB,CAAC;IAC5D5C,iBAAiB,CAACC,iCAAuB,CAAC;AAC5C,EAAA,CAAC,EAAE,CAACtF,OAAO,EAAED,GAAG,CAAC,CAAC;AAElB,EAAA,IAAI0H,SAAS,EAAE;AACb,IAAA,oBACEzF,cAAA,CAAA,KAAA,EAAA;AAAKO,MAAAA,SAAS,EAAC,gDAAgD;AAAAR,MAAAA,QAAA,eAC7DC,cAAA,CAACkG,kBAAO,EAAA,EAAE;AAAC,KACR,CAAC;AAEV,EAAA;EAEA,IAAInC,QAAQ,IAAI,CAAC,IAAI,CAAC8B,mBAAS,CAACN,QAAQ,CAAC,EAAE;AACzC,IAAA,oBACEvF,cAAA,CAAA,KAAA,EAAA;AAAKO,MAAAA,SAAS,EAAC,gDAAgD;MAAAR,QAAA,eAC7DC,cAAA,CAACmG,gBAAK,EAAA;AACJzF,QAAAA,IAAI,EAAE0F,qBAAU;AAChBC,QAAAA,KAAK,EACHtI,GAAG,KAAKrB,GAAG,CAACC,GAAG,GACXc,CAAC,CAAC,kCAAkC,CAAC,GACrCA,CAAC,CAAC,4CAA4C,EAAE;AAAE6I,UAAAA,MAAM,EAAEvI;SAAK;OAEtE;AAAC,KACC,CAAC;AAEV,EAAA;EAEA,oBACEiC,cAAA,CAACuG,YAAY,EAAA;IAACC,aAAa,EAAEzC,QAAQ,GAAGb,cAAc,CAACnF,GAAG,CAAC,EAAE0G,QAAS;IAAA1E,QAAA,eACpEC,cAAA,CAACyG,oBAAS,EAAA;AACRC,MAAAA,aAAa,EAAE,KAAM;AACrBC,MAAAA,OAAO,EAAEzB,iBAAkB;AAC3B0B,MAAAA,WAAW,EAAE1D,cAAc,CAACnF,GAAG,CAAC,EAAEwG,IAAK;MACvCtF,IAAI,EAAE4H,sBAAY,CAAC;AAAE5H,QAAAA,IAAI,EAAEsG,QAAQ;QAAErC,cAAc;AAAEnF,QAAAA;AAAI,OAAC,CAAE;AAC5D+I,MAAAA,mBAAmB,EAAE,KAAM;AAC3BC,MAAAA,aAAa,EAAE,KAAM;MACrBhG,OAAO,EAAE2E,UAAU,IAAIT,2BAA4B;AACnD+B,MAAAA,UAAU,EAAEjD,QAAS;AACrBkD,MAAAA,YAAY,EAAEjF,EAAE,IAAImD,UAAU,CAACnD,EAAE,CAAE;AACnCkF,MAAAA,YAAY,EAAE3C,IAAI,IAChBuB,qBAAqB,CAACvB,IAAI,EAAErB,cAAc,CAACnF,GAAG,CAAC,EAAE0G,QAAQ,CAC1D;AACD0C,MAAAA,MAAM,EAAEC,IAAI,IACVA,IAAI,GACA/D,iBAAiB,CAAC;AAChBgE,QAAAA,MAAM,EAAEC,0BAAgB,CAACF,IAAI,CAACG,KAAK,CAAC;QACpCC,OAAO,EAAEJ,IAAI,CAACK,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG;AAC7C,OAAC,CAAC,GACFpE,iBAAiB,CAACC,iCAAuB;KAEhD;AAAC,GACU,CAAC;AAEnB,CAAC;;AC5FD,MAAMoE,iBAAiB,GAAGA,MAAM;EAC9B,MAAM,CAACC,CAAC,EAAEC,eAAe,CAAC,GAAGC,mBAAa,EAAE;EAC5C,MAAM;AAAEpK,IAAAA;GAAG,GAAGS,2BAAc,EAAE;EAE9B,MAAM,CAACL,eAAe,EAAEC,kBAAkB,CAAC,GAAGO,cAAQ,CAAC,KAAK,CAAC;EAC7D,MAAM;IACJyE,qBAAqB;IACrBE,gBAAgB;IAChBE,cAAc;IACdlF,OAAO;IACP0F,kBAAkB;IAClB3F,GAAG;IACHE,cAAc;IACdgG,UAAU;IACVF,QAAQ;IACRC,WAAW;IACXjB,wBAAwB;IACxBE,mBAAmB;IACnBE,iBAAiB;IACjBU,UAAU;IACVM,eAAe;AACfd,IAAAA;GACD,GAAGV,uBAAuB,EAAE;AAE7B,EAAA,MAAMmF,aAAa,GAAGhF,qBAAqB,IAAI/E,GAAG,KAAK,KAAK;EAE5D,MAAMgK,mBAAmB,GAAG/J,OAAO,IAAI;AACrC4J,IAAAA,eAAe,CAAC,MAAM;MACpB/D,UAAU,CAAC7F,OAAO,CAAC;AACrB,IAAA,CAAC,CAAC;EACJ,CAAC;EAED,oBACE4B,eAAA,CAAAiB,mBAAA,EAAA;IAAAd,QAAA,EAAA,cACEC,cAAA,CAACC,MAAM,EAAA;AACLoG,MAAAA,KAAK,EAAE5I,CAAC,CAAC,6BAA6B,CAAE;MACxCuK,WAAW,EACTlF,qBAAqB,IAAI;AACvBmF,QAAAA,WAAW,EAAExK,CAAC,CAAC,6BAA6B,CAAC;AAC7C8C,QAAAA,SAAS,EAAE;AACb;AACD,KACF,CAAC,EACDuH,aAAa,iBACZ9H,cAAA,CAACkI,eAAI,EAAA;AAAC5G,MAAAA,IAAI,EAAC,IAAI;AAACqC,MAAAA,KAAK,EAAE5F,GAAI;AAACoK,MAAAA,aAAa,EAAEhE,eAAgB;AAAApE,MAAAA,QAAA,eACzDC,cAAA,CAACkI,eAAI,CAAClD,IAAI,EAAA;QAAAjF,QAAA,EACPhD,IAAI,CAAC4E,GAAG,CAACyG,IAAI,iBACZpI,cAAA,CAACkI,eAAI,CAACG,IAAI,EAAA;AAAY1E,UAAAA,KAAK,EAAEyE,IAAK;AAAArI,UAAAA,QAAA,EAC/BtC,CAAC,CAAC,CAAA,qBAAA,EAAwB2K,IAAI,CAAA,CAAE;AAAC,SAAA,EADpBA,IAEL,CACZ;OACQ;AAAC,KACR,CACP,eACDpI,cAAA,CAACsI,SAAS,EAAA;AACR/H,MAAAA,SAAS,EAAC,MAAM;MAChBgI,eAAe,EACb1C,mBAAS,CAAC9B,QAAQ,CAAC,iBACjB/D,cAAA,CAACI,qBAAU,EAAA;AAACG,QAAAA,SAAS,EAAC,oBAAoB;AAACF,QAAAA,OAAO,EAAC,OAAO;QAAAN,QAAA,EACvDhC,GAAG,KAAKrB,GAAG,CAACC,GAAG,GACZc,CAAC,CAAC,+BAA+B,EAAE;AAAE+K,UAAAA,KAAK,EAAEzE;AAAS,SAAC,CAAC,GACvDtG,CAAC,CAAC,yCAAyC,EAAE;AAC3C+K,UAAAA,KAAK,EAAEzE,QAAQ;AACfuC,UAAAA,MAAM,EAAEvI;SACT;AAAC,OACI,CAEf;AACD0K,MAAAA,gBAAgB,EACd3F,qBAAqB,iBACnB9C,cAAA,CAACsI,SAAS,CAACI,UAAU,EAAA;AACnBC,QAAAA,kBAAkB,EAAE;UAClB1E,UAAU;AACV2E,UAAAA,YAAY,EAAEtL,2BAA2B;UACzCuL,QAAQ,EAAExD,wBAAU,CAACC;SACrB;AACFwD,QAAAA,mBAAmB,EAAE;AACnBlI,UAAAA,OAAO,EAAEA,MAAM9C,kBAAkB,CAAC,IAAI;SACtC;AACFiL,QAAAA,WAAW,EAAE;AACXpC,UAAAA,OAAO,EAAEpJ,cAAc;AACvBuC,UAAAA,MAAM,EAAEkD,gBAAgB;AACxBgG,UAAAA,OAAO,EAAEtF,kBAAkB;AAC3BuF,UAAAA,SAAS,EAAEhG,mBAAmB;AAC9BiG,UAAAA,QAAQ,EAAEnB;AACZ;OACD;AAEJ,KACF,CAAC,eACF/H,cAAA,CAACmJ,MAAU,EAAA;AACTxC,MAAAA,OAAO,EAAEpJ,cAAe;AACxByL,MAAAA,OAAO,EAAEtF,kBAAmB;AAC5B0F,MAAAA,aAAa,EAAEnG,mBAAoB;AACnCiG,MAAAA,QAAQ,EAAEnB;AAAoB,KAC/B,CAAC,eACF/H,cAAA,CAACgF,IAAI,EAAA;MAEDf,UAAU;MACVjG,OAAO;MACPkF,cAAc;MACdc,WAAW;MACXjB,wBAAwB;MACxBI,iBAAiB;MACjBE,iBAAiB;MACjBpF,cAAc;AACdF,MAAAA;AAAG,KAEN,CAAC,eACFiC,cAAA,CAACpC,WAAW,EAAA;MAERI,OAAO;MACPF,kBAAkB;MAClBD,eAAe;MACfI,cAAc;AACdF,MAAAA;AAAG,KAEN,CAAC;AAAA,GACF,CAAC;AAEP,CAAC;AAED,YAAesL,oBAAS,CACtBC,4BAAc,CAAC5B,iBAAiB,CAAC,EACjCjK,SAAC,CAAC,6BAA6B,CACjC,CAAC;;;;"}
@@ -118,7 +118,8 @@ const getColumnData = handleDeleteClick => [{
118
118
  "data-testid": "upi-more-dropdown"
119
119
  },
120
120
  dropdownProps: {
121
- strategy: "fixed"
121
+ strategy: "fixed",
122
+ className: "w-max"
122
123
  },
123
124
  menuItems: [{
124
125
  key: "delete-meeting",