@burdenoff/microfe-kadaikodi 2026.719.4 → 2026.730.1

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 (37) hide show
  1. package/dist/kadaikodi/KadaikodiRoutes.d.ts.map +1 -1
  2. package/dist/kadaikodi/KadaikodiRoutes.js +33 -29
  3. package/dist/kadaikodi/KadaikodiRoutes.js.map +1 -1
  4. package/dist/kadaikodi/components/InvestmentMarketplaceGate.d.ts +13 -0
  5. package/dist/kadaikodi/components/InvestmentMarketplaceGate.d.ts.map +1 -0
  6. package/dist/kadaikodi/components/InvestmentMarketplaceGate.js +23 -0
  7. package/dist/kadaikodi/components/InvestmentMarketplaceGate.js.map +1 -0
  8. package/dist/kadaikodi/components/index.d.ts +1 -0
  9. package/dist/kadaikodi/components/index.d.ts.map +1 -1
  10. package/dist/kadaikodi/constants/featureFlags.d.ts +23 -0
  11. package/dist/kadaikodi/constants/featureFlags.d.ts.map +1 -0
  12. package/dist/kadaikodi/constants/featureFlags.js +6 -0
  13. package/dist/kadaikodi/constants/featureFlags.js.map +1 -0
  14. package/dist/kadaikodi/hooks/useKadaikodiApi.d.ts +42 -0
  15. package/dist/kadaikodi/hooks/useKadaikodiApi.d.ts.map +1 -1
  16. package/dist/kadaikodi/hooks/useKadaikodiApi.js +133 -65
  17. package/dist/kadaikodi/hooks/useKadaikodiApi.js.map +1 -1
  18. package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.d.ts.map +1 -1
  19. package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js +180 -162
  20. package/dist/kadaikodi/pages/cart-owner/BusinessSettingsPage.js.map +1 -1
  21. package/dist/kadaikodi/pages/cart-owner/InvestmentListingPage.d.ts.map +1 -1
  22. package/dist/kadaikodi/pages/cart-owner/InvestmentListingPage.js +135 -126
  23. package/dist/kadaikodi/pages/cart-owner/InvestmentListingPage.js.map +1 -1
  24. package/dist/kadaikodi/pages/cart-owner/LoyaltyManagementPage.d.ts +12 -0
  25. package/dist/kadaikodi/pages/cart-owner/LoyaltyManagementPage.d.ts.map +1 -0
  26. package/dist/kadaikodi/pages/cart-owner/LoyaltyManagementPage.js +198 -0
  27. package/dist/kadaikodi/pages/cart-owner/LoyaltyManagementPage.js.map +1 -0
  28. package/dist/kadaikodi/pages/customer/CustomerProfilePage.d.ts.map +1 -1
  29. package/dist/kadaikodi/pages/customer/CustomerProfilePage.js +256 -97
  30. package/dist/kadaikodi/pages/customer/CustomerProfilePage.js.map +1 -1
  31. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.d.ts.map +1 -1
  32. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js +171 -166
  33. package/dist/kadaikodi/pages/investor/InvestmentDetailsPage.js.map +1 -1
  34. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.d.ts.map +1 -1
  35. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js +220 -217
  36. package/dist/kadaikodi/pages/investor/InvestmentOpportunitiesPage.js.map +1 -1
  37. package/package.json +1 -1
