wcz-test 6.7.7 → 6.8.1

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 (170) hide show
  1. package/dist/ApprovalStatus-C9HPyMiS.js +24 -0
  2. package/dist/ApprovalStatus-C9HPyMiS.js.map +1 -0
  3. package/dist/{chunk-4UULRYGW.js → DialogsHooks-BlUsVlfv.js} +7 -14
  4. package/dist/DialogsHooks-BlUsVlfv.js.map +1 -0
  5. package/dist/{chunk-MIVD2XWB.js → FileHooks-hWKTwLCr.js} +36 -46
  6. package/dist/FileHooks-hWKTwLCr.js.map +1 -0
  7. package/dist/{chunk-TME53DAF.js → FileMeta-G1oT3mYK.js} +3 -5
  8. package/dist/FileMeta-G1oT3mYK.js.map +1 -0
  9. package/dist/{chunk-ZMWQQXZT.js → RouterListItemButton-Cx7rXEfm.js} +6 -8
  10. package/dist/RouterListItemButton-Cx7rXEfm.js.map +1 -0
  11. package/dist/android-chrome-192x192.png +0 -0
  12. package/dist/android-chrome-512x512.png +0 -0
  13. package/dist/apple-touch-icon.png +0 -0
  14. package/dist/auth-client-D9snEe6B.js +79 -0
  15. package/dist/auth-client-D9snEe6B.js.map +1 -0
  16. package/dist/client-utils.d.ts +3 -702
  17. package/dist/client-utils.js +7 -17
  18. package/dist/client-utils.js.map +1 -1
  19. package/dist/components/core/AppTitle.d.ts +2 -0
  20. package/dist/components/core/Fullscreen.d.ts +3 -0
  21. package/dist/components/core/Layout.d.ts +8 -0
  22. package/dist/components/core/ToolbarAccount.d.ts +2 -0
  23. package/dist/components/core/TypographyWithIcon.d.ts +7 -0
  24. package/dist/components/core/navigation/NavigationList.d.ts +22 -0
  25. package/dist/components/core/navigation/NavigationListItem.d.ts +16 -0
  26. package/dist/components/core/navigation/NavigationRail.d.ts +12 -0
  27. package/dist/components/data-grid/ChipInputCell.d.ts +9 -0
  28. package/dist/components/data-grid/EditableColumnHeader.d.ts +2 -0
  29. package/dist/components/file/Dropzone.d.ts +8 -0
  30. package/dist/components/file/FileViewer.d.ts +20 -0
  31. package/dist/components/file/fileViewer/FileViewerGrid.d.ts +17 -0
  32. package/dist/components/file/fileViewer/FileViewerList.d.ts +12 -0
  33. package/dist/components/file/fileViewer/ImageViewer.d.ts +6 -0
  34. package/dist/components/file/fileViewer/common/ActionsMenu.d.ts +15 -0
  35. package/dist/components/form/FormAutocomplete.d.ts +7 -0
  36. package/dist/components/form/FormCheckbox.d.ts +7 -0
  37. package/dist/components/form/FormDatePicker.d.ts +8 -0
  38. package/dist/components/form/FormDateRangePicker.d.ts +8 -0
  39. package/dist/components/form/FormDateTimePicker.d.ts +8 -0
  40. package/dist/components/form/FormDateTimeRangePicker.d.ts +8 -0
  41. package/dist/components/form/FormNumberField.d.ts +9 -0
  42. package/dist/components/form/FormRadioGroup.d.ts +13 -0
  43. package/dist/components/form/FormSlider.d.ts +7 -0
  44. package/dist/components/form/FormSubmitButton.d.ts +4 -0
  45. package/dist/components/form/FormSwitch.d.ts +7 -0
  46. package/dist/components/form/FormTextField.d.ts +7 -0
  47. package/dist/components/form/FormTimePicker.d.ts +8 -0
  48. package/dist/components/form/FormTimeRangePicker.d.ts +8 -0
  49. package/dist/components/router/RouterButton.d.ts +6 -0
  50. package/dist/components/router/RouterError.d.ts +7 -0
  51. package/dist/components/router/RouterGridActionsCellItem.d.ts +6 -0
  52. package/dist/components/router/RouterIconButton.d.ts +6 -0
  53. package/dist/components/router/RouterLink.d.ts +6 -0
  54. package/dist/components/router/RouterListItemButton.d.ts +6 -0
  55. package/dist/components/router/RouterNotFound.d.ts +1 -0
  56. package/dist/components/router/RouterTab.d.ts +6 -0
  57. package/dist/components.d.ts +14 -89
  58. package/dist/components.js +124 -227
  59. package/dist/components.js.map +1 -1
  60. package/dist/contexts/DialogsContext.d.ts +6 -0
  61. package/dist/contexts/FileContext.d.ts +13 -0
  62. package/dist/env-CoxTjaDr.js +27 -0
  63. package/dist/env-CoxTjaDr.js.map +1 -0
  64. package/dist/env.d.ts +10 -0
  65. package/dist/favicon-16x16.png +0 -0
  66. package/dist/favicon-32x32.png +0 -0
  67. package/dist/favicon.ico +0 -0
  68. package/dist/favicon.png +0 -0
  69. package/dist/hooks/DialogsHooks.d.ts +42 -0
  70. package/dist/hooks/FormHooks.d.ts +52 -0
  71. package/dist/hooks/ThemeHook.d.ts +4 -0
  72. package/dist/hooks.d.ts +3 -159
  73. package/dist/hooks.js +56 -121
  74. package/dist/hooks.js.map +1 -1
  75. package/dist/index.d.ts +3 -36
  76. package/dist/index.js +173 -1882
  77. package/dist/index.js.map +1 -1
  78. package/dist/{client-utils.d.cts → lib/auth/auth-client.d.ts} +110 -126
  79. package/dist/lib/auth/auth.d.ts +24 -0
  80. package/dist/lib/db/index.d.ts +4 -0
  81. package/dist/lib/db/schemas/auth.d.ts +606 -0
  82. package/dist/{utils-ChipkRJ9.d.ts → lib/utils.d.ts} +11 -10
  83. package/dist/lib/vite-plugin.d.ts +2 -0
  84. package/dist/manifest.webmanifest +18 -0
  85. package/dist/models/Navigation.d.ts +18 -0
  86. package/dist/models/User.d.ts +8 -0
  87. package/dist/models/approval/Approval.d.ts +177 -0
  88. package/dist/models/approval/ApprovalEmployee.d.ts +7 -0
  89. package/dist/models/approval/ApprovalFlow.d.ts +49 -0
  90. package/dist/models/approval/ApprovalFlowStep.d.ts +29 -0
  91. package/dist/models/approval/ApprovalRequestType.d.ts +5 -0
  92. package/dist/models/approval/ApprovalStatus.d.ts +9 -0
  93. package/dist/models/approval/ApprovalStepResult.d.ts +11 -0
  94. package/dist/models/approval/StepApprovalOrder.d.ts +6 -0
  95. package/dist/models/email/Email.d.ts +13 -0
  96. package/dist/models/email/EmailAttachment.d.ts +6 -0
  97. package/dist/models/file/FileActions.d.ts +6 -0
  98. package/dist/{FileMeta-CC014fnB.d.cts → models/file/FileMeta.d.ts} +3 -6
  99. package/dist/models/peoplesoft/Department.d.ts +58 -0
  100. package/dist/models/peoplesoft/Employee.d.ts +46 -0
  101. package/dist/models/peoplesoft/EmployeeCategoryGroup.d.ts +6 -0
  102. package/dist/models/peoplesoft/EmployeeStatus.d.ts +6 -0
  103. package/dist/models.d.ts +25 -161
  104. package/dist/models.js +109 -160
  105. package/dist/models.js.map +1 -1
  106. package/dist/providers/DialogsProvider.d.ts +6 -0
  107. package/dist/providers/LayoutProvider.d.ts +11 -0
  108. package/dist/queries/Approval.d.ts +585 -0
  109. package/dist/queries/ApprovalHooks.d.ts +315 -0
  110. package/dist/queries/FileHooks.d.ts +151 -0
  111. package/dist/queries/PeopleSoftHooks.d.ts +537 -0
  112. package/dist/queries.d.ts +4 -1585
  113. package/dist/queries.js +59 -86
  114. package/dist/queries.js.map +1 -1
  115. package/dist/robots.txt +3 -0
  116. package/dist/server-utils.d.ts +2 -35
  117. package/dist/server-utils.js +13 -26
  118. package/dist/server-utils.js.map +1 -1
  119. package/dist/{chunk-2ROTNT7W.js → utils-DKyKGba7.js} +13 -18
  120. package/dist/utils-DKyKGba7.js.map +1 -0
  121. package/dist/utils.d.ts +1 -2
  122. package/dist/utils.js +3 -9
  123. package/dist/utils.js.map +1 -1
  124. package/dist/vite.d.ts +1 -5
  125. package/dist/vite.js +3 -6
  126. package/dist/vite.js.map +1 -1
  127. package/package.json +15 -23
  128. package/dist/Approval-CWQn-kah.d.cts +0 -284
  129. package/dist/Approval-CWQn-kah.d.ts +0 -284
  130. package/dist/FileMeta-CC014fnB.d.ts +0 -18
  131. package/dist/chunk-2ROTNT7W.js.map +0 -1
  132. package/dist/chunk-4FRZRIAO.js +0 -29
  133. package/dist/chunk-4FRZRIAO.js.map +0 -1
  134. package/dist/chunk-4UULRYGW.js.map +0 -1
  135. package/dist/chunk-5WRI5ZAA.js +0 -31
  136. package/dist/chunk-5WRI5ZAA.js.map +0 -1
  137. package/dist/chunk-CNDRHYQK.js +0 -883
  138. package/dist/chunk-CNDRHYQK.js.map +0 -1
  139. package/dist/chunk-DXXZZHAK.js +0 -28
  140. package/dist/chunk-DXXZZHAK.js.map +0 -1
  141. package/dist/chunk-MIVD2XWB.js.map +0 -1
  142. package/dist/chunk-TME53DAF.js.map +0 -1
  143. package/dist/chunk-ZMWQQXZT.js.map +0 -1
  144. package/dist/client-utils.cjs +0 -118
  145. package/dist/client-utils.cjs.map +0 -1
  146. package/dist/components.cjs +0 -802
  147. package/dist/components.cjs.map +0 -1
  148. package/dist/components.d.cts +0 -89
  149. package/dist/hooks.cjs +0 -534
  150. package/dist/hooks.cjs.map +0 -1
  151. package/dist/hooks.d.cts +0 -160
  152. package/dist/index.cjs +0 -3373
  153. package/dist/index.cjs.map +0 -1
  154. package/dist/index.d.cts +0 -36
  155. package/dist/models.cjs +0 -330
  156. package/dist/models.cjs.map +0 -1
  157. package/dist/models.d.cts +0 -161
  158. package/dist/queries.cjs +0 -706
  159. package/dist/queries.cjs.map +0 -1
  160. package/dist/queries.d.cts +0 -1585
  161. package/dist/server-utils.cjs +0 -145
  162. package/dist/server-utils.cjs.map +0 -1
  163. package/dist/server-utils.d.cts +0 -36
  164. package/dist/utils-ChipkRJ9.d.cts +0 -49
  165. package/dist/utils.cjs +0 -81
  166. package/dist/utils.cjs.map +0 -1
  167. package/dist/utils.d.cts +0 -4
  168. package/dist/vite.cjs +0 -94
  169. package/dist/vite.cjs.map +0 -1
  170. package/dist/vite.d.cts +0 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/components/core/TypographyWithIcon.tsx","../src/components/core/Fullscreen.tsx","../src/components/file/Dropzone.tsx","../src/components/file/FileViewer.tsx","../src/components/file/fileViewer/FileViewerGrid.tsx","../src/components/file/fileViewer/common/ActionsMenu.tsx","../src/contexts/FileContext.ts","../src/components/file/fileViewer/FileViewerList.tsx","../src/components/file/fileViewer/ImageViewer.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\";\r\nimport type { SxProps, Theme, TypographyProps } from \"@mui/material\";\r\n\r\ninterface TypographyWithIconProps extends TypographyProps {\r\n startIcon?: React.ReactNode;\r\n endIcon?: React.ReactNode;\r\n}\r\n\r\nexport const TypographyWithIcon: React.FC<TypographyWithIconProps> = ({ startIcon, endIcon, children, sx, ...props }) => {\r\n const iconSx: SxProps<Theme> = {\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n flexShrink: 0,\r\n lineHeight: 0,\r\n \"& > svg\": {\r\n display: \"block\",\r\n },\r\n };\r\n\r\n return (\r\n <Typography\r\n component=\"span\"\r\n sx={{\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n verticalAlign: \"middle\",\r\n ...sx,\r\n }}\r\n gap={1}\r\n {...props}\r\n >\r\n {startIcon && (\r\n <Stack component=\"span\" sx={iconSx}>\r\n {startIcon}\r\n </Stack>\r\n )}\r\n <Stack component=\"span\" sx={{ display: \"inline\", lineHeight: \"inherit\" }}>\r\n {children}\r\n </Stack>\r\n {endIcon && (\r\n <Stack component=\"span\" sx={iconSx}>\r\n {endIcon}\r\n </Stack>\r\n )}\r\n </Typography>\r\n );\r\n};","import { Box } from \"@mui/material\";\r\nimport { useEffect, useEffectEvent, useRef, useState } from \"react\";\r\nimport type { BoxProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\n\r\nexport const Fullscreen: FC<BoxProps> = ({ children, sx, ...props }) => {\r\n const reference = useRef<HTMLDivElement | null>(null);\r\n const [height, setHeight] = useState<number>();\r\n\r\n const recompute = useEffectEvent(() => {\r\n if (!reference.current) return;\r\n const top = Math.ceil(reference.current.getBoundingClientRect().top);\r\n const avail = Math.max(0, window.innerHeight - top);\r\n setHeight(avail);\r\n });\r\n\r\n useEffect(() => {\r\n const element = reference.current;\r\n if (!element) return;\r\n\r\n recompute();\r\n\r\n window.addEventListener(\"resize\", recompute);\r\n\r\n const ro = new ResizeObserver(recompute);\r\n ro.observe(document.documentElement);\r\n ro.observe(document.body);\r\n ro.observe(element);\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", recompute);\r\n ro.disconnect();\r\n };\r\n }, []);\r\n\r\n return (\r\n <Box\r\n ref={reference}\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n minHeight: 0,\r\n width: \"100%\",\r\n overflow: \"auto\",\r\n ...sx,\r\n }}\r\n height={height}\r\n {...props}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n};","import CloudUpload from \"@mui/icons-material/CloudUpload\";\r\nimport { Paper, Typography, useTheme } from \"@mui/material\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport type { SxProps, Theme} from \"@mui/material\";\r\nimport type { CSSProperties, FC } from \"react\";\r\nimport type { DropzoneOptions} from \"react-dropzone\";\r\n\r\nconst baseStyle: CSSProperties = {\r\n flex: 1,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n padding: \"20px\",\r\n borderWidth: 2,\r\n borderRadius: 2,\r\n borderStyle: \"dashed\",\r\n outline: \"none\",\r\n transition: \"border .24s ease-in-out\",\r\n cursor: \"pointer\",\r\n};\r\n\r\ninterface DropzoneProps extends DropzoneOptions {\r\n sx?: SxProps<Theme>;\r\n}\r\n\r\nexport const Dropzone: FC<DropzoneProps> = ({ sx, ...props }) => {\r\n const { getRootProps, getInputProps, isFocused, isDragAccept, isDragReject, } = useDropzone(props);\r\n const { t } = useTranslation();\r\n const theme = useTheme();\r\n\r\n const style = {\r\n ...baseStyle,\r\n ...(isFocused ? { borderColor: theme.palette.primary.main } : {}),\r\n ...(isDragAccept ? { borderColor: theme.palette.success.main } : {}),\r\n ...(isDragReject ? { borderColor: theme.palette.error.main } : {})\r\n };\r\n\r\n return (\r\n <Paper variant=\"outlined\" {...getRootProps({ style })} sx={sx}>\r\n <input {...getInputProps()} style={{ display: \"none\" }} />\r\n <CloudUpload />\r\n <Typography>{t(\"Layout.File.DragSomeFilesHereOrClickToSelectThem\")}</Typography>\r\n </Paper>\r\n );\r\n};","import { useState } from \"react\";\r\nimport { FileViewerGrid } from \"./fileViewer/FileViewerGrid\";\r\nimport { FileViewerList } from \"./fileViewer/FileViewerList\";\r\nimport { ImageViewer } from \"./fileViewer/ImageViewer\";\r\nimport type { FileViewerGridProps } from \"./fileViewer/FileViewerGrid\";\r\nimport type { ComponentType, FC, ReactNode } from \"react\";\r\nimport type { FileMeta } from \"~/models/file/FileMeta\";\r\nimport type { FileActions } from \"~/models/file/FileActions\";\r\nimport type { FileViewerListProps } from \"./fileViewer/FileViewerList\";\r\nimport { FileContext } from \"~/contexts/FileContext\";\r\nimport { useGetFileMetas } from \"~/queries/FileHooks\";\r\n\r\ninterface FileViewerComponent {\r\n Grid: ComponentType<FileViewerGridProps>;\r\n List: ComponentType<FileViewerListProps>;\r\n}\r\n\r\ninterface FileViewerProps {\r\n subId: string;\r\n onDelete?: (params: { remainingFileMetas: Array<FileMeta>; deletedFileMeta: FileMeta }) => void;\r\n actions?: FileActions;\r\n children: (component: FileViewerComponent) => ReactNode;\r\n}\r\n\r\nexport const FileViewer: FC<FileViewerProps> = ({ subId, onDelete, actions, children }) => {\r\n const { data: fileMetas = [] } = useGetFileMetas({ subId }, { enabled: !!subId });\r\n const [imageId, setImageId] = useState<string>(\"\");\r\n\r\n const components: FileViewerComponent = { Grid: FileViewerGrid, List: FileViewerList };\r\n\r\n if (fileMetas.length === 0) return null;\r\n\r\n return (\r\n <FileContext.Provider value={{ fileMetas, onDelete, actions, setImageId }}>\r\n {children(components)}\r\n <ImageViewer metaId={imageId} />\r\n </FileContext.Provider>\r\n );\r\n};\r\n","import MoreVert from \"@mui/icons-material/MoreVert\";\r\nimport { Box, IconButton, ImageListItem, ImageListItemBar, Stack, Tooltip } from \"@mui/material\";\r\nimport { grey } from \"@mui/material/colors\";\r\nimport React, { Fragment, useEffect, useState } from \"react\";\r\nimport { useInView } from \"react-intersection-observer\";\r\nimport { ActionsMenu } from \"./common/ActionsMenu\";\r\nimport type { SxProps, Theme } from \"@mui/material\";\r\nimport type { FileMeta } from \"~/models/file/FileMeta\";\r\nimport { useFile } from \"~/contexts/FileContext\";\r\nimport { useDownloadFile, useGetFileThumbnail, useOpenFile } from \"~/queries/FileHooks\";\r\n\r\nconst IMAGE_SIZE = 150;\r\n\r\ntype FileViewerGridItemBar = \"hidden\" | \"always\" | \"onMouseEnter\";\r\n\r\nexport interface FileViewerGridProps {\r\n size?: number;\r\n itemBar?: FileViewerGridItemBar;\r\n sx?: SxProps<Theme>;\r\n}\r\n\r\nexport const FileViewerGrid: React.FC<FileViewerGridProps> = ({ sx, size, itemBar }) => {\r\n const { fileMetas } = useFile();\r\n\r\n return (\r\n <Stack direction=\"row\" spacing={1} sx={{ overflow: \"auto\", ...sx }}>\r\n {fileMetas.map(fileMeta => (\r\n <GridFileViewerItem\r\n key={fileMeta.id}\r\n meta={fileMeta}\r\n size={size}\r\n itemBar={itemBar}\r\n />\r\n ))}\r\n </Stack>\r\n );\r\n};\r\n\r\ninterface GridFileViewerItemProps {\r\n meta: FileMeta;\r\n size?: number;\r\n itemBar?: FileViewerGridItemBar;\r\n}\r\n\r\nexport const GridFileViewerItem: React.FC<GridFileViewerItemProps> = ({ meta, size, itemBar }) => {\r\n const { setImageId, actions } = useFile();\r\n const [showItemBar, setShowItemBar] = useState<boolean>(itemBar === \"always\");\r\n const [menu, setMenu] = useState<{ mouseX: number; mouseY: number; } | null>(null);\r\n const { ref, inView } = useInView();\r\n\r\n useEffect(() => {\r\n setShowItemBar(itemBar === \"always\");\r\n }, [itemBar]);\r\n\r\n const { data: source } = useGetFileThumbnail({ meta }, { enabled: inView });\r\n\r\n const handleOnMouseEnter = () => setShowItemBar(true);\r\n const handleOnMouseLeave = () => itemBar !== \"always\" && setShowItemBar(false);\r\n\r\n const openMenu = (event: React.MouseEvent) => {\r\n setMenu(menu === null ? { mouseX: event.clientX, mouseY: event.clientY, } : null);\r\n setTimeout(() => setShowItemBar(true));\r\n };\r\n\r\n const { mutate: openFile } = useOpenFile();\r\n const { mutate: download } = useDownloadFile();\r\n\r\n const onClick = () => {\r\n switch (meta.mediaType) {\r\n case \"image\": { return setImageId(meta.id); }\r\n case \"application\": { return openFile(meta); }\r\n case \"video\": { return openFile(meta); }\r\n default: { return download(meta); }\r\n }\r\n };\r\n\r\n return (\r\n <Fragment>\r\n <ImageListItem sx={{ width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }} onMouseEnter={handleOnMouseEnter} onMouseLeave={handleOnMouseLeave} ref={ref}>\r\n <Box\r\n component=\"img\"\r\n src={source}\r\n loading=\"lazy\"\r\n alt={\"thumbnail-\" + meta.id}\r\n onClick={onClick}\r\n sx={{ cursor: \"pointer\", objectFit: \"contain\", width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }}\r\n />\r\n {(itemBar !== \"hidden\" && showItemBar) &&\r\n <ImageListItemBar\r\n title={\r\n <Tooltip title={meta.fileName}>\r\n <Box>\r\n {meta.fileName}\r\n </Box>\r\n </Tooltip>\r\n }\r\n actionIcon={\r\n (actions?.download !== false || actions.delete !== false) &&\r\n <IconButton sx={{ color: grey[100] }} onClick={openMenu}>\r\n <MoreVert />\r\n </IconButton>\r\n }\r\n />\r\n }\r\n </ImageListItem>\r\n\r\n {(actions?.download !== false || actions.delete !== false) && <ActionsMenu meta={meta} menu={menu} setMenu={setMenu} />}\r\n </Fragment>\r\n );\r\n};\r\n","import Delete from \"@mui/icons-material/Delete\";\r\nimport FileDownload from \"@mui/icons-material/FileDownload\";\r\nimport { List, ListItemButton, ListItemIcon, ListItemText, Menu } from \"@mui/material\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport type { FC } from \"react\";\r\nimport type { FileMeta } from \"~/models/file/FileMeta\";\r\nimport { useFile } from \"~/contexts/FileContext\";\r\nimport { useDialogs } from \"~/hooks/DialogsHooks\";\r\nimport { useDeleteFile, useDownloadFile } from \"~/queries/FileHooks\";\r\n\r\ninterface ActionsMenuProps {\r\n meta: FileMeta;\r\n menu: { mouseX: number; mouseY: number } | null;\r\n setMenu: (menu: { mouseX: number; mouseY: number } | null) => void;\r\n}\r\n\r\nexport const ActionsMenu: FC<ActionsMenuProps> = ({ meta, menu, setMenu }) => {\r\n const { t } = useTranslation();\r\n const { fileMetas, onDelete, actions } = useFile();\r\n const { confirm } = useDialogs();\r\n\r\n const handleMenuClose = () => { setMenu(null); };\r\n\r\n const { mutate: download, isPending: isDownloading } = useDownloadFile();\r\n const { mutate: deleteFile, isPending: isDeleting } = useDeleteFile();\r\n\r\n const handleOnDownload = () => {\r\n handleMenuClose();\r\n download(meta);\r\n };\r\n\r\n const handleOnDelete = async () => {\r\n if (!await confirm(t(\"Layout.File.AreYouSureYouWantToDelete\", { fileName: meta.fileName })))\r\n return;\r\n\r\n deleteFile(meta);\r\n handleMenuClose();\r\n\r\n if (onDelete) {\r\n const remainingFileMetas: Array<FileMeta> = fileMetas.filter(m => m.id !== meta.id);\r\n onDelete({ remainingFileMetas, deletedFileMeta: meta });\r\n }\r\n };\r\n\r\n return (\r\n <Menu open={menu !== null} onClose={handleMenuClose} anchorReference=\"anchorPosition\" variant=\"menu\"\r\n anchorPosition={menu === null ? undefined : { top: menu.mouseY, left: menu.mouseX }}>\r\n <List disablePadding>\r\n {actions?.download !== false &&\r\n <ListItemButton onClick={handleOnDownload} disabled={isDownloading}>\r\n <ListItemIcon>\r\n <FileDownload />\r\n </ListItemIcon>\r\n <ListItemText>{t(\"Layout.File.Download\")}</ListItemText>\r\n </ListItemButton>\r\n }\r\n {actions?.delete !== false &&\r\n <ListItemButton onClick={handleOnDelete} disabled={isDeleting}>\r\n <ListItemIcon>\r\n <Delete />\r\n </ListItemIcon>\r\n <ListItemText>{t(\"Layout.File.Delete\")}</ListItemText>\r\n </ListItemButton>\r\n }\r\n </List>\r\n </Menu>\r\n );\r\n};\r\n","import { createContext, useContext } from \"react\";\r\nimport type { FileMeta } from \"../models/file/FileMeta\";\r\nimport type { FileActions } from \"~/models/file/FileActions\";\r\n\r\nexport interface FileContextValue {\r\n fileMetas: Array<FileMeta>;\r\n onDelete?: (params: { remainingFileMetas: Array<FileMeta>; deletedFileMeta: FileMeta }) => void;\r\n actions?: FileActions;\r\n setImageId: (imageId: string) => void;\r\n};\r\n\r\nexport const FileContext = createContext<FileContextValue | null>(null);\r\n\r\nexport const useFile = () => {\r\n const context = useContext(FileContext);\r\n if (!context) {\r\n throw new Error(\"FileViewer components must be used within FileViewer\");\r\n }\r\n return context;\r\n};","import AttachFile from \"@mui/icons-material/AttachFile\";\r\nimport Image from \"@mui/icons-material/Image\";\r\nimport MoreVert from \"@mui/icons-material/MoreVert\";\r\nimport SmartDisplay from \"@mui/icons-material/SmartDisplay\";\r\nimport { IconButton, List, ListItemButton, ListItemIcon, ListItemText } from \"@mui/material\";\r\nimport { Fragment, useState } from \"react\";\r\nimport { ActionsMenu } from \"./common/ActionsMenu\";\r\nimport type { FC } from \"react\";\r\nimport type { SxProps, Theme } from \"@mui/material\";\r\nimport type { FileMeta } from \"~/models/file/FileMeta\";\r\nimport { useFile } from \"~/contexts/FileContext\";\r\nimport { useDownloadFile, useOpenFile } from \"~/queries/FileHooks\";\r\n\r\nexport interface FileViewerListProps {\r\n sx?: SxProps<Theme>;\r\n}\r\n\r\nexport const FileViewerList: FC<FileViewerListProps> = ({ sx }) => {\r\n const { fileMetas } = useFile();\r\n\r\n return (\r\n <List dense sx={sx}>\r\n {fileMetas.map(fileMeta =>\r\n <ListFileViewerItem\r\n key={fileMeta.id}\r\n meta={fileMeta}\r\n />\r\n )}\r\n </List>\r\n );\r\n};\r\n\r\ninterface ListFileViewerItemProps {\r\n meta: FileMeta;\r\n}\r\n\r\nexport const ListFileViewerItem: React.FC<ListFileViewerItemProps> = ({ meta }) => {\r\n const { setImageId, actions } = useFile();\r\n const [menu, setMenu] = useState<{ mouseX: number; mouseY: number; } | null>(null);\r\n\r\n const openMenu = (event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n setMenu(menu === null ? { mouseX: event.clientX, mouseY: event.clientY, } : null);\r\n };\r\n\r\n const { mutate: openFile } = useOpenFile();\r\n const { mutate: download } = useDownloadFile();\r\n\r\n const onClick = () => {\r\n switch (meta.mediaType) {\r\n case \"image\": { return setImageId(meta.id); }\r\n case \"application\": { return openFile(meta); }\r\n case \"video\": { return openFile(meta); }\r\n default: { return download(meta); }\r\n }\r\n };\r\n\r\n const icon = () => {\r\n switch (meta.mediaType) {\r\n case \"image\": {\r\n return <Image />;\r\n }\r\n case \"video\": {\r\n return <SmartDisplay />;\r\n }\r\n default: {\r\n return <AttachFile />;\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <Fragment>\r\n <ListItemButton key={meta.id} onClick={onClick}>\r\n <ListItemIcon>\r\n {icon()}\r\n </ListItemIcon>\r\n <ListItemText primary={`${meta.fileName}.${meta.fileExtension}`} />\r\n {(actions?.download !== false || actions.delete !== false) &&\r\n <IconButton edge=\"end\" onClick={openMenu}>\r\n <MoreVert />\r\n </IconButton>\r\n }\r\n </ListItemButton>\r\n\r\n {(actions?.download !== false || actions.delete !== false) && <ActionsMenu meta={meta} menu={menu} setMenu={setMenu} />}\r\n </Fragment>\r\n );\r\n};\r\n","import Close from \"@mui/icons-material/Close\";\r\nimport { Box, Dialog, Fab } from \"@mui/material\";\r\nimport React, { useEffect } from \"react\";\r\nimport type { FileMeta } from \"~/models/file/FileMeta\";\r\nimport { useFile } from \"~/contexts/FileContext\";\r\nimport { useGetFile } from \"~/queries/FileHooks\";\r\n\r\ninterface ImageViewerProps {\r\n metaId: string;\r\n}\r\n\r\nexport const ImageViewer: React.FC<ImageViewerProps> = ({ metaId }) => {\r\n const { fileMetas, setImageId } = useFile();\r\n\r\n const meta = fileMetas.find(m => m.id === metaId)!;\r\n\r\n const { data: source } = useGetFile({ meta });\r\n\r\n useEffect(() => {\r\n if (metaId)\r\n globalThis.addEventListener(\"keydown\", handleOnKeydown);\r\n\r\n return () => { globalThis.removeEventListener(\"keydown\", handleOnKeydown); };\r\n }, [metaId]);\r\n\r\n const handleOnKeydown = (event: KeyboardEvent) => {\r\n const images: Array<FileMeta> = fileMetas.filter(m => m.mediaType === \"image\");\r\n const imageIndex: number = images.findIndex(m => m.id === metaId);\r\n\r\n switch (event.key) {\r\n case \"ArrowLeft\": {\r\n return handleOnArrowLeft(images, imageIndex);\r\n }\r\n case \"ArrowRight\": {\r\n return handleOnArrowRight(images, imageIndex);\r\n }\r\n case \"Backspace\":\r\n case \"Escape\": {\r\n event.preventDefault();\r\n return onClose();\r\n }\r\n }\r\n };\r\n\r\n const handleOnArrowLeft = (images: Array<FileMeta>, index: number) => {\r\n if (index > 0) {\r\n const previousFile: FileMeta = images[index - 1];\r\n setImageId(previousFile.id);\r\n }\r\n };\r\n\r\n const handleOnArrowRight = (images: Array<FileMeta>, index: number) => {\r\n if (index < images.length - 1) {\r\n const nextFile: FileMeta = images[index + 1];\r\n setImageId(nextFile.id);\r\n }\r\n };\r\n\r\n const onClose = () => setImageId(\"\");\r\n\r\n if (!metaId) return null;\r\n\r\n return (\r\n <Dialog open onClose={onClose} maxWidth=\"xl\">\r\n <Box component=\"img\" src={source} alt={metaId} sx={{ maxWidth: \"100vw\", maxHeight: { xs: \"calc(100vh - 56px)\", sm: \"calc(100vh - 64px)\" } }} />\r\n\r\n <Fab size=\"medium\" onClick={onClose} sx={{ position: \"fixed\", top: 8, right: 8 }}>\r\n <Close />\r\n </Fab>\r\n </Dialog>\r\n );\r\n};\r\n","import { Chip, Stack } from \"@mui/material\";\r\nimport type { ChipProps} from \"@mui/material\";\r\nimport type { GridRenderCellParams, GridValidRowModel } from \"@mui/x-data-grid-premium\";\r\n\r\nconst isArray = (value: any) => Array.isArray(value);\r\n\r\ninterface ChipInputCellProps<T extends GridValidRowModel> {\r\n params: GridRenderCellParams<T>;\r\n slotProps?: ChipProps;\r\n getLabel?: (object: T) => string | number;\r\n}\r\n\r\nexport const ChipInputCell = <T extends GridValidRowModel>({ params, slotProps, getLabel }: ChipInputCellProps<T>) => {\r\n if (!params.value) return null;\r\n\r\n const getLabelValue = (value: any) => {\r\n if (getLabel) return getLabel(value);\r\n return value;\r\n };\r\n\r\n if (isArray(params.value))\r\n return (\r\n <Stack direction=\"row\" alignItems=\"center\" gap={1} sx={{ overflowX: \"auto\", height: \"100%\", width: params.colDef.computedWidth }}>\r\n {params.value.map((value: any, index) =>\r\n <Chip key={`${index + 1}-chip-input-cell`} label={getLabelValue(value)} {...slotProps} />\r\n )}\r\n </Stack>\r\n );\r\n\r\n return <Chip label={getLabelValue(params.value)} {...slotProps} />;\r\n};","import Edit from \"@mui/icons-material/Edit\";\r\nimport { TypographyWithIcon } from \"../core/TypographyWithIcon\";\r\nimport type { GridColumnHeaderParams, GridValidRowModel } from \"@mui/x-data-grid-premium\";\r\n\r\nexport const EditableColumnHeader = <T extends GridValidRowModel>({ colDef }: GridColumnHeaderParams<T>) => {\r\n return <TypographyWithIcon endIcon={<Edit color=\"disabled\" fontSize=\"small\" />} variant=\"body2\" className=\"MuiDataGrid-columnHeaderTitle\">{colDef.headerName}</TypographyWithIcon>;\r\n};","import { Button } from \"@mui/material\";\r\nimport { createLink } from \"@tanstack/react-router\";\r\nimport React from \"react\";\r\nimport type { ButtonProps } from \"@mui/material\";\r\nimport type { LinkComponent } from \"@tanstack/react-router\";\r\n\r\nconst Component = React.forwardRef<HTMLAnchorElement, ButtonProps<\"a\">>(function ButtonComponent(props, reference) {\r\n return <Button ref={reference} component=\"a\" {...props} />;\r\n});\r\n\r\nconst CreatedComponent = createLink(Component);\r\n\r\nexport const RouterButton: LinkComponent<typeof Component> = (props) => {\r\n return <CreatedComponent {...props} />;\r\n};","import { GridActionsCellItem } from \"@mui/x-data-grid-premium\";\r\nimport { createLink } from \"@tanstack/react-router\";\r\nimport React from \"react\";\r\nimport type { GridActionsCellItemProps } from \"@mui/x-data-grid-premium\";\r\nimport type { LinkComponent } from \"@tanstack/react-router\";\r\n\r\nconst Component = React.forwardRef<HTMLButtonElement, GridActionsCellItemProps>(\r\n function GridActionsCellItemComponent(props, reference) {\r\n return <GridActionsCellItem ref={reference} component=\"a\" {...props} />;\r\n }\r\n) as React.ForwardRefExoticComponent<GridActionsCellItemProps & React.RefAttributes<HTMLButtonElement>>;\r\n\r\nconst CreatedComponent = createLink(Component);\r\n\r\nexport const RouterGridActionsCellItem: LinkComponent<typeof Component> = (props) => {\r\n return <CreatedComponent {...props} />;\r\n};","import { IconButton } from \"@mui/material\";\r\nimport { createLink } from \"@tanstack/react-router\";\r\nimport React from \"react\";\r\nimport type { IconButtonProps } from \"@mui/material\";\r\nimport type { LinkComponent } from \"@tanstack/react-router\";\r\n\r\nconst Component = React.forwardRef<HTMLAnchorElement, IconButtonProps<\"a\">>(function IconButtonComponent(props, reference) {\r\n return <IconButton ref={reference} component=\"a\" {...props} />;\r\n});\r\n\r\nconst CreatedComponent = createLink(Component);\r\n\r\nexport const RouterIconButton: LinkComponent<typeof Component> = (props) => {\r\n return <CreatedComponent {...props} />;\r\n};","import { Link } from \"@mui/material\";\r\nimport { createLink } from \"@tanstack/react-router\";\r\nimport React from \"react\";\r\nimport type { LinkProps } from \"@mui/material\";\r\nimport type { LinkComponent } from \"@tanstack/react-router\";\r\n\r\nconst Component = React.forwardRef<HTMLAnchorElement, LinkProps>(function LinkComponent(props, reference) {\r\n return <Link ref={reference} {...props} />;\r\n});\r\n\r\nconst CreatedComponent = createLink(Component);\r\n\r\nexport const RouterLink: LinkComponent<typeof Component> = (props) => {\r\n return <CreatedComponent {...props} />;\r\n};","import { Tab } from \"@mui/material\";\r\nimport { createLink } from \"@tanstack/react-router\";\r\nimport React from \"react\";\r\nimport type { TabProps } from \"@mui/material\";\r\nimport type { LinkComponent } from \"@tanstack/react-router\";\r\n\r\nconst Component = React.forwardRef<HTMLAnchorElement, TabProps<\"a\">>(function TabComponent(props, reference) {\r\n return <Tab ref={reference} component=\"a\" {...props} />;\r\n});\r\n\r\nconst CreatedComponent = createLink(Component);\r\n\r\nexport const RouterTab: LinkComponent<typeof Component> = (props) => {\r\n return <CreatedComponent {...props} />;\r\n};","import { Box, Divider, Typography } from \"@mui/material\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function RouterNotFound() {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <Box height=\"100vh\" display=\"flex\" flexDirection=\"column\" alignItems=\"center\" justifyContent=\"center\" textAlign=\"center\" px={2} >\r\n <Box display=\"flex\" alignItems=\"center\" mb={4}>\r\n <Typography variant=\"h3\" component=\"span\" fontWeight={500} sx={{ lineHeight: 1 }}>404</Typography>\r\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 3 }} />\r\n <Typography variant=\"h5\" component=\"span\">{t(\"Layout.ThisPageCouldNotBeFound\")}</Typography>\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n","import { Box, Divider, Typography } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { ErrorComponentProps } from \"@tanstack/react-router\";\r\n\r\ninterface RouterErrorProps {\r\n error: ErrorComponentProps[\"error\"];\r\n}\r\n\r\nexport const RouterError: FC<RouterErrorProps> = ({ error }) => {\r\n\r\n return (\r\n <Box height=\"100vh\" display=\"flex\" flexDirection=\"column\" alignItems=\"center\" justifyContent=\"center\" textAlign=\"center\" px={2} >\r\n <Box display=\"flex\" alignItems=\"center\" mb={4}>\r\n <Typography variant=\"h3\" component=\"span\" fontWeight={500} sx={{ lineHeight: 1 }}>{error.name || \"500\"}</Typography>\r\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 3 }} />\r\n <Typography variant=\"h5\" component=\"span\">{error.message}</Typography>\r\n </Box>\r\n </Box>\r\n );\r\n};\r\n"],"mappings":"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","names":["jsx","Typography","jsx","jsxs","useState","Box","Stack","useEffect","useState","useTranslation","jsx","jsxs","useTranslation","jsx","jsxs","Stack","useState","useEffect","Box","MoreVert","IconButton","List","ListItemButton","ListItemIcon","ListItemText","Fragment","useState","jsx","jsxs","List","useState","Fragment","ListItemButton","ListItemIcon","ListItemText","IconButton","MoreVert","Box","useEffect","jsx","jsxs","useEffect","Box","jsx","jsxs","useState","Stack","jsx","jsx","React","jsx","createLink","React","jsx","Component","CreatedComponent","IconButton","createLink","React","jsx","Component","CreatedComponent","createLink","React","jsx","Component","CreatedComponent","createLink","React","jsx","Component","CreatedComponent","Box","Typography","useTranslation","jsx","jsxs","Box","Divider","Typography","jsx","jsxs"]}
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\";\r\nimport type { SxProps, Theme, TypographyProps } from \"@mui/material\";\r\n\r\ninterface TypographyWithIconProps extends TypographyProps {\r\n startIcon?: React.ReactNode;\r\n endIcon?: React.ReactNode;\r\n}\r\n\r\nexport const TypographyWithIcon: React.FC<TypographyWithIconProps> = ({ startIcon, endIcon, children, sx, ...props }) => {\r\n const iconSx: SxProps<Theme> = {\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"center\",\r\n flexShrink: 0,\r\n lineHeight: 0,\r\n \"& > svg\": {\r\n display: \"block\",\r\n },\r\n };\r\n\r\n return (\r\n <Typography\r\n component=\"span\"\r\n sx={{\r\n display: \"inline-flex\",\r\n alignItems: \"center\",\r\n verticalAlign: \"middle\",\r\n ...sx,\r\n }}\r\n gap={1}\r\n {...props}\r\n >\r\n {startIcon && (\r\n <Stack component=\"span\" sx={iconSx}>\r\n {startIcon}\r\n </Stack>\r\n )}\r\n <Stack component=\"span\" sx={{ display: \"inline\", lineHeight: \"inherit\" }}>\r\n {children}\r\n </Stack>\r\n {endIcon && (\r\n <Stack component=\"span\" sx={iconSx}>\r\n {endIcon}\r\n </Stack>\r\n )}\r\n </Typography>\r\n );\r\n};","import { Box } from \"@mui/material\";\r\nimport { useEffect, useEffectEvent, useRef, useState } from \"react\";\r\nimport type { BoxProps } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\n\r\nexport const Fullscreen: FC<BoxProps> = ({ children, sx, ...props }) => {\r\n const reference = useRef<HTMLDivElement | null>(null);\r\n const [height, setHeight] = useState<number>();\r\n\r\n const recompute = useEffectEvent(() => {\r\n if (!reference.current) return;\r\n const top = Math.ceil(reference.current.getBoundingClientRect().top);\r\n const avail = Math.max(0, window.innerHeight - top);\r\n setHeight(avail);\r\n });\r\n\r\n useEffect(() => {\r\n const element = reference.current;\r\n if (!element) return;\r\n\r\n recompute();\r\n\r\n window.addEventListener(\"resize\", recompute);\r\n\r\n const ro = new ResizeObserver(recompute);\r\n ro.observe(document.documentElement);\r\n ro.observe(document.body);\r\n ro.observe(element);\r\n\r\n return () => {\r\n window.removeEventListener(\"resize\", recompute);\r\n ro.disconnect();\r\n };\r\n }, []);\r\n\r\n return (\r\n <Box\r\n ref={reference}\r\n sx={{\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n minHeight: 0,\r\n width: \"100%\",\r\n overflow: \"auto\",\r\n ...sx,\r\n }}\r\n height={height}\r\n {...props}\r\n >\r\n {children}\r\n </Box>\r\n );\r\n};","import CloudUpload from \"@mui/icons-material/CloudUpload\";\r\nimport { Paper, Typography, useTheme } from \"@mui/material\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport type { SxProps, Theme} from \"@mui/material\";\r\nimport type { CSSProperties, FC } from \"react\";\r\nimport type { DropzoneOptions} from \"react-dropzone\";\r\n\r\nconst baseStyle: CSSProperties = {\r\n flex: 1,\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n alignItems: \"center\",\r\n padding: \"20px\",\r\n borderWidth: 2,\r\n borderRadius: 2,\r\n borderStyle: \"dashed\",\r\n outline: \"none\",\r\n transition: \"border .24s ease-in-out\",\r\n cursor: \"pointer\",\r\n};\r\n\r\ninterface DropzoneProps extends DropzoneOptions {\r\n sx?: SxProps<Theme>;\r\n}\r\n\r\nexport const Dropzone: FC<DropzoneProps> = ({ sx, ...props }) => {\r\n const { getRootProps, getInputProps, isFocused, isDragAccept, isDragReject, } = useDropzone(props);\r\n const { t } = useTranslation();\r\n const theme = useTheme();\r\n\r\n const style = {\r\n ...baseStyle,\r\n ...(isFocused ? { borderColor: theme.palette.primary.main } : {}),\r\n ...(isDragAccept ? { borderColor: theme.palette.success.main } : {}),\r\n ...(isDragReject ? { borderColor: theme.palette.error.main } : {})\r\n };\r\n\r\n return (\r\n <Paper variant=\"outlined\" {...getRootProps({ style })} sx={sx}>\r\n <input {...getInputProps()} style={{ display: \"none\" }} />\r\n <CloudUpload />\r\n <Typography>{t(\"Layout.File.DragSomeFilesHereOrClickToSelectThem\")}</Typography>\r\n </Paper>\r\n );\r\n};","import { createContext, useContext } from \"react\";\r\nimport type { FileMeta } from \"../models/file/FileMeta\";\r\nimport type { FileActions } from \"~/models/file/FileActions\";\r\n\r\nexport interface FileContextValue {\r\n fileMetas: Array<FileMeta>;\r\n onDelete?: (params: { remainingFileMetas: Array<FileMeta>; deletedFileMeta: FileMeta }) => void;\r\n actions?: FileActions;\r\n setImageId: (imageId: string) => void;\r\n};\r\n\r\nexport const FileContext = createContext<FileContextValue | null>(null);\r\n\r\nexport const useFile = () => {\r\n const context = useContext(FileContext);\r\n if (!context) {\r\n throw new Error(\"FileViewer components must be used within FileViewer\");\r\n }\r\n return context;\r\n};","import Delete from \"@mui/icons-material/Delete\";\r\nimport FileDownload from \"@mui/icons-material/FileDownload\";\r\nimport { List, ListItemButton, ListItemIcon, ListItemText, Menu } from \"@mui/material\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport type { FC } from \"react\";\r\nimport type { FileMeta } from \"~/models/file/FileMeta\";\r\nimport { useFile } from \"~/contexts/FileContext\";\r\nimport { useDialogs } from \"~/hooks/DialogsHooks\";\r\nimport { useDeleteFile, useDownloadFile } from \"~/queries/FileHooks\";\r\n\r\ninterface ActionsMenuProps {\r\n meta: FileMeta;\r\n menu: { mouseX: number; mouseY: number } | null;\r\n setMenu: (menu: { mouseX: number; mouseY: number } | null) => void;\r\n}\r\n\r\nexport const ActionsMenu: FC<ActionsMenuProps> = ({ meta, menu, setMenu }) => {\r\n const { t } = useTranslation();\r\n const { fileMetas, onDelete, actions } = useFile();\r\n const { confirm } = useDialogs();\r\n\r\n const handleMenuClose = () => { setMenu(null); };\r\n\r\n const { mutate: download, isPending: isDownloading } = useDownloadFile();\r\n const { mutate: deleteFile, isPending: isDeleting } = useDeleteFile();\r\n\r\n const handleOnDownload = () => {\r\n handleMenuClose();\r\n download(meta);\r\n };\r\n\r\n const handleOnDelete = async () => {\r\n if (!await confirm(t(\"Layout.File.AreYouSureYouWantToDelete\", { fileName: meta.fileName })))\r\n return;\r\n\r\n deleteFile(meta);\r\n handleMenuClose();\r\n\r\n if (onDelete) {\r\n const remainingFileMetas: Array<FileMeta> = fileMetas.filter(m => m.id !== meta.id);\r\n onDelete({ remainingFileMetas, deletedFileMeta: meta });\r\n }\r\n };\r\n\r\n return (\r\n <Menu open={menu !== null} onClose={handleMenuClose} anchorReference=\"anchorPosition\" variant=\"menu\"\r\n anchorPosition={menu === null ? undefined : { top: menu.mouseY, left: menu.mouseX }}>\r\n <List disablePadding>\r\n {actions?.download !== false &&\r\n <ListItemButton onClick={handleOnDownload} disabled={isDownloading}>\r\n <ListItemIcon>\r\n <FileDownload />\r\n </ListItemIcon>\r\n <ListItemText>{t(\"Layout.File.Download\")}</ListItemText>\r\n </ListItemButton>\r\n }\r\n {actions?.delete !== false &&\r\n <ListItemButton onClick={handleOnDelete} disabled={isDeleting}>\r\n <ListItemIcon>\r\n <Delete />\r\n </ListItemIcon>\r\n <ListItemText>{t(\"Layout.File.Delete\")}</ListItemText>\r\n </ListItemButton>\r\n }\r\n </List>\r\n </Menu>\r\n );\r\n};\r\n","import MoreVert from \"@mui/icons-material/MoreVert\";\r\nimport { Box, IconButton, ImageListItem, ImageListItemBar, Stack, Tooltip } from \"@mui/material\";\r\nimport { grey } from \"@mui/material/colors\";\r\nimport React, { Fragment, useEffect, useState } from \"react\";\r\nimport { useInView } from \"react-intersection-observer\";\r\nimport { ActionsMenu } from \"./common/ActionsMenu\";\r\nimport type { SxProps, Theme } from \"@mui/material\";\r\nimport type { FileMeta } from \"~/models/file/FileMeta\";\r\nimport { useFile } from \"~/contexts/FileContext\";\r\nimport { useDownloadFile, useGetFileThumbnail, useOpenFile } from \"~/queries/FileHooks\";\r\n\r\nconst IMAGE_SIZE = 150;\r\n\r\ntype FileViewerGridItemBar = \"hidden\" | \"always\" | \"onMouseEnter\";\r\n\r\nexport interface FileViewerGridProps {\r\n size?: number;\r\n itemBar?: FileViewerGridItemBar;\r\n sx?: SxProps<Theme>;\r\n}\r\n\r\nexport const FileViewerGrid: React.FC<FileViewerGridProps> = ({ sx, size, itemBar }) => {\r\n const { fileMetas } = useFile();\r\n\r\n return (\r\n <Stack direction=\"row\" spacing={1} sx={{ overflow: \"auto\", ...sx }}>\r\n {fileMetas.map(fileMeta => (\r\n <GridFileViewerItem\r\n key={fileMeta.id}\r\n meta={fileMeta}\r\n size={size}\r\n itemBar={itemBar}\r\n />\r\n ))}\r\n </Stack>\r\n );\r\n};\r\n\r\ninterface GridFileViewerItemProps {\r\n meta: FileMeta;\r\n size?: number;\r\n itemBar?: FileViewerGridItemBar;\r\n}\r\n\r\nexport const GridFileViewerItem: React.FC<GridFileViewerItemProps> = ({ meta, size, itemBar }) => {\r\n const { setImageId, actions } = useFile();\r\n const [showItemBar, setShowItemBar] = useState<boolean>(itemBar === \"always\");\r\n const [menu, setMenu] = useState<{ mouseX: number; mouseY: number; } | null>(null);\r\n const { ref, inView } = useInView();\r\n\r\n useEffect(() => {\r\n setShowItemBar(itemBar === \"always\");\r\n }, [itemBar]);\r\n\r\n const { data: source } = useGetFileThumbnail({ meta }, { enabled: inView });\r\n\r\n const handleOnMouseEnter = () => setShowItemBar(true);\r\n const handleOnMouseLeave = () => itemBar !== \"always\" && setShowItemBar(false);\r\n\r\n const openMenu = (event: React.MouseEvent) => {\r\n setMenu(menu === null ? { mouseX: event.clientX, mouseY: event.clientY, } : null);\r\n setTimeout(() => setShowItemBar(true));\r\n };\r\n\r\n const { mutate: openFile } = useOpenFile();\r\n const { mutate: download } = useDownloadFile();\r\n\r\n const onClick = () => {\r\n switch (meta.mediaType) {\r\n case \"image\": { return setImageId(meta.id); }\r\n case \"application\": { return openFile(meta); }\r\n case \"video\": { return openFile(meta); }\r\n default: { return download(meta); }\r\n }\r\n };\r\n\r\n return (\r\n <Fragment>\r\n <ImageListItem sx={{ width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }} onMouseEnter={handleOnMouseEnter} onMouseLeave={handleOnMouseLeave} ref={ref}>\r\n <Box\r\n component=\"img\"\r\n src={source}\r\n loading=\"lazy\"\r\n alt={\"thumbnail-\" + meta.id}\r\n onClick={onClick}\r\n sx={{ cursor: \"pointer\", objectFit: \"contain\", width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }}\r\n />\r\n {(itemBar !== \"hidden\" && showItemBar) &&\r\n <ImageListItemBar\r\n title={\r\n <Tooltip title={meta.fileName}>\r\n <Box>\r\n {meta.fileName}\r\n </Box>\r\n </Tooltip>\r\n }\r\n actionIcon={\r\n (actions?.download !== false || actions.delete !== false) &&\r\n <IconButton sx={{ color: grey[100] }} onClick={openMenu}>\r\n <MoreVert />\r\n </IconButton>\r\n }\r\n />\r\n }\r\n </ImageListItem>\r\n\r\n {(actions?.download !== false || actions.delete !== false) && <ActionsMenu meta={meta} menu={menu} setMenu={setMenu} />}\r\n </Fragment>\r\n );\r\n};\r\n","import AttachFile from \"@mui/icons-material/AttachFile\";\r\nimport Image from \"@mui/icons-material/Image\";\r\nimport MoreVert from \"@mui/icons-material/MoreVert\";\r\nimport SmartDisplay from \"@mui/icons-material/SmartDisplay\";\r\nimport { IconButton, List, ListItemButton, ListItemIcon, ListItemText } from \"@mui/material\";\r\nimport { Fragment, useState } from \"react\";\r\nimport { ActionsMenu } from \"./common/ActionsMenu\";\r\nimport type { FC } from \"react\";\r\nimport type { SxProps, Theme } from \"@mui/material\";\r\nimport type { FileMeta } from \"~/models/file/FileMeta\";\r\nimport { useFile } from \"~/contexts/FileContext\";\r\nimport { useDownloadFile, useOpenFile } from \"~/queries/FileHooks\";\r\n\r\nexport interface FileViewerListProps {\r\n sx?: SxProps<Theme>;\r\n}\r\n\r\nexport const FileViewerList: FC<FileViewerListProps> = ({ sx }) => {\r\n const { fileMetas } = useFile();\r\n\r\n return (\r\n <List dense sx={sx}>\r\n {fileMetas.map(fileMeta =>\r\n <ListFileViewerItem\r\n key={fileMeta.id}\r\n meta={fileMeta}\r\n />\r\n )}\r\n </List>\r\n );\r\n};\r\n\r\ninterface ListFileViewerItemProps {\r\n meta: FileMeta;\r\n}\r\n\r\nexport const ListFileViewerItem: React.FC<ListFileViewerItemProps> = ({ meta }) => {\r\n const { setImageId, actions } = useFile();\r\n const [menu, setMenu] = useState<{ mouseX: number; mouseY: number; } | null>(null);\r\n\r\n const openMenu = (event: React.MouseEvent) => {\r\n event.stopPropagation();\r\n setMenu(menu === null ? { mouseX: event.clientX, mouseY: event.clientY, } : null);\r\n };\r\n\r\n const { mutate: openFile } = useOpenFile();\r\n const { mutate: download } = useDownloadFile();\r\n\r\n const onClick = () => {\r\n switch (meta.mediaType) {\r\n case \"image\": { return setImageId(meta.id); }\r\n case \"application\": { return openFile(meta); }\r\n case \"video\": { return openFile(meta); }\r\n default: { return download(meta); }\r\n }\r\n };\r\n\r\n const icon = () => {\r\n switch (meta.mediaType) {\r\n case \"image\": {\r\n return <Image />;\r\n }\r\n case \"video\": {\r\n return <SmartDisplay />;\r\n }\r\n default: {\r\n return <AttachFile />;\r\n }\r\n }\r\n };\r\n\r\n return (\r\n <Fragment>\r\n <ListItemButton key={meta.id} onClick={onClick}>\r\n <ListItemIcon>\r\n {icon()}\r\n </ListItemIcon>\r\n <ListItemText primary={`${meta.fileName}.${meta.fileExtension}`} />\r\n {(actions?.download !== false || actions.delete !== false) &&\r\n <IconButton edge=\"end\" onClick={openMenu}>\r\n <MoreVert />\r\n </IconButton>\r\n }\r\n </ListItemButton>\r\n\r\n {(actions?.download !== false || actions.delete !== false) && <ActionsMenu meta={meta} menu={menu} setMenu={setMenu} />}\r\n </Fragment>\r\n );\r\n};\r\n","import Close from \"@mui/icons-material/Close\";\r\nimport { Box, Dialog, Fab } from \"@mui/material\";\r\nimport React, { useEffect } from \"react\";\r\nimport type { FileMeta } from \"~/models/file/FileMeta\";\r\nimport { useFile } from \"~/contexts/FileContext\";\r\nimport { useGetFile } from \"~/queries/FileHooks\";\r\n\r\ninterface ImageViewerProps {\r\n metaId: string;\r\n}\r\n\r\nexport const ImageViewer: React.FC<ImageViewerProps> = ({ metaId }) => {\r\n const { fileMetas, setImageId } = useFile();\r\n\r\n const meta = fileMetas.find(m => m.id === metaId)!;\r\n\r\n const { data: source } = useGetFile({ meta });\r\n\r\n useEffect(() => {\r\n if (metaId)\r\n globalThis.addEventListener(\"keydown\", handleOnKeydown);\r\n\r\n return () => { globalThis.removeEventListener(\"keydown\", handleOnKeydown); };\r\n }, [metaId]);\r\n\r\n const handleOnKeydown = (event: KeyboardEvent) => {\r\n const images: Array<FileMeta> = fileMetas.filter(m => m.mediaType === \"image\");\r\n const imageIndex: number = images.findIndex(m => m.id === metaId);\r\n\r\n switch (event.key) {\r\n case \"ArrowLeft\": {\r\n return handleOnArrowLeft(images, imageIndex);\r\n }\r\n case \"ArrowRight\": {\r\n return handleOnArrowRight(images, imageIndex);\r\n }\r\n case \"Backspace\":\r\n case \"Escape\": {\r\n event.preventDefault();\r\n return onClose();\r\n }\r\n }\r\n };\r\n\r\n const handleOnArrowLeft = (images: Array<FileMeta>, index: number) => {\r\n if (index > 0) {\r\n const previousFile: FileMeta = images[index - 1];\r\n setImageId(previousFile.id);\r\n }\r\n };\r\n\r\n const handleOnArrowRight = (images: Array<FileMeta>, index: number) => {\r\n if (index < images.length - 1) {\r\n const nextFile: FileMeta = images[index + 1];\r\n setImageId(nextFile.id);\r\n }\r\n };\r\n\r\n const onClose = () => setImageId(\"\");\r\n\r\n if (!metaId) return null;\r\n\r\n return (\r\n <Dialog open onClose={onClose} maxWidth=\"xl\">\r\n <Box component=\"img\" src={source} alt={metaId} sx={{ maxWidth: \"100vw\", maxHeight: { xs: \"calc(100vh - 56px)\", sm: \"calc(100vh - 64px)\" } }} />\r\n\r\n <Fab size=\"medium\" onClick={onClose} sx={{ position: \"fixed\", top: 8, right: 8 }}>\r\n <Close />\r\n </Fab>\r\n </Dialog>\r\n );\r\n};\r\n","import { useState } from \"react\";\r\nimport { FileViewerGrid } from \"./fileViewer/FileViewerGrid\";\r\nimport { FileViewerList } from \"./fileViewer/FileViewerList\";\r\nimport { ImageViewer } from \"./fileViewer/ImageViewer\";\r\nimport type { FileViewerGridProps } from \"./fileViewer/FileViewerGrid\";\r\nimport type { ComponentType, FC, ReactNode } from \"react\";\r\nimport type { FileMeta } from \"~/models/file/FileMeta\";\r\nimport type { FileActions } from \"~/models/file/FileActions\";\r\nimport type { FileViewerListProps } from \"./fileViewer/FileViewerList\";\r\nimport { FileContext } from \"~/contexts/FileContext\";\r\nimport { useGetFileMetas } from \"~/queries/FileHooks\";\r\n\r\ninterface FileViewerComponent {\r\n Grid: ComponentType<FileViewerGridProps>;\r\n List: ComponentType<FileViewerListProps>;\r\n}\r\n\r\ninterface FileViewerProps {\r\n subId: string;\r\n onDelete?: (params: { remainingFileMetas: Array<FileMeta>; deletedFileMeta: FileMeta }) => void;\r\n actions?: FileActions;\r\n children: (component: FileViewerComponent) => ReactNode;\r\n}\r\n\r\nexport const FileViewer: FC<FileViewerProps> = ({ subId, onDelete, actions, children }) => {\r\n const { data: fileMetas = [] } = useGetFileMetas({ subId }, { enabled: !!subId });\r\n const [imageId, setImageId] = useState<string>(\"\");\r\n\r\n const components: FileViewerComponent = { Grid: FileViewerGrid, List: FileViewerList };\r\n\r\n if (fileMetas.length === 0) return null;\r\n\r\n return (\r\n <FileContext.Provider value={{ fileMetas, onDelete, actions, setImageId }}>\r\n {children(components)}\r\n <ImageViewer metaId={imageId} />\r\n </FileContext.Provider>\r\n );\r\n};\r\n","import { Chip, Stack } from \"@mui/material\";\r\nimport type { ChipProps} from \"@mui/material\";\r\nimport type { GridRenderCellParams, GridValidRowModel } from \"@mui/x-data-grid-premium\";\r\n\r\nconst isArray = (value: any) => Array.isArray(value);\r\n\r\ninterface ChipInputCellProps<T extends GridValidRowModel> {\r\n params: GridRenderCellParams<T>;\r\n slotProps?: ChipProps;\r\n getLabel?: (object: T) => string | number;\r\n}\r\n\r\nexport const ChipInputCell = <T extends GridValidRowModel>({ params, slotProps, getLabel }: ChipInputCellProps<T>) => {\r\n if (!params.value) return null;\r\n\r\n const getLabelValue = (value: any) => {\r\n if (getLabel) return getLabel(value);\r\n return value;\r\n };\r\n\r\n if (isArray(params.value))\r\n return (\r\n <Stack direction=\"row\" alignItems=\"center\" gap={1} sx={{ overflowX: \"auto\", height: \"100%\", width: params.colDef.computedWidth }}>\r\n {params.value.map((value: any, index) =>\r\n <Chip key={`${index + 1}-chip-input-cell`} label={getLabelValue(value)} {...slotProps} />\r\n )}\r\n </Stack>\r\n );\r\n\r\n return <Chip label={getLabelValue(params.value)} {...slotProps} />;\r\n};","import Edit from \"@mui/icons-material/Edit\";\r\nimport { TypographyWithIcon } from \"../core/TypographyWithIcon\";\r\nimport type { GridColumnHeaderParams, GridValidRowModel } from \"@mui/x-data-grid-premium\";\r\n\r\nexport const EditableColumnHeader = <T extends GridValidRowModel>({ colDef }: GridColumnHeaderParams<T>) => {\r\n return <TypographyWithIcon endIcon={<Edit color=\"disabled\" fontSize=\"small\" />} variant=\"body2\" className=\"MuiDataGrid-columnHeaderTitle\">{colDef.headerName}</TypographyWithIcon>;\r\n};","import { Button } from \"@mui/material\";\r\nimport { createLink } from \"@tanstack/react-router\";\r\nimport React from \"react\";\r\nimport type { ButtonProps } from \"@mui/material\";\r\nimport type { LinkComponent } from \"@tanstack/react-router\";\r\n\r\nconst Component = React.forwardRef<HTMLAnchorElement, ButtonProps<\"a\">>(function ButtonComponent(props, reference) {\r\n return <Button ref={reference} component=\"a\" {...props} />;\r\n});\r\n\r\nconst CreatedComponent = createLink(Component);\r\n\r\nexport const RouterButton: LinkComponent<typeof Component> = (props) => {\r\n return <CreatedComponent {...props} />;\r\n};","import { GridActionsCellItem } from \"@mui/x-data-grid-premium\";\r\nimport { createLink } from \"@tanstack/react-router\";\r\nimport React from \"react\";\r\nimport type { GridActionsCellItemProps } from \"@mui/x-data-grid-premium\";\r\nimport type { LinkComponent } from \"@tanstack/react-router\";\r\n\r\nconst Component = React.forwardRef<HTMLButtonElement, GridActionsCellItemProps>(\r\n function GridActionsCellItemComponent(props, reference) {\r\n return <GridActionsCellItem ref={reference} component=\"a\" {...props} />;\r\n }\r\n) as React.ForwardRefExoticComponent<GridActionsCellItemProps & React.RefAttributes<HTMLButtonElement>>;\r\n\r\nconst CreatedComponent = createLink(Component);\r\n\r\nexport const RouterGridActionsCellItem: LinkComponent<typeof Component> = (props) => {\r\n return <CreatedComponent {...props} />;\r\n};","import { IconButton } from \"@mui/material\";\r\nimport { createLink } from \"@tanstack/react-router\";\r\nimport React from \"react\";\r\nimport type { IconButtonProps } from \"@mui/material\";\r\nimport type { LinkComponent } from \"@tanstack/react-router\";\r\n\r\nconst Component = React.forwardRef<HTMLAnchorElement, IconButtonProps<\"a\">>(function IconButtonComponent(props, reference) {\r\n return <IconButton ref={reference} component=\"a\" {...props} />;\r\n});\r\n\r\nconst CreatedComponent = createLink(Component);\r\n\r\nexport const RouterIconButton: LinkComponent<typeof Component> = (props) => {\r\n return <CreatedComponent {...props} />;\r\n};","import { Link } from \"@mui/material\";\r\nimport { createLink } from \"@tanstack/react-router\";\r\nimport React from \"react\";\r\nimport type { LinkProps } from \"@mui/material\";\r\nimport type { LinkComponent } from \"@tanstack/react-router\";\r\n\r\nconst Component = React.forwardRef<HTMLAnchorElement, LinkProps>(function LinkComponent(props, reference) {\r\n return <Link ref={reference} {...props} />;\r\n});\r\n\r\nconst CreatedComponent = createLink(Component);\r\n\r\nexport const RouterLink: LinkComponent<typeof Component> = (props) => {\r\n return <CreatedComponent {...props} />;\r\n};","import { Tab } from \"@mui/material\";\r\nimport { createLink } from \"@tanstack/react-router\";\r\nimport React from \"react\";\r\nimport type { TabProps } from \"@mui/material\";\r\nimport type { LinkComponent } from \"@tanstack/react-router\";\r\n\r\nconst Component = React.forwardRef<HTMLAnchorElement, TabProps<\"a\">>(function TabComponent(props, reference) {\r\n return <Tab ref={reference} component=\"a\" {...props} />;\r\n});\r\n\r\nconst CreatedComponent = createLink(Component);\r\n\r\nexport const RouterTab: LinkComponent<typeof Component> = (props) => {\r\n return <CreatedComponent {...props} />;\r\n};","import { Box, Divider, Typography } from \"@mui/material\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nexport function RouterNotFound() {\r\n const { t } = useTranslation();\r\n\r\n return (\r\n <Box height=\"100vh\" display=\"flex\" flexDirection=\"column\" alignItems=\"center\" justifyContent=\"center\" textAlign=\"center\" px={2} >\r\n <Box display=\"flex\" alignItems=\"center\" mb={4}>\r\n <Typography variant=\"h3\" component=\"span\" fontWeight={500} sx={{ lineHeight: 1 }}>404</Typography>\r\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 3 }} />\r\n <Typography variant=\"h5\" component=\"span\">{t(\"Layout.ThisPageCouldNotBeFound\")}</Typography>\r\n </Box>\r\n </Box>\r\n );\r\n}\r\n","import { Box, Divider, Typography } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport type { ErrorComponentProps } from \"@tanstack/react-router\";\r\n\r\ninterface RouterErrorProps {\r\n error: ErrorComponentProps[\"error\"];\r\n}\r\n\r\nexport const RouterError: FC<RouterErrorProps> = ({ error }) => {\r\n\r\n return (\r\n <Box height=\"100vh\" display=\"flex\" flexDirection=\"column\" alignItems=\"center\" justifyContent=\"center\" textAlign=\"center\" px={2} >\r\n <Box display=\"flex\" alignItems=\"center\" mb={4}>\r\n <Typography variant=\"h3\" component=\"span\" fontWeight={500} sx={{ lineHeight: 1 }}>{error.name || \"500\"}</Typography>\r\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 3 }} />\r\n <Typography variant=\"h5\" component=\"span\">{error.message}</Typography>\r\n </Box>\r\n </Box>\r\n );\r\n};\r\n"],"names":["Component","CreatedComponent"],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { CloseDialog, OpenDialog } from '../hooks/DialogsHooks';
2
+ export interface DialogsContextValue {
3
+ open: OpenDialog;
4
+ close: CloseDialog;
5
+ }
6
+ export declare const DialogsContext: import('react').Context<DialogsContextValue>;
@@ -0,0 +1,13 @@
1
+ import { FileMeta } from '../models/file/FileMeta';
2
+ import { FileActions } from '../models/file/FileActions';
3
+ export interface FileContextValue {
4
+ fileMetas: Array<FileMeta>;
5
+ onDelete?: (params: {
6
+ remainingFileMetas: Array<FileMeta>;
7
+ deletedFileMeta: FileMeta;
8
+ }) => void;
9
+ actions?: FileActions;
10
+ setImageId: (imageId: string) => void;
11
+ }
12
+ export declare const FileContext: import('react').Context<FileContextValue | null>;
13
+ export declare const useFile: () => FileContextValue;
@@ -0,0 +1,27 @@
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
+ DATABASE_URL: z.string(),
17
+ MICROSOFT_CLIENT_ID: z.string(),
18
+ MICROSOFT_CLIENT_SECRET: z.string()
19
+ },
20
+ runtimeEnv: process.env,
21
+ emptyStringAsUndefined: true
22
+ });
23
+ export {
24
+ clientEnv as c,
25
+ serverEnv as s
26
+ };
27
+ //# sourceMappingURL=env-CoxTjaDr.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-CoxTjaDr.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 DATABASE_URL: z.string(),\r\n MICROSOFT_CLIENT_ID: z.string(),\r\n MICROSOFT_CLIENT_SECRET: z.string(),\r\n },\r\n runtimeEnv: process.env,\r\n emptyStringAsUndefined: true,\r\n});\r\n"],"names":[],"mappings":";;;AAGO,MAAM,YAAY,UAAU;AAAA,EAC/B,cAAc;AAAA,EACd,QAAQ;AAAA,IACJ,gBAAgB,EAAE,OAAA;AAAA,IAClB,sBAAsB,EAAE,OAAA;AAAA,IACxB,cAAc,EAAE,IAAA;AAAA,EAAI;AAAA,EAExB,YAAY;AAAA,EACZ,wBAAwB;AAC5B,CAAC;AAEM,MAAM,YAAY,UAAU;AAAA,EAC/B,QAAQ;AAAA,IACJ,cAAc,EAAE,OAAA;AAAA,IAChB,qBAAqB,EAAE,OAAA;AAAA,IACvB,yBAAyB,EAAE,OAAA;AAAA,EAAO;AAAA,EAEtC,YAAY,QAAQ;AAAA,EACpB,wBAAwB;AAC5B,CAAC;"}
package/dist/env.d.ts ADDED
@@ -0,0 +1,10 @@
1
+ export declare const clientEnv: Readonly<{
2
+ VITE_APP_TITLE: string;
3
+ VITE_MUI_LICENSE_KEY: string;
4
+ VITE_API_URL: string;
5
+ }>;
6
+ export declare const serverEnv: Readonly<{
7
+ DATABASE_URL: string;
8
+ MICROSOFT_CLIENT_ID: string;
9
+ MICROSOFT_CLIENT_SECRET: string;
10
+ }>;
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,42 @@
1
+ import { ReactNode } from 'react';
2
+ export interface OpenDialogOptions<TResult> {
3
+ onClose?: (result: TResult) => Promise<void>;
4
+ }
5
+ export interface AlertOptions {
6
+ title?: ReactNode;
7
+ }
8
+ export interface ConfirmOptions {
9
+ title?: ReactNode;
10
+ cancelText?: ReactNode;
11
+ }
12
+ export interface DialogProps<TPayload = undefined, TResult = void> {
13
+ payload: TPayload;
14
+ open: boolean;
15
+ onClose: (result: TResult) => Promise<void>;
16
+ }
17
+ export type OpenAlertDialog = (message: ReactNode, options?: AlertOptions) => Promise<void>;
18
+ export type OpenConfirmDialog = (message: ReactNode, options?: ConfirmOptions) => Promise<boolean>;
19
+ export type DialogComponent<TPayload, TResult> = React.ComponentType<DialogProps<TPayload, TResult>>;
20
+ export interface OpenDialog {
21
+ <TPayload extends undefined, TResult>(Component: DialogComponent<TPayload, TResult>, payload?: TPayload, options?: OpenDialogOptions<TResult>): Promise<TResult>;
22
+ <TPayload, TResult>(Component: DialogComponent<TPayload, TResult>, payload: TPayload, options?: OpenDialogOptions<TResult>): Promise<TResult>;
23
+ }
24
+ export type CloseDialog = <TResult>(dialog: Promise<TResult>, result: TResult) => Promise<TResult>;
25
+ export interface AlertDialogPayload extends AlertOptions {
26
+ message: ReactNode;
27
+ }
28
+ export type AlertDialogProps = DialogProps<AlertDialogPayload, void>;
29
+ export declare function AlertDialog({ open, payload, onClose }: Readonly<AlertDialogProps>): import("react/jsx-runtime").JSX.Element;
30
+ export interface ConfirmDialogPayload extends ConfirmOptions {
31
+ message: ReactNode;
32
+ }
33
+ export type ConfirmDialogProps = DialogProps<ConfirmDialogPayload, boolean>;
34
+ export declare function ConfirmDialog({ open, payload, onClose }: Readonly<ConfirmDialogProps>): import("react/jsx-runtime").JSX.Element;
35
+ interface DialogHook {
36
+ alert: OpenAlertDialog;
37
+ confirm: OpenConfirmDialog;
38
+ open: OpenDialog;
39
+ close: CloseDialog;
40
+ }
41
+ export declare function useDialogs(): DialogHook;
42
+ export {};
@@ -0,0 +1,52 @@
1
+ export declare const fieldContext: import('react').Context<import('@tanstack/form-core').AnyFieldApi>, useFieldContext: <TData>() => import('@tanstack/form-core').FieldApi<any, string, TData, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any>, formContext: import('react').Context<import('@tanstack/form-core').AnyFormApi>, useFormContext: () => import('@tanstack/react-form').ReactFormExtendedApi<Record<string, never>, any, any, any, any, any, any, any, any, any, any, any>;
2
+ export 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, {
3
+ readonly TextField: import('react').FC<import('../components/form/FormTextField').FormTextFieldProps>;
4
+ readonly NumberField: import('react').FC<import('../components/form/FormNumberField').FormNumberFieldProps>;
5
+ readonly Autocomplete: import('react').FC<import('../components/form/FormAutocomplete').FormAutocompleteProps>;
6
+ readonly Checkbox: import('react').FC<import('../components/form/FormCheckbox').FormCheckboxProps>;
7
+ readonly Switch: import('react').FC<import('../components/form/FormSwitch').FormSwitchProps>;
8
+ readonly RadioGroup: import('react').FC<import('../components/form/FormRadioGroup').FormRadioGroupProps>;
9
+ readonly Slider: import('react').FC<import('../components/form/FormSlider').FormSliderProps>;
10
+ readonly DatePicker: import('react').FC<import('../components/form/FormDatePicker').FormDatePickerProps>;
11
+ readonly DateRangePicker: import('react').FC<import('../components/form/FormDateRangePicker').FormDateRangePickerProps>;
12
+ readonly TimePicker: import('react').FC<import('../components/form/FormTimePicker').FormTimePickerProps>;
13
+ readonly TimeRangePicker: import('react').FC<import('../components/form/FormTimeRangePicker').FormTimeRangePickerProps>;
14
+ readonly DateTimePicker: import('react').FC<import('../components/form/FormDateTimePicker').FormDateTimePickerProps>;
15
+ readonly DateTimeRangePicker: import('react').FC<import('../components/form/FormDateTimeRangePicker').FormDateTimeRangePickerProps>;
16
+ }, {
17
+ readonly SubmitButton: import('react').FC<import('../components/form/FormSubmitButton').FormSubmitButtonProps>;
18
+ }>, 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 = {}>({ render, props, }: import('@tanstack/react-form').WithFormProps<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta, {
19
+ readonly TextField: import('react').FC<import('../components/form/FormTextField').FormTextFieldProps>;
20
+ readonly NumberField: import('react').FC<import('../components/form/FormNumberField').FormNumberFieldProps>;
21
+ readonly Autocomplete: import('react').FC<import('../components/form/FormAutocomplete').FormAutocompleteProps>;
22
+ readonly Checkbox: import('react').FC<import('../components/form/FormCheckbox').FormCheckboxProps>;
23
+ readonly Switch: import('react').FC<import('../components/form/FormSwitch').FormSwitchProps>;
24
+ readonly RadioGroup: import('react').FC<import('../components/form/FormRadioGroup').FormRadioGroupProps>;
25
+ readonly Slider: import('react').FC<import('../components/form/FormSlider').FormSliderProps>;
26
+ readonly DatePicker: import('react').FC<import('../components/form/FormDatePicker').FormDatePickerProps>;
27
+ readonly DateRangePicker: import('react').FC<import('../components/form/FormDateRangePicker').FormDateRangePickerProps>;
28
+ readonly TimePicker: import('react').FC<import('../components/form/FormTimePicker').FormTimePickerProps>;
29
+ readonly TimeRangePicker: import('react').FC<import('../components/form/FormTimeRangePicker').FormTimeRangePickerProps>;
30
+ readonly DateTimePicker: import('react').FC<import('../components/form/FormDateTimePicker').FormDateTimePickerProps>;
31
+ readonly DateTimeRangePicker: import('react').FC<import('../components/form/FormDateTimeRangePicker').FormDateTimeRangePickerProps>;
32
+ }, {
33
+ readonly SubmitButton: import('react').FC<import('../components/form/FormSubmitButton').FormSubmitButtonProps>;
34
+ }, TRenderProps>) => (props: import('react').PropsWithChildren<NoInfer<[unknown] extends [TRenderProps] ? any : TRenderProps> & {
35
+ 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, {
36
+ readonly TextField: import('react').FC<import('../components/form/FormTextField').FormTextFieldProps>;
37
+ readonly NumberField: import('react').FC<import('../components/form/FormNumberField').FormNumberFieldProps>;
38
+ readonly Autocomplete: import('react').FC<import('../components/form/FormAutocomplete').FormAutocompleteProps>;
39
+ readonly Checkbox: import('react').FC<import('../components/form/FormCheckbox').FormCheckboxProps>;
40
+ readonly Switch: import('react').FC<import('../components/form/FormSwitch').FormSwitchProps>;
41
+ readonly RadioGroup: import('react').FC<import('../components/form/FormRadioGroup').FormRadioGroupProps>;
42
+ readonly Slider: import('react').FC<import('../components/form/FormSlider').FormSliderProps>;
43
+ readonly DatePicker: import('react').FC<import('../components/form/FormDatePicker').FormDatePickerProps>;
44
+ readonly DateRangePicker: import('react').FC<import('../components/form/FormDateRangePicker').FormDateRangePickerProps>;
45
+ readonly TimePicker: import('react').FC<import('../components/form/FormTimePicker').FormTimePickerProps>;
46
+ readonly TimeRangePicker: import('react').FC<import('../components/form/FormTimeRangePicker').FormTimeRangePickerProps>;
47
+ readonly DateTimePicker: import('react').FC<import('../components/form/FormDateTimePicker').FormDateTimePickerProps>;
48
+ readonly DateTimeRangePicker: import('react').FC<import('../components/form/FormDateTimeRangePicker').FormDateTimeRangePickerProps>;
49
+ }, {
50
+ readonly SubmitButton: import('react').FC<import('../components/form/FormSubmitButton').FormSubmitButtonProps>;
51
+ }>;
52
+ }>) => import('react').ReactNode;
@@ -0,0 +1,4 @@
1
+ import { CssVarsThemeOptions } from '@mui/material';
2
+ export declare const WISTRON_PRIMARY_COLOR = "#00506E";
3
+ export declare const WISTRON_SECONDARY_COLOR = "#64DC00";
4
+ export declare const useGetTheme: (theme?: Pick<CssVarsThemeOptions, "colorSchemes" | "components">) => import('@mui/material').Theme;
package/dist/hooks.d.ts CHANGED
@@ -1,160 +1,4 @@
1
- import { ButtonProps, TextFieldProps, SliderProps, RadioGroupProps, SwitchProps, CheckboxProps, AutocompleteProps } from '@mui/material';
2
- import { DateTimeRangePickerProps, DateTimePickerProps, TimeRangePickerProps, TimePickerProps, DateRangePickerProps, DatePickerProps } from '@mui/x-date-pickers-pro';
3
- import { F as FormOmittedProps } from './utils-ChipkRJ9.js';
4
- import { NumericFormatProps, InputAttributes } from 'react-number-format/types/types';
5
- import * as _tanstack_react_form from '@tanstack/react-form';
6
- import * as react from 'react';
7
- import { ReactNode } from 'react';
8
- import * as _tanstack_form_core from '@tanstack/form-core';
1
+ export { useFieldContext, useFormContext, useLayoutForm, withLayoutForm } from './hooks/FormHooks';
2
+ export { useDialogs } from './hooks/DialogsHooks';
3
+ export type { DialogProps } from './hooks/DialogsHooks';
9
4
  export { useInView } from 'react-intersection-observer';
