@burdenoff/microfe-housingvista 2026.709.2 → 2026.709.3
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/housingvista/HousingVistaRoutes.d.ts.map +1 -1
- package/dist/housingvista/HousingVistaRoutes.js +136 -37
- package/dist/housingvista/HousingVistaRoutes.js.map +1 -1
- package/dist/housingvista/hooks/useHousingVistaAnalytics.d.ts +1 -1
- package/dist/housingvista/hooks/useHousingVistaAnalytics.d.ts.map +1 -1
- package/dist/housingvista/hooks/useHousingVistaAnalytics.js +4 -4
- package/dist/housingvista/hooks/useHousingVistaAnalytics.js.map +1 -1
- package/dist/housingvista/pages/amc/AMCManagementPage.d.ts.map +1 -1
- package/dist/housingvista/pages/amc/AMCManagementPage.js +62 -60
- package/dist/housingvista/pages/amc/AMCManagementPage.js.map +1 -1
- package/dist/housingvista/pages/assets/AssetDetailPage.d.ts.map +1 -1
- package/dist/housingvista/pages/assets/AssetDetailPage.js +141 -138
- package/dist/housingvista/pages/assets/AssetDetailPage.js.map +1 -1
- package/dist/housingvista/pages/assets/AssetManagementPage.d.ts.map +1 -1
- package/dist/housingvista/pages/assets/AssetManagementPage.js +193 -191
- package/dist/housingvista/pages/assets/AssetManagementPage.js.map +1 -1
- package/dist/housingvista/pages/chat/ChatPage.d.ts.map +1 -1
- package/dist/housingvista/pages/chat/ChatPage.js +115 -113
- package/dist/housingvista/pages/chat/ChatPage.js.map +1 -1
- package/dist/housingvista/pages/finance/HomeLoanDetailPage.d.ts.map +1 -1
- package/dist/housingvista/pages/finance/HomeLoanDetailPage.js +152 -149
- package/dist/housingvista/pages/finance/HomeLoanDetailPage.js.map +1 -1
- package/dist/housingvista/pages/finance/HomeLoansPage.d.ts.map +1 -1
- package/dist/housingvista/pages/finance/HomeLoansPage.js +141 -139
- package/dist/housingvista/pages/finance/HomeLoansPage.js.map +1 -1
- package/dist/housingvista/pages/investments/InvestmentDetailPage.d.ts.map +1 -1
- package/dist/housingvista/pages/investments/InvestmentDetailPage.js +290 -287
- package/dist/housingvista/pages/investments/InvestmentDetailPage.js.map +1 -1
- package/dist/housingvista/pages/investments/InvestmentsPage.d.ts.map +1 -1
- package/dist/housingvista/pages/investments/InvestmentsPage.js +64 -62
- package/dist/housingvista/pages/investments/InvestmentsPage.js.map +1 -1
- package/dist/housingvista/pages/legal/LegalPage.d.ts.map +1 -1
- package/dist/housingvista/pages/legal/LegalPage.js +95 -93
- package/dist/housingvista/pages/legal/LegalPage.js.map +1 -1
- package/dist/housingvista/pages/legal/LegalServiceDetailPage.d.ts.map +1 -1
- package/dist/housingvista/pages/legal/LegalServiceDetailPage.js +129 -126
- package/dist/housingvista/pages/legal/LegalServiceDetailPage.js.map +1 -1
- package/dist/housingvista/pages/market/AreaInsightsPage.d.ts.map +1 -1
- package/dist/housingvista/pages/market/AreaInsightsPage.js +99 -97
- package/dist/housingvista/pages/market/AreaInsightsPage.js.map +1 -1
- package/dist/housingvista/pages/market/MarketAnalyticsPage.d.ts.map +1 -1
- package/dist/housingvista/pages/market/MarketAnalyticsPage.js +138 -136
- package/dist/housingvista/pages/market/MarketAnalyticsPage.js.map +1 -1
- package/dist/housingvista/pages/marketplace/MarketplacePage.d.ts.map +1 -1
- package/dist/housingvista/pages/marketplace/MarketplacePage.js +99 -97
- package/dist/housingvista/pages/marketplace/MarketplacePage.js.map +1 -1
- package/dist/housingvista/pages/marketplace/ServiceDetailPage.d.ts.map +1 -1
- package/dist/housingvista/pages/marketplace/ServiceDetailPage.js +137 -134
- package/dist/housingvista/pages/marketplace/ServiceDetailPage.js.map +1 -1
- package/dist/housingvista/pages/offers/OffersPage.d.ts.map +1 -1
- package/dist/housingvista/pages/offers/OffersPage.js +94 -92
- package/dist/housingvista/pages/offers/OffersPage.js.map +1 -1
- package/dist/housingvista/pages/properties/AddPropertyPage.d.ts.map +1 -1
- package/dist/housingvista/pages/properties/AddPropertyPage.js +280 -279
- package/dist/housingvista/pages/properties/AddPropertyPage.js.map +1 -1
- package/dist/housingvista/pages/rental/RentalManagementPage.d.ts.map +1 -1
- package/dist/housingvista/pages/rental/RentalManagementPage.js +153 -151
- package/dist/housingvista/pages/rental/RentalManagementPage.js.map +1 -1
- package/dist/housingvista/pages/settings/ProfilePage.d.ts.map +1 -1
- package/dist/housingvista/pages/settings/ProfilePage.js +52 -50
- package/dist/housingvista/pages/settings/ProfilePage.js.map +1 -1
- package/dist/housingvista/pages/settings/SettingsPage.d.ts.map +1 -1
- package/dist/housingvista/pages/settings/SettingsPage.js +54 -52
- package/dist/housingvista/pages/settings/SettingsPage.js.map +1 -1
- package/dist/housingvista/pages/shortlist/ShortlistPage.d.ts.map +1 -1
- package/dist/housingvista/pages/shortlist/ShortlistPage.js +43 -41
- package/dist/housingvista/pages/shortlist/ShortlistPage.js.map +1 -1
- package/dist/housingvista/pages/transactions/TransactionDetailPage.d.ts.map +1 -1
- package/dist/housingvista/pages/transactions/TransactionDetailPage.js +211 -208
- package/dist/housingvista/pages/transactions/TransactionDetailPage.js.map +1 -1
- package/dist/housingvista/pages/transactions/TransactionsPage.d.ts.map +1 -1
- package/dist/housingvista/pages/transactions/TransactionsPage.js +85 -83
- package/dist/housingvista/pages/transactions/TransactionsPage.js.map +1 -1
- package/dist/housingvista/pages/verification/VerificationDetailPage.d.ts.map +1 -1
- package/dist/housingvista/pages/verification/VerificationDetailPage.js +25 -22
- package/dist/housingvista/pages/verification/VerificationDetailPage.js.map +1 -1
- package/dist/housingvista/pages/verification/VerificationPage.d.ts.map +1 -1
- package/dist/housingvista/pages/verification/VerificationPage.js +123 -121
- package/dist/housingvista/pages/verification/VerificationPage.js.map +1 -1
- package/dist/housingvista/pages/viewings/ViewingsPage.d.ts.map +1 -1
- package/dist/housingvista/pages/viewings/ViewingsPage.js +128 -126
- package/dist/housingvista/pages/viewings/ViewingsPage.js.map +1 -1
- package/package.json +1 -1
|
@@ -1,94 +1,96 @@
|
|
|
1
1
|
import { PageLayout as e } from "../../components/PageLayout.js";
|
|
2
|
+
import { useTrackPageView as t } from "../../hooks/useHousingVistaAnalytics.js";
|
|
2
3
|
import "../../components/index.js";
|
|
3
|
-
import { Database as
|
|
4
|
-
import { jsx as
|
|
5
|
-
import { useI18n as
|
|
6
|
-
import { EmphasisPanel as
|
|
4
|
+
import { Database as n, Download as r, ExternalLink as i, Fingerprint as a, Key as o, Shield as s, Trash2 as c } from "lucide-react";
|
|
5
|
+
import { jsx as l, jsxs as u } from "react/jsx-runtime";
|
|
6
|
+
import { useI18n as d } from "@burdenoff/fe-libs/shared/providers/shell/I18nProvider";
|
|
7
|
+
import { EmphasisPanel as f } from "@burdenoff/fe-libs/ui";
|
|
7
8
|
//#region src/housingvista/pages/settings/SettingsPage.tsx
|
|
8
|
-
var
|
|
9
|
-
function
|
|
9
|
+
var p = "/auth/security", m = "/export";
|
|
10
|
+
function h({ icon: e, label: t, description: n, onClick: r, tone: a = "default" }) {
|
|
10
11
|
let o = a === "danger";
|
|
11
|
-
return /* @__PURE__ */
|
|
12
|
-
onClick:
|
|
12
|
+
return /* @__PURE__ */ u("button", {
|
|
13
|
+
onClick: r,
|
|
13
14
|
className: o ? "flex w-full items-center gap-3 rounded-md border border-status-error-border bg-status-error-bg-subtle p-3 text-left transition-colors hover:bg-status-error-bg-subtle/70" : "flex w-full items-center gap-3 rounded-md border border-border-subtle p-3 text-left transition-colors hover:bg-bg-sunken",
|
|
14
15
|
children: [
|
|
15
|
-
/* @__PURE__ */
|
|
16
|
+
/* @__PURE__ */ l("span", {
|
|
16
17
|
className: o ? "text-status-error-text" : "text-text-secondary",
|
|
17
18
|
children: e
|
|
18
19
|
}),
|
|
19
|
-
/* @__PURE__ */
|
|
20
|
+
/* @__PURE__ */ u("div", {
|
|
20
21
|
className: "min-w-0 flex-1",
|
|
21
|
-
children: [/* @__PURE__ */
|
|
22
|
+
children: [/* @__PURE__ */ l("p", {
|
|
22
23
|
className: o ? "text-sm font-medium text-status-error-text" : "text-sm font-medium text-text-primary",
|
|
23
24
|
children: t
|
|
24
|
-
}), /* @__PURE__ */
|
|
25
|
+
}), /* @__PURE__ */ l("p", {
|
|
25
26
|
className: "text-xs text-text-secondary",
|
|
26
27
|
children: n
|
|
27
28
|
})]
|
|
28
29
|
}),
|
|
29
|
-
/* @__PURE__ */
|
|
30
|
+
/* @__PURE__ */ l(i, { className: "h-3.5 w-3.5 shrink-0 text-text-secondary" })
|
|
30
31
|
]
|
|
31
32
|
});
|
|
32
33
|
}
|
|
33
|
-
function
|
|
34
|
-
|
|
35
|
-
|
|
34
|
+
function g() {
|
|
35
|
+
t("housingvista.settings.viewed");
|
|
36
|
+
let { t: i } = d(), g = (e, t) => {
|
|
37
|
+
let n = i(e);
|
|
36
38
|
return n === e ? t : n;
|
|
37
|
-
},
|
|
38
|
-
return /* @__PURE__ */
|
|
39
|
-
title:
|
|
40
|
-
description:
|
|
41
|
-
purpose:
|
|
42
|
-
children: [/* @__PURE__ */
|
|
39
|
+
}, _ = () => window.location.assign(p);
|
|
40
|
+
return /* @__PURE__ */ u(e, {
|
|
41
|
+
title: g("housingvista.settings.title", "Settings"),
|
|
42
|
+
description: g("housingvista.settings.description", "Manage your account security and data"),
|
|
43
|
+
purpose: g("housingvista.settings.purpose", "Tighten your account security and control your data. Your account, password, two-factor authentication, and data export are managed by the platform — the actions below take you there. Appearance and theme are managed from the top bar."),
|
|
44
|
+
children: [/* @__PURE__ */ u(f, {
|
|
43
45
|
className: "p-5",
|
|
44
46
|
children: [
|
|
45
|
-
/* @__PURE__ */
|
|
47
|
+
/* @__PURE__ */ u("h2", {
|
|
46
48
|
className: "flex items-center gap-2 text-base font-semibold text-text-primary",
|
|
47
|
-
children: [/* @__PURE__ */
|
|
49
|
+
children: [/* @__PURE__ */ l(s, { className: "h-4 w-4 text-text-secondary" }), g("housingvista.settings.sections.security", "Security")]
|
|
48
50
|
}),
|
|
49
|
-
/* @__PURE__ */
|
|
51
|
+
/* @__PURE__ */ l("p", {
|
|
50
52
|
className: "mb-3 mt-1 text-xs text-text-secondary",
|
|
51
|
-
children:
|
|
53
|
+
children: g("housingvista.settings.security.note", "Managed by your account security settings.")
|
|
52
54
|
}),
|
|
53
|
-
/* @__PURE__ */
|
|
55
|
+
/* @__PURE__ */ u("div", {
|
|
54
56
|
className: "space-y-3",
|
|
55
|
-
children: [/* @__PURE__ */
|
|
56
|
-
icon: /* @__PURE__ */
|
|
57
|
-
label:
|
|
58
|
-
description:
|
|
59
|
-
onClick:
|
|
60
|
-
}), /* @__PURE__ */
|
|
61
|
-
icon: /* @__PURE__ */
|
|
62
|
-
label:
|
|
63
|
-
description:
|
|
64
|
-
onClick:
|
|
57
|
+
children: [/* @__PURE__ */ l(h, {
|
|
58
|
+
icon: /* @__PURE__ */ l(o, { className: "h-4 w-4" }),
|
|
59
|
+
label: g("housingvista.settings.security.changePassword.label", "Change Password"),
|
|
60
|
+
description: g("housingvista.settings.security.changePassword.description", "Update your account password"),
|
|
61
|
+
onClick: _
|
|
62
|
+
}), /* @__PURE__ */ l(h, {
|
|
63
|
+
icon: /* @__PURE__ */ l(a, { className: "h-4 w-4" }),
|
|
64
|
+
label: g("housingvista.settings.security.twoFactor.label", "Two-Factor Authentication"),
|
|
65
|
+
description: g("housingvista.settings.security.twoFactor.description", "Add an extra layer of security to your account"),
|
|
66
|
+
onClick: _
|
|
65
67
|
})]
|
|
66
68
|
})
|
|
67
69
|
]
|
|
68
|
-
}), /* @__PURE__ */
|
|
70
|
+
}), /* @__PURE__ */ u("div", {
|
|
69
71
|
className: "rounded-lg border border-border-subtle bg-bg-surface p-5",
|
|
70
|
-
children: [/* @__PURE__ */
|
|
72
|
+
children: [/* @__PURE__ */ u("h2", {
|
|
71
73
|
className: "mb-4 flex items-center gap-2 text-base font-semibold text-text-primary",
|
|
72
|
-
children: [/* @__PURE__ */
|
|
73
|
-
}), /* @__PURE__ */
|
|
74
|
+
children: [/* @__PURE__ */ l(n, { className: "h-4 w-4 text-text-secondary" }), g("housingvista.settings.sections.dataPrivacy", "Data & Privacy")]
|
|
75
|
+
}), /* @__PURE__ */ u("div", {
|
|
74
76
|
className: "space-y-3",
|
|
75
|
-
children: [/* @__PURE__ */
|
|
76
|
-
icon: /* @__PURE__ */
|
|
77
|
-
label:
|
|
78
|
-
description:
|
|
79
|
-
onClick: () => window.location.assign(
|
|
80
|
-
}), /* @__PURE__ */
|
|
77
|
+
children: [/* @__PURE__ */ l(h, {
|
|
78
|
+
icon: /* @__PURE__ */ l(r, { className: "h-4 w-4" }),
|
|
79
|
+
label: g("housingvista.settings.dataPrivacy.exportData.label", "Export Data"),
|
|
80
|
+
description: g("housingvista.settings.dataPrivacy.exportData.description", "Download a copy of your data"),
|
|
81
|
+
onClick: () => window.location.assign(m)
|
|
82
|
+
}), /* @__PURE__ */ l(h, {
|
|
81
83
|
tone: "danger",
|
|
82
|
-
icon: /* @__PURE__ */ c
|
|
83
|
-
label:
|
|
84
|
-
description:
|
|
85
|
-
onClick:
|
|
84
|
+
icon: /* @__PURE__ */ l(c, { className: "h-4 w-4" }),
|
|
85
|
+
label: g("housingvista.settings.dataPrivacy.deleteAccount.label", "Delete Account"),
|
|
86
|
+
description: g("housingvista.settings.dataPrivacy.deleteAccount.description", "Permanently delete your account and all data"),
|
|
87
|
+
onClick: _
|
|
86
88
|
})]
|
|
87
89
|
})]
|
|
88
90
|
})]
|
|
89
91
|
});
|
|
90
92
|
}
|
|
91
93
|
//#endregion
|
|
92
|
-
export {
|
|
94
|
+
export { g as SettingsPage };
|
|
93
95
|
|
|
94
96
|
//# sourceMappingURL=SettingsPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SettingsPage.js","names":[],"sources":["../../../../src/housingvista/pages/settings/SettingsPage.tsx"],"sourcesContent":["import { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { Shield, Key, Fingerprint, Database, Download, Trash2, ExternalLink } from 'lucide-react';\nimport { EmphasisPanel } from '@burdenoff/fe-libs/ui';\nimport { PageLayout } from '../../components';\n\n/**\n * Cross-MFE shell routes. This MFE owns none of these flows — account security,\n * two-factor auth, account deletion, and data export are provided by the platform\n * app shell at absolute paths outside this MFE's router. We link out rather than\n * fake a mutation this MFE cannot perform.\n */\nconst SHELL_SECURITY_ROUTE = '/auth/security';\nconst SHELL_EXPORT_ROUTE = '/export';\n\ninterface LinkRowProps {\n icon: React.ReactNode;\n label: string;\n description: string;\n onClick: () => void;\n tone?: 'default' | 'danger';\n}\n\nfunction LinkRow({ icon, label, description, onClick, tone = 'default' }: LinkRowProps) {\n const danger = tone === 'danger';\n return (\n <button\n onClick={onClick}\n className={\n danger\n ? 'flex w-full items-center gap-3 rounded-md border border-status-error-border bg-status-error-bg-subtle p-3 text-left transition-colors hover:bg-status-error-bg-subtle/70'\n : 'flex w-full items-center gap-3 rounded-md border border-border-subtle p-3 text-left transition-colors hover:bg-bg-sunken'\n }\n >\n <span className={danger ? 'text-status-error-text' : 'text-text-secondary'}>{icon}</span>\n <div className=\"min-w-0 flex-1\">\n <p className={danger ? 'text-sm font-medium text-status-error-text' : 'text-sm font-medium text-text-primary'}>\n {label}\n </p>\n <p className=\"text-xs text-text-secondary\">{description}</p>\n </div>\n <ExternalLink className=\"h-3.5 w-3.5 shrink-0 text-text-secondary\" />\n </button>\n );\n}\n\nexport function SettingsPage() {\n const { t } = useI18n();\n\n const tr = (key: string, fallback: string) => {\n const translated = t(key);\n return translated === key ? fallback : translated;\n };\n\n const goToSecurity = () => window.location.assign(SHELL_SECURITY_ROUTE);\n const goToExport = () => window.location.assign(SHELL_EXPORT_ROUTE);\n\n return (\n <PageLayout\n title={tr('housingvista.settings.title', 'Settings')}\n description={tr('housingvista.settings.description', 'Manage your account security and data')}\n purpose={tr(\n 'housingvista.settings.purpose',\n 'Tighten your account security and control your data. Your account, password, two-factor authentication, and data export are managed by the platform — the actions below take you there. Appearance and theme are managed from the top bar.'\n )}\n >\n {/* Security — primary control zone (one EmphasisPanel per page) */}\n <EmphasisPanel className=\"p-5\">\n <h2 className=\"flex items-center gap-2 text-base font-semibold text-text-primary\">\n <Shield className=\"h-4 w-4 text-text-secondary\" />\n {tr('housingvista.settings.sections.security', 'Security')}\n </h2>\n <p className=\"mb-3 mt-1 text-xs text-text-secondary\">\n {tr('housingvista.settings.security.note', 'Managed by your account security settings.')}\n </p>\n <div className=\"space-y-3\">\n <LinkRow\n icon={<Key className=\"h-4 w-4\" />}\n label={tr('housingvista.settings.security.changePassword.label', 'Change Password')}\n description={tr(\n 'housingvista.settings.security.changePassword.description',\n 'Update your account password'\n )}\n onClick={goToSecurity}\n />\n <LinkRow\n icon={<Fingerprint className=\"h-4 w-4\" />}\n label={tr('housingvista.settings.security.twoFactor.label', 'Two-Factor Authentication')}\n description={tr(\n 'housingvista.settings.security.twoFactor.description',\n 'Add an extra layer of security to your account'\n )}\n onClick={goToSecurity}\n />\n </div>\n </EmphasisPanel>\n\n {/* Data & Privacy */}\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-5\">\n <h2 className=\"mb-4 flex items-center gap-2 text-base font-semibold text-text-primary\">\n <Database className=\"h-4 w-4 text-text-secondary\" />\n {tr('housingvista.settings.sections.dataPrivacy', 'Data & Privacy')}\n </h2>\n <div className=\"space-y-3\">\n <LinkRow\n icon={<Download className=\"h-4 w-4\" />}\n label={tr('housingvista.settings.dataPrivacy.exportData.label', 'Export Data')}\n description={tr('housingvista.settings.dataPrivacy.exportData.description', 'Download a copy of your data')}\n onClick={goToExport}\n />\n <LinkRow\n tone=\"danger\"\n icon={<Trash2 className=\"h-4 w-4\" />}\n label={tr('housingvista.settings.dataPrivacy.deleteAccount.label', 'Delete Account')}\n description={tr(\n 'housingvista.settings.dataPrivacy.deleteAccount.description',\n 'Permanently delete your account and all data'\n )}\n onClick={goToSecurity}\n />\n </div>\n </div>\n </PageLayout>\n );\n}\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"SettingsPage.js","names":[],"sources":["../../../../src/housingvista/pages/settings/SettingsPage.tsx"],"sourcesContent":["import { useI18n } from '@burdenoff/fe-libs/shared/providers/shell/I18nProvider';\nimport { Shield, Key, Fingerprint, Database, Download, Trash2, ExternalLink } from 'lucide-react';\nimport { EmphasisPanel } from '@burdenoff/fe-libs/ui';\nimport { PageLayout } from '../../components';\nimport { useTrackPageView } from '../../hooks/useHousingVistaAnalytics';\n\n/**\n * Cross-MFE shell routes. This MFE owns none of these flows — account security,\n * two-factor auth, account deletion, and data export are provided by the platform\n * app shell at absolute paths outside this MFE's router. We link out rather than\n * fake a mutation this MFE cannot perform.\n */\nconst SHELL_SECURITY_ROUTE = '/auth/security';\nconst SHELL_EXPORT_ROUTE = '/export';\n\ninterface LinkRowProps {\n icon: React.ReactNode;\n label: string;\n description: string;\n onClick: () => void;\n tone?: 'default' | 'danger';\n}\n\nfunction LinkRow({ icon, label, description, onClick, tone = 'default' }: LinkRowProps) {\n const danger = tone === 'danger';\n return (\n <button\n onClick={onClick}\n className={\n danger\n ? 'flex w-full items-center gap-3 rounded-md border border-status-error-border bg-status-error-bg-subtle p-3 text-left transition-colors hover:bg-status-error-bg-subtle/70'\n : 'flex w-full items-center gap-3 rounded-md border border-border-subtle p-3 text-left transition-colors hover:bg-bg-sunken'\n }\n >\n <span className={danger ? 'text-status-error-text' : 'text-text-secondary'}>{icon}</span>\n <div className=\"min-w-0 flex-1\">\n <p className={danger ? 'text-sm font-medium text-status-error-text' : 'text-sm font-medium text-text-primary'}>\n {label}\n </p>\n <p className=\"text-xs text-text-secondary\">{description}</p>\n </div>\n <ExternalLink className=\"h-3.5 w-3.5 shrink-0 text-text-secondary\" />\n </button>\n );\n}\n\nexport function SettingsPage() {\n useTrackPageView('housingvista.settings.viewed');\n const { t } = useI18n();\n\n const tr = (key: string, fallback: string) => {\n const translated = t(key);\n return translated === key ? fallback : translated;\n };\n\n const goToSecurity = () => window.location.assign(SHELL_SECURITY_ROUTE);\n const goToExport = () => window.location.assign(SHELL_EXPORT_ROUTE);\n\n return (\n <PageLayout\n title={tr('housingvista.settings.title', 'Settings')}\n description={tr('housingvista.settings.description', 'Manage your account security and data')}\n purpose={tr(\n 'housingvista.settings.purpose',\n 'Tighten your account security and control your data. Your account, password, two-factor authentication, and data export are managed by the platform — the actions below take you there. Appearance and theme are managed from the top bar.'\n )}\n >\n {/* Security — primary control zone (one EmphasisPanel per page) */}\n <EmphasisPanel className=\"p-5\">\n <h2 className=\"flex items-center gap-2 text-base font-semibold text-text-primary\">\n <Shield className=\"h-4 w-4 text-text-secondary\" />\n {tr('housingvista.settings.sections.security', 'Security')}\n </h2>\n <p className=\"mb-3 mt-1 text-xs text-text-secondary\">\n {tr('housingvista.settings.security.note', 'Managed by your account security settings.')}\n </p>\n <div className=\"space-y-3\">\n <LinkRow\n icon={<Key className=\"h-4 w-4\" />}\n label={tr('housingvista.settings.security.changePassword.label', 'Change Password')}\n description={tr(\n 'housingvista.settings.security.changePassword.description',\n 'Update your account password'\n )}\n onClick={goToSecurity}\n />\n <LinkRow\n icon={<Fingerprint className=\"h-4 w-4\" />}\n label={tr('housingvista.settings.security.twoFactor.label', 'Two-Factor Authentication')}\n description={tr(\n 'housingvista.settings.security.twoFactor.description',\n 'Add an extra layer of security to your account'\n )}\n onClick={goToSecurity}\n />\n </div>\n </EmphasisPanel>\n\n {/* Data & Privacy */}\n <div className=\"rounded-lg border border-border-subtle bg-bg-surface p-5\">\n <h2 className=\"mb-4 flex items-center gap-2 text-base font-semibold text-text-primary\">\n <Database className=\"h-4 w-4 text-text-secondary\" />\n {tr('housingvista.settings.sections.dataPrivacy', 'Data & Privacy')}\n </h2>\n <div className=\"space-y-3\">\n <LinkRow\n icon={<Download className=\"h-4 w-4\" />}\n label={tr('housingvista.settings.dataPrivacy.exportData.label', 'Export Data')}\n description={tr('housingvista.settings.dataPrivacy.exportData.description', 'Download a copy of your data')}\n onClick={goToExport}\n />\n <LinkRow\n tone=\"danger\"\n icon={<Trash2 className=\"h-4 w-4\" />}\n label={tr('housingvista.settings.dataPrivacy.deleteAccount.label', 'Delete Account')}\n description={tr(\n 'housingvista.settings.dataPrivacy.deleteAccount.description',\n 'Permanently delete your account and all data'\n )}\n onClick={goToSecurity}\n />\n </div>\n </div>\n </PageLayout>\n );\n}\n"],"mappings":";;;;;;;;AAYA,IAAM,IAAuB,kBACvB,IAAqB;AAU3B,SAAS,EAAQ,EAAE,SAAM,UAAO,gBAAa,YAAS,UAAO,aAA2B;CACtF,IAAM,IAAS,MAAS;AACxB,QACE,kBAAC,UAAD;EACW;EACT,WACE,IACI,6KACA;YALR;GAQE,kBAAC,QAAD;IAAM,WAAW,IAAS,2BAA2B;cAAwB;IAAY,CAAA;GACzF,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,KAAD;KAAG,WAAW,IAAS,+CAA+C;eACnE;KACC,CAAA,EACJ,kBAAC,KAAD;KAAG,WAAU;eAA+B;KAAgB,CAAA,CACxD;;GACN,kBAAC,GAAD,EAAc,WAAU,4CAA6C,CAAA;GAC9D;;;AAIb,SAAgB,IAAe;AAC7B,GAAiB,+BAA+B;CAChD,IAAM,EAAE,SAAM,GAAS,EAEjB,KAAM,GAAa,MAAqB;EAC5C,IAAM,IAAa,EAAE,EAAI;AACzB,SAAO,MAAe,IAAM,IAAW;IAGnC,UAAqB,OAAO,SAAS,OAAO,EAAqB;AAGvE,QACE,kBAAC,GAAD;EACE,OAAO,EAAG,+BAA+B,WAAW;EACpD,aAAa,EAAG,qCAAqC,wCAAwC;EAC7F,SAAS,EACP,iCACA,6OACD;YANH,CASE,kBAAC,GAAD;GAAe,WAAU;aAAzB;IACE,kBAAC,MAAD;KAAI,WAAU;eAAd,CACE,kBAAC,GAAD,EAAQ,WAAU,+BAAgC,CAAA,EACjD,EAAG,2CAA2C,WAAW,CACvD;;IACL,kBAAC,KAAD;KAAG,WAAU;eACV,EAAG,uCAAuC,6CAA6C;KACtF,CAAA;IACJ,kBAAC,OAAD;KAAK,WAAU;eAAf,CACE,kBAAC,GAAD;MACE,MAAM,kBAAC,GAAD,EAAK,WAAU,WAAY,CAAA;MACjC,OAAO,EAAG,uDAAuD,kBAAkB;MACnF,aAAa,EACX,6DACA,+BACD;MACD,SAAS;MACT,CAAA,EACF,kBAAC,GAAD;MACE,MAAM,kBAAC,GAAD,EAAa,WAAU,WAAY,CAAA;MACzC,OAAO,EAAG,kDAAkD,4BAA4B;MACxF,aAAa,EACX,wDACA,iDACD;MACD,SAAS;MACT,CAAA,CACE;;IACQ;MAGhB,kBAAC,OAAD;GAAK,WAAU;aAAf,CACE,kBAAC,MAAD;IAAI,WAAU;cAAd,CACE,kBAAC,GAAD,EAAU,WAAU,+BAAgC,CAAA,EACnD,EAAG,8CAA8C,iBAAiB,CAChE;OACL,kBAAC,OAAD;IAAK,WAAU;cAAf,CACE,kBAAC,GAAD;KACE,MAAM,kBAAC,GAAD,EAAU,WAAU,WAAY,CAAA;KACtC,OAAO,EAAG,sDAAsD,cAAc;KAC9E,aAAa,EAAG,4DAA4D,+BAA+B;KAC3G,eArDe,OAAO,SAAS,OAAO,EAAmB;KAsDzD,CAAA,EACF,kBAAC,GAAD;KACE,MAAK;KACL,MAAM,kBAAC,GAAD,EAAQ,WAAU,WAAY,CAAA;KACpC,OAAO,EAAG,yDAAyD,iBAAiB;KACpF,aAAa,EACX,+DACA,+CACD;KACD,SAAS;KACT,CAAA,CACE;MACF;KACK"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShortlistPage.d.ts","sourceRoot":"","sources":["../../../../src/housingvista/pages/shortlist/ShortlistPage.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"ShortlistPage.d.ts","sourceRoot":"","sources":["../../../../src/housingvista/pages/shortlist/ShortlistPage.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,eAAO,MAAM,aAAa,mCAiGzB,CAAC"}
|
|
@@ -2,49 +2,51 @@ import { PageLayout as e } from "../../components/PageLayout.js";
|
|
|
2
2
|
import { EmptyState as t } from "../../components/EmptyState.js";
|
|
3
3
|
import { LoadingSkeleton as n } from "../../components/LoadingSkeleton.js";
|
|
4
4
|
import { PropertyCard as r } from "../../components/PropertyCard.js";
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
5
|
+
import { useTrackPageView as i } from "../../hooks/useHousingVistaAnalytics.js";
|
|
6
|
+
import { useRemoveShortlist as a, useShortlists as o } from "../../hooks/index.js";
|
|
7
|
+
import { notify as s } from "../../lib/toast.js";
|
|
7
8
|
import "../../components/index.js";
|
|
8
|
-
import { useServerPagination as
|
|
9
|
-
import { useMemo as
|
|
10
|
-
import { Heart as
|
|
11
|
-
import { useNavigate as
|
|
12
|
-
import { Fragment as
|
|
13
|
-
import { Button as
|
|
9
|
+
import { useServerPagination as c } from "../../hooks/useServerPagination.js";
|
|
10
|
+
import { useMemo as l } from "react";
|
|
11
|
+
import { Heart as u, Search as d } from "lucide-react";
|
|
12
|
+
import { useNavigate as f } from "react-router-dom";
|
|
13
|
+
import { Fragment as p, jsx as m, jsxs as h } from "react/jsx-runtime";
|
|
14
|
+
import { Button as g, Pagination as _ } from "@burdenoff/fe-libs/ui";
|
|
14
15
|
//#region src/housingvista/pages/shortlist/ShortlistPage.tsx
|
|
15
|
-
var
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
16
|
+
var v = 9, y = () => {
|
|
17
|
+
i("housingvista.shortlist.viewed");
|
|
18
|
+
let y = f(), { page: b, pageSize: x, pagination: S, setPage: C, setPageSize: w } = c(v), { data: T, loading: E } = o({
|
|
19
|
+
limit: S.limit,
|
|
20
|
+
offset: S.offset
|
|
21
|
+
}), { removeShortlist: D } = a(), O = l(() => T.map((e) => e.property), [T]), k = T.length >= x, A = async (e) => {
|
|
20
22
|
try {
|
|
21
|
-
await
|
|
23
|
+
await D(e), s.success("Removed from shortlist");
|
|
22
24
|
} catch (e) {
|
|
23
|
-
|
|
25
|
+
s.error("Could not update shortlist", e.message);
|
|
24
26
|
}
|
|
25
|
-
},
|
|
26
|
-
return /* @__PURE__ */
|
|
27
|
+
}, j = O.length === 1 ? "1 saved" : `${O.length} saved`;
|
|
28
|
+
return /* @__PURE__ */ m(e, {
|
|
27
29
|
title: "Shortlist",
|
|
28
30
|
description: "Properties you've saved to compare and revisit",
|
|
29
31
|
purpose: "Everything you've hearted in one place. Compare your saved properties side by side, jump back into any listing to schedule a viewing or make an offer, and remove the ones you've ruled out.",
|
|
30
|
-
actions: /* @__PURE__ */
|
|
32
|
+
actions: /* @__PURE__ */ h("div", {
|
|
31
33
|
className: "flex items-center gap-3",
|
|
32
|
-
children: [!
|
|
34
|
+
children: [!E && O.length > 0 && /* @__PURE__ */ m("span", {
|
|
33
35
|
className: "hidden rounded-full bg-status-success-bg-subtle px-3 py-1 text-sm font-semibold text-status-success-text sm:inline",
|
|
34
|
-
children:
|
|
35
|
-
}), /* @__PURE__ */
|
|
36
|
+
children: j
|
|
37
|
+
}), /* @__PURE__ */ h(g, {
|
|
36
38
|
variant: "outline",
|
|
37
|
-
onClick: () =>
|
|
39
|
+
onClick: () => y("../properties"),
|
|
38
40
|
className: "gap-2",
|
|
39
|
-
children: [/* @__PURE__ */
|
|
41
|
+
children: [/* @__PURE__ */ m(d, { className: "h-4 w-4" }), "Browse Properties"]
|
|
40
42
|
})]
|
|
41
43
|
}),
|
|
42
|
-
children:
|
|
44
|
+
children: E ? /* @__PURE__ */ m(n, {
|
|
43
45
|
variant: "card",
|
|
44
46
|
count: 6
|
|
45
|
-
}) :
|
|
47
|
+
}) : O.length > 0 ? /* @__PURE__ */ h(p, { children: [/* @__PURE__ */ m("div", {
|
|
46
48
|
className: "grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3",
|
|
47
|
-
children:
|
|
49
|
+
children: O.map((e) => /* @__PURE__ */ m(r, {
|
|
48
50
|
id: e.id,
|
|
49
51
|
title: e.title,
|
|
50
52
|
price: e.price.amount,
|
|
@@ -58,25 +60,25 @@ var _ = 9, v = () => {
|
|
|
58
60
|
imageUrl: e.images[0]?.url,
|
|
59
61
|
status: e.status.replace("_", " "),
|
|
60
62
|
type: e.category,
|
|
61
|
-
onClick: () =>
|
|
63
|
+
onClick: () => y(`../properties/${e.id}`),
|
|
62
64
|
isShortlisted: !0,
|
|
63
|
-
onToggleShortlist: () =>
|
|
65
|
+
onToggleShortlist: () => A(e.id)
|
|
64
66
|
}, e.id))
|
|
65
|
-
}), /* @__PURE__ */
|
|
66
|
-
page:
|
|
67
|
-
pageSize:
|
|
68
|
-
hasNextPage:
|
|
69
|
-
hasPreviousPage:
|
|
70
|
-
loading:
|
|
71
|
-
onPageChange:
|
|
72
|
-
onPageSizeChange:
|
|
73
|
-
})] }) : /* @__PURE__ */
|
|
67
|
+
}), /* @__PURE__ */ m(_, {
|
|
68
|
+
page: b,
|
|
69
|
+
pageSize: x,
|
|
70
|
+
hasNextPage: k,
|
|
71
|
+
hasPreviousPage: b > 1,
|
|
72
|
+
loading: E,
|
|
73
|
+
onPageChange: C,
|
|
74
|
+
onPageSizeChange: w
|
|
75
|
+
})] }) : /* @__PURE__ */ m(t, {
|
|
74
76
|
illustration: "empty-generic",
|
|
75
|
-
icon: /* @__PURE__ */
|
|
77
|
+
icon: /* @__PURE__ */ m(u, { className: "h-12 w-12" }),
|
|
76
78
|
title: "No saved properties yet",
|
|
77
79
|
description: "Tap the heart on any property to save it here for easy comparison later.",
|
|
78
|
-
action: /* @__PURE__ */
|
|
79
|
-
onClick: () =>
|
|
80
|
+
action: /* @__PURE__ */ m("button", {
|
|
81
|
+
onClick: () => y("../properties"),
|
|
80
82
|
className: "rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text transition-colors hover:bg-action-primary-bg-hover",
|
|
81
83
|
children: "Browse Properties"
|
|
82
84
|
})
|
|
@@ -84,6 +86,6 @@ var _ = 9, v = () => {
|
|
|
84
86
|
});
|
|
85
87
|
};
|
|
86
88
|
//#endregion
|
|
87
|
-
export {
|
|
89
|
+
export { y as ShortlistPage };
|
|
88
90
|
|
|
89
91
|
//# sourceMappingURL=ShortlistPage.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ShortlistPage.js","names":[],"sources":["../../../../src/housingvista/pages/shortlist/ShortlistPage.tsx"],"sourcesContent":["/**\n * HousingVista Shortlist Page\n * The properties the user has saved (housingvistaShortlists), with one-tap\n * un-save and a jump into each property's detail. No mock data.\n * @module housingvista\n */\n\nimport { useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { Heart, Search } from 'lucide-react';\nimport { Pagination, Button } from '@burdenoff/fe-libs/ui';\nimport { PageLayout, PropertyCard, EmptyState, LoadingSkeleton } from '../../components';\nimport { useShortlists, useRemoveShortlist } from '../../hooks';\nimport { useServerPagination } from '../../hooks/useServerPagination';\nimport { notify } from '../../lib/toast';\n\nconst PAGE_SIZE = 9;\n\nexport const ShortlistPage = () => {\n const navigate = useNavigate();\n const { page, pageSize, pagination, setPage, setPageSize } = useServerPagination(PAGE_SIZE);\n const { data: shortlists, loading } = useShortlists({ limit: pagination.limit, offset: pagination.offset });\n const { removeShortlist } = useRemoveShortlist();\n\n const properties = useMemo(() => shortlists.map((s) => s.property), [shortlists]);\n const hasNextPage = shortlists.length >= pageSize;\n\n const handleRemove = async (propertyId: string) => {\n try {\n await removeShortlist(propertyId);\n notify.success('Removed from shortlist');\n } catch (err) {\n notify.error('Could not update shortlist', (err as Error).message);\n }\n };\n\n const savedLabel = properties.length === 1 ? '1 saved' : `${properties.length} saved`;\n\n return (\n <PageLayout\n title=\"Shortlist\"\n description=\"Properties you've saved to compare and revisit\"\n purpose=\"Everything you've hearted in one place. Compare your saved properties side by side, jump back into any listing to schedule a viewing or make an offer, and remove the ones you've ruled out.\"\n actions={\n <div className=\"flex items-center gap-3\">\n {!loading && properties.length > 0 && (\n <span className=\"hidden rounded-full bg-status-success-bg-subtle px-3 py-1 text-sm font-semibold text-status-success-text sm:inline\">\n {savedLabel}\n </span>\n )}\n <Button variant=\"outline\" onClick={() => navigate('../properties')} className=\"gap-2\">\n <Search className=\"h-4 w-4\" />\n Browse Properties\n </Button>\n </div>\n }\n >\n {loading ? (\n <LoadingSkeleton variant=\"card\" count={6} />\n ) : properties.length > 0 ? (\n <>\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {properties.map((property) => (\n <PropertyCard\n key={property.id}\n id={property.id}\n title={property.title}\n price={property.price.amount}\n priceType={property.price.type === 'rent' ? 'rent' : 'sale'}\n pricePeriod={property.price.period}\n currency={property.price.currency}\n location={[property.location.neighborhood, property.location.city].filter(Boolean).join(', ')}\n bedrooms={property.specifications.bedrooms}\n bathrooms={property.specifications.bathrooms}\n area={property.specifications.totalArea}\n imageUrl={property.images[0]?.url}\n status={property.status.replace('_', ' ')}\n type={property.category}\n onClick={() => navigate(`../properties/${property.id}`)}\n isShortlisted\n onToggleShortlist={() => handleRemove(property.id)}\n />\n ))}\n </div>\n\n {/* Pagination (server-side): working prev/next + page-size */}\n <Pagination\n page={page}\n pageSize={pageSize}\n hasNextPage={hasNextPage}\n hasPreviousPage={page > 1}\n loading={loading}\n onPageChange={setPage}\n onPageSizeChange={setPageSize}\n />\n </>\n ) : (\n <EmptyState\n illustration=\"empty-generic\"\n icon={<Heart className=\"h-12 w-12\" />}\n title=\"No saved properties yet\"\n description=\"Tap the heart on any property to save it here for easy comparison later.\"\n action={\n <button\n onClick={() => navigate('../properties')}\n className=\"rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text transition-colors hover:bg-action-primary-bg-hover\"\n >\n Browse Properties\n </button>\n }\n />\n )}\n </PageLayout>\n );\n};\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"ShortlistPage.js","names":[],"sources":["../../../../src/housingvista/pages/shortlist/ShortlistPage.tsx"],"sourcesContent":["/**\n * HousingVista Shortlist Page\n * The properties the user has saved (housingvistaShortlists), with one-tap\n * un-save and a jump into each property's detail. No mock data.\n * @module housingvista\n */\n\nimport { useMemo } from 'react';\nimport { useNavigate } from 'react-router-dom';\nimport { Heart, Search } from 'lucide-react';\nimport { Pagination, Button } from '@burdenoff/fe-libs/ui';\nimport { PageLayout, PropertyCard, EmptyState, LoadingSkeleton } from '../../components';\nimport { useShortlists, useRemoveShortlist } from '../../hooks';\nimport { useServerPagination } from '../../hooks/useServerPagination';\nimport { notify } from '../../lib/toast';\nimport { useTrackPageView } from '../../hooks/useHousingVistaAnalytics';\n\nconst PAGE_SIZE = 9;\n\nexport const ShortlistPage = () => {\n useTrackPageView('housingvista.shortlist.viewed');\n const navigate = useNavigate();\n const { page, pageSize, pagination, setPage, setPageSize } = useServerPagination(PAGE_SIZE);\n const { data: shortlists, loading } = useShortlists({ limit: pagination.limit, offset: pagination.offset });\n const { removeShortlist } = useRemoveShortlist();\n\n const properties = useMemo(() => shortlists.map((s) => s.property), [shortlists]);\n const hasNextPage = shortlists.length >= pageSize;\n\n const handleRemove = async (propertyId: string) => {\n try {\n await removeShortlist(propertyId);\n notify.success('Removed from shortlist');\n } catch (err) {\n notify.error('Could not update shortlist', (err as Error).message);\n }\n };\n\n const savedLabel = properties.length === 1 ? '1 saved' : `${properties.length} saved`;\n\n return (\n <PageLayout\n title=\"Shortlist\"\n description=\"Properties you've saved to compare and revisit\"\n purpose=\"Everything you've hearted in one place. Compare your saved properties side by side, jump back into any listing to schedule a viewing or make an offer, and remove the ones you've ruled out.\"\n actions={\n <div className=\"flex items-center gap-3\">\n {!loading && properties.length > 0 && (\n <span className=\"hidden rounded-full bg-status-success-bg-subtle px-3 py-1 text-sm font-semibold text-status-success-text sm:inline\">\n {savedLabel}\n </span>\n )}\n <Button variant=\"outline\" onClick={() => navigate('../properties')} className=\"gap-2\">\n <Search className=\"h-4 w-4\" />\n Browse Properties\n </Button>\n </div>\n }\n >\n {loading ? (\n <LoadingSkeleton variant=\"card\" count={6} />\n ) : properties.length > 0 ? (\n <>\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {properties.map((property) => (\n <PropertyCard\n key={property.id}\n id={property.id}\n title={property.title}\n price={property.price.amount}\n priceType={property.price.type === 'rent' ? 'rent' : 'sale'}\n pricePeriod={property.price.period}\n currency={property.price.currency}\n location={[property.location.neighborhood, property.location.city].filter(Boolean).join(', ')}\n bedrooms={property.specifications.bedrooms}\n bathrooms={property.specifications.bathrooms}\n area={property.specifications.totalArea}\n imageUrl={property.images[0]?.url}\n status={property.status.replace('_', ' ')}\n type={property.category}\n onClick={() => navigate(`../properties/${property.id}`)}\n isShortlisted\n onToggleShortlist={() => handleRemove(property.id)}\n />\n ))}\n </div>\n\n {/* Pagination (server-side): working prev/next + page-size */}\n <Pagination\n page={page}\n pageSize={pageSize}\n hasNextPage={hasNextPage}\n hasPreviousPage={page > 1}\n loading={loading}\n onPageChange={setPage}\n onPageSizeChange={setPageSize}\n />\n </>\n ) : (\n <EmptyState\n illustration=\"empty-generic\"\n icon={<Heart className=\"h-12 w-12\" />}\n title=\"No saved properties yet\"\n description=\"Tap the heart on any property to save it here for easy comparison later.\"\n action={\n <button\n onClick={() => navigate('../properties')}\n className=\"rounded-md bg-action-primary-bg px-4 py-2 text-sm font-medium text-action-primary-text transition-colors hover:bg-action-primary-bg-hover\"\n >\n Browse Properties\n </button>\n }\n />\n )}\n </PageLayout>\n );\n};\n"],"mappings":";;;;;;;;;;;;;;;AAiBA,IAAM,IAAY,GAEL,UAAsB;AACjC,GAAiB,gCAAgC;CACjD,IAAM,IAAW,GAAa,EACxB,EAAE,SAAM,aAAU,eAAY,YAAS,mBAAgB,EAAoB,EAAU,EACrF,EAAE,MAAM,GAAY,eAAY,EAAc;EAAE,OAAO,EAAW;EAAO,QAAQ,EAAW;EAAQ,CAAC,EACrG,EAAE,uBAAoB,GAAoB,EAE1C,IAAa,QAAc,EAAW,KAAK,MAAM,EAAE,SAAS,EAAE,CAAC,EAAW,CAAC,EAC3E,IAAc,EAAW,UAAU,GAEnC,IAAe,OAAO,MAAuB;AACjD,MAAI;AAEF,GADA,MAAM,EAAgB,EAAW,EACjC,EAAO,QAAQ,yBAAyB;WACjC,GAAK;AACZ,KAAO,MAAM,8BAA+B,EAAc,QAAQ;;IAIhE,IAAa,EAAW,WAAW,IAAI,YAAY,GAAG,EAAW,OAAO;AAE9E,QACE,kBAAC,GAAD;EACE,OAAM;EACN,aAAY;EACZ,SAAQ;EACR,SACE,kBAAC,OAAD;GAAK,WAAU;aAAf,CACG,CAAC,KAAW,EAAW,SAAS,KAC/B,kBAAC,QAAD;IAAM,WAAU;cACb;IACI,CAAA,EAET,kBAAC,GAAD;IAAQ,SAAQ;IAAU,eAAe,EAAS,gBAAgB;IAAE,WAAU;cAA9E,CACE,kBAAC,GAAD,EAAQ,WAAU,WAAY,CAAA,EAAA,oBAEvB;MACL;;YAGP,IACC,kBAAC,GAAD;GAAiB,SAAQ;GAAO,OAAO;GAAK,CAAA,GAC1C,EAAW,SAAS,IACtB,kBAAA,GAAA,EAAA,UAAA,CACE,kBAAC,OAAD;GAAK,WAAU;aACZ,EAAW,KAAK,MACf,kBAAC,GAAD;IAEE,IAAI,EAAS;IACb,OAAO,EAAS;IAChB,OAAO,EAAS,MAAM;IACtB,WAAW,EAAS,MAAM,SAAS,SAAS,SAAS;IACrD,aAAa,EAAS,MAAM;IAC5B,UAAU,EAAS,MAAM;IACzB,UAAU,CAAC,EAAS,SAAS,cAAc,EAAS,SAAS,KAAK,CAAC,OAAO,QAAQ,CAAC,KAAK,KAAK;IAC7F,UAAU,EAAS,eAAe;IAClC,WAAW,EAAS,eAAe;IACnC,MAAM,EAAS,eAAe;IAC9B,UAAU,EAAS,OAAO,IAAI;IAC9B,QAAQ,EAAS,OAAO,QAAQ,KAAK,IAAI;IACzC,MAAM,EAAS;IACf,eAAe,EAAS,iBAAiB,EAAS,KAAK;IACvD,eAAA;IACA,yBAAyB,EAAa,EAAS,GAAG;IAClD,EAjBK,EAAS,GAiBd,CACF;GACE,CAAA,EAGN,kBAAC,GAAD;GACQ;GACI;GACG;GACb,iBAAiB,IAAO;GACf;GACT,cAAc;GACd,kBAAkB;GAClB,CAAA,CACD,EAAA,CAAA,GAEH,kBAAC,GAAD;GACE,cAAa;GACb,MAAM,kBAAC,GAAD,EAAO,WAAU,aAAc,CAAA;GACrC,OAAM;GACN,aAAY;GACZ,QACE,kBAAC,UAAD;IACE,eAAe,EAAS,gBAAgB;IACxC,WAAU;cACX;IAEQ,CAAA;GAEX,CAAA;EAEO,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TransactionDetailPage.d.ts","sourceRoot":"","sources":["../../../../src/housingvista/pages/transactions/TransactionDetailPage.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"TransactionDetailPage.d.ts","sourceRoot":"","sources":["../../../../src/housingvista/pages/transactions/TransactionDetailPage.tsx"],"names":[],"mappings":"AAAA;;;;;GAKG;AA4EH,eAAO,MAAM,qBAAqB,mCAsfjC,CAAC"}
|