wcz-layout 6.7.2 → 9.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (271) hide show
  1. package/dist/Approval-Co6D1BNq.mjs +194 -0
  2. package/dist/Approval-Co6D1BNq.mjs.map +1 -0
  3. package/dist/DialogsContext-DLqA8RJ_.mjs +7 -0
  4. package/dist/DialogsContext-DLqA8RJ_.mjs.map +1 -0
  5. package/dist/Email-BzQQkbe9.mjs +20 -0
  6. package/dist/Email-BzQQkbe9.mjs.map +1 -0
  7. package/dist/FileMeta-DDqUju1Y.mjs +19 -0
  8. package/dist/FileMeta-DDqUju1Y.mjs.map +1 -0
  9. package/dist/FileMeta-ILLTOjaM.d.mts +20 -0
  10. package/dist/NotificationContext-CgwUOeW0.mjs +7 -0
  11. package/dist/NotificationContext-CgwUOeW0.mjs.map +1 -0
  12. package/dist/QueryClientParam-CzaM3akD.d.mts +11 -0
  13. package/dist/RouterListItemButton-owZVvuC_.mjs +78 -0
  14. package/dist/RouterListItemButton-owZVvuC_.mjs.map +1 -0
  15. package/dist/User-1gKoYJvW.d.mts +12 -0
  16. package/dist/auth.d.mts +25 -0
  17. package/dist/auth.mjs +88 -0
  18. package/dist/auth.mjs.map +1 -0
  19. package/dist/authMiddleware--HdlhhZO.mjs +78 -0
  20. package/dist/authMiddleware--HdlhhZO.mjs.map +1 -0
  21. package/dist/components.d.mts +107 -0
  22. package/dist/components.mjs +1500 -0
  23. package/dist/components.mjs.map +1 -0
  24. package/dist/data/client.d.mts +3217 -0
  25. package/dist/data/client.mjs +187 -0
  26. package/dist/data/client.mjs.map +1 -0
  27. package/dist/data/server.d.mts +19 -0
  28. package/dist/data/server.mjs +16 -0
  29. package/dist/data/server.mjs.map +1 -0
  30. package/dist/entra-s4ZjHq5o.mjs +101 -0
  31. package/dist/entra-s4ZjHq5o.mjs.map +1 -0
  32. package/dist/env-CoveIivr.mjs +30 -0
  33. package/dist/env-CoveIivr.mjs.map +1 -0
  34. package/dist/file-C5-a_6W6.mjs +148 -0
  35. package/dist/file-C5-a_6W6.mjs.map +1 -0
  36. package/dist/file-DM1x40eJ.mjs +179 -0
  37. package/dist/file-DM1x40eJ.mjs.map +1 -0
  38. package/dist/hooks.d.mts +226 -0
  39. package/dist/hooks.mjs +1087 -0
  40. package/dist/hooks.mjs.map +1 -0
  41. package/dist/index.d.mts +48 -0
  42. package/dist/index.mjs +1944 -0
  43. package/dist/index.mjs.map +1 -0
  44. package/dist/middleware.d.mts +46 -0
  45. package/dist/middleware.mjs +27 -0
  46. package/dist/middleware.mjs.map +1 -0
  47. package/dist/models.d.mts +598 -0
  48. package/dist/models.mjs +74 -0
  49. package/dist/models.mjs.map +1 -0
  50. package/dist/msalServer-CkNOOjjH.mjs +44 -0
  51. package/dist/msalServer-CkNOOjjH.mjs.map +1 -0
  52. package/dist/peoplesoft-DIe8H1Nu.mjs +240 -0
  53. package/dist/peoplesoft-DIe8H1Nu.mjs.map +1 -0
  54. package/dist/peoplesoft-gKd-Jh5L.d.mts +1219 -0
  55. package/dist/useDialogs-BUzVrTSP.mjs +248 -0
  56. package/dist/useDialogs-BUzVrTSP.mjs.map +1 -0
  57. package/dist/user-Cen43mlr.d.mts +19 -0
  58. package/dist/utils-2XiozDlV.mjs +156 -0
  59. package/dist/utils-2XiozDlV.mjs.map +1 -0
  60. package/dist/utils-BuWEQOuy.d.mts +65 -0
  61. package/dist/utils.d.mts +5 -0
  62. package/dist/utils.mjs +5 -0
  63. package/dist/vite.d.mts +7 -0
  64. package/dist/vite.mjs +182 -0
  65. package/dist/vite.mjs.map +1 -0
  66. package/package.json +129 -62
  67. package/skills/client-db/SKILL.md +93 -0
  68. package/skills/data-grid/SKILL.md +142 -0
  69. package/skills/db-schema/SKILL.md +71 -0
  70. package/skills/dialogs/SKILL.md +79 -0
  71. package/skills/forms/SKILL.md +82 -0
  72. package/skills/general/SKILL.md +17 -0
  73. package/skills/notifications/SKILL.md +43 -0
  74. package/skills/routing/SKILL.md +128 -0
  75. package/skills/server-functions/SKILL.md +113 -0
  76. package/skills/services/SKILL.md +30 -0
  77. package/skills/services/docs/approval.md +257 -0
  78. package/skills/services/docs/email.md +32 -0
  79. package/skills/services/docs/file.md +81 -0
  80. package/skills/services/docs/peoplesoft.md +110 -0
  81. package/skills/start/SKILL.md +46 -0
  82. package/skills/start/steps/01-git-setup.md +11 -0
  83. package/skills/start/steps/02-project-name-setup.md +14 -0
  84. package/skills/start/steps/03-apm-setup.md +208 -0
  85. package/skills/start/steps/04-database-setup.md +39 -0
  86. package/skills/start/steps/05-entra-setup.md +59 -0
  87. package/skills/start/steps/06-vault-setup.md +70 -0
  88. package/skills/start/steps/07-generate-favicon.md +10 -0
  89. package/skills/start/steps/08-commit.md +15 -0
  90. package/dist/src/components/Layout.d.ts +0 -16
  91. package/dist/src/components/Layout.js +0 -122
  92. package/dist/src/components/Layout.js.map +0 -1
  93. package/dist/src/components/dataGrid/ChipInputCell.d.ts +0 -9
  94. package/dist/src/components/dataGrid/ChipInputCell.js +0 -17
  95. package/dist/src/components/dataGrid/ChipInputCell.js.map +0 -1
  96. package/dist/src/components/dataGrid/EditableColumnHeader.d.ts +0 -2
  97. package/dist/src/components/dataGrid/EditableColumnHeader.js +0 -7
  98. package/dist/src/components/dataGrid/EditableColumnHeader.js.map +0 -1
  99. package/dist/src/components/dataGrid/GridToolbar.d.ts +0 -8
  100. package/dist/src/components/dataGrid/GridToolbar.js +0 -40
  101. package/dist/src/components/dataGrid/GridToolbar.js.map +0 -1
  102. package/dist/src/components/dataGrid/TableContainer.d.ts +0 -3
  103. package/dist/src/components/dataGrid/TableContainer.js +0 -32
  104. package/dist/src/components/dataGrid/TableContainer.js.map +0 -1
  105. package/dist/src/components/form/FormAutocomplete.d.ts +0 -7
  106. package/dist/src/components/form/FormAutocomplete.js +0 -10
  107. package/dist/src/components/form/FormAutocomplete.js.map +0 -1
  108. package/dist/src/components/form/FormCheckbox.d.ts +0 -7
  109. package/dist/src/components/form/FormCheckbox.js +0 -11
  110. package/dist/src/components/form/FormCheckbox.js.map +0 -1
  111. package/dist/src/components/form/FormDatePicker.d.ts +0 -9
  112. package/dist/src/components/form/FormDatePicker.js +0 -19
  113. package/dist/src/components/form/FormDatePicker.js.map +0 -1
  114. package/dist/src/components/form/FormDateTimePicker.d.ts +0 -9
  115. package/dist/src/components/form/FormDateTimePicker.js +0 -19
  116. package/dist/src/components/form/FormDateTimePicker.js.map +0 -1
  117. package/dist/src/components/form/FormNumberField.d.ts +0 -12
  118. package/dist/src/components/form/FormNumberField.js +0 -12
  119. package/dist/src/components/form/FormNumberField.js.map +0 -1
  120. package/dist/src/components/form/FormRadioGroup.d.ts +0 -13
  121. package/dist/src/components/form/FormRadioGroup.js +0 -11
  122. package/dist/src/components/form/FormRadioGroup.js.map +0 -1
  123. package/dist/src/components/form/FormSlider.d.ts +0 -7
  124. package/dist/src/components/form/FormSlider.js +0 -11
  125. package/dist/src/components/form/FormSlider.js.map +0 -1
  126. package/dist/src/components/form/FormSubmitButton.d.ts +0 -5
  127. package/dist/src/components/form/FormSubmitButton.js +0 -13
  128. package/dist/src/components/form/FormSubmitButton.js.map +0 -1
  129. package/dist/src/components/form/FormSwitch.d.ts +0 -7
  130. package/dist/src/components/form/FormSwitch.js +0 -11
  131. package/dist/src/components/form/FormSwitch.js.map +0 -1
  132. package/dist/src/components/form/FormTextField.d.ts +0 -7
  133. package/dist/src/components/form/FormTextField.js +0 -11
  134. package/dist/src/components/form/FormTextField.js.map +0 -1
  135. package/dist/src/components/layout/AccountMenu.d.ts +0 -9
  136. package/dist/src/components/layout/AccountMenu.js +0 -44
  137. package/dist/src/components/layout/AccountMenu.js.map +0 -1
  138. package/dist/src/components/layout/DevelopmentBanner.d.ts +0 -7
  139. package/dist/src/components/layout/DevelopmentBanner.js +0 -29
  140. package/dist/src/components/layout/DevelopmentBanner.js.map +0 -1
  141. package/dist/src/components/layout/ErrorPage.d.ts +0 -2
  142. package/dist/src/components/layout/ErrorPage.js +0 -25
  143. package/dist/src/components/layout/ErrorPage.js.map +0 -1
  144. package/dist/src/components/layout/LayoutDialog.d.ts +0 -12
  145. package/dist/src/components/layout/LayoutDialog.js +0 -12
  146. package/dist/src/components/layout/LayoutDialog.js.map +0 -1
  147. package/dist/src/components/layout/LayoutSnackbar.d.ts +0 -8
  148. package/dist/src/components/layout/LayoutSnackbar.js +0 -25
  149. package/dist/src/components/layout/LayoutSnackbar.js.map +0 -1
  150. package/dist/src/components/layout/NavigationDrawer.d.ts +0 -11
  151. package/dist/src/components/layout/NavigationDrawer.js +0 -70
  152. package/dist/src/components/layout/NavigationDrawer.js.map +0 -1
  153. package/dist/src/components/layout/NotificationMenu.d.ts +0 -8
  154. package/dist/src/components/layout/NotificationMenu.js +0 -26
  155. package/dist/src/components/layout/NotificationMenu.js.map +0 -1
  156. package/dist/src/components/layout/TypographyWithIcon.d.ts +0 -7
  157. package/dist/src/components/layout/TypographyWithIcon.js +0 -22
  158. package/dist/src/components/layout/TypographyWithIcon.js.map +0 -1
  159. package/dist/src/components/layout/Unauthorized.d.ts +0 -2
  160. package/dist/src/components/layout/Unauthorized.js +0 -26
  161. package/dist/src/components/layout/Unauthorized.js.map +0 -1
  162. package/dist/src/contexts/LayoutContext.d.ts +0 -40
  163. package/dist/src/contexts/LayoutContext.js +0 -60
  164. package/dist/src/contexts/LayoutContext.js.map +0 -1
  165. package/dist/src/contexts/UserContext.d.ts +0 -24
  166. package/dist/src/contexts/UserContext.js +0 -55
  167. package/dist/src/contexts/UserContext.js.map +0 -1
  168. package/dist/src/hooks/FormHooks.d.ts +0 -46
  169. package/dist/src/hooks/FormHooks.js +0 -31
  170. package/dist/src/hooks/FormHooks.js.map +0 -1
  171. package/dist/src/hooks/UseSnackbar.d.ts +0 -10
  172. package/dist/src/hooks/UseSnackbar.js +0 -23
  173. package/dist/src/hooks/UseSnackbar.js.map +0 -1
  174. package/dist/src/hooks/UseUser.d.ts +0 -10
  175. package/dist/src/hooks/UseUser.js +0 -25
  176. package/dist/src/hooks/UseUser.js.map +0 -1
  177. package/dist/src/index.d.ts +0 -20
  178. package/dist/src/index.js +0 -15
  179. package/dist/src/index.js.map +0 -1
  180. package/dist/src/models/Error.d.ts +0 -6
  181. package/dist/src/models/Error.js +0 -2
  182. package/dist/src/models/Error.js.map +0 -1
  183. package/dist/src/models/KeycloakSettings.d.ts +0 -8
  184. package/dist/src/models/KeycloakSettings.js +0 -2
  185. package/dist/src/models/KeycloakSettings.js.map +0 -1
  186. package/dist/src/models/LayoutPaletteColorOptions.d.ts +0 -6
  187. package/dist/src/models/LayoutPaletteColorOptions.js +0 -2
  188. package/dist/src/models/LayoutPaletteColorOptions.js.map +0 -1
  189. package/dist/src/models/LayoutRoute.d.ts +0 -14
  190. package/dist/src/models/LayoutRoute.js +0 -2
  191. package/dist/src/models/LayoutRoute.js.map +0 -1
  192. package/dist/src/models/Notification.d.ts +0 -9
  193. package/dist/src/models/Notification.js +0 -2
  194. package/dist/src/models/Notification.js.map +0 -1
  195. package/dist/src/models/PeoplesoftDepartment.d.ts +0 -14
  196. package/dist/src/models/PeoplesoftDepartment.js +0 -2
  197. package/dist/src/models/PeoplesoftDepartment.js.map +0 -1
  198. package/dist/src/models/PeoplesoftEmployee.d.ts +0 -34
  199. package/dist/src/models/PeoplesoftEmployee.js +0 -2
  200. package/dist/src/models/PeoplesoftEmployee.js.map +0 -1
  201. package/dist/src/models/Snackbar.d.ts +0 -15
  202. package/dist/src/models/Snackbar.js +0 -2
  203. package/dist/src/models/Snackbar.js.map +0 -1
  204. package/dist/src/models/User.d.ts +0 -27
  205. package/dist/src/models/User.js +0 -11
  206. package/dist/src/models/User.js.map +0 -1
  207. package/dist/src/models/types/EmployeeCategoryGroup.d.ts +0 -1
  208. package/dist/src/models/types/EmployeeCategoryGroup.js +0 -2
  209. package/dist/src/models/types/EmployeeCategoryGroup.js.map +0 -1
  210. package/dist/src/models/types/EmployeeStatus.d.ts +0 -1
  211. package/dist/src/models/types/EmployeeStatus.js +0 -2
  212. package/dist/src/models/types/EmployeeStatus.js.map +0 -1
  213. package/dist/src/utils/Auth.d.ts +0 -12
  214. package/dist/src/utils/Auth.js +0 -49
  215. package/dist/src/utils/Auth.js.map +0 -1
  216. package/dist/src/utils/Fetches.d.ts +0 -5
  217. package/dist/src/utils/Fetches.js +0 -66
  218. package/dist/src/utils/Fetches.js.map +0 -1
  219. package/dist/src/utils/FormUtils.d.ts +0 -7
  220. package/dist/src/utils/FormUtils.js +0 -9
  221. package/dist/src/utils/FormUtils.js.map +0 -1
  222. package/dist/src/utils/Helpers.d.ts +0 -11
  223. package/dist/src/utils/Helpers.js +0 -26
  224. package/dist/src/utils/Helpers.js.map +0 -1
  225. package/dist/tsconfig.tsbuildinfo +0 -1
  226. package/src/components/Layout.tsx +0 -183
  227. package/src/components/dataGrid/ChipInputCell.tsx +0 -31
  228. package/src/components/dataGrid/EditableColumnHeader.tsx +0 -7
  229. package/src/components/dataGrid/GridToolbar.tsx +0 -63
  230. package/src/components/dataGrid/TableContainer.tsx +0 -39
  231. package/src/components/form/FormAutocomplete.tsx +0 -34
  232. package/src/components/form/FormCheckbox.tsx +0 -32
  233. package/src/components/form/FormDatePicker.tsx +0 -34
  234. package/src/components/form/FormDateTimePicker.tsx +0 -34
  235. package/src/components/form/FormNumberField.tsx +0 -33
  236. package/src/components/form/FormRadioGroup.tsx +0 -43
  237. package/src/components/form/FormSlider.tsx +0 -28
  238. package/src/components/form/FormSubmitButton.tsx +0 -29
  239. package/src/components/form/FormSwitch.tsx +0 -32
  240. package/src/components/form/FormTextField.tsx +0 -26
  241. package/src/components/layout/AccountMenu.tsx +0 -160
  242. package/src/components/layout/DevelopmentBanner.tsx +0 -54
  243. package/src/components/layout/ErrorPage.tsx +0 -34
  244. package/src/components/layout/LayoutDialog.tsx +0 -50
  245. package/src/components/layout/LayoutSnackbar.tsx +0 -44
  246. package/src/components/layout/NavigationDrawer.tsx +0 -131
  247. package/src/components/layout/NotificationMenu.tsx +0 -76
  248. package/src/components/layout/TypographyWithIcon.tsx +0 -35
  249. package/src/components/layout/Unauthorized.tsx +0 -37
  250. package/src/contexts/LayoutContext.tsx +0 -127
  251. package/src/contexts/UserContext.tsx +0 -88
  252. package/src/hooks/FormHooks.ts +0 -33
  253. package/src/hooks/UseSnackbar.tsx +0 -28
  254. package/src/hooks/UseUser.tsx +0 -29
  255. package/src/index.ts +0 -27
  256. package/src/models/Error.tsx +0 -6
  257. package/src/models/KeycloakSettings.ts +0 -8
  258. package/src/models/LayoutPaletteColorOptions.tsx +0 -7
  259. package/src/models/LayoutRoute.ts +0 -15
  260. package/src/models/Notification.ts +0 -10
  261. package/src/models/PeoplesoftDepartment.ts +0 -15
  262. package/src/models/PeoplesoftEmployee.ts +0 -35
  263. package/src/models/Snackbar.ts +0 -16
  264. package/src/models/User.ts +0 -13
  265. package/src/models/types/EmployeeCategoryGroup.ts +0 -1
  266. package/src/models/types/EmployeeStatus.ts +0 -1
  267. package/src/utils/Auth.ts +0 -58
  268. package/src/utils/Fetches.ts +0 -83
  269. package/src/utils/FormUtils.ts +0 -22
  270. package/src/utils/Helpers.ts +0 -27
  271. package/tsconfig.json +0 -29
