braid-ui 1.0.62 → 1.0.63
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.
- package/dist/css/braid-ui.css +43 -0
- package/dist/css/braid-ui.min.css +1 -1
- package/dist/index.cjs +589 -344
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.cts +68 -24
- package/dist/index.d.ts +68 -24
- package/dist/index.js +589 -346
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -4,7 +4,7 @@ import { cva } from 'class-variance-authority';
|
|
|
4
4
|
import { clsx } from 'clsx';
|
|
5
5
|
import { twMerge } from 'tailwind-merge';
|
|
6
6
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
7
|
-
import { ChevronDown, ChevronUp, Check, X, PanelLeft, Edit, Home, Globe, CreditCard, Building, MoreVertical, Minus, TrendingDown, TrendingUp, ChevronRight, Eye, Trash2, Plus, MessageSquare, Upload, FileText, Download, Copy, LayoutDashboard, Bell, Briefcase, FileCheck, Receipt, ArrowLeftRight, Users, Building2, Shield, AlertCircle, RefreshCw, Landmark, Search, Repeat, Zap, Box, Settings, BarChart3, Key, ChevronLeft, AlertTriangle, Clock, XCircle, CheckCircle, Ban, Circle, Wallet, Filter, User, Loader2, CheckCircle2, ArrowDownRight, ArrowUpRight, ArrowLeft, StickyNote, FileUp, RotateCcw, Send, PlayCircle, UserPlus, ChevronsUpDown, ArrowRightLeft, UserCheck, CalendarIcon, Package, File, FileJson, DollarSign } from 'lucide-react';
|
|
7
|
+
import { ChevronDown, ChevronUp, Check, X, PanelLeft, Edit, Home, Globe, CreditCard, Building, MoreVertical, Minus, TrendingDown, TrendingUp, ChevronRight, Eye, Trash2, Plus, MessageSquare, Upload, FileText, Download, Copy, LayoutDashboard, Bell, Briefcase, FileCheck, Receipt, ArrowLeftRight, Users, Building2, Shield, AlertCircle, RefreshCw, Landmark, Search, Repeat, Zap, Box, Settings, BarChart3, Key, ChevronLeft, AlertTriangle, Clock, XCircle, CheckCircle, Ban, Circle, Wallet, Filter, User, Loader2, CheckCircle2, ArrowDownRight, ArrowUpRight, ArrowLeft, StickyNote, FileUp, RotateCcw, Send, PlayCircle, UserPlus, ChevronsUpDown, ArrowRightLeft, UserCheck, CalendarIcon, CircleDollarSign, PiggyBank, Package, File, FileJson, DollarSign } from 'lucide-react';
|
|
8
8
|
import { createPortal } from 'react-dom';
|
|
9
9
|
import { Slot } from '@radix-ui/react-slot';
|
|
10
10
|
import * as SelectPrimitive from '@radix-ui/react-select';
|
|
@@ -33,6 +33,14 @@ import * as ToastPrimitives from '@radix-ui/react-toast';
|
|
|
33
33
|
function cn(...inputs) {
|
|
34
34
|
return twMerge(clsx(inputs));
|
|
35
35
|
}
|
|
36
|
+
function formatCurrency(value, currency = "USD") {
|
|
37
|
+
return new Intl.NumberFormat("en-US", {
|
|
38
|
+
style: "currency",
|
|
39
|
+
currency,
|
|
40
|
+
minimumFractionDigits: 2,
|
|
41
|
+
maximumFractionDigits: 2
|
|
42
|
+
}).format(value);
|
|
43
|
+
}
|
|
36
44
|
var cardVariants = cva(
|
|
37
45
|
"rounded-lg border bg-card text-card-foreground transition-all duration-200",
|
|
38
46
|
{
|
|
@@ -278,7 +286,12 @@ var badgeVariants = cva(
|
|
|
278
286
|
"alert-ofac": "border-red-200 bg-red-50 text-red-700 hover:bg-red-100 dark:border-red-800 dark:bg-red-950 dark:text-red-300 font-medium",
|
|
279
287
|
"alert-dual": "border-emerald-200 bg-emerald-50 text-emerald-700 hover:bg-emerald-100 dark:border-emerald-800 dark:bg-emerald-950 dark:text-emerald-300 font-medium",
|
|
280
288
|
"alert-monitoring": "border-amber-200 bg-amber-50 text-amber-700 hover:bg-amber-100 dark:border-amber-800 dark:bg-amber-950 dark:text-amber-300 font-medium",
|
|
281
|
-
"alert-error": "border-rose-200 bg-rose-50 text-rose-700 hover:bg-rose-100 dark:border-rose-800 dark:bg-rose-950 dark:text-rose-300 font-medium"
|
|
289
|
+
"alert-error": "border-rose-200 bg-rose-50 text-rose-700 hover:bg-rose-100 dark:border-rose-800 dark:bg-rose-950 dark:text-rose-300 font-medium",
|
|
290
|
+
// Account type variants
|
|
291
|
+
checking: "border-blue-200 bg-blue-50 text-blue-700 hover:bg-blue-100 dark:border-blue-800 dark:bg-blue-950 dark:text-blue-300",
|
|
292
|
+
savings: "border-emerald-200 bg-emerald-50 text-emerald-700 hover:bg-emerald-100 dark:border-emerald-800 dark:bg-emerald-950 dark:text-emerald-300",
|
|
293
|
+
"zero-balance": "border-slate-200 bg-slate-50 text-slate-700 hover:bg-slate-100 dark:border-slate-700 dark:bg-slate-900 dark:text-slate-300",
|
|
294
|
+
funding: "border-violet-200 bg-violet-50 text-violet-700 hover:bg-violet-100 dark:border-violet-800 dark:bg-violet-950 dark:text-violet-300"
|
|
282
295
|
}
|
|
283
296
|
},
|
|
284
297
|
defaultVariants: {
|
|
@@ -8028,7 +8041,7 @@ var columns = [
|
|
|
8028
8041
|
title: "Amount",
|
|
8029
8042
|
sortable: true,
|
|
8030
8043
|
align: "right",
|
|
8031
|
-
render: (value) =>
|
|
8044
|
+
render: (value) => formatCurrency(value)
|
|
8032
8045
|
},
|
|
8033
8046
|
{
|
|
8034
8047
|
key: "count",
|
|
@@ -8225,7 +8238,7 @@ var StatementView = ({
|
|
|
8225
8238
|
] });
|
|
8226
8239
|
};
|
|
8227
8240
|
var ACHDetailsSection = ({ data }) => {
|
|
8228
|
-
const
|
|
8241
|
+
const formatCurrency5 = (value) => {
|
|
8229
8242
|
return new Intl.NumberFormat("en-US", {
|
|
8230
8243
|
style: "currency",
|
|
8231
8244
|
currency: "USD",
|
|
@@ -8261,7 +8274,7 @@ var ACHDetailsSection = ({ data }) => {
|
|
|
8261
8274
|
layout: "horizontal"
|
|
8262
8275
|
}
|
|
8263
8276
|
),
|
|
8264
|
-
/* @__PURE__ */ jsx(InfoField, { label: "Amount", value:
|
|
8277
|
+
/* @__PURE__ */ jsx(InfoField, { label: "Amount", value: formatCurrency5(data.amount), layout: "horizontal" }),
|
|
8265
8278
|
/* @__PURE__ */ jsx(InfoField, { label: "SEC Code", value: data.secCode, layout: "horizontal" }),
|
|
8266
8279
|
/* @__PURE__ */ jsx(InfoField, { label: "Company Entry Description", value: data.companyEntryDescription, layout: "horizontal" }),
|
|
8267
8280
|
data.companyDiscretionaryData && /* @__PURE__ */ jsx(InfoField, { label: "Company Discretionary Data", value: data.companyDiscretionaryData, layout: "horizontal" }),
|
|
@@ -8344,7 +8357,7 @@ var WireDetailsSection = ({ data }) => {
|
|
|
8344
8357
|
) })
|
|
8345
8358
|
] });
|
|
8346
8359
|
};
|
|
8347
|
-
var
|
|
8360
|
+
var formatCurrency2 = (value) => {
|
|
8348
8361
|
const numValue = typeof value === "string" ? parseFloat(value) : value;
|
|
8349
8362
|
if (isNaN(numValue)) return "";
|
|
8350
8363
|
return new Intl.NumberFormat("en-US", {
|
|
@@ -8355,7 +8368,7 @@ var formatCurrency = (value) => {
|
|
|
8355
8368
|
};
|
|
8356
8369
|
var CurrencyInput = ({ value, onChange, ...props }) => {
|
|
8357
8370
|
const [isFocused, setIsFocused] = React15.useState(false);
|
|
8358
|
-
const displayValue = value ? isFocused ? value :
|
|
8371
|
+
const displayValue = value ? isFocused ? value : formatCurrency2(value) : "";
|
|
8359
8372
|
const handleChange = (e) => {
|
|
8360
8373
|
const rawValue = e.target.value.replace(/[^0-9.]/g, "");
|
|
8361
8374
|
const parts = rawValue.split(".");
|
|
@@ -8394,7 +8407,7 @@ var Checkbox = React15.forwardRef(({ className, ...props }, ref) => /* @__PURE__
|
|
|
8394
8407
|
}
|
|
8395
8408
|
));
|
|
8396
8409
|
Checkbox.displayName = CheckboxPrimitive.Root.displayName;
|
|
8397
|
-
var
|
|
8410
|
+
var formatCurrency3 = (value) => {
|
|
8398
8411
|
const numValue = typeof value === "string" ? parseFloat(value) : value;
|
|
8399
8412
|
if (isNaN(numValue)) return "-";
|
|
8400
8413
|
return new Intl.NumberFormat("en-US", {
|
|
@@ -8506,7 +8519,7 @@ var NewTransactionView = ({
|
|
|
8506
8519
|
] : [],
|
|
8507
8520
|
...isTransfer ? [{ label: "Receiver Account", value: receiverAccountNumber || "-" }] : [],
|
|
8508
8521
|
...requiresCounterparty ? [{ label: "Counterparty", value: counterpartyName || "-" }] : [],
|
|
8509
|
-
{ label: "Amount", value: amount ?
|
|
8522
|
+
{ label: "Amount", value: amount ? formatCurrency3(amount) : "-" },
|
|
8510
8523
|
{ label: "Description", value: form.watch("description") || "N/A" }
|
|
8511
8524
|
];
|
|
8512
8525
|
const reviewData = [
|
|
@@ -8872,7 +8885,7 @@ var NewTransactionView = ({
|
|
|
8872
8885
|
] }),
|
|
8873
8886
|
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
8874
8887
|
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Amount:" }),
|
|
8875
|
-
/* @__PURE__ */ jsx("span", { className: "font-medium", children:
|
|
8888
|
+
/* @__PURE__ */ jsx("span", { className: "font-medium", children: formatCurrency3(amount) })
|
|
8876
8889
|
] }),
|
|
8877
8890
|
/* @__PURE__ */ jsxs("div", { className: "flex justify-between text-sm", children: [
|
|
8878
8891
|
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "Description:" }),
|
|
@@ -8903,6 +8916,115 @@ var NewTransactionView = ({
|
|
|
8903
8916
|
] }) })
|
|
8904
8917
|
] });
|
|
8905
8918
|
};
|
|
8919
|
+
var EnhancedMultiSelect = ({
|
|
8920
|
+
label,
|
|
8921
|
+
value = [],
|
|
8922
|
+
onValueChange,
|
|
8923
|
+
options,
|
|
8924
|
+
placeholder = "Select options",
|
|
8925
|
+
className,
|
|
8926
|
+
disabled = false
|
|
8927
|
+
}) => {
|
|
8928
|
+
const [open, setOpen] = React15.useState(false);
|
|
8929
|
+
const handleSelect = (optionValue) => {
|
|
8930
|
+
if (value.includes(optionValue)) {
|
|
8931
|
+
onValueChange(value.filter((v) => v !== optionValue));
|
|
8932
|
+
} else {
|
|
8933
|
+
onValueChange([...value, optionValue]);
|
|
8934
|
+
}
|
|
8935
|
+
};
|
|
8936
|
+
const handleRemove = (optionValue, e) => {
|
|
8937
|
+
e.stopPropagation();
|
|
8938
|
+
onValueChange(value.filter((v) => v !== optionValue));
|
|
8939
|
+
};
|
|
8940
|
+
const selectedLabels = value.map((v) => options.find((opt) => opt.value === v)?.label).filter(Boolean);
|
|
8941
|
+
return /* @__PURE__ */ jsxs("div", { className: cn("space-y-2", className), children: [
|
|
8942
|
+
label && /* @__PURE__ */ jsx("label", { className: "text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70", children: label }),
|
|
8943
|
+
/* @__PURE__ */ jsxs(Popover, { open, onOpenChange: setOpen, children: [
|
|
8944
|
+
/* @__PURE__ */ jsx(PopoverTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(
|
|
8945
|
+
Button,
|
|
8946
|
+
{
|
|
8947
|
+
variant: "outline",
|
|
8948
|
+
role: "combobox",
|
|
8949
|
+
"aria-expanded": open,
|
|
8950
|
+
disabled,
|
|
8951
|
+
className: "w-full justify-between font-normal h-auto min-h-10",
|
|
8952
|
+
children: [
|
|
8953
|
+
/* @__PURE__ */ jsx("div", { className: "flex flex-wrap gap-1 flex-1 text-left", children: selectedLabels.length > 0 ? selectedLabels.map((label2, index) => /* @__PURE__ */ jsxs(
|
|
8954
|
+
Badge,
|
|
8955
|
+
{
|
|
8956
|
+
variant: "secondary",
|
|
8957
|
+
className: "text-xs",
|
|
8958
|
+
children: [
|
|
8959
|
+
label2,
|
|
8960
|
+
/* @__PURE__ */ jsx(
|
|
8961
|
+
X,
|
|
8962
|
+
{
|
|
8963
|
+
className: "ml-1 h-3 w-3 cursor-pointer",
|
|
8964
|
+
onClick: (e) => handleRemove(value[index], e)
|
|
8965
|
+
}
|
|
8966
|
+
)
|
|
8967
|
+
]
|
|
8968
|
+
},
|
|
8969
|
+
value[index]
|
|
8970
|
+
)) : /* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: placeholder }) }),
|
|
8971
|
+
/* @__PURE__ */ jsx(ChevronDown, { className: "ml-2 h-4 w-4 shrink-0 opacity-50" })
|
|
8972
|
+
]
|
|
8973
|
+
}
|
|
8974
|
+
) }),
|
|
8975
|
+
/* @__PURE__ */ jsx(PopoverContent, { className: "w-full min-w-[200px] p-0", align: "start", children: /* @__PURE__ */ jsx("div", { className: "max-h-60 overflow-auto p-1", children: options.map((option) => /* @__PURE__ */ jsxs(
|
|
8976
|
+
"div",
|
|
8977
|
+
{
|
|
8978
|
+
className: cn(
|
|
8979
|
+
"flex items-center gap-2 rounded-sm px-2 py-1.5 text-sm cursor-pointer hover:bg-accent hover:text-accent-foreground",
|
|
8980
|
+
value.includes(option.value) && "bg-accent"
|
|
8981
|
+
),
|
|
8982
|
+
onClick: () => handleSelect(option.value),
|
|
8983
|
+
children: [
|
|
8984
|
+
/* @__PURE__ */ jsx(
|
|
8985
|
+
"div",
|
|
8986
|
+
{
|
|
8987
|
+
className: cn(
|
|
8988
|
+
"flex h-4 w-4 items-center justify-center rounded-sm border border-primary",
|
|
8989
|
+
value.includes(option.value) ? "bg-primary text-primary-foreground" : "opacity-50"
|
|
8990
|
+
),
|
|
8991
|
+
children: value.includes(option.value) && /* @__PURE__ */ jsx(Check, { className: "h-3 w-3" })
|
|
8992
|
+
}
|
|
8993
|
+
),
|
|
8994
|
+
/* @__PURE__ */ jsx("span", { children: option.label })
|
|
8995
|
+
]
|
|
8996
|
+
},
|
|
8997
|
+
option.value
|
|
8998
|
+
)) }) })
|
|
8999
|
+
] })
|
|
9000
|
+
] });
|
|
9001
|
+
};
|
|
9002
|
+
var defaultFilters = {
|
|
9003
|
+
originalFileName: "",
|
|
9004
|
+
requesterIpAddress: "",
|
|
9005
|
+
requesterUsername: "",
|
|
9006
|
+
showAchNoc: false,
|
|
9007
|
+
excludeWire: false,
|
|
9008
|
+
excludeAch: false,
|
|
9009
|
+
wireFileHandle: "",
|
|
9010
|
+
direction: "",
|
|
9011
|
+
counterpartyId: "",
|
|
9012
|
+
customerId: "",
|
|
9013
|
+
settlementFileName: "",
|
|
9014
|
+
isInbound: false,
|
|
9015
|
+
accountNumber: "",
|
|
9016
|
+
processingStatus: [],
|
|
9017
|
+
beginDate: void 0,
|
|
9018
|
+
endDate: void 0,
|
|
9019
|
+
postDateStart: void 0,
|
|
9020
|
+
postDateEnd: void 0,
|
|
9021
|
+
maxAmount: "",
|
|
9022
|
+
minAmount: "",
|
|
9023
|
+
productId: "",
|
|
9024
|
+
paymentId: "",
|
|
9025
|
+
transactionStatus: [],
|
|
9026
|
+
transactionType: []
|
|
9027
|
+
};
|
|
8906
9028
|
var TransactionHistoryFiltersSheet = ({
|
|
8907
9029
|
filters,
|
|
8908
9030
|
onFilterChange,
|
|
@@ -8917,6 +9039,10 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
8917
9039
|
const handleLocalFilterChange = (field, value) => {
|
|
8918
9040
|
setLocalFilters((prev) => ({ ...prev, [field]: value }));
|
|
8919
9041
|
};
|
|
9042
|
+
const handleDateChange = (field, date) => {
|
|
9043
|
+
const isoString = date ? date.toISOString() : void 0;
|
|
9044
|
+
handleLocalFilterChange(field, isoString);
|
|
9045
|
+
};
|
|
8920
9046
|
const handleApplyFilters = () => {
|
|
8921
9047
|
Object.entries(localFilters).forEach(([key, value]) => {
|
|
8922
9048
|
onFilterChange(key, value);
|
|
@@ -8925,32 +9051,15 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
8925
9051
|
setOpen(false);
|
|
8926
9052
|
};
|
|
8927
9053
|
const handleResetFilters = () => {
|
|
8928
|
-
|
|
8929
|
-
accountNumber: "",
|
|
8930
|
-
product: "",
|
|
8931
|
-
customerId: "",
|
|
8932
|
-
counterpartyId: "",
|
|
8933
|
-
settlementFileName: "",
|
|
8934
|
-
originalFileName: "",
|
|
8935
|
-
requesterIpAddress: "",
|
|
8936
|
-
requesterUsername: "",
|
|
8937
|
-
wireFileHandle: "",
|
|
8938
|
-
paymentId: "",
|
|
8939
|
-
transactionType: "",
|
|
8940
|
-
transactionStatus: "",
|
|
8941
|
-
processingStatus: "",
|
|
8942
|
-
direction: "",
|
|
8943
|
-
minAmount: "",
|
|
8944
|
-
maxAmount: "",
|
|
8945
|
-
creationDateStart: void 0,
|
|
8946
|
-
creationDateEnd: void 0,
|
|
8947
|
-
postDateStart: void 0,
|
|
8948
|
-
postDateEnd: void 0
|
|
8949
|
-
};
|
|
8950
|
-
setLocalFilters(resetFilters);
|
|
9054
|
+
setLocalFilters(defaultFilters);
|
|
8951
9055
|
onResetFilters();
|
|
8952
9056
|
setOpen(false);
|
|
8953
9057
|
};
|
|
9058
|
+
const parseDate = (dateStr) => {
|
|
9059
|
+
if (!dateStr) return void 0;
|
|
9060
|
+
const date = new Date(dateStr);
|
|
9061
|
+
return isNaN(date.getTime()) ? void 0 : date;
|
|
9062
|
+
};
|
|
8954
9063
|
return /* @__PURE__ */ jsxs(Sheet, { open, onOpenChange: setOpen, children: [
|
|
8955
9064
|
/* @__PURE__ */ jsx(SheetTrigger, { asChild: true, children: /* @__PURE__ */ jsxs(Button, { variant: "outline", className: "gap-2", children: [
|
|
8956
9065
|
/* @__PURE__ */ jsx(Filter, { className: "h-4 w-4" }),
|
|
@@ -8959,12 +9068,61 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
8959
9068
|
/* @__PURE__ */ jsxs(SheetContent, { side: "right", className: "w-full sm:max-w-xl overflow-y-auto", children: [
|
|
8960
9069
|
/* @__PURE__ */ jsx(SheetHeader, { children: /* @__PURE__ */ jsx(SheetTitle, { children: "Transaction Filters" }) }),
|
|
8961
9070
|
/* @__PURE__ */ jsxs("div", { className: "space-y-6 py-6", children: [
|
|
9071
|
+
/* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
|
|
9072
|
+
/* @__PURE__ */ jsx("h3", { className: "text-sm font-medium text-muted-foreground", children: "Options" }),
|
|
9073
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
9074
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
9075
|
+
/* @__PURE__ */ jsx(
|
|
9076
|
+
Checkbox,
|
|
9077
|
+
{
|
|
9078
|
+
id: "showAchNoc",
|
|
9079
|
+
checked: localFilters.showAchNoc || false,
|
|
9080
|
+
onCheckedChange: (checked) => handleLocalFilterChange("showAchNoc", checked === true)
|
|
9081
|
+
}
|
|
9082
|
+
),
|
|
9083
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "showAchNoc", className: "text-sm font-normal", children: "Show ACH NOC" })
|
|
9084
|
+
] }),
|
|
9085
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
9086
|
+
/* @__PURE__ */ jsx(
|
|
9087
|
+
Checkbox,
|
|
9088
|
+
{
|
|
9089
|
+
id: "isInbound",
|
|
9090
|
+
checked: localFilters.isInbound || false,
|
|
9091
|
+
onCheckedChange: (checked) => handleLocalFilterChange("isInbound", checked === true)
|
|
9092
|
+
}
|
|
9093
|
+
),
|
|
9094
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "isInbound", className: "text-sm font-normal", children: "Is Inbound" })
|
|
9095
|
+
] }),
|
|
9096
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
9097
|
+
/* @__PURE__ */ jsx(
|
|
9098
|
+
Checkbox,
|
|
9099
|
+
{
|
|
9100
|
+
id: "excludeWire",
|
|
9101
|
+
checked: localFilters.excludeWire || false,
|
|
9102
|
+
onCheckedChange: (checked) => handleLocalFilterChange("excludeWire", checked === true)
|
|
9103
|
+
}
|
|
9104
|
+
),
|
|
9105
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "excludeWire", className: "text-sm font-normal", children: "Exclude Wire" })
|
|
9106
|
+
] }),
|
|
9107
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center space-x-2", children: [
|
|
9108
|
+
/* @__PURE__ */ jsx(
|
|
9109
|
+
Checkbox,
|
|
9110
|
+
{
|
|
9111
|
+
id: "excludeAch",
|
|
9112
|
+
checked: localFilters.excludeAch || false,
|
|
9113
|
+
onCheckedChange: (checked) => handleLocalFilterChange("excludeAch", checked === true)
|
|
9114
|
+
}
|
|
9115
|
+
),
|
|
9116
|
+
/* @__PURE__ */ jsx(Label, { htmlFor: "excludeAch", className: "text-sm font-normal", children: "Exclude ACH" })
|
|
9117
|
+
] })
|
|
9118
|
+
] })
|
|
9119
|
+
] }),
|
|
8962
9120
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
8963
9121
|
/* @__PURE__ */ jsx(
|
|
8964
9122
|
EnhancedInput,
|
|
8965
9123
|
{
|
|
8966
9124
|
label: "Account Number",
|
|
8967
|
-
value: localFilters.accountNumber,
|
|
9125
|
+
value: localFilters.accountNumber || "",
|
|
8968
9126
|
onChange: (e) => handleLocalFilterChange("accountNumber", e.target.value),
|
|
8969
9127
|
placeholder: "Enter account number"
|
|
8970
9128
|
}
|
|
@@ -8972,9 +9130,9 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
8972
9130
|
/* @__PURE__ */ jsx(
|
|
8973
9131
|
EnhancedSelect,
|
|
8974
9132
|
{
|
|
8975
|
-
label: "Product",
|
|
8976
|
-
value: localFilters.
|
|
8977
|
-
onValueChange: (value) => handleLocalFilterChange("
|
|
9133
|
+
label: "Product ID",
|
|
9134
|
+
value: localFilters.productId || "",
|
|
9135
|
+
onValueChange: (value) => handleLocalFilterChange("productId", value),
|
|
8978
9136
|
placeholder: "Select product",
|
|
8979
9137
|
options: [
|
|
8980
9138
|
{ value: "wire", label: "Wire" },
|
|
@@ -8989,7 +9147,7 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
8989
9147
|
EnhancedInput,
|
|
8990
9148
|
{
|
|
8991
9149
|
label: "Customer ID",
|
|
8992
|
-
value: localFilters.customerId,
|
|
9150
|
+
value: localFilters.customerId || "",
|
|
8993
9151
|
onChange: (e) => handleLocalFilterChange("customerId", e.target.value),
|
|
8994
9152
|
placeholder: "Enter customer ID"
|
|
8995
9153
|
}
|
|
@@ -8998,7 +9156,7 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
8998
9156
|
EnhancedInput,
|
|
8999
9157
|
{
|
|
9000
9158
|
label: "Counterparty ID",
|
|
9001
|
-
value: localFilters.counterpartyId,
|
|
9159
|
+
value: localFilters.counterpartyId || "",
|
|
9002
9160
|
onChange: (e) => handleLocalFilterChange("counterpartyId", e.target.value),
|
|
9003
9161
|
placeholder: "Enter counterparty ID"
|
|
9004
9162
|
}
|
|
@@ -9008,7 +9166,7 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9008
9166
|
EnhancedInput,
|
|
9009
9167
|
{
|
|
9010
9168
|
label: "Settlement File Name",
|
|
9011
|
-
value: localFilters.settlementFileName,
|
|
9169
|
+
value: localFilters.settlementFileName || "",
|
|
9012
9170
|
onChange: (e) => handleLocalFilterChange("settlementFileName", e.target.value),
|
|
9013
9171
|
placeholder: "Enter settlement file name"
|
|
9014
9172
|
}
|
|
@@ -9017,7 +9175,7 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9017
9175
|
EnhancedInput,
|
|
9018
9176
|
{
|
|
9019
9177
|
label: "Original File Name",
|
|
9020
|
-
value: localFilters.originalFileName,
|
|
9178
|
+
value: localFilters.originalFileName || "",
|
|
9021
9179
|
onChange: (e) => handleLocalFilterChange("originalFileName", e.target.value),
|
|
9022
9180
|
placeholder: "Enter original file name"
|
|
9023
9181
|
}
|
|
@@ -9026,7 +9184,7 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9026
9184
|
EnhancedInput,
|
|
9027
9185
|
{
|
|
9028
9186
|
label: "Requester IP Address",
|
|
9029
|
-
value: localFilters.requesterIpAddress,
|
|
9187
|
+
value: localFilters.requesterIpAddress || "",
|
|
9030
9188
|
onChange: (e) => handleLocalFilterChange("requesterIpAddress", e.target.value),
|
|
9031
9189
|
placeholder: "Enter IP address"
|
|
9032
9190
|
}
|
|
@@ -9035,7 +9193,7 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9035
9193
|
EnhancedInput,
|
|
9036
9194
|
{
|
|
9037
9195
|
label: "Requester Username",
|
|
9038
|
-
value: localFilters.requesterUsername,
|
|
9196
|
+
value: localFilters.requesterUsername || "",
|
|
9039
9197
|
onChange: (e) => handleLocalFilterChange("requesterUsername", e.target.value),
|
|
9040
9198
|
placeholder: "Enter username"
|
|
9041
9199
|
}
|
|
@@ -9044,7 +9202,7 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9044
9202
|
EnhancedInput,
|
|
9045
9203
|
{
|
|
9046
9204
|
label: "Wire File Handle",
|
|
9047
|
-
value: localFilters.wireFileHandle,
|
|
9205
|
+
value: localFilters.wireFileHandle || "",
|
|
9048
9206
|
onChange: (e) => handleLocalFilterChange("wireFileHandle", e.target.value),
|
|
9049
9207
|
placeholder: "Enter wire file handle"
|
|
9050
9208
|
}
|
|
@@ -9053,18 +9211,18 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9053
9211
|
EnhancedInput,
|
|
9054
9212
|
{
|
|
9055
9213
|
label: "Payment ID",
|
|
9056
|
-
value: localFilters.paymentId,
|
|
9214
|
+
value: localFilters.paymentId || "",
|
|
9057
9215
|
onChange: (e) => handleLocalFilterChange("paymentId", e.target.value),
|
|
9058
9216
|
placeholder: "Enter payment ID"
|
|
9059
9217
|
}
|
|
9060
9218
|
),
|
|
9061
9219
|
/* @__PURE__ */ jsx(
|
|
9062
|
-
|
|
9220
|
+
EnhancedMultiSelect,
|
|
9063
9221
|
{
|
|
9064
9222
|
label: "Transaction Type",
|
|
9065
|
-
value: localFilters.transactionType,
|
|
9223
|
+
value: localFilters.transactionType || [],
|
|
9066
9224
|
onValueChange: (value) => handleLocalFilterChange("transactionType", value),
|
|
9067
|
-
placeholder: "Select transaction
|
|
9225
|
+
placeholder: "Select transaction types",
|
|
9068
9226
|
options: [
|
|
9069
9227
|
{ value: "ach_credit", label: "ACH Credit" },
|
|
9070
9228
|
{ value: "ach_debit", label: "ACH Debit" },
|
|
@@ -9074,12 +9232,12 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9074
9232
|
}
|
|
9075
9233
|
),
|
|
9076
9234
|
/* @__PURE__ */ jsx(
|
|
9077
|
-
|
|
9235
|
+
EnhancedMultiSelect,
|
|
9078
9236
|
{
|
|
9079
9237
|
label: "Transaction Status",
|
|
9080
|
-
value: localFilters.transactionStatus,
|
|
9238
|
+
value: localFilters.transactionStatus || [],
|
|
9081
9239
|
onValueChange: (value) => handleLocalFilterChange("transactionStatus", value),
|
|
9082
|
-
placeholder: "Select transaction
|
|
9240
|
+
placeholder: "Select transaction statuses",
|
|
9083
9241
|
options: [
|
|
9084
9242
|
{ value: "PENDING", label: "Pending" },
|
|
9085
9243
|
{ value: "POSTED", label: "Posted" },
|
|
@@ -9089,12 +9247,12 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9089
9247
|
}
|
|
9090
9248
|
),
|
|
9091
9249
|
/* @__PURE__ */ jsx(
|
|
9092
|
-
|
|
9250
|
+
EnhancedMultiSelect,
|
|
9093
9251
|
{
|
|
9094
9252
|
label: "Processing Status",
|
|
9095
|
-
value: localFilters.processingStatus,
|
|
9253
|
+
value: localFilters.processingStatus || [],
|
|
9096
9254
|
onValueChange: (value) => handleLocalFilterChange("processingStatus", value),
|
|
9097
|
-
placeholder: "Select processing
|
|
9255
|
+
placeholder: "Select processing statuses",
|
|
9098
9256
|
options: [
|
|
9099
9257
|
{ value: "processing", label: "Processing" },
|
|
9100
9258
|
{ value: "completed", label: "Completed" },
|
|
@@ -9106,7 +9264,7 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9106
9264
|
EnhancedSelect,
|
|
9107
9265
|
{
|
|
9108
9266
|
label: "Direction",
|
|
9109
|
-
value: localFilters.direction,
|
|
9267
|
+
value: localFilters.direction || "",
|
|
9110
9268
|
onValueChange: (value) => handleLocalFilterChange("direction", value),
|
|
9111
9269
|
placeholder: "Select direction",
|
|
9112
9270
|
options: [
|
|
@@ -9120,7 +9278,7 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9120
9278
|
CurrencyInput,
|
|
9121
9279
|
{
|
|
9122
9280
|
label: "Min Amount",
|
|
9123
|
-
value: localFilters.minAmount,
|
|
9281
|
+
value: localFilters.minAmount || "",
|
|
9124
9282
|
onChange: (value) => handleLocalFilterChange("minAmount", value)
|
|
9125
9283
|
}
|
|
9126
9284
|
),
|
|
@@ -9128,19 +9286,19 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9128
9286
|
CurrencyInput,
|
|
9129
9287
|
{
|
|
9130
9288
|
label: "Max Amount",
|
|
9131
|
-
value: localFilters.maxAmount,
|
|
9289
|
+
value: localFilters.maxAmount || "",
|
|
9132
9290
|
onChange: (value) => handleLocalFilterChange("maxAmount", value)
|
|
9133
9291
|
}
|
|
9134
9292
|
)
|
|
9135
9293
|
] }),
|
|
9136
9294
|
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 gap-4", children: [
|
|
9137
9295
|
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
9138
|
-
/* @__PURE__ */ jsx("label", { className: "text-sm font-medium", children: "
|
|
9296
|
+
/* @__PURE__ */ jsx("label", { className: "text-sm font-medium", children: "Begin Date" }),
|
|
9139
9297
|
/* @__PURE__ */ jsx(
|
|
9140
9298
|
DatePicker,
|
|
9141
9299
|
{
|
|
9142
|
-
date: localFilters.
|
|
9143
|
-
onDateChange: (date) =>
|
|
9300
|
+
date: parseDate(localFilters.beginDate),
|
|
9301
|
+
onDateChange: (date) => handleDateChange("beginDate", date),
|
|
9144
9302
|
placeholder: "MM/DD/YYYY",
|
|
9145
9303
|
buttonClassName: "w-full",
|
|
9146
9304
|
className: "bg-background z-50"
|
|
@@ -9148,12 +9306,12 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9148
9306
|
)
|
|
9149
9307
|
] }),
|
|
9150
9308
|
/* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
|
|
9151
|
-
/* @__PURE__ */ jsx("label", { className: "text-sm font-medium", children: "
|
|
9309
|
+
/* @__PURE__ */ jsx("label", { className: "text-sm font-medium", children: "End Date" }),
|
|
9152
9310
|
/* @__PURE__ */ jsx(
|
|
9153
9311
|
DatePicker,
|
|
9154
9312
|
{
|
|
9155
|
-
date: localFilters.
|
|
9156
|
-
onDateChange: (date) =>
|
|
9313
|
+
date: parseDate(localFilters.endDate),
|
|
9314
|
+
onDateChange: (date) => handleDateChange("endDate", date),
|
|
9157
9315
|
placeholder: "MM/DD/YYYY",
|
|
9158
9316
|
buttonClassName: "w-full",
|
|
9159
9317
|
className: "bg-background z-50"
|
|
@@ -9167,8 +9325,8 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9167
9325
|
/* @__PURE__ */ jsx(
|
|
9168
9326
|
DatePicker,
|
|
9169
9327
|
{
|
|
9170
|
-
date: localFilters.postDateStart,
|
|
9171
|
-
onDateChange: (date) =>
|
|
9328
|
+
date: parseDate(localFilters.postDateStart),
|
|
9329
|
+
onDateChange: (date) => handleDateChange("postDateStart", date),
|
|
9172
9330
|
placeholder: "MM/DD/YYYY",
|
|
9173
9331
|
buttonClassName: "w-full",
|
|
9174
9332
|
className: "bg-background z-50"
|
|
@@ -9180,8 +9338,8 @@ var TransactionHistoryFiltersSheet = ({
|
|
|
9180
9338
|
/* @__PURE__ */ jsx(
|
|
9181
9339
|
DatePicker,
|
|
9182
9340
|
{
|
|
9183
|
-
date: localFilters.postDateEnd,
|
|
9184
|
-
onDateChange: (date) =>
|
|
9341
|
+
date: parseDate(localFilters.postDateEnd),
|
|
9342
|
+
onDateChange: (date) => handleDateChange("postDateEnd", date),
|
|
9185
9343
|
placeholder: "MM/DD/YYYY",
|
|
9186
9344
|
buttonClassName: "w-full",
|
|
9187
9345
|
className: "bg-background z-50"
|
|
@@ -9217,7 +9375,7 @@ var TransactionHistoryView = ({
|
|
|
9217
9375
|
}
|
|
9218
9376
|
)
|
|
9219
9377
|
] }) }) }),
|
|
9220
|
-
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "container mx-auto px-4 h-full max-w-none flex flex-col", children: /* @__PURE__ */ jsx("div", { className: "flex-1 mt-4 overflow-auto", children: table }) }) })
|
|
9378
|
+
/* @__PURE__ */ jsx("div", { className: "flex-1 overflow-hidden", children: /* @__PURE__ */ jsx("div", { className: "container mx-auto px-4 h-full max-w-none flex flex-col", children: /* @__PURE__ */ jsx("div", { className: "flex-1 mt-4 pb-6 overflow-auto", children: table }) }) })
|
|
9221
9379
|
] });
|
|
9222
9380
|
};
|
|
9223
9381
|
var TransactionTypeBadge = ({
|
|
@@ -9263,7 +9421,7 @@ var getProcessingStatusVariant = (status) => {
|
|
|
9263
9421
|
return "outline";
|
|
9264
9422
|
}
|
|
9265
9423
|
};
|
|
9266
|
-
var
|
|
9424
|
+
var formatCurrency4 = (value) => {
|
|
9267
9425
|
return new Intl.NumberFormat("en-US", {
|
|
9268
9426
|
style: "currency",
|
|
9269
9427
|
currency: "USD",
|
|
@@ -9292,7 +9450,7 @@ var TransactionDetailView = ({
|
|
|
9292
9450
|
/* @__PURE__ */ jsx("span", { className: cn(
|
|
9293
9451
|
"font-semibold",
|
|
9294
9452
|
transaction.amount < 0 ? "text-destructive" : "text-success"
|
|
9295
|
-
), children:
|
|
9453
|
+
), children: formatCurrency4(transaction.amount) }),
|
|
9296
9454
|
/* @__PURE__ */ jsx(
|
|
9297
9455
|
TransactionTypeBadge,
|
|
9298
9456
|
{
|
|
@@ -9423,6 +9581,181 @@ var TransactionDetailView = ({
|
|
|
9423
9581
|
}
|
|
9424
9582
|
);
|
|
9425
9583
|
};
|
|
9584
|
+
var cancelTransactionSchema = z.object({
|
|
9585
|
+
reason: z.string().min(1, "Reason is required").max(500, "Reason must be less than 500 characters")
|
|
9586
|
+
});
|
|
9587
|
+
var returnTransactionSchema = z.object({
|
|
9588
|
+
reasonCode: z.string().min(1, "Reason code is required")
|
|
9589
|
+
});
|
|
9590
|
+
var CancelTransactionDialog = ({
|
|
9591
|
+
transactionId,
|
|
9592
|
+
open,
|
|
9593
|
+
onOpenChange,
|
|
9594
|
+
onCancel
|
|
9595
|
+
}) => {
|
|
9596
|
+
const { toast: toast6 } = useToast();
|
|
9597
|
+
const {
|
|
9598
|
+
register,
|
|
9599
|
+
handleSubmit,
|
|
9600
|
+
formState: { errors, isSubmitting },
|
|
9601
|
+
reset
|
|
9602
|
+
} = useFormWithEditState({
|
|
9603
|
+
schema: cancelTransactionSchema,
|
|
9604
|
+
defaultValues: {
|
|
9605
|
+
reason: ""
|
|
9606
|
+
}
|
|
9607
|
+
});
|
|
9608
|
+
const onSubmit = async (data) => {
|
|
9609
|
+
try {
|
|
9610
|
+
await onCancel(data);
|
|
9611
|
+
toast6({
|
|
9612
|
+
title: "Transaction Cancelled",
|
|
9613
|
+
description: `Transaction ${transactionId} has been cancelled successfully.`
|
|
9614
|
+
});
|
|
9615
|
+
reset();
|
|
9616
|
+
onOpenChange(false);
|
|
9617
|
+
} catch (error) {
|
|
9618
|
+
toast6({
|
|
9619
|
+
title: "Error",
|
|
9620
|
+
description: "Failed to cancel the transaction. Please try again.",
|
|
9621
|
+
variant: "destructive"
|
|
9622
|
+
});
|
|
9623
|
+
}
|
|
9624
|
+
};
|
|
9625
|
+
const handleClose = () => {
|
|
9626
|
+
reset();
|
|
9627
|
+
onOpenChange(false);
|
|
9628
|
+
};
|
|
9629
|
+
return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: handleClose, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-md", children: [
|
|
9630
|
+
/* @__PURE__ */ jsxs(DialogHeader, { children: [
|
|
9631
|
+
/* @__PURE__ */ jsx(DialogTitle, { children: "Cancel Transaction" }),
|
|
9632
|
+
/* @__PURE__ */ jsxs(DialogDescription, { children: [
|
|
9633
|
+
"Please provide a reason for cancelling transaction ",
|
|
9634
|
+
transactionId,
|
|
9635
|
+
"."
|
|
9636
|
+
] })
|
|
9637
|
+
] }),
|
|
9638
|
+
/* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit(onSubmit), className: "space-y-4", children: [
|
|
9639
|
+
/* @__PURE__ */ jsx(
|
|
9640
|
+
EnhancedTextarea,
|
|
9641
|
+
{
|
|
9642
|
+
label: "Cancellation Reason",
|
|
9643
|
+
placeholder: "Enter the reason for cancellation...",
|
|
9644
|
+
error: errors.reason?.message,
|
|
9645
|
+
...register("reason")
|
|
9646
|
+
}
|
|
9647
|
+
),
|
|
9648
|
+
/* @__PURE__ */ jsxs(DialogFooter, { className: "gap-2 sm:gap-0", children: [
|
|
9649
|
+
/* @__PURE__ */ jsx(
|
|
9650
|
+
Button,
|
|
9651
|
+
{
|
|
9652
|
+
type: "button",
|
|
9653
|
+
variant: "outline",
|
|
9654
|
+
onClick: handleClose,
|
|
9655
|
+
disabled: isSubmitting,
|
|
9656
|
+
children: "Close"
|
|
9657
|
+
}
|
|
9658
|
+
),
|
|
9659
|
+
/* @__PURE__ */ jsx(
|
|
9660
|
+
Button,
|
|
9661
|
+
{
|
|
9662
|
+
type: "submit",
|
|
9663
|
+
variant: "destructive",
|
|
9664
|
+
disabled: isSubmitting,
|
|
9665
|
+
children: isSubmitting ? "Cancelling..." : "Cancel Transaction"
|
|
9666
|
+
}
|
|
9667
|
+
)
|
|
9668
|
+
] })
|
|
9669
|
+
] })
|
|
9670
|
+
] }) });
|
|
9671
|
+
};
|
|
9672
|
+
function ReturnTransactionDialog({
|
|
9673
|
+
transactionId,
|
|
9674
|
+
open,
|
|
9675
|
+
onOpenChange,
|
|
9676
|
+
onReturn,
|
|
9677
|
+
reasonCodes
|
|
9678
|
+
}) {
|
|
9679
|
+
const {
|
|
9680
|
+
watch,
|
|
9681
|
+
setValue,
|
|
9682
|
+
handleSave,
|
|
9683
|
+
handleCancel,
|
|
9684
|
+
isLoading,
|
|
9685
|
+
formState: { errors }
|
|
9686
|
+
} = useFormWithEditState({
|
|
9687
|
+
schema: returnTransactionSchema,
|
|
9688
|
+
initialEditing: true,
|
|
9689
|
+
onSave: async (data) => {
|
|
9690
|
+
try {
|
|
9691
|
+
await onReturn(data);
|
|
9692
|
+
toast({
|
|
9693
|
+
title: "Transaction returned",
|
|
9694
|
+
description: `Transaction #${transactionId} has been returned successfully.`
|
|
9695
|
+
});
|
|
9696
|
+
onOpenChange(false);
|
|
9697
|
+
} catch (error) {
|
|
9698
|
+
toast({
|
|
9699
|
+
title: "Error",
|
|
9700
|
+
description: "Failed to return transaction. Please try again.",
|
|
9701
|
+
variant: "destructive"
|
|
9702
|
+
});
|
|
9703
|
+
throw error;
|
|
9704
|
+
}
|
|
9705
|
+
},
|
|
9706
|
+
onCancel: () => {
|
|
9707
|
+
onOpenChange(false);
|
|
9708
|
+
}
|
|
9709
|
+
});
|
|
9710
|
+
const reasonCode = watch("reasonCode");
|
|
9711
|
+
const selectOptions = reasonCodes.map((code) => ({
|
|
9712
|
+
value: code.value,
|
|
9713
|
+
label: code.label
|
|
9714
|
+
}));
|
|
9715
|
+
return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-[425px]", children: [
|
|
9716
|
+
/* @__PURE__ */ jsxs(DialogHeader, { children: [
|
|
9717
|
+
/* @__PURE__ */ jsx(DialogTitle, { children: "Return Transaction" }),
|
|
9718
|
+
/* @__PURE__ */ jsxs(DialogDescription, { children: [
|
|
9719
|
+
"Select a reason code to return transaction #",
|
|
9720
|
+
transactionId,
|
|
9721
|
+
"."
|
|
9722
|
+
] })
|
|
9723
|
+
] }),
|
|
9724
|
+
/* @__PURE__ */ jsx("div", { className: "py-4", children: /* @__PURE__ */ jsx(
|
|
9725
|
+
EnhancedSelect,
|
|
9726
|
+
{
|
|
9727
|
+
label: "Reason Code",
|
|
9728
|
+
placeholder: "Select a reason code",
|
|
9729
|
+
options: selectOptions,
|
|
9730
|
+
value: reasonCode || "",
|
|
9731
|
+
onValueChange: (value) => setValue("reasonCode", value),
|
|
9732
|
+
error: errors.reasonCode?.message
|
|
9733
|
+
}
|
|
9734
|
+
) }),
|
|
9735
|
+
/* @__PURE__ */ jsxs(DialogFooter, { children: [
|
|
9736
|
+
/* @__PURE__ */ jsx(
|
|
9737
|
+
Button,
|
|
9738
|
+
{
|
|
9739
|
+
type: "button",
|
|
9740
|
+
variant: "outline",
|
|
9741
|
+
onClick: handleCancel,
|
|
9742
|
+
disabled: isLoading,
|
|
9743
|
+
children: "Cancel"
|
|
9744
|
+
}
|
|
9745
|
+
),
|
|
9746
|
+
/* @__PURE__ */ jsx(
|
|
9747
|
+
Button,
|
|
9748
|
+
{
|
|
9749
|
+
type: "button",
|
|
9750
|
+
variant: "destructive",
|
|
9751
|
+
onClick: handleSave,
|
|
9752
|
+
disabled: isLoading || !reasonCode,
|
|
9753
|
+
children: isLoading ? "Returning..." : "Return Transaction"
|
|
9754
|
+
}
|
|
9755
|
+
)
|
|
9756
|
+
] })
|
|
9757
|
+
] }) });
|
|
9758
|
+
}
|
|
9426
9759
|
var typeIcons = {
|
|
9427
9760
|
checking: CreditCard,
|
|
9428
9761
|
savings: Building,
|
|
@@ -10692,6 +11025,36 @@ var useCounterpartyEntity = (counterparties) => {
|
|
|
10692
11025
|
}, [counterparties]);
|
|
10693
11026
|
return { counterparties: enrichedCounterparties, loading };
|
|
10694
11027
|
};
|
|
11028
|
+
var typeConfig4 = {
|
|
11029
|
+
checking: {
|
|
11030
|
+
variant: "checking",
|
|
11031
|
+
label: "Checking",
|
|
11032
|
+
icon: Wallet
|
|
11033
|
+
},
|
|
11034
|
+
savings: {
|
|
11035
|
+
variant: "savings",
|
|
11036
|
+
label: "Savings",
|
|
11037
|
+
icon: PiggyBank
|
|
11038
|
+
},
|
|
11039
|
+
"zero-balance": {
|
|
11040
|
+
variant: "zero-balance",
|
|
11041
|
+
label: "Zero Balance",
|
|
11042
|
+
icon: CircleDollarSign
|
|
11043
|
+
},
|
|
11044
|
+
funding: {
|
|
11045
|
+
variant: "funding",
|
|
11046
|
+
label: "Funding",
|
|
11047
|
+
icon: Landmark
|
|
11048
|
+
}
|
|
11049
|
+
};
|
|
11050
|
+
var AccountTypeBadge = ({ type, className }) => {
|
|
11051
|
+
const config = typeConfig4[type] || typeConfig4.checking;
|
|
11052
|
+
const Icon2 = config.icon;
|
|
11053
|
+
return /* @__PURE__ */ jsxs(Badge, { variant: config.variant, className, children: [
|
|
11054
|
+
/* @__PURE__ */ jsx(Icon2, { className: "w-3 h-3 mr-1" }),
|
|
11055
|
+
config.label
|
|
11056
|
+
] });
|
|
11057
|
+
};
|
|
10695
11058
|
|
|
10696
11059
|
// src/lib/mock-data/business-account-data.ts
|
|
10697
11060
|
var mockBusinessAccounts = [
|
|
@@ -10701,8 +11064,12 @@ var mockBusinessAccounts = [
|
|
|
10701
11064
|
number: "1234567890",
|
|
10702
11065
|
type: "checking",
|
|
10703
11066
|
status: "active",
|
|
10704
|
-
|
|
10705
|
-
|
|
11067
|
+
settledBalance: 127450,
|
|
11068
|
+
pendingCredits: 0,
|
|
11069
|
+
pendingDebits: 2e3,
|
|
11070
|
+
fundsOnHold: 0,
|
|
11071
|
+
accountBalance: 125450,
|
|
11072
|
+
availableBalance: 123450,
|
|
10706
11073
|
currency: "USD",
|
|
10707
11074
|
institution: "Chase Bank",
|
|
10708
11075
|
routingNumber: "021000021",
|
|
@@ -10719,8 +11086,12 @@ var mockBusinessAccounts = [
|
|
|
10719
11086
|
number: "9876544567",
|
|
10720
11087
|
type: "savings",
|
|
10721
11088
|
status: "active",
|
|
10722
|
-
|
|
10723
|
-
|
|
11089
|
+
settledBalance: 45230,
|
|
11090
|
+
pendingCredits: 0,
|
|
11091
|
+
pendingDebits: 0,
|
|
11092
|
+
fundsOnHold: 0,
|
|
11093
|
+
accountBalance: 45230,
|
|
11094
|
+
availableBalance: 45230,
|
|
10724
11095
|
currency: "USD",
|
|
10725
11096
|
institution: "Chase Bank",
|
|
10726
11097
|
routingNumber: "021000021",
|
|
@@ -10737,8 +11108,12 @@ var mockBusinessAccounts = [
|
|
|
10737
11108
|
number: "5555551234",
|
|
10738
11109
|
type: "checking",
|
|
10739
11110
|
status: "active",
|
|
10740
|
-
|
|
10741
|
-
|
|
11111
|
+
settledBalance: 8e4,
|
|
11112
|
+
pendingCredits: 1900,
|
|
11113
|
+
pendingDebits: 3e3,
|
|
11114
|
+
fundsOnHold: 0,
|
|
11115
|
+
accountBalance: 78900,
|
|
11116
|
+
availableBalance: 75900,
|
|
10742
11117
|
currency: "USD",
|
|
10743
11118
|
institution: "Wells Fargo",
|
|
10744
11119
|
routingNumber: "121000248",
|
|
@@ -10753,10 +11128,14 @@ var mockBusinessAccounts = [
|
|
|
10753
11128
|
id: "acc-004",
|
|
10754
11129
|
name: "Merchant Services Account",
|
|
10755
11130
|
number: "4444445678",
|
|
10756
|
-
type: "
|
|
11131
|
+
type: "funding",
|
|
10757
11132
|
status: "active",
|
|
10758
|
-
|
|
10759
|
-
|
|
11133
|
+
settledBalance: 23e4,
|
|
11134
|
+
pendingCredits: 4567.89,
|
|
11135
|
+
pendingDebits: 0,
|
|
11136
|
+
fundsOnHold: 4567.89,
|
|
11137
|
+
accountBalance: 234567.89,
|
|
11138
|
+
availableBalance: 23e4,
|
|
10760
11139
|
currency: "USD",
|
|
10761
11140
|
institution: "Bank of America",
|
|
10762
11141
|
routingNumber: "026009593",
|
|
@@ -10773,8 +11152,12 @@ var mockBusinessAccounts = [
|
|
|
10773
11152
|
number: "7777779012",
|
|
10774
11153
|
type: "savings",
|
|
10775
11154
|
status: "active",
|
|
10776
|
-
|
|
10777
|
-
|
|
11155
|
+
settledBalance: 5e5,
|
|
11156
|
+
pendingCredits: 0,
|
|
11157
|
+
pendingDebits: 0,
|
|
11158
|
+
fundsOnHold: 0,
|
|
11159
|
+
accountBalance: 5e5,
|
|
11160
|
+
availableBalance: 5e5,
|
|
10778
11161
|
currency: "USD",
|
|
10779
11162
|
institution: "Citibank",
|
|
10780
11163
|
routingNumber: "021000089",
|
|
@@ -10789,10 +11172,14 @@ var mockBusinessAccounts = [
|
|
|
10789
11172
|
id: "acc-006",
|
|
10790
11173
|
name: "Operating Account",
|
|
10791
11174
|
number: "3333333456",
|
|
10792
|
-
type: "
|
|
11175
|
+
type: "zero-balance",
|
|
10793
11176
|
status: "inactive",
|
|
10794
|
-
|
|
10795
|
-
|
|
11177
|
+
settledBalance: 0,
|
|
11178
|
+
pendingCredits: 0,
|
|
11179
|
+
pendingDebits: 0,
|
|
11180
|
+
fundsOnHold: 0,
|
|
11181
|
+
accountBalance: 0,
|
|
11182
|
+
availableBalance: 0,
|
|
10796
11183
|
currency: "USD",
|
|
10797
11184
|
institution: "Wells Fargo",
|
|
10798
11185
|
routingNumber: "121000248",
|
|
@@ -10860,6 +11247,12 @@ var Accounts = () => {
|
|
|
10860
11247
|
title: "Account Number",
|
|
10861
11248
|
sortable: true
|
|
10862
11249
|
},
|
|
11250
|
+
{
|
|
11251
|
+
key: "type",
|
|
11252
|
+
title: "Type",
|
|
11253
|
+
sortable: true,
|
|
11254
|
+
render: (value, row) => /* @__PURE__ */ jsx(AccountTypeBadge, { type: row.type })
|
|
11255
|
+
},
|
|
10863
11256
|
{
|
|
10864
11257
|
key: "name",
|
|
10865
11258
|
title: "Account Name",
|
|
@@ -10883,16 +11276,18 @@ var Accounts = () => {
|
|
|
10883
11276
|
}
|
|
10884
11277
|
},
|
|
10885
11278
|
{
|
|
10886
|
-
key: "
|
|
11279
|
+
key: "accountBalance",
|
|
10887
11280
|
title: "Account Balance",
|
|
10888
11281
|
sortable: true,
|
|
10889
|
-
align: "right"
|
|
11282
|
+
align: "right",
|
|
11283
|
+
render: (value) => formatCurrency(value)
|
|
10890
11284
|
},
|
|
10891
11285
|
{
|
|
10892
11286
|
key: "availableBalance",
|
|
10893
11287
|
title: "Available Balance",
|
|
10894
11288
|
sortable: true,
|
|
10895
|
-
align: "right"
|
|
11289
|
+
align: "right",
|
|
11290
|
+
render: (value) => formatCurrency(value)
|
|
10896
11291
|
},
|
|
10897
11292
|
{
|
|
10898
11293
|
key: "status",
|
|
@@ -10904,11 +11299,6 @@ var Accounts = () => {
|
|
|
10904
11299
|
key: "created",
|
|
10905
11300
|
title: "Create Date",
|
|
10906
11301
|
sortable: true
|
|
10907
|
-
},
|
|
10908
|
-
{
|
|
10909
|
-
key: "modified",
|
|
10910
|
-
title: "Modify Date",
|
|
10911
|
-
sortable: true
|
|
10912
11302
|
}
|
|
10913
11303
|
];
|
|
10914
11304
|
const startIndex = (currentPage - 1) * pageSize;
|
|
@@ -11068,7 +11458,8 @@ var AccountDetail = () => {
|
|
|
11068
11458
|
PageLayout,
|
|
11069
11459
|
{
|
|
11070
11460
|
title: /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3", children: [
|
|
11071
|
-
/* @__PURE__ */ jsx("span", { children: account.
|
|
11461
|
+
/* @__PURE__ */ jsx("span", { children: account.number }),
|
|
11462
|
+
/* @__PURE__ */ jsx(AccountTypeBadge, { type: account.type }),
|
|
11072
11463
|
/* @__PURE__ */ jsx(
|
|
11073
11464
|
EditableInfoField,
|
|
11074
11465
|
{
|
|
@@ -11112,7 +11503,7 @@ var AccountDetail = () => {
|
|
|
11112
11503
|
/* @__PURE__ */ jsx(
|
|
11113
11504
|
EditableFormCard,
|
|
11114
11505
|
{
|
|
11115
|
-
title:
|
|
11506
|
+
title: account.name,
|
|
11116
11507
|
variant: "subtle",
|
|
11117
11508
|
isEditing: form.isEditing,
|
|
11118
11509
|
onToggleEdit: form.handleToggleEdit,
|
|
@@ -11120,20 +11511,42 @@ var AccountDetail = () => {
|
|
|
11120
11511
|
onCancel: form.handleCancel,
|
|
11121
11512
|
viewContent: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11122
11513
|
/* @__PURE__ */ jsxs("div", { className: "mb-6 p-6 rounded-lg bg-gradient-to-br from-primary/10 via-primary/5 to-background border border-primary/20", children: [
|
|
11123
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-
|
|
11124
|
-
/* @__PURE__ */ jsx(Wallet, { className: "h-4 w-4 text-primary" }),
|
|
11125
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: account.number }),
|
|
11126
|
-
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "\u2022" }),
|
|
11127
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground capitalize", children: account.type })
|
|
11128
|
-
] }),
|
|
11129
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-end gap-8", children: [
|
|
11514
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-end gap-8 mb-6", children: [
|
|
11130
11515
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
11131
11516
|
/* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-muted-foreground mb-1", children: "Account Balance" }),
|
|
11132
|
-
/* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: account.
|
|
11517
|
+
/* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: formatCurrency(account.accountBalance) })
|
|
11133
11518
|
] }),
|
|
11134
11519
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
11135
11520
|
/* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-muted-foreground mb-1", children: "Available Balance" }),
|
|
11136
|
-
/* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: account.
|
|
11521
|
+
/* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: formatCurrency(account.availableBalance) })
|
|
11522
|
+
] })
|
|
11523
|
+
] }),
|
|
11524
|
+
/* @__PURE__ */ jsx("div", { className: "border-t border-border/50 mb-4" }),
|
|
11525
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4", children: [
|
|
11526
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
11527
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Settled Balance" }),
|
|
11528
|
+
/* @__PURE__ */ jsx("p", { className: "text-lg font-semibold", children: formatCurrency(account.settledBalance) })
|
|
11529
|
+
] }),
|
|
11530
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
11531
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Pending Credits" }),
|
|
11532
|
+
/* @__PURE__ */ jsxs("p", { className: "text-lg font-semibold text-success", children: [
|
|
11533
|
+
"+",
|
|
11534
|
+
formatCurrency(account.pendingCredits)
|
|
11535
|
+
] })
|
|
11536
|
+
] }),
|
|
11537
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
11538
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Pending Debits" }),
|
|
11539
|
+
/* @__PURE__ */ jsxs("p", { className: "text-lg font-semibold text-destructive", children: [
|
|
11540
|
+
"-",
|
|
11541
|
+
formatCurrency(account.pendingDebits)
|
|
11542
|
+
] })
|
|
11543
|
+
] }),
|
|
11544
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
11545
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Funds on Hold" }),
|
|
11546
|
+
/* @__PURE__ */ jsx("p", { className: cn(
|
|
11547
|
+
"text-lg font-semibold",
|
|
11548
|
+
account.fundsOnHold > 0 && "text-warning"
|
|
11549
|
+
), children: formatCurrency(account.fundsOnHold) })
|
|
11137
11550
|
] })
|
|
11138
11551
|
] })
|
|
11139
11552
|
] }),
|
|
@@ -11205,20 +11618,42 @@ var AccountDetail = () => {
|
|
|
11205
11618
|
] }),
|
|
11206
11619
|
editContent: /* @__PURE__ */ jsx(FormProvider, { form, children: /* @__PURE__ */ jsxs(Fragment, { children: [
|
|
11207
11620
|
/* @__PURE__ */ jsxs("div", { className: "mb-6 p-6 rounded-lg bg-gradient-to-br from-primary/10 via-primary/5 to-background border border-primary/20", children: [
|
|
11208
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-
|
|
11209
|
-
/* @__PURE__ */ jsx(Wallet, { className: "h-4 w-4 text-primary" }),
|
|
11210
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: account.number }),
|
|
11211
|
-
/* @__PURE__ */ jsx("span", { className: "text-muted-foreground", children: "\u2022" }),
|
|
11212
|
-
/* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground capitalize", children: account.type })
|
|
11213
|
-
] }),
|
|
11214
|
-
/* @__PURE__ */ jsxs("div", { className: "flex items-end gap-8", children: [
|
|
11621
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-end gap-8 mb-6", children: [
|
|
11215
11622
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
11216
11623
|
/* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-muted-foreground mb-1", children: "Account Balance" }),
|
|
11217
|
-
/* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: account.
|
|
11624
|
+
/* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: formatCurrency(account.accountBalance) })
|
|
11218
11625
|
] }),
|
|
11219
11626
|
/* @__PURE__ */ jsxs("div", { children: [
|
|
11220
11627
|
/* @__PURE__ */ jsx("p", { className: "text-xs font-medium text-muted-foreground mb-1", children: "Available Balance" }),
|
|
11221
|
-
/* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: account.
|
|
11628
|
+
/* @__PURE__ */ jsx("p", { className: "text-3xl font-bold text-foreground tracking-tight", children: formatCurrency(account.availableBalance) })
|
|
11629
|
+
] })
|
|
11630
|
+
] }),
|
|
11631
|
+
/* @__PURE__ */ jsx("div", { className: "border-t border-border/50 mb-4" }),
|
|
11632
|
+
/* @__PURE__ */ jsxs("div", { className: "grid grid-cols-2 md:grid-cols-4 gap-4", children: [
|
|
11633
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
11634
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Settled Balance" }),
|
|
11635
|
+
/* @__PURE__ */ jsx("p", { className: "text-lg font-semibold", children: formatCurrency(account.settledBalance) })
|
|
11636
|
+
] }),
|
|
11637
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
11638
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Pending Credits" }),
|
|
11639
|
+
/* @__PURE__ */ jsxs("p", { className: "text-lg font-semibold text-success", children: [
|
|
11640
|
+
"+",
|
|
11641
|
+
formatCurrency(account.pendingCredits)
|
|
11642
|
+
] })
|
|
11643
|
+
] }),
|
|
11644
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
11645
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Pending Debits" }),
|
|
11646
|
+
/* @__PURE__ */ jsxs("p", { className: "text-lg font-semibold text-destructive", children: [
|
|
11647
|
+
"-",
|
|
11648
|
+
formatCurrency(account.pendingDebits)
|
|
11649
|
+
] })
|
|
11650
|
+
] }),
|
|
11651
|
+
/* @__PURE__ */ jsxs("div", { children: [
|
|
11652
|
+
/* @__PURE__ */ jsx("p", { className: "text-xs text-muted-foreground", children: "Funds on Hold" }),
|
|
11653
|
+
/* @__PURE__ */ jsx("p", { className: cn(
|
|
11654
|
+
"text-lg font-semibold",
|
|
11655
|
+
account.fundsOnHold > 0 && "text-warning"
|
|
11656
|
+
), children: formatCurrency(account.fundsOnHold) })
|
|
11222
11657
|
] })
|
|
11223
11658
|
] })
|
|
11224
11659
|
] }),
|
|
@@ -14428,32 +14863,37 @@ var mockTransactionTimeline = [
|
|
|
14428
14863
|
timestamp: "2025-10-01 00:19:45"
|
|
14429
14864
|
}
|
|
14430
14865
|
];
|
|
14866
|
+
var defaultFilters2 = {
|
|
14867
|
+
originalFileName: "",
|
|
14868
|
+
requesterIpAddress: "",
|
|
14869
|
+
requesterUsername: "",
|
|
14870
|
+
showAchNoc: false,
|
|
14871
|
+
excludeWire: false,
|
|
14872
|
+
excludeAch: false,
|
|
14873
|
+
wireFileHandle: "",
|
|
14874
|
+
direction: "",
|
|
14875
|
+
counterpartyId: "",
|
|
14876
|
+
customerId: "",
|
|
14877
|
+
settlementFileName: "",
|
|
14878
|
+
isInbound: false,
|
|
14879
|
+
accountNumber: "",
|
|
14880
|
+
processingStatus: [],
|
|
14881
|
+
beginDate: void 0,
|
|
14882
|
+
endDate: void 0,
|
|
14883
|
+
postDateStart: void 0,
|
|
14884
|
+
postDateEnd: void 0,
|
|
14885
|
+
maxAmount: "",
|
|
14886
|
+
minAmount: "",
|
|
14887
|
+
productId: "",
|
|
14888
|
+
paymentId: "",
|
|
14889
|
+
transactionStatus: [],
|
|
14890
|
+
transactionType: []
|
|
14891
|
+
};
|
|
14431
14892
|
var TransactionHistory = () => {
|
|
14432
14893
|
const navigate = useNavigate();
|
|
14433
14894
|
const [sortBy, setSortBy] = useState("created");
|
|
14434
14895
|
const [sortDirection, setSortDirection] = useState("desc");
|
|
14435
|
-
const [filters, setFilters] = useState(
|
|
14436
|
-
accountNumber: "",
|
|
14437
|
-
product: "",
|
|
14438
|
-
customerId: "",
|
|
14439
|
-
counterpartyId: "",
|
|
14440
|
-
settlementFileName: "",
|
|
14441
|
-
originalFileName: "",
|
|
14442
|
-
requesterIpAddress: "",
|
|
14443
|
-
requesterUsername: "",
|
|
14444
|
-
wireFileHandle: "",
|
|
14445
|
-
paymentId: "",
|
|
14446
|
-
transactionType: "",
|
|
14447
|
-
transactionStatus: "",
|
|
14448
|
-
processingStatus: "",
|
|
14449
|
-
direction: "",
|
|
14450
|
-
minAmount: "",
|
|
14451
|
-
maxAmount: "",
|
|
14452
|
-
creationDateStart: void 0,
|
|
14453
|
-
creationDateEnd: void 0,
|
|
14454
|
-
postDateStart: void 0,
|
|
14455
|
-
postDateEnd: void 0
|
|
14456
|
-
});
|
|
14896
|
+
const [filters, setFilters] = useState(defaultFilters2);
|
|
14457
14897
|
const filteredTransactions = useMemo(() => {
|
|
14458
14898
|
let filtered = [...mockTransactions];
|
|
14459
14899
|
if (filters.accountNumber) {
|
|
@@ -14461,11 +14901,11 @@ var TransactionHistory = () => {
|
|
|
14461
14901
|
(t) => t.accountNumber.toLowerCase().includes(filters.accountNumber.toLowerCase())
|
|
14462
14902
|
);
|
|
14463
14903
|
}
|
|
14464
|
-
if (filters.transactionType) {
|
|
14465
|
-
filtered = filtered.filter((t) =>
|
|
14904
|
+
if (filters.transactionType && filters.transactionType.length > 0) {
|
|
14905
|
+
filtered = filtered.filter((t) => filters.transactionType.includes(t.transactionType));
|
|
14466
14906
|
}
|
|
14467
|
-
if (filters.transactionStatus) {
|
|
14468
|
-
filtered = filtered.filter((t) => t.status
|
|
14907
|
+
if (filters.transactionStatus && filters.transactionStatus.length > 0) {
|
|
14908
|
+
filtered = filtered.filter((t) => filters.transactionStatus.includes(t.status));
|
|
14469
14909
|
}
|
|
14470
14910
|
if (filters.minAmount) {
|
|
14471
14911
|
const minAmount = parseFloat(filters.minAmount.replace(/[^0-9.-]/g, ""));
|
|
@@ -14479,6 +14919,12 @@ var TransactionHistory = () => {
|
|
|
14479
14919
|
filtered = filtered.filter((t) => t.amount <= maxAmount);
|
|
14480
14920
|
}
|
|
14481
14921
|
}
|
|
14922
|
+
if (filters.excludeWire) {
|
|
14923
|
+
filtered = filtered.filter((t) => !t.transactionType.toLowerCase().includes("wire"));
|
|
14924
|
+
}
|
|
14925
|
+
if (filters.excludeAch) {
|
|
14926
|
+
filtered = filtered.filter((t) => !t.transactionType.toLowerCase().includes("ach"));
|
|
14927
|
+
}
|
|
14482
14928
|
return filtered;
|
|
14483
14929
|
}, [filters]);
|
|
14484
14930
|
const sortedTransactions = useMemo(() => {
|
|
@@ -14495,28 +14941,7 @@ var TransactionHistory = () => {
|
|
|
14495
14941
|
setFilters((prev) => ({ ...prev, [field]: value }));
|
|
14496
14942
|
}, []);
|
|
14497
14943
|
const handleResetFilters = useCallback(() => {
|
|
14498
|
-
setFilters(
|
|
14499
|
-
accountNumber: "",
|
|
14500
|
-
product: "",
|
|
14501
|
-
customerId: "",
|
|
14502
|
-
counterpartyId: "",
|
|
14503
|
-
settlementFileName: "",
|
|
14504
|
-
originalFileName: "",
|
|
14505
|
-
requesterIpAddress: "",
|
|
14506
|
-
requesterUsername: "",
|
|
14507
|
-
wireFileHandle: "",
|
|
14508
|
-
paymentId: "",
|
|
14509
|
-
transactionType: "",
|
|
14510
|
-
transactionStatus: "",
|
|
14511
|
-
processingStatus: "",
|
|
14512
|
-
direction: "",
|
|
14513
|
-
minAmount: "",
|
|
14514
|
-
maxAmount: "",
|
|
14515
|
-
creationDateStart: void 0,
|
|
14516
|
-
creationDateEnd: void 0,
|
|
14517
|
-
postDateStart: void 0,
|
|
14518
|
-
postDateEnd: void 0
|
|
14519
|
-
});
|
|
14944
|
+
setFilters(defaultFilters2);
|
|
14520
14945
|
}, []);
|
|
14521
14946
|
const handleApplyFilters = useCallback(() => {
|
|
14522
14947
|
console.log("Applying filters:", filters);
|
|
@@ -14532,13 +14957,6 @@ var TransactionHistory = () => {
|
|
|
14532
14957
|
const handleRowClick = useCallback((transaction) => {
|
|
14533
14958
|
navigate(`/transactions/${transaction.id}`);
|
|
14534
14959
|
}, [navigate]);
|
|
14535
|
-
const formatCurrency4 = (value) => {
|
|
14536
|
-
return new Intl.NumberFormat("en-US", {
|
|
14537
|
-
style: "currency",
|
|
14538
|
-
currency: "USD",
|
|
14539
|
-
minimumFractionDigits: 2
|
|
14540
|
-
}).format(value);
|
|
14541
|
-
};
|
|
14542
14960
|
const columns3 = useMemo(() => [
|
|
14543
14961
|
{
|
|
14544
14962
|
key: "created",
|
|
@@ -14555,7 +14973,7 @@ var TransactionHistory = () => {
|
|
|
14555
14973
|
title: "Amount",
|
|
14556
14974
|
sortable: true,
|
|
14557
14975
|
align: "right",
|
|
14558
|
-
render: (value) => /* @__PURE__ */ jsx("span", { className: value < 0 ? "text-destructive" : "", children:
|
|
14976
|
+
render: (value) => /* @__PURE__ */ jsx("span", { className: value < 0 ? "text-destructive" : "", children: formatCurrency(value) })
|
|
14559
14977
|
},
|
|
14560
14978
|
{
|
|
14561
14979
|
key: "customer",
|
|
@@ -15095,181 +15513,6 @@ function NewTransaction() {
|
|
|
15095
15513
|
}
|
|
15096
15514
|
);
|
|
15097
15515
|
}
|
|
15098
|
-
var cancelTransactionSchema = z.object({
|
|
15099
|
-
reason: z.string().min(1, "Reason is required").max(500, "Reason must be less than 500 characters")
|
|
15100
|
-
});
|
|
15101
|
-
var returnTransactionSchema = z.object({
|
|
15102
|
-
reasonCode: z.string().min(1, "Reason code is required")
|
|
15103
|
-
});
|
|
15104
|
-
var CancelTransactionDialog = ({
|
|
15105
|
-
transactionId,
|
|
15106
|
-
open,
|
|
15107
|
-
onOpenChange,
|
|
15108
|
-
onCancel
|
|
15109
|
-
}) => {
|
|
15110
|
-
const { toast: toast6 } = useToast();
|
|
15111
|
-
const {
|
|
15112
|
-
register,
|
|
15113
|
-
handleSubmit,
|
|
15114
|
-
formState: { errors, isSubmitting },
|
|
15115
|
-
reset
|
|
15116
|
-
} = useFormWithEditState({
|
|
15117
|
-
schema: cancelTransactionSchema,
|
|
15118
|
-
defaultValues: {
|
|
15119
|
-
reason: ""
|
|
15120
|
-
}
|
|
15121
|
-
});
|
|
15122
|
-
const onSubmit = async (data) => {
|
|
15123
|
-
try {
|
|
15124
|
-
await onCancel(data);
|
|
15125
|
-
toast6({
|
|
15126
|
-
title: "Transaction Cancelled",
|
|
15127
|
-
description: `Transaction ${transactionId} has been cancelled successfully.`
|
|
15128
|
-
});
|
|
15129
|
-
reset();
|
|
15130
|
-
onOpenChange(false);
|
|
15131
|
-
} catch (error) {
|
|
15132
|
-
toast6({
|
|
15133
|
-
title: "Error",
|
|
15134
|
-
description: "Failed to cancel the transaction. Please try again.",
|
|
15135
|
-
variant: "destructive"
|
|
15136
|
-
});
|
|
15137
|
-
}
|
|
15138
|
-
};
|
|
15139
|
-
const handleClose = () => {
|
|
15140
|
-
reset();
|
|
15141
|
-
onOpenChange(false);
|
|
15142
|
-
};
|
|
15143
|
-
return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: handleClose, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-md", children: [
|
|
15144
|
-
/* @__PURE__ */ jsxs(DialogHeader, { children: [
|
|
15145
|
-
/* @__PURE__ */ jsx(DialogTitle, { children: "Cancel Transaction" }),
|
|
15146
|
-
/* @__PURE__ */ jsxs(DialogDescription, { children: [
|
|
15147
|
-
"Please provide a reason for cancelling transaction ",
|
|
15148
|
-
transactionId,
|
|
15149
|
-
"."
|
|
15150
|
-
] })
|
|
15151
|
-
] }),
|
|
15152
|
-
/* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit(onSubmit), className: "space-y-4", children: [
|
|
15153
|
-
/* @__PURE__ */ jsx(
|
|
15154
|
-
EnhancedTextarea,
|
|
15155
|
-
{
|
|
15156
|
-
label: "Cancellation Reason",
|
|
15157
|
-
placeholder: "Enter the reason for cancellation...",
|
|
15158
|
-
error: errors.reason?.message,
|
|
15159
|
-
...register("reason")
|
|
15160
|
-
}
|
|
15161
|
-
),
|
|
15162
|
-
/* @__PURE__ */ jsxs(DialogFooter, { className: "gap-2 sm:gap-0", children: [
|
|
15163
|
-
/* @__PURE__ */ jsx(
|
|
15164
|
-
Button,
|
|
15165
|
-
{
|
|
15166
|
-
type: "button",
|
|
15167
|
-
variant: "outline",
|
|
15168
|
-
onClick: handleClose,
|
|
15169
|
-
disabled: isSubmitting,
|
|
15170
|
-
children: "Close"
|
|
15171
|
-
}
|
|
15172
|
-
),
|
|
15173
|
-
/* @__PURE__ */ jsx(
|
|
15174
|
-
Button,
|
|
15175
|
-
{
|
|
15176
|
-
type: "submit",
|
|
15177
|
-
variant: "destructive",
|
|
15178
|
-
disabled: isSubmitting,
|
|
15179
|
-
children: isSubmitting ? "Cancelling..." : "Cancel Transaction"
|
|
15180
|
-
}
|
|
15181
|
-
)
|
|
15182
|
-
] })
|
|
15183
|
-
] })
|
|
15184
|
-
] }) });
|
|
15185
|
-
};
|
|
15186
|
-
function ReturnTransactionDialog({
|
|
15187
|
-
transactionId,
|
|
15188
|
-
open,
|
|
15189
|
-
onOpenChange,
|
|
15190
|
-
onReturn,
|
|
15191
|
-
reasonCodes
|
|
15192
|
-
}) {
|
|
15193
|
-
const {
|
|
15194
|
-
watch,
|
|
15195
|
-
setValue,
|
|
15196
|
-
handleSave,
|
|
15197
|
-
handleCancel,
|
|
15198
|
-
isLoading,
|
|
15199
|
-
formState: { errors }
|
|
15200
|
-
} = useFormWithEditState({
|
|
15201
|
-
schema: returnTransactionSchema,
|
|
15202
|
-
initialEditing: true,
|
|
15203
|
-
onSave: async (data) => {
|
|
15204
|
-
try {
|
|
15205
|
-
await onReturn(data);
|
|
15206
|
-
toast({
|
|
15207
|
-
title: "Transaction returned",
|
|
15208
|
-
description: `Transaction #${transactionId} has been returned successfully.`
|
|
15209
|
-
});
|
|
15210
|
-
onOpenChange(false);
|
|
15211
|
-
} catch (error) {
|
|
15212
|
-
toast({
|
|
15213
|
-
title: "Error",
|
|
15214
|
-
description: "Failed to return transaction. Please try again.",
|
|
15215
|
-
variant: "destructive"
|
|
15216
|
-
});
|
|
15217
|
-
throw error;
|
|
15218
|
-
}
|
|
15219
|
-
},
|
|
15220
|
-
onCancel: () => {
|
|
15221
|
-
onOpenChange(false);
|
|
15222
|
-
}
|
|
15223
|
-
});
|
|
15224
|
-
const reasonCode = watch("reasonCode");
|
|
15225
|
-
const selectOptions = reasonCodes.map((code) => ({
|
|
15226
|
-
value: code.value,
|
|
15227
|
-
label: code.label
|
|
15228
|
-
}));
|
|
15229
|
-
return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange, children: /* @__PURE__ */ jsxs(DialogContent, { className: "sm:max-w-[425px]", children: [
|
|
15230
|
-
/* @__PURE__ */ jsxs(DialogHeader, { children: [
|
|
15231
|
-
/* @__PURE__ */ jsx(DialogTitle, { children: "Return Transaction" }),
|
|
15232
|
-
/* @__PURE__ */ jsxs(DialogDescription, { children: [
|
|
15233
|
-
"Select a reason code to return transaction #",
|
|
15234
|
-
transactionId,
|
|
15235
|
-
"."
|
|
15236
|
-
] })
|
|
15237
|
-
] }),
|
|
15238
|
-
/* @__PURE__ */ jsx("div", { className: "py-4", children: /* @__PURE__ */ jsx(
|
|
15239
|
-
EnhancedSelect,
|
|
15240
|
-
{
|
|
15241
|
-
label: "Reason Code",
|
|
15242
|
-
placeholder: "Select a reason code",
|
|
15243
|
-
options: selectOptions,
|
|
15244
|
-
value: reasonCode || "",
|
|
15245
|
-
onValueChange: (value) => setValue("reasonCode", value),
|
|
15246
|
-
error: errors.reasonCode?.message
|
|
15247
|
-
}
|
|
15248
|
-
) }),
|
|
15249
|
-
/* @__PURE__ */ jsxs(DialogFooter, { children: [
|
|
15250
|
-
/* @__PURE__ */ jsx(
|
|
15251
|
-
Button,
|
|
15252
|
-
{
|
|
15253
|
-
type: "button",
|
|
15254
|
-
variant: "outline",
|
|
15255
|
-
onClick: handleCancel,
|
|
15256
|
-
disabled: isLoading,
|
|
15257
|
-
children: "Cancel"
|
|
15258
|
-
}
|
|
15259
|
-
),
|
|
15260
|
-
/* @__PURE__ */ jsx(
|
|
15261
|
-
Button,
|
|
15262
|
-
{
|
|
15263
|
-
type: "button",
|
|
15264
|
-
variant: "destructive",
|
|
15265
|
-
onClick: handleSave,
|
|
15266
|
-
disabled: isLoading || !reasonCode,
|
|
15267
|
-
children: isLoading ? "Returning..." : "Return Transaction"
|
|
15268
|
-
}
|
|
15269
|
-
)
|
|
15270
|
-
] })
|
|
15271
|
-
] }) });
|
|
15272
|
-
}
|
|
15273
15516
|
var returnReasonCodes = [
|
|
15274
15517
|
{ value: "R01", label: "R01 - Insufficient Funds" },
|
|
15275
15518
|
{ value: "R02", label: "R02 - Account Closed" },
|
|
@@ -16273,7 +16516,7 @@ var VelocityLimitDetailsCard = ({
|
|
|
16273
16516
|
InfoField,
|
|
16274
16517
|
{
|
|
16275
16518
|
label: "Max Amount",
|
|
16276
|
-
value:
|
|
16519
|
+
value: formatCurrency(parseFloat(limit.maxAmount)),
|
|
16277
16520
|
layout: "horizontal"
|
|
16278
16521
|
}
|
|
16279
16522
|
),
|
|
@@ -16310,7 +16553,7 @@ var VelocityLimitDetailsCard = ({
|
|
|
16310
16553
|
InfoField,
|
|
16311
16554
|
{
|
|
16312
16555
|
label: "Amount Threshold",
|
|
16313
|
-
value:
|
|
16556
|
+
value: formatCurrency(parseFloat(limit.amountThreshold)),
|
|
16314
16557
|
layout: "horizontal"
|
|
16315
16558
|
}
|
|
16316
16559
|
),
|
|
@@ -17273,6 +17516,6 @@ function ReconExceptions() {
|
|
|
17273
17516
|
] }) });
|
|
17274
17517
|
}
|
|
17275
17518
|
|
|
17276
|
-
export { ACHBankCard, ACHBasicInfoCard, ACHDetailsSection, ACHTransferSection, ADJUSTMENT_DIRECTION_OPTIONS, AccountCard, AccountDetail_default as AccountDetail, Accounts_default as Accounts, AddressForm, AlertDetail_default as AlertDetail, AlertDetailRouter, AlertDocuments, AlertHeaderControls, AlertNotes, AlertTimeline, Alerts_default as Alerts, AppSidebar, Badge, BankAddressCard, BankingDetailsCard, BasicInfoCard, BasicInfoSection, BeneficiaryAddress, BeneficiaryCard, BeneficiaryDomesticWire, Breadcrumb, BusinessDetail_default as BusinessDetail, BusinessDetailView, BusinessFiltersSheet, BusinessProfileCard, BusinessStatusCard, BusinessTypeBadge, Businesses_default as Businesses, Button, CIPStatusBadge, Calendar, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Cases_default as Cases, Checkbox, ContactInfoCard, Container, ContextSection, Counterparties_default as Counterparties, CounterpartiesView, CounterpartyBasicInfo, CounterpartyDetail_default as CounterpartyDetail, CounterpartyDetailView, CounterpartyProfileCard, CounterpartyRecordsCard, CounterpartyTypeBadge, Create_default as CreateBusiness, CreateBusinessView, Create_default2 as CreateCounterparty, CreateCounterpartyView, Create_default3 as CreateIndividual, CreateVelocityLimit, Dashboard_default as Dashboard, DashboardDemo, DataGrid, DataTable, DetailPageLayout, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EditableFormCard, EditableInfoField, EnhancedInput, EnhancedSelect, EnhancedTextarea, EntityCard, FormCard, FormField, FormInput, FormProvider, FormSection, FormSelect, IndividualDetail_default as IndividualDetail, Individuals_default as Individuals, InfoField, IntermediaryCard, IntermediaryFI, IntermediaryFIAddress, JsonViewer, Label, ListPage, MainLayout, MetricCard, NewTransaction, NewTransactionView, NotFound_default as NotFound, OFACAlertView, OriginatorCard, OriginatorFI, OriginatorFIAddress, PageLayout, PatternLibrary, PaymentInformationSection, Popover, PopoverContent, PopoverTrigger, ReceiverCard, ReconExceptions, ReconUpload, ResolveAlertDialog, ResponsiveGrid, ScrollArea, ScrollBar, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Stack, Statement, StatementHeader, StatementView, StatusBadge, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TransactionDetail_default as TransactionDetail, TransactionDetailView, TransactionHistory_default as TransactionHistory, TransactionHistoryFiltersSheet, TransactionHistoryView, TransactionTypeBadge, UIKit, UIKitShowcase, VelocityLimitDetail, VelocityLimits, WireDetailsSection, WireTransferSection, badgeVariants, buttonVariants, cardVariants, downloadCSV, generateStatementCSV, inputVariants, newTransactionSchema, reducer, textareaVariants, toast, useAlertDetail, useCounterpartyEntity, useEditState, useFormWithEditState, useIsMobile, useSidebar, useToast };
|
|
17519
|
+
export { ACHBankCard, ACHBasicInfoCard, ACHDetailsSection, ACHTransferSection, ADJUSTMENT_DIRECTION_OPTIONS, AccountCard, AccountDetail_default as AccountDetail, Accounts_default as Accounts, AddressForm, AlertDetail_default as AlertDetail, AlertDetailRouter, AlertDocuments, AlertHeaderControls, AlertNotes, AlertTimeline, Alerts_default as Alerts, AppSidebar, Badge, BankAddressCard, BankingDetailsCard, BasicInfoCard, BasicInfoSection, BeneficiaryAddress, BeneficiaryCard, BeneficiaryDomesticWire, Breadcrumb, BusinessDetail_default as BusinessDetail, BusinessDetailView, BusinessFiltersSheet, BusinessProfileCard, BusinessStatusCard, BusinessTypeBadge, Businesses_default as Businesses, Button, CIPStatusBadge, Calendar, CancelTransactionDialog, Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle, Cases_default as Cases, Checkbox, ContactInfoCard, Container, ContextSection, Counterparties_default as Counterparties, CounterpartiesView, CounterpartyBasicInfo, CounterpartyDetail_default as CounterpartyDetail, CounterpartyDetailView, CounterpartyProfileCard, CounterpartyRecordsCard, CounterpartyTypeBadge, Create_default as CreateBusiness, CreateBusinessView, Create_default2 as CreateCounterparty, CreateCounterpartyView, Create_default3 as CreateIndividual, CreateVelocityLimit, Dashboard_default as Dashboard, DashboardDemo, DataGrid, DataTable, DetailPageLayout, Dialog, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogHeader, DialogOverlay, DialogPortal, DialogTitle, DialogTrigger, DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuLabel, DropdownMenuSeparator, DropdownMenuTrigger, EditableFormCard, EditableInfoField, EnhancedInput, EnhancedSelect, EnhancedTextarea, EntityCard, FormCard, FormField, FormInput, FormProvider, FormSection, FormSelect, IndividualDetail_default as IndividualDetail, Individuals_default as Individuals, InfoField, IntermediaryCard, IntermediaryFI, IntermediaryFIAddress, JsonViewer, Label, ListPage, MainLayout, MetricCard, NewTransaction, NewTransactionView, NotFound_default as NotFound, OFACAlertView, OriginatorCard, OriginatorFI, OriginatorFIAddress, PageLayout, PatternLibrary, PaymentInformationSection, Popover, PopoverContent, PopoverTrigger, ReceiverCard, ReconExceptions, ReconUpload, ResolveAlertDialog, ResponsiveGrid, ReturnTransactionDialog, ScrollArea, ScrollBar, Separator, Sheet, SheetClose, SheetContent, SheetDescription, SheetFooter, SheetHeader, SheetOverlay, SheetPortal, SheetTitle, SheetTrigger, Sidebar, SidebarContent, SidebarFooter, SidebarGroup, SidebarGroupAction, SidebarGroupContent, SidebarGroupLabel, SidebarHeader, SidebarInput, SidebarInset, SidebarMenu, SidebarMenuAction, SidebarMenuBadge, SidebarMenuButton, SidebarMenuItem, SidebarMenuSkeleton, SidebarMenuSub, SidebarMenuSubButton, SidebarMenuSubItem, SidebarProvider, SidebarRail, SidebarSeparator, SidebarTrigger, Stack, Statement, StatementHeader, StatementView, StatusBadge, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow, Tabs, TabsContent, TabsList, TabsTrigger, Toast, ToastAction, ToastClose, ToastDescription, ToastProvider, ToastTitle, ToastViewport, Toaster, Tooltip, TooltipContent, TooltipProvider, TooltipTrigger, TransactionDetail_default as TransactionDetail, TransactionDetailView, TransactionHistory_default as TransactionHistory, TransactionHistoryFiltersSheet, TransactionHistoryView, TransactionTypeBadge, UIKit, UIKitShowcase, VelocityLimitDetail, VelocityLimits, WireDetailsSection, WireTransferSection, badgeVariants, buttonVariants, cardVariants, downloadCSV, generateStatementCSV, inputVariants, newTransactionSchema, reducer, textareaVariants, toast, useAlertDetail, useCounterpartyEntity, useEditState, useFormWithEditState, useIsMobile, useSidebar, useToast };
|
|
17277
17520
|
//# sourceMappingURL=index.js.map
|
|
17278
17521
|
//# sourceMappingURL=index.js.map
|