@alepha/ui 0.12.0 → 0.13.0
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/README.md +2 -30
- package/dist/admin/AdminFiles-BM6_7_5A.cjs +4 -0
- package/dist/admin/AdminFiles-BaCIMeNt.js +4 -0
- package/dist/admin/AdminFiles-CllAxb1B.js +117 -0
- package/dist/admin/AdminFiles-CllAxb1B.js.map +1 -0
- package/dist/admin/AdminFiles-DC3T8uWZ.cjs +122 -0
- package/dist/admin/AdminFiles-DC3T8uWZ.cjs.map +1 -0
- package/dist/admin/AdminJobs-BXkFtlVo.js +125 -0
- package/dist/admin/AdminJobs-BXkFtlVo.js.map +1 -0
- package/dist/admin/AdminJobs-C428qrNQ.cjs +130 -0
- package/dist/admin/AdminJobs-C428qrNQ.cjs.map +1 -0
- package/dist/admin/AdminJobs-DCPPaJ4i.cjs +4 -0
- package/dist/admin/AdminJobs-yC6DarGO.js +4 -0
- package/dist/admin/AdminLayout-Bqo4cd33.cjs +4 -0
- package/dist/admin/AdminLayout-CQpxfko6.js +4 -0
- package/dist/admin/AdminLayout-CiLlywAQ.cjs +93 -0
- package/dist/admin/AdminLayout-CiLlywAQ.cjs.map +1 -0
- package/dist/admin/AdminLayout-CtkVYk-u.js +88 -0
- package/dist/admin/AdminLayout-CtkVYk-u.js.map +1 -0
- package/dist/admin/AdminNotifications-DNUeJ-PW.cjs +44 -0
- package/dist/admin/AdminNotifications-DNUeJ-PW.cjs.map +1 -0
- package/dist/admin/AdminNotifications-DaMu1AQ4.js +4 -0
- package/dist/admin/AdminNotifications-DnnulNNV.js +40 -0
- package/dist/admin/AdminNotifications-DnnulNNV.js.map +1 -0
- package/dist/admin/AdminNotifications-ihgbKVCx.cjs +4 -0
- package/dist/admin/AdminParameters-B3hvpLpu.js +40 -0
- package/dist/admin/AdminParameters-B3hvpLpu.js.map +1 -0
- package/dist/admin/AdminParameters-U4lU1rUF.cjs +4 -0
- package/dist/admin/AdminParameters-gdf7036N.cjs +44 -0
- package/dist/admin/AdminParameters-gdf7036N.cjs.map +1 -0
- package/dist/admin/AdminParameters-prMcCgxf.js +4 -0
- package/dist/admin/AdminSessions-BF_P4lHs.cjs +128 -0
- package/dist/admin/AdminSessions-BF_P4lHs.cjs.map +1 -0
- package/dist/admin/AdminSessions-CATIU61I.cjs +4 -0
- package/dist/admin/AdminSessions-DqOXOpYR.js +4 -0
- package/dist/admin/AdminSessions-Pjdz-iZx.js +123 -0
- package/dist/admin/AdminSessions-Pjdz-iZx.js.map +1 -0
- package/dist/admin/AdminUsers-BgTL-zSY.js +4 -0
- package/dist/admin/AdminUsers-C1HsrRxn.js +104 -0
- package/dist/admin/AdminUsers-C1HsrRxn.js.map +1 -0
- package/dist/admin/AdminUsers-HqvxwNGZ.cjs +4 -0
- package/dist/admin/AdminUsers-M2uEQbp5.cjs +109 -0
- package/dist/admin/AdminUsers-M2uEQbp5.cjs.map +1 -0
- package/dist/admin/AdminVerifications-BVssbtfU.cjs +44 -0
- package/dist/admin/AdminVerifications-BVssbtfU.cjs.map +1 -0
- package/dist/admin/AdminVerifications-Df6DRgNo.js +4 -0
- package/dist/admin/AdminVerifications-DxAtcYUR.cjs +4 -0
- package/dist/admin/AdminVerifications-VMpm30mS.js +40 -0
- package/dist/admin/AdminVerifications-VMpm30mS.js.map +1 -0
- package/dist/admin/core-CzO6aavT.js +2507 -0
- package/dist/admin/core-CzO6aavT.js.map +1 -0
- package/dist/{index.cjs → admin/core-aFtK4l9I.cjs} +287 -204
- package/dist/admin/core-aFtK4l9I.cjs.map +1 -0
- package/dist/admin/index.cjs +87 -0
- package/dist/admin/index.cjs.map +1 -0
- package/dist/admin/index.d.cts +1739 -0
- package/dist/admin/index.d.ts +1745 -0
- package/dist/admin/index.js +78 -0
- package/dist/admin/index.js.map +1 -0
- package/dist/auth/IconGoogle-B17BTQyD.cjs +69 -0
- package/dist/auth/IconGoogle-B17BTQyD.cjs.map +1 -0
- package/dist/auth/IconGoogle-Bfmuv9Rv.js +58 -0
- package/dist/auth/IconGoogle-Bfmuv9Rv.js.map +1 -0
- package/dist/auth/Login-BTBmbnWl.cjs +181 -0
- package/dist/auth/Login-BTBmbnWl.cjs.map +1 -0
- package/dist/auth/Login-BcQOtG3v.js +5 -0
- package/dist/auth/Login-Btmd70Um.cjs +5 -0
- package/dist/auth/Login-JeXFsUf5.js +176 -0
- package/dist/auth/Login-JeXFsUf5.js.map +1 -0
- package/dist/auth/Register-CPQnvXCZ.js +318 -0
- package/dist/auth/Register-CPQnvXCZ.js.map +1 -0
- package/dist/auth/Register-CbesZal3.cjs +5 -0
- package/dist/auth/Register-DpI_JdyO.js +5 -0
- package/dist/auth/Register-HP3rP71B.cjs +323 -0
- package/dist/auth/Register-HP3rP71B.cjs.map +1 -0
- package/dist/auth/ResetPassword-B-tkzV7g.cjs +248 -0
- package/dist/auth/ResetPassword-B-tkzV7g.cjs.map +1 -0
- package/dist/auth/ResetPassword-BlK3xEpU.js +4 -0
- package/dist/auth/ResetPassword-BzUjGG_-.js +243 -0
- package/dist/auth/ResetPassword-BzUjGG_-.js.map +1 -0
- package/dist/auth/ResetPassword-W3xjOnWy.cjs +4 -0
- package/dist/auth/chunk-DhGyd7sr.js +28 -0
- package/dist/auth/core-D1MHij1j.js +1795 -0
- package/dist/auth/core-D1MHij1j.js.map +1 -0
- package/dist/auth/core-rDZ9d92K.cjs +1824 -0
- package/dist/auth/core-rDZ9d92K.cjs.map +1 -0
- package/dist/auth/index.cjs +211 -0
- package/dist/auth/index.cjs.map +1 -0
- package/dist/auth/index.d.cts +6265 -0
- package/dist/auth/index.d.ts +6274 -0
- package/dist/auth/index.js +206 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/core/index.cjs +2620 -0
- package/dist/core/index.cjs.map +1 -0
- package/dist/core/index.d.cts +2737 -0
- package/dist/core/index.d.ts +2743 -0
- package/dist/{index.js → core/index.js} +298 -126
- package/dist/core/index.js.map +1 -0
- package/package.json +32 -14
- package/src/admin/AdminRouter.ts +58 -0
- package/src/admin/components/AdminFiles.tsx +117 -0
- package/src/admin/components/AdminJobs.tsx +158 -0
- package/src/admin/components/AdminLayout.tsx +114 -0
- package/src/admin/components/AdminNotifications.tsx +20 -0
- package/src/admin/components/AdminParameters.tsx +24 -0
- package/src/admin/components/AdminSessions.tsx +159 -0
- package/src/admin/components/AdminUsers.tsx +137 -0
- package/src/admin/components/AdminVerifications.tsx +25 -0
- package/src/admin/index.ts +29 -0
- package/src/auth/AuthI18n.ts +118 -0
- package/src/auth/AuthRouter.ts +53 -0
- package/src/auth/components/Login.tsx +193 -0
- package/src/auth/components/Register.tsx +421 -0
- package/src/auth/components/ResetPassword.tsx +259 -0
- package/src/auth/components/buttons/UserButton.tsx +118 -0
- package/src/auth/components/icons/IconGithub.tsx +21 -0
- package/src/auth/components/icons/IconGoogle.tsx +30 -0
- package/src/auth/index.ts +27 -0
- package/src/{RootRouter.ts → core/RootRouter.ts} +2 -1
- package/src/{components → core/components}/buttons/ActionButton.tsx +49 -6
- package/src/core/components/buttons/ClipboardButton.tsx +56 -0
- package/src/{components → core/components}/buttons/DarkModeButton.tsx +7 -8
- package/src/{components → core/components}/buttons/LanguageButton.tsx +2 -2
- package/src/{components → core/components}/buttons/OmnibarButton.tsx +1 -1
- package/src/{components → core/components}/dialogs/AlertDialog.tsx +1 -1
- package/src/{components → core/components}/dialogs/ConfirmDialog.tsx +1 -1
- package/src/{components → core/components}/dialogs/PromptDialog.tsx +1 -1
- package/src/{components → core/components}/form/Control.tsx +1 -0
- package/src/{components → core/components}/layout/AdminShell.tsx +38 -7
- package/src/{components → core/components}/layout/AlephaMantineProvider.tsx +12 -8
- package/src/{components → core/components}/layout/AppBar.tsx +1 -1
- package/src/{components → core/components}/layout/Omnibar.tsx +1 -1
- package/src/{components → core/components}/layout/Sidebar.tsx +29 -26
- package/src/{components → core/components}/table/DataTable.tsx +1 -1
- package/src/{constants → core/constants}/ui.ts +9 -0
- package/src/{index.ts → core/index.ts} +3 -0
- package/src/{services → core/services}/DialogService.tsx +3 -3
- package/src/{services → core/services}/ToastService.tsx +3 -1
- package/src/{utils → core/utils}/extractSchemaFields.ts +2 -8
- package/src/{utils → core/utils}/icons.tsx +5 -15
- package/src/{utils → core/utils}/parseInput.ts +34 -26
- package/dist/AlephaMantineProvider-CGpgWDt8.cjs +0 -3
- package/dist/AlephaMantineProvider-D8cHYAge.js +0 -152
- package/dist/AlephaMantineProvider-D8cHYAge.js.map +0 -1
- package/dist/AlephaMantineProvider-DuvZFAuk.cjs +0 -175
- package/dist/AlephaMantineProvider-DuvZFAuk.cjs.map +0 -1
- package/dist/AlephaMantineProvider-twBqV4IO.js +0 -3
- package/dist/index.cjs.map +0 -1
- package/dist/index.d.cts +0 -821
- package/dist/index.d.cts.map +0 -1
- package/dist/index.d.ts +0 -821
- package/dist/index.d.ts.map +0 -1
- package/dist/index.js.map +0 -1
- /package/src/{components → core/components}/buttons/BurgerButton.tsx +0 -0
- /package/src/{components → core/components}/buttons/ToggleSidebarButton.tsx +0 -0
- /package/src/{components → core/components}/data/JsonViewer.tsx +0 -0
- /package/src/{components → core/components}/form/ControlDate.tsx +0 -0
- /package/src/{components → core/components}/form/ControlNumber.tsx +0 -0
- /package/src/{components → core/components}/form/ControlQueryBuilder.tsx +0 -0
- /package/src/{components → core/components}/form/ControlSelect.tsx +0 -0
- /package/src/{components → core/components}/form/TypeForm.tsx +0 -0
- /package/src/{hooks → core/hooks}/useDialog.ts +0 -0
- /package/src/{hooks → core/hooks}/useToast.ts +0 -0
- /package/src/{utils → core/utils}/string.ts +0 -0
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
const require_core = require('./core-aFtK4l9I.cjs');
|
|
2
|
+
let __alepha_react = require("@alepha/react");
|
|
3
|
+
let __mantine_core = require("@mantine/core");
|
|
4
|
+
let __tabler_icons_react = require("@tabler/icons-react");
|
|
5
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
6
|
+
|
|
7
|
+
//#region src/admin/components/AdminLayout.tsx
|
|
8
|
+
const AdminLayout = () => {
|
|
9
|
+
const router = (0, __alepha_react.useRouter)();
|
|
10
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_core.AlephaMantineProvider_default, { children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_core.AdminShell_default, {
|
|
11
|
+
appShellMainProps: { bg: "var(--alepha-background)" },
|
|
12
|
+
appShellHeaderProps: { bg: "var(--alepha-background)" },
|
|
13
|
+
appShellNavbarProps: { bg: "var(--alepha-background)" },
|
|
14
|
+
appShellProps: { withBorder: false },
|
|
15
|
+
appBarProps: { items: [{
|
|
16
|
+
type: "search",
|
|
17
|
+
position: "center"
|
|
18
|
+
}, {
|
|
19
|
+
type: "dark",
|
|
20
|
+
position: "right"
|
|
21
|
+
}] },
|
|
22
|
+
sidebarProps: { menu: [
|
|
23
|
+
{
|
|
24
|
+
type: "section",
|
|
25
|
+
label: "Management"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
icon: __tabler_icons_react.IconUser,
|
|
29
|
+
label: "Users",
|
|
30
|
+
href: router.path("adminUsers")
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
icon: __tabler_icons_react.IconMail,
|
|
34
|
+
label: "Notifications",
|
|
35
|
+
href: router.path("adminNotifications")
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
icon: __tabler_icons_react.IconShield,
|
|
39
|
+
label: "Sessions",
|
|
40
|
+
href: router.path("adminSessions")
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
icon: __tabler_icons_react.IconChecklist,
|
|
44
|
+
label: "Verifications",
|
|
45
|
+
href: router.path("adminVerifications")
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
type: "section",
|
|
49
|
+
label: "System"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
label: "Jobs",
|
|
53
|
+
href: router.path("adminJobs"),
|
|
54
|
+
icon: __tabler_icons_react.IconTruckDelivery
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
label: "Workflows",
|
|
58
|
+
href: router.path("adminWorkflows"),
|
|
59
|
+
icon: __tabler_icons_react.IconJumpRope
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
label: "Parameters",
|
|
63
|
+
href: router.path("adminParameters"),
|
|
64
|
+
icon: __tabler_icons_react.IconSettings
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
label: "Files",
|
|
68
|
+
href: router.path("adminFiles"),
|
|
69
|
+
icon: __tabler_icons_react.IconFileDatabase
|
|
70
|
+
}
|
|
71
|
+
] },
|
|
72
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Flex, {
|
|
73
|
+
flex: 1,
|
|
74
|
+
p: "lg",
|
|
75
|
+
mt: -16,
|
|
76
|
+
ml: -16,
|
|
77
|
+
bg: "var(--alepha-surface)",
|
|
78
|
+
bdrs: "lg",
|
|
79
|
+
bd: "1px solid var(--alepha-border)",
|
|
80
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__alepha_react.NestedView, {})
|
|
81
|
+
})
|
|
82
|
+
}) });
|
|
83
|
+
};
|
|
84
|
+
var AdminLayout_default = AdminLayout;
|
|
85
|
+
|
|
86
|
+
//#endregion
|
|
87
|
+
Object.defineProperty(exports, 'AdminLayout_default', {
|
|
88
|
+
enumerable: true,
|
|
89
|
+
get: function () {
|
|
90
|
+
return AdminLayout_default;
|
|
91
|
+
}
|
|
92
|
+
});
|
|
93
|
+
//# sourceMappingURL=AdminLayout-CiLlywAQ.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminLayout-CiLlywAQ.cjs","names":["AlephaMantineProvider","AdminShell","IconUser","IconMail","IconShield","IconChecklist","IconTruckDelivery","IconJumpRope","IconSettings","IconFileDatabase","Flex","NestedView"],"sources":["../../src/admin/components/AdminLayout.tsx"],"sourcesContent":["import { NestedView, useRouter } from \"@alepha/react\";\nimport { AdminShell, AlephaMantineProvider } from \"@alepha/ui\";\nimport { Flex } from \"@mantine/core\";\nimport {\n IconChecklist,\n IconFileDatabase,\n IconJumpRope,\n IconMail,\n IconSettings,\n IconShield,\n IconTruckDelivery,\n IconUser,\n} from \"@tabler/icons-react\";\nimport type { AdminRouter } from \"../AdminRouter.ts\";\n\nconst AdminLayout = () => {\n const router = useRouter<AdminRouter>();\n return (\n <AlephaMantineProvider>\n <AdminShell\n appShellMainProps={{\n bg: \"var(--alepha-background)\",\n }}\n appShellHeaderProps={{\n bg: \"var(--alepha-background)\",\n }}\n appShellNavbarProps={{\n bg: \"var(--alepha-background)\",\n }}\n appShellProps={{\n withBorder: false,\n }}\n appBarProps={{\n items: [\n {\n type: \"search\",\n position: \"center\",\n },\n {\n type: \"dark\",\n position: \"right\",\n },\n ],\n }}\n sidebarProps={{\n menu: [\n {\n type: \"section\",\n label: \"Management\",\n },\n {\n icon: IconUser,\n label: \"Users\",\n href: router.path(\"adminUsers\"),\n },\n {\n icon: IconMail,\n label: \"Notifications\",\n href: router.path(\"adminNotifications\"),\n },\n {\n icon: IconShield,\n label: \"Sessions\",\n href: router.path(\"adminSessions\"),\n },\n {\n icon: IconChecklist,\n label: \"Verifications\",\n href: router.path(\"adminVerifications\"),\n },\n {\n type: \"section\",\n label: \"System\",\n },\n {\n label: \"Jobs\",\n href: router.path(\"adminJobs\"),\n icon: IconTruckDelivery,\n },\n {\n label: \"Workflows\",\n href: router.path(\"adminWorkflows\"),\n icon: IconJumpRope,\n },\n {\n label: \"Parameters\",\n href: router.path(\"adminParameters\"),\n icon: IconSettings,\n },\n {\n label: \"Files\",\n href: router.path(\"adminFiles\"),\n icon: IconFileDatabase,\n },\n ],\n }}\n >\n <Flex\n flex={1}\n p={\"lg\"}\n mt={-16}\n ml={-16}\n bg={\"var(--alepha-surface)\"}\n bdrs={\"lg\"}\n bd={\"1px solid var(--alepha-border)\"}\n >\n <NestedView />\n </Flex>\n </AdminShell>\n </AlephaMantineProvider>\n );\n};\n\nexport default AdminLayout;\n"],"mappings":";;;;;;;AAeA,MAAM,oBAAoB;CACxB,MAAM,wCAAiC;AACvC,QACE,2CAACA,wDACC,2CAACC;EACC,mBAAmB,EACjB,IAAI,4BACL;EACD,qBAAqB,EACnB,IAAI,4BACL;EACD,qBAAqB,EACnB,IAAI,4BACL;EACD,eAAe,EACb,YAAY,OACb;EACD,aAAa,EACX,OAAO,CACL;GACE,MAAM;GACN,UAAU;GACX,EACD;GACE,MAAM;GACN,UAAU;GACX,CACF,EACF;EACD,cAAc,EACZ,MAAM;GACJ;IACE,MAAM;IACN,OAAO;IACR;GACD;IACE,MAAMC;IACN,OAAO;IACP,MAAM,OAAO,KAAK,aAAa;IAChC;GACD;IACE,MAAMC;IACN,OAAO;IACP,MAAM,OAAO,KAAK,qBAAqB;IACxC;GACD;IACE,MAAMC;IACN,OAAO;IACP,MAAM,OAAO,KAAK,gBAAgB;IACnC;GACD;IACE,MAAMC;IACN,OAAO;IACP,MAAM,OAAO,KAAK,qBAAqB;IACxC;GACD;IACE,MAAM;IACN,OAAO;IACR;GACD;IACE,OAAO;IACP,MAAM,OAAO,KAAK,YAAY;IAC9B,MAAMC;IACP;GACD;IACE,OAAO;IACP,MAAM,OAAO,KAAK,iBAAiB;IACnC,MAAMC;IACP;GACD;IACE,OAAO;IACP,MAAM,OAAO,KAAK,kBAAkB;IACpC,MAAMC;IACP;GACD;IACE,OAAO;IACP,MAAM,OAAO,KAAK,aAAa;IAC/B,MAAMC;IACP;GACF,EACF;YAED,2CAACC;GACC,MAAM;GACN,GAAG;GACH,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,MAAM;GACN,IAAI;aAEJ,2CAACC,8BAAa;IACT;GACI,GACS;;AAI5B,0BAAe"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
import { a as AdminShell_default, o as AlephaMantineProvider_default } from "./core-CzO6aavT.js";
|
|
2
|
+
import { NestedView, useRouter } from "@alepha/react";
|
|
3
|
+
import { Flex } from "@mantine/core";
|
|
4
|
+
import { IconChecklist, IconFileDatabase, IconJumpRope, IconMail, IconSettings, IconShield, IconTruckDelivery, IconUser } from "@tabler/icons-react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
|
|
7
|
+
//#region src/admin/components/AdminLayout.tsx
|
|
8
|
+
const AdminLayout = () => {
|
|
9
|
+
const router = useRouter();
|
|
10
|
+
return /* @__PURE__ */ jsx(AlephaMantineProvider_default, { children: /* @__PURE__ */ jsx(AdminShell_default, {
|
|
11
|
+
appShellMainProps: { bg: "var(--alepha-background)" },
|
|
12
|
+
appShellHeaderProps: { bg: "var(--alepha-background)" },
|
|
13
|
+
appShellNavbarProps: { bg: "var(--alepha-background)" },
|
|
14
|
+
appShellProps: { withBorder: false },
|
|
15
|
+
appBarProps: { items: [{
|
|
16
|
+
type: "search",
|
|
17
|
+
position: "center"
|
|
18
|
+
}, {
|
|
19
|
+
type: "dark",
|
|
20
|
+
position: "right"
|
|
21
|
+
}] },
|
|
22
|
+
sidebarProps: { menu: [
|
|
23
|
+
{
|
|
24
|
+
type: "section",
|
|
25
|
+
label: "Management"
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
icon: IconUser,
|
|
29
|
+
label: "Users",
|
|
30
|
+
href: router.path("adminUsers")
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
icon: IconMail,
|
|
34
|
+
label: "Notifications",
|
|
35
|
+
href: router.path("adminNotifications")
|
|
36
|
+
},
|
|
37
|
+
{
|
|
38
|
+
icon: IconShield,
|
|
39
|
+
label: "Sessions",
|
|
40
|
+
href: router.path("adminSessions")
|
|
41
|
+
},
|
|
42
|
+
{
|
|
43
|
+
icon: IconChecklist,
|
|
44
|
+
label: "Verifications",
|
|
45
|
+
href: router.path("adminVerifications")
|
|
46
|
+
},
|
|
47
|
+
{
|
|
48
|
+
type: "section",
|
|
49
|
+
label: "System"
|
|
50
|
+
},
|
|
51
|
+
{
|
|
52
|
+
label: "Jobs",
|
|
53
|
+
href: router.path("adminJobs"),
|
|
54
|
+
icon: IconTruckDelivery
|
|
55
|
+
},
|
|
56
|
+
{
|
|
57
|
+
label: "Workflows",
|
|
58
|
+
href: router.path("adminWorkflows"),
|
|
59
|
+
icon: IconJumpRope
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
label: "Parameters",
|
|
63
|
+
href: router.path("adminParameters"),
|
|
64
|
+
icon: IconSettings
|
|
65
|
+
},
|
|
66
|
+
{
|
|
67
|
+
label: "Files",
|
|
68
|
+
href: router.path("adminFiles"),
|
|
69
|
+
icon: IconFileDatabase
|
|
70
|
+
}
|
|
71
|
+
] },
|
|
72
|
+
children: /* @__PURE__ */ jsx(Flex, {
|
|
73
|
+
flex: 1,
|
|
74
|
+
p: "lg",
|
|
75
|
+
mt: -16,
|
|
76
|
+
ml: -16,
|
|
77
|
+
bg: "var(--alepha-surface)",
|
|
78
|
+
bdrs: "lg",
|
|
79
|
+
bd: "1px solid var(--alepha-border)",
|
|
80
|
+
children: /* @__PURE__ */ jsx(NestedView, {})
|
|
81
|
+
})
|
|
82
|
+
}) });
|
|
83
|
+
};
|
|
84
|
+
var AdminLayout_default = AdminLayout;
|
|
85
|
+
|
|
86
|
+
//#endregion
|
|
87
|
+
export { AdminLayout_default as t };
|
|
88
|
+
//# sourceMappingURL=AdminLayout-CtkVYk-u.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminLayout-CtkVYk-u.js","names":["AlephaMantineProvider","AdminShell"],"sources":["../../src/admin/components/AdminLayout.tsx"],"sourcesContent":["import { NestedView, useRouter } from \"@alepha/react\";\nimport { AdminShell, AlephaMantineProvider } from \"@alepha/ui\";\nimport { Flex } from \"@mantine/core\";\nimport {\n IconChecklist,\n IconFileDatabase,\n IconJumpRope,\n IconMail,\n IconSettings,\n IconShield,\n IconTruckDelivery,\n IconUser,\n} from \"@tabler/icons-react\";\nimport type { AdminRouter } from \"../AdminRouter.ts\";\n\nconst AdminLayout = () => {\n const router = useRouter<AdminRouter>();\n return (\n <AlephaMantineProvider>\n <AdminShell\n appShellMainProps={{\n bg: \"var(--alepha-background)\",\n }}\n appShellHeaderProps={{\n bg: \"var(--alepha-background)\",\n }}\n appShellNavbarProps={{\n bg: \"var(--alepha-background)\",\n }}\n appShellProps={{\n withBorder: false,\n }}\n appBarProps={{\n items: [\n {\n type: \"search\",\n position: \"center\",\n },\n {\n type: \"dark\",\n position: \"right\",\n },\n ],\n }}\n sidebarProps={{\n menu: [\n {\n type: \"section\",\n label: \"Management\",\n },\n {\n icon: IconUser,\n label: \"Users\",\n href: router.path(\"adminUsers\"),\n },\n {\n icon: IconMail,\n label: \"Notifications\",\n href: router.path(\"adminNotifications\"),\n },\n {\n icon: IconShield,\n label: \"Sessions\",\n href: router.path(\"adminSessions\"),\n },\n {\n icon: IconChecklist,\n label: \"Verifications\",\n href: router.path(\"adminVerifications\"),\n },\n {\n type: \"section\",\n label: \"System\",\n },\n {\n label: \"Jobs\",\n href: router.path(\"adminJobs\"),\n icon: IconTruckDelivery,\n },\n {\n label: \"Workflows\",\n href: router.path(\"adminWorkflows\"),\n icon: IconJumpRope,\n },\n {\n label: \"Parameters\",\n href: router.path(\"adminParameters\"),\n icon: IconSettings,\n },\n {\n label: \"Files\",\n href: router.path(\"adminFiles\"),\n icon: IconFileDatabase,\n },\n ],\n }}\n >\n <Flex\n flex={1}\n p={\"lg\"}\n mt={-16}\n ml={-16}\n bg={\"var(--alepha-surface)\"}\n bdrs={\"lg\"}\n bd={\"1px solid var(--alepha-border)\"}\n >\n <NestedView />\n </Flex>\n </AdminShell>\n </AlephaMantineProvider>\n );\n};\n\nexport default AdminLayout;\n"],"mappings":";;;;;;;AAeA,MAAM,oBAAoB;CACxB,MAAM,SAAS,WAAwB;AACvC,QACE,oBAACA,2CACC,oBAACC;EACC,mBAAmB,EACjB,IAAI,4BACL;EACD,qBAAqB,EACnB,IAAI,4BACL;EACD,qBAAqB,EACnB,IAAI,4BACL;EACD,eAAe,EACb,YAAY,OACb;EACD,aAAa,EACX,OAAO,CACL;GACE,MAAM;GACN,UAAU;GACX,EACD;GACE,MAAM;GACN,UAAU;GACX,CACF,EACF;EACD,cAAc,EACZ,MAAM;GACJ;IACE,MAAM;IACN,OAAO;IACR;GACD;IACE,MAAM;IACN,OAAO;IACP,MAAM,OAAO,KAAK,aAAa;IAChC;GACD;IACE,MAAM;IACN,OAAO;IACP,MAAM,OAAO,KAAK,qBAAqB;IACxC;GACD;IACE,MAAM;IACN,OAAO;IACP,MAAM,OAAO,KAAK,gBAAgB;IACnC;GACD;IACE,MAAM;IACN,OAAO;IACP,MAAM,OAAO,KAAK,qBAAqB;IACxC;GACD;IACE,MAAM;IACN,OAAO;IACR;GACD;IACE,OAAO;IACP,MAAM,OAAO,KAAK,YAAY;IAC9B,MAAM;IACP;GACD;IACE,OAAO;IACP,MAAM,OAAO,KAAK,iBAAiB;IACnC,MAAM;IACP;GACD;IACE,OAAO;IACP,MAAM,OAAO,KAAK,kBAAkB;IACpC,MAAM;IACP;GACD;IACE,OAAO;IACP,MAAM,OAAO,KAAK,aAAa;IAC/B,MAAM;IACP;GACF,EACF;YAED,oBAAC;GACC,MAAM;GACN,GAAG;GACH,IAAI;GACJ,IAAI;GACJ,IAAI;GACJ,MAAM;GACN,IAAI;aAEJ,oBAAC,eAAa;IACT;GACI,GACS;;AAI5B,0BAAe"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
let __mantine_core = require("@mantine/core");
|
|
2
|
+
let __tabler_icons_react = require("@tabler/icons-react");
|
|
3
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
|
+
|
|
5
|
+
//#region src/admin/components/AdminNotifications.tsx
|
|
6
|
+
const AdminNotifications = () => {
|
|
7
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Flex, {
|
|
8
|
+
flex: 1,
|
|
9
|
+
justify: "center",
|
|
10
|
+
align: "center",
|
|
11
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__mantine_core.Stack, {
|
|
12
|
+
align: "center",
|
|
13
|
+
gap: "xs",
|
|
14
|
+
children: [
|
|
15
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__tabler_icons_react.IconBell, {
|
|
16
|
+
size: 48,
|
|
17
|
+
stroke: 1.5,
|
|
18
|
+
color: "var(--mantine-color-dimmed)"
|
|
19
|
+
}),
|
|
20
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
21
|
+
c: "dimmed",
|
|
22
|
+
children: "Notification Center"
|
|
23
|
+
}),
|
|
24
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
25
|
+
size: "xs",
|
|
26
|
+
c: "dimmed",
|
|
27
|
+
ta: "center",
|
|
28
|
+
maw: 400,
|
|
29
|
+
children: "Notifications are processed through the queue system. Email and SMS notifications are sent asynchronously using the configured providers."
|
|
30
|
+
})
|
|
31
|
+
]
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
var AdminNotifications_default = AdminNotifications;
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
Object.defineProperty(exports, 'AdminNotifications_default', {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
get: function () {
|
|
41
|
+
return AdminNotifications_default;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=AdminNotifications-DNUeJ-PW.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminNotifications-DNUeJ-PW.cjs","names":["Flex","Stack","IconBell","Text"],"sources":["../../src/admin/components/AdminNotifications.tsx"],"sourcesContent":["import { Flex, Text } from \"@alepha/ui\";\nimport { Stack } from \"@mantine/core\";\nimport { IconBell } from \"@tabler/icons-react\";\n\nconst AdminNotifications = () => {\n return (\n <Flex flex={1} justify=\"center\" align=\"center\">\n <Stack align=\"center\" gap=\"xs\">\n <IconBell size={48} stroke={1.5} color=\"var(--mantine-color-dimmed)\" />\n <Text c=\"dimmed\">Notification Center</Text>\n <Text size=\"xs\" c=\"dimmed\" ta=\"center\" maw={400}>\n Notifications are processed through the queue system. Email and SMS\n notifications are sent asynchronously using the configured providers.\n </Text>\n </Stack>\n </Flex>\n );\n};\n\nexport default AdminNotifications;\n"],"mappings":";;;;;AAIA,MAAM,2BAA2B;AAC/B,QACE,2CAACA;EAAK,MAAM;EAAG,SAAQ;EAAS,OAAM;YACpC,4CAACC;GAAM,OAAM;GAAS,KAAI;;IACxB,2CAACC;KAAS,MAAM;KAAI,QAAQ;KAAK,OAAM;MAAgC;IACvE,2CAACC;KAAK,GAAE;eAAS;MAA0B;IAC3C,2CAACA;KAAK,MAAK;KAAK,GAAE;KAAS,IAAG;KAAS,KAAK;eAAK;MAG1C;;IACD;GACH;;AAIX,iCAAe"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { n as Flex$1, r as Text$1 } from "./core-CzO6aavT.js";
|
|
2
|
+
import { Stack } from "@mantine/core";
|
|
3
|
+
import { IconBell } from "@tabler/icons-react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/admin/components/AdminNotifications.tsx
|
|
7
|
+
const AdminNotifications = () => {
|
|
8
|
+
return /* @__PURE__ */ jsx(Flex$1, {
|
|
9
|
+
flex: 1,
|
|
10
|
+
justify: "center",
|
|
11
|
+
align: "center",
|
|
12
|
+
children: /* @__PURE__ */ jsxs(Stack, {
|
|
13
|
+
align: "center",
|
|
14
|
+
gap: "xs",
|
|
15
|
+
children: [
|
|
16
|
+
/* @__PURE__ */ jsx(IconBell, {
|
|
17
|
+
size: 48,
|
|
18
|
+
stroke: 1.5,
|
|
19
|
+
color: "var(--mantine-color-dimmed)"
|
|
20
|
+
}),
|
|
21
|
+
/* @__PURE__ */ jsx(Text$1, {
|
|
22
|
+
c: "dimmed",
|
|
23
|
+
children: "Notification Center"
|
|
24
|
+
}),
|
|
25
|
+
/* @__PURE__ */ jsx(Text$1, {
|
|
26
|
+
size: "xs",
|
|
27
|
+
c: "dimmed",
|
|
28
|
+
ta: "center",
|
|
29
|
+
maw: 400,
|
|
30
|
+
children: "Notifications are processed through the queue system. Email and SMS notifications are sent asynchronously using the configured providers."
|
|
31
|
+
})
|
|
32
|
+
]
|
|
33
|
+
})
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
var AdminNotifications_default = AdminNotifications;
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { AdminNotifications_default as t };
|
|
40
|
+
//# sourceMappingURL=AdminNotifications-DnnulNNV.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminNotifications-DnnulNNV.js","names":["Flex","Text"],"sources":["../../src/admin/components/AdminNotifications.tsx"],"sourcesContent":["import { Flex, Text } from \"@alepha/ui\";\nimport { Stack } from \"@mantine/core\";\nimport { IconBell } from \"@tabler/icons-react\";\n\nconst AdminNotifications = () => {\n return (\n <Flex flex={1} justify=\"center\" align=\"center\">\n <Stack align=\"center\" gap=\"xs\">\n <IconBell size={48} stroke={1.5} color=\"var(--mantine-color-dimmed)\" />\n <Text c=\"dimmed\">Notification Center</Text>\n <Text size=\"xs\" c=\"dimmed\" ta=\"center\" maw={400}>\n Notifications are processed through the queue system. Email and SMS\n notifications are sent asynchronously using the configured providers.\n </Text>\n </Stack>\n </Flex>\n );\n};\n\nexport default AdminNotifications;\n"],"mappings":";;;;;;AAIA,MAAM,2BAA2B;AAC/B,QACE,oBAACA;EAAK,MAAM;EAAG,SAAQ;EAAS,OAAM;YACpC,qBAAC;GAAM,OAAM;GAAS,KAAI;;IACxB,oBAAC;KAAS,MAAM;KAAI,QAAQ;KAAK,OAAM;MAAgC;IACvE,oBAACC;KAAK,GAAE;eAAS;MAA0B;IAC3C,oBAACA;KAAK,MAAK;KAAK,GAAE;KAAS,IAAG;KAAS,KAAK;eAAK;MAG1C;;IACD;GACH;;AAIX,iCAAe"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { n as Flex$1, r as Text$1 } from "./core-CzO6aavT.js";
|
|
2
|
+
import { Stack } from "@mantine/core";
|
|
3
|
+
import { IconSettings } from "@tabler/icons-react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region src/admin/components/AdminParameters.tsx
|
|
7
|
+
const AdminParameters = () => {
|
|
8
|
+
return /* @__PURE__ */ jsx(Flex$1, {
|
|
9
|
+
flex: 1,
|
|
10
|
+
justify: "center",
|
|
11
|
+
align: "center",
|
|
12
|
+
children: /* @__PURE__ */ jsxs(Stack, {
|
|
13
|
+
align: "center",
|
|
14
|
+
gap: "xs",
|
|
15
|
+
children: [
|
|
16
|
+
/* @__PURE__ */ jsx(IconSettings, {
|
|
17
|
+
size: 48,
|
|
18
|
+
stroke: 1.5,
|
|
19
|
+
color: "var(--mantine-color-dimmed)"
|
|
20
|
+
}),
|
|
21
|
+
/* @__PURE__ */ jsx(Text$1, {
|
|
22
|
+
c: "dimmed",
|
|
23
|
+
children: "Parameter Management"
|
|
24
|
+
}),
|
|
25
|
+
/* @__PURE__ */ jsx(Text$1, {
|
|
26
|
+
size: "xs",
|
|
27
|
+
c: "dimmed",
|
|
28
|
+
ta: "center",
|
|
29
|
+
maw: 400,
|
|
30
|
+
children: "Application parameters and configuration settings. Define parameters using the $config descriptor to manage dynamic application settings."
|
|
31
|
+
})
|
|
32
|
+
]
|
|
33
|
+
})
|
|
34
|
+
});
|
|
35
|
+
};
|
|
36
|
+
var AdminParameters_default = AdminParameters;
|
|
37
|
+
|
|
38
|
+
//#endregion
|
|
39
|
+
export { AdminParameters_default as t };
|
|
40
|
+
//# sourceMappingURL=AdminParameters-B3hvpLpu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminParameters-B3hvpLpu.js","names":["Flex","Text"],"sources":["../../src/admin/components/AdminParameters.tsx"],"sourcesContent":["import { Flex, Text } from \"@alepha/ui\";\nimport { Stack } from \"@mantine/core\";\nimport { IconSettings } from \"@tabler/icons-react\";\n\nconst AdminParameters = () => {\n return (\n <Flex flex={1} justify=\"center\" align=\"center\">\n <Stack align=\"center\" gap=\"xs\">\n <IconSettings\n size={48}\n stroke={1.5}\n color=\"var(--mantine-color-dimmed)\"\n />\n <Text c=\"dimmed\">Parameter Management</Text>\n <Text size=\"xs\" c=\"dimmed\" ta=\"center\" maw={400}>\n Application parameters and configuration settings. Define parameters\n using the $config descriptor to manage dynamic application settings.\n </Text>\n </Stack>\n </Flex>\n );\n};\n\nexport default AdminParameters;\n"],"mappings":";;;;;;AAIA,MAAM,wBAAwB;AAC5B,QACE,oBAACA;EAAK,MAAM;EAAG,SAAQ;EAAS,OAAM;YACpC,qBAAC;GAAM,OAAM;GAAS,KAAI;;IACxB,oBAAC;KACC,MAAM;KACN,QAAQ;KACR,OAAM;MACN;IACF,oBAACC;KAAK,GAAE;eAAS;MAA2B;IAC5C,oBAACA;KAAK,MAAK;KAAK,GAAE;KAAS,IAAG;KAAS,KAAK;eAAK;MAG1C;;IACD;GACH;;AAIX,8BAAe"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
let __mantine_core = require("@mantine/core");
|
|
2
|
+
let __tabler_icons_react = require("@tabler/icons-react");
|
|
3
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
4
|
+
|
|
5
|
+
//#region src/admin/components/AdminParameters.tsx
|
|
6
|
+
const AdminParameters = () => {
|
|
7
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Flex, {
|
|
8
|
+
flex: 1,
|
|
9
|
+
justify: "center",
|
|
10
|
+
align: "center",
|
|
11
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__mantine_core.Stack, {
|
|
12
|
+
align: "center",
|
|
13
|
+
gap: "xs",
|
|
14
|
+
children: [
|
|
15
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__tabler_icons_react.IconSettings, {
|
|
16
|
+
size: 48,
|
|
17
|
+
stroke: 1.5,
|
|
18
|
+
color: "var(--mantine-color-dimmed)"
|
|
19
|
+
}),
|
|
20
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
21
|
+
c: "dimmed",
|
|
22
|
+
children: "Parameter Management"
|
|
23
|
+
}),
|
|
24
|
+
/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
25
|
+
size: "xs",
|
|
26
|
+
c: "dimmed",
|
|
27
|
+
ta: "center",
|
|
28
|
+
maw: 400,
|
|
29
|
+
children: "Application parameters and configuration settings. Define parameters using the $config descriptor to manage dynamic application settings."
|
|
30
|
+
})
|
|
31
|
+
]
|
|
32
|
+
})
|
|
33
|
+
});
|
|
34
|
+
};
|
|
35
|
+
var AdminParameters_default = AdminParameters;
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
Object.defineProperty(exports, 'AdminParameters_default', {
|
|
39
|
+
enumerable: true,
|
|
40
|
+
get: function () {
|
|
41
|
+
return AdminParameters_default;
|
|
42
|
+
}
|
|
43
|
+
});
|
|
44
|
+
//# sourceMappingURL=AdminParameters-gdf7036N.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminParameters-gdf7036N.cjs","names":["Flex","Stack","IconSettings","Text"],"sources":["../../src/admin/components/AdminParameters.tsx"],"sourcesContent":["import { Flex, Text } from \"@alepha/ui\";\nimport { Stack } from \"@mantine/core\";\nimport { IconSettings } from \"@tabler/icons-react\";\n\nconst AdminParameters = () => {\n return (\n <Flex flex={1} justify=\"center\" align=\"center\">\n <Stack align=\"center\" gap=\"xs\">\n <IconSettings\n size={48}\n stroke={1.5}\n color=\"var(--mantine-color-dimmed)\"\n />\n <Text c=\"dimmed\">Parameter Management</Text>\n <Text size=\"xs\" c=\"dimmed\" ta=\"center\" maw={400}>\n Application parameters and configuration settings. Define parameters\n using the $config descriptor to manage dynamic application settings.\n </Text>\n </Stack>\n </Flex>\n );\n};\n\nexport default AdminParameters;\n"],"mappings":";;;;;AAIA,MAAM,wBAAwB;AAC5B,QACE,2CAACA;EAAK,MAAM;EAAG,SAAQ;EAAS,OAAM;YACpC,4CAACC;GAAM,OAAM;GAAS,KAAI;;IACxB,2CAACC;KACC,MAAM;KACN,QAAQ;KACR,OAAM;MACN;IACF,2CAACC;KAAK,GAAE;eAAS;MAA2B;IAC5C,2CAACA;KAAK,MAAK;KAAK,GAAE;KAAS,IAAG;KAAS,KAAK;eAAK;MAG1C;;IACD;GACH;;AAIX,8BAAe"}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
const require_core = require('./core-aFtK4l9I.cjs');
|
|
2
|
+
let __alepha_react_i18n = require("@alepha/react/i18n");
|
|
3
|
+
let alepha = require("alepha");
|
|
4
|
+
let __alepha_react = require("@alepha/react");
|
|
5
|
+
let __mantine_core = require("@mantine/core");
|
|
6
|
+
let __tabler_icons_react = require("@tabler/icons-react");
|
|
7
|
+
let react_jsx_runtime = require("react/jsx-runtime");
|
|
8
|
+
let alepha_api_users = require("alepha/api/users");
|
|
9
|
+
|
|
10
|
+
//#region src/admin/components/AdminSessions.tsx
|
|
11
|
+
const AdminSessions = (props) => {
|
|
12
|
+
const client = (0, __alepha_react.useClient)();
|
|
13
|
+
const { l } = (0, __alepha_react_i18n.useI18n)();
|
|
14
|
+
const filters = alepha.t.object({ userId: alepha.t.optional(alepha.t.uuid({ $control: { query: alepha.t.pick(alepha_api_users.sessions.schema, ["userId"]) } })) });
|
|
15
|
+
const getDeviceIcon = (device) => {
|
|
16
|
+
switch (device) {
|
|
17
|
+
case "MOBILE": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__tabler_icons_react.IconDeviceMobile, { size: 14 });
|
|
18
|
+
case "TABLET": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__tabler_icons_react.IconDeviceTablet, { size: 14 });
|
|
19
|
+
default: return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__tabler_icons_react.IconDeviceDesktop, { size: 14 });
|
|
20
|
+
}
|
|
21
|
+
};
|
|
22
|
+
const isExpired = (expiresAt) => {
|
|
23
|
+
return new Date(expiresAt) < /* @__PURE__ */ new Date();
|
|
24
|
+
};
|
|
25
|
+
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Flex, {
|
|
26
|
+
flex: 1,
|
|
27
|
+
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_core.DataTable_default, {
|
|
28
|
+
submitOnInit: true,
|
|
29
|
+
defaultSize: 10,
|
|
30
|
+
typeFormProps: {
|
|
31
|
+
skipSubmitButton: true,
|
|
32
|
+
columns: 3
|
|
33
|
+
},
|
|
34
|
+
tableProps: {
|
|
35
|
+
horizontalSpacing: "xs",
|
|
36
|
+
verticalSpacing: "xs"
|
|
37
|
+
},
|
|
38
|
+
onFilterChange: (key, _value, form) => {
|
|
39
|
+
if (key === "userId") return form.submit();
|
|
40
|
+
},
|
|
41
|
+
filters,
|
|
42
|
+
tableTrProps: (item) => {
|
|
43
|
+
if (isExpired(item.expiresAt)) return { opacity: .5 };
|
|
44
|
+
return {};
|
|
45
|
+
},
|
|
46
|
+
items: async (filters$1) => {
|
|
47
|
+
return await client.findSessions({ query: {
|
|
48
|
+
...filters$1,
|
|
49
|
+
userRealmName: props.userRealmName
|
|
50
|
+
} });
|
|
51
|
+
},
|
|
52
|
+
columns: {
|
|
53
|
+
userId: {
|
|
54
|
+
label: "User ID",
|
|
55
|
+
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__mantine_core.Text, {
|
|
56
|
+
size: "xs",
|
|
57
|
+
ff: "monospace",
|
|
58
|
+
children: [item.userId.slice(0, 8), "..."]
|
|
59
|
+
})
|
|
60
|
+
},
|
|
61
|
+
userAgent: {
|
|
62
|
+
label: "Device",
|
|
63
|
+
fit: true,
|
|
64
|
+
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Group, {
|
|
65
|
+
gap: 4,
|
|
66
|
+
children: item.userAgent ? /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(react_jsx_runtime.Fragment, { children: [/* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Badge, {
|
|
67
|
+
size: "xs",
|
|
68
|
+
variant: "light",
|
|
69
|
+
leftSection: getDeviceIcon(item.userAgent.device),
|
|
70
|
+
children: item.userAgent.device
|
|
71
|
+
}), /* @__PURE__ */ (0, react_jsx_runtime.jsxs)(__mantine_core.Text, {
|
|
72
|
+
size: "xs",
|
|
73
|
+
c: "dimmed",
|
|
74
|
+
children: [
|
|
75
|
+
item.userAgent.browser,
|
|
76
|
+
" / ",
|
|
77
|
+
item.userAgent.os
|
|
78
|
+
]
|
|
79
|
+
})] }) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
80
|
+
size: "xs",
|
|
81
|
+
c: "dimmed",
|
|
82
|
+
children: "-"
|
|
83
|
+
})
|
|
84
|
+
})
|
|
85
|
+
},
|
|
86
|
+
ip: {
|
|
87
|
+
label: "IP",
|
|
88
|
+
fit: true,
|
|
89
|
+
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
90
|
+
size: "xs",
|
|
91
|
+
ff: "monospace",
|
|
92
|
+
c: "dimmed",
|
|
93
|
+
children: item.ip || "-"
|
|
94
|
+
})
|
|
95
|
+
},
|
|
96
|
+
expiresAt: {
|
|
97
|
+
label: "Status",
|
|
98
|
+
fit: true,
|
|
99
|
+
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Badge, {
|
|
100
|
+
size: "sm",
|
|
101
|
+
variant: "light",
|
|
102
|
+
color: isExpired(item.expiresAt) ? "red" : "green",
|
|
103
|
+
children: isExpired(item.expiresAt) ? "Expired" : "Active"
|
|
104
|
+
})
|
|
105
|
+
},
|
|
106
|
+
createdAt: {
|
|
107
|
+
label: "Created",
|
|
108
|
+
fit: true,
|
|
109
|
+
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
110
|
+
size: "xs",
|
|
111
|
+
c: "dimmed",
|
|
112
|
+
children: l(item.createdAt, { date: "fromNow" })
|
|
113
|
+
})
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
})
|
|
117
|
+
});
|
|
118
|
+
};
|
|
119
|
+
var AdminSessions_default = AdminSessions;
|
|
120
|
+
|
|
121
|
+
//#endregion
|
|
122
|
+
Object.defineProperty(exports, 'AdminSessions_default', {
|
|
123
|
+
enumerable: true,
|
|
124
|
+
get: function () {
|
|
125
|
+
return AdminSessions_default;
|
|
126
|
+
}
|
|
127
|
+
});
|
|
128
|
+
//# sourceMappingURL=AdminSessions-BF_P4lHs.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"AdminSessions-BF_P4lHs.cjs","names":["t","sessions","IconDeviceMobile","IconDeviceTablet","IconDeviceDesktop","Flex","DataTable","filters","Text","Group","Badge"],"sources":["../../src/admin/components/AdminSessions.tsx"],"sourcesContent":["import { useClient } from \"@alepha/react\";\nimport { useI18n } from \"@alepha/react/i18n\";\nimport { DataTable, Flex, Text } from \"@alepha/ui\";\nimport { Badge, Group } from \"@mantine/core\";\nimport {\n IconDeviceDesktop,\n IconDeviceMobile,\n IconDeviceTablet,\n} from \"@tabler/icons-react\";\nimport { type Page, t } from \"alepha\";\nimport {\n type SessionController,\n type SessionEntity,\n sessions,\n} from \"alepha/api/users\";\n\nexport interface AdminSessionsProps {\n userRealmName?: string;\n}\n\nconst AdminSessions = (props: AdminSessionsProps) => {\n const client = useClient<SessionController>();\n const { l } = useI18n();\n\n const filters = t.object({\n userId: t.optional(\n t.uuid({\n $control: {\n query: t.pick(sessions.schema, [\"userId\"]),\n },\n }),\n ),\n });\n\n const getDeviceIcon = (device?: string) => {\n switch (device) {\n case \"MOBILE\":\n return <IconDeviceMobile size={14} />;\n case \"TABLET\":\n return <IconDeviceTablet size={14} />;\n default:\n return <IconDeviceDesktop size={14} />;\n }\n };\n\n const isExpired = (expiresAt: Date | string) => {\n return new Date(expiresAt) < new Date();\n };\n\n return (\n <Flex flex={1}>\n <DataTable<SessionEntity, typeof filters>\n submitOnInit\n defaultSize={10}\n typeFormProps={{\n skipSubmitButton: true,\n columns: 3,\n }}\n tableProps={{\n horizontalSpacing: \"xs\",\n verticalSpacing: \"xs\",\n }}\n onFilterChange={(key, _value, form) => {\n if (key === \"userId\") {\n return form.submit();\n }\n }}\n filters={filters}\n tableTrProps={(item) => {\n if (isExpired(item.expiresAt)) {\n return {\n opacity: 0.5,\n };\n }\n return {};\n }}\n items={async (filters) => {\n const response = await client.findSessions({\n query: {\n ...filters,\n userRealmName: props.userRealmName,\n },\n });\n\n return response as Page<SessionEntity>;\n }}\n columns={{\n userId: {\n label: \"User ID\",\n value: (item) => (\n <Text size=\"xs\" ff=\"monospace\">\n {item.userId.slice(0, 8)}...\n </Text>\n ),\n },\n userAgent: {\n label: \"Device\",\n fit: true,\n value: (item) => (\n <Group gap={4}>\n {item.userAgent ? (\n <>\n <Badge\n size=\"xs\"\n variant=\"light\"\n leftSection={getDeviceIcon(item.userAgent.device)}\n >\n {item.userAgent.device}\n </Badge>\n <Text size=\"xs\" c=\"dimmed\">\n {item.userAgent.browser} / {item.userAgent.os}\n </Text>\n </>\n ) : (\n <Text size=\"xs\" c=\"dimmed\">\n -\n </Text>\n )}\n </Group>\n ),\n },\n ip: {\n label: \"IP\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" ff=\"monospace\" c=\"dimmed\">\n {item.ip || \"-\"}\n </Text>\n ),\n },\n expiresAt: {\n label: \"Status\",\n fit: true,\n value: (item) => (\n <Badge\n size=\"sm\"\n variant=\"light\"\n color={isExpired(item.expiresAt) ? \"red\" : \"green\"}\n >\n {isExpired(item.expiresAt) ? \"Expired\" : \"Active\"}\n </Badge>\n ),\n },\n createdAt: {\n label: \"Created\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\">\n {l(item.createdAt, { date: \"fromNow\" })}\n </Text>\n ),\n },\n }}\n />\n </Flex>\n );\n};\n\nexport default AdminSessions;\n"],"mappings":";;;;;;;;;;AAoBA,MAAM,iBAAiB,UAA8B;CACnD,MAAM,wCAAuC;CAC7C,MAAM,EAAE,wCAAe;CAEvB,MAAM,UAAUA,SAAE,OAAO,EACvB,QAAQA,SAAE,SACRA,SAAE,KAAK,EACL,UAAU,EACR,OAAOA,SAAE,KAAKC,0BAAS,QAAQ,CAAC,SAAS,CAAC,EAC3C,EACF,CAAC,CACH,EACF,CAAC;CAEF,MAAM,iBAAiB,WAAoB;AACzC,UAAQ,QAAR;GACE,KAAK,SACH,QAAO,2CAACC,yCAAiB,MAAM,KAAM;GACvC,KAAK,SACH,QAAO,2CAACC,yCAAiB,MAAM,KAAM;GACvC,QACE,QAAO,2CAACC,0CAAkB,MAAM,KAAM;;;CAI5C,MAAM,aAAa,cAA6B;AAC9C,SAAO,IAAI,KAAK,UAAU,mBAAG,IAAI,MAAM;;AAGzC,QACE,2CAACC;EAAK,MAAM;YACV,2CAACC;GACC;GACA,aAAa;GACb,eAAe;IACb,kBAAkB;IAClB,SAAS;IACV;GACD,YAAY;IACV,mBAAmB;IACnB,iBAAiB;IAClB;GACD,iBAAiB,KAAK,QAAQ,SAAS;AACrC,QAAI,QAAQ,SACV,QAAO,KAAK,QAAQ;;GAGf;GACT,eAAe,SAAS;AACtB,QAAI,UAAU,KAAK,UAAU,CAC3B,QAAO,EACL,SAAS,IACV;AAEH,WAAO,EAAE;;GAEX,OAAO,OAAO,cAAY;AAQxB,WAPiB,MAAM,OAAO,aAAa,EACzC,OAAO;KACL,GAAGC;KACH,eAAe,MAAM;KACtB,EACF,CAAC;;GAIJ,SAAS;IACP,QAAQ;KACN,OAAO;KACP,QAAQ,SACN,4CAACC;MAAK,MAAK;MAAK,IAAG;iBAChB,KAAK,OAAO,MAAM,GAAG,EAAE,EAAC;OACpB;KAEV;IACD,WAAW;KACT,OAAO;KACP,KAAK;KACL,QAAQ,SACN,2CAACC;MAAM,KAAK;gBACT,KAAK,YACJ,qFACE,2CAACC;OACC,MAAK;OACL,SAAQ;OACR,aAAa,cAAc,KAAK,UAAU,OAAO;iBAEhD,KAAK,UAAU;QACV,EACR,4CAACF;OAAK,MAAK;OAAK,GAAE;;QACf,KAAK,UAAU;QAAQ;QAAI,KAAK,UAAU;;QACtC,IACN,GAEH,2CAACA;OAAK,MAAK;OAAK,GAAE;iBAAS;QAEpB;OAEH;KAEX;IACD,IAAI;KACF,OAAO;KACP,KAAK;KACL,QAAQ,SACN,2CAACA;MAAK,MAAK;MAAK,IAAG;MAAY,GAAE;gBAC9B,KAAK,MAAM;OACP;KAEV;IACD,WAAW;KACT,OAAO;KACP,KAAK;KACL,QAAQ,SACN,2CAACE;MACC,MAAK;MACL,SAAQ;MACR,OAAO,UAAU,KAAK,UAAU,GAAG,QAAQ;gBAE1C,UAAU,KAAK,UAAU,GAAG,YAAY;OACnC;KAEX;IACD,WAAW;KACT,OAAO;KACP,KAAK;KACL,QAAQ,SACN,2CAACF;MAAK,MAAK;MAAK,GAAE;gBACf,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;OAClC;KAEV;IACF;IACD;GACG;;AAIX,4BAAe"}
|