@@ -0,0 +1,179 @@
1
+ import { t as serverEnv } from "./env-CoveIivr.mjs";
2
+ import { l as getAccessToken } from "./utils-2XiozDlV.mjs";
3
+ import { t as getAppToken } from "./msalServer-CkNOOjjH.mjs";
4
+ import { r as apiMiddleware, t as authenticationMiddleware } from "./authMiddleware--HdlhhZO.mjs";
5
+ import { t as FileMetaSchema } from "./FileMeta-DDqUju1Y.mjs";
6
+ import { z as z$1 } from "zod";
7
+ import { createServerFn } from "@tanstack/react-start";
8
+ import { uuidv7 } from "uuidv7";
9
+ import { DefaultHttpStack, Upload } from "tus-js-client";
10
+ import { setResponseHeaders } from "@tanstack/react-start/server";
11
+ import https from "node:https";
12
+ import { Readable } from "node:stream";
13
+ //#region src/data/server/file.ts
14
+ const GetFileMetasSchema = z$1.object({
15
+ appName: z$1.string().min(1).max(255),
16
+ subId: z$1.uuid()
17
+ });
18
+ const FileSchema = z$1.object({
19
+ appName: z$1.string().min(1).max(255),
20
+ id: z$1.uuid()
21
+ });
22
+ const UpdateFileMetaSchema = FileMetaSchema.extend({ fileName: z$1.string().min(1).max(255) });
23
+ const DeleteFileSchema = FileSchema;
24
+ const BatchDeleteFilesSchema = GetFileMetasSchema;
25
+ const UploadFileMetaSchema = z$1.object({
26
+ appName: z$1.string().min(1).max(255),
27
+ subId: z$1.uuid(),
28
+ file: z$1.instanceof(File)
29
+ });
30
+ const getFileMetas = createServerFn({ method: "GET" }).validator(GetFileMetasSchema).middleware([apiMiddleware({
31
+ baseURL: "FILE_BASE_URL",
32
+ scopeKey: "file"
33
+ })]).handler(async ({ data, context }) => {
34
+ const queryParams = new URLSearchParams();
35
+ queryParams.append("appName", data.appName);
36
+ queryParams.append("subId", data.subId);
37
+ const { data: fileMetas } = await context.api.request({
38
+ url: `/v1/meta?${queryParams.toString()}`,
39
+ method: "GET"
40
+ });
41
+ return fileMetas;
42
+ });
43
+ const getFileThumbnail = createServerFn({ method: "GET" }).validator(FileSchema).middleware([apiMiddleware({
44
+ baseURL: "FILE_BASE_URL",
45
+ scopeKey: "file"
46
+ })]).handler(async ({ data, context }) => {
47
+ const queryParams = new URLSearchParams();
48
+ queryParams.append("appName", data.appName);
49
+ queryParams.append("id", data.id);
50
+ const response = await context.api.request({
51
+ url: `/v1/thumbnail?${queryParams.toString()}`,
52
+ method: "GET",
53
+ responseType: "stream"
54
+ });
55
+ setResponseHeaders(new Headers({
56
+ "Content-Type": response.headers["content-type"],
57
+ "Cache-Control": "private, max-age=3600, immutable"
58
+ }));
59
+ return Readable.toWeb(response.data);
60
+ });
61
+ const getFile = createServerFn({ method: "GET" }).validator(FileSchema).middleware([apiMiddleware({
62
+ baseURL: "FILE_BASE_URL",
63
+ scopeKey: "file"
64
+ })]).handler(async ({ data, context }) => {
65
+ const queryParams = new URLSearchParams();
66
+ queryParams.append("appName", data.appName);
67
+ queryParams.append("id", data.id);
68
+ const response = await context.api.request({
69
+ url: `/v1?${queryParams.toString()}`,
70
+ method: "GET",
71
+ responseType: "stream"
72
+ });
73
+ setResponseHeaders(new Headers({
74
+ "Content-Type": response.headers["content-type"],
75
+ "Cache-Control": "private, max-age=3600, immutable"
76
+ }));
77
+ return Readable.toWeb(response.data);
78
+ });
79
+ const downloadFile = createServerFn({ method: "GET" }).validator(FileSchema).middleware([apiMiddleware({
80
+ baseURL: "FILE_BASE_URL",
81
+ scopeKey: "file"
82
+ })]).handler(async ({ data, context }) => {
83
+ const queryParams = new URLSearchParams();
84
+ queryParams.append("appName", data.appName);
85
+ queryParams.append("id", data.id);
86
+ const response = await context.api.request({
87
+ url: `/v1/download?${queryParams.toString()}`,
88
+ method: "GET",
89
+ responseType: "stream"
90
+ });
91
+ setResponseHeaders(new Headers({
92
+ "Content-Type": response.headers["content-type"],
93
+ "Cache-Control": "private, max-age=3600, immutable"
94
+ }));
95
+ return Readable.toWeb(response.data);
96
+ });
97
+ const updateFileMeta = createServerFn({ method: "POST" }).validator(UpdateFileMetaSchema).middleware([apiMiddleware({
98
+ baseURL: "FILE_BASE_URL",
99
+ scopeKey: "file"
100
+ })]).handler(async ({ data, context }) => {
101
+ const queryParams = new URLSearchParams();
102
+ queryParams.append("appName", data.appName);
103
+ queryParams.append("id", data.id);
104
+ await context.api.request({
105
+ url: `/v1/meta?${queryParams.toString()}`,
106
+ method: "PUT",
107
+ data
108
+ });
109
+ });
110
+ const deleteFile = createServerFn({ method: "POST" }).validator(DeleteFileSchema).middleware([apiMiddleware({
111
+ baseURL: "FILE_BASE_URL",
112
+ scopeKey: "file"
113
+ })]).handler(async ({ data, context }) => {
114
+ const queryParams = new URLSearchParams();
115
+ queryParams.append("appName", data.appName);
116
+ queryParams.append("id", data.id);
117
+ await context.api.request({
118
+ url: `/v1?${queryParams.toString()}`,
119
+ method: "DELETE"
120
+ });
121
+ });
122
+ const batchDeleteFiles = createServerFn({ method: "POST" }).validator(BatchDeleteFilesSchema).middleware([apiMiddleware({
123
+ baseURL: "FILE_BASE_URL",
124
+ scopeKey: "file"
125
+ })]).handler(async ({ data, context }) => {
126
+ const queryParams = new URLSearchParams();
127
+ queryParams.append("appName", data.appName);
128
+ queryParams.append("subId", data.subId);
129
+ await context.api.request({
130
+ url: `/v1?${queryParams.toString()}`,
131
+ method: "DELETE"
132
+ });
133
+ });
134
+ const insecureHttpsAgent = new https.Agent({ rejectUnauthorized: false });
135
+ const uploadFile = createServerFn({ method: "POST" }).validator((data) => UploadFileMetaSchema.parse({
136
+ appName: data.get("appName"),
137
+ subId: data.get("subId"),
138
+ file: data.get("file")
139
+ })).middleware([authenticationMiddleware()]).handler(async ({ data }) => {
140
+ let accessToken;
141
+ try {
142
+ accessToken = await getAccessToken("file");
143
+ } catch {
144
+ accessToken = await getAppToken("file");
145
+ }
146
+ const stream = Readable.fromWeb(data.file.stream());
147
+ const id = uuidv7();
148
+ const dotIndex = data.file.name.lastIndexOf(".");
149
+ const fileExtension = dotIndex >= 0 ? data.file.name.slice(dotIndex + 1) : "";
150
+ await new Promise((resolve, reject) => {
151
+ new Upload(stream, {
152
+ endpoint: `${serverEnv.FILE_BASE_URL}/v1/upload`,
153
+ httpStack: new DefaultHttpStack({ agent: insecureHttpsAgent }),
154
+ uploadSize: data.file.size,
155
+ chunkSize: 1048576,
156
+ metadata: {
157
+ id,
158
+ appName: data.appName,
159
+ subId: data.subId,
160
+ fileName: data.file.name,
161
+ fileExtension,
162
+ mimeType: data.file.type
163
+ },
164
+ headers: { Authorization: `Bearer ${accessToken}` },
165
+ onError: reject,
166
+ onSuccess: () => resolve()
167
+ }).start();
168
+ });
169
+ return {
170
+ id,
171
+ appName: data.appName,
172
+ subId: data.subId,
173
+ fileName: data.file.name
174
+ };
175
+ });
176
+ //#endregion
177
+ export { batchDeleteFiles as a, getFile as c, updateFileMeta as d, uploadFile as f, UploadFileMetaSchema as i, getFileMetas as l, GetFileMetasSchema as n, deleteFile as o, UpdateFileMetaSchema as r, downloadFile as s, FileSchema as t, getFileThumbnail as u };
178
+
179
+ //# sourceMappingURL=file-DM1x40eJ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-DM1x40eJ.mjs","names":["createServerFn","setResponseHeaders","https","Readable","DefaultHttpStack","Upload","uuidv7","z","serverEnv","getAppToken","getAccessToken","apiMiddleware","authenticationMiddleware","FileMeta","FileMetaSchema","GetFileMetasSchema","object","appName","string","min","max","subId","uuid","FileSchema","id","UpdateFileMetaSchema","extend","fileName","DeleteFileSchema","BatchDeleteFilesSchema","UploadFileResult","UploadFileMetaSchema","file","instanceof","File","getFileMetas","method","validator","middleware","baseURL","scopeKey","handler","data","context","queryParams","URLSearchParams","append","fileMetas","api","request","Array","url","toString","getFileThumbnail","response","responseType","Headers","headers","toWeb","ReadableStream","getFile","downloadFile","updateFileMeta","deleteFile","batchDeleteFiles","insecureHttpsAgent","Agent","rejectUnauthorized","uploadFile","FormData","parse","get","Promise","accessToken","stream","fromWeb","dotIndex","name","lastIndexOf","fileExtension","slice","resolve","reject","upload","endpoint","FILE_BASE_URL","httpStack","agent","uploadSize","size","chunkSize","metadata","mimeType","type","Authorization","onError","onSuccess","start"],"sources":["../src/data/server/file.ts"],"sourcesContent":["import { createServerFn } from \"@tanstack/react-start\";\nimport { setResponseHeaders } from \"@tanstack/react-start/server\";\nimport https from \"node:https\";\nimport { Readable } from \"node:stream\";\nimport { DefaultHttpStack, Upload } from \"tus-js-client\";\nimport { uuidv7 } from \"uuidv7\";\nimport { z } from \"zod\";\nimport { serverEnv } from \"~/env\";\nimport { getAppToken } from \"~/lib/auth/msalServer\";\nimport { getAccessToken } from \"~/lib/auth/user\";\nimport { apiMiddleware } from \"~/middleware/apiMiddleware\";\nimport { authenticationMiddleware } from \"~/middleware/authMiddleware\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport { FileMetaSchema } from \"~/models/file/FileMeta\";\n\nexport const GetFileMetasSchema = z.object({\n appName: z.string().min(1).max(255),\n subId: z.uuid(),\n});\n\nexport const FileSchema = z.object({\n appName: z.string().min(1).max(255),\n id: z.uuid(),\n});\n\nexport const UpdateFileMetaSchema = FileMetaSchema.extend({\n fileName: z.string().min(1).max(255),\n});\n\nconst DeleteFileSchema = FileSchema;\n\nconst BatchDeleteFilesSchema = GetFileMetasSchema;\n\nexport interface UploadFileResult {\n id: string;\n appName: string;\n subId: string;\n fileName: string;\n}\n\nexport const UploadFileMetaSchema = z.object({\n appName: z.string().min(1).max(255),\n subId: z.uuid(),\n file: z.instanceof(File),\n});\n\nexport const getFileMetas = createServerFn({ method: \"GET\" })\n .validator(GetFileMetasSchema)\n .middleware([apiMiddleware({ baseURL: \"FILE_BASE_URL\", scopeKey: \"file\" })])\n .handler(async ({ data, context }) => {\n const queryParams = new URLSearchParams();\n queryParams.append(\"appName\", data.appName);\n queryParams.append(\"subId\", data.subId);\n\n const { data: fileMetas } = await context.api.request<Array<FileMeta>>({\n url: `/v1/meta?${queryParams.toString()}`,\n method: \"GET\",\n });\n return fileMetas;\n });\n\nexport const getFileThumbnail = createServerFn({ method: \"GET\" })\n .validator(FileSchema)\n .middleware([apiMiddleware({ baseURL: \"FILE_BASE_URL\", scopeKey: \"file\" })])\n .handler(async ({ data, context }) => {\n const queryParams = new URLSearchParams();\n queryParams.append(\"appName\", data.appName);\n queryParams.append(\"id\", data.id);\n\n const response = await context.api.request<Readable>({\n url: `/v1/thumbnail?${queryParams.toString()}`,\n method: \"GET\",\n responseType: \"stream\",\n });\n\n setResponseHeaders(\n new Headers({\n \"Content-Type\": response.headers[\"content-type\"] as string,\n \"Cache-Control\": \"private, max-age=3600, immutable\",\n }),\n );\n return Readable.toWeb(response.data) as ReadableStream;\n });\n\nexport const getFile = createServerFn({ method: \"GET\" })\n .validator(FileSchema)\n .middleware([apiMiddleware({ baseURL: \"FILE_BASE_URL\", scopeKey: \"file\" })])\n .handler(async ({ data, context }) => {\n const queryParams = new URLSearchParams();\n queryParams.append(\"appName\", data.appName);\n queryParams.append(\"id\", data.id);\n\n const response = await context.api.request<Readable>({\n url: `/v1?${queryParams.toString()}`,\n method: \"GET\",\n responseType: \"stream\",\n });\n\n setResponseHeaders(\n new Headers({\n \"Content-Type\": response.headers[\"content-type\"] as string,\n \"Cache-Control\": \"private, max-age=3600, immutable\",\n }),\n );\n return Readable.toWeb(response.data) as ReadableStream;\n });\n\nexport const downloadFile = createServerFn({ method: \"GET\" })\n .validator(FileSchema)\n .middleware([apiMiddleware({ baseURL: \"FILE_BASE_URL\", scopeKey: \"file\" })])\n .handler(async ({ data, context }) => {\n const queryParams = new URLSearchParams();\n queryParams.append(\"appName\", data.appName);\n queryParams.append(\"id\", data.id);\n\n const response = await context.api.request<Readable>({\n url: `/v1/download?${queryParams.toString()}`,\n method: \"GET\",\n responseType: \"stream\",\n });\n\n setResponseHeaders(\n new Headers({\n \"Content-Type\": response.headers[\"content-type\"] as string,\n \"Cache-Control\": \"private, max-age=3600, immutable\",\n }),\n );\n return Readable.toWeb(response.data) as ReadableStream;\n });\n\nexport const updateFileMeta = createServerFn({ method: \"POST\" })\n .validator(UpdateFileMetaSchema)\n .middleware([apiMiddleware({ baseURL: \"FILE_BASE_URL\", scopeKey: \"file\" })])\n .handler(async ({ data, context }) => {\n const queryParams = new URLSearchParams();\n queryParams.append(\"appName\", data.appName);\n queryParams.append(\"id\", data.id);\n\n await context.api.request({ url: `/v1/meta?${queryParams.toString()}`, method: \"PUT\", data });\n });\n\nexport const deleteFile = createServerFn({ method: \"POST\" })\n .validator(DeleteFileSchema)\n .middleware([apiMiddleware({ baseURL: \"FILE_BASE_URL\", scopeKey: \"file\" })])\n .handler(async ({ data, context }) => {\n const queryParams = new URLSearchParams();\n queryParams.append(\"appName\", data.appName);\n queryParams.append(\"id\", data.id);\n\n await context.api.request({ url: `/v1?${queryParams.toString()}`, method: \"DELETE\" });\n });\n\nexport const batchDeleteFiles = createServerFn({ method: \"POST\" })\n .validator(BatchDeleteFilesSchema)\n .middleware([apiMiddleware({ baseURL: \"FILE_BASE_URL\", scopeKey: \"file\" })])\n .handler(async ({ data, context }) => {\n const queryParams = new URLSearchParams();\n queryParams.append(\"appName\", data.appName);\n queryParams.append(\"subId\", data.subId);\n\n await context.api.request({ url: `/v1?${queryParams.toString()}`, method: \"DELETE\" });\n });\n\nconst insecureHttpsAgent = new https.Agent({ rejectUnauthorized: false });\n\nexport const uploadFile = createServerFn({ method: \"POST\" })\n // File inputs must travel as multipart FormData — a File nested in a plain\n // payload object can't be seroval-serialized, so the request never fires.\n .validator((data: FormData) =>\n UploadFileMetaSchema.parse({\n appName: data.get(\"appName\"),\n subId: data.get(\"subId\"),\n file: data.get(\"file\"),\n }),\n )\n .middleware([authenticationMiddleware()])\n .handler(async ({ data }): Promise<UploadFileResult> => {\n // Prefer the signed-in user's delegated token so the file service stamps\n // createdBy; fall back to the app identity when there's no user session.\n let accessToken: string;\n try {\n accessToken = await getAccessToken(\"file\");\n } catch {\n accessToken = await getAppToken(\"file\");\n }\n // Stream instead of buffering the whole file: in-process callers (e.g. a File\n // from fs.openAsBlob) upload arbitrarily large files without holding them in RAM.\n const stream = Readable.fromWeb(data.file.stream() as import(\"node:stream/web\").ReadableStream);\n const id = uuidv7();\n const dotIndex = data.file.name.lastIndexOf(\".\");\n const fileExtension = dotIndex >= 0 ? data.file.name.slice(dotIndex + 1) : \"\";\n\n // Server-originated edge cases only — browser uploads go direct to the file\n // service via uploadFileMutationOptions (client) with the user's OBO token.\n await new Promise<void>((resolve, reject) => {\n const upload = new Upload(stream, {\n endpoint: `${serverEnv.FILE_BASE_URL}/v1/upload`,\n httpStack: new DefaultHttpStack({ agent: insecureHttpsAgent }),\n uploadSize: data.file.size,\n chunkSize: 1_048_576,\n metadata: {\n id,\n appName: data.appName,\n subId: data.subId,\n fileName: data.file.name,\n fileExtension,\n mimeType: data.file.type,\n },\n headers: { Authorization: `Bearer ${accessToken}` },\n onError: reject,\n onSuccess: () => resolve(),\n });\n upload.start();\n });\n\n return {\n id,\n appName: data.appName,\n subId: data.subId,\n fileName: data.file.name,\n };\n });\n"],"mappings":"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"}
@@ -0,0 +1,226 @@
1
+ import { t as FormOmittedProps } from "./utils-BuWEQOuy.mjs";
2
+ import { AutocompleteProps, ButtonProps, CheckboxProps, RadioGroupProps, SliderProps, SwitchProps, TextFieldProps } from "@mui/material";
3
+ import { DatePickerProps, DateRangePickerProps, DateTimePickerProps, DateTimeRangePickerProps, TimePickerProps, TimeRangePickerProps } from "@mui/x-date-pickers-pro";
4
+ import { FC, ReactNode } from "react";
5
+ import { useTranslation } from "react-i18next";
6
+ import { AlertColor } from "@mui/material/Alert";
7
+ import { useInView } from "react-intersection-observer";
8
+ import { InputAttributes, NumericFormatProps } from "react-number-format/types/types";
9
+ import { PickersTextFieldProps } from "@mui/x-date-pickers/PickersTextField";
10
+
11
+ //#region src/components/form/FormTextField.d.ts
12
+ interface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> {
13
+ type?: "color" | "email" | "password" | "search" | "tel" | "text" | "url";
14
+ }
15
+ //#endregion
16
+ //#region src/components/form/FormNumberField.d.ts
17
+ interface FormNumberFieldProps extends Omit<TextFieldProps, FormOmittedProps> {
18
+ defaultValue?: number | null;
19
+ options?: Omit<NumericFormatProps<InputAttributes>, "customInput" | "onValueChange" | keyof InputAttributes>;
20
+ }
21
+ //#endregion
22
+ //#region src/components/form/FormAutocomplete.d.ts
23
+ interface FormAutocompleteProps extends Omit<AutocompleteProps<any, boolean, boolean, boolean>, FormOmittedProps> {
24
+ textFieldProps?: Omit<TextFieldProps, FormOmittedProps>;
25
+ }
26
+ //#endregion
27
+ //#region src/components/form/FormCheckbox.d.ts
28
+ interface FormCheckboxProps extends Omit<CheckboxProps, FormOmittedProps> {
29
+ label?: string;
30
+ }
31
+ //#endregion
32
+ //#region src/components/form/FormSwitch.d.ts
33
+ interface FormSwitchProps extends Omit<SwitchProps, FormOmittedProps> {
34
+ label?: string;
35
+ }
36
+ //#endregion
37
+ //#region src/components/form/FormRadioGroup.d.ts
38
+ interface Option {
39
+ label: string;
40
+ value: string | number;
41
+ }
42
+ interface FormRadioGroupProps extends Omit<RadioGroupProps, FormOmittedProps> {
43
+ label?: string;
44
+ options: Array<Option>;
45
+ }
46
+ //#endregion
47
+ //#region src/components/form/FormSlider.d.ts
48
+ interface FormSliderProps extends Omit<SliderProps, FormOmittedProps> {
49
+ label?: string;
50
+ }
51
+ //#endregion
52
+ //#region src/components/form/FormDatePicker.d.ts
53
+ interface FormDatePickerProps extends Omit<DatePickerProps, FormOmittedProps> {
54
+ textFieldProps?: Partial<PickersTextFieldProps>;
55
+ }
56
+ //#endregion
57
+ //#region src/components/form/FormDateRangePicker.d.ts
58
+ interface FormDateRangePickerProps extends Omit<DateRangePickerProps, FormOmittedProps> {
59
+ textFieldProps?: Partial<PickersTextFieldProps>;
60
+ }
61
+ //#endregion
62
+ //#region src/components/form/FormTimePicker.d.ts
63
+ interface FormTimePickerProps extends Omit<TimePickerProps, FormOmittedProps> {
64
+ textFieldProps?: Partial<PickersTextFieldProps>;
65
+ }
66
+ //#endregion
67
+ //#region src/components/form/FormTimeRangePicker.d.ts
68
+ interface FormTimeRangePickerProps extends Omit<TimeRangePickerProps, FormOmittedProps> {
69
+ textFieldProps?: Partial<PickersTextFieldProps>;
70
+ }
71
+ //#endregion
72
+ //#region src/components/form/FormDateTimePicker.d.ts
73
+ interface FormDateTimePickerProps extends Omit<DateTimePickerProps, FormOmittedProps> {
74
+ textFieldProps?: Partial<PickersTextFieldProps>;
75
+ }
76
+ //#endregion
77
+ //#region src/components/form/FormDateTimeRangePicker.d.ts
78
+ interface FormDateTimeRangePickerProps extends Omit<DateTimeRangePickerProps, FormOmittedProps> {
79
+ textFieldProps?: Partial<PickersTextFieldProps>;
80
+ }
81
+ //#endregion
82
+ //#region src/components/form/FormSubmitButton.d.ts
83
+ type FormSubmitButtonProps = Omit<ButtonProps, "loading" | "disabled" | "onClick" | "type">;
84
+ declare const useLayoutForm: <TFormData, TOnMount extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnChange extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnChangeAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnBlur extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnBlurAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnSubmit extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnSubmitAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnDynamic extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnDynamicAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnServer extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TSubmitMeta>(props: import("@tanstack/form-core").FormOptions<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>) => import("@tanstack/react-form").AppFieldExtendedReactFormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta, {
85
+ readonly TextField: import("react").FC<FormTextFieldProps>;
86
+ readonly NumberField: import("react").FC<FormNumberFieldProps>;
87
+ readonly Autocomplete: import("react").FC<FormAutocompleteProps>;
88
+ readonly Checkbox: import("react").FC<FormCheckboxProps>;
89
+ readonly Switch: import("react").FC<FormSwitchProps>;
90
+ readonly RadioGroup: import("react").FC<FormRadioGroupProps>;
91
+ readonly Slider: import("react").FC<FormSliderProps>;
92
+ readonly DatePicker: import("react").FC<FormDatePickerProps>;
93
+ readonly DateRangePicker: import("react").FC<FormDateRangePickerProps>;
94
+ readonly TimePicker: import("react").FC<FormTimePickerProps>;
95
+ readonly TimeRangePicker: import("react").FC<FormTimeRangePickerProps>;
96
+ readonly DateTimePicker: import("react").FC<FormDateTimePickerProps>;
97
+ readonly DateTimeRangePicker: import("react").FC<FormDateTimeRangePickerProps>;
98
+ }, {
99
+ readonly SubmitButton: import("react").FC<FormSubmitButtonProps>;
100
+ }>, withLayoutForm: <TFormData, TOnMount extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnChange extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnChangeAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnBlur extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnBlurAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnSubmit extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnSubmitAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnDynamic extends import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined, TOnDynamicAsync extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TOnServer extends import("@tanstack/form-core").FormAsyncValidateOrFn<TFormData> | undefined, TSubmitMeta, TRenderProps extends object = {}>({
101
+ render,
102
+ props
103
+ }: import("@tanstack/react-form").WithFormProps<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta, {
104
+ readonly TextField: import("react").FC<FormTextFieldProps>;
105
+ readonly NumberField: import("react").FC<FormNumberFieldProps>;
106
+ readonly Autocomplete: import("react").FC<FormAutocompleteProps>;
107
+ readonly Checkbox: import("react").FC<FormCheckboxProps>;
108
+ readonly Switch: import("react").FC<FormSwitchProps>;
109
+ readonly RadioGroup: import("react").FC<FormRadioGroupProps>;
110
+ readonly Slider: import("react").FC<FormSliderProps>;
111
+ readonly DatePicker: import("react").FC<FormDatePickerProps>;
112
+ readonly DateRangePicker: import("react").FC<FormDateRangePickerProps>;
113
+ readonly TimePicker: import("react").FC<FormTimePickerProps>;
114
+ readonly TimeRangePicker: import("react").FC<FormTimeRangePickerProps>;
115
+ readonly DateTimePicker: import("react").FC<FormDateTimePickerProps>;
116
+ readonly DateTimeRangePicker: import("react").FC<FormDateTimeRangePickerProps>;
117
+ }, {
118
+ readonly SubmitButton: import("react").FC<FormSubmitButtonProps>;
119
+ }, TRenderProps>) => import("react").FunctionComponent<import("react").PropsWithChildren<NoInfer<[unknown] extends [TRenderProps] ? any : TRenderProps> & {
120
+ form: import("@tanstack/react-form").AppFieldExtendedReactFormApi<[unknown] extends [TFormData] ? any : TFormData, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnMount] ? [TOnMount] extends [TOnMount & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnMount : TOnMount, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnChange] ? [TOnChange] extends [TOnChange & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnChange : TOnChange, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnChangeAsync] ? [TOnChangeAsync] extends [TOnChangeAsync & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnChangeAsync : TOnChangeAsync, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnBlur] ? [TOnBlur] extends [TOnBlur & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlur : TOnBlur, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnBlurAsync] ? [TOnBlurAsync] extends [TOnBlurAsync & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlurAsync : TOnBlurAsync, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnSubmit] ? [TOnSubmit] extends [TOnSubmit & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmit : TOnSubmit, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnSubmitAsync] ? [TOnSubmitAsync] extends [TOnSubmitAsync & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmitAsync : TOnSubmitAsync, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnDynamic] ? [TOnDynamic] extends [TOnDynamic & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnDynamic : TOnDynamic, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnDynamicAsync] ? [TOnDynamicAsync] extends [TOnDynamicAsync & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnDynamicAsync : TOnDynamicAsync, [import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined] extends [TOnServer] ? [TOnServer] extends [TOnServer & (import("@tanstack/form-core").FormValidateOrFn<TFormData> | undefined)] ? any : TOnServer : TOnServer, [unknown] extends [TSubmitMeta] ? any : TSubmitMeta, {
121
+ readonly TextField: import("react").FC<FormTextFieldProps>;
122
+ readonly NumberField: import("react").FC<FormNumberFieldProps>;
123
+ readonly Autocomplete: import("react").FC<FormAutocompleteProps>;
124
+ readonly Checkbox: import("react").FC<FormCheckboxProps>;
125
+ readonly Switch: import("react").FC<FormSwitchProps>;
126
+ readonly RadioGroup: import("react").FC<FormRadioGroupProps>;
127
+ readonly Slider: import("react").FC<FormSliderProps>;
128
+ readonly DatePicker: import("react").FC<FormDatePickerProps>;
129
+ readonly DateRangePicker: import("react").FC<FormDateRangePickerProps>;
130
+ readonly TimePicker: import("react").FC<FormTimePickerProps>;
131
+ readonly TimeRangePicker: import("react").FC<FormTimeRangePickerProps>;
132
+ readonly DateTimePicker: import("react").FC<FormDateTimePickerProps>;
133
+ readonly DateTimeRangePicker: import("react").FC<FormDateTimeRangePickerProps>;
134
+ }, {
135
+ readonly SubmitButton: import("react").FC<FormSubmitButtonProps>;
136
+ }>;
137
+ }>>;
138
+ //#endregion
139
+ //#region src/hooks/useDialogs.d.ts
140
+ interface OpenDialogOptions<TResult> {
141
+ onClose?: (result: TResult) => Promise<void>;
142
+ }
143
+ interface AlertOptions {
144
+ title?: ReactNode;
145
+ }
146
+ interface ConfirmOptions {
147
+ title?: ReactNode;
148
+ cancelText?: ReactNode;
149
+ }
150
+ interface DialogProps<TPayload = undefined, TResult = void> {
151
+ payload: TPayload;
152
+ open: boolean;
153
+ onClose: (result: TResult) => Promise<void>;
154
+ }
155
+ type OpenAlertDialog = (message: ReactNode, options?: AlertOptions) => Promise<void>;
156
+ type OpenConfirmDialog = (message: ReactNode, options?: ConfirmOptions) => Promise<boolean>;
157
+ type DialogComponent<TPayload, TResult> = React.ComponentType<DialogProps<TPayload, TResult>>;
158
+ interface OpenDialog {
159
+ <TPayload extends undefined, TResult>(Component: DialogComponent<TPayload, TResult>, payload?: TPayload, options?: OpenDialogOptions<TResult>): Promise<TResult>;
160
+ <TPayload, TResult>(Component: DialogComponent<TPayload, TResult>, payload: TPayload, options?: OpenDialogOptions<TResult>): Promise<TResult>;
161
+ }
162
+ type CloseDialog = <TResult>(dialog: Promise<TResult>, result: TResult) => Promise<TResult>;
163
+ interface DialogHook {
164
+ alert: OpenAlertDialog;
165
+ confirm: OpenConfirmDialog;
166
+ open: OpenDialog;
167
+ close: CloseDialog;
168
+ }
169
+ declare function useDialogs(): DialogHook;
170
+ //#endregion
171
+ //#region src/contexts/NotificationContext.d.ts
172
+ interface NotificationOptions {
173
+ severity?: AlertColor;
174
+ autoHideDuration?: number;
175
+ }
176
+ interface NotificationContextValue {
177
+ notify: (message: string, options?: NotificationOptions) => void;
178
+ }
179
+ //#endregion
180
+ //#region src/hooks/useNotification.d.ts
181
+ declare function useNotification(): NotificationContextValue;
182
+ //#endregion
183
+ //#region src/hooks/useScanDetection.d.ts
184
+ interface Config {
185
+ /** Time to wait from last character to then trigger an evaluation of the buffer. */
186
+ timeToEvaluate?: number;
187
+ /** Average time between characters in milliseconds. Used to determine if input is from keyboard or a scanner. Defaults to 50ms.*/
188
+ averageWaitTime?: number;
189
+ /** Character that barcode scanner prefixes input with.*/
190
+ startCharacter?: Array<string>;
191
+ /** Character that barcode scanner suffixes input with. Defaults to line return.*/
192
+ endCharacter?: Array<string>;
193
+ /** Callback to use on complete scan input.*/
194
+ onComplete: (code: string) => void;
195
+ /** Callback to use on error. */
196
+ onError?: (error: string) => void;
197
+ /** Minimum length a scanned code should be. Defaults to 0.*/
198
+ minLength?: number;
199
+ /** Ignore scan input if this node is focused.*/
200
+ ignoreIfFocusOn?: Node;
201
+ /** Stop propagation on keydown event. Defaults to false.*/
202
+ stopPropagation?: boolean;
203
+ /** Prevent default on keydown event. Defaults to false.*/
204
+ preventDefault?: boolean;
205
+ /** Bind keydown event to this node. Defaults to document (resolved on the client only, so the hook is SSR-safe).*/
206
+ container?: Node;
207
+ /** Indicates if the scanning is enabled. */
208
+ enabled?: boolean;
209
+ }
210
+ declare const useScanDetection: ({
211
+ timeToEvaluate,
212
+ averageWaitTime,
213
+ startCharacter,
214
+ endCharacter,
215
+ onComplete,
216
+ onError,
217
+ minLength,
218
+ ignoreIfFocusOn,
219
+ stopPropagation,
220
+ preventDefault,
221
+ container,
222
+ enabled
223
+ }: Config) => void;
224
+ //#endregion
225
+ export { type DialogProps, useDialogs, useFieldContext, useFormContext, useInView, useLayoutForm, useNotification, useScanDetection, useTranslation, withLayoutForm };
226
+ //# sourceMappingURL=hooks.d.mts.map