@alepha/ui 0.13.0 → 0.13.2
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/admin/{AdminFiles-CllAxb1B.js → AdminFiles-BjofP3OC.js} +11 -11
- package/dist/admin/AdminFiles-BjofP3OC.js.map +1 -0
- package/dist/admin/AdminFiles-DldZB7oo.js +3 -0
- package/dist/admin/AdminJobs-BOq6AZOW.js +3 -0
- package/dist/admin/{AdminJobs-BXkFtlVo.js → AdminJobs-CDnVxEv6.js} +11 -11
- package/dist/admin/AdminJobs-CDnVxEv6.js.map +1 -0
- package/dist/admin/AdminLayout-Bgx25J8m.js +3 -0
- package/dist/admin/{AdminLayout-CtkVYk-u.js → AdminLayout-CervL8LV.js} +6 -6
- package/dist/admin/AdminLayout-CervL8LV.js.map +1 -0
- package/dist/admin/AdminNotifications-BDQXt3-e.js +3 -0
- package/dist/admin/{AdminNotifications-DnnulNNV.js → AdminNotifications-DvI2989x.js} +6 -6
- package/dist/admin/AdminNotifications-DvI2989x.js.map +1 -0
- package/dist/admin/AdminParameters-D_v0GAvI.js +3 -0
- package/dist/admin/{AdminParameters-B3hvpLpu.js → AdminParameters-P1LB6ZI1.js} +7 -7
- package/dist/admin/AdminParameters-P1LB6ZI1.js.map +1 -0
- package/dist/admin/{AdminSessions-Pjdz-iZx.js → AdminSessions-CmDVneE2.js} +11 -11
- package/dist/admin/AdminSessions-CmDVneE2.js.map +1 -0
- package/dist/admin/AdminSessions-Dkk_fzWK.js +3 -0
- package/dist/admin/{AdminUsers-C1HsrRxn.js → AdminUsers-88De5pev.js} +9 -9
- package/dist/admin/AdminUsers-88De5pev.js.map +1 -0
- package/dist/admin/AdminUsers-oyAXqZ5l.js +3 -0
- package/dist/admin/AdminVerifications-D93TKymL.js +3 -0
- package/dist/admin/{AdminVerifications-VMpm30mS.js → AdminVerifications-DBVEoqJe.js} +6 -6
- package/dist/admin/AdminVerifications-DBVEoqJe.js.map +1 -0
- package/dist/admin/index.d.ts +320 -320
- package/dist/admin/index.js +17 -17
- package/dist/auth/{IconGoogle-Bfmuv9Rv.js → IconGoogle-v_58os2T.js} +1 -1
- package/dist/auth/{IconGoogle-Bfmuv9Rv.js.map → IconGoogle-v_58os2T.js.map} +1 -1
- package/dist/auth/Login-BC2jTczq.js +4 -0
- package/dist/auth/{Login-JeXFsUf5.js → Login-OCrvjs9U.js} +12 -12
- package/dist/auth/Login-OCrvjs9U.js.map +1 -0
- package/dist/auth/Register-Dh0lsQmI.js +4 -0
- package/dist/auth/{Register-CPQnvXCZ.js → Register-Ei34GSba.js} +16 -16
- package/dist/auth/Register-Ei34GSba.js.map +1 -0
- package/dist/auth/ResetPassword-BnlAQAOE.js +3 -0
- package/dist/auth/{ResetPassword-BzUjGG_-.js → ResetPassword-tO0oMzfo.js} +12 -12
- package/dist/auth/ResetPassword-tO0oMzfo.js.map +1 -0
- package/dist/auth/index.d.ts +1528 -1898
- package/dist/auth/index.js +10 -10
- package/dist/auth/index.js.map +1 -1
- package/dist/core/index.d.ts +152 -152
- package/dist/core/index.js +13 -6
- package/dist/core/index.js.map +1 -1
- package/package.json +6 -6
- package/src/admin/components/AdminParameters.tsx +1 -1
- package/src/core/components/buttons/OmnibarButton.tsx +10 -5
- package/src/core/components/layout/Omnibar.tsx +6 -1
- package/src/core/index.ts +1 -1
- package/dist/admin/AdminFiles-BM6_7_5A.cjs +0 -4
- package/dist/admin/AdminFiles-BaCIMeNt.js +0 -4
- package/dist/admin/AdminFiles-CllAxb1B.js.map +0 -1
- package/dist/admin/AdminFiles-DC3T8uWZ.cjs +0 -122
- package/dist/admin/AdminFiles-DC3T8uWZ.cjs.map +0 -1
- package/dist/admin/AdminJobs-BXkFtlVo.js.map +0 -1
- package/dist/admin/AdminJobs-C428qrNQ.cjs +0 -130
- package/dist/admin/AdminJobs-C428qrNQ.cjs.map +0 -1
- package/dist/admin/AdminJobs-DCPPaJ4i.cjs +0 -4
- package/dist/admin/AdminJobs-yC6DarGO.js +0 -4
- package/dist/admin/AdminLayout-Bqo4cd33.cjs +0 -4
- package/dist/admin/AdminLayout-CQpxfko6.js +0 -4
- package/dist/admin/AdminLayout-CiLlywAQ.cjs +0 -93
- package/dist/admin/AdminLayout-CiLlywAQ.cjs.map +0 -1
- package/dist/admin/AdminLayout-CtkVYk-u.js.map +0 -1
- package/dist/admin/AdminNotifications-DNUeJ-PW.cjs +0 -44
- package/dist/admin/AdminNotifications-DNUeJ-PW.cjs.map +0 -1
- package/dist/admin/AdminNotifications-DaMu1AQ4.js +0 -4
- package/dist/admin/AdminNotifications-DnnulNNV.js.map +0 -1
- package/dist/admin/AdminNotifications-ihgbKVCx.cjs +0 -4
- package/dist/admin/AdminParameters-B3hvpLpu.js.map +0 -1
- package/dist/admin/AdminParameters-U4lU1rUF.cjs +0 -4
- package/dist/admin/AdminParameters-gdf7036N.cjs +0 -44
- package/dist/admin/AdminParameters-gdf7036N.cjs.map +0 -1
- package/dist/admin/AdminParameters-prMcCgxf.js +0 -4
- package/dist/admin/AdminSessions-BF_P4lHs.cjs +0 -128
- package/dist/admin/AdminSessions-BF_P4lHs.cjs.map +0 -1
- package/dist/admin/AdminSessions-CATIU61I.cjs +0 -4
- package/dist/admin/AdminSessions-DqOXOpYR.js +0 -4
- package/dist/admin/AdminSessions-Pjdz-iZx.js.map +0 -1
- package/dist/admin/AdminUsers-BgTL-zSY.js +0 -4
- package/dist/admin/AdminUsers-C1HsrRxn.js.map +0 -1
- package/dist/admin/AdminUsers-HqvxwNGZ.cjs +0 -4
- package/dist/admin/AdminUsers-M2uEQbp5.cjs +0 -109
- package/dist/admin/AdminUsers-M2uEQbp5.cjs.map +0 -1
- package/dist/admin/AdminVerifications-BVssbtfU.cjs +0 -44
- package/dist/admin/AdminVerifications-BVssbtfU.cjs.map +0 -1
- package/dist/admin/AdminVerifications-Df6DRgNo.js +0 -4
- package/dist/admin/AdminVerifications-DxAtcYUR.cjs +0 -4
- package/dist/admin/AdminVerifications-VMpm30mS.js.map +0 -1
- package/dist/admin/core-CzO6aavT.js +0 -2507
- package/dist/admin/core-CzO6aavT.js.map +0 -1
- package/dist/admin/core-aFtK4l9I.cjs +0 -2530
- package/dist/admin/core-aFtK4l9I.cjs.map +0 -1
- package/dist/admin/index.cjs +0 -87
- package/dist/admin/index.cjs.map +0 -1
- package/dist/admin/index.d.cts +0 -1739
- package/dist/auth/IconGoogle-B17BTQyD.cjs +0 -69
- package/dist/auth/IconGoogle-B17BTQyD.cjs.map +0 -1
- package/dist/auth/Login-BTBmbnWl.cjs +0 -181
- package/dist/auth/Login-BTBmbnWl.cjs.map +0 -1
- package/dist/auth/Login-BcQOtG3v.js +0 -5
- package/dist/auth/Login-Btmd70Um.cjs +0 -5
- package/dist/auth/Login-JeXFsUf5.js.map +0 -1
- package/dist/auth/Register-CPQnvXCZ.js.map +0 -1
- package/dist/auth/Register-CbesZal3.cjs +0 -5
- package/dist/auth/Register-DpI_JdyO.js +0 -5
- package/dist/auth/Register-HP3rP71B.cjs +0 -323
- package/dist/auth/Register-HP3rP71B.cjs.map +0 -1
- package/dist/auth/ResetPassword-B-tkzV7g.cjs +0 -248
- package/dist/auth/ResetPassword-B-tkzV7g.cjs.map +0 -1
- package/dist/auth/ResetPassword-BlK3xEpU.js +0 -4
- package/dist/auth/ResetPassword-BzUjGG_-.js.map +0 -1
- package/dist/auth/ResetPassword-W3xjOnWy.cjs +0 -4
- package/dist/auth/chunk-DhGyd7sr.js +0 -28
- package/dist/auth/core-D1MHij1j.js +0 -1795
- package/dist/auth/core-D1MHij1j.js.map +0 -1
- package/dist/auth/core-rDZ9d92K.cjs +0 -1824
- package/dist/auth/core-rDZ9d92K.cjs.map +0 -1
- package/dist/auth/index.cjs +0 -211
- package/dist/auth/index.cjs.map +0 -1
- package/dist/auth/index.d.cts +0 -6265
- package/dist/core/index.cjs +0 -2620
- package/dist/core/index.cjs.map +0 -1
- package/dist/core/index.d.cts +0 -2737
package/package.json
CHANGED
|
@@ -7,7 +7,7 @@
|
|
|
7
7
|
"mantine"
|
|
8
8
|
],
|
|
9
9
|
"author": "Nicolas Foures",
|
|
10
|
-
"version": "0.13.
|
|
10
|
+
"version": "0.13.2",
|
|
11
11
|
"type": "module",
|
|
12
12
|
"engines": {
|
|
13
13
|
"node": ">=22.0.0"
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"src"
|
|
22
22
|
],
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@alepha/react": "0.13.
|
|
24
|
+
"@alepha/react": "0.13.2",
|
|
25
25
|
"@mantine/core": "^8.3.9",
|
|
26
26
|
"@mantine/dates": "^8.3.9",
|
|
27
27
|
"@mantine/hooks": "^8.3.9",
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
"@mantine/nprogress": "^8.3.9",
|
|
31
31
|
"@mantine/spotlight": "^8.3.9",
|
|
32
32
|
"@tabler/icons-react": "^3.35.0",
|
|
33
|
-
"alepha": "0.13.
|
|
33
|
+
"alepha": "0.13.2",
|
|
34
34
|
"dayjs": "^1.11.19"
|
|
35
35
|
},
|
|
36
36
|
"devDependencies": {
|
|
@@ -57,17 +57,17 @@
|
|
|
57
57
|
"./admin": {
|
|
58
58
|
"types": "./dist/admin/index.js",
|
|
59
59
|
"import": "./dist/admin/index.js",
|
|
60
|
-
"
|
|
60
|
+
"default": "./dist/admin/index.js"
|
|
61
61
|
},
|
|
62
62
|
"./auth": {
|
|
63
63
|
"types": "./dist/auth/index.js",
|
|
64
64
|
"import": "./dist/auth/index.js",
|
|
65
|
-
"
|
|
65
|
+
"default": "./dist/auth/index.js"
|
|
66
66
|
},
|
|
67
67
|
".": {
|
|
68
68
|
"types": "./dist/core/index.js",
|
|
69
69
|
"import": "./dist/core/index.js",
|
|
70
|
-
"
|
|
70
|
+
"default": "./dist/core/index.js"
|
|
71
71
|
},
|
|
72
72
|
"./styles": "./styles.css"
|
|
73
73
|
},
|
|
@@ -14,7 +14,7 @@ const AdminParameters = () => {
|
|
|
14
14
|
<Text c="dimmed">Parameter Management</Text>
|
|
15
15
|
<Text size="xs" c="dimmed" ta="center" maw={400}>
|
|
16
16
|
Application parameters and configuration settings. Define parameters
|
|
17
|
-
using the $config
|
|
17
|
+
using the $config primitive to manage dynamic application settings.
|
|
18
18
|
</Text>
|
|
19
19
|
</Stack>
|
|
20
20
|
</Flex>
|
|
@@ -12,18 +12,23 @@ const OmnibarButton = (props: OmnibarButtonProps) => {
|
|
|
12
12
|
return (
|
|
13
13
|
<ActionButton
|
|
14
14
|
variant={"default"}
|
|
15
|
-
miw={256}
|
|
16
15
|
onClick={spotlight.open}
|
|
17
16
|
justify={"space-between"}
|
|
18
|
-
rightSection={
|
|
17
|
+
rightSection={
|
|
18
|
+
<Kbd visibleFrom={"sm"} size={"sm"}>
|
|
19
|
+
⌘+K
|
|
20
|
+
</Kbd>
|
|
21
|
+
}
|
|
19
22
|
radius={"md"}
|
|
20
23
|
{...props.actionProps}
|
|
21
24
|
>
|
|
22
25
|
<Flex align={"center"} gap={"xs"}>
|
|
23
26
|
<IconSearch size={16} color={"gray"} />
|
|
24
|
-
<
|
|
25
|
-
|
|
26
|
-
|
|
27
|
+
<Flex visibleFrom={"sm"} miw={192}>
|
|
28
|
+
<Text size={"xs"} c={"dimmed"}>
|
|
29
|
+
Search...
|
|
30
|
+
</Text>
|
|
31
|
+
</Flex>
|
|
27
32
|
</Flex>
|
|
28
33
|
</ActionButton>
|
|
29
34
|
);
|
|
@@ -20,7 +20,12 @@ const Omnibar = (props: OmnibarProps) => {
|
|
|
20
20
|
id: page.name,
|
|
21
21
|
label: page.label ?? page.name,
|
|
22
22
|
description: page.description,
|
|
23
|
-
onClick: () =>
|
|
23
|
+
onClick: () => {
|
|
24
|
+
if (page.staticName) {
|
|
25
|
+
return router.go(page.staticName, { params: page.params });
|
|
26
|
+
}
|
|
27
|
+
return router.go(page.name);
|
|
28
|
+
},
|
|
24
29
|
leftSection: page.icon,
|
|
25
30
|
})),
|
|
26
31
|
[],
|
package/src/core/index.ts
CHANGED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AdminFiles-CllAxb1B.js","names":["Flex","DataTable","filters","Text"],"sources":["../../src/admin/components/AdminFiles.tsx"],"sourcesContent":["import { useClient } from \"@alepha/react\";\nimport { useI18n } from \"@alepha/react/i18n\";\nimport { DataTable, Flex, Text } from \"@alepha/ui\";\nimport { Badge } from \"@mantine/core\";\nimport { type Page, t } from \"alepha\";\nimport { type FileController, type FileEntity, files } from \"alepha/api/files\";\n\nconst AdminFiles = () => {\n const client = useClient<FileController>();\n const { l } = useI18n();\n\n const filters = t.object({\n bucket: t.optional(t.string()),\n name: t.optional(\n t.string({\n $control: {\n query: t.pick(files.schema, [\"name\", \"bucket\", \"mimeType\"]),\n },\n }),\n ),\n });\n\n const formatFileSize = (bytes: number) => {\n if (bytes === 0) return \"0 B\";\n const k = 1024;\n const sizes = [\"B\", \"KB\", \"MB\", \"GB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${Number.parseFloat((bytes / k ** i).toFixed(1))} ${sizes[i]}`;\n };\n\n return (\n <Flex flex={1}>\n <DataTable<FileEntity, 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 === \"name\" || key === \"bucket\") {\n return form.submit();\n }\n }}\n filters={filters}\n items={async (filters) => {\n const response = await client.findFiles({\n query: filters,\n });\n\n return response as Page<FileEntity>;\n }}\n columns={{\n name: {\n label: \"Name\",\n value: (item) => (\n <Text size=\"sm\" fw={500} lineClamp={1}>\n {item.name}\n </Text>\n ),\n },\n bucket: {\n label: \"Bucket\",\n fit: true,\n value: (item) => (\n <Badge size=\"sm\" variant=\"light\" color=\"blue\">\n {item.bucket}\n </Badge>\n ),\n },\n mimeType: {\n label: \"Type\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\">\n {item.mimeType}\n </Text>\n ),\n },\n size: {\n label: \"Size\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\">\n {formatFileSize(item.size)}\n </Text>\n ),\n },\n creatorName: {\n label: \"Creator\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\">\n {item.creatorName || \"-\"}\n </Text>\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 AdminFiles;\n"],"mappings":";;;;;;;;;AAOA,MAAM,mBAAmB;CACvB,MAAM,SAAS,WAA2B;CAC1C,MAAM,EAAE,MAAM,SAAS;CAEvB,MAAM,UAAU,EAAE,OAAO;EACvB,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC;EAC9B,MAAM,EAAE,SACN,EAAE,OAAO,EACP,UAAU,EACR,OAAO,EAAE,KAAK,MAAM,QAAQ;GAAC;GAAQ;GAAU;GAAW,CAAC,EAC5D,EACF,CAAC,CACH;EACF,CAAC;CAEF,MAAM,kBAAkB,UAAkB;AACxC,MAAI,UAAU,EAAG,QAAO;EACxB,MAAM,IAAI;EACV,MAAM,QAAQ;GAAC;GAAK;GAAM;GAAM;GAAK;EACrC,MAAM,IAAI,KAAK,MAAM,KAAK,IAAI,MAAM,GAAG,KAAK,IAAI,EAAE,CAAC;AACnD,SAAO,GAAG,OAAO,YAAY,QAAQ,KAAK,GAAG,QAAQ,EAAE,CAAC,CAAC,GAAG,MAAM;;AAGpE,QACE,oBAACA;EAAK,MAAM;YACV,oBAACC;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,UAAU,QAAQ,SAC5B,QAAO,KAAK,QAAQ;;GAGf;GACT,OAAO,OAAO,cAAY;AAKxB,WAJiB,MAAM,OAAO,UAAU,EACtC,OAAOC,WACR,CAAC;;GAIJ,SAAS;IACP,MAAM;KACJ,OAAO;KACP,QAAQ,SACN,oBAACC;MAAK,MAAK;MAAK,IAAI;MAAK,WAAW;gBACjC,KAAK;OACD;KAEV;IACD,QAAQ;KACN,OAAO;KACP,KAAK;KACL,QAAQ,SACN,oBAAC;MAAM,MAAK;MAAK,SAAQ;MAAQ,OAAM;gBACpC,KAAK;OACA;KAEX;IACD,UAAU;KACR,OAAO;KACP,KAAK;KACL,QAAQ,SACN,oBAACA;MAAK,MAAK;MAAK,GAAE;gBACf,KAAK;OACD;KAEV;IACD,MAAM;KACJ,OAAO;KACP,KAAK;KACL,QAAQ,SACN,oBAACA;MAAK,MAAK;MAAK,GAAE;gBACf,eAAe,KAAK,KAAK;OACrB;KAEV;IACD,aAAa;KACX,OAAO;KACP,KAAK;KACL,QAAQ,SACN,oBAACA;MAAK,MAAK;MAAK,GAAE;gBACf,KAAK,eAAe;OAChB;KAEV;IACD,WAAW;KACT,OAAO;KACP,KAAK;KACL,QAAQ,SACN,oBAACA;MAAK,MAAK;MAAK,GAAE;gBACf,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;OAClC;KAEV;IACF;IACD;GACG;;AAIX,yBAAe"}
|
|
@@ -1,122 +0,0 @@
|
|
|
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 react_jsx_runtime = require("react/jsx-runtime");
|
|
7
|
-
let alepha_api_files = require("alepha/api/files");
|
|
8
|
-
|
|
9
|
-
//#region src/admin/components/AdminFiles.tsx
|
|
10
|
-
const AdminFiles = () => {
|
|
11
|
-
const client = (0, __alepha_react.useClient)();
|
|
12
|
-
const { l } = (0, __alepha_react_i18n.useI18n)();
|
|
13
|
-
const filters = alepha.t.object({
|
|
14
|
-
bucket: alepha.t.optional(alepha.t.string()),
|
|
15
|
-
name: alepha.t.optional(alepha.t.string({ $control: { query: alepha.t.pick(alepha_api_files.files.schema, [
|
|
16
|
-
"name",
|
|
17
|
-
"bucket",
|
|
18
|
-
"mimeType"
|
|
19
|
-
]) } }))
|
|
20
|
-
});
|
|
21
|
-
const formatFileSize = (bytes) => {
|
|
22
|
-
if (bytes === 0) return "0 B";
|
|
23
|
-
const k = 1024;
|
|
24
|
-
const sizes = [
|
|
25
|
-
"B",
|
|
26
|
-
"KB",
|
|
27
|
-
"MB",
|
|
28
|
-
"GB"
|
|
29
|
-
];
|
|
30
|
-
const i = Math.floor(Math.log(bytes) / Math.log(k));
|
|
31
|
-
return `${Number.parseFloat((bytes / k ** i).toFixed(1))} ${sizes[i]}`;
|
|
32
|
-
};
|
|
33
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Flex, {
|
|
34
|
-
flex: 1,
|
|
35
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_core.DataTable_default, {
|
|
36
|
-
submitOnInit: true,
|
|
37
|
-
defaultSize: 10,
|
|
38
|
-
typeFormProps: {
|
|
39
|
-
skipSubmitButton: true,
|
|
40
|
-
columns: 3
|
|
41
|
-
},
|
|
42
|
-
tableProps: {
|
|
43
|
-
horizontalSpacing: "xs",
|
|
44
|
-
verticalSpacing: "xs"
|
|
45
|
-
},
|
|
46
|
-
onFilterChange: (key, _value, form) => {
|
|
47
|
-
if (key === "name" || key === "bucket") return form.submit();
|
|
48
|
-
},
|
|
49
|
-
filters,
|
|
50
|
-
items: async (filters$1) => {
|
|
51
|
-
return await client.findFiles({ query: filters$1 });
|
|
52
|
-
},
|
|
53
|
-
columns: {
|
|
54
|
-
name: {
|
|
55
|
-
label: "Name",
|
|
56
|
-
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
57
|
-
size: "sm",
|
|
58
|
-
fw: 500,
|
|
59
|
-
lineClamp: 1,
|
|
60
|
-
children: item.name
|
|
61
|
-
})
|
|
62
|
-
},
|
|
63
|
-
bucket: {
|
|
64
|
-
label: "Bucket",
|
|
65
|
-
fit: true,
|
|
66
|
-
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Badge, {
|
|
67
|
-
size: "sm",
|
|
68
|
-
variant: "light",
|
|
69
|
-
color: "blue",
|
|
70
|
-
children: item.bucket
|
|
71
|
-
})
|
|
72
|
-
},
|
|
73
|
-
mimeType: {
|
|
74
|
-
label: "Type",
|
|
75
|
-
fit: true,
|
|
76
|
-
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
77
|
-
size: "xs",
|
|
78
|
-
c: "dimmed",
|
|
79
|
-
children: item.mimeType
|
|
80
|
-
})
|
|
81
|
-
},
|
|
82
|
-
size: {
|
|
83
|
-
label: "Size",
|
|
84
|
-
fit: true,
|
|
85
|
-
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
86
|
-
size: "xs",
|
|
87
|
-
c: "dimmed",
|
|
88
|
-
children: formatFileSize(item.size)
|
|
89
|
-
})
|
|
90
|
-
},
|
|
91
|
-
creatorName: {
|
|
92
|
-
label: "Creator",
|
|
93
|
-
fit: true,
|
|
94
|
-
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
95
|
-
size: "xs",
|
|
96
|
-
c: "dimmed",
|
|
97
|
-
children: item.creatorName || "-"
|
|
98
|
-
})
|
|
99
|
-
},
|
|
100
|
-
createdAt: {
|
|
101
|
-
label: "Created",
|
|
102
|
-
fit: true,
|
|
103
|
-
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
104
|
-
size: "xs",
|
|
105
|
-
c: "dimmed",
|
|
106
|
-
children: l(item.createdAt, { date: "fromNow" })
|
|
107
|
-
})
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
})
|
|
111
|
-
});
|
|
112
|
-
};
|
|
113
|
-
var AdminFiles_default = AdminFiles;
|
|
114
|
-
|
|
115
|
-
//#endregion
|
|
116
|
-
Object.defineProperty(exports, 'AdminFiles_default', {
|
|
117
|
-
enumerable: true,
|
|
118
|
-
get: function () {
|
|
119
|
-
return AdminFiles_default;
|
|
120
|
-
}
|
|
121
|
-
});
|
|
122
|
-
//# sourceMappingURL=AdminFiles-DC3T8uWZ.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AdminFiles-DC3T8uWZ.cjs","names":["t","files","Flex","DataTable","filters","Text","Badge"],"sources":["../../src/admin/components/AdminFiles.tsx"],"sourcesContent":["import { useClient } from \"@alepha/react\";\nimport { useI18n } from \"@alepha/react/i18n\";\nimport { DataTable, Flex, Text } from \"@alepha/ui\";\nimport { Badge } from \"@mantine/core\";\nimport { type Page, t } from \"alepha\";\nimport { type FileController, type FileEntity, files } from \"alepha/api/files\";\n\nconst AdminFiles = () => {\n const client = useClient<FileController>();\n const { l } = useI18n();\n\n const filters = t.object({\n bucket: t.optional(t.string()),\n name: t.optional(\n t.string({\n $control: {\n query: t.pick(files.schema, [\"name\", \"bucket\", \"mimeType\"]),\n },\n }),\n ),\n });\n\n const formatFileSize = (bytes: number) => {\n if (bytes === 0) return \"0 B\";\n const k = 1024;\n const sizes = [\"B\", \"KB\", \"MB\", \"GB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return `${Number.parseFloat((bytes / k ** i).toFixed(1))} ${sizes[i]}`;\n };\n\n return (\n <Flex flex={1}>\n <DataTable<FileEntity, 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 === \"name\" || key === \"bucket\") {\n return form.submit();\n }\n }}\n filters={filters}\n items={async (filters) => {\n const response = await client.findFiles({\n query: filters,\n });\n\n return response as Page<FileEntity>;\n }}\n columns={{\n name: {\n label: \"Name\",\n value: (item) => (\n <Text size=\"sm\" fw={500} lineClamp={1}>\n {item.name}\n </Text>\n ),\n },\n bucket: {\n label: \"Bucket\",\n fit: true,\n value: (item) => (\n <Badge size=\"sm\" variant=\"light\" color=\"blue\">\n {item.bucket}\n </Badge>\n ),\n },\n mimeType: {\n label: \"Type\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\">\n {item.mimeType}\n </Text>\n ),\n },\n size: {\n label: \"Size\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\">\n {formatFileSize(item.size)}\n </Text>\n ),\n },\n creatorName: {\n label: \"Creator\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\">\n {item.creatorName || \"-\"}\n </Text>\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 AdminFiles;\n"],"mappings":";;;;;;;;;AAOA,MAAM,mBAAmB;CACvB,MAAM,wCAAoC;CAC1C,MAAM,EAAE,wCAAe;CAEvB,MAAM,UAAUA,SAAE,OAAO;EACvB,QAAQA,SAAE,SAASA,SAAE,QAAQ,CAAC;EAC9B,MAAMA,SAAE,SACNA,SAAE,OAAO,EACP,UAAU,EACR,OAAOA,SAAE,KAAKC,uBAAM,QAAQ;GAAC;GAAQ;GAAU;GAAW,CAAC,EAC5D,EACF,CAAC,CACH;EACF,CAAC;CAEF,MAAM,kBAAkB,UAAkB;AACxC,MAAI,UAAU,EAAG,QAAO;EACxB,MAAM,IAAI;EACV,MAAM,QAAQ;GAAC;GAAK;GAAM;GAAM;GAAK;EACrC,MAAM,IAAI,KAAK,MAAM,KAAK,IAAI,MAAM,GAAG,KAAK,IAAI,EAAE,CAAC;AACnD,SAAO,GAAG,OAAO,YAAY,QAAQ,KAAK,GAAG,QAAQ,EAAE,CAAC,CAAC,GAAG,MAAM;;AAGpE,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,UAAU,QAAQ,SAC5B,QAAO,KAAK,QAAQ;;GAGf;GACT,OAAO,OAAO,cAAY;AAKxB,WAJiB,MAAM,OAAO,UAAU,EACtC,OAAOC,WACR,CAAC;;GAIJ,SAAS;IACP,MAAM;KACJ,OAAO;KACP,QAAQ,SACN,2CAACC;MAAK,MAAK;MAAK,IAAI;MAAK,WAAW;gBACjC,KAAK;OACD;KAEV;IACD,QAAQ;KACN,OAAO;KACP,KAAK;KACL,QAAQ,SACN,2CAACC;MAAM,MAAK;MAAK,SAAQ;MAAQ,OAAM;gBACpC,KAAK;OACA;KAEX;IACD,UAAU;KACR,OAAO;KACP,KAAK;KACL,QAAQ,SACN,2CAACD;MAAK,MAAK;MAAK,GAAE;gBACf,KAAK;OACD;KAEV;IACD,MAAM;KACJ,OAAO;KACP,KAAK;KACL,QAAQ,SACN,2CAACA;MAAK,MAAK;MAAK,GAAE;gBACf,eAAe,KAAK,KAAK;OACrB;KAEV;IACD,aAAa;KACX,OAAO;KACP,KAAK;KACL,QAAQ,SACN,2CAACA;MAAK,MAAK;MAAK,GAAE;gBACf,KAAK,eAAe;OAChB;KAEV;IACD,WAAW;KACT,OAAO;KACP,KAAK;KACL,QAAQ,SACN,2CAACA;MAAK,MAAK;MAAK,GAAE;gBACf,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;OAClC;KAEV;IACF;IACD;GACG;;AAIX,yBAAe"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AdminJobs-BXkFtlVo.js","names":["Flex","DataTable","filters","Text"],"sources":["../../src/admin/components/AdminJobs.tsx"],"sourcesContent":["import { useClient } from \"@alepha/react\";\nimport { useI18n } from \"@alepha/react/i18n\";\nimport { DataTable, Flex, Text } from \"@alepha/ui\";\nimport { Badge } from \"@mantine/core\";\nimport {\n IconCheck,\n IconClock,\n IconPlayerPlay,\n IconX,\n} from \"@tabler/icons-react\";\nimport { type Page, t } from \"alepha\";\nimport {\n type JobController,\n type JobExecutionEntity,\n jobExecutions,\n} from \"alepha/api/jobs\";\n\nconst AdminJobs = () => {\n const client = useClient<JobController>();\n const { l } = useI18n();\n\n const filters = t.object({\n job: t.optional(\n t.string({\n $control: {\n query: t.pick(jobExecutions.schema, [\"job\"]),\n },\n }),\n ),\n status: t.optional(t.enum([\"STARTED\", \"FAILED\", \"COMPLETED\"])),\n });\n\n const getStatusColor = (status: string) => {\n switch (status) {\n case \"COMPLETED\":\n return \"green\";\n case \"FAILED\":\n return \"red\";\n case \"STARTED\":\n return \"blue\";\n default:\n return \"gray\";\n }\n };\n\n const getStatusIcon = (status: string) => {\n switch (status) {\n case \"COMPLETED\":\n return <IconCheck size={12} />;\n case \"FAILED\":\n return <IconX size={12} />;\n case \"STARTED\":\n return <IconPlayerPlay size={12} />;\n default:\n return <IconClock size={12} />;\n }\n };\n\n const formatDuration = (\n start: Date | string,\n end?: Date | string | null,\n ): string => {\n const startTime = new Date(start).getTime();\n const endTime = end ? new Date(end).getTime() : Date.now();\n const duration = endTime - startTime;\n\n if (duration < 1000) return `${duration}ms`;\n if (duration < 60000) return `${(duration / 1000).toFixed(1)}s`;\n return `${Math.floor(duration / 60000)}m ${Math.floor((duration % 60000) / 1000)}s`;\n };\n\n return (\n <Flex flex={1}>\n <DataTable<JobExecutionEntity, 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 === \"job\" || key === \"status\") {\n return form.submit();\n }\n }}\n filters={filters}\n items={async (filters) => {\n const response = await client.getJobExecutions({\n query: filters,\n });\n\n return response as Page<JobExecutionEntity>;\n }}\n columns={{\n job: {\n label: \"Job\",\n value: (item) => (\n <Text size=\"sm\" fw={500}>\n {item.job}\n </Text>\n ),\n },\n status: {\n label: \"Status\",\n fit: true,\n value: (item) => (\n <Badge\n size=\"sm\"\n variant=\"light\"\n color={getStatusColor(item.status)}\n leftSection={getStatusIcon(item.status)}\n >\n {item.status}\n </Badge>\n ),\n },\n duration: {\n label: \"Duration\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\" ff=\"monospace\">\n {formatDuration(item.createdAt, item.finishedAt)}\n </Text>\n ),\n },\n error: {\n label: \"Error\",\n value: (item) =>\n item.error ? (\n <Text size=\"xs\" c=\"red\" lineClamp={1}>\n {item.error}\n </Text>\n ) : (\n <Text size=\"xs\" c=\"dimmed\">\n -\n </Text>\n ),\n },\n createdAt: {\n label: \"Started\",\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 AdminJobs;\n"],"mappings":";;;;;;;;;;AAiBA,MAAM,kBAAkB;CACtB,MAAM,SAAS,WAA0B;CACzC,MAAM,EAAE,MAAM,SAAS;CAEvB,MAAM,UAAU,EAAE,OAAO;EACvB,KAAK,EAAE,SACL,EAAE,OAAO,EACP,UAAU,EACR,OAAO,EAAE,KAAK,cAAc,QAAQ,CAAC,MAAM,CAAC,EAC7C,EACF,CAAC,CACH;EACD,QAAQ,EAAE,SAAS,EAAE,KAAK;GAAC;GAAW;GAAU;GAAY,CAAC,CAAC;EAC/D,CAAC;CAEF,MAAM,kBAAkB,WAAmB;AACzC,UAAQ,QAAR;GACE,KAAK,YACH,QAAO;GACT,KAAK,SACH,QAAO;GACT,KAAK,UACH,QAAO;GACT,QACE,QAAO;;;CAIb,MAAM,iBAAiB,WAAmB;AACxC,UAAQ,QAAR;GACE,KAAK,YACH,QAAO,oBAAC,aAAU,MAAM,KAAM;GAChC,KAAK,SACH,QAAO,oBAAC,SAAM,MAAM,KAAM;GAC5B,KAAK,UACH,QAAO,oBAAC,kBAAe,MAAM,KAAM;GACrC,QACE,QAAO,oBAAC,aAAU,MAAM,KAAM;;;CAIpC,MAAM,kBACJ,OACA,QACW;EACX,MAAM,YAAY,IAAI,KAAK,MAAM,CAAC,SAAS;EAE3C,MAAM,YADU,MAAM,IAAI,KAAK,IAAI,CAAC,SAAS,GAAG,KAAK,KAAK,IAC/B;AAE3B,MAAI,WAAW,IAAM,QAAO,GAAG,SAAS;AACxC,MAAI,WAAW,IAAO,QAAO,IAAI,WAAW,KAAM,QAAQ,EAAE,CAAC;AAC7D,SAAO,GAAG,KAAK,MAAM,WAAW,IAAM,CAAC,IAAI,KAAK,MAAO,WAAW,MAAS,IAAK,CAAC;;AAGnF,QACE,oBAACA;EAAK,MAAM;YACV,oBAACC;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,SAAS,QAAQ,SAC3B,QAAO,KAAK,QAAQ;;GAGf;GACT,OAAO,OAAO,cAAY;AAKxB,WAJiB,MAAM,OAAO,iBAAiB,EAC7C,OAAOC,WACR,CAAC;;GAIJ,SAAS;IACP,KAAK;KACH,OAAO;KACP,QAAQ,SACN,oBAACC;MAAK,MAAK;MAAK,IAAI;gBACjB,KAAK;OACD;KAEV;IACD,QAAQ;KACN,OAAO;KACP,KAAK;KACL,QAAQ,SACN,oBAAC;MACC,MAAK;MACL,SAAQ;MACR,OAAO,eAAe,KAAK,OAAO;MAClC,aAAa,cAAc,KAAK,OAAO;gBAEtC,KAAK;OACA;KAEX;IACD,UAAU;KACR,OAAO;KACP,KAAK;KACL,QAAQ,SACN,oBAACA;MAAK,MAAK;MAAK,GAAE;MAAS,IAAG;gBAC3B,eAAe,KAAK,WAAW,KAAK,WAAW;OAC3C;KAEV;IACD,OAAO;KACL,OAAO;KACP,QAAQ,SACN,KAAK,QACH,oBAACA;MAAK,MAAK;MAAK,GAAE;MAAM,WAAW;gBAChC,KAAK;OACD,GAEP,oBAACA;MAAK,MAAK;MAAK,GAAE;gBAAS;OAEpB;KAEZ;IACD,WAAW;KACT,OAAO;KACP,KAAK;KACL,QAAQ,SACN,oBAACA;MAAK,MAAK;MAAK,GAAE;gBACf,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;OAClC;KAEV;IACF;IACD;GACG;;AAIX,wBAAe"}
|
|
@@ -1,130 +0,0 @@
|
|
|
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_jobs = require("alepha/api/jobs");
|
|
9
|
-
|
|
10
|
-
//#region src/admin/components/AdminJobs.tsx
|
|
11
|
-
const AdminJobs = () => {
|
|
12
|
-
const client = (0, __alepha_react.useClient)();
|
|
13
|
-
const { l } = (0, __alepha_react_i18n.useI18n)();
|
|
14
|
-
const filters = alepha.t.object({
|
|
15
|
-
job: alepha.t.optional(alepha.t.string({ $control: { query: alepha.t.pick(alepha_api_jobs.jobExecutions.schema, ["job"]) } })),
|
|
16
|
-
status: alepha.t.optional(alepha.t.enum([
|
|
17
|
-
"STARTED",
|
|
18
|
-
"FAILED",
|
|
19
|
-
"COMPLETED"
|
|
20
|
-
]))
|
|
21
|
-
});
|
|
22
|
-
const getStatusColor = (status) => {
|
|
23
|
-
switch (status) {
|
|
24
|
-
case "COMPLETED": return "green";
|
|
25
|
-
case "FAILED": return "red";
|
|
26
|
-
case "STARTED": return "blue";
|
|
27
|
-
default: return "gray";
|
|
28
|
-
}
|
|
29
|
-
};
|
|
30
|
-
const getStatusIcon = (status) => {
|
|
31
|
-
switch (status) {
|
|
32
|
-
case "COMPLETED": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__tabler_icons_react.IconCheck, { size: 12 });
|
|
33
|
-
case "FAILED": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__tabler_icons_react.IconX, { size: 12 });
|
|
34
|
-
case "STARTED": return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__tabler_icons_react.IconPlayerPlay, { size: 12 });
|
|
35
|
-
default: return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__tabler_icons_react.IconClock, { size: 12 });
|
|
36
|
-
}
|
|
37
|
-
};
|
|
38
|
-
const formatDuration = (start, end) => {
|
|
39
|
-
const startTime = new Date(start).getTime();
|
|
40
|
-
const duration = (end ? new Date(end).getTime() : Date.now()) - startTime;
|
|
41
|
-
if (duration < 1e3) return `${duration}ms`;
|
|
42
|
-
if (duration < 6e4) return `${(duration / 1e3).toFixed(1)}s`;
|
|
43
|
-
return `${Math.floor(duration / 6e4)}m ${Math.floor(duration % 6e4 / 1e3)}s`;
|
|
44
|
-
};
|
|
45
|
-
return /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Flex, {
|
|
46
|
-
flex: 1,
|
|
47
|
-
children: /* @__PURE__ */ (0, react_jsx_runtime.jsx)(require_core.DataTable_default, {
|
|
48
|
-
submitOnInit: true,
|
|
49
|
-
defaultSize: 10,
|
|
50
|
-
typeFormProps: {
|
|
51
|
-
skipSubmitButton: true,
|
|
52
|
-
columns: 3
|
|
53
|
-
},
|
|
54
|
-
tableProps: {
|
|
55
|
-
horizontalSpacing: "xs",
|
|
56
|
-
verticalSpacing: "xs"
|
|
57
|
-
},
|
|
58
|
-
onFilterChange: (key, _value, form) => {
|
|
59
|
-
if (key === "job" || key === "status") return form.submit();
|
|
60
|
-
},
|
|
61
|
-
filters,
|
|
62
|
-
items: async (filters$1) => {
|
|
63
|
-
return await client.getJobExecutions({ query: filters$1 });
|
|
64
|
-
},
|
|
65
|
-
columns: {
|
|
66
|
-
job: {
|
|
67
|
-
label: "Job",
|
|
68
|
-
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
69
|
-
size: "sm",
|
|
70
|
-
fw: 500,
|
|
71
|
-
children: item.job
|
|
72
|
-
})
|
|
73
|
-
},
|
|
74
|
-
status: {
|
|
75
|
-
label: "Status",
|
|
76
|
-
fit: true,
|
|
77
|
-
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Badge, {
|
|
78
|
-
size: "sm",
|
|
79
|
-
variant: "light",
|
|
80
|
-
color: getStatusColor(item.status),
|
|
81
|
-
leftSection: getStatusIcon(item.status),
|
|
82
|
-
children: item.status
|
|
83
|
-
})
|
|
84
|
-
},
|
|
85
|
-
duration: {
|
|
86
|
-
label: "Duration",
|
|
87
|
-
fit: true,
|
|
88
|
-
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
89
|
-
size: "xs",
|
|
90
|
-
c: "dimmed",
|
|
91
|
-
ff: "monospace",
|
|
92
|
-
children: formatDuration(item.createdAt, item.finishedAt)
|
|
93
|
-
})
|
|
94
|
-
},
|
|
95
|
-
error: {
|
|
96
|
-
label: "Error",
|
|
97
|
-
value: (item) => item.error ? /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
98
|
-
size: "xs",
|
|
99
|
-
c: "red",
|
|
100
|
-
lineClamp: 1,
|
|
101
|
-
children: item.error
|
|
102
|
-
}) : /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
103
|
-
size: "xs",
|
|
104
|
-
c: "dimmed",
|
|
105
|
-
children: "-"
|
|
106
|
-
})
|
|
107
|
-
},
|
|
108
|
-
createdAt: {
|
|
109
|
-
label: "Started",
|
|
110
|
-
fit: true,
|
|
111
|
-
value: (item) => /* @__PURE__ */ (0, react_jsx_runtime.jsx)(__mantine_core.Text, {
|
|
112
|
-
size: "xs",
|
|
113
|
-
c: "dimmed",
|
|
114
|
-
children: l(item.createdAt, { date: "fromNow" })
|
|
115
|
-
})
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
})
|
|
119
|
-
});
|
|
120
|
-
};
|
|
121
|
-
var AdminJobs_default = AdminJobs;
|
|
122
|
-
|
|
123
|
-
//#endregion
|
|
124
|
-
Object.defineProperty(exports, 'AdminJobs_default', {
|
|
125
|
-
enumerable: true,
|
|
126
|
-
get: function () {
|
|
127
|
-
return AdminJobs_default;
|
|
128
|
-
}
|
|
129
|
-
});
|
|
130
|
-
//# sourceMappingURL=AdminJobs-C428qrNQ.cjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AdminJobs-C428qrNQ.cjs","names":["t","jobExecutions","IconCheck","IconX","IconPlayerPlay","IconClock","Flex","DataTable","filters","Text","Badge"],"sources":["../../src/admin/components/AdminJobs.tsx"],"sourcesContent":["import { useClient } from \"@alepha/react\";\nimport { useI18n } from \"@alepha/react/i18n\";\nimport { DataTable, Flex, Text } from \"@alepha/ui\";\nimport { Badge } from \"@mantine/core\";\nimport {\n IconCheck,\n IconClock,\n IconPlayerPlay,\n IconX,\n} from \"@tabler/icons-react\";\nimport { type Page, t } from \"alepha\";\nimport {\n type JobController,\n type JobExecutionEntity,\n jobExecutions,\n} from \"alepha/api/jobs\";\n\nconst AdminJobs = () => {\n const client = useClient<JobController>();\n const { l } = useI18n();\n\n const filters = t.object({\n job: t.optional(\n t.string({\n $control: {\n query: t.pick(jobExecutions.schema, [\"job\"]),\n },\n }),\n ),\n status: t.optional(t.enum([\"STARTED\", \"FAILED\", \"COMPLETED\"])),\n });\n\n const getStatusColor = (status: string) => {\n switch (status) {\n case \"COMPLETED\":\n return \"green\";\n case \"FAILED\":\n return \"red\";\n case \"STARTED\":\n return \"blue\";\n default:\n return \"gray\";\n }\n };\n\n const getStatusIcon = (status: string) => {\n switch (status) {\n case \"COMPLETED\":\n return <IconCheck size={12} />;\n case \"FAILED\":\n return <IconX size={12} />;\n case \"STARTED\":\n return <IconPlayerPlay size={12} />;\n default:\n return <IconClock size={12} />;\n }\n };\n\n const formatDuration = (\n start: Date | string,\n end?: Date | string | null,\n ): string => {\n const startTime = new Date(start).getTime();\n const endTime = end ? new Date(end).getTime() : Date.now();\n const duration = endTime - startTime;\n\n if (duration < 1000) return `${duration}ms`;\n if (duration < 60000) return `${(duration / 1000).toFixed(1)}s`;\n return `${Math.floor(duration / 60000)}m ${Math.floor((duration % 60000) / 1000)}s`;\n };\n\n return (\n <Flex flex={1}>\n <DataTable<JobExecutionEntity, 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 === \"job\" || key === \"status\") {\n return form.submit();\n }\n }}\n filters={filters}\n items={async (filters) => {\n const response = await client.getJobExecutions({\n query: filters,\n });\n\n return response as Page<JobExecutionEntity>;\n }}\n columns={{\n job: {\n label: \"Job\",\n value: (item) => (\n <Text size=\"sm\" fw={500}>\n {item.job}\n </Text>\n ),\n },\n status: {\n label: \"Status\",\n fit: true,\n value: (item) => (\n <Badge\n size=\"sm\"\n variant=\"light\"\n color={getStatusColor(item.status)}\n leftSection={getStatusIcon(item.status)}\n >\n {item.status}\n </Badge>\n ),\n },\n duration: {\n label: \"Duration\",\n fit: true,\n value: (item) => (\n <Text size=\"xs\" c=\"dimmed\" ff=\"monospace\">\n {formatDuration(item.createdAt, item.finishedAt)}\n </Text>\n ),\n },\n error: {\n label: \"Error\",\n value: (item) =>\n item.error ? (\n <Text size=\"xs\" c=\"red\" lineClamp={1}>\n {item.error}\n </Text>\n ) : (\n <Text size=\"xs\" c=\"dimmed\">\n -\n </Text>\n ),\n },\n createdAt: {\n label: \"Started\",\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 AdminJobs;\n"],"mappings":";;;;;;;;;;AAiBA,MAAM,kBAAkB;CACtB,MAAM,wCAAmC;CACzC,MAAM,EAAE,wCAAe;CAEvB,MAAM,UAAUA,SAAE,OAAO;EACvB,KAAKA,SAAE,SACLA,SAAE,OAAO,EACP,UAAU,EACR,OAAOA,SAAE,KAAKC,8BAAc,QAAQ,CAAC,MAAM,CAAC,EAC7C,EACF,CAAC,CACH;EACD,QAAQD,SAAE,SAASA,SAAE,KAAK;GAAC;GAAW;GAAU;GAAY,CAAC,CAAC;EAC/D,CAAC;CAEF,MAAM,kBAAkB,WAAmB;AACzC,UAAQ,QAAR;GACE,KAAK,YACH,QAAO;GACT,KAAK,SACH,QAAO;GACT,KAAK,UACH,QAAO;GACT,QACE,QAAO;;;CAIb,MAAM,iBAAiB,WAAmB;AACxC,UAAQ,QAAR;GACE,KAAK,YACH,QAAO,2CAACE,kCAAU,MAAM,KAAM;GAChC,KAAK,SACH,QAAO,2CAACC,8BAAM,MAAM,KAAM;GAC5B,KAAK,UACH,QAAO,2CAACC,uCAAe,MAAM,KAAM;GACrC,QACE,QAAO,2CAACC,kCAAU,MAAM,KAAM;;;CAIpC,MAAM,kBACJ,OACA,QACW;EACX,MAAM,YAAY,IAAI,KAAK,MAAM,CAAC,SAAS;EAE3C,MAAM,YADU,MAAM,IAAI,KAAK,IAAI,CAAC,SAAS,GAAG,KAAK,KAAK,IAC/B;AAE3B,MAAI,WAAW,IAAM,QAAO,GAAG,SAAS;AACxC,MAAI,WAAW,IAAO,QAAO,IAAI,WAAW,KAAM,QAAQ,EAAE,CAAC;AAC7D,SAAO,GAAG,KAAK,MAAM,WAAW,IAAM,CAAC,IAAI,KAAK,MAAO,WAAW,MAAS,IAAK,CAAC;;AAGnF,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,SAAS,QAAQ,SAC3B,QAAO,KAAK,QAAQ;;GAGf;GACT,OAAO,OAAO,cAAY;AAKxB,WAJiB,MAAM,OAAO,iBAAiB,EAC7C,OAAOC,WACR,CAAC;;GAIJ,SAAS;IACP,KAAK;KACH,OAAO;KACP,QAAQ,SACN,2CAACC;MAAK,MAAK;MAAK,IAAI;gBACjB,KAAK;OACD;KAEV;IACD,QAAQ;KACN,OAAO;KACP,KAAK;KACL,QAAQ,SACN,2CAACC;MACC,MAAK;MACL,SAAQ;MACR,OAAO,eAAe,KAAK,OAAO;MAClC,aAAa,cAAc,KAAK,OAAO;gBAEtC,KAAK;OACA;KAEX;IACD,UAAU;KACR,OAAO;KACP,KAAK;KACL,QAAQ,SACN,2CAACD;MAAK,MAAK;MAAK,GAAE;MAAS,IAAG;gBAC3B,eAAe,KAAK,WAAW,KAAK,WAAW;OAC3C;KAEV;IACD,OAAO;KACL,OAAO;KACP,QAAQ,SACN,KAAK,QACH,2CAACA;MAAK,MAAK;MAAK,GAAE;MAAM,WAAW;gBAChC,KAAK;OACD,GAEP,2CAACA;MAAK,MAAK;MAAK,GAAE;gBAAS;OAEpB;KAEZ;IACD,WAAW;KACT,OAAO;KACP,KAAK;KACL,QAAQ,SACN,2CAACA;MAAK,MAAK;MAAK,GAAE;gBACf,EAAE,KAAK,WAAW,EAAE,MAAM,WAAW,CAAC;OAClC;KAEV;IACF;IACD;GACG;;AAIX,wBAAe"}
|
|
@@ -1,93 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1,44 +0,0 @@
|
|
|
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
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|
|
@@ -1 +0,0 @@
|
|
|
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"}
|