wcz-test 6.22.1 → 6.22.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ApprovalStatus-BtAVFn5p.js +8 -0
- package/dist/{ApprovalStatus-C9HPyMiS.js.map → ApprovalStatus-BtAVFn5p.js.map} +1 -1
- package/dist/DialogsContext-DMZRefiY.js.map +1 -1
- package/dist/DialogsHooks-BEZgPVSk.js +277 -0
- package/dist/DialogsHooks-BEZgPVSk.js.map +1 -0
- package/dist/FileHooks-BJdvBvBr.js +465 -0
- package/dist/FileHooks-BJdvBvBr.js.map +1 -0
- package/dist/FileMeta-G1oT3mYK.js.map +1 -1
- package/dist/RouterListItemButton-CagMd8F_.js +35 -0
- package/dist/RouterListItemButton-CagMd8F_.js.map +1 -0
- package/dist/{UseHook-DB7btKDE.js → UseHook-CGSDGsbk.js} +4 -2
- package/dist/{UseHook-DB7btKDE.js.map → UseHook-CGSDGsbk.js.map} +1 -1
- package/dist/client.js +1 -1
- package/dist/compiler-runtime-BGHur82y.js +46 -0
- package/dist/compiler-runtime-BGHur82y.js.map +1 -0
- package/dist/components.js +1362 -305
- package/dist/components.js.map +1 -1
- package/dist/hooks.js +937 -281
- package/dist/hooks.js.map +1 -1
- package/dist/index.js +1717 -505
- package/dist/index.js.map +1 -1
- package/dist/models.js +27 -50
- package/dist/models.js.map +1 -1
- package/dist/queries.js +755 -206
- package/dist/queries.js.map +1 -1
- package/dist/{utils-CKW5pi6k.js → utils-CCjnelFb.js} +47 -18
- package/dist/{utils-CKW5pi6k.js.map → utils-CCjnelFb.js.map} +1 -1
- package/dist/utils.js +1 -1
- package/dist/vite.js +9 -3
- package/dist/vite.js.map +1 -1
- package/package.json +1 -1
- package/dist/ApprovalStatus-C9HPyMiS.js +0 -24
- package/dist/DialogsHooks-DBK6rBoU.js +0 -37
- package/dist/DialogsHooks-DBK6rBoU.js.map +0 -1
- package/dist/FileHooks-BM2Oyvh6.js +0 -194
- package/dist/FileHooks-BM2Oyvh6.js.map +0 -1
- package/dist/RouterListItemButton-Vj6OoqkV.js +0 -15
- package/dist/RouterListItemButton-Vj6OoqkV.js.map +0 -1
package/dist/components.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"components.js","sources":["../src/components/core/TypographyWithIcon.tsx","../src/components/core/Fullscreen.tsx","../src/components/file/Dropzone.tsx","../src/contexts/FileContext.ts","../src/components/file/fileViewer/common/ActionsMenu.tsx","../src/components/file/fileViewer/FileViewerGrid.tsx","../src/components/file/fileViewer/FileViewerList.tsx","../src/components/file/fileViewer/ImageViewer.tsx","../src/components/file/FileViewer.tsx","../src/components/data-grid/ChipInputCell.tsx","../src/components/data-grid/EditableColumnHeader.tsx","../src/components/router/RouterButton.tsx","../src/components/router/RouterGridActionsCellItem.tsx","../src/components/router/RouterIconButton.tsx","../src/components/router/RouterLink.tsx","../src/components/router/RouterTab.tsx","../src/components/router/RouterNotFound.tsx","../src/components/router/RouterError.tsx"],"sourcesContent":["import { Stack, Typography } from \"@mui/material\";\nimport type { SxProps, Theme, TypographyProps } from \"@mui/material\";\n\ninterface TypographyWithIconProps extends TypographyProps {\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n}\n\nexport const TypographyWithIcon: React.FC<TypographyWithIconProps> = ({ startIcon, endIcon, children, sx, ...props }) => {\n const iconSx: SxProps<Theme> = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n lineHeight: 0,\n \"& > svg\": {\n display: \"block\",\n },\n };\n\n return (\n <Typography\n component=\"span\"\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n verticalAlign: \"middle\",\n ...sx,\n }}\n gap={1}\n {...props}\n >\n {startIcon && (\n <Stack component=\"span\" sx={iconSx}>\n {startIcon}\n </Stack>\n )}\n <Stack component=\"span\" sx={{ display: \"inline\", lineHeight: \"inherit\" }}>\n {children}\n </Stack>\n {endIcon && (\n <Stack component=\"span\" sx={iconSx}>\n {endIcon}\n </Stack>\n )}\n </Typography>\n );\n};","import { Box } from \"@mui/material\";\nimport { useEffect, useEffectEvent, useRef, useState } from \"react\";\nimport type { BoxProps } from \"@mui/material\";\nimport type { FC } from \"react\";\n\nexport const Fullscreen: FC<BoxProps> = ({ children, sx, ...props }) => {\n const reference = useRef<HTMLDivElement | null>(null);\n const [height, setHeight] = useState<number>();\n\n const recompute = useEffectEvent(() => {\n if (!reference.current) return;\n const top = Math.ceil(reference.current.getBoundingClientRect().top);\n const avail = Math.max(0, window.innerHeight - top);\n setHeight(avail);\n });\n\n useEffect(() => {\n const element = reference.current;\n if (!element) return;\n\n recompute();\n\n window.addEventListener(\"resize\", recompute);\n\n const ro = new ResizeObserver(recompute);\n ro.observe(document.documentElement);\n ro.observe(document.body);\n ro.observe(element);\n\n return () => {\n window.removeEventListener(\"resize\", recompute);\n ro.disconnect();\n };\n }, []);\n\n return (\n <Box\n ref={reference}\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n minHeight: 0,\n width: \"100%\",\n overflow: \"auto\",\n ...sx,\n }}\n height={height}\n {...props}\n >\n {children}\n </Box>\n );\n};","import CloudUpload from \"@mui/icons-material/CloudUpload\";\nimport { Paper, Typography, useTheme } from \"@mui/material\";\nimport { useDropzone } from \"react-dropzone\";\nimport { useTranslation } from \"react-i18next\";\nimport type { SxProps, Theme} from \"@mui/material\";\nimport type { CSSProperties, FC } from \"react\";\nimport type { DropzoneOptions} from \"react-dropzone\";\n\nconst baseStyle: CSSProperties = {\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: \"20px\",\n borderWidth: 2,\n borderRadius: 2,\n borderStyle: \"dashed\",\n outline: \"none\",\n transition: \"border .24s ease-in-out\",\n cursor: \"pointer\",\n};\n\ninterface DropzoneProps extends DropzoneOptions {\n sx?: SxProps<Theme>;\n}\n\nexport const Dropzone: FC<DropzoneProps> = ({ sx, ...props }) => {\n const { getRootProps, getInputProps, isFocused, isDragAccept, isDragReject, } = useDropzone(props);\n const { t } = useTranslation();\n const theme = useTheme();\n\n const style = {\n ...baseStyle,\n ...(isFocused ? { borderColor: theme.palette.primary.main } : {}),\n ...(isDragAccept ? { borderColor: theme.palette.success.main } : {}),\n ...(isDragReject ? { borderColor: theme.palette.error.main } : {})\n };\n\n return (\n <Paper variant=\"outlined\" {...getRootProps({ style })} sx={sx}>\n <input {...getInputProps()} style={{ display: \"none\" }} />\n <CloudUpload />\n <Typography>{t(\"Layout.File.DragSomeFilesHereOrClickToSelectThem\")}</Typography>\n </Paper>\n );\n};","import { createContext, useContext } from \"react\";\nimport type { FileMeta } from \"../models/file/FileMeta\";\nimport type { FileActions } from \"~/models/file/FileActions\";\n\nexport interface FileContextValue {\n fileMetas: Array<FileMeta>;\n onDelete?: (params: { remainingFileMetas: Array<FileMeta>; deletedFileMeta: FileMeta }) => void;\n actions?: FileActions;\n setImageId: (imageId: string) => void;\n};\n\nexport const FileContext = createContext<FileContextValue | null>(null);\n\nexport const useFile = () => {\n const context = useContext(FileContext);\n if (!context) {\n throw new Error(\"FileViewer components must be used within FileViewer\");\n }\n return context;\n};","import Delete from \"@mui/icons-material/Delete\";\nimport FileDownload from \"@mui/icons-material/FileDownload\";\nimport { List, ListItemButton, ListItemIcon, ListItemText, Menu } from \"@mui/material\";\nimport { useTranslation } from \"react-i18next\";\nimport type { FC } from \"react\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport { useFile } from \"~/contexts/FileContext\";\nimport { useDialogs } from \"~/hooks/DialogsHooks\";\nimport { useDeleteFile, useDownloadFile } from \"~/queries/FileHooks\";\n\ninterface ActionsMenuProps {\n meta: FileMeta;\n menu: { mouseX: number; mouseY: number } | null;\n setMenu: (menu: { mouseX: number; mouseY: number } | null) => void;\n}\n\nexport const ActionsMenu: FC<ActionsMenuProps> = ({ meta, menu, setMenu }) => {\n const { t } = useTranslation();\n const { fileMetas, onDelete, actions } = useFile();\n const { confirm } = useDialogs();\n\n const handleMenuClose = () => { setMenu(null); };\n\n const { mutate: download, isPending: isDownloading } = useDownloadFile();\n const { mutate: deleteFile, isPending: isDeleting } = useDeleteFile();\n\n const handleOnDownload = () => {\n handleMenuClose();\n download(meta);\n };\n\n const handleOnDelete = async () => {\n if (!await confirm(t(\"Layout.File.AreYouSureYouWantToDelete\", { fileName: meta.fileName })))\n return;\n\n deleteFile(meta);\n handleMenuClose();\n\n if (onDelete) {\n const remainingFileMetas: Array<FileMeta> = fileMetas.filter(m => m.id !== meta.id);\n onDelete({ remainingFileMetas, deletedFileMeta: meta });\n }\n };\n\n return (\n <Menu open={menu !== null} onClose={handleMenuClose} anchorReference=\"anchorPosition\" variant=\"menu\"\n anchorPosition={menu === null ? undefined : { top: menu.mouseY, left: menu.mouseX }}>\n <List disablePadding>\n {actions?.download !== false &&\n <ListItemButton onClick={handleOnDownload} disabled={isDownloading}>\n <ListItemIcon>\n <FileDownload />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.File.Download\")}</ListItemText>\n </ListItemButton>\n }\n {actions?.delete !== false &&\n <ListItemButton onClick={handleOnDelete} disabled={isDeleting}>\n <ListItemIcon>\n <Delete />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.File.Delete\")}</ListItemText>\n </ListItemButton>\n }\n </List>\n </Menu>\n );\n};\n","import MoreVert from \"@mui/icons-material/MoreVert\";\nimport { Box, IconButton, ImageListItem, ImageListItemBar, Stack, Tooltip } from \"@mui/material\";\nimport { grey } from \"@mui/material/colors\";\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useInView } from \"react-intersection-observer\";\nimport { ActionsMenu } from \"./common/ActionsMenu\";\nimport type { SxProps, Theme } from \"@mui/material\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport { useFile } from \"~/contexts/FileContext\";\nimport { useDownloadFile, useGetFileThumbnail, useOpenFile } from \"~/queries/FileHooks\";\n\nconst IMAGE_SIZE = 150;\n\ntype FileViewerGridItemBar = \"hidden\" | \"always\" | \"onMouseEnter\";\n\nexport interface FileViewerGridProps {\n size?: number;\n itemBar?: FileViewerGridItemBar;\n sx?: SxProps<Theme>;\n}\n\nexport const FileViewerGrid: React.FC<FileViewerGridProps> = ({ sx, size, itemBar }) => {\n const { fileMetas } = useFile();\n\n return (\n <Stack direction=\"row\" spacing={1} sx={{ overflow: \"auto\", ...sx }}>\n {fileMetas.map(fileMeta => (\n <GridFileViewerItem\n key={fileMeta.id}\n meta={fileMeta}\n size={size}\n itemBar={itemBar}\n />\n ))}\n </Stack>\n );\n};\n\ninterface GridFileViewerItemProps {\n meta: FileMeta;\n size?: number;\n itemBar?: FileViewerGridItemBar;\n}\n\nexport const GridFileViewerItem: React.FC<GridFileViewerItemProps> = ({ meta, size, itemBar }) => {\n const { setImageId, actions } = useFile();\n const [showItemBar, setShowItemBar] = useState<boolean>(itemBar === \"always\");\n const [menu, setMenu] = useState<{ mouseX: number; mouseY: number; } | null>(null);\n const { ref, inView } = useInView();\n\n useEffect(() => {\n setShowItemBar(itemBar === \"always\");\n }, [itemBar]);\n\n const { data: source } = useGetFileThumbnail({ meta }, { enabled: inView });\n\n const handleOnMouseEnter = () => setShowItemBar(true);\n const handleOnMouseLeave = () => itemBar !== \"always\" && setShowItemBar(false);\n\n const openMenu = (event: React.MouseEvent) => {\n setMenu(menu === null ? { mouseX: event.clientX, mouseY: event.clientY, } : null);\n setTimeout(() => setShowItemBar(true));\n };\n\n const { mutate: openFile } = useOpenFile();\n const { mutate: download } = useDownloadFile();\n\n const onClick = () => {\n switch (meta.mediaType) {\n case \"image\": { return setImageId(meta.id); }\n case \"application\": { return openFile(meta); }\n case \"video\": { return openFile(meta); }\n default: { return download(meta); }\n }\n };\n\n return (\n <Fragment>\n <ImageListItem sx={{ width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }} onMouseEnter={handleOnMouseEnter} onMouseLeave={handleOnMouseLeave} ref={ref}>\n <Box\n component=\"img\"\n src={source}\n loading=\"lazy\"\n alt={\"thumbnail-\" + meta.id}\n onClick={onClick}\n sx={{ cursor: \"pointer\", objectFit: \"contain\", width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }}\n />\n {(itemBar !== \"hidden\" && showItemBar) &&\n <ImageListItemBar\n title={\n <Tooltip title={meta.fileName}>\n <Box>\n {meta.fileName}\n </Box>\n </Tooltip>\n }\n actionIcon={\n (actions?.download !== false || actions.delete !== false) &&\n <IconButton sx={{ color: grey[100] }} onClick={openMenu}>\n <MoreVert />\n </IconButton>\n }\n />\n }\n </ImageListItem>\n\n {(actions?.download !== false || actions.delete !== false) && <ActionsMenu meta={meta} menu={menu} setMenu={setMenu} />}\n </Fragment>\n );\n};\n","import AttachFile from \"@mui/icons-material/AttachFile\";\nimport Image from \"@mui/icons-material/Image\";\nimport MoreVert from \"@mui/icons-material/MoreVert\";\nimport SmartDisplay from \"@mui/icons-material/SmartDisplay\";\nimport { IconButton, List, ListItemButton, ListItemIcon, ListItemText } from \"@mui/material\";\nimport { Fragment, useState } from \"react\";\nimport { ActionsMenu } from \"./common/ActionsMenu\";\nimport type { FC } from \"react\";\nimport type { SxProps, Theme } from \"@mui/material\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport { useFile } from \"~/contexts/FileContext\";\nimport { useDownloadFile, useOpenFile } from \"~/queries/FileHooks\";\n\nexport interface FileViewerListProps {\n sx?: SxProps<Theme>;\n}\n\nexport const FileViewerList: FC<FileViewerListProps> = ({ sx }) => {\n const { fileMetas } = useFile();\n\n return (\n <List dense sx={sx}>\n {fileMetas.map(fileMeta =>\n <ListFileViewerItem\n key={fileMeta.id}\n meta={fileMeta}\n />\n )}\n </List>\n );\n};\n\ninterface ListFileViewerItemProps {\n meta: FileMeta;\n}\n\nexport const ListFileViewerItem: React.FC<ListFileViewerItemProps> = ({ meta }) => {\n const { setImageId, actions } = useFile();\n const [menu, setMenu] = useState<{ mouseX: number; mouseY: number; } | null>(null);\n\n const openMenu = (event: React.MouseEvent) => {\n event.stopPropagation();\n setMenu(menu === null ? { mouseX: event.clientX, mouseY: event.clientY, } : null);\n };\n\n const { mutate: openFile } = useOpenFile();\n const { mutate: download } = useDownloadFile();\n\n const onClick = () => {\n switch (meta.mediaType) {\n case \"image\": { return setImageId(meta.id); }\n case \"application\": { return openFile(meta); }\n case \"video\": { return openFile(meta); }\n default: { return download(meta); }\n }\n };\n\n const icon = () => {\n switch (meta.mediaType) {\n case \"image\": {\n return <Image />;\n }\n case \"video\": {\n return <SmartDisplay />;\n }\n default: {\n return <AttachFile />;\n }\n }\n };\n\n return (\n <Fragment>\n <ListItemButton key={meta.id} onClick={onClick}>\n <ListItemIcon>\n {icon()}\n </ListItemIcon>\n <ListItemText primary={`${meta.fileName}.${meta.fileExtension}`} />\n {(actions?.download !== false || actions.delete !== false) &&\n <IconButton edge=\"end\" onClick={openMenu}>\n <MoreVert />\n </IconButton>\n }\n </ListItemButton>\n\n {(actions?.download !== false || actions.delete !== false) && <ActionsMenu meta={meta} menu={menu} setMenu={setMenu} />}\n </Fragment>\n );\n};\n","import Close from \"@mui/icons-material/Close\";\nimport { Box, Dialog, Fab } from \"@mui/material\";\nimport React, { useEffect } from \"react\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport { useFile } from \"~/contexts/FileContext\";\nimport { useGetFile } from \"~/queries/FileHooks\";\n\ninterface ImageViewerProps {\n metaId: string;\n}\n\nexport const ImageViewer: React.FC<ImageViewerProps> = ({ metaId }) => {\n const { fileMetas, setImageId } = useFile();\n\n const meta = fileMetas.find(m => m.id === metaId)!;\n\n const { data: source } = useGetFile({ meta });\n\n useEffect(() => {\n if (metaId)\n globalThis.addEventListener(\"keydown\", handleOnKeydown);\n\n return () => { globalThis.removeEventListener(\"keydown\", handleOnKeydown); };\n }, [metaId]);\n\n const handleOnKeydown = (event: KeyboardEvent) => {\n const images: Array<FileMeta> = fileMetas.filter(m => m.mediaType === \"image\");\n const imageIndex: number = images.findIndex(m => m.id === metaId);\n\n switch (event.key) {\n case \"ArrowLeft\": {\n return handleOnArrowLeft(images, imageIndex);\n }\n case \"ArrowRight\": {\n return handleOnArrowRight(images, imageIndex);\n }\n case \"Backspace\":\n case \"Escape\": {\n event.preventDefault();\n return onClose();\n }\n }\n };\n\n const handleOnArrowLeft = (images: Array<FileMeta>, index: number) => {\n if (index > 0) {\n const previousFile: FileMeta = images[index - 1];\n setImageId(previousFile.id);\n }\n };\n\n const handleOnArrowRight = (images: Array<FileMeta>, index: number) => {\n if (index < images.length - 1) {\n const nextFile: FileMeta = images[index + 1];\n setImageId(nextFile.id);\n }\n };\n\n const onClose = () => setImageId(\"\");\n\n if (!metaId) return null;\n\n return (\n <Dialog open onClose={onClose} maxWidth=\"xl\">\n <Box component=\"img\" src={source} alt={metaId} sx={{ maxWidth: \"100vw\", maxHeight: { xs: \"calc(100vh - 56px)\", sm: \"calc(100vh - 64px)\" } }} />\n\n <Fab size=\"medium\" onClick={onClose} sx={{ position: \"fixed\", top: 8, right: 8 }}>\n <Close />\n </Fab>\n </Dialog>\n );\n};\n","import { useState } from \"react\";\nimport { FileViewerGrid } from \"./fileViewer/FileViewerGrid\";\nimport { FileViewerList } from \"./fileViewer/FileViewerList\";\nimport { ImageViewer } from \"./fileViewer/ImageViewer\";\nimport type { FileViewerGridProps } from \"./fileViewer/FileViewerGrid\";\nimport type { ComponentType, FC, ReactNode } from \"react\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport type { FileActions } from \"~/models/file/FileActions\";\nimport type { FileViewerListProps } from \"./fileViewer/FileViewerList\";\nimport { FileContext } from \"~/contexts/FileContext\";\nimport { useGetFileMetas } from \"~/queries/FileHooks\";\n\ninterface FileViewerComponent {\n Grid: ComponentType<FileViewerGridProps>;\n List: ComponentType<FileViewerListProps>;\n}\n\ninterface FileViewerProps {\n subId: string;\n onDelete?: (params: { remainingFileMetas: Array<FileMeta>; deletedFileMeta: FileMeta }) => void;\n actions?: FileActions;\n children: (component: FileViewerComponent) => ReactNode;\n}\n\nexport const FileViewer: FC<FileViewerProps> = ({ subId, onDelete, actions, children }) => {\n const { data: fileMetas = [] } = useGetFileMetas({ subId }, { enabled: !!subId });\n const [imageId, setImageId] = useState<string>(\"\");\n\n const components: FileViewerComponent = { Grid: FileViewerGrid, List: FileViewerList };\n\n if (fileMetas.length === 0) return null;\n\n return (\n <FileContext.Provider value={{ fileMetas, onDelete, actions, setImageId }}>\n {children(components)}\n <ImageViewer metaId={imageId} />\n </FileContext.Provider>\n );\n};\n","import { Chip, Stack } from \"@mui/material\";\nimport type { ChipProps} from \"@mui/material\";\nimport type { GridRenderCellParams, GridValidRowModel } from \"@mui/x-data-grid-premium\";\n\nconst isArray = (value: any) => Array.isArray(value);\n\ninterface ChipInputCellProps<T extends GridValidRowModel> {\n params: GridRenderCellParams<T>;\n slotProps?: ChipProps;\n getLabel?: (object: T) => string | number;\n}\n\nexport const ChipInputCell = <T extends GridValidRowModel>({ params, slotProps, getLabel }: ChipInputCellProps<T>) => {\n if (!params.value) return null;\n\n const getLabelValue = (value: any) => {\n if (getLabel) return getLabel(value);\n return value;\n };\n\n if (isArray(params.value))\n return (\n <Stack direction=\"row\" alignItems=\"center\" gap={1} sx={{ overflowX: \"auto\", height: \"100%\", width: params.colDef.computedWidth }}>\n {params.value.map((value: any, index) =>\n <Chip key={`${index + 1}-chip-input-cell`} label={getLabelValue(value)} {...slotProps} />\n )}\n </Stack>\n );\n\n return <Chip label={getLabelValue(params.value)} {...slotProps} />;\n};","import Edit from \"@mui/icons-material/Edit\";\nimport { TypographyWithIcon } from \"../core/TypographyWithIcon\";\nimport type { GridColumnHeaderParams, GridValidRowModel } from \"@mui/x-data-grid-premium\";\n\nexport const EditableColumnHeader = <T extends GridValidRowModel>({ colDef }: GridColumnHeaderParams<T>) => {\n return <TypographyWithIcon endIcon={<Edit color=\"disabled\" fontSize=\"small\" />} variant=\"body2\" className=\"MuiDataGrid-columnHeaderTitle\">{colDef.headerName}</TypographyWithIcon>;\n};","import { Button } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { ButtonProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, ButtonProps<\"a\">>(function ButtonComponent(props, reference) {\n return <Button ref={reference} component=\"a\" {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterButton: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { GridActionsCellItem } from \"@mui/x-data-grid-premium\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { GridActionsCellItemProps } from \"@mui/x-data-grid-premium\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLButtonElement, GridActionsCellItemProps>(\n function GridActionsCellItemComponent(props, reference) {\n return <GridActionsCellItem ref={reference} component=\"a\" {...props} />;\n }\n) as React.ForwardRefExoticComponent<GridActionsCellItemProps & React.RefAttributes<HTMLButtonElement>>;\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterGridActionsCellItem: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { IconButton } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { IconButtonProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, IconButtonProps<\"a\">>(function IconButtonComponent(props, reference) {\n return <IconButton ref={reference} component=\"a\" {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterIconButton: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { Link } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { LinkProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, LinkProps>(function LinkComponent(props, reference) {\n return <Link ref={reference} {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterLink: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { Tab } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { TabProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, TabProps<\"a\">>(function TabComponent(props, reference) {\n return <Tab ref={reference} component=\"a\" {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterTab: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { Box, Divider, Typography } from \"@mui/material\";\nimport { useTranslation } from \"react-i18next\";\n\nexport function RouterNotFound() {\n const { t } = useTranslation();\n\n return (\n <Box height=\"100vh\" display=\"flex\" flexDirection=\"column\" alignItems=\"center\" justifyContent=\"center\" textAlign=\"center\" px={2} >\n <Box display=\"flex\" alignItems=\"center\" mb={4}>\n <Typography variant=\"h3\" component=\"span\" fontWeight={500} sx={{ lineHeight: 1 }}>404</Typography>\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 3 }} />\n <Typography variant=\"h5\" component=\"span\">{t(\"Layout.ThisPageCouldNotBeFound\")}</Typography>\n </Box>\n </Box>\n );\n}\n","import { Box, Divider, Typography } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { ErrorComponentProps } from \"@tanstack/react-router\";\n\ninterface RouterErrorProps {\n error: ErrorComponentProps[\"error\"];\n}\n\nexport const RouterError: FC<RouterErrorProps> = ({ error }) => {\n\n return (\n <Box height=\"100vh\" display=\"flex\" flexDirection=\"column\" alignItems=\"center\" justifyContent=\"center\" textAlign=\"center\" px={2} >\n <Box display=\"flex\" alignItems=\"center\" mb={4}>\n <Typography variant=\"h3\" component=\"span\" fontWeight={500} sx={{ lineHeight: 1 }}>{error.name || \"500\"}</Typography>\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 3 }} />\n <Typography variant=\"h5\" component=\"span\">{error.message}</Typography>\n </Box>\n </Box>\n );\n};\n"],"names":["jsxs","jsx","Component","CreatedComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"components.js","sources":["../src/components/core/TypographyWithIcon.tsx","../src/components/core/Fullscreen.tsx","../src/components/file/Dropzone.tsx","../src/contexts/FileContext.ts","../src/components/file/fileViewer/common/ActionsMenu.tsx","../src/components/file/fileViewer/FileViewerGrid.tsx","../src/components/file/fileViewer/FileViewerList.tsx","../src/components/file/fileViewer/ImageViewer.tsx","../src/components/file/FileViewer.tsx","../src/components/data-grid/ChipInputCell.tsx","../src/components/data-grid/EditableColumnHeader.tsx","../src/components/router/RouterButton.tsx","../src/components/router/RouterGridActionsCellItem.tsx","../src/components/router/RouterIconButton.tsx","../src/components/router/RouterLink.tsx","../src/components/router/RouterTab.tsx","../src/components/router/RouterNotFound.tsx","../src/components/router/RouterError.tsx"],"sourcesContent":["import { Stack, Typography } from \"@mui/material\";\nimport type { SxProps, Theme, TypographyProps } from \"@mui/material\";\n\ninterface TypographyWithIconProps extends TypographyProps {\n startIcon?: React.ReactNode;\n endIcon?: React.ReactNode;\n}\n\nexport const TypographyWithIcon: React.FC<TypographyWithIconProps> = ({ startIcon, endIcon, children, sx, ...props }) => {\n const iconSx: SxProps<Theme> = {\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n flexShrink: 0,\n lineHeight: 0,\n \"& > svg\": {\n display: \"block\",\n },\n };\n\n return (\n <Typography\n component=\"span\"\n sx={{\n display: \"inline-flex\",\n alignItems: \"center\",\n verticalAlign: \"middle\",\n ...sx,\n }}\n gap={1}\n {...props}\n >\n {startIcon && (\n <Stack component=\"span\" sx={iconSx}>\n {startIcon}\n </Stack>\n )}\n <Stack component=\"span\" sx={{ display: \"inline\", lineHeight: \"inherit\" }}>\n {children}\n </Stack>\n {endIcon && (\n <Stack component=\"span\" sx={iconSx}>\n {endIcon}\n </Stack>\n )}\n </Typography>\n );\n};","import { Box } from \"@mui/material\";\nimport { useEffect, useEffectEvent, useRef, useState } from \"react\";\nimport type { BoxProps } from \"@mui/material\";\nimport type { FC } from \"react\";\n\nexport const Fullscreen: FC<BoxProps> = ({ children, sx, ...props }) => {\n const reference = useRef<HTMLDivElement | null>(null);\n const [height, setHeight] = useState<number>();\n\n const recompute = useEffectEvent(() => {\n if (!reference.current) return;\n const top = Math.ceil(reference.current.getBoundingClientRect().top);\n const avail = Math.max(0, window.innerHeight - top);\n setHeight(avail);\n });\n\n useEffect(() => {\n const element = reference.current;\n if (!element) return;\n\n recompute();\n\n window.addEventListener(\"resize\", recompute);\n\n const ro = new ResizeObserver(recompute);\n ro.observe(document.documentElement);\n ro.observe(document.body);\n ro.observe(element);\n\n return () => {\n window.removeEventListener(\"resize\", recompute);\n ro.disconnect();\n };\n }, []);\n\n return (\n <Box\n ref={reference}\n sx={{\n display: \"flex\",\n flexDirection: \"column\",\n minHeight: 0,\n width: \"100%\",\n overflow: \"auto\",\n ...sx,\n }}\n height={height}\n {...props}\n >\n {children}\n </Box>\n );\n};","import CloudUpload from \"@mui/icons-material/CloudUpload\";\nimport { Paper, Typography, useTheme } from \"@mui/material\";\nimport { useDropzone } from \"react-dropzone\";\nimport { useTranslation } from \"react-i18next\";\nimport type { SxProps, Theme} from \"@mui/material\";\nimport type { CSSProperties, FC } from \"react\";\nimport type { DropzoneOptions} from \"react-dropzone\";\n\nconst baseStyle: CSSProperties = {\n flex: 1,\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"center\",\n padding: \"20px\",\n borderWidth: 2,\n borderRadius: 2,\n borderStyle: \"dashed\",\n outline: \"none\",\n transition: \"border .24s ease-in-out\",\n cursor: \"pointer\",\n};\n\ninterface DropzoneProps extends DropzoneOptions {\n sx?: SxProps<Theme>;\n}\n\nexport const Dropzone: FC<DropzoneProps> = ({ sx, ...props }) => {\n const { getRootProps, getInputProps, isFocused, isDragAccept, isDragReject, } = useDropzone(props);\n const { t } = useTranslation();\n const theme = useTheme();\n\n const style = {\n ...baseStyle,\n ...(isFocused ? { borderColor: theme.palette.primary.main } : {}),\n ...(isDragAccept ? { borderColor: theme.palette.success.main } : {}),\n ...(isDragReject ? { borderColor: theme.palette.error.main } : {})\n };\n\n return (\n <Paper variant=\"outlined\" {...getRootProps({ style })} sx={sx}>\n <input {...getInputProps()} style={{ display: \"none\" }} />\n <CloudUpload />\n <Typography>{t(\"Layout.File.DragSomeFilesHereOrClickToSelectThem\")}</Typography>\n </Paper>\n );\n};","import { createContext, useContext } from \"react\";\nimport type { FileMeta } from \"../models/file/FileMeta\";\nimport type { FileActions } from \"~/models/file/FileActions\";\n\nexport interface FileContextValue {\n fileMetas: Array<FileMeta>;\n onDelete?: (params: { remainingFileMetas: Array<FileMeta>; deletedFileMeta: FileMeta }) => void;\n actions?: FileActions;\n setImageId: (imageId: string) => void;\n};\n\nexport const FileContext = createContext<FileContextValue | null>(null);\n\nexport const useFile = () => {\n const context = useContext(FileContext);\n if (!context) {\n throw new Error(\"FileViewer components must be used within FileViewer\");\n }\n return context;\n};","import Delete from \"@mui/icons-material/Delete\";\nimport FileDownload from \"@mui/icons-material/FileDownload\";\nimport { List, ListItemButton, ListItemIcon, ListItemText, Menu } from \"@mui/material\";\nimport { useTranslation } from \"react-i18next\";\nimport type { FC } from \"react\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport { useFile } from \"~/contexts/FileContext\";\nimport { useDialogs } from \"~/hooks/DialogsHooks\";\nimport { useDeleteFile, useDownloadFile } from \"~/queries/FileHooks\";\n\ninterface ActionsMenuProps {\n meta: FileMeta;\n menu: { mouseX: number; mouseY: number } | null;\n setMenu: (menu: { mouseX: number; mouseY: number } | null) => void;\n}\n\nexport const ActionsMenu: FC<ActionsMenuProps> = ({ meta, menu, setMenu }) => {\n const { t } = useTranslation();\n const { fileMetas, onDelete, actions } = useFile();\n const { confirm } = useDialogs();\n\n const handleMenuClose = () => { setMenu(null); };\n\n const { mutate: download, isPending: isDownloading } = useDownloadFile();\n const { mutate: deleteFile, isPending: isDeleting } = useDeleteFile();\n\n const handleOnDownload = () => {\n handleMenuClose();\n download(meta);\n };\n\n const handleOnDelete = async () => {\n if (!await confirm(t(\"Layout.File.AreYouSureYouWantToDelete\", { fileName: meta.fileName })))\n return;\n\n deleteFile(meta);\n handleMenuClose();\n\n if (onDelete) {\n const remainingFileMetas: Array<FileMeta> = fileMetas.filter(m => m.id !== meta.id);\n onDelete({ remainingFileMetas, deletedFileMeta: meta });\n }\n };\n\n return (\n <Menu open={menu !== null} onClose={handleMenuClose} anchorReference=\"anchorPosition\" variant=\"menu\"\n anchorPosition={menu === null ? undefined : { top: menu.mouseY, left: menu.mouseX }}>\n <List disablePadding>\n {actions?.download !== false &&\n <ListItemButton onClick={handleOnDownload} disabled={isDownloading}>\n <ListItemIcon>\n <FileDownload />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.File.Download\")}</ListItemText>\n </ListItemButton>\n }\n {actions?.delete !== false &&\n <ListItemButton onClick={handleOnDelete} disabled={isDeleting}>\n <ListItemIcon>\n <Delete />\n </ListItemIcon>\n <ListItemText>{t(\"Layout.File.Delete\")}</ListItemText>\n </ListItemButton>\n }\n </List>\n </Menu>\n );\n};\n","import MoreVert from \"@mui/icons-material/MoreVert\";\nimport { Box, IconButton, ImageListItem, ImageListItemBar, Stack, Tooltip } from \"@mui/material\";\nimport { grey } from \"@mui/material/colors\";\nimport React, { Fragment, useEffect, useState } from \"react\";\nimport { useInView } from \"react-intersection-observer\";\nimport { ActionsMenu } from \"./common/ActionsMenu\";\nimport type { SxProps, Theme } from \"@mui/material\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport { useFile } from \"~/contexts/FileContext\";\nimport { useDownloadFile, useGetFileThumbnail, useOpenFile } from \"~/queries/FileHooks\";\n\nconst IMAGE_SIZE = 150;\n\ntype FileViewerGridItemBar = \"hidden\" | \"always\" | \"onMouseEnter\";\n\nexport interface FileViewerGridProps {\n size?: number;\n itemBar?: FileViewerGridItemBar;\n sx?: SxProps<Theme>;\n}\n\nexport const FileViewerGrid: React.FC<FileViewerGridProps> = ({ sx, size, itemBar }) => {\n const { fileMetas } = useFile();\n\n return (\n <Stack direction=\"row\" spacing={1} sx={{ overflow: \"auto\", ...sx }}>\n {fileMetas.map(fileMeta => (\n <GridFileViewerItem\n key={fileMeta.id}\n meta={fileMeta}\n size={size}\n itemBar={itemBar}\n />\n ))}\n </Stack>\n );\n};\n\ninterface GridFileViewerItemProps {\n meta: FileMeta;\n size?: number;\n itemBar?: FileViewerGridItemBar;\n}\n\nexport const GridFileViewerItem: React.FC<GridFileViewerItemProps> = ({ meta, size, itemBar }) => {\n const { setImageId, actions } = useFile();\n const [showItemBar, setShowItemBar] = useState<boolean>(itemBar === \"always\");\n const [menu, setMenu] = useState<{ mouseX: number; mouseY: number; } | null>(null);\n const { ref, inView } = useInView();\n\n useEffect(() => {\n setShowItemBar(itemBar === \"always\");\n }, [itemBar]);\n\n const { data: source } = useGetFileThumbnail({ meta }, { enabled: inView });\n\n const handleOnMouseEnter = () => setShowItemBar(true);\n const handleOnMouseLeave = () => itemBar !== \"always\" && setShowItemBar(false);\n\n const openMenu = (event: React.MouseEvent) => {\n setMenu(menu === null ? { mouseX: event.clientX, mouseY: event.clientY, } : null);\n setTimeout(() => setShowItemBar(true));\n };\n\n const { mutate: openFile } = useOpenFile();\n const { mutate: download } = useDownloadFile();\n\n const onClick = () => {\n switch (meta.mediaType) {\n case \"image\": { return setImageId(meta.id); }\n case \"application\": { return openFile(meta); }\n case \"video\": { return openFile(meta); }\n default: { return download(meta); }\n }\n };\n\n return (\n <Fragment>\n <ImageListItem sx={{ width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }} onMouseEnter={handleOnMouseEnter} onMouseLeave={handleOnMouseLeave} ref={ref}>\n <Box\n component=\"img\"\n src={source}\n loading=\"lazy\"\n alt={\"thumbnail-\" + meta.id}\n onClick={onClick}\n sx={{ cursor: \"pointer\", objectFit: \"contain\", width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }}\n />\n {(itemBar !== \"hidden\" && showItemBar) &&\n <ImageListItemBar\n title={\n <Tooltip title={meta.fileName}>\n <Box>\n {meta.fileName}\n </Box>\n </Tooltip>\n }\n actionIcon={\n (actions?.download !== false || actions.delete !== false) &&\n <IconButton sx={{ color: grey[100] }} onClick={openMenu}>\n <MoreVert />\n </IconButton>\n }\n />\n }\n </ImageListItem>\n\n {(actions?.download !== false || actions.delete !== false) && <ActionsMenu meta={meta} menu={menu} setMenu={setMenu} />}\n </Fragment>\n );\n};\n","import AttachFile from \"@mui/icons-material/AttachFile\";\nimport Image from \"@mui/icons-material/Image\";\nimport MoreVert from \"@mui/icons-material/MoreVert\";\nimport SmartDisplay from \"@mui/icons-material/SmartDisplay\";\nimport { IconButton, List, ListItemButton, ListItemIcon, ListItemText } from \"@mui/material\";\nimport { Fragment, useState } from \"react\";\nimport { ActionsMenu } from \"./common/ActionsMenu\";\nimport type { FC } from \"react\";\nimport type { SxProps, Theme } from \"@mui/material\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport { useFile } from \"~/contexts/FileContext\";\nimport { useDownloadFile, useOpenFile } from \"~/queries/FileHooks\";\n\nexport interface FileViewerListProps {\n sx?: SxProps<Theme>;\n}\n\nexport const FileViewerList: FC<FileViewerListProps> = ({ sx }) => {\n const { fileMetas } = useFile();\n\n return (\n <List dense sx={sx}>\n {fileMetas.map(fileMeta =>\n <ListFileViewerItem\n key={fileMeta.id}\n meta={fileMeta}\n />\n )}\n </List>\n );\n};\n\ninterface ListFileViewerItemProps {\n meta: FileMeta;\n}\n\nexport const ListFileViewerItem: React.FC<ListFileViewerItemProps> = ({ meta }) => {\n const { setImageId, actions } = useFile();\n const [menu, setMenu] = useState<{ mouseX: number; mouseY: number; } | null>(null);\n\n const openMenu = (event: React.MouseEvent) => {\n event.stopPropagation();\n setMenu(menu === null ? { mouseX: event.clientX, mouseY: event.clientY, } : null);\n };\n\n const { mutate: openFile } = useOpenFile();\n const { mutate: download } = useDownloadFile();\n\n const onClick = () => {\n switch (meta.mediaType) {\n case \"image\": { return setImageId(meta.id); }\n case \"application\": { return openFile(meta); }\n case \"video\": { return openFile(meta); }\n default: { return download(meta); }\n }\n };\n\n const icon = () => {\n switch (meta.mediaType) {\n case \"image\": {\n return <Image />;\n }\n case \"video\": {\n return <SmartDisplay />;\n }\n default: {\n return <AttachFile />;\n }\n }\n };\n\n return (\n <Fragment>\n <ListItemButton key={meta.id} onClick={onClick}>\n <ListItemIcon>\n {icon()}\n </ListItemIcon>\n <ListItemText primary={`${meta.fileName}.${meta.fileExtension}`} />\n {(actions?.download !== false || actions.delete !== false) &&\n <IconButton edge=\"end\" onClick={openMenu}>\n <MoreVert />\n </IconButton>\n }\n </ListItemButton>\n\n {(actions?.download !== false || actions.delete !== false) && <ActionsMenu meta={meta} menu={menu} setMenu={setMenu} />}\n </Fragment>\n );\n};\n","import Close from \"@mui/icons-material/Close\";\nimport { Box, Dialog, Fab } from \"@mui/material\";\nimport React, { useEffect } from \"react\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport { useFile } from \"~/contexts/FileContext\";\nimport { useGetFile } from \"~/queries/FileHooks\";\n\ninterface ImageViewerProps {\n metaId: string;\n}\n\nexport const ImageViewer: React.FC<ImageViewerProps> = ({ metaId }) => {\n const { fileMetas, setImageId } = useFile();\n\n const meta = fileMetas.find(m => m.id === metaId)!;\n\n const { data: source } = useGetFile({ meta });\n\n useEffect(() => {\n if (metaId)\n globalThis.addEventListener(\"keydown\", handleOnKeydown);\n\n return () => { globalThis.removeEventListener(\"keydown\", handleOnKeydown); };\n }, [metaId]);\n\n const handleOnKeydown = (event: KeyboardEvent) => {\n const images: Array<FileMeta> = fileMetas.filter(m => m.mediaType === \"image\");\n const imageIndex: number = images.findIndex(m => m.id === metaId);\n\n switch (event.key) {\n case \"ArrowLeft\": {\n return handleOnArrowLeft(images, imageIndex);\n }\n case \"ArrowRight\": {\n return handleOnArrowRight(images, imageIndex);\n }\n case \"Backspace\":\n case \"Escape\": {\n event.preventDefault();\n return onClose();\n }\n }\n };\n\n const handleOnArrowLeft = (images: Array<FileMeta>, index: number) => {\n if (index > 0) {\n const previousFile: FileMeta = images[index - 1];\n setImageId(previousFile.id);\n }\n };\n\n const handleOnArrowRight = (images: Array<FileMeta>, index: number) => {\n if (index < images.length - 1) {\n const nextFile: FileMeta = images[index + 1];\n setImageId(nextFile.id);\n }\n };\n\n const onClose = () => setImageId(\"\");\n\n if (!metaId) return null;\n\n return (\n <Dialog open onClose={onClose} maxWidth=\"xl\">\n <Box component=\"img\" src={source} alt={metaId} sx={{ maxWidth: \"100vw\", maxHeight: { xs: \"calc(100vh - 56px)\", sm: \"calc(100vh - 64px)\" } }} />\n\n <Fab size=\"medium\" onClick={onClose} sx={{ position: \"fixed\", top: 8, right: 8 }}>\n <Close />\n </Fab>\n </Dialog>\n );\n};\n","import { useState } from \"react\";\nimport { FileViewerGrid } from \"./fileViewer/FileViewerGrid\";\nimport { FileViewerList } from \"./fileViewer/FileViewerList\";\nimport { ImageViewer } from \"./fileViewer/ImageViewer\";\nimport type { FileViewerGridProps } from \"./fileViewer/FileViewerGrid\";\nimport type { ComponentType, FC, ReactNode } from \"react\";\nimport type { FileMeta } from \"~/models/file/FileMeta\";\nimport type { FileActions } from \"~/models/file/FileActions\";\nimport type { FileViewerListProps } from \"./fileViewer/FileViewerList\";\nimport { FileContext } from \"~/contexts/FileContext\";\nimport { useGetFileMetas } from \"~/queries/FileHooks\";\n\ninterface FileViewerComponent {\n Grid: ComponentType<FileViewerGridProps>;\n List: ComponentType<FileViewerListProps>;\n}\n\ninterface FileViewerProps {\n subId: string;\n onDelete?: (params: { remainingFileMetas: Array<FileMeta>; deletedFileMeta: FileMeta }) => void;\n actions?: FileActions;\n children: (component: FileViewerComponent) => ReactNode;\n}\n\nexport const FileViewer: FC<FileViewerProps> = ({ subId, onDelete, actions, children }) => {\n const { data: fileMetas = [] } = useGetFileMetas({ subId }, { enabled: !!subId });\n const [imageId, setImageId] = useState<string>(\"\");\n\n const components: FileViewerComponent = { Grid: FileViewerGrid, List: FileViewerList };\n\n if (fileMetas.length === 0) return null;\n\n return (\n <FileContext.Provider value={{ fileMetas, onDelete, actions, setImageId }}>\n {children(components)}\n <ImageViewer metaId={imageId} />\n </FileContext.Provider>\n );\n};\n","import { Chip, Stack } from \"@mui/material\";\nimport type { ChipProps} from \"@mui/material\";\nimport type { GridRenderCellParams, GridValidRowModel } from \"@mui/x-data-grid-premium\";\n\nconst isArray = (value: any) => Array.isArray(value);\n\ninterface ChipInputCellProps<T extends GridValidRowModel> {\n params: GridRenderCellParams<T>;\n slotProps?: ChipProps;\n getLabel?: (object: T) => string | number;\n}\n\nexport const ChipInputCell = <T extends GridValidRowModel>({ params, slotProps, getLabel }: ChipInputCellProps<T>) => {\n if (!params.value) return null;\n\n const getLabelValue = (value: any) => {\n if (getLabel) return getLabel(value);\n return value;\n };\n\n if (isArray(params.value))\n return (\n <Stack direction=\"row\" alignItems=\"center\" gap={1} sx={{ overflowX: \"auto\", height: \"100%\", width: params.colDef.computedWidth }}>\n {params.value.map((value: any, index) =>\n <Chip key={`${index + 1}-chip-input-cell`} label={getLabelValue(value)} {...slotProps} />\n )}\n </Stack>\n );\n\n return <Chip label={getLabelValue(params.value)} {...slotProps} />;\n};","import Edit from \"@mui/icons-material/Edit\";\nimport { TypographyWithIcon } from \"../core/TypographyWithIcon\";\nimport type { GridColumnHeaderParams, GridValidRowModel } from \"@mui/x-data-grid-premium\";\n\nexport const EditableColumnHeader = <T extends GridValidRowModel>({ colDef }: GridColumnHeaderParams<T>) => {\n return <TypographyWithIcon endIcon={<Edit color=\"disabled\" fontSize=\"small\" />} variant=\"body2\" className=\"MuiDataGrid-columnHeaderTitle\">{colDef.headerName}</TypographyWithIcon>;\n};","import { Button } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { ButtonProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, ButtonProps<\"a\">>(function ButtonComponent(props, reference) {\n return <Button ref={reference} component=\"a\" {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterButton: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { GridActionsCellItem } from \"@mui/x-data-grid-premium\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { GridActionsCellItemProps } from \"@mui/x-data-grid-premium\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLButtonElement, GridActionsCellItemProps>(\n function GridActionsCellItemComponent(props, reference) {\n return <GridActionsCellItem ref={reference} component=\"a\" {...props} />;\n }\n) as React.ForwardRefExoticComponent<GridActionsCellItemProps & React.RefAttributes<HTMLButtonElement>>;\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterGridActionsCellItem: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { IconButton } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { IconButtonProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, IconButtonProps<\"a\">>(function IconButtonComponent(props, reference) {\n return <IconButton ref={reference} component=\"a\" {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterIconButton: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { Link } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { LinkProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, LinkProps>(function LinkComponent(props, reference) {\n return <Link ref={reference} {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterLink: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { Tab } from \"@mui/material\";\nimport { createLink } from \"@tanstack/react-router\";\nimport React from \"react\";\nimport type { TabProps } from \"@mui/material\";\nimport type { LinkComponent } from \"@tanstack/react-router\";\n\nconst Component = React.forwardRef<HTMLAnchorElement, TabProps<\"a\">>(function TabComponent(props, reference) {\n return <Tab ref={reference} component=\"a\" {...props} />;\n});\n\nconst CreatedComponent = createLink(Component);\n\nexport const RouterTab: LinkComponent<typeof Component> = (props) => {\n return <CreatedComponent {...props} />;\n};","import { Box, Divider, Typography } from \"@mui/material\";\nimport { useTranslation } from \"react-i18next\";\n\nexport function RouterNotFound() {\n const { t } = useTranslation();\n\n return (\n <Box height=\"100vh\" display=\"flex\" flexDirection=\"column\" alignItems=\"center\" justifyContent=\"center\" textAlign=\"center\" px={2} >\n <Box display=\"flex\" alignItems=\"center\" mb={4}>\n <Typography variant=\"h3\" component=\"span\" fontWeight={500} sx={{ lineHeight: 1 }}>404</Typography>\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 3 }} />\n <Typography variant=\"h5\" component=\"span\">{t(\"Layout.ThisPageCouldNotBeFound\")}</Typography>\n </Box>\n </Box>\n );\n}\n","import { Box, Divider, Typography } from \"@mui/material\";\nimport type { FC } from \"react\";\nimport type { ErrorComponentProps } from \"@tanstack/react-router\";\n\ninterface RouterErrorProps {\n error: ErrorComponentProps[\"error\"];\n}\n\nexport const RouterError: FC<RouterErrorProps> = ({ error }) => {\n\n return (\n <Box height=\"100vh\" display=\"flex\" flexDirection=\"column\" alignItems=\"center\" justifyContent=\"center\" textAlign=\"center\" px={2} >\n <Box display=\"flex\" alignItems=\"center\" mb={4}>\n <Typography variant=\"h3\" component=\"span\" fontWeight={500} sx={{ lineHeight: 1 }}>{error.name || \"500\"}</Typography>\n <Divider orientation=\"vertical\" flexItem sx={{ mx: 3 }} />\n <Typography variant=\"h5\" component=\"span\">{error.message}</Typography>\n </Box>\n </Box>\n );\n};\n"],"names":["TypographyWithIcon","t0","$","_c","children","endIcon","props","startIcon","sx","t1","Symbol","for","display","alignItems","justifyContent","flexShrink","lineHeight","iconSx","t2","verticalAlign","t3","jsx","t4","t5","t6","t7","jsxs","Fullscreen","reference","useRef","height","setHeight","useState","current","top","Math","ceil","getBoundingClientRect","avail","max","window","innerHeight","recompute","useEffectEvent","element","addEventListener","ro","ResizeObserver","observe","document","documentElement","body","removeEventListener","disconnect","useEffect","flexDirection","minHeight","width","overflow","baseStyle","flex","padding","borderWidth","borderRadius","borderStyle","outline","transition","cursor","Dropzone","getRootProps","getInputProps","isFocused","isDragAccept","isDragReject","useDropzone","t","useTranslation","theme","useTheme","T0","style","borderColor","palette","primary","main","success","error","Paper","t8","t9","FileContext","createContext","useFile","context","useContext","Error","ActionsMenu","meta","menu","setMenu","fileMetas","onDelete","actions","confirm","useDialogs","handleMenuClose","mutate","download","isPending","isDownloading","useDownloadFile","deleteFile","isDeleting","useDeleteFile","handleOnDownload","fileName","remainingFileMetas","filter","m","id","deletedFileMeta","handleOnDelete","undefined","mouseY","left","mouseX","delete","IMAGE_SIZE","FileViewerGrid","size","itemBar","fileMeta","map","GridFileViewerItem","setImageId","showItemBar","setShowItemBar","ref","inView","useInView","enabled","data","source","useGetFileThumbnail","handleOnMouseEnter","handleOnMouseLeave","event","clientX","clientY","setTimeout","openMenu","openFile","useOpenFile","mediaType","onClick","t10","t11","t12","t13","t14","t15","objectFit","t16","t17","color","grey","t18","t19","t20","FileViewerList","_temp","ListFileViewerItem","stopPropagation","icon","fileExtension","ImageViewer","metaId","find","useGetFile","globalThis","handleOnKeydown","images","imageIndex","findIndex","key","handleOnArrowLeft","handleOnArrowRight","preventDefault","onClose","index","previousFile","length","nextFile","maxWidth","maxHeight","xs","sm","position","right","FileViewer","subId","useGetFileMetas","imageId","bb0","components","Grid","List","Provider","isArray","value","Array","ChipInputCell","params","slotProps","getLabel","getLabelValue","colDef","computedWidth","overflowX","value_0","EditableColumnHeader","headerName","Component","React","forwardRef","ButtonComponent","CreatedComponent","createLink","RouterButton","GridActionsCellItemComponent","RouterGridActionsCellItem","IconButtonComponent","RouterIconButton","LinkComponent","RouterLink","TabComponent","RouterTab","RouterNotFound","mx","RouterError","name","message"],"mappings":"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"}
|