wcz-test 6.24.7 → 6.24.9
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/ApprovalStatus-lESbUD_x.js +6 -0
- package/dist/DialogsContext-2Yy6yhzQ.js +5 -0
- package/dist/DialogsHooks-DWkC9zAf.js +113 -0
- package/dist/FileHooks-kGkVKOf9.js +2694 -0
- package/dist/FileMeta-Bzeo3ie9.js +17 -0
- package/dist/RouterListItemButton-C_SG0uka.js +17 -0
- package/dist/_commonjsHelpers-DaMA6jEr.js +8 -0
- package/dist/client.js +8 -9
- package/dist/components.js +632 -1454
- package/dist/env-4ZoUrNqp.js +27 -0
- package/dist/exports/server.d.ts +0 -3
- package/dist/hooks.js +371 -985
- package/dist/index.js +1580 -2940
- package/dist/models.js +147 -164
- package/dist/queries.js +519 -911
- package/dist/queryClient--EvGPhnh.js +5 -0
- package/dist/server.js +40 -63
- package/dist/session-7yb0BETM.js +75 -0
- package/dist/{chunks/utils-MD9YwOtu.js → utils-CZraUjBd.js} +24 -34
- package/dist/utils.js +6 -7
- package/dist/vite.js +31 -40
- package/package.json +3 -6
- package/dist/chunks/ApprovalStatus-BtAVFn5p.js +0 -8
- package/dist/chunks/ApprovalStatus-BtAVFn5p.js.map +0 -1
- package/dist/chunks/DialogsContext-DoU_8Eeu.js +0 -6
- package/dist/chunks/DialogsContext-DoU_8Eeu.js.map +0 -1
- package/dist/chunks/DialogsHooks-DOT0O_b4.js +0 -278
- package/dist/chunks/DialogsHooks-DOT0O_b4.js.map +0 -1
- package/dist/chunks/FileHooks-DCnXvUtq.js +0 -3554
- package/dist/chunks/FileHooks-DCnXvUtq.js.map +0 -1
- package/dist/chunks/FileMeta-G1oT3mYK.js +0 -18
- package/dist/chunks/FileMeta-G1oT3mYK.js.map +0 -1
- package/dist/chunks/RouterListItemButton-DTYXk1kh.js +0 -35
- package/dist/chunks/RouterListItemButton-DTYXk1kh.js.map +0 -1
- package/dist/chunks/env-gsqZ6zZD.js +0 -30
- package/dist/chunks/env-gsqZ6zZD.js.map +0 -1
- package/dist/chunks/queryClient-CNvC95mU.js +0 -6
- package/dist/chunks/queryClient-CNvC95mU.js.map +0 -1
- package/dist/chunks/session-vW7WZadj.js +0 -91
- package/dist/chunks/session-vW7WZadj.js.map +0 -1
- package/dist/chunks/utils-MD9YwOtu.js.map +0 -1
- package/dist/client.js.map +0 -1
- package/dist/components.js.map +0 -1
- package/dist/hooks.js.map +0 -1
- package/dist/index.js.map +0 -1
- package/dist/models.js.map +0 -1
- package/dist/queries.js.map +0 -1
- package/dist/server.js.map +0 -1
- package/dist/utils.js.map +0 -1
- package/dist/vite.js.map +0 -1
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import * as z from "zod";
|
|
2
|
-
const FileMetaSchema = z.object({
|
|
3
|
-
id: z.uuid(),
|
|
4
|
-
subId: z.uuid(),
|
|
5
|
-
appName: z.string().trim().min(1).max(255),
|
|
6
|
-
fileName: z.string().trim().min(1).max(255),
|
|
7
|
-
fileExtension: z.string().trim().min(1).max(255),
|
|
8
|
-
fileSize: z.number().min(0),
|
|
9
|
-
mediaSubType: z.string().trim().min(1).max(255),
|
|
10
|
-
mediaType: z.string().trim().min(1).max(255),
|
|
11
|
-
mimeType: z.string().trim().min(1).max(255),
|
|
12
|
-
createdBy: z.string().trim().min(1).max(255),
|
|
13
|
-
createdDate: z.date()
|
|
14
|
-
});
|
|
15
|
-
export {
|
|
16
|
-
FileMetaSchema as F
|
|
17
|
-
};
|
|
18
|
-
//# sourceMappingURL=FileMeta-G1oT3mYK.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"FileMeta-G1oT3mYK.js","sources":["../../src/models/file/FileMeta.ts"],"sourcesContent":["import * as z from \"zod\";\n\nexport const FileMetaSchema = z.object({\n id: z.uuid(),\n subId: z.uuid(),\n appName: z.string().trim().min(1).max(255),\n fileName: z.string().trim().min(1).max(255),\n fileExtension: z.string().trim().min(1).max(255),\n fileSize: z.number().min(0),\n mediaSubType: z.string().trim().min(1).max(255),\n mediaType: z.string().trim().min(1).max(255),\n mimeType: z.string().trim().min(1).max(255),\n createdBy: z.string().trim().min(1).max(255),\n createdDate: z.date(),\n});\n\nexport type FileMeta = z.infer<typeof FileMetaSchema>;\n"],"names":["FileMetaSchema","z","object","id","uuid","subId","appName","string","trim","min","max","fileName","fileExtension","fileSize","number","mediaSubType","mediaType","mimeType","createdBy","createdDate","date"],"mappings":";AAEO,MAAMA,iBAAiBC,EAAEC,OAAO;AAAA,EACnCC,IAAIF,EAAEG,KAAAA;AAAAA,EACNC,OAAOJ,EAAEG,KAAAA;AAAAA,EACTE,SAASL,EAAEM,OAAAA,EAASC,KAAAA,EAAOC,IAAI,CAAC,EAAEC,IAAI,GAAG;AAAA,EACzCC,UAAUV,EAAEM,OAAAA,EAASC,KAAAA,EAAOC,IAAI,CAAC,EAAEC,IAAI,GAAG;AAAA,EAC1CE,eAAeX,EAAEM,OAAAA,EAASC,KAAAA,EAAOC,IAAI,CAAC,EAAEC,IAAI,GAAG;AAAA,EAC/CG,UAAUZ,EAAEa,SAASL,IAAI,CAAC;AAAA,EAC1BM,cAAcd,EAAEM,OAAAA,EAASC,KAAAA,EAAOC,IAAI,CAAC,EAAEC,IAAI,GAAG;AAAA,EAC9CM,WAAWf,EAAEM,OAAAA,EAASC,KAAAA,EAAOC,IAAI,CAAC,EAAEC,IAAI,GAAG;AAAA,EAC3CO,UAAUhB,EAAEM,OAAAA,EAASC,KAAAA,EAAOC,IAAI,CAAC,EAAEC,IAAI,GAAG;AAAA,EAC1CQ,WAAWjB,EAAEM,OAAAA,EAASC,KAAAA,EAAOC,IAAI,CAAC,EAAEC,IAAI,GAAG;AAAA,EAC3CS,aAAalB,EAAEmB,KAAAA;AACnB,CAAC;"}
|
|
@@ -1,35 +0,0 @@
|
|
|
1
|
-
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
import { c } from "react/compiler-runtime";
|
|
3
|
-
import { ListItemButton } from "@mui/material";
|
|
4
|
-
import { createLink } from "@tanstack/react-router";
|
|
5
|
-
import React__default from "react";
|
|
6
|
-
const Component = React__default.forwardRef(function ButtonComponent(props, reference) {
|
|
7
|
-
const $ = c(3);
|
|
8
|
-
let t0;
|
|
9
|
-
if ($[0] !== props || $[1] !== reference) {
|
|
10
|
-
t0 = /* @__PURE__ */ jsx(ListItemButton, { ref: reference, component: "a", ...props });
|
|
11
|
-
$[0] = props;
|
|
12
|
-
$[1] = reference;
|
|
13
|
-
$[2] = t0;
|
|
14
|
-
} else {
|
|
15
|
-
t0 = $[2];
|
|
16
|
-
}
|
|
17
|
-
return t0;
|
|
18
|
-
});
|
|
19
|
-
const CreatedComponent = createLink(Component);
|
|
20
|
-
const RouterListItemButton = (props) => {
|
|
21
|
-
const $ = c(2);
|
|
22
|
-
let t0;
|
|
23
|
-
if ($[0] !== props) {
|
|
24
|
-
t0 = /* @__PURE__ */ jsx(CreatedComponent, { ...props });
|
|
25
|
-
$[0] = props;
|
|
26
|
-
$[1] = t0;
|
|
27
|
-
} else {
|
|
28
|
-
t0 = $[1];
|
|
29
|
-
}
|
|
30
|
-
return t0;
|
|
31
|
-
};
|
|
32
|
-
export {
|
|
33
|
-
RouterListItemButton as R
|
|
34
|
-
};
|
|
35
|
-
//# sourceMappingURL=RouterListItemButton-DTYXk1kh.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"RouterListItemButton-DTYXk1kh.js","sources":["../../src/components/router/RouterListItemButton.tsx"],"sourcesContent":["import { ListItemButton } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { ListItemButtonProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, ListItemButtonProps<\"a\">>(function ButtonComponent(props, reference) {\n return <ListItemButton ref={reference} component=\"a\" {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterListItemButton: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};\n"],"names":["Component","React","forwardRef","ButtonComponent","props","reference","$","_c","t0","CreatedComponent","createLink","RouterListItemButton"],"mappings":";;;;;AAMA,MAAMA,YAAYC,eAAMC,WAAwD,SAAAC,gBAAAC,OAAAC,WAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,MAAAF,EAAA,CAAA,MAAAF,SAAAE,SAAAD,WAAA;AACrEG,6BAAC,gBAAA,EAAoBH,KAAAA,WAAqB,WAAA,KAAG,GAAKD,OAAK;AAAIE,WAAAF;AAAAE,WAAAD;AAAAC,WAAAE;AAAAA,EAAA,OAAA;AAAAA,SAAAF,EAAA,CAAA;AAAA,EAAA;AAAA,SAA3DE;AAA2D,CACrE;AAED,MAAMC,mBAAmBC,WAAWV,SAAS;AAEtC,MAAMW,uBAAwDP,CAAAA,UAAA;AAAA,QAAAE,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,MAAAF,SAAAF,OAAA;AAC1DI,SAAA,oBAAC,kBAAA,EAAgB,GAAKJ,MAAAA,CAAK;AAAIE,WAAAF;AAAAE,WAAAE;AAAAA,EAAA,OAAA;AAAAA,SAAAF,EAAA,CAAA;AAAA,EAAA;AAAA,SAA/BE;AAA+B;"}
|
|
@@ -1,30 +0,0 @@
|
|
|
1
|
-
import { createEnv } from "@t3-oss/env-core";
|
|
2
|
-
import { z } from "zod";
|
|
3
|
-
const __vite_import_meta_env__ = { "BASE_URL": "/", "DEV": false, "MODE": "production", "PROD": true, "SSR": false, "VITE_API_URL": "http://localhost:3000", "VITE_APP_TITLE": "WCZ Layout", "VITE_DYNAMSOFT_LICENSE_KEY": "DLS2eyJoYW5kc2hha2VDb2RlIjoiMTAxMjU2MzQ5LTEwMTI4MDIzNyIsIm1haW5TZXJ2ZXJVUkwiOiJodHRwczovL21sdHMuZHluYW1zb2Z0LmNvbS8iLCJvcmdhbml6YXRpb25JRCI6IjEwMTI1NjM0OSIsInN0YW5kYnlTZXJ2ZXJVUkwiOiJodHRwczovL3NsdHMuZHluYW1zb2Z0LmNvbS8iLCJjaGVja0NvZGUiOi0yMjMwMzAzMjZ9", "VITE_MUI_LICENSE_KEY": "d7aeb74913a4918a319bf4c253aa1a49Tz0xMjIzOTYsRT0xNzk1ODIzOTk5MDAwLFM9cHJlbWl1bSxMTT1zdWJzY3JpcHRpb24sUFY9aW5pdGlhbCxLVj0y" };
|
|
4
|
-
const clientEnv = createEnv({
|
|
5
|
-
clientPrefix: "VITE_",
|
|
6
|
-
client: {
|
|
7
|
-
VITE_APP_TITLE: z.string(),
|
|
8
|
-
VITE_MUI_LICENSE_KEY: z.string(),
|
|
9
|
-
VITE_API_URL: z.url()
|
|
10
|
-
},
|
|
11
|
-
runtimeEnv: __vite_import_meta_env__,
|
|
12
|
-
emptyStringAsUndefined: true
|
|
13
|
-
});
|
|
14
|
-
const serverEnv = createEnv({
|
|
15
|
-
server: {
|
|
16
|
-
NODE_ENV: z.enum(["development", "testing", "staging", "production"]),
|
|
17
|
-
MICROSOFT_TENANT_ID: z.string(),
|
|
18
|
-
MICROSOFT_CLIENT_ID: z.string(),
|
|
19
|
-
MICROSOFT_CLIENT_SECRET: z.string(),
|
|
20
|
-
MICROSOFT_REDIRECT_URI: z.url(),
|
|
21
|
-
SESSION_SECRET: z.string()
|
|
22
|
-
},
|
|
23
|
-
runtimeEnv: process.env,
|
|
24
|
-
emptyStringAsUndefined: true
|
|
25
|
-
});
|
|
26
|
-
export {
|
|
27
|
-
clientEnv as c,
|
|
28
|
-
serverEnv as s
|
|
29
|
-
};
|
|
30
|
-
//# sourceMappingURL=env-gsqZ6zZD.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"env-gsqZ6zZD.js","sources":["../../src/env.ts"],"sourcesContent":["import { createEnv } from \"@t3-oss/env-core\";\r\nimport { z } from \"zod\";\r\n\r\nexport const clientEnv = createEnv({\r\n clientPrefix: \"VITE_\",\r\n client: {\r\n VITE_APP_TITLE: z.string(),\r\n VITE_MUI_LICENSE_KEY: z.string(),\r\n VITE_API_URL: z.url(),\r\n },\r\n runtimeEnv: import.meta.env,\r\n emptyStringAsUndefined: true,\r\n});\r\n\r\nexport const serverEnv = createEnv({\r\n server: {\r\n NODE_ENV: z.enum([\"development\", \"testing\", \"staging\", \"production\"]),\r\n MICROSOFT_TENANT_ID: z.string(),\r\n MICROSOFT_CLIENT_ID: z.string(),\r\n MICROSOFT_CLIENT_SECRET: z.string(),\r\n MICROSOFT_REDIRECT_URI: z.url(),\r\n SESSION_SECRET: z.string(),\r\n },\r\n runtimeEnv: process.env,\r\n emptyStringAsUndefined: true,\r\n});\r\n"],"names":["clientEnv","createEnv","clientPrefix","client","VITE_APP_TITLE","z","string","VITE_MUI_LICENSE_KEY","VITE_API_URL","url","runtimeEnv","import","emptyStringAsUndefined","serverEnv","server","NODE_ENV","enum","MICROSOFT_TENANT_ID","MICROSOFT_CLIENT_ID","MICROSOFT_CLIENT_SECRET","MICROSOFT_REDIRECT_URI","SESSION_SECRET","process","env"],"mappings":";;;AAGO,MAAMA,YAAYC,UAAU;AAAA,EAC/BC,cAAc;AAAA,EACdC,QAAQ;AAAA,IACJC,gBAAgBC,EAAEC,OAAAA;AAAAA,IAClBC,sBAAsBF,EAAEC,OAAAA;AAAAA,IACxBE,cAAcH,EAAEI,IAAAA;AAAAA,EAAI;AAAA,EAExBC,YAAYC;AAAAA,EACZC,wBAAwB;AAC5B,CAAC;AAEM,MAAMC,YAAYZ,UAAU;AAAA,EAC/Ba,QAAQ;AAAA,IACJC,UAAUV,EAAEW,KAAK,CAAC,eAAe,WAAW,WAAW,YAAY,CAAC;AAAA,IACpEC,qBAAqBZ,EAAEC,OAAAA;AAAAA,IACvBY,qBAAqBb,EAAEC,OAAAA;AAAAA,IACvBa,yBAAyBd,EAAEC,OAAAA;AAAAA,IAC3Bc,wBAAwBf,EAAEI,IAAAA;AAAAA,IAC1BY,gBAAgBhB,EAAEC,OAAAA;AAAAA,EAAO;AAAA,EAE7BI,YAAYY,QAAQC;AAAAA,EACpBX,wBAAwB;AAC5B,CAAC;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"queryClient-CNvC95mU.js","sources":["../../src/lib/queryClient.ts"],"sourcesContent":["import { QueryClient } from \"@tanstack/react-query\";\r\n\r\nexport const queryClient = new QueryClient();\r\n"],"names":["queryClient","QueryClient"],"mappings":";AAEO,MAAMA,cAAc,IAAIC,YAAAA;"}
|
|
@@ -1,91 +0,0 @@
|
|
|
1
|
-
import { redirect } from "@tanstack/react-router";
|
|
2
|
-
import { getCookie, deleteCookie, setCookie } from "@tanstack/react-start/server";
|
|
3
|
-
import jwt from "jsonwebtoken";
|
|
4
|
-
import * as z from "zod";
|
|
5
|
-
import z__default from "zod";
|
|
6
|
-
import "jwks-rsa";
|
|
7
|
-
import { MicrosoftEntraId } from "arctic";
|
|
8
|
-
import { s as serverEnv } from "./env-gsqZ6zZD.js";
|
|
9
|
-
const entraId = new MicrosoftEntraId(serverEnv.MICROSOFT_TENANT_ID, serverEnv.MICROSOFT_CLIENT_ID, serverEnv.MICROSOFT_CLIENT_SECRET, serverEnv.MICROSOFT_REDIRECT_URI);
|
|
10
|
-
const UserSchema = z.object({
|
|
11
|
-
id: z.string(),
|
|
12
|
-
name: z.string(),
|
|
13
|
-
email: z.email(),
|
|
14
|
-
groups: z.array(z.string())
|
|
15
|
-
});
|
|
16
|
-
z.object({
|
|
17
|
-
id: z.string(),
|
|
18
|
-
displayName: z.string(),
|
|
19
|
-
jobTitle: z.string(),
|
|
20
|
-
mail: z.email(),
|
|
21
|
-
mobilePhone: z.string()
|
|
22
|
-
});
|
|
23
|
-
const SESSION_COOKIE_NAME = "session";
|
|
24
|
-
const ACCESS_TOKEN_COOKIE_NAME = "access_token";
|
|
25
|
-
const AFTER_LOGIN_URL = "/";
|
|
26
|
-
const SessionSchema = z__default.object({
|
|
27
|
-
refreshToken: z__default.string(),
|
|
28
|
-
user: UserSchema.omit({
|
|
29
|
-
groups: true
|
|
30
|
-
})
|
|
31
|
-
});
|
|
32
|
-
const requireSession = async (redirectUri) => {
|
|
33
|
-
const sessionCookie = getCookie(SESSION_COOKIE_NAME);
|
|
34
|
-
if (!sessionCookie) {
|
|
35
|
-
throw redirect({
|
|
36
|
-
href: `/api/auth/login?redirect_uri=${encodeURIComponent(redirectUri ?? AFTER_LOGIN_URL)}`
|
|
37
|
-
});
|
|
38
|
-
}
|
|
39
|
-
const payloadRaw = jwt.verify(sessionCookie, serverEnv.SESSION_SECRET);
|
|
40
|
-
const sessionResult = SessionSchema.safeParse(payloadRaw);
|
|
41
|
-
if (!sessionResult.success) {
|
|
42
|
-
deleteCookie(SESSION_COOKIE_NAME);
|
|
43
|
-
throw redirect({
|
|
44
|
-
href: `/api/auth/login?redirect_uri=${encodeURIComponent(redirectUri ?? AFTER_LOGIN_URL)}`
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
return sessionResult.data;
|
|
48
|
-
};
|
|
49
|
-
const getAccessToken = async () => {
|
|
50
|
-
const accessTokenCookie = getCookie(ACCESS_TOKEN_COOKIE_NAME);
|
|
51
|
-
if (accessTokenCookie) return accessTokenCookie;
|
|
52
|
-
const session = await requireSession();
|
|
53
|
-
const tokens = await entraId.refreshAccessToken(session.refreshToken, []);
|
|
54
|
-
await setSessionCookie({
|
|
55
|
-
...session,
|
|
56
|
-
refreshToken: tokens.refreshToken()
|
|
57
|
-
});
|
|
58
|
-
await setSessionAccessTokenCookie(tokens.accessToken());
|
|
59
|
-
return tokens.accessToken();
|
|
60
|
-
};
|
|
61
|
-
const setSessionCookie = async (session) => {
|
|
62
|
-
const sessionJwt = jwt.sign(session, serverEnv.SESSION_SECRET, {
|
|
63
|
-
expiresIn: "7d"
|
|
64
|
-
});
|
|
65
|
-
setCookie(SESSION_COOKIE_NAME, sessionJwt, {
|
|
66
|
-
secure: serverEnv.NODE_ENV === "production",
|
|
67
|
-
path: "/",
|
|
68
|
-
httpOnly: true,
|
|
69
|
-
sameSite: "lax",
|
|
70
|
-
maxAge: 7 * 24 * 60 * 60
|
|
71
|
-
// 7 days
|
|
72
|
-
});
|
|
73
|
-
};
|
|
74
|
-
const setSessionAccessTokenCookie = async (accessToken) => {
|
|
75
|
-
setCookie(ACCESS_TOKEN_COOKIE_NAME, accessToken, {
|
|
76
|
-
secure: serverEnv.NODE_ENV === "production",
|
|
77
|
-
path: "/",
|
|
78
|
-
httpOnly: true,
|
|
79
|
-
sameSite: "lax",
|
|
80
|
-
maxAge: 5 * 60
|
|
81
|
-
// 5 minutes
|
|
82
|
-
});
|
|
83
|
-
};
|
|
84
|
-
export {
|
|
85
|
-
setSessionAccessTokenCookie as a,
|
|
86
|
-
entraId as e,
|
|
87
|
-
getAccessToken as g,
|
|
88
|
-
requireSession as r,
|
|
89
|
-
setSessionCookie as s
|
|
90
|
-
};
|
|
91
|
-
//# sourceMappingURL=session-vW7WZadj.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"session-vW7WZadj.js","sources":["../../src/lib/auth/entra.ts","../../src/models/User.ts","../../src/lib/auth/session.ts"],"sourcesContent":["import { MicrosoftEntraId } from \"arctic\";\r\nimport { serverEnv } from \"~/env\";\r\n\r\nexport const entraId = new MicrosoftEntraId(\r\n serverEnv.MICROSOFT_TENANT_ID,\r\n serverEnv.MICROSOFT_CLIENT_ID,\r\n serverEnv.MICROSOFT_CLIENT_SECRET,\r\n serverEnv.MICROSOFT_REDIRECT_URI,\r\n);\r\n","import * as z from \"zod\";\r\n\r\nexport const UserSchema = z.object({\r\n id: z.string(),\r\n name: z.string(),\r\n email: z.email(),\r\n groups: z.array(z.string()),\r\n});\r\n\r\nexport type User = z.infer<typeof UserSchema>;\r\n\r\nexport const GraphUserSchema = z.object({\r\n id: z.string(),\r\n displayName: z.string(),\r\n jobTitle: z.string(),\r\n mail: z.email(),\r\n mobilePhone: z.string(),\r\n});\r\n\r\nexport type GraphUser = z.infer<typeof GraphUserSchema>;\r\n","import { redirect } from \"@tanstack/react-router\";\r\nimport { deleteCookie, getCookie, setCookie } from \"@tanstack/react-start/server\";\r\nimport jwt from \"jsonwebtoken\";\r\nimport z from \"zod\";\r\nimport jwksRsa from \"jwks-rsa\";\r\nimport { entraId } from \"./entra\";\r\nimport { serverEnv } from \"~/env\";\r\nimport { UserSchema } from \"~/models/User\";\r\n\r\nconst SESSION_COOKIE_NAME = \"session\";\r\nconst ACCESS_TOKEN_COOKIE_NAME = \"access_token\";\r\nconst AFTER_LOGIN_URL = \"/\";\r\n\r\nconst SessionSchema = z.object({\r\n refreshToken: z.string(),\r\n user: UserSchema.omit({ groups: true }),\r\n});\r\n\r\ntype Session = z.infer<typeof SessionSchema>;\r\n\r\nexport const requireSession = async (redirectUri?: string) => {\r\n const sessionCookie = getCookie(SESSION_COOKIE_NAME);\r\n if (!sessionCookie) {\r\n throw redirect({ href: `/api/auth/login?redirect_uri=${encodeURIComponent(redirectUri ?? AFTER_LOGIN_URL)}` });\r\n }\r\n\r\n const payloadRaw = jwt.verify(sessionCookie, serverEnv.SESSION_SECRET);\r\n const sessionResult = SessionSchema.safeParse(payloadRaw);\r\n if (!sessionResult.success) {\r\n deleteCookie(SESSION_COOKIE_NAME);\r\n throw redirect({ href: `/api/auth/login?redirect_uri=${encodeURIComponent(redirectUri ?? AFTER_LOGIN_URL)}` });\r\n }\r\n\r\n return sessionResult.data;\r\n};\r\n\r\nexport const getAccessToken = async () => {\r\n const accessTokenCookie = getCookie(ACCESS_TOKEN_COOKIE_NAME);\r\n if (accessTokenCookie) return accessTokenCookie;\r\n\r\n const session = await requireSession();\r\n\r\n const tokens = await entraId.refreshAccessToken(session.refreshToken, []);\r\n\r\n await setSessionCookie({\r\n ...session,\r\n refreshToken: tokens.refreshToken()\r\n });\r\n\r\n await setSessionAccessTokenCookie(tokens.accessToken());\r\n\r\n return tokens.accessToken();\r\n};\r\n\r\nexport const validateAccessToken = async (token: string): Promise<jwt.JwtPayload> => {\r\n const client = jwksRsa({\r\n cache: true,\r\n rateLimit: true,\r\n jwksRequestsPerMinute: 5,\r\n jwksUri: \"https://login.microsoftonline.com/common/discovery/v2.0/keys\",\r\n });\r\n\r\n const decodedHeader = jwt.decode(token, { complete: true });\r\n if (!decodedHeader?.header.kid) throw new Error(\"Invalid token: Missing kid\");\r\n\r\n const key = await client.getSigningKey(decodedHeader.header.kid);\r\n const signingKey = key.getPublicKey();\r\n\r\n const payload = jwt.verify(token, signingKey) as jwt.JwtPayload;\r\n\r\n if (typeof payload.iss !== \"string\" || !payload.iss.startsWith(\"https://login.microsoftonline.com/\"))\r\n throw new Error(\"Invalid issuer\");\r\n\r\n return payload;\r\n};\r\n\r\nexport const setSessionCookie = async (session: Session) => {\r\n const sessionJwt = jwt.sign(session, serverEnv.SESSION_SECRET, { expiresIn: \"7d\" });\r\n\r\n setCookie(SESSION_COOKIE_NAME, sessionJwt, {\r\n secure: serverEnv.NODE_ENV === \"production\",\r\n path: \"/\",\r\n httpOnly: true,\r\n sameSite: \"lax\",\r\n maxAge: 7 * 24 * 60 * 60, // 7 days\r\n });\r\n};\r\n\r\nexport const setSessionAccessTokenCookie = async (accessToken: string) => {\r\n setCookie(ACCESS_TOKEN_COOKIE_NAME, accessToken, {\r\n secure: serverEnv.NODE_ENV === \"production\",\r\n path: \"/\",\r\n httpOnly: true,\r\n sameSite: \"lax\",\r\n maxAge: 5 * 60, // 5 minutes\r\n });\r\n};\r\n"],"names":["entraId","MicrosoftEntraId","serverEnv","MICROSOFT_TENANT_ID","MICROSOFT_CLIENT_ID","MICROSOFT_CLIENT_SECRET","MICROSOFT_REDIRECT_URI","UserSchema","z","object","id","string","name","email","groups","array","displayName","jobTitle","mail","mobilePhone","SESSION_COOKIE_NAME","ACCESS_TOKEN_COOKIE_NAME","AFTER_LOGIN_URL","SessionSchema","refreshToken","user","omit","requireSession","redirectUri","sessionCookie","getCookie","redirect","href","encodeURIComponent","payloadRaw","jwt","verify","SESSION_SECRET","sessionResult","safeParse","success","deleteCookie","data","getAccessToken","accessTokenCookie","session","tokens","refreshAccessToken","setSessionCookie","setSessionAccessTokenCookie","accessToken","sessionJwt","sign","expiresIn","setCookie","secure","NODE_ENV","path","httpOnly","sameSite","maxAge"],"mappings":";;;;;;;;AAGO,MAAMA,UAAU,IAAIC,iBACvBC,UAAUC,qBACVD,UAAUE,qBACVF,UAAUG,yBACVH,UAAUI,sBACd;ACNO,MAAMC,aAAaC,EAAEC,OAAO;AAAA,EAC/BC,IAAIF,EAAEG,OAAAA;AAAAA,EACNC,MAAMJ,EAAEG,OAAAA;AAAAA,EACRE,OAAOL,EAAEK,MAAAA;AAAAA,EACTC,QAAQN,EAAEO,MAAMP,EAAEG,QAAQ;AAC9B,CAAC;AAI8BH,EAAEC,OAAO;AAAA,EACpCC,IAAIF,EAAEG,OAAAA;AAAAA,EACNK,aAAaR,EAAEG,OAAAA;AAAAA,EACfM,UAAUT,EAAEG,OAAAA;AAAAA,EACZO,MAAMV,EAAEK,MAAAA;AAAAA,EACRM,aAAaX,EAAEG,OAAAA;AACnB,CAAC;ACRD,MAAMS,sBAAsB;AAC5B,MAAMC,2BAA2B;AACjC,MAAMC,kBAAkB;AAExB,MAAMC,gBAAgBf,WAAEC,OAAO;AAAA,EAC3Be,cAAchB,WAAEG,OAAAA;AAAAA,EAChBc,MAAMlB,WAAWmB,KAAK;AAAA,IAAEZ,QAAQ;AAAA,EAAA,CAAM;AAC1C,CAAC;AAIM,MAAMa,iBAAiB,OAAOC,gBAAyB;AAC1D,QAAMC,gBAAgBC,UAAUV,mBAAmB;AACnD,MAAI,CAACS,eAAe;AAChB,UAAME,SAAS;AAAA,MAAEC,MAAM,gCAAgCC,mBAAmBL,eAAeN,eAAe,CAAC;AAAA,IAAA,CAAI;AAAA,EACjH;AAEA,QAAMY,aAAaC,IAAIC,OAAOP,eAAe3B,UAAUmC,cAAc;AACrE,QAAMC,gBAAgBf,cAAcgB,UAAUL,UAAU;AACxD,MAAI,CAACI,cAAcE,SAAS;AACxBC,iBAAarB,mBAAmB;AAChC,UAAMW,SAAS;AAAA,MAAEC,MAAM,gCAAgCC,mBAAmBL,eAAeN,eAAe,CAAC;AAAA,IAAA,CAAI;AAAA,EACjH;AAEA,SAAOgB,cAAcI;AACzB;AAEO,MAAMC,iBAAiB,YAAY;AACtC,QAAMC,oBAAoBd,UAAUT,wBAAwB;AAC5D,MAAIuB,kBAAmB,QAAOA;AAE9B,QAAMC,UAAU,MAAMlB,eAAAA;AAEtB,QAAMmB,SAAS,MAAM9C,QAAQ+C,mBAAmBF,QAAQrB,cAAc,EAAE;AAExE,QAAMwB,iBAAiB;AAAA,IACnB,GAAGH;AAAAA,IACHrB,cAAcsB,OAAOtB,aAAAA;AAAAA,EAAa,CACrC;AAED,QAAMyB,4BAA4BH,OAAOI,aAAa;AAEtD,SAAOJ,OAAOI,YAAAA;AAClB;AAwBO,MAAMF,mBAAmB,OAAOH,YAAqB;AACxD,QAAMM,aAAahB,IAAIiB,KAAKP,SAAS3C,UAAUmC,gBAAgB;AAAA,IAAEgB,WAAW;AAAA,EAAA,CAAM;AAElFC,YAAUlC,qBAAqB+B,YAAY;AAAA,IACvCI,QAAQrD,UAAUsD,aAAa;AAAA,IAC/BC,MAAM;AAAA,IACNC,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,QAAQ,IAAI,KAAK,KAAK;AAAA;AAAA,EAAA,CACzB;AACL;AAEO,MAAMX,8BAA8B,OAAOC,gBAAwB;AACtEI,YAAUjC,0BAA0B6B,aAAa;AAAA,IAC7CK,QAAQrD,UAAUsD,aAAa;AAAA,IAC/BC,MAAM;AAAA,IACNC,UAAU;AAAA,IACVC,UAAU;AAAA,IACVC,QAAQ,IAAI;AAAA;AAAA,EAAA,CACf;AACL;"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"utils-MD9YwOtu.js","sources":["../../src/lib/utils.ts"],"sourcesContent":["import axios from \"axios\";\r\nimport type { AnyFieldApi } from \"@tanstack/react-form\";\r\nimport { clientEnv } from \"~/env\";\r\n\r\nexport const WISTRON_PRIMARY_COLOR = \"#00506E\";\r\nexport const WISTRON_SECONDARY_COLOR = \"#64DC00\";\r\n\r\nexport class Platform {\r\n static get isAndroid() { return /android/i.test(this.userAgent); }\r\n static get isIOS() { return /iPad|iPhone|iPod/.test(this.userAgent); }\r\n static get isWindows() { return /windows/i.test(this.userAgent); }\r\n static get isMacOS() { return /Macintosh|MacIntel|MacPPC|Mac68K/.test(this.userAgent); }\r\n\r\n private static get userAgent() { return typeof navigator === \"undefined\" ? \"\" : navigator.userAgent; }\r\n}\r\n\r\nexport const rootRouteHead = () => ({\r\n meta: [\r\n { charSet: \"utf-8\" },\r\n { name: \"viewport\", content: \"width=device-width, initial-scale=1\" },\r\n { title: clientEnv.VITE_APP_TITLE },\r\n { name: \"og:type\", content: \"website\" },\r\n { name: \"og:title\", content: clientEnv.VITE_APP_TITLE },\r\n { name: \"og:image\", content: \"/favicon-32x32.png\" }\r\n ],\r\n links: [\r\n { rel: \"apple-touch-icon\", sizes: \"180x180\", href: \"/apple-touch-icon.png\", },\r\n { rel: \"icon\", type: \"image/png\", sizes: \"32x32\", href: \"/favicon-32x32.png\", },\r\n { rel: \"icon\", type: \"image/png\", sizes: \"16x16\", href: \"/favicon-16x16.png\", },\r\n { rel: \"manifest\", href: \"/manifest.webmanifest\" },\r\n { rel: \"icon\", href: \"/favicon.ico\" },\r\n ],\r\n});\r\n\r\nexport const httpClient = axios.create({\r\n baseURL: clientEnv.VITE_API_URL // TODO: Not working in children projects\r\n});\r\n\r\n/* Internal Utils */\r\nexport type FormOmittedProps =\r\n \"name\" |\r\n \"value\" |\r\n \"onChange\" |\r\n \"onBlur\" |\r\n \"error\" |\r\n \"helperText\" |\r\n \"renderInput\" |\r\n \"type\" |\r\n \"aria-label\";\r\n\r\nexport const getFieldStatus = (field: AnyFieldApi) => {\r\n const { meta } = field.state;\r\n\r\n const isTouched = meta.isTouched;\r\n const hasError = !!meta.errors.length;\r\n const helperText = meta.errors[0]?.message;\r\n\r\n return { isTouched, hasError, helperText };\r\n};\r\n\r\nexport const toKebabCase = (str: string): string => {\r\n return str\r\n .replaceAll(/([a-z])([A-Z])/g, \"$1-$2\")\r\n .replaceAll(/[\\s_]+/g, \"-\")\r\n .replaceAll(/[^a-zA-Z0-9-]/g, \"\")\r\n .toLowerCase()\r\n .replaceAll(/-+/g, \"-\")\r\n .replaceAll(/(^-|-$)/g, \"\");\r\n};\r\n"],"names":["WISTRON_PRIMARY_COLOR","WISTRON_SECONDARY_COLOR","Platform","isAndroid","test","userAgent","isIOS","isWindows","isMacOS","navigator","rootRouteHead","meta","charSet","name","content","title","clientEnv","VITE_APP_TITLE","links","rel","sizes","href","type","httpClient","axios","create","baseURL","VITE_API_URL","getFieldStatus","field","state","isTouched","hasError","errors","length","helperText","message","toKebabCase","str","replaceAll","toLowerCase"],"mappings":";;AAIO,MAAMA,wBAAwB;AAC9B,MAAMC,0BAA0B;AAEhC,MAAMC,SAAS;AAAA,EAClB,WAAWC,YAAY;AAAE,WAAO,WAAWC,KAAK,KAAKC,SAAS;AAAA,EAAG;AAAA,EACjE,WAAWC,QAAQ;AAAE,WAAO,mBAAmBF,KAAK,KAAKC,SAAS;AAAA,EAAG;AAAA,EACrE,WAAWE,YAAY;AAAE,WAAO,WAAWH,KAAK,KAAKC,SAAS;AAAA,EAAG;AAAA,EACjE,WAAWG,UAAU;AAAE,WAAO,mCAAmCJ,KAAK,KAAKC,SAAS;AAAA,EAAG;AAAA,EAEvF,WAAmBA,YAAY;AAAE,WAAO,OAAOI,cAAc,cAAc,KAAKA,UAAUJ;AAAAA,EAAW;AACzG;AAEO,MAAMK,gBAAgBA,OAAO;AAAA,EAChCC,MAAM,CACF;AAAA,IAAEC,SAAS;AAAA,EAAA,GACX;AAAA,IAAEC,MAAM;AAAA,IAAYC,SAAS;AAAA,EAAA,GAC7B;AAAA,IAAEC,OAAOC,UAAUC;AAAAA,EAAAA,GACnB;AAAA,IAAEJ,MAAM;AAAA,IAAWC,SAAS;AAAA,EAAA,GAC5B;AAAA,IAAED,MAAM;AAAA,IAAYC,SAASE,UAAUC;AAAAA,EAAAA,GACvC;AAAA,IAAEJ,MAAM;AAAA,IAAYC,SAAS;AAAA,EAAA,CAAsB;AAAA,EAEvDI,OAAO,CACH;AAAA,IAAEC,KAAK;AAAA,IAAoBC,OAAO;AAAA,IAAWC,MAAM;AAAA,EAAA,GACnD;AAAA,IAAEF,KAAK;AAAA,IAAQG,MAAM;AAAA,IAAaF,OAAO;AAAA,IAASC,MAAM;AAAA,EAAA,GACxD;AAAA,IAAEF,KAAK;AAAA,IAAQG,MAAM;AAAA,IAAaF,OAAO;AAAA,IAASC,MAAM;AAAA,EAAA,GACxD;AAAA,IAAEF,KAAK;AAAA,IAAYE,MAAM;AAAA,EAAA,GACzB;AAAA,IAAEF,KAAK;AAAA,IAAQE,MAAM;AAAA,EAAA,CAAgB;AAE7C;AAEO,MAAME,aAAaC,MAAMC,OAAO;AAAA,EACnCC,SAASV,UAAUW;AAAAA;AACvB,CAAC;AAcM,MAAMC,iBAAiBA,CAACC,UAAuB;AAClD,QAAM;AAAA,IAAElB;AAAAA,EAAAA,IAASkB,MAAMC;AAEvB,QAAMC,YAAYpB,KAAKoB;AACvB,QAAMC,WAAW,CAAC,CAACrB,KAAKsB,OAAOC;AAC/B,QAAMC,aAAaxB,KAAKsB,OAAO,CAAC,GAAGG;AAEnC,SAAO;AAAA,IAAEL;AAAAA,IAAWC;AAAAA,IAAUG;AAAAA,EAAAA;AAClC;AAEO,MAAME,cAAcA,CAACC,QAAwB;AAChD,SAAOA,IACFC,WAAW,mBAAmB,OAAO,EACrCA,WAAW,WAAW,GAAG,EACzBA,WAAW,kBAAkB,EAAE,EAC/BC,cACAD,WAAW,OAAO,GAAG,EACrBA,WAAW,YAAY,EAAE;AAClC;"}
|
package/dist/client.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"client.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;"}
|
package/dist/components.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sources":["../src/components/core/TypographyWithIcon.tsx","../src/components/core/Fullscreen.tsx","../src/components/file/Dropzone.tsx","../src/contexts/FileContext.ts","../src/components/file/fileViewer/common/ActionsMenu.tsx","../src/components/file/fileViewer/FileViewerGrid.tsx","../src/components/file/fileViewer/FileViewerList.tsx","../src/components/file/fileViewer/ImageViewer.tsx","../src/components/file/FileViewer.tsx","../src/components/data-grid/ChipInputCell.tsx","../src/components/data-grid/EditableColumnHeader.tsx","../src/components/router/RouterButton.tsx","../src/components/router/RouterGridActionsCellItem.tsx","../src/components/router/RouterIconButton.tsx","../src/components/router/RouterLink.tsx","../src/components/router/RouterTab.tsx","../src/components/router/RouterNotFound.tsx","../src/components/router/RouterError.tsx"],"sourcesContent":["import { Stack, Typography } from \"@mui/material\";\nimport type { SxProps, Theme, TypographyProps } from \"@mui/material\";\n\ninterface TypographyWithIconProps extends TypographyProps {\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n}\n\nexport const TypographyWithIcon: React.FC<TypographyWithIconProps> = ({ startIcon, endIcon, children, sx, ...props }) => {\n const iconSx: SxProps<Theme> = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n lineHeight: 0,\n \"& > svg\": {\n display: \"block\",\n },\n };\n\n return (\n <Typography\n component=\"span\"\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n verticalAlign: \"middle\",\n ...sx,\n }}\n gap={1}\n {...props}\n >\n {startIcon && (\n <Stack component=\"span\" sx={iconSx}>\n {startIcon}\n </Stack>\n )}\n <Stack component=\"span\" sx={{ display: \"inline\", lineHeight: \"inherit\" }}>\n {children}\n </Stack>\n {endIcon && (\n <Stack component=\"span\" sx={iconSx}>\n {endIcon}\n </Stack>\n )}\n </Typography>\n );\n};","import { Box } from \"@mui/material\";\nimport { useEffect, useEffectEvent, useRef, useState } from \"react\";\nimport type { BoxProps } from \"@mui/material\";\nimport type { FC } from \"react\";\n\nexport const Fullscreen: FC<BoxProps> = ({ children, sx, ...props }) => {\n const reference = useRef<HTMLDivElement | null>(null);\n const [height, setHeight] = useState<number>();\n\n const recompute = useEffectEvent(() => {\n if (!reference.current) return;\n const top = Math.ceil(reference.current.getBoundingClientRect().top);\n const avail = Math.max(0, window.innerHeight - top);\n setHeight(avail);\n });\n\n useEffect(() => {\n const element = reference.current;\n if (!element) return;\n\n recompute();\n\n window.addEventListener(\"resize\", recompute);\n\n const ro = new ResizeObserver(recompute);\n ro.observe(document.documentElement);\n ro.observe(document.body);\n ro.observe(element);\n\n return () => {\n window.removeEventListener(\"resize\", recompute);\n ro.disconnect();\n };\n }, []);\n\n return (\n <Box\n ref={reference}\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n minHeight: 0,\n width: \"100%\",\n overflow: \"auto\",\n ...sx,\n }}\n height={height}\n {...props}\n >\n {children}\n </Box>\n );\n};","import CloudUpload from \"@mui/icons-material/CloudUpload\";\nimport { Paper, Typography, useTheme } from \"@mui/material\";\nimport { useDropzone } from \"react-dropzone\";\nimport { useTranslation } from \"react-i18next\";\nimport type { SxProps, Theme} from \"@mui/material\";\nimport type { CSSProperties, FC } from \"react\";\nimport type { DropzoneOptions} from \"react-dropzone\";\n\nconst baseStyle: CSSProperties = {\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: \"20px\",\n borderWidth: 2,\n borderRadius: 2,\n borderStyle: \"dashed\",\n outline: \"none\",\n transition: \"border .24s ease-in-out\",\n cursor: \"pointer\",\n};\n\ninterface DropzoneProps extends DropzoneOptions {\n sx?: SxProps<Theme>;\n}\n\nexport const Dropzone: FC<DropzoneProps> = ({ sx, ...props }) => {\n const { getRootProps, getInputProps, isFocused, isDragAccept, isDragReject, } = useDropzone(props);\n const { t } = useTranslation();\n const theme = useTheme();\n\n const style = {\n ...baseStyle,\n ...(isFocused ? { borderColor: theme.palette.primary.main } : {}),\n ...(isDragAccept ? { borderColor: theme.palette.success.main } : {}),\n ...(isDragReject ? { borderColor: theme.palette.error.main } : {})\n };\n\n return (\n <Paper variant=\"outlined\" {...getRootProps({ style })} sx={sx}>\n <input {...getInputProps()} style={{ display: \"none\" }} />\n <CloudUpload />\n <Typography>{t(\"Layout.File.DragSomeFilesHereOrClickToSelectThem\")}</Typography>\n </Paper>\n );\n};","import { createContext, useContext } from \"react\";\nimport type { FileMeta } from \"../models/file/FileMeta\";\nimport type { FileActions } from \"~/models/file/FileActions\";\n\nexport interface FileContextValue {\n fileMetas: Array<FileMeta>;\n onDelete?: (params: { remainingFileMetas: Array<FileMeta>; deletedFileMeta: FileMeta }) => void;\n actions?: FileActions;\n setImageId: (imageId: string) => void;\n};\n\nexport const FileContext = createContext<FileContextValue | null>(null);\n\nexport const useFile = () => {\n const context = useContext(FileContext);\n if (!context) {\n throw new Error(\"FileViewer components must be used within FileViewer\");\n }\n return context;\n};","import Delete from \"@mui/icons-material/Delete\";\nimport FileDownload from \"@mui/icons-material/FileDownload\";\nimport { List, ListItemButton, ListItemIcon, ListItemText, Menu } from \"@mui/material\";\nimport { useTranslation } from \"react-i18next\";\nimport type { FC } from \"react\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport { useFile } from \"~/contexts/FileContext\";\nimport { useDialogs } from \"~/hooks/DialogsHooks\";\nimport { useDeleteFile, useDownloadFile } from \"~/queries/FileHooks\";\n\ninterface ActionsMenuProps {\n meta: FileMeta;\n menu: { mouseX: number; mouseY: number } | null;\n setMenu: (menu: { mouseX: number; mouseY: number } | null) => void;\n}\n\nexport const ActionsMenu: FC<ActionsMenuProps> = ({ meta, menu, setMenu }) => {\n const { t } = useTranslation();\n const { fileMetas, onDelete, actions } = useFile();\n const { confirm } = useDialogs();\n\n const handleMenuClose = () => { setMenu(null); };\n\n const { mutate: download, isPending: isDownloading } = useDownloadFile();\n const { mutate: deleteFile, isPending: isDeleting } = useDeleteFile();\n\n const handleOnDownload = () => {\n handleMenuClose();\n download(meta);\n };\n\n const handleOnDelete = async () => {\n if (!await confirm(t(\"Layout.File.AreYouSureYouWantToDelete\", { fileName: meta.fileName })))\n return;\n\n deleteFile(meta);\n handleMenuClose();\n\n if (onDelete) {\n const remainingFileMetas: Array<FileMeta> = fileMetas.filter(m => m.id !== meta.id);\n onDelete({ remainingFileMetas, deletedFileMeta: meta });\n }\n };\n\n return (\n <Menu open={menu !== null} onClose={handleMenuClose} anchorReference=\"anchorPosition\" variant=\"menu\"\n anchorPosition={menu === null ? undefined : { top: menu.mouseY, left: menu.mouseX }}>\n <List disablePadding>\n {actions?.download !== false &&\n <ListItemButton onClick={handleOnDownload} disabled={isDownloading}>\n <ListItemIcon>\n <FileDownload />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.File.Download\")}</ListItemText>\n </ListItemButton>\n }\n {actions?.delete !== false &&\n <ListItemButton onClick={handleOnDelete} disabled={isDeleting}>\n <ListItemIcon>\n <Delete />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.File.Delete\")}</ListItemText>\n </ListItemButton>\n }\n </List>\n </Menu>\n );\n};\n","import MoreVert from \"@mui/icons-material/MoreVert\";\nimport { Box, IconButton, ImageListItem, ImageListItemBar, Stack, Tooltip } from \"@mui/material\";\nimport { grey } from \"@mui/material/colors\";\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useInView } from \"react-intersection-observer\";\nimport { ActionsMenu } from \"./common/ActionsMenu\";\nimport type { SxProps, Theme } from \"@mui/material\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport { useFile } from \"~/contexts/FileContext\";\nimport { useDownloadFile, useGetFileThumbnail, useOpenFile } from \"~/queries/FileHooks\";\n\nconst IMAGE_SIZE = 150;\n\ntype FileViewerGridItemBar = \"hidden\" | \"always\" | \"onMouseEnter\";\n\nexport interface FileViewerGridProps {\n size?: number;\n itemBar?: FileViewerGridItemBar;\n sx?: SxProps<Theme>;\n}\n\nexport const FileViewerGrid: React.FC<FileViewerGridProps> = ({ sx, size, itemBar }) => {\n const { fileMetas } = useFile();\n\n return (\n <Stack direction=\"row\" spacing={1} sx={{ overflow: \"auto\", ...sx }}>\n {fileMetas.map(fileMeta => (\n <GridFileViewerItem\n key={fileMeta.id}\n meta={fileMeta}\n size={size}\n itemBar={itemBar}\n />\n ))}\n </Stack>\n );\n};\n\ninterface GridFileViewerItemProps {\n meta: FileMeta;\n size?: number;\n itemBar?: FileViewerGridItemBar;\n}\n\nexport const GridFileViewerItem: React.FC<GridFileViewerItemProps> = ({ meta, size, itemBar }) => {\n const { setImageId, actions } = useFile();\n const [showItemBar, setShowItemBar] = useState<boolean>(itemBar === \"always\");\n const [menu, setMenu] = useState<{ mouseX: number; mouseY: number; } | null>(null);\n const { ref, inView } = useInView();\n\n useEffect(() => {\n setShowItemBar(itemBar === \"always\");\n }, [itemBar]);\n\n const { data: source } = useGetFileThumbnail({ meta }, { enabled: inView });\n\n const handleOnMouseEnter = () => setShowItemBar(true);\n const handleOnMouseLeave = () => itemBar !== \"always\" && setShowItemBar(false);\n\n const openMenu = (event: React.MouseEvent) => {\n setMenu(menu === null ? { mouseX: event.clientX, mouseY: event.clientY, } : null);\n setTimeout(() => setShowItemBar(true));\n };\n\n const { mutate: openFile } = useOpenFile();\n const { mutate: download } = useDownloadFile();\n\n const onClick = () => {\n switch (meta.mediaType) {\n case \"image\": { return setImageId(meta.id); }\n case \"application\": { return openFile(meta); }\n case \"video\": { return openFile(meta); }\n default: { return download(meta); }\n }\n };\n\n return (\n <Fragment>\n <ImageListItem sx={{ width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }} onMouseEnter={handleOnMouseEnter} onMouseLeave={handleOnMouseLeave} ref={ref}>\n <Box\n component=\"img\"\n src={source}\n loading=\"lazy\"\n alt={\"thumbnail-\" + meta.id}\n onClick={onClick}\n sx={{ cursor: \"pointer\", objectFit: \"contain\", width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }}\n />\n {(itemBar !== \"hidden\" && showItemBar) &&\n <ImageListItemBar\n title={\n <Tooltip title={meta.fileName}>\n <Box>\n {meta.fileName}\n </Box>\n </Tooltip>\n }\n actionIcon={\n (actions?.download !== false || actions.delete !== false) &&\n <IconButton sx={{ color: grey[100] }} onClick={openMenu}>\n <MoreVert />\n </IconButton>\n }\n />\n }\n </ImageListItem>\n\n {(actions?.download !== false || actions.delete !== false) && <ActionsMenu meta={meta} menu={menu} setMenu={setMenu} />}\n </Fragment>\n );\n};\n","import AttachFile from \"@mui/icons-material/AttachFile\";\nimport Image from \"@mui/icons-material/Image\";\nimport MoreVert from \"@mui/icons-material/MoreVert\";\nimport SmartDisplay from \"@mui/icons-material/SmartDisplay\";\nimport { IconButton, List, ListItemButton, ListItemIcon, ListItemText } from \"@mui/material\";\nimport { Fragment, useState } from \"react\";\nimport { ActionsMenu } from \"./common/ActionsMenu\";\nimport type { FC } from \"react\";\nimport type { SxProps, Theme } from \"@mui/material\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport { useFile } from \"~/contexts/FileContext\";\nimport { useDownloadFile, useOpenFile } from \"~/queries/FileHooks\";\n\nexport interface FileViewerListProps {\n sx?: SxProps<Theme>;\n}\n\nexport const FileViewerList: FC<FileViewerListProps> = ({ sx }) => {\n const { fileMetas } = useFile();\n\n return (\n <List dense sx={sx}>\n {fileMetas.map(fileMeta =>\n <ListFileViewerItem\n key={fileMeta.id}\n meta={fileMeta}\n />\n )}\n </List>\n );\n};\n\ninterface ListFileViewerItemProps {\n meta: FileMeta;\n}\n\nexport const ListFileViewerItem: React.FC<ListFileViewerItemProps> = ({ meta }) => {\n const { setImageId, actions } = useFile();\n const [menu, setMenu] = useState<{ mouseX: number; mouseY: number; } | null>(null);\n\n const openMenu = (event: React.MouseEvent) => {\n event.stopPropagation();\n setMenu(menu === null ? { mouseX: event.clientX, mouseY: event.clientY, } : null);\n };\n\n const { mutate: openFile } = useOpenFile();\n const { mutate: download } = useDownloadFile();\n\n const onClick = () => {\n switch (meta.mediaType) {\n case \"image\": { return setImageId(meta.id); }\n case \"application\": { return openFile(meta); }\n case \"video\": { return openFile(meta); }\n default: { return download(meta); }\n }\n };\n\n const icon = () => {\n switch (meta.mediaType) {\n case \"image\": {\n return <Image />;\n }\n case \"video\": {\n return <SmartDisplay />;\n }\n default: {\n return <AttachFile />;\n }\n }\n };\n\n return (\n <Fragment>\n <ListItemButton key={meta.id} onClick={onClick}>\n <ListItemIcon>\n {icon()}\n </ListItemIcon>\n <ListItemText primary={`${meta.fileName}.${meta.fileExtension}`} />\n {(actions?.download !== false || actions.delete !== false) &&\n <IconButton edge=\"end\" onClick={openMenu}>\n <MoreVert />\n </IconButton>\n }\n </ListItemButton>\n\n {(actions?.download !== false || actions.delete !== false) && <ActionsMenu meta={meta} menu={menu} setMenu={setMenu} />}\n </Fragment>\n );\n};\n","import Close from \"@mui/icons-material/Close\";\nimport { Box, Dialog, Fab } from \"@mui/material\";\nimport React, { useEffect } from \"react\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport { useFile } from \"~/contexts/FileContext\";\nimport { useGetFile } from \"~/queries/FileHooks\";\n\ninterface ImageViewerProps {\n metaId: string;\n}\n\nexport const ImageViewer: React.FC<ImageViewerProps> = ({ metaId }) => {\n const { fileMetas, setImageId } = useFile();\n\n const meta = fileMetas.find(m => m.id === metaId)!;\n\n const { data: source } = useGetFile({ meta });\n\n useEffect(() => {\n if (metaId)\n globalThis.addEventListener(\"keydown\", handleOnKeydown);\n\n return () => { globalThis.removeEventListener(\"keydown\", handleOnKeydown); };\n }, [metaId]);\n\n const handleOnKeydown = (event: KeyboardEvent) => {\n const images: Array<FileMeta> = fileMetas.filter(m => m.mediaType === \"image\");\n const imageIndex: number = images.findIndex(m => m.id === metaId);\n\n switch (event.key) {\n case \"ArrowLeft\": {\n return handleOnArrowLeft(images, imageIndex);\n }\n case \"ArrowRight\": {\n return handleOnArrowRight(images, imageIndex);\n }\n case \"Backspace\":\n case \"Escape\": {\n event.preventDefault();\n return onClose();\n }\n }\n };\n\n const handleOnArrowLeft = (images: Array<FileMeta>, index: number) => {\n if (index > 0) {\n const previousFile: FileMeta = images[index - 1];\n setImageId(previousFile.id);\n }\n };\n\n const handleOnArrowRight = (images: Array<FileMeta>, index: number) => {\n if (index < images.length - 1) {\n const nextFile: FileMeta = images[index + 1];\n setImageId(nextFile.id);\n }\n };\n\n const onClose = () => setImageId(\"\");\n\n if (!metaId) return null;\n\n return (\n <Dialog open onClose={onClose} maxWidth=\"xl\">\n <Box component=\"img\" src={source} alt={metaId} sx={{ maxWidth: \"100vw\", maxHeight: { xs: \"calc(100vh - 56px)\", sm: \"calc(100vh - 64px)\" } }} />\n\n <Fab size=\"medium\" onClick={onClose} sx={{ position: \"fixed\", top: 8, right: 8 }}>\n <Close />\n </Fab>\n </Dialog>\n );\n};\n","import { useState } from \"react\";\nimport { FileViewerGrid } from \"./fileViewer/FileViewerGrid\";\nimport { FileViewerList } from \"./fileViewer/FileViewerList\";\nimport { ImageViewer } from \"./fileViewer/ImageViewer\";\nimport type { FileViewerGridProps } from \"./fileViewer/FileViewerGrid\";\nimport type { ComponentType, FC, ReactNode } from \"react\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport type { FileActions } from \"~/models/file/FileActions\";\nimport type { FileViewerListProps } from \"./fileViewer/FileViewerList\";\nimport { FileContext } from \"~/contexts/FileContext\";\nimport { useGetFileMetas } from \"~/queries/FileHooks\";\n\ninterface FileViewerComponent {\n Grid: ComponentType<FileViewerGridProps>;\n List: ComponentType<FileViewerListProps>;\n}\n\ninterface FileViewerProps {\n subId: string;\n onDelete?: (params: { remainingFileMetas: Array<FileMeta>; deletedFileMeta: FileMeta }) => void;\n actions?: FileActions;\n children: (component: FileViewerComponent) => ReactNode;\n}\n\nexport const FileViewer: FC<FileViewerProps> = ({ subId, onDelete, actions, children }) => {\n const { data: fileMetas = [] } = useGetFileMetas({ subId }, { enabled: !!subId });\n const [imageId, setImageId] = useState<string>(\"\");\n\n const components: FileViewerComponent = { Grid: FileViewerGrid, List: FileViewerList };\n\n if (fileMetas.length === 0) return null;\n\n return (\n <FileContext.Provider value={{ fileMetas, onDelete, actions, setImageId }}>\n {children(components)}\n <ImageViewer metaId={imageId} />\n </FileContext.Provider>\n );\n};\n","import { Chip, Stack } from \"@mui/material\";\nimport type { ChipProps} from \"@mui/material\";\nimport type { GridRenderCellParams, GridValidRowModel } from \"@mui/x-data-grid-premium\";\n\nconst isArray = (value: any) => Array.isArray(value);\n\ninterface ChipInputCellProps<T extends GridValidRowModel> {\n params: GridRenderCellParams<T>;\n slotProps?: ChipProps;\n getLabel?: (object: T) => string | number;\n}\n\nexport const ChipInputCell = <T extends GridValidRowModel>({ params, slotProps, getLabel }: ChipInputCellProps<T>) => {\n if (!params.value) return null;\n\n const getLabelValue = (value: any) => {\n if (getLabel) return getLabel(value);\n return value;\n };\n\n if (isArray(params.value))\n return (\n <Stack direction=\"row\" alignItems=\"center\" gap={1} sx={{ overflowX: \"auto\", height: \"100%\", width: params.colDef.computedWidth }}>\n {params.value.map((value: any, index) =>\n <Chip key={`${index + 1}-chip-input-cell`} label={getLabelValue(value)} {...slotProps} />\n )}\n </Stack>\n );\n\n return <Chip label={getLabelValue(params.value)} {...slotProps} />;\n};","import Edit from \"@mui/icons-material/Edit\";\nimport { TypographyWithIcon } from \"../core/TypographyWithIcon\";\nimport type { GridColumnHeaderParams, GridValidRowModel } from \"@mui/x-data-grid-premium\";\n\nexport const EditableColumnHeader = <T extends GridValidRowModel>({ colDef }: GridColumnHeaderParams<T>) => {\n return <TypographyWithIcon endIcon={<Edit color=\"disabled\" fontSize=\"small\" />} variant=\"body2\" className=\"MuiDataGrid-columnHeaderTitle\">{colDef.headerName}</TypographyWithIcon>;\n};","import { Button } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { ButtonProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, ButtonProps<\"a\">>(function ButtonComponent(props, reference) {\n return <Button ref={reference} component=\"a\" {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterButton: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { GridActionsCellItem } from \"@mui/x-data-grid-premium\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { GridActionsCellItemProps } from \"@mui/x-data-grid-premium\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLButtonElement, GridActionsCellItemProps>(\n function GridActionsCellItemComponent(props, reference) {\n return <GridActionsCellItem ref={reference} component=\"a\" {...props} />;\n }\n) as React.ForwardRefExoticComponent<GridActionsCellItemProps & React.RefAttributes<HTMLButtonElement>>;\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterGridActionsCellItem: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { IconButton } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { IconButtonProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, IconButtonProps<\"a\">>(function IconButtonComponent(props, reference) {\n return <IconButton ref={reference} component=\"a\" {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterIconButton: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { Link } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { LinkProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, LinkProps>(function LinkComponent(props, reference) {\n return <Link ref={reference} {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterLink: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { Tab } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { TabProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, TabProps<\"a\">>(function TabComponent(props, reference) {\n return <Tab ref={reference} component=\"a\" {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterTab: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { Box, Divider, Typography } from \"@mui/material\";\nimport { useTranslation } from \"react-i18next\";\n\nexport function RouterNotFound() {\n const { t } = useTranslation();\n\n return (\n <Box height=\"100vh\" display=\"flex\" flexDirection=\"column\" alignItems=\"center\" justifyContent=\"center\" textAlign=\"center\" px={2} >\n <Box display=\"flex\" alignItems=\"center\" mb={4}>\n <Typography variant=\"h3\" component=\"span\" fontWeight={500} sx={{ lineHeight: 1 }}>404</Typography>\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 3 }} />\n <Typography variant=\"h5\" component=\"span\">{t(\"Layout.ThisPageCouldNotBeFound\")}</Typography>\n </Box>\n </Box>\n );\n}\n","import { Box, Divider, Typography } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { ErrorComponentProps } from \"@tanstack/react-router\";\n\ninterface RouterErrorProps {\n error: ErrorComponentProps[\"error\"];\n}\n\nexport const RouterError: FC<RouterErrorProps> = ({ error }) => {\n\n return (\n <Box height=\"100vh\" display=\"flex\" flexDirection=\"column\" alignItems=\"center\" justifyContent=\"center\" textAlign=\"center\" px={2} >\n <Box display=\"flex\" alignItems=\"center\" mb={4}>\n <Typography variant=\"h3\" component=\"span\" fontWeight={500} sx={{ lineHeight: 1 }}>{error.name || \"500\"}</Typography>\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 3 }} />\n <Typography variant=\"h5\" component=\"span\">{error.message}</Typography>\n </Box>\n </Box>\n );\n};\n"],"names":["TypographyWithIcon","t0","$","_c","children","endIcon","props","startIcon","sx","t1","Symbol","for","display","alignItems","justifyContent","flexShrink","lineHeight","iconSx","t2","verticalAlign","t3","t4","t5","t6","t7","Fullscreen","reference","useRef","height","setHeight","useState","current","top","Math","ceil","getBoundingClientRect","avail","max","window","innerHeight","recompute","useEffectEvent","element","addEventListener","ro","ResizeObserver","observe","document","documentElement","body","removeEventListener","disconnect","useEffect","flexDirection","minHeight","width","overflow","baseStyle","flex","padding","borderWidth","borderRadius","borderStyle","outline","transition","cursor","Dropzone","getRootProps","getInputProps","isFocused","isDragAccept","isDragReject","useDropzone","t","useTranslation","theme","useTheme","T0","style","borderColor","palette","primary","main","success","error","Paper","t8","t9","FileContext","createContext","useFile","context","useContext","Error","ActionsMenu","meta","menu","setMenu","fileMetas","onDelete","actions","confirm","useDialogs","handleMenuClose","mutate","download","isPending","isDownloading","useDownloadFile","deleteFile","isDeleting","useDeleteFile","handleOnDownload","fileName","remainingFileMetas","filter","m","id","deletedFileMeta","handleOnDelete","undefined","mouseY","left","mouseX","delete","IMAGE_SIZE","FileViewerGrid","size","itemBar","fileMeta","map","GridFileViewerItem","setImageId","showItemBar","setShowItemBar","ref","inView","useInView","enabled","data","source","useGetFileThumbnail","handleOnMouseEnter","handleOnMouseLeave","event","clientX","clientY","setTimeout","openMenu","openFile","useOpenFile","mediaType","onClick","t10","t11","t12","t13","t14","t15","objectFit","t16","t17","color","grey","t18","t19","t20","FileViewerList","_temp","ListFileViewerItem","stopPropagation","icon","fileExtension","ImageViewer","metaId","find","useGetFile","globalThis","handleOnKeydown","images","imageIndex","findIndex","key","handleOnArrowLeft","handleOnArrowRight","preventDefault","onClose","index","previousFile","length","nextFile","maxWidth","maxHeight","xs","sm","position","right","FileViewer","subId","useGetFileMetas","imageId","bb0","components","Grid","List","Provider","isArray","value","Array","ChipInputCell","params","slotProps","getLabel","getLabelValue","colDef","computedWidth","overflowX","value_0","EditableColumnHeader","headerName","Component","React","forwardRef","ButtonComponent","CreatedComponent","createLink","RouterButton","GridActionsCellItemComponent","RouterGridActionsCellItem","IconButtonComponent","RouterIconButton","LinkComponent","RouterLink","TabComponent","RouterTab","RouterNotFound","mx","RouterError","name","message"],"mappings":"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"}
|
package/dist/hooks.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"hooks.js","sources":["../src/components/form/FormAutocomplete.tsx","../src/components/form/FormCheckbox.tsx","../src/components/form/FormDatePicker.tsx","../src/components/form/FormDateRangePicker.tsx","../src/components/form/FormTimePicker.tsx","../src/components/form/FormTimeRangePicker.tsx","../src/components/form/FormDateTimePicker.tsx","../src/components/form/FormDateTimeRangePicker.tsx","../src/components/form/FormNumberField.tsx","../src/components/form/FormRadioGroup.tsx","../src/components/form/FormSlider.tsx","../src/components/form/FormSubmitButton.tsx","../src/components/form/FormSwitch.tsx","../src/components/form/FormTextField.tsx","../src/hooks/FormHooks.ts"],"sourcesContent":["import { Autocomplete, TextField } from \"@mui/material\";\nimport type { AutocompleteProps, TextFieldProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/FormHooks\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormAutocompleteProps extends Omit<AutocompleteProps<any, boolean, boolean, boolean>, FormOmittedProps> {\n textFieldProps?: Omit<TextFieldProps, FormOmittedProps>;\n}\n\nexport const FormAutocomplete: FC<FormAutocompleteProps> = ({ textFieldProps, ...autocompleteProps }) => {\n const field = useFieldContext();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <Autocomplete\n value={field.state.value}\n onChange={(_, value) => !autocompleteProps.freeSolo && field.handleChange(value)}\n onInputChange={(_, value, reason) => reason !== \"reset\" && autocompleteProps.freeSolo && field.handleChange(value)}\n onBlur={field.handleBlur}\n aria-label={field.name}\n {...autocompleteProps}\n renderInput={(parameters) =>\n <TextField\n {...parameters}\n name={field.name}\n error={isTouched && hasError}\n helperText={isTouched && helperText}\n {...textFieldProps}\n />\n }\n />\n );\n};","import { Checkbox, FormControl, FormControlLabel, FormHelperText } from \"@mui/material\";\nimport type { CheckboxProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/FormHooks\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormCheckboxProps extends Omit<CheckboxProps, FormOmittedProps> {\n label?: string;\n}\n\nexport const FormCheckbox: FC<FormCheckboxProps> = (props) => {\n const field = useFieldContext<boolean | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <FormControl component=\"fieldset\">\n <FormControlLabel\n control={\n <Checkbox\n name={field.name}\n checked={Boolean(field.state.value)}\n onChange={(event) => field.handleChange(event.target.checked)}\n onBlur={field.handleBlur}\n aria-label={field.name}\n {...props}\n />\n }\n label={props.label ?? \"\"}\n />\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n </FormControl>\n );\n};","import { DatePicker } from \"@mui/x-date-pickers-pro\";\nimport type { Dayjs } from \"dayjs\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { DatePickerProps } from \"@mui/x-date-pickers-pro\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/FormHooks\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDatePickerProps extends Omit<DatePickerProps, FormOmittedProps> {\n textFieldProps?: TextFieldProps;\n}\n\nexport const FormDatePicker: FC<FormDatePickerProps> = (props) => {\n const field = useFieldContext<Dayjs | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <DatePicker\n name={field.name}\n value={field.state.value}\n onChange={(value) => field.handleChange(value)}\n slotProps={{\n textField: {\n onBlur: field.handleBlur,\n error: isTouched && hasError,\n helperText: isTouched && helperText,\n ...props.textFieldProps\n },\n ...props.slotProps\n }}\n aria-label={field.name}\n {...props}\n />\n );\n};\n","import { DateRangePicker } from \"@mui/x-date-pickers-pro\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { DateRangePickerProps } from \"@mui/x-date-pickers-pro\";\nimport type { Dayjs } from \"dayjs\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/FormHooks\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDateRangePickerProps extends Omit<DateRangePickerProps, FormOmittedProps> {\n textFieldProps?: TextFieldProps;\n}\n\nexport const FormDateRangePicker: FC<FormDateRangePickerProps> = (props) => {\n const field = useFieldContext<[Dayjs | null, Dayjs | null] | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <DateRangePicker\n name={field.name}\n value={field.state.value}\n onChange={(value) => field.handleChange(value)}\n slotProps={{\n textField: {\n onBlur: field.handleBlur,\n error: isTouched && hasError,\n helperText: isTouched && helperText,\n ...props.textFieldProps\n },\n ...props.slotProps\n }}\n aria-label={field.name}\n {...props}\n />\n );\n};\n","import { TimePicker } from \"@mui/x-date-pickers-pro\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { TimePickerProps } from \"@mui/x-date-pickers-pro\";\nimport type { Dayjs } from \"dayjs\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/FormHooks\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormTimePickerProps extends Omit<TimePickerProps, FormOmittedProps> {\n textFieldProps?: TextFieldProps;\n}\n\nexport const FormTimePicker: FC<FormTimePickerProps> = (props) => {\n const field = useFieldContext<Dayjs | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <TimePicker\n name={field.name}\n value={field.state.value}\n onChange={(value) => field.handleChange(value)}\n slotProps={{\n textField: {\n onBlur: field.handleBlur,\n error: isTouched && hasError,\n helperText: isTouched && helperText,\n ...props.textFieldProps\n },\n ...props.slotProps\n }}\n aria-label={field.name}\n {...props}\n />\n );\n};\n","import { TimeRangePicker } from \"@mui/x-date-pickers-pro\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { TimeRangePickerProps } from \"@mui/x-date-pickers-pro\";\nimport type { Dayjs } from \"dayjs\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/FormHooks\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormTimeRangePickerProps extends Omit<TimeRangePickerProps, FormOmittedProps> {\n textFieldProps?: TextFieldProps;\n}\n\nexport const FormTimeRangePicker: FC<FormTimeRangePickerProps> = (props) => {\n const field = useFieldContext<[Dayjs | null, Dayjs | null] | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <TimeRangePicker\n name={field.name}\n value={field.state.value}\n onChange={(value) => field.handleChange(value)}\n slotProps={{\n textField: {\n onBlur: field.handleBlur,\n error: isTouched && hasError,\n helperText: isTouched && helperText,\n ...props.textFieldProps\n },\n ...props.slotProps\n }}\n aria-label={field.name}\n {...props}\n />\n );\n};\n","import { DateTimePicker } from \"@mui/x-date-pickers-pro\";\nimport type { Dayjs } from \"dayjs\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { DateTimePickerProps } from \"@mui/x-date-pickers-pro\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/FormHooks\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDateTimePickerProps extends Omit<DateTimePickerProps, FormOmittedProps> {\n textFieldProps?: TextFieldProps;\n}\n\nexport const FormDateTimePicker: FC<FormDateTimePickerProps> = (props) => {\n const field = useFieldContext<Dayjs | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <DateTimePicker\n name={field.name}\n value={field.state.value}\n onChange={(value) => field.handleChange(value)}\n slotProps={{\n textField: {\n onBlur: field.handleBlur,\n error: isTouched && hasError,\n helperText: isTouched && helperText,\n ...props.textFieldProps,\n },\n ...props.slotProps\n }}\n aria-label={field.name}\n {...props}\n />\n );\n};\n","import { DateTimeRangePicker } from \"@mui/x-date-pickers-pro\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { DateTimeRangePickerProps } from \"@mui/x-date-pickers-pro\";\nimport type { Dayjs } from \"dayjs\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/FormHooks\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormDateTimeRangePickerProps extends Omit<DateTimeRangePickerProps, FormOmittedProps> {\n textFieldProps?: TextFieldProps;\n}\n\nexport const FormDateTimeRangePicker: FC<FormDateTimeRangePickerProps> = (props) => {\n const field = useFieldContext<[Dayjs | null, Dayjs | null] | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <DateTimeRangePicker\n name={field.name}\n value={field.state.value}\n onChange={(value) => field.handleChange(value)}\n slotProps={{\n textField: {\n onBlur: field.handleBlur,\n error: isTouched && hasError,\n helperText: isTouched && helperText,\n ...props.textFieldProps\n },\n ...props.slotProps\n }}\n aria-label={field.name}\n {...props}\n />\n );\n};\n","import { TextField } from \"@mui/material\";\nimport { NumericFormat } from \"react-number-format\";\nimport type { InputAttributes, NumericFormatProps } from \"react-number-format/types/types\";\nimport type { FC } from \"react\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/FormHooks\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormNumberFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\n\tdefaultValue?: number | null;\n\toptions?: Omit<NumericFormatProps<InputAttributes>, \"customInput\" | \"onValueChange\" | keyof InputAttributes>;\n}\n\nexport const FormNumberField: FC<FormNumberFieldProps> = ({ options, ...props }) => {\n\tconst field = useFieldContext<number | null | undefined>();\n\tconst { isTouched, hasError, helperText } = getFieldStatus(field);\n\n\treturn (\n\t\t<NumericFormat\n\t\t\tcustomInput={TextField}\n\t\t\tname={field.name}\n\t\t\tvalue={field.state.value ?? \"\"}\n\t\t\tonValueChange={({ floatValue }) => field.handleChange(floatValue)}\n\t\t\tonBlur={field.handleBlur}\n\t\t\terror={isTouched && hasError}\n\t\t\thelperText={isTouched && helperText}\n\t\t\taria-label={field.name}\n\t\t\t{...props}\n\t\t\t{...options}\n\t\t/>\n\t);\n};\n","import { FormControl, FormControlLabel, FormHelperText, FormLabel, Radio, RadioGroup } from \"@mui/material\";\nimport type { RadioGroupProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/FormHooks\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\ninterface Option {\n label: string;\n value: string | number;\n}\n\nexport interface FormRadioGroupProps extends Omit<RadioGroupProps, FormOmittedProps> {\n label?: string;\n options: Array<Option>;\n}\n\nexport const FormRadioGroup: FC<FormRadioGroupProps> = ({ label, options, ...props }) => {\n const field = useFieldContext<string | number | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <FormControl component=\"fieldset\">\n {label && <FormLabel component=\"legend\">{label}</FormLabel>}\n <RadioGroup\n name={field.name}\n value={field.state.value ?? \"\"}\n onChange={(event) => field.handleChange(event.target.value)}\n onBlur={field.handleBlur}\n aria-label={field.name}\n {...props}\n >\n {options.map((option) => (\n <FormControlLabel\n key={option.value}\n value={option.value}\n control={<Radio />}\n label={option.label}\n />\n ))}\n </RadioGroup>\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n","import { FormControl, FormHelperText, FormLabel, Slider } from \"@mui/material\";\nimport type { SliderProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/FormHooks\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormSliderProps extends Omit<SliderProps, FormOmittedProps> {\n label?: string;\n}\n\nexport const FormSlider: FC<FormSliderProps> = ({ label, ...props }) => {\n const field = useFieldContext<number | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <FormControl component=\"fieldset\">\n {label && <FormLabel>{label}</FormLabel>}\n <Slider\n name={field.name}\n value={field.state.value ?? 0}\n onChange={(_, value) => field.handleChange(Array.isArray(value) ? value[0] : value)}\n onBlur={field.handleBlur}\n aria-label={field.name}\n {...props}\n />\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n","import { Button } from \"@mui/material\";\nimport type { ButtonProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport { useFormContext } from \"~/hooks/FormHooks\";\n\nexport type FormSubmitButtonProps = Omit<ButtonProps, \"loading\" | \"disabled\" | \"onClick\" | \"type\">;\n\nexport const FormSubmitButton: FC<FormSubmitButtonProps> = (props) => {\n const form = useFormContext();\n\n const handleClick = (event: React.MouseEvent<HTMLButtonElement>) => {\n event.preventDefault();\n event.stopPropagation();\n form.handleSubmit();\n };\n\n return (\n <form.Subscribe selector={(state) => [state.canSubmit, state.isSubmitting]}>\n {([canSubmit, isSubmitting]) => (\n <Button\n loading={isSubmitting}\n disabled={!canSubmit}\n onClick={handleClick}\n type=\"submit\"\n aria-label=\"submit\"\n {...props}\n />\n )}\n </form.Subscribe>\n );\n};","import { FormControl, FormControlLabel, FormHelperText, Switch } from \"@mui/material\";\nimport type { SwitchProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/FormHooks\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormSwitchProps extends Omit<SwitchProps, FormOmittedProps> {\n label?: string;\n}\n\nexport const FormSwitch: FC<FormSwitchProps> = (props) => {\n const field = useFieldContext<boolean | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <FormControl component=\"fieldset\">\n <FormControlLabel\n control={\n <Switch\n name={field.name}\n checked={Boolean(field.state.value)}\n onChange={(event) => field.handleChange(event.target.checked)}\n onBlur={field.handleBlur}\n aria-label={field.name}\n {...props}\n />\n }\n label={props.label ?? \"\"}\n />\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\n </FormControl>\n );\n};\n","import { TextField } from \"@mui/material\";\nimport type { TextFieldProps } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { FormOmittedProps } from \"~/lib/utils\";\nimport { useFieldContext } from \"~/hooks/FormHooks\";\nimport { getFieldStatus } from \"~/lib/utils\";\n\nexport interface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\n type?: \"color\" | \"email\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\"\n}\n\nexport const FormTextField: FC<FormTextFieldProps> = (props) => {\n const field = useFieldContext<string | number | null | undefined>();\n const { isTouched, hasError, helperText } = getFieldStatus(field);\n\n return (\n <TextField\n name={field.name}\n value={field.state.value ?? \"\"}\n onChange={event => field.handleChange(event.target.value)}\n onBlur={field.handleBlur}\n error={isTouched && hasError}\n helperText={isTouched && helperText}\n aria-label={field.name}\n {...props}\n />\n );\n};","import { createFormHook, createFormHookContexts } from \"@tanstack/react-form\";\nimport { FormAutocomplete as Autocomplete } from \"~/components/form/FormAutocomplete\";\nimport { FormCheckbox as Checkbox } from \"~/components/form/FormCheckbox\";\nimport { FormDatePicker as DatePicker } from \"~/components/form/FormDatePicker\";\nimport { FormDateRangePicker as DateRangePicker } from \"~/components/form/FormDateRangePicker\";\nimport { FormTimePicker as TimePicker } from \"~/components/form/FormTimePicker\";\nimport { FormTimeRangePicker as TimeRangePicker } from \"~/components/form/FormTimeRangePicker\";\nimport { FormDateTimePicker as DateTimePicker } from \"~/components/form/FormDateTimePicker\";\nimport { FormDateTimeRangePicker as DateTimeRangePicker } from \"~/components/form/FormDateTimeRangePicker\";\nimport { FormNumberField as NumberField } from \"~/components/form/FormNumberField\";\nimport { FormRadioGroup as RadioGroup } from \"~/components/form/FormRadioGroup\";\nimport { FormSlider as Slider } from \"~/components/form/FormSlider\";\nimport { FormSubmitButton as SubmitButton } from \"~/components/form/FormSubmitButton\";\nimport { FormSwitch as Switch } from \"~/components/form/FormSwitch\";\nimport { FormTextField as TextField } from \"~/components/form/FormTextField\";\n\nexport const { fieldContext, useFieldContext, formContext, useFormContext } = createFormHookContexts();\n\nexport const { useAppForm: useLayoutForm, withForm: withLayoutForm } =\n createFormHook({\n fieldComponents: {\n TextField,\n NumberField,\n Autocomplete,\n Checkbox,\n Switch,\n RadioGroup,\n Slider,\n DatePicker,\n DateRangePicker,\n TimePicker,\n TimeRangePicker,\n DateTimePicker,\n DateTimeRangePicker,\n },\n formComponents: {\n SubmitButton,\n },\n fieldContext,\n formContext,\n });\n"],"names":["FormAutocomplete","t0","$","_c","autocompleteProps","textFieldProps","field","useFieldContext","t1","getFieldStatus","isTouched","hasError","helperText","t2","t3","freeSolo","_","value","handleChange","__0","value_0","reason","t4","name","parameters","t5","handleBlur","state","FormCheckbox","props","Boolean","event","target","checked","label","t6","t7","t8","FormDatePicker","onBlur","error","slotProps","textField","FormDateRangePicker","FormTimePicker","FormTimeRangePicker","FormDateTimePicker","FormDateTimeRangePicker","FormNumberField","options","floatValue","TextField","FormRadioGroup","map","_temp","t9","t10","t11","option","FormSlider","Array","isArray","FormSubmitButton","form","useFormContext","preventDefault","stopPropagation","handleSubmit","handleClick","canSubmit","isSubmitting","Subscribe","FormSwitch","FormTextField","fieldContext","formContext","createFormHookContexts","useAppForm","useLayoutForm","withForm","withLayoutForm","createFormHook","fieldComponents","NumberField","Autocomplete","Checkbox","Switch","RadioGroup","Slider","DatePicker","DateRangePicker","TimePicker","TimeRangePicker","DateTimePicker","DateTimeRangePicker","formComponents","SubmitButton"],"mappings":";;;;;;;;;AAWO,MAAMA,mBAA8CC,CAAAA,OAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAAC;AAAA,MAAAC;AAAA,MAAAH,SAAAD,IAAA;AAAC,KAAA;AAAA,MAAAI;AAAAA,MAAA,GAAAD;AAAAA,IAAAA,IAAAH;AAAwCC,WAAAD;AAAAC,WAAAE;AAAAF,WAAAG;AAAAA,EAAA,OAAA;AAAAD,wBAAAF,EAAA,CAAA;AAAAG,qBAAAH,EAAA,CAAA;AAAA,EAAA;AAChG,QAAAI,QAAcC,gBAAAA;AAAkB,MAAAC;AAAA,MAAAN,SAAAI,OAAA;AACYE,SAAAC,eAAeH,KAAK;AAACJ,WAAAI;AAAAJ,WAAAM;AAAAA,EAAA,OAAA;AAAAA,SAAAN,EAAA,CAAA;AAAA,EAAA;AAAjE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CJ;AAAsB,MAAAK;AAAA,MAAAC;AAAA,MAAAZ,SAAAE,kBAAAW,YAAAb,SAAAI,OAAA;AAKhDO,SAAAA,CAAAG,GAAAC,UAAc,CAACb,kBAAiBW,YAAaT,MAAKY,aAAcD,KAAK;AAChEH,SAAAA,CAAAK,KAAAC,SAAAC,WAAsBA,WAAW,WAAWjB,kBAAiBW,YAAaT,MAAKY,aAAcD,OAAK;AAACf,MAAA,CAAA,IAAAE,kBAAAW;AAAAb,WAAAI;AAAAJ,WAAAW;AAAAX,WAAAY;AAAAA,EAAA,OAAA;AAAAD,SAAAX,EAAA,CAAA;AAAAY,SAAAZ,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAoB;AAAA,MAAApB,SAAAI,MAAAiB,QAAArB,UAAAS,YAAAT,EAAA,EAAA,MAAAU,cAAAV,EAAA,EAAA,MAAAQ,aAAAR,UAAAG,gBAAA;AAIrGiB,SAAAE,CAAAA,eACT,oBAAC,WAAA,EAAS,GACFA,YACE,MAAAlB,MAAKiB,MACJ,OAAAb,aAAAC,UACK,YAAAD,aAAAE,YAAuB,GAC/BP,gBAAc;AACpBH,MAAA,CAAA,IAAAI,MAAAiB;AAAArB,YAAAS;AAAAT,YAAAU;AAAAV,YAAAQ;AAAAR,YAAAG;AAAAH,YAAAoB;AAAAA,EAAA,OAAA;AAAAA,SAAApB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAuB;AAAA,MAAAvB,EAAA,EAAA,MAAAE,qBAAAF,EAAA,EAAA,MAAAI,MAAAoB,cAAAxB,EAAA,EAAA,MAAAI,MAAAiB,QAAArB,EAAA,EAAA,MAAAI,MAAAqB,MAAAV,SAAAf,EAAA,EAAA,MAAAW,MAAAX,EAAA,EAAA,MAAAY,MAAAZ,UAAAoB,IAAA;AAdVG,6BAAC,cAAA,EACU,OAAAnB,MAAKqB,MAAMV,OACR,UAAAJ,IACK,eAAAC,IACP,QAAAR,MAAKoB,YACD,cAAApB,MAAKiB,SACbnB,mBACS,aAAAkB,IAOP;AAERpB,YAAAE;AAAAF,MAAA,EAAA,IAAAI,MAAAoB;AAAAxB,MAAA,EAAA,IAAAI,MAAAiB;AAAArB,MAAA,EAAA,IAAAI,MAAAqB,MAAAV;AAAAf,YAAAW;AAAAX,YAAAY;AAAAZ,YAAAoB;AAAApB,YAAAuB;AAAAA,EAAA,OAAA;AAAAA,SAAAvB,EAAA,EAAA;AAAA,EAAA;AAAA,SAhBFuB;AAgBE;ACrBH,MAAMG,eAAsCC,CAAAA,UAAA;AAAA,QAAA3B,IAAAC,EAAA,EAAA;AAC/C,QAAAG,QAAcC,gBAAAA;AAA8C,MAAAN;AAAA,MAAAC,SAAAI,OAAA;AAChBL,SAAAQ,eAAeH,KAAK;AAACJ,WAAAI;AAAAJ,WAAAD;AAAAA,EAAA,OAAA;AAAAA,SAAAC,EAAA,CAAA;AAAA,EAAA;AAAjE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CX;AAOlB,QAAAO,KAAAF,MAAKiB;AACF,QAAAV,KAAAiB,QAAQxB,MAAKqB,MAAMV,KAAM;AAAC,MAAAH;AAAA,MAAAZ,SAAAI,OAAA;AACzBQ,SAAAiB,CAAAA,UAAWzB,MAAKY,aAAca,MAAKC,OAAOC,OAAQ;AAAC/B,WAAAI;AAAAJ,WAAAY;AAAAA,EAAA,OAAA;AAAAA,SAAAZ,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAoB;AAAA,MAAApB,SAAAI,MAAAoB,cAAAxB,EAAA,CAAA,MAAAI,MAAAiB,QAAArB,EAAA,CAAA,MAAA2B,SAAA3B,SAAAW,MAAAX,EAAA,CAAA,MAAAY,IAAA;AAHjEQ,6BAAC,UAAA,EACS,MAAAd,IACG,SAAAK,IACC,UAAAC,IACF,QAAAR,MAAKoB,YACD,cAAApB,MAAKiB,MAAK,GAClBM,OAAK;AACX3B,MAAA,CAAA,IAAAI,MAAAoB;AAAAxB,MAAA,CAAA,IAAAI,MAAAiB;AAAArB,WAAA2B;AAAA3B,WAAAW;AAAAX,WAAAY;AAAAZ,WAAAoB;AAAAA,EAAA,OAAA;AAAAA,SAAApB,EAAA,CAAA;AAAA,EAAA;AAEC,QAAAuB,KAAAI,MAAKK,SAAL;AAAiB,MAAAC;AAAA,MAAAjC,EAAA,EAAA,MAAAoB,MAAApB,UAAAuB,IAAA;AAX5BU,SAAA,oBAAC,kBAAA,EAEO,SAAAb,IASG,OAAAG,IAAiB;AAC1BvB,YAAAoB;AAAApB,YAAAuB;AAAAvB,YAAAiC;AAAAA,EAAA,OAAA;AAAAA,SAAAjC,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAkC;AAAA,MAAAlC,EAAA,EAAA,MAAAS,YAAAT,UAAAU,cAAAV,EAAA,EAAA,MAAAQ,WAAA;AACD0B,SAAA1B,aAAAC,YAAyB,oBAAC,gBAAA,EAAsBA,uCAAsB;AAAiBT,YAAAS;AAAAT,YAAAU;AAAAV,YAAAQ;AAAAR,YAAAkC;AAAAA,EAAA,OAAA;AAAAA,SAAAlC,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAmC;AAAA,MAAAnC,EAAA,EAAA,MAAAiC,MAAAjC,UAAAkC,IAAA;AAd5FC,SAAA,qBAAC,aAAA,EAAsB,WAAA,YACnBF,UAAAA;AAAAA,MAAAA;AAAAA,MAaCC;AAAAA,IAAAA,GACL;AAAclC,YAAAiC;AAAAjC,YAAAkC;AAAAlC,YAAAmC;AAAAA,EAAA,OAAA;AAAAA,SAAAnC,EAAA,EAAA;AAAA,EAAA;AAAA,SAfdmC;AAec;AClBf,MAAMC,iBAA0CT,CAAAA,UAAA;AAAA,QAAA3B,IAAAC,EAAA,EAAA;AACnD,QAAAG,QAAcC,gBAAAA;AAA4C,MAAAN;AAAA,MAAAC,SAAAI,OAAA;AACdL,SAAAQ,eAAeH,KAAK;AAACJ,WAAAI;AAAAJ,WAAAD;AAAAA,EAAA,OAAA;AAAAA,SAAAC,EAAA,CAAA;AAAA,EAAA;AAAjE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CX;AAAsB,MAAAO;AAAA,MAAAN,SAAAI,OAAA;AAMhDE,SAAAS,CAAAA,UAAWX,MAAKY,aAAcD,KAAK;AAACf,WAAAI;AAAAJ,WAAAM;AAAAA,EAAA,OAAA;AAAAA,SAAAN,EAAA,CAAA;AAAA,EAAA;AAI/B,QAAAW,KAAAH,aAAAC;AACK,QAAAG,KAAAJ,aAAAE;AAAuB,MAAAU;AAAA,MAAApB,EAAA,CAAA,MAAAI,MAAAoB,cAAAxB,EAAA,CAAA,MAAA2B,MAAAxB,kBAAAH,EAAA,CAAA,MAAAW,MAAAX,SAAAY,IAAA;AAH5BQ,SAAA;AAAA,MAAAiB,QACCjC,MAAKoB;AAAAA,MAAWc,OACjB3B;AAAAA,MAAqBD,YAChBE;AAAAA,MAAuB,GAChCe,MAAKxB;AAAAA,IAAAA;AACXH,MAAA,CAAA,IAAAI,MAAAoB;AAAAxB,MAAA,CAAA,IAAA2B,MAAAxB;AAAAH,WAAAW;AAAAX,WAAAY;AAAAZ,WAAAoB;AAAAA,EAAA,OAAA;AAAAA,SAAApB,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAuB;AAAA,MAAAvB,SAAA2B,MAAAY,aAAAvC,UAAAoB,IAAA;AANMG,SAAA;AAAA,MAAAiB,WACIpB;AAAAA,MAKV,GACEO,MAAKY;AAAAA,IAAAA;AACXvC,MAAA,CAAA,IAAA2B,MAAAY;AAAAvC,YAAAoB;AAAApB,YAAAuB;AAAAA,EAAA,OAAA;AAAAA,SAAAvB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAiC;AAAA,MAAAjC,EAAA,EAAA,MAAAI,MAAAiB,QAAArB,EAAA,EAAA,MAAAI,MAAAqB,MAAAV,SAAAf,EAAA,EAAA,MAAA2B,SAAA3B,UAAAM,MAAAN,EAAA,EAAA,MAAAuB,IAAA;AAZLU,6BAAC,YAAA,EACS,MAAA7B,MAAKiB,MACJ,OAAAjB,MAAKqB,MAAMV,OACR,UAAAT,IACC,WAAAiB,IASC,cAAAnB,MAAKiB,MAAK,GAClBM,OAAK;AACX3B,MAAA,EAAA,IAAAI,MAAAiB;AAAArB,MAAA,EAAA,IAAAI,MAAAqB,MAAAV;AAAAf,YAAA2B;AAAA3B,YAAAM;AAAAN,YAAAuB;AAAAvB,YAAAiC;AAAAA,EAAA,OAAA;AAAAA,SAAAjC,EAAA,EAAA;AAAA,EAAA;AAAA,SAfFiC;AAeE;ACpBH,MAAMQ,sBAAoDd,CAAAA,UAAA;AAAA,QAAA3B,IAAAC,EAAA,EAAA;AAC7D,QAAAG,QAAcC,gBAAAA;AAA4D,MAAAN;AAAA,MAAAC,SAAAI,OAAA;AAC9BL,SAAAQ,eAAeH,KAAK;AAACJ,WAAAI;AAAAJ,WAAAD;AAAAA,EAAA,OAAA;AAAAA,SAAAC,EAAA,CAAA;AAAA,EAAA;AAAjE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CX;AAAsB,MAAAO;AAAA,MAAAN,SAAAI,OAAA;AAMhDE,SAAAS,CAAAA,UAAWX,MAAKY,aAAcD,KAAK;AAACf,WAAAI;AAAAJ,WAAAM;AAAAA,EAAA,OAAA;AAAAA,SAAAN,EAAA,CAAA;AAAA,EAAA;AAI/B,QAAAW,KAAAH,aAAAC;AACK,QAAAG,KAAAJ,aAAAE;AAAuB,MAAAU;AAAA,MAAApB,EAAA,CAAA,MAAAI,MAAAoB,cAAAxB,EAAA,CAAA,MAAA2B,MAAAxB,kBAAAH,EAAA,CAAA,MAAAW,MAAAX,SAAAY,IAAA;AAH5BQ,SAAA;AAAA,MAAAiB,QACCjC,MAAKoB;AAAAA,MAAWc,OACjB3B;AAAAA,MAAqBD,YAChBE;AAAAA,MAAuB,GAChCe,MAAKxB;AAAAA,IAAAA;AACXH,MAAA,CAAA,IAAAI,MAAAoB;AAAAxB,MAAA,CAAA,IAAA2B,MAAAxB;AAAAH,WAAAW;AAAAX,WAAAY;AAAAZ,WAAAoB;AAAAA,EAAA,OAAA;AAAAA,SAAApB,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAuB;AAAA,MAAAvB,SAAA2B,MAAAY,aAAAvC,UAAAoB,IAAA;AANMG,SAAA;AAAA,MAAAiB,WACIpB;AAAAA,MAKV,GACEO,MAAKY;AAAAA,IAAAA;AACXvC,MAAA,CAAA,IAAA2B,MAAAY;AAAAvC,YAAAoB;AAAApB,YAAAuB;AAAAA,EAAA,OAAA;AAAAA,SAAAvB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAiC;AAAA,MAAAjC,EAAA,EAAA,MAAAI,MAAAiB,QAAArB,EAAA,EAAA,MAAAI,MAAAqB,MAAAV,SAAAf,EAAA,EAAA,MAAA2B,SAAA3B,UAAAM,MAAAN,EAAA,EAAA,MAAAuB,IAAA;AAZLU,6BAAC,iBAAA,EACS,MAAA7B,MAAKiB,MACJ,OAAAjB,MAAKqB,MAAMV,OACR,UAAAT,IACC,WAAAiB,IASC,cAAAnB,MAAKiB,MAAK,GAClBM,OAAK;AACX3B,MAAA,EAAA,IAAAI,MAAAiB;AAAArB,MAAA,EAAA,IAAAI,MAAAqB,MAAAV;AAAAf,YAAA2B;AAAA3B,YAAAM;AAAAN,YAAAuB;AAAAvB,YAAAiC;AAAAA,EAAA,OAAA;AAAAA,SAAAjC,EAAA,EAAA;AAAA,EAAA;AAAA,SAfFiC;AAeE;ACpBH,MAAMS,iBAA0Cf,CAAAA,UAAA;AAAA,QAAA3B,IAAAC,EAAA,EAAA;AACnD,QAAAG,QAAcC,gBAAAA;AAA4C,MAAAN;AAAA,MAAAC,SAAAI,OAAA;AACdL,SAAAQ,eAAeH,KAAK;AAACJ,WAAAI;AAAAJ,WAAAD;AAAAA,EAAA,OAAA;AAAAA,SAAAC,EAAA,CAAA;AAAA,EAAA;AAAjE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CX;AAAsB,MAAAO;AAAA,MAAAN,SAAAI,OAAA;AAMhDE,SAAAS,CAAAA,UAAWX,MAAKY,aAAcD,KAAK;AAACf,WAAAI;AAAAJ,WAAAM;AAAAA,EAAA,OAAA;AAAAA,SAAAN,EAAA,CAAA;AAAA,EAAA;AAI/B,QAAAW,KAAAH,aAAAC;AACK,QAAAG,KAAAJ,aAAAE;AAAuB,MAAAU;AAAA,MAAApB,EAAA,CAAA,MAAAI,MAAAoB,cAAAxB,EAAA,CAAA,MAAA2B,MAAAxB,kBAAAH,EAAA,CAAA,MAAAW,MAAAX,SAAAY,IAAA;AAH5BQ,SAAA;AAAA,MAAAiB,QACCjC,MAAKoB;AAAAA,MAAWc,OACjB3B;AAAAA,MAAqBD,YAChBE;AAAAA,MAAuB,GAChCe,MAAKxB;AAAAA,IAAAA;AACXH,MAAA,CAAA,IAAAI,MAAAoB;AAAAxB,MAAA,CAAA,IAAA2B,MAAAxB;AAAAH,WAAAW;AAAAX,WAAAY;AAAAZ,WAAAoB;AAAAA,EAAA,OAAA;AAAAA,SAAApB,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAuB;AAAA,MAAAvB,SAAA2B,MAAAY,aAAAvC,UAAAoB,IAAA;AANMG,SAAA;AAAA,MAAAiB,WACIpB;AAAAA,MAKV,GACEO,MAAKY;AAAAA,IAAAA;AACXvC,MAAA,CAAA,IAAA2B,MAAAY;AAAAvC,YAAAoB;AAAApB,YAAAuB;AAAAA,EAAA,OAAA;AAAAA,SAAAvB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAiC;AAAA,MAAAjC,EAAA,EAAA,MAAAI,MAAAiB,QAAArB,EAAA,EAAA,MAAAI,MAAAqB,MAAAV,SAAAf,EAAA,EAAA,MAAA2B,SAAA3B,UAAAM,MAAAN,EAAA,EAAA,MAAAuB,IAAA;AAZLU,6BAAC,YAAA,EACS,MAAA7B,MAAKiB,MACJ,OAAAjB,MAAKqB,MAAMV,OACR,UAAAT,IACC,WAAAiB,IASC,cAAAnB,MAAKiB,MAAK,GAClBM,OAAK;AACX3B,MAAA,EAAA,IAAAI,MAAAiB;AAAArB,MAAA,EAAA,IAAAI,MAAAqB,MAAAV;AAAAf,YAAA2B;AAAA3B,YAAAM;AAAAN,YAAAuB;AAAAvB,YAAAiC;AAAAA,EAAA,OAAA;AAAAA,SAAAjC,EAAA,EAAA;AAAA,EAAA;AAAA,SAfFiC;AAeE;ACpBH,MAAMU,sBAAoDhB,CAAAA,UAAA;AAAA,QAAA3B,IAAAC,EAAA,EAAA;AAC7D,QAAAG,QAAcC,gBAAAA;AAA4D,MAAAN;AAAA,MAAAC,SAAAI,OAAA;AAC9BL,SAAAQ,eAAeH,KAAK;AAACJ,WAAAI;AAAAJ,WAAAD;AAAAA,EAAA,OAAA;AAAAA,SAAAC,EAAA,CAAA;AAAA,EAAA;AAAjE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CX;AAAsB,MAAAO;AAAA,MAAAN,SAAAI,OAAA;AAMhDE,SAAAS,CAAAA,UAAWX,MAAKY,aAAcD,KAAK;AAACf,WAAAI;AAAAJ,WAAAM;AAAAA,EAAA,OAAA;AAAAA,SAAAN,EAAA,CAAA;AAAA,EAAA;AAI/B,QAAAW,KAAAH,aAAAC;AACK,QAAAG,KAAAJ,aAAAE;AAAuB,MAAAU;AAAA,MAAApB,EAAA,CAAA,MAAAI,MAAAoB,cAAAxB,EAAA,CAAA,MAAA2B,MAAAxB,kBAAAH,EAAA,CAAA,MAAAW,MAAAX,SAAAY,IAAA;AAH5BQ,SAAA;AAAA,MAAAiB,QACCjC,MAAKoB;AAAAA,MAAWc,OACjB3B;AAAAA,MAAqBD,YAChBE;AAAAA,MAAuB,GAChCe,MAAKxB;AAAAA,IAAAA;AACXH,MAAA,CAAA,IAAAI,MAAAoB;AAAAxB,MAAA,CAAA,IAAA2B,MAAAxB;AAAAH,WAAAW;AAAAX,WAAAY;AAAAZ,WAAAoB;AAAAA,EAAA,OAAA;AAAAA,SAAApB,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAuB;AAAA,MAAAvB,SAAA2B,MAAAY,aAAAvC,UAAAoB,IAAA;AANMG,SAAA;AAAA,MAAAiB,WACIpB;AAAAA,MAKV,GACEO,MAAKY;AAAAA,IAAAA;AACXvC,MAAA,CAAA,IAAA2B,MAAAY;AAAAvC,YAAAoB;AAAApB,YAAAuB;AAAAA,EAAA,OAAA;AAAAA,SAAAvB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAiC;AAAA,MAAAjC,EAAA,EAAA,MAAAI,MAAAiB,QAAArB,EAAA,EAAA,MAAAI,MAAAqB,MAAAV,SAAAf,EAAA,EAAA,MAAA2B,SAAA3B,UAAAM,MAAAN,EAAA,EAAA,MAAAuB,IAAA;AAZLU,6BAAC,iBAAA,EACS,MAAA7B,MAAKiB,MACJ,OAAAjB,MAAKqB,MAAMV,OACR,UAAAT,IACC,WAAAiB,IASC,cAAAnB,MAAKiB,MAAK,GAClBM,OAAK;AACX3B,MAAA,EAAA,IAAAI,MAAAiB;AAAArB,MAAA,EAAA,IAAAI,MAAAqB,MAAAV;AAAAf,YAAA2B;AAAA3B,YAAAM;AAAAN,YAAAuB;AAAAvB,YAAAiC;AAAAA,EAAA,OAAA;AAAAA,SAAAjC,EAAA,EAAA;AAAA,EAAA;AAAA,SAfFiC;AAeE;ACpBH,MAAMW,qBAAkDjB,CAAAA,UAAA;AAAA,QAAA3B,IAAAC,EAAA,EAAA;AAC3D,QAAAG,QAAcC,gBAAAA;AAA4C,MAAAN;AAAA,MAAAC,SAAAI,OAAA;AACdL,SAAAQ,eAAeH,KAAK;AAACJ,WAAAI;AAAAJ,WAAAD;AAAAA,EAAA,OAAA;AAAAA,SAAAC,EAAA,CAAA;AAAA,EAAA;AAAjE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CX;AAAsB,MAAAO;AAAA,MAAAN,SAAAI,OAAA;AAMhDE,SAAAS,CAAAA,UAAWX,MAAKY,aAAcD,KAAK;AAACf,WAAAI;AAAAJ,WAAAM;AAAAA,EAAA,OAAA;AAAAA,SAAAN,EAAA,CAAA;AAAA,EAAA;AAI/B,QAAAW,KAAAH,aAAAC;AACK,QAAAG,KAAAJ,aAAAE;AAAuB,MAAAU;AAAA,MAAApB,EAAA,CAAA,MAAAI,MAAAoB,cAAAxB,EAAA,CAAA,MAAA2B,MAAAxB,kBAAAH,EAAA,CAAA,MAAAW,MAAAX,SAAAY,IAAA;AAH5BQ,SAAA;AAAA,MAAAiB,QACCjC,MAAKoB;AAAAA,MAAWc,OACjB3B;AAAAA,MAAqBD,YAChBE;AAAAA,MAAuB,GAChCe,MAAKxB;AAAAA,IAAAA;AACXH,MAAA,CAAA,IAAAI,MAAAoB;AAAAxB,MAAA,CAAA,IAAA2B,MAAAxB;AAAAH,WAAAW;AAAAX,WAAAY;AAAAZ,WAAAoB;AAAAA,EAAA,OAAA;AAAAA,SAAApB,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAuB;AAAA,MAAAvB,SAAA2B,MAAAY,aAAAvC,UAAAoB,IAAA;AANMG,SAAA;AAAA,MAAAiB,WACIpB;AAAAA,MAKV,GACEO,MAAKY;AAAAA,IAAAA;AACXvC,MAAA,CAAA,IAAA2B,MAAAY;AAAAvC,YAAAoB;AAAApB,YAAAuB;AAAAA,EAAA,OAAA;AAAAA,SAAAvB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAiC;AAAA,MAAAjC,EAAA,EAAA,MAAAI,MAAAiB,QAAArB,EAAA,EAAA,MAAAI,MAAAqB,MAAAV,SAAAf,EAAA,EAAA,MAAA2B,SAAA3B,UAAAM,MAAAN,EAAA,EAAA,MAAAuB,IAAA;AAZLU,6BAAC,gBAAA,EACS,MAAA7B,MAAKiB,MACJ,OAAAjB,MAAKqB,MAAMV,OACR,UAAAT,IACC,WAAAiB,IASC,cAAAnB,MAAKiB,MAAK,GAClBM,OAAK;AACX3B,MAAA,EAAA,IAAAI,MAAAiB;AAAArB,MAAA,EAAA,IAAAI,MAAAqB,MAAAV;AAAAf,YAAA2B;AAAA3B,YAAAM;AAAAN,YAAAuB;AAAAvB,YAAAiC;AAAAA,EAAA,OAAA;AAAAA,SAAAjC,EAAA,EAAA;AAAA,EAAA;AAAA,SAfFiC;AAeE;ACpBH,MAAMY,0BAA4DlB,CAAAA,UAAA;AAAA,QAAA3B,IAAAC,EAAA,EAAA;AACrE,QAAAG,QAAcC,gBAAAA;AAA4D,MAAAN;AAAA,MAAAC,SAAAI,OAAA;AAC9BL,SAAAQ,eAAeH,KAAK;AAACJ,WAAAI;AAAAJ,WAAAD;AAAAA,EAAA,OAAA;AAAAA,SAAAC,EAAA,CAAA;AAAA,EAAA;AAAjE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CX;AAAsB,MAAAO;AAAA,MAAAN,SAAAI,OAAA;AAMhDE,SAAAS,CAAAA,UAAWX,MAAKY,aAAcD,KAAK;AAACf,WAAAI;AAAAJ,WAAAM;AAAAA,EAAA,OAAA;AAAAA,SAAAN,EAAA,CAAA;AAAA,EAAA;AAI/B,QAAAW,KAAAH,aAAAC;AACK,QAAAG,KAAAJ,aAAAE;AAAuB,MAAAU;AAAA,MAAApB,EAAA,CAAA,MAAAI,MAAAoB,cAAAxB,EAAA,CAAA,MAAA2B,MAAAxB,kBAAAH,EAAA,CAAA,MAAAW,MAAAX,SAAAY,IAAA;AAH5BQ,SAAA;AAAA,MAAAiB,QACCjC,MAAKoB;AAAAA,MAAWc,OACjB3B;AAAAA,MAAqBD,YAChBE;AAAAA,MAAuB,GAChCe,MAAKxB;AAAAA,IAAAA;AACXH,MAAA,CAAA,IAAAI,MAAAoB;AAAAxB,MAAA,CAAA,IAAA2B,MAAAxB;AAAAH,WAAAW;AAAAX,WAAAY;AAAAZ,WAAAoB;AAAAA,EAAA,OAAA;AAAAA,SAAApB,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAuB;AAAA,MAAAvB,SAAA2B,MAAAY,aAAAvC,UAAAoB,IAAA;AANMG,SAAA;AAAA,MAAAiB,WACIpB;AAAAA,MAKV,GACEO,MAAKY;AAAAA,IAAAA;AACXvC,MAAA,CAAA,IAAA2B,MAAAY;AAAAvC,YAAAoB;AAAApB,YAAAuB;AAAAA,EAAA,OAAA;AAAAA,SAAAvB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAiC;AAAA,MAAAjC,EAAA,EAAA,MAAAI,MAAAiB,QAAArB,EAAA,EAAA,MAAAI,MAAAqB,MAAAV,SAAAf,EAAA,EAAA,MAAA2B,SAAA3B,UAAAM,MAAAN,EAAA,EAAA,MAAAuB,IAAA;AAZLU,6BAAC,qBAAA,EACS,MAAA7B,MAAKiB,MACJ,OAAAjB,MAAKqB,MAAMV,OACR,UAAAT,IACC,WAAAiB,IASC,cAAAnB,MAAKiB,MAAK,GAClBM,OAAK;AACX3B,MAAA,EAAA,IAAAI,MAAAiB;AAAArB,MAAA,EAAA,IAAAI,MAAAqB,MAAAV;AAAAf,YAAA2B;AAAA3B,YAAAM;AAAAN,YAAAuB;AAAAvB,YAAAiC;AAAAA,EAAA,OAAA;AAAAA,SAAAjC,EAAA,EAAA;AAAA,EAAA;AAAA,SAfFiC;AAeE;ACnBH,MAAMa,kBAA4C/C,CAAAA,OAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAA8C;AAAA,MAAApB;AAAA,MAAA3B,SAAAD,IAAA;AAAC,KAAA;AAAA,MAAAgD;AAAAA,MAAA,GAAApB;AAAAA,IAAAA,IAAA5B;AAAqBC,WAAAD;AAAAC,WAAA+C;AAAA/C,WAAA2B;AAAAA,EAAA,OAAA;AAAAoB,cAAA/C,EAAA,CAAA;AAAA2B,YAAA3B,EAAA,CAAA;AAAA,EAAA;AAC9E,QAAAI,QAAcC,gBAAAA;AAA6C,MAAAC;AAAA,MAAAN,SAAAI,OAAA;AACfE,SAAAC,eAAeH,KAAK;AAACJ,WAAAI;AAAAJ,WAAAM;AAAAA,EAAA,OAAA;AAAAA,SAAAN,EAAA,CAAA;AAAA,EAAA;AAAjE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CJ;AAMnC,QAAAK,KAAAP,MAAKqB,MAAMV,SAAX;AAAuB,MAAAH;AAAA,MAAAZ,SAAAI,OAAA;AACfQ,SAAAQ,CAAAA,QAAA;AAAC,YAAA;AAAA,QAAA4B;AAAAA,MAAAA,IAAA5B;AAAc,aAAKhB,MAAKY,aAAcgC,UAAU;AAAA,IAAC;AAAAhD,WAAAI;AAAAJ,WAAAY;AAAAA,EAAA,OAAA;AAAAA,SAAAZ,EAAA,CAAA;AAAA,EAAA;AAE1D,QAAAoB,KAAAZ,aAAAC;AACK,QAAAc,KAAAf,aAAAE;AAAuB,MAAAuB;AAAA,MAAAjC,EAAA,CAAA,MAAAI,MAAAoB,cAAAxB,EAAA,CAAA,MAAAI,MAAAiB,QAAArB,EAAA,CAAA,MAAA+C,WAAA/C,EAAA,EAAA,MAAA2B,SAAA3B,EAAA,EAAA,MAAAW,MAAAX,EAAA,EAAA,MAAAY,MAAAZ,EAAA,EAAA,MAAAoB,MAAApB,UAAAuB,IAAA;AAPpCU,SAAA,oBAAC,eAAA,EACagB,aAAAA,WACP,MAAA7C,MAAKiB,MACJ,OAAAV,IACQ,eAAAC,IACP,QAAAR,MAAKoB,YACN,OAAAJ,IACK,YAAAG,IACA,cAAAnB,MAAKiB,MAAK,GAClBM,OAAK,GACLoB,QAAAA,CAAO;AACV/C,MAAA,CAAA,IAAAI,MAAAoB;AAAAxB,MAAA,CAAA,IAAAI,MAAAiB;AAAArB,WAAA+C;AAAA/C,YAAA2B;AAAA3B,YAAAW;AAAAX,YAAAY;AAAAZ,YAAAoB;AAAApB,YAAAuB;AAAAvB,YAAAiC;AAAAA,EAAA,OAAA;AAAAA,SAAAjC,EAAA,EAAA;AAAA,EAAA;AAAA,SAXFiC;AAWE;ACbG,MAAMiB,iBAA0CnD,CAAAA,OAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAA+B;AAAA,MAAAe;AAAA,MAAApB;AAAA,MAAA3B,SAAAD,IAAA;AAAC,KAAA;AAAA,MAAAiC;AAAAA,MAAAe;AAAAA,MAAA,GAAApB;AAAAA,IAAAA,IAAA5B;AAA4BC,WAAAD;AAAAC,WAAAgC;AAAAhC,WAAA+C;AAAA/C,WAAA2B;AAAAA,EAAA,OAAA;AAAAK,YAAAhC,EAAA,CAAA;AAAA+C,cAAA/C,EAAA,CAAA;AAAA2B,YAAA3B,EAAA,CAAA;AAAA,EAAA;AAChF,QAAAI,QAAcC,gBAAAA;AAAsD,MAAAC;AAAA,MAAAN,SAAAI,OAAA;AACxBE,SAAAC,eAAeH,KAAK;AAACJ,WAAAI;AAAAJ,WAAAM;AAAAA,EAAA,OAAA;AAAAA,SAAAN,EAAA,CAAA;AAAA,EAAA;AAAjE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CJ;AAAsB,MAAAK;AAAA,MAAAX,SAAAgC,OAAA;AAIzDrB,SAAAqB,SAAS,oBAAC,WAAA,EAAoB,WAAA,UAAUA,UAAAA,OAAM;AAAYhC,WAAAgC;AAAAhC,WAAAW;AAAAA,EAAA,OAAA;AAAAA,SAAAX,EAAA,CAAA;AAAA,EAAA;AAEjD,QAAAY,KAAAR,MAAKiB;AACJ,QAAAD,KAAAhB,MAAKqB,MAAMV,SAAX;AAAuB,MAAAQ;AAAA,MAAAvB,SAAAI,OAAA;AACpBmB,SAAAM,CAAAA,UAAWzB,MAAKY,aAAca,MAAKC,OAAOf,KAAM;AAACf,WAAAI;AAAAJ,WAAAuB;AAAAA,EAAA,OAAA;AAAAA,SAAAvB,EAAA,CAAA;AAAA,EAAA;AACnD,QAAAiC,KAAA7B,MAAKoB;AACD,QAAAU,KAAA9B,MAAKiB;AAAK,MAAAc;AAAA,MAAAnC,UAAA+C,SAAA;AAGrBZ,SAAAY,QAAOI,IAAKC,OAOZ;AAACpD,YAAA+C;AAAA/C,YAAAmC;AAAAA,EAAA,OAAA;AAAAA,SAAAnC,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAqD;AAAA,MAAArD,EAAA,EAAA,MAAAI,MAAAoB,cAAAxB,EAAA,EAAA,MAAAI,MAAAiB,QAAArB,UAAA2B,SAAA3B,EAAA,EAAA,MAAAoB,MAAApB,EAAA,EAAA,MAAAuB,MAAAvB,EAAA,EAAA,MAAAmC,IAAA;AAfNkB,6BAAC,YAAA,EACS,MAAAzC,IACC,OAAAQ,IACG,UAAAG,IACF,QAAAU,IACI,cAAAC,IAAU,GAClBP,OAEHQ,UAAAA,IAQL;AAAanC,MAAA,EAAA,IAAAI,MAAAoB;AAAAxB,MAAA,EAAA,IAAAI,MAAAiB;AAAArB,YAAA2B;AAAA3B,YAAAoB;AAAApB,YAAAuB;AAAAvB,YAAAmC;AAAAnC,YAAAqD;AAAAA,EAAA,OAAA;AAAAA,SAAArD,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAsD;AAAA,MAAAtD,EAAA,EAAA,MAAAS,YAAAT,UAAAU,cAAAV,EAAA,EAAA,MAAAQ,WAAA;AACZ8C,UAAA9C,aAAAC,YAAyB,oBAAC,gBAAA,EAAsBA,uCAAsB;AAAiBT,YAAAS;AAAAT,YAAAU;AAAAV,YAAAQ;AAAAR,YAAAsD;AAAAA,EAAA,OAAA;AAAAA,UAAAtD,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAuD;AAAA,MAAAvD,EAAA,EAAA,MAAAsD,OAAAtD,UAAAW,MAAAX,EAAA,EAAA,MAAAqD,IAAA;AAnB5FE,+BAAC,aAAA,EAAsB,WAAA,YAClB5C,UAAAA;AAAAA,MAAAA;AAAAA,MACD0C;AAAAA,MAiBCC;AAAAA,IAAAA,GACL;AAActD,YAAAsD;AAAAtD,YAAAW;AAAAX,YAAAqD;AAAArD,YAAAuD;AAAAA,EAAA,OAAA;AAAAA,UAAAvD,EAAA,EAAA;AAAA,EAAA;AAAA,SApBduD;AAoBc;AAzBiC,SAAAH,QAAAI,QAAA;AAAA,SAgBnC,oBAAC,kBAAA,EAEU,OAAAA,OAAMzC,OACJ,SAAA,oBAAC,OAAA,CAAA,CAAK,GACR,OAAAyC,OAAMxB,MAAAA,GAHRwB,OAAMzC,KAGQ;AACrB;AC3Bf,MAAM0C,aAAkC1D,CAAAA,OAAA;AAAA,QAAAC,IAAAC,EAAA,EAAA;AAAA,MAAA+B;AAAA,MAAAL;AAAA,MAAA3B,SAAAD,IAAA;AAAC,KAAA;AAAA,MAAAiC;AAAAA,MAAA,GAAAL;AAAAA,IAAAA,IAAA5B;AAAmBC,WAAAD;AAAAC,WAAAgC;AAAAhC,WAAA2B;AAAAA,EAAA,OAAA;AAAAK,YAAAhC,EAAA,CAAA;AAAA2B,YAAA3B,EAAA,CAAA;AAAA,EAAA;AAC/D,QAAAI,QAAcC,gBAAAA;AAA6C,MAAAC;AAAA,MAAAN,SAAAI,OAAA;AACfE,SAAAC,eAAeH,KAAK;AAACJ,WAAAI;AAAAJ,WAAAM;AAAAA,EAAA,OAAA;AAAAA,SAAAN,EAAA,CAAA;AAAA,EAAA;AAAjE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CJ;AAAsB,MAAAK;AAAA,MAAAX,SAAAgC,OAAA;AAIzDrB,SAAAqB,SAAS,oBAAC,WAAA,EAAWA,UAAAA,OAAM;AAAYhC,WAAAgC;AAAAhC,WAAAW;AAAAA,EAAA,OAAA;AAAAA,SAAAX,EAAA,CAAA;AAAA,EAAA;AAG7B,QAAAY,KAAAR,MAAKqB,MAAMV,SAAX;AAAsB,MAAAK;AAAA,MAAApB,SAAAI,OAAA;AACnBgB,SAAAA,CAAAN,GAAAC,UAAcX,MAAKY,aAAc0C,MAAKC,QAAS5C,KAAwB,IAAfA,MAAK,CAAA,IAA5BA,KAAuC;AAACf,WAAAI;AAAAJ,WAAAoB;AAAAA,EAAA,OAAA;AAAAA,SAAApB,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAuB;AAAA,MAAAvB,SAAAI,MAAAoB,cAAAxB,EAAA,EAAA,MAAAI,MAAAiB,QAAArB,EAAA,EAAA,MAAA2B,SAAA3B,UAAAY,MAAAZ,EAAA,EAAA,MAAAoB,IAAA;AAHvFG,6BAAC,QAAA,EACS,MAAAnB,MAAKiB,MACJ,OAAAT,IACG,UAAAQ,IACF,QAAAhB,MAAKoB,YACD,cAAApB,MAAKiB,MAAK,GAClBM,OAAK;AACX3B,MAAA,CAAA,IAAAI,MAAAoB;AAAAxB,MAAA,EAAA,IAAAI,MAAAiB;AAAArB,YAAA2B;AAAA3B,YAAAY;AAAAZ,YAAAoB;AAAApB,YAAAuB;AAAAA,EAAA,OAAA;AAAAA,SAAAvB,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAiC;AAAA,MAAAjC,EAAA,EAAA,MAAAS,YAAAT,UAAAU,cAAAV,EAAA,EAAA,MAAAQ,WAAA;AACDyB,SAAAzB,aAAAC,YAAyB,oBAAC,gBAAA,EAAsBA,uCAAsB;AAAiBT,YAAAS;AAAAT,YAAAU;AAAAV,YAAAQ;AAAAR,YAAAiC;AAAAA,EAAA,OAAA;AAAAA,SAAAjC,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAkC;AAAA,MAAAlC,EAAA,EAAA,MAAAW,MAAAX,UAAAuB,MAAAvB,EAAA,EAAA,MAAAiC,IAAA;AAV5FC,8BAAC,aAAA,EAAsB,WAAA,YAClBvB,UAAAA;AAAAA,MAAAA;AAAAA,MACDY;AAAAA,MAQCU;AAAAA,IAAAA,GACL;AAAcjC,YAAAW;AAAAX,YAAAuB;AAAAvB,YAAAiC;AAAAjC,YAAAkC;AAAAA,EAAA,OAAA;AAAAA,SAAAlC,EAAA,EAAA;AAAA,EAAA;AAAA,SAXdkC;AAWc;ACpBf,MAAM0B,mBAA8CjC,CAAAA,UAAA;AAAA,QAAA3B,IAAAC,EAAA,CAAA;AACvD,QAAA4D,OAAaC,eAAAA;AAAiB,MAAA/D;AAAA,MAAAC,SAAA6D,MAAA;AAEV9D,SAAA8B,CAAAA,UAAA;AAChBA,YAAKkC,eAAAA;AACLlC,YAAKmC,gBAAAA;AACLH,WAAII,aAAAA;AAAAA,IAAe;AACtBjE,WAAA6D;AAAA7D,WAAAD;AAAAA,EAAA,OAAA;AAAAA,SAAAC,EAAA,CAAA;AAAA,EAAA;AAJD,QAAAkE,cAAoBnE;AAIlB,MAAAO;AAAA,MAAAN,EAAA,CAAA,MAAAkE,eAAAlE,SAAA2B,OAAA;AAIOrB,SAAAK,CAAAA,QAAA;AAAC,YAAA,CAAAwD,WAAAC,YAAA,IAAAzD;AAAyB,aACvB,oBAAC,QAAA,EACYyD,SAAAA,cACC,UAAA,CAACD,WACFD,SAAAA,aACJ,MAAA,UACM,cAAA,UAAQ,GACfvC,OAAK;AAAA,IACX;AACL3B,WAAAkE;AAAAlE,WAAA2B;AAAA3B,WAAAM;AAAAA,EAAA,OAAA;AAAAA,SAAAN,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAW;AAAA,MAAAX,SAAA6D,KAAAQ,aAAArE,SAAAM,IAAA;AAVLK,6BAAA,KAAA,WAAA,EAA0B,UAAAyC,OACrB9C,UAAAA,IAUL;AAAiBN,MAAA,CAAA,IAAA6D,KAAAQ;AAAArE,WAAAM;AAAAN,WAAAW;AAAAA,EAAA,OAAA;AAAAA,SAAAX,EAAA,CAAA;AAAA,EAAA;AAAA,SAXjBW;AAWiB;AArBkC,SAAAyC,MAAA3B,OAAA;AAAA,SAUd,CAACA,MAAK0C,WAAY1C,MAAK2C,YAAa;AAAC;ACN3E,MAAME,aAAkC3C,CAAAA,UAAA;AAAA,QAAA3B,IAAAC,EAAA,EAAA;AAC3C,QAAAG,QAAcC,gBAAAA;AAA8C,MAAAN;AAAA,MAAAC,SAAAI,OAAA;AAChBL,SAAAQ,eAAeH,KAAK;AAACJ,WAAAI;AAAAJ,WAAAD;AAAAA,EAAA,OAAA;AAAAA,SAAAC,EAAA,CAAA;AAAA,EAAA;AAAjE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CX;AAOlB,QAAAO,KAAAF,MAAKiB;AACF,QAAAV,KAAAiB,QAAQxB,MAAKqB,MAAMV,KAAM;AAAC,MAAAH;AAAA,MAAAZ,SAAAI,OAAA;AACzBQ,SAAAiB,CAAAA,UAAWzB,MAAKY,aAAca,MAAKC,OAAOC,OAAQ;AAAC/B,WAAAI;AAAAJ,WAAAY;AAAAA,EAAA,OAAA;AAAAA,SAAAZ,EAAA,CAAA;AAAA,EAAA;AAAA,MAAAoB;AAAA,MAAApB,SAAAI,MAAAoB,cAAAxB,EAAA,CAAA,MAAAI,MAAAiB,QAAArB,EAAA,CAAA,MAAA2B,SAAA3B,SAAAW,MAAAX,EAAA,CAAA,MAAAY,IAAA;AAHjEQ,6BAAC,QAAA,EACS,MAAAd,IACG,SAAAK,IACC,UAAAC,IACF,QAAAR,MAAKoB,YACD,cAAApB,MAAKiB,MAAK,GAClBM,OAAK;AACX3B,MAAA,CAAA,IAAAI,MAAAoB;AAAAxB,MAAA,CAAA,IAAAI,MAAAiB;AAAArB,WAAA2B;AAAA3B,WAAAW;AAAAX,WAAAY;AAAAZ,WAAAoB;AAAAA,EAAA,OAAA;AAAAA,SAAApB,EAAA,CAAA;AAAA,EAAA;AAEC,QAAAuB,KAAAI,MAAKK,SAAL;AAAiB,MAAAC;AAAA,MAAAjC,EAAA,EAAA,MAAAoB,MAAApB,UAAAuB,IAAA;AAX5BU,SAAA,oBAAC,kBAAA,EAEO,SAAAb,IASG,OAAAG,IAAiB;AAC1BvB,YAAAoB;AAAApB,YAAAuB;AAAAvB,YAAAiC;AAAAA,EAAA,OAAA;AAAAA,SAAAjC,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAkC;AAAA,MAAAlC,EAAA,EAAA,MAAAS,YAAAT,UAAAU,cAAAV,EAAA,EAAA,MAAAQ,WAAA;AACD0B,SAAA1B,aAAAC,YAAyB,oBAAC,gBAAA,EAAsBA,uCAAsB;AAAiBT,YAAAS;AAAAT,YAAAU;AAAAV,YAAAQ;AAAAR,YAAAkC;AAAAA,EAAA,OAAA;AAAAA,SAAAlC,EAAA,EAAA;AAAA,EAAA;AAAA,MAAAmC;AAAA,MAAAnC,EAAA,EAAA,MAAAiC,MAAAjC,UAAAkC,IAAA;AAd5FC,SAAA,qBAAC,aAAA,EAAsB,WAAA,YACnBF,UAAAA;AAAAA,MAAAA;AAAAA,MAaCC;AAAAA,IAAAA,GACL;AAAclC,YAAAiC;AAAAjC,YAAAkC;AAAAlC,YAAAmC;AAAAA,EAAA,OAAA;AAAAA,SAAAnC,EAAA,EAAA;AAAA,EAAA;AAAA,SAfdmC;AAec;ACpBf,MAAMoC,gBAAwC5C,CAAAA,UAAA;AAAA,QAAA3B,IAAAC,EAAA,EAAA;AACjD,QAAAG,QAAcC,gBAAAA;AAAsD,MAAAN;AAAA,MAAAC,SAAAI,OAAA;AACxBL,SAAAQ,eAAeH,KAAK;AAACJ,WAAAI;AAAAJ,WAAAD;AAAAA,EAAA,OAAA;AAAAA,SAAAC,EAAA,CAAA;AAAA,EAAA;AAAjE,QAAA;AAAA,IAAAQ;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAA4CX;AAK7B,QAAAO,KAAAF,MAAKqB,MAAMV,SAAX;AAAuB,MAAAJ;AAAA,MAAAX,SAAAI,OAAA;AACpBO,SAAAkB,CAAAA,UAASzB,MAAKY,aAAca,MAAKC,OAAOf,KAAM;AAACf,WAAAI;AAAAJ,WAAAW;AAAAA,EAAA,OAAA;AAAAA,SAAAX,EAAA,CAAA;AAAA,EAAA;AAElD,QAAAY,KAAAJ,aAAAC;AACK,QAAAW,KAAAZ,aAAAE;AAAuB,MAAAa;AAAA,MAAAvB,EAAA,CAAA,MAAAI,MAAAoB,cAAAxB,EAAA,CAAA,MAAAI,MAAAiB,QAAArB,EAAA,CAAA,MAAA2B,SAAA3B,EAAA,CAAA,MAAAM,MAAAN,EAAA,CAAA,MAAAW,MAAAX,EAAA,CAAA,MAAAY,MAAAZ,UAAAoB,IAAA;AANvCG,SAAA,oBAAC,aACS,MAAAnB,MAAKiB,MACJ,OAAAf,IACG,UAAAK,IACF,QAAAP,MAAKoB,YACN,OAAAZ,IACK,YAAAQ,IACA,cAAAhB,MAAKiB,MAAK,GAClBM,OAAK;AACX3B,MAAA,CAAA,IAAAI,MAAAoB;AAAAxB,MAAA,CAAA,IAAAI,MAAAiB;AAAArB,WAAA2B;AAAA3B,WAAAM;AAAAN,WAAAW;AAAAX,WAAAY;AAAAZ,YAAAoB;AAAApB,YAAAuB;AAAAA,EAAA,OAAA;AAAAA,SAAAvB,EAAA,EAAA;AAAA,EAAA;AAAA,SATFuB;AASE;ACTH,MAAM;AAAA,EAAEiD;AAAAA,EAAcnE;AAAAA,EAAiBoE;AAAAA,EAAaX;AAAe,IAAIY,uBAAAA;AAEvE,MAAM;AAAA,EAAEC,YAAYC;AAAAA,EAAeC,UAAUC;AAAe,IAC/DC,eAAe;AAAA,EACXC,iBAAiB;AAAA,IAAA,WACb/B;AAAAA,IAAAA,aACAgC;AAAAA,IAAAA,cACAC;AAAAA,IAAAA,UACAC;AAAAA,IAAAA,QACAC;AAAAA,IAAAA,YACAC;AAAAA,IAAAA,QACAC;AAAAA,IAAAA,YACAC;AAAAA,IAAAA,iBACAC;AAAAA,IAAAA,YACAC;AAAAA,IAAAA,iBACAC;AAAAA,IAAAA,gBACAC;AAAAA,IAAAA,qBACAC;AAAAA,EAAAA;AAAAA,EAEJC,gBAAgB;AAAA,IAAA,cACZC;AAAAA,EAAAA;AAAAA,EAEJtB;AAAAA,EACAC;AACJ,CAAC;"}
|