@@ -0,0 +1,198 @@
1
+ import { cn as e } from "../../utils/cn.js";
2
+ import { PageLayout as t } from "../../components/PageLayout.js";
3
+ import { EmptyState as n } from "../../components/EmptyState.js";
4
+ import { useAwardLoyaltyPoints as r, useListLoyaltyTransactions as i, useLoyaltyAccountByCustomerId as a } from "../../hooks/useKadaikodiApi.js";
5
+ import { useState as o } from "react";
6
+ import { CheckCircle2 as s, Gift as c, History as l, Loader2 as u, Search as d } from "lucide-react";
7
+ import { Fragment as f, jsx as p, jsxs as m } from "react/jsx-runtime";
8
+ import { EmphasisPanel as h, PagePurpose as g } from "@burdenoff/fe-libs/ui";
9
+ //#region src/kadaikodi/pages/cart-owner/LoyaltyManagementPage.tsx
10
+ function _() {
11
+ let [_, v] = o(""), [y, b] = o(""), [x, S] = o("100"), [C, w] = o(""), [T, E] = o(null), [D, O] = o(null), { data: k, isLoading: A } = a(y), { data: j = [], isLoading: M } = i(y || void 0), N = r(), P = (e) => {
12
+ E(e), setTimeout(() => E(null), 4e3);
13
+ }, F = () => {
14
+ b(_.trim());
15
+ };
16
+ return /* @__PURE__ */ m(t, {
17
+ title: "Loyalty Program",
18
+ description: "Look up customer balances, award goodwill points, and review the recent ledger",
19
+ children: [
20
+ /* @__PURE__ */ p(g, {
21
+ className: "mb-6",
22
+ children: "Kadaikodi's loyalty program is marketplace-wide: customers earn 1 point per ₹100 spent on every completed order (across any cart), and can redeem points for a discount on a future order. Use this page to support a specific customer — check their balance, credit a goodwill/compensation award, and review recent activity."
23
+ }),
24
+ /* @__PURE__ */ m("div", {
25
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-5 mb-6",
26
+ children: [/* @__PURE__ */ p("h3", {
27
+ className: "text-base font-semibold text-text-primary mb-3",
28
+ children: "Look up a customer"
29
+ }), /* @__PURE__ */ m("div", {
30
+ className: "flex flex-col sm:flex-row gap-3",
31
+ children: [/* @__PURE__ */ p("input", {
32
+ type: "text",
33
+ placeholder: "Customer id (actor id)",
34
+ value: _,
35
+ onChange: (e) => v(e.target.value),
36
+ onKeyDown: (e) => e.key === "Enter" && F(),
37
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface px-3 py-2.5 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
38
+ }), /* @__PURE__ */ m("button", {
39
+ type: "button",
40
+ onClick: F,
41
+ disabled: !_.trim(),
42
+ className: "flex items-center justify-center gap-2 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity disabled:opacity-50 disabled:cursor-not-allowed",
43
+ children: [/* @__PURE__ */ p(d, { className: "h-4 w-4" }), "Look up"]
44
+ })]
45
+ })]
46
+ }),
47
+ T && /* @__PURE__ */ m("div", {
48
+ className: "mb-4 rounded-lg border border-status-success-text/30 bg-status-success-bg-subtle p-3 flex items-center gap-2",
49
+ children: [/* @__PURE__ */ p(s, { className: "h-4 w-4 text-status-success-text shrink-0" }), /* @__PURE__ */ p("p", {
50
+ className: "text-sm text-status-success-text",
51
+ children: T
52
+ })]
53
+ }),
54
+ D && /* @__PURE__ */ p("div", {
55
+ className: "mb-4 rounded-lg border border-status-error-text/30 bg-status-error-bg/10 p-3",
56
+ children: /* @__PURE__ */ p("p", {
57
+ className: "text-sm text-status-error-text",
58
+ children: D
59
+ })
60
+ }),
61
+ y && /* @__PURE__ */ m(f, { children: [
62
+ A ? /* @__PURE__ */ p("div", {
63
+ className: "flex h-24 items-center justify-center mb-6",
64
+ children: /* @__PURE__ */ p(u, { className: "h-6 w-6 animate-spin text-text-secondary" })
65
+ }) : /* @__PURE__ */ p(h, {
66
+ className: "mb-6",
67
+ children: /* @__PURE__ */ m("div", {
68
+ className: "flex items-center gap-2 text-sm text-text-secondary",
69
+ children: [/* @__PURE__ */ p(c, { className: "h-4 w-4" }), k ? /* @__PURE__ */ m("span", { children: [
70
+ "Customer",
71
+ " ",
72
+ /* @__PURE__ */ p("span", {
73
+ className: "font-medium text-text-primary",
74
+ children: y
75
+ }),
76
+ " has",
77
+ " ",
78
+ /* @__PURE__ */ p("span", {
79
+ className: "font-semibold text-text-primary",
80
+ children: k.pointsBalance
81
+ }),
82
+ " ",
83
+ "points (lifetime earned ",
84
+ k.lifetimePointsEarned,
85
+ ", lifetime redeemed",
86
+ " ",
87
+ k.lifetimePointsRedeemed,
88
+ ")."
89
+ ] }) : /* @__PURE__ */ m("span", { children: [
90
+ "No loyalty account yet for",
91
+ " ",
92
+ /* @__PURE__ */ p("span", {
93
+ className: "font-medium text-text-primary",
94
+ children: y
95
+ }),
96
+ " — one will be created automatically when points are earned or awarded."
97
+ ] })]
98
+ })
99
+ }),
100
+ /* @__PURE__ */ m("div", {
101
+ className: "rounded-lg border border-border-subtle bg-bg-surface p-5 mb-6",
102
+ children: [
103
+ /* @__PURE__ */ p("h3", {
104
+ className: "text-base font-semibold text-text-primary mb-1",
105
+ children: "Award Points"
106
+ }),
107
+ /* @__PURE__ */ p("p", {
108
+ className: "text-xs text-text-secondary mb-4",
109
+ children: "Manual credit for goodwill, compensation, or a promotion — separate from automatic accrual on completed orders."
110
+ }),
111
+ /* @__PURE__ */ m("div", {
112
+ className: "grid grid-cols-1 sm:grid-cols-[140px_1fr_auto] gap-3",
113
+ children: [
114
+ /* @__PURE__ */ p("input", {
115
+ type: "number",
116
+ min: 1,
117
+ step: 1,
118
+ value: x,
119
+ onChange: (e) => S(e.target.value),
120
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
121
+ }),
122
+ /* @__PURE__ */ p("input", {
123
+ type: "text",
124
+ placeholder: "Reason (optional)",
125
+ value: C,
126
+ onChange: (e) => w(e.target.value),
127
+ className: "w-full rounded-lg border border-border-subtle bg-bg-surface px-3 py-2.5 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]"
128
+ }),
129
+ /* @__PURE__ */ m("button", {
130
+ type: "button",
131
+ onClick: async () => {
132
+ O(null);
133
+ let e = parseInt(x, 10);
134
+ if (!y.trim()) {
135
+ O("Look up a customer id first.");
136
+ return;
137
+ }
138
+ if (!Number.isFinite(e) || e <= 0) {
139
+ O("Enter a positive number of points to award.");
140
+ return;
141
+ }
142
+ try {
143
+ await N.mutateAsync({
144
+ customerId: y.trim(),
145
+ points: e,
146
+ reason: C.trim() || void 0
147
+ }), P(`Awarded ${e} points to customer ${y.trim()}.`), w("");
148
+ } catch (e) {
149
+ O(e instanceof Error ? e.message : "Failed to award points.");
150
+ }
151
+ },
152
+ disabled: N.isPending,
153
+ className: "flex items-center justify-center gap-2 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity disabled:opacity-50 disabled:cursor-not-allowed",
154
+ children: [N.isPending ? /* @__PURE__ */ p(u, { className: "h-4 w-4 animate-spin" }) : /* @__PURE__ */ p(c, { className: "h-4 w-4" }), "Award"]
155
+ })
156
+ ]
157
+ })
158
+ ]
159
+ }),
160
+ /* @__PURE__ */ m("div", { children: [/* @__PURE__ */ m("h3", {
161
+ className: "text-base font-semibold text-text-primary mb-3 flex items-center gap-2",
162
+ children: [/* @__PURE__ */ p(l, { className: "h-4 w-4 text-text-secondary" }), "Recent Activity"]
163
+ }), M ? /* @__PURE__ */ p("div", {
164
+ className: "flex h-24 items-center justify-center",
165
+ children: /* @__PURE__ */ p(u, { className: "h-5 w-5 animate-spin text-text-secondary" })
166
+ }) : j.length > 0 ? /* @__PURE__ */ p("div", {
167
+ className: "space-y-2",
168
+ children: j.map((t) => /* @__PURE__ */ m("div", {
169
+ className: "flex items-center justify-between rounded-lg border border-border-subtle bg-bg-surface p-3",
170
+ children: [/* @__PURE__ */ m("div", { children: [/* @__PURE__ */ p("p", {
171
+ className: "text-sm font-medium text-text-primary",
172
+ children: t.description || t.type
173
+ }), /* @__PURE__ */ p("p", {
174
+ className: "text-xs text-text-secondary",
175
+ children: new Date(t.createdAt).toLocaleDateString()
176
+ })] }), /* @__PURE__ */ m("p", {
177
+ className: e("text-sm font-semibold", t.points >= 0 ? "text-status-success-text" : "text-status-error-text"),
178
+ children: [
179
+ t.points >= 0 ? "+" : "",
180
+ t.points,
181
+ " pts"
182
+ ]
183
+ })]
184
+ }, t.id))
185
+ }) : /* @__PURE__ */ p(n, {
186
+ illustration: "empty-data",
187
+ icon: /* @__PURE__ */ p(c, { className: "h-12 w-12" }),
188
+ title: "No activity yet",
189
+ description: "This customer hasn't earned, redeemed, or been awarded any points yet."
190
+ })] })
191
+ ] })
192
+ ]
193
+ });
194
+ }
195
+ //#endregion
196
+ export { _ as LoyaltyManagementPage };
197
+
198
+ //# sourceMappingURL=LoyaltyManagementPage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LoyaltyManagementPage.js","names":[],"sources":["../../../../src/kadaikodi/pages/cart-owner/LoyaltyManagementPage.tsx"],"sourcesContent":["/**\n * Loyalty Management Page\n * @module kadaikodi/pages/cart-owner\n *\n * Merchant/admin view of the marketplace-wide loyalty program (BOFF-4290):\n * look up a customer's points balance, manually award goodwill/compensation\n * points, and browse the recent points ledger. Backed by real server\n * persistence (kadaikodiLoyaltyAccount / kadaikodiListLoyaltyTransactions /\n * kadaikodiAwardLoyaltyPoints) — no client-only state.\n */\n\nimport { useState } from 'react';\nimport { Gift, Search, Loader2, CheckCircle2, History } from 'lucide-react';\nimport { PagePurpose, EmphasisPanel } from '@burdenoff/fe-libs/ui';\nimport { PageLayout } from '../../components/PageLayout';\nimport { EmptyState } from '../../components/EmptyState';\nimport {\n useLoyaltyAccountByCustomerId,\n useListLoyaltyTransactions,\n useAwardLoyaltyPoints,\n} from '../../hooks/useKadaikodiApi';\nimport { cn } from '../../utils/cn';\n\nexport function LoyaltyManagementPage() {\n const [lookupCustomerId, setLookupCustomerId] = useState('');\n const [searchedCustomerId, setSearchedCustomerId] = useState('');\n const [awardPoints, setAwardPoints] = useState('100');\n const [awardReason, setAwardReason] = useState('');\n const [statusMessage, setStatusMessage] = useState<string | null>(null);\n const [errorMessage, setErrorMessage] = useState<string | null>(null);\n\n const { data: account, isLoading: isLoadingAccount } =\n useLoyaltyAccountByCustomerId(searchedCustomerId);\n const { data: transactions = [], isLoading: isLoadingTransactions } = useListLoyaltyTransactions(\n searchedCustomerId || undefined\n );\n const awardLoyaltyPoints = useAwardLoyaltyPoints();\n\n const showStatus = (msg: string) => {\n setStatusMessage(msg);\n setTimeout(() => setStatusMessage(null), 4000);\n };\n\n const handleSearch = () => {\n setSearchedCustomerId(lookupCustomerId.trim());\n };\n\n const handleAward = async () => {\n setErrorMessage(null);\n const points = parseInt(awardPoints, 10);\n if (!searchedCustomerId.trim()) {\n setErrorMessage('Look up a customer id first.');\n return;\n }\n if (!Number.isFinite(points) || points <= 0) {\n setErrorMessage('Enter a positive number of points to award.');\n return;\n }\n try {\n await awardLoyaltyPoints.mutateAsync({\n customerId: searchedCustomerId.trim(),\n points,\n reason: awardReason.trim() || undefined,\n });\n showStatus(`Awarded ${points} points to customer ${searchedCustomerId.trim()}.`);\n setAwardReason('');\n } catch (err) {\n setErrorMessage(err instanceof Error ? err.message : 'Failed to award points.');\n }\n };\n\n return (\n <PageLayout\n title=\"Loyalty Program\"\n description=\"Look up customer balances, award goodwill points, and review the recent ledger\"\n >\n <PagePurpose className=\"mb-6\">\n Kadaikodi's loyalty program is marketplace-wide: customers earn 1 point per ₹100 spent on\n every completed order (across any cart), and can redeem points for a discount on a future\n order. Use this page to support a specific customer — check their balance, credit a\n goodwill/compensation award, and review recent activity.\n </PagePurpose>\n\n {/* Customer lookup */}\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-5 mb-6\">\n <h3 className=\"text-base font-semibold text-text-primary mb-3\">Look up a customer</h3>\n <div className=\"flex flex-col sm:flex-row gap-3\">\n <input\n type=\"text\"\n placeholder=\"Customer id (actor id)\"\n value={lookupCustomerId}\n onChange={(e) => setLookupCustomerId(e.target.value)}\n onKeyDown={(e) => e.key === 'Enter' && handleSearch()}\n className=\"w-full rounded-lg border border-border-subtle bg-bg-surface px-3 py-2.5 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]\"\n />\n <button\n type=\"button\"\n onClick={handleSearch}\n disabled={!lookupCustomerId.trim()}\n className=\"flex items-center justify-center gap-2 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n <Search className=\"h-4 w-4\" />\n Look up\n </button>\n </div>\n </div>\n\n {statusMessage && (\n <div className=\"mb-4 rounded-lg border border-status-success-text/30 bg-status-success-bg-subtle p-3 flex items-center gap-2\">\n <CheckCircle2 className=\"h-4 w-4 text-status-success-text shrink-0\" />\n <p className=\"text-sm text-status-success-text\">{statusMessage}</p>\n </div>\n )}\n {errorMessage && (\n <div className=\"mb-4 rounded-lg border border-status-error-text/30 bg-status-error-bg/10 p-3\">\n <p className=\"text-sm text-status-error-text\">{errorMessage}</p>\n </div>\n )}\n\n {searchedCustomerId && (\n <>\n {/* Balance summary */}\n {isLoadingAccount ? (\n <div className=\"flex h-24 items-center justify-center mb-6\">\n <Loader2 className=\"h-6 w-6 animate-spin text-text-secondary\" />\n </div>\n ) : (\n <EmphasisPanel className=\"mb-6\">\n <div className=\"flex items-center gap-2 text-sm text-text-secondary\">\n <Gift className=\"h-4 w-4\" />\n {account ? (\n <span>\n Customer{' '}\n <span className=\"font-medium text-text-primary\">{searchedCustomerId}</span> has{' '}\n <span className=\"font-semibold text-text-primary\">{account.pointsBalance}</span>{' '}\n points (lifetime earned {account.lifetimePointsEarned}, lifetime redeemed{' '}\n {account.lifetimePointsRedeemed}).\n </span>\n ) : (\n <span>\n No loyalty account yet for{' '}\n <span className=\"font-medium text-text-primary\">{searchedCustomerId}</span> —\n one will be created automatically when points are earned or awarded.\n </span>\n )}\n </div>\n </EmphasisPanel>\n )}\n\n {/* Award points form */}\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-5 mb-6\">\n <h3 className=\"text-base font-semibold text-text-primary mb-1\">Award Points</h3>\n <p className=\"text-xs text-text-secondary mb-4\">\n Manual credit for goodwill, compensation, or a promotion — separate from automatic\n accrual on completed orders.\n </p>\n <div className=\"grid grid-cols-1 sm:grid-cols-[140px_1fr_auto] gap-3\">\n <input\n type=\"number\"\n min={1}\n step={1}\n value={awardPoints}\n onChange={(e) => setAwardPoints(e.target.value)}\n className=\"w-full rounded-lg border border-border-subtle bg-bg-surface px-3 py-2.5 text-sm text-text-primary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]\"\n />\n <input\n type=\"text\"\n placeholder=\"Reason (optional)\"\n value={awardReason}\n onChange={(e) => setAwardReason(e.target.value)}\n className=\"w-full rounded-lg border border-border-subtle bg-bg-surface px-3 py-2.5 text-sm text-text-primary placeholder:text-text-secondary focus:outline-none focus:ring-2 focus:ring-[var(--color-focus-ring)]\"\n />\n <button\n type=\"button\"\n onClick={handleAward}\n disabled={awardLoyaltyPoints.isPending}\n className=\"flex items-center justify-center gap-2 rounded-lg bg-foreground px-4 py-2.5 text-sm font-medium text-background hover:opacity-90 transition-opacity disabled:opacity-50 disabled:cursor-not-allowed\"\n >\n {awardLoyaltyPoints.isPending ? (\n <Loader2 className=\"h-4 w-4 animate-spin\" />\n ) : (\n <Gift className=\"h-4 w-4\" />\n )}\n Award\n </button>\n </div>\n </div>\n\n {/* Transaction history for this customer */}\n <div>\n <h3 className=\"text-base font-semibold text-text-primary mb-3 flex items-center gap-2\">\n <History className=\"h-4 w-4 text-text-secondary\" />\n Recent Activity\n </h3>\n {isLoadingTransactions ? (\n <div className=\"flex h-24 items-center justify-center\">\n <Loader2 className=\"h-5 w-5 animate-spin text-text-secondary\" />\n </div>\n ) : transactions.length > 0 ? (\n <div className=\"space-y-2\">\n {transactions.map((txn) => (\n <div\n key={txn.id}\n className=\"flex items-center justify-between rounded-lg border border-border-subtle bg-bg-surface p-3\"\n >\n <div>\n <p className=\"text-sm font-medium text-text-primary\">\n {txn.description || txn.type}\n </p>\n <p className=\"text-xs text-text-secondary\">\n {new Date(txn.createdAt).toLocaleDateString()}\n </p>\n </div>\n <p\n className={cn(\n 'text-sm font-semibold',\n txn.points >= 0 ? 'text-status-success-text' : 'text-status-error-text'\n )}\n >\n {txn.points >= 0 ? '+' : ''}\n {txn.points} pts\n </p>\n </div>\n ))}\n </div>\n ) : (\n <EmptyState\n illustration=\"empty-data\"\n icon={<Gift className=\"h-12 w-12\" />}\n title=\"No activity yet\"\n description=\"This customer hasn't earned, redeemed, or been awarded any points yet.\"\n />\n )}\n </div>\n </>\n )}\n </PageLayout>\n );\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"CustomerProfilePage.d.ts","sourceRoot":"","sources":["../../../../src/kadaikodi/pages/customer/CustomerProfilePage.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqDH,wBAAgB,mBAAmB,gCAudlC"}
1
+ {"version":3,"file":"CustomerProfilePage.d.ts","sourceRoot":"","sources":["../../../../src/kadaikodi/pages/customer/CustomerProfilePage.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AA+DH,wBAAgB,mBAAmB,gCA2oBlC"}