10
- import 'axios';
11
- import 'uuidv7';
12
- import '@t3-oss/env-core';
13
-
14
- type FormSubmitButtonProps = Omit<ButtonProps, "loading" | "disabled" | "onClick" | "type">;
15
-
16
- interface FormDateTimeRangePickerProps extends Omit<DateTimeRangePickerProps, FormOmittedProps> {
17
- textFieldProps?: TextFieldProps;
18
- }
19
-
20
- interface FormDateTimePickerProps extends Omit<DateTimePickerProps, FormOmittedProps> {
21
- textFieldProps?: TextFieldProps;
22
- }
23
-
24
- interface FormTimeRangePickerProps extends Omit<TimeRangePickerProps, FormOmittedProps> {
25
- textFieldProps?: TextFieldProps;
26
- }
27
-
28
- interface FormTimePickerProps extends Omit<TimePickerProps, FormOmittedProps> {
29
- textFieldProps?: TextFieldProps;
30
- }
31
-
32
- interface FormDateRangePickerProps extends Omit<DateRangePickerProps, FormOmittedProps> {
33
- textFieldProps?: TextFieldProps;
34
- }
35
-
36
- interface FormDatePickerProps extends Omit<DatePickerProps, FormOmittedProps> {
37
- textFieldProps?: TextFieldProps;
38
- }
39
-
40
- interface FormSliderProps extends Omit<SliderProps, FormOmittedProps> {
41
- label?: string;
42
- }
43
-
44
- interface Option {
45
- label: string;
46
- value: string | number;
47
- }
48
- interface FormRadioGroupProps extends Omit<RadioGroupProps, FormOmittedProps> {
49
- label?: string;
50
- options: Array<Option>;
51
- }
52
-
53
- interface FormSwitchProps extends Omit<SwitchProps, FormOmittedProps> {
54
- label?: string;
55
- }
56
-
57
- interface FormCheckboxProps extends Omit<CheckboxProps, FormOmittedProps> {
58
- label?: string;
59
- }
60
-
61
- interface FormAutocompleteProps extends Omit<AutocompleteProps<any, boolean, boolean, boolean>, FormOmittedProps> {
62
- textFieldProps?: Omit<TextFieldProps, FormOmittedProps>;
63
- }
64
-
65
- interface FormNumberFieldProps extends Omit<TextFieldProps, FormOmittedProps> {
66
- defaultValue?: number | null;
67
- options?: Omit<NumericFormatProps<InputAttributes>, "customInput" | "onValueChange" | keyof InputAttributes>;
68
- }
69
-
70
- interface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> {
71
- type?: "color" | "email" | "password" | "search" | "tel" | "text" | "url";
72
- }
73
-
74
- declare const useFieldContext: <TData>() => _tanstack_form_core.FieldApi<any, string, TData, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any, any>;
75
- declare const useFormContext: () => _tanstack_react_form.ReactFormExtendedApi<Record<string, never>, any, any, any, any, any, any, any, any, any, any, any>;
76
- declare const useLayoutForm: <TFormData, TOnMount extends _tanstack_form_core.FormValidateOrFn<TFormData> | undefined, TOnChange extends _tanstack_form_core.FormValidateOrFn<TFormData> | undefined, TOnChangeAsync extends _tanstack_form_core.FormAsyncValidateOrFn<TFormData> | undefined, TOnBlur extends _tanstack_form_core.FormValidateOrFn<TFormData> | undefined, TOnBlurAsync extends _tanstack_form_core.FormAsyncValidateOrFn<TFormData> | undefined, TOnSubmit extends _tanstack_form_core.FormValidateOrFn<TFormData> | undefined, TOnSubmitAsync extends _tanstack_form_core.FormAsyncValidateOrFn<TFormData> | undefined, TOnDynamic extends _tanstack_form_core.FormValidateOrFn<TFormData> | undefined, TOnDynamicAsync extends _tanstack_form_core.FormAsyncValidateOrFn<TFormData> | undefined, TOnServer extends _tanstack_form_core.FormAsyncValidateOrFn<TFormData> | undefined, TSubmitMeta>(props: _tanstack_form_core.FormOptions<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta>) => _tanstack_react_form.AppFieldExtendedReactFormApi<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta, {
77
- readonly TextField: react.FC<FormTextFieldProps>;
78
- readonly NumberField: react.FC<FormNumberFieldProps>;
79
- readonly Autocomplete: react.FC<FormAutocompleteProps>;
80
- readonly Checkbox: react.FC<FormCheckboxProps>;
81
- readonly Switch: react.FC<FormSwitchProps>;
82
- readonly RadioGroup: react.FC<FormRadioGroupProps>;
83
- readonly Slider: react.FC<FormSliderProps>;
84
- readonly DatePicker: react.FC<FormDatePickerProps>;
85
- readonly DateRangePicker: react.FC<FormDateRangePickerProps>;
86
- readonly TimePicker: react.FC<FormTimePickerProps>;
87
- readonly TimeRangePicker: react.FC<FormTimeRangePickerProps>;
88
- readonly DateTimePicker: react.FC<FormDateTimePickerProps>;
89
- readonly DateTimeRangePicker: react.FC<FormDateTimeRangePickerProps>;
90
- }, {
91
- readonly SubmitButton: react.FC<FormSubmitButtonProps>;
92
- }>;
93
- declare const withLayoutForm: <TFormData, TOnMount extends _tanstack_form_core.FormValidateOrFn<TFormData> | undefined, TOnChange extends _tanstack_form_core.FormValidateOrFn<TFormData> | undefined, TOnChangeAsync extends _tanstack_form_core.FormAsyncValidateOrFn<TFormData> | undefined, TOnBlur extends _tanstack_form_core.FormValidateOrFn<TFormData> | undefined, TOnBlurAsync extends _tanstack_form_core.FormAsyncValidateOrFn<TFormData> | undefined, TOnSubmit extends _tanstack_form_core.FormValidateOrFn<TFormData> | undefined, TOnSubmitAsync extends _tanstack_form_core.FormAsyncValidateOrFn<TFormData> | undefined, TOnDynamic extends _tanstack_form_core.FormValidateOrFn<TFormData> | undefined, TOnDynamicAsync extends _tanstack_form_core.FormAsyncValidateOrFn<TFormData> | undefined, TOnServer extends _tanstack_form_core.FormAsyncValidateOrFn<TFormData> | undefined, TSubmitMeta, TRenderProps extends object = {}>({ render, props, }: _tanstack_react_form.WithFormProps<TFormData, TOnMount, TOnChange, TOnChangeAsync, TOnBlur, TOnBlurAsync, TOnSubmit, TOnSubmitAsync, TOnDynamic, TOnDynamicAsync, TOnServer, TSubmitMeta, {
94
- readonly TextField: react.FC<FormTextFieldProps>;
95
- readonly NumberField: react.FC<FormNumberFieldProps>;
96
- readonly Autocomplete: react.FC<FormAutocompleteProps>;
97
- readonly Checkbox: react.FC<FormCheckboxProps>;
98
- readonly Switch: react.FC<FormSwitchProps>;
99
- readonly RadioGroup: react.FC<FormRadioGroupProps>;
100
- readonly Slider: react.FC<FormSliderProps>;
101
- readonly DatePicker: react.FC<FormDatePickerProps>;
102
- readonly DateRangePicker: react.FC<FormDateRangePickerProps>;
103
- readonly TimePicker: react.FC<FormTimePickerProps>;
104
- readonly TimeRangePicker: react.FC<FormTimeRangePickerProps>;
105
- readonly DateTimePicker: react.FC<FormDateTimePickerProps>;
106
- readonly DateTimeRangePicker: react.FC<FormDateTimeRangePickerProps>;
107
- }, {
108
- readonly SubmitButton: react.FC<FormSubmitButtonProps>;
109
- }, TRenderProps>) => (props: react.PropsWithChildren<NoInfer<[unknown] extends [TRenderProps] ? any : TRenderProps> & {
110
- form: _tanstack_react_form.AppFieldExtendedReactFormApi<[unknown] extends [TFormData] ? any : TFormData, [_tanstack_form_core.FormValidateOrFn<TFormData> | undefined] extends [TOnMount] ? [TOnMount] extends [TOnMount & (_tanstack_form_core.FormValidateOrFn<TFormData> | undefined)] ? any : TOnMount : TOnMount, [_tanstack_form_core.FormValidateOrFn<TFormData> | undefined] extends [TOnChange] ? [TOnChange] extends [TOnChange & (_tanstack_form_core.FormValidateOrFn<TFormData> | undefined)] ? any : TOnChange : TOnChange, [_tanstack_form_core.FormValidateOrFn<TFormData> | undefined] extends [TOnChangeAsync] ? [TOnChangeAsync] extends [TOnChangeAsync & (_tanstack_form_core.FormValidateOrFn<TFormData> | undefined)] ? any : TOnChangeAsync : TOnChangeAsync, [_tanstack_form_core.FormValidateOrFn<TFormData> | undefined] extends [TOnBlur] ? [TOnBlur] extends [TOnBlur & (_tanstack_form_core.FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlur : TOnBlur, [_tanstack_form_core.FormValidateOrFn<TFormData> | undefined] extends [TOnBlurAsync] ? [TOnBlurAsync] extends [TOnBlurAsync & (_tanstack_form_core.FormValidateOrFn<TFormData> | undefined)] ? any : TOnBlurAsync : TOnBlurAsync, [_tanstack_form_core.FormValidateOrFn<TFormData> | undefined] extends [TOnSubmit] ? [TOnSubmit] extends [TOnSubmit & (_tanstack_form_core.FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmit : TOnSubmit, [_tanstack_form_core.FormValidateOrFn<TFormData> | undefined] extends [TOnSubmitAsync] ? [TOnSubmitAsync] extends [TOnSubmitAsync & (_tanstack_form_core.FormValidateOrFn<TFormData> | undefined)] ? any : TOnSubmitAsync : TOnSubmitAsync, [_tanstack_form_core.FormValidateOrFn<TFormData> | undefined] extends [TOnDynamic] ? [TOnDynamic] extends [TOnDynamic & (_tanstack_form_core.FormValidateOrFn<TFormData> | undefined)] ? any : TOnDynamic : TOnDynamic, [_tanstack_form_core.FormValidateOrFn<TFormData> | undefined] extends [TOnDynamicAsync] ? [TOnDynamicAsync] extends [TOnDynamicAsync & (_tanstack_form_core.FormValidateOrFn<TFormData> | undefined)] ? any : TOnDynamicAsync : TOnDynamicAsync, [_tanstack_form_core.FormValidateOrFn<TFormData> | undefined] extends [TOnServer] ? [TOnServer] extends [TOnServer & (_tanstack_form_core.FormValidateOrFn<TFormData> | undefined)] ? any : TOnServer : TOnServer, [unknown] extends [TSubmitMeta] ? any : TSubmitMeta, {
111
- readonly TextField: react.FC<FormTextFieldProps>;
112
- readonly NumberField: react.FC<FormNumberFieldProps>;
113
- readonly Autocomplete: react.FC<FormAutocompleteProps>;
114
- readonly Checkbox: react.FC<FormCheckboxProps>;
115
- readonly Switch: react.FC<FormSwitchProps>;
116
- readonly RadioGroup: react.FC<FormRadioGroupProps>;
117
- readonly Slider: react.FC<FormSliderProps>;
118
- readonly DatePicker: react.FC<FormDatePickerProps>;
119
- readonly DateRangePicker: react.FC<FormDateRangePickerProps>;
120
- readonly TimePicker: react.FC<FormTimePickerProps>;
121
- readonly TimeRangePicker: react.FC<FormTimeRangePickerProps>;
122
- readonly DateTimePicker: react.FC<FormDateTimePickerProps>;
123
- readonly DateTimeRangePicker: react.FC<FormDateTimeRangePickerProps>;
124
- }, {
125
- readonly SubmitButton: react.FC<FormSubmitButtonProps>;
126
- }>;
127
- }>) => react.ReactNode;
128
-
129
- interface OpenDialogOptions<TResult> {
130
- onClose?: (result: TResult) => Promise<void>;
131
- }
132
- interface AlertOptions {
133
- title?: ReactNode;
134
- }
135
- interface ConfirmOptions {
136
- title?: ReactNode;
137
- cancelText?: ReactNode;
138
- }
139
- interface DialogProps<TPayload = undefined, TResult = void> {
140
- payload: TPayload;
141
- open: boolean;
142
- onClose: (result: TResult) => Promise<void>;
143
- }
144
- type OpenAlertDialog = (message: ReactNode, options?: AlertOptions) => Promise<void>;
145
- type OpenConfirmDialog = (message: ReactNode, options?: ConfirmOptions) => Promise<boolean>;
146
- type DialogComponent<TPayload, TResult> = React.ComponentType<DialogProps<TPayload, TResult>>;
147
- interface OpenDialog {
148
- <TPayload extends undefined, TResult>(Component: DialogComponent<TPayload, TResult>, payload?: TPayload, options?: OpenDialogOptions<TResult>): Promise<TResult>;
149
- <TPayload, TResult>(Component: DialogComponent<TPayload, TResult>, payload: TPayload, options?: OpenDialogOptions<TResult>): Promise<TResult>;
150
- }
151
- type CloseDialog = <TResult>(dialog: Promise<TResult>, result: TResult) => Promise<TResult>;
152
- interface DialogHook {
153
- alert: OpenAlertDialog;
154
- confirm: OpenConfirmDialog;
155
- open: OpenDialog;
156
- close: CloseDialog;
157
- }
158
- declare function useDialogs(): DialogHook;
159
-
160
- export { type DialogProps, useDialogs, useFieldContext, useFormContext, useLayoutForm, withLayoutForm };