From 6c94aa5a3c44dfda51bd3d0c0294b0c63bf2e73c Mon Sep 17 00:00:00 2001 From: martha Date: Tue, 17 Dec 2024 16:58:26 -0500 Subject: [PATCH] Support file upload in assessments (#982) --- graphql.schema.json | 62 +- .../customDataElement.fragments.graphql | 3 + src/api/operations/form.fragments.graphql | 1 + src/components/elements/CommonMenuButton.tsx | 66 +- .../input/ClientImageUploadDialog.tsx | 15 +- .../elements/upload/FileThumbnailIcon.tsx | 23 + .../elements/upload/Uploader.stories.tsx | 4 +- src/components/elements/upload/Uploader.tsx | 394 ++ .../elements/upload/UploaderBase.tsx | 310 - .../upload/fileDialog/FilePreview.tsx} | 82 +- .../upload/fileDialog/FilePreviewDialog.tsx | 48 + .../upload/fileSummary/FileSummary.tsx | 144 + .../upload/fileSummary/MultiFileSummaries.tsx | 50 + .../upload/fileSummary/SavedFileSummary.tsx | 50 + .../upload/fileSummary/SingleFileSummary.tsx | 35 + .../upload/fileSummary/UnsavedFileSummary.tsx | 37 + .../components/users/UserActionsMenu.tsx | 4 +- .../IndividualAssessmentFormController.tsx | 16 +- .../components/ClientFilesPage.tsx | 4 +- .../EnrollmentAssessmentActionButtons.tsx | 16 +- src/modules/form/components/DynamicField.tsx | 31 +- .../components/viewable/DynamicViewField.tsx | 24 +- src/modules/form/util/formUtil.ts | 20 + .../components/FormBuilderPalette.tsx | 7 +- .../components/formTree/FormTreeLabel.tsx | 14 +- .../components/itemEditor/FormItemEditor.tsx | 16 +- src/modules/hmis/hmisUtil.ts | 1 + src/types/gqlEnums.ts | 1 + src/types/gqlObjects.ts | 20 +- src/types/gqlTypes.ts | 4965 ++++++++++++++++- 30 files changed, 5872 insertions(+), 591 deletions(-) create mode 100644 src/components/elements/upload/FileThumbnailIcon.tsx create mode 100644 src/components/elements/upload/Uploader.tsx delete mode 100644 src/components/elements/upload/UploaderBase.tsx rename src/{modules/clientFiles/components/FileModal.tsx => components/elements/upload/fileDialog/FilePreview.tsx} (68%) create mode 100644 src/components/elements/upload/fileDialog/FilePreviewDialog.tsx create mode 100644 src/components/elements/upload/fileSummary/FileSummary.tsx create mode 100644 src/components/elements/upload/fileSummary/MultiFileSummaries.tsx create mode 100644 src/components/elements/upload/fileSummary/SavedFileSummary.tsx create mode 100644 src/components/elements/upload/fileSummary/SingleFileSummary.tsx create mode 100644 src/components/elements/upload/fileSummary/UnsavedFileSummary.tsx diff --git a/graphql.schema.json b/graphql.schema.json index 1f191485d..deb6ee0eb 100644 --- a/graphql.schema.json +++ b/graphql.schema.json @@ -10461,6 +10461,12 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "file", + "description": null, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "float", "description": null, @@ -10600,6 +10606,18 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "valueFile", + "description": null, + "args": [], + "type": { + "kind": "OBJECT", + "name": "File", + "ofType": null + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "valueFloat", "description": null, @@ -13316,22 +13334,6 @@ "description": "Represents direct upload credentials", "isOneOf": null, "fields": [ - { - "name": "blobId", - "description": "Created blob record ID", - "args": [], - "type": { - "kind": "NON_NULL", - "name": null, - "ofType": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - } - }, - "isDeprecated": true, - "deprecationReason": "Deprecated in favor of signed_blob_id" - }, { "name": "filename", "description": null, @@ -20582,18 +20584,6 @@ "isDeprecated": false, "deprecationReason": null }, - { - "name": "fileBlobId", - "description": null, - "args": [], - "type": { - "kind": "SCALAR", - "name": "ID", - "ofType": null - }, - "isDeprecated": true, - "deprecationReason": "Removing unused blob ID" - }, { "name": "id", "description": null, @@ -21159,6 +21149,22 @@ "isDeprecated": false, "deprecationReason": null }, + { + "name": "supportsSaveInProgress", + "description": null, + "args": [], + "type": { + "kind": "NON_NULL", + "name": null, + "ofType": { + "kind": "SCALAR", + "name": "Boolean", + "ofType": null + } + }, + "isDeprecated": false, + "deprecationReason": null + }, { "name": "system", "description": null, diff --git a/src/api/operations/customDataElement.fragments.graphql b/src/api/operations/customDataElement.fragments.graphql index e198e0e20..f3aacb5ef 100644 --- a/src/api/operations/customDataElement.fragments.graphql +++ b/src/api/operations/customDataElement.fragments.graphql @@ -7,6 +7,9 @@ fragment CustomDataElementValueFields on CustomDataElementValue { valueJson valueString valueText + valueFile { + ...FileFields + } user { ...UserFields } diff --git a/src/api/operations/form.fragments.graphql b/src/api/operations/form.fragments.graphql index 31c65de7d..f32fd23aa 100644 --- a/src/api/operations/form.fragments.graphql +++ b/src/api/operations/form.fragments.graphql @@ -133,6 +133,7 @@ fragment FormDefinitionMetadata on FormDefinition { name } dateUpdated + supportsSaveInProgress } # FormDefinition to use for rendering a dynamic form diff --git a/src/components/elements/CommonMenuButton.tsx b/src/components/elements/CommonMenuButton.tsx index 265e461ac..83149b6b4 100644 --- a/src/components/elements/CommonMenuButton.tsx +++ b/src/components/elements/CommonMenuButton.tsx @@ -14,23 +14,22 @@ import { To } from 'react-router-dom'; import RouterLink from './RouterLink'; import { MoreMenuIcon } from './SemanticIcons'; -export type NavMenuItem = { +export type CommonMenuItem = { key: string; to?: To; onClick?: VoidFunction; title?: ReactNode; divider?: boolean; disabled?: boolean; + ariaLabel?: string; }; interface Props { title: ReactNode; - items: NavMenuItem[]; - variant?: ButtonProps['variant']; - disabled?: ButtonProps['disabled']; + items: CommonMenuItem[]; iconButton?: boolean; // use an icon button instead of a text button - sx?: ButtonProps['sx']; MenuProps?: Omit; + ButtonProps?: ButtonProps; } const CommonMenuButton = ({ @@ -38,7 +37,7 @@ const CommonMenuButton = ({ items, iconButton, MenuProps, - ...buttonProps + ButtonProps, }: Props) => { const [anchorEl, setAnchorEl] = useState(null); const open = Boolean(anchorEl); @@ -62,7 +61,7 @@ const CommonMenuButton = ({ aria-haspopup='true' aria-expanded={open ? 'true' : undefined} onClick={handleClick} - {...buttonProps} + {...ButtonProps} > @@ -74,7 +73,7 @@ const CommonMenuButton = ({ aria-expanded={open ? 'true' : undefined} onClick={handleClick} endIcon={} - {...buttonProps} + {...ButtonProps} > {title} @@ -98,28 +97,35 @@ const CommonMenuButton = ({ }} {...MenuProps} > - {items.map(({ key, to, title, divider, onClick, disabled }) => - divider ? ( - - ) : to ? ( - - {title} - - ) : ( - { - if (onClick) { - // close menu before triggering onClick - setAnchorEl(null); - onClick(); - } - }} - disabled={disabled} - > - {title} - - ) + {items.map( + ({ key, to, title, divider, onClick, disabled, ariaLabel }) => + divider ? ( + + ) : to ? ( + + {title} + + ) : ( + { + if (onClick) { + // close menu before triggering onClick + setAnchorEl(null); + onClick(); + } + }} + disabled={disabled} + aria-label={ariaLabel} + > + {title} + + ) )} diff --git a/src/components/elements/input/ClientImageUploadDialog.tsx b/src/components/elements/input/ClientImageUploadDialog.tsx index 879c0ecd4..5a2de2bd3 100644 --- a/src/components/elements/input/ClientImageUploadDialog.tsx +++ b/src/components/elements/input/ClientImageUploadDialog.tsx @@ -15,7 +15,7 @@ import React, { useCallback, useState } from 'react'; import CommonDialog from '../CommonDialog'; import LoadingButton from '../LoadingButton'; -import Uploader from '../upload/UploaderBase'; +import Uploader from '../upload/Uploader'; import ClientCardImageElement from '@/modules/client/components/ClientCardImageElement'; import ApolloErrorAlert from '@/modules/errors/components/ApolloErrorAlert'; @@ -27,6 +27,7 @@ import { partitionValidations, } from '@/modules/errors/util'; import { + DirectUpload, useDeleteClientImageMutation, useGetClientImageQuery, useUpdateClientImageMutation, @@ -163,14 +164,10 @@ const ClientImageUploadDialog: React.FC = ({ { - setNewBlobId(upload.signedBlobId); - setNewPhotoSrc(URL.createObjectURL(file)); - setErrors(emptyErrorState); - }} - onClear={() => { - setNewBlobId(undefined); - setNewPhotoSrc(undefined); + multiple={false} + onUpload={(upload?: DirectUpload, file?: File) => { + setNewBlobId(upload ? upload.signedBlobId : upload); + setNewPhotoSrc(file ? URL.createObjectURL(file) : file); setErrors(emptyErrorState); }} /> diff --git a/src/components/elements/upload/FileThumbnailIcon.tsx b/src/components/elements/upload/FileThumbnailIcon.tsx new file mode 100644 index 000000000..104b43094 --- /dev/null +++ b/src/components/elements/upload/FileThumbnailIcon.tsx @@ -0,0 +1,23 @@ +import { alpha, Box, SvgIconProps } from '@mui/material'; +import React from 'react'; + +const FileThumbnailIcon: React.FC<{ + IconComponent: React.ComponentType; +}> = ({ IconComponent }) => ( + alpha(theme.palette.primary.light, 0.12), + lineHeight: 0, + display: 'inline-flex', + justifyContent: 'center', + alignItems: 'center', + p: 1, + borderRadius: 100, + mb: 0.5, + }} + > + + +); + +export default FileThumbnailIcon; diff --git a/src/components/elements/upload/Uploader.stories.tsx b/src/components/elements/upload/Uploader.stories.tsx index 61a5c6b7e..83c854bad 100644 --- a/src/components/elements/upload/Uploader.stories.tsx +++ b/src/components/elements/upload/Uploader.stories.tsx @@ -3,7 +3,7 @@ import { Box } from '@mui/system'; import { Meta, StoryObj } from '@storybook/react'; import MOCK_IMAGE from './MOCK_IMAGE'; -import Uploader from './UploaderBase'; +import Uploader from './Uploader'; import { createDirectUploadMock, getFileMock } from '@/test/__mocks__/requests'; @@ -18,7 +18,7 @@ export default { <> { + onUpload={(upload, file) => { const targetElem = document.getElementById('result'); if (targetElem) targetElem.innerHTML = JSON.stringify({ upload, file }, null, 2); diff --git a/src/components/elements/upload/Uploader.tsx b/src/components/elements/upload/Uploader.tsx new file mode 100644 index 000000000..e906eb750 --- /dev/null +++ b/src/components/elements/upload/Uploader.tsx @@ -0,0 +1,394 @@ +import UploadFileIcon from '@mui/icons-material/UploadFile'; +import { + alpha, + Box, + LinearProgress, + Link, + Stack, + Typography, +} from '@mui/material'; +import { compact, flatten, isEmpty, isNil, sortBy, uniq } from 'lodash-es'; +import React, { useCallback, useMemo, useState } from 'react'; +import { Accept, useDropzone } from 'react-dropzone'; +import useDirectUpload from './useDirectUpload'; +import MultiFileSummaries from '@/components/elements/upload/fileSummary/MultiFileSummaries'; +import SingleFileSummary from '@/components/elements/upload/fileSummary/SingleFileSummary'; +import FileThumbnailIcon from '@/components/elements/upload/FileThumbnailIcon'; +import { DirectUpload, FileFieldsFragment } from '@/types/gqlTypes'; +import { ensureArray } from '@/utils/arrays'; + +const DEFAULT_MAX_BYTES = 3000000; +const IMAGE_FILE_TYPES = ['.png', '.jpg', '.jpeg', '.gif']; + +const getFileTypesFromAccept = (accept: Accept) => { + let arr = sortBy( + compact(uniq(flatten(Object.values(accept)))).map((e) => + e.toUpperCase().replace(/\.(.*)/, '$1') + ) + ); + + if (arr.length === 2) arr = [arr.join(' or ')]; + if (arr.length > 2) arr = [...arr.slice(0, -2), arr.slice(-2).join(' or ')]; + + return arr.join(', '); +}; + +const getReadableSize = (maxSize: number) => + `${(maxSize / 1000000).toFixed(1)}MB`; + +const isFileFieldsFragment = ( + value: string | FileFieldsFragment +): value is FileFieldsFragment => + !isNil(value) && typeof value === 'object' && value.__typename === 'File'; + +type ExistingFileType = string | FileFieldsFragment; +export interface UploaderProps { + id: string; + multiple?: Multiple; + files?: Multiple extends true ? ExistingFileType[] : ExistingFileType; + onChange?: ( + files: Multiple extends true + ? ExistingFileType[] + : ExistingFileType | undefined + ) => void; + onUpload?: ( + uploads: Multiple extends true ? DirectUpload[] : DirectUpload | undefined, + files: Multiple extends true ? File[] : File + ) => any | Promise; + accept?: Accept; + image?: boolean; + maxSize?: number; + ariaLabel?: string | null; +} + +const Uploader = ({ + id, + multiple = false as Multiple, + files, + onChange, + onUpload, + accept: acceptProp, + image: isImage = false, + maxSize = DEFAULT_MAX_BYTES, + ariaLabel, +}: UploaderProps) => { + // The uploader accepts a `files` argument which can contain either: + // - a STRING which points at a blob ID of a file that has been uploaded within this session, or + // - a FileFieldsFragment record which points at a file record in our database, uploaded during a previous session. + // It needs to accept both because this can be a controlled component, so the parent may be keeping track of both previous and current upload state. + // `existingFiles` filters the list to only those files that were uploaded some previous time, so we can render them. + // The files uploaded during this session, we render this component's internal state, `currentFiles`. + const existingFiles: FileFieldsFragment[] = useMemo(() => { + return ensureArray(files).filter( + // Filter out files from the input that are just blob IDs. + // These should also be reflected in the currentFiles internal state object. + (f) => isFileFieldsFragment(f) + ); + }, [files]); + + // The currentFiles are File objects (https://developer.mozilla.org/en-US/docs/Web/API/File) + // returned by the react-dropzone callbacks. These refer to files we received in the uploader, on this session. + // (as opposed to FileFieldsFragments, which correspond to file records in our DB that were previously uploaded) + const [currentFiles, setCurrentFiles] = useState([]); + const [currentUploads, setCurrentUploads] = useState([]); + const [loading, setLoading] = useState(false); + const [errors, setErrors] = useState([]); + + const [uploadFile] = useDirectUpload(); + + const uniqueNameValidator = useCallback( + (file: File) => { + const existingNames = [ + // Check both current-session and previously-existing files to make sure we're permitting upload of a duplicate name + ...existingFiles.map((f) => f.name), + ...currentFiles.map((f) => f.name), + ]; + + if (existingNames.includes(file.name)) { + return { + code: 'name-not-unique', + message: `File name is not unique`, + }; + } + + return null; + }, + [existingFiles, currentFiles] + ); + + const onChangeMultiple = useMemo( + () => + multiple + ? (onChange as ((files: ExistingFileType[]) => void) | undefined) + : undefined, + [multiple, onChange] + ); + const onChangeSingle = useMemo( + () => + multiple + ? undefined + : (onChange as ((file?: ExistingFileType) => void) | undefined), + [multiple, onChange] + ); + const onUploadMultiple = useMemo( + () => + multiple + ? (onUpload as + | ((uploads: DirectUpload[], files: File[]) => any) + | undefined) + : undefined, + [multiple, onUpload] + ); + const onUploadSingle = useMemo( + () => + multiple + ? undefined + : (onUpload as + | ((upload?: DirectUpload, file?: File) => any) + | undefined), + [multiple, onUpload] + ); + + const uploadAndCreate = useCallback( + (acceptedFiles: File[]) => { + setLoading(true); + const newFiles = [...currentFiles, ...acceptedFiles]; + + Promise.all(acceptedFiles.map((f) => uploadFile(f))) + .then((responses) => { + const newUploads = [...currentUploads, ...responses]; + setCurrentFiles(newFiles); + setCurrentUploads(newUploads); + + if (multiple) { + if (onChangeMultiple) { + onChangeMultiple([ + ...existingFiles, + ...newUploads.map((u) => u.signedBlobId), + ]); + } + if (onUploadMultiple) { + onUploadMultiple(newUploads, newFiles); + } + } else { + const singleUpload = newUploads[0]; + const singleFile = newFiles[0]; + + if (onChangeSingle && singleUpload) { + onChangeSingle(singleUpload.signedBlobId); + } + if (onUploadSingle && singleFile && singleUpload) { + onUploadSingle(singleUpload, singleFile); + } + } + setLoading(false); + }) + .catch((error) => { + setLoading(false); + setErrors([error.message]); + }); + }, + [ + currentFiles, + uploadFile, + currentUploads, + multiple, + onChangeMultiple, + onUploadMultiple, + existingFiles, + onChangeSingle, + onUploadSingle, + ] + ); + + const accept = useMemo(() => { + const base: Accept = { + ...(isImage ? { 'image/*': IMAGE_FILE_TYPES } : {}), + ...acceptProp, + }; + + return isEmpty(base) ? undefined : base; + }, [isImage, acceptProp]); + + const { + rootRef: inputRef, + getRootProps, + isDragActive, + getInputProps, + open, + } = useDropzone({ + multiple, + accept, + maxSize, + noClick: true, + onDropAccepted: uploadAndCreate, + onDropRejected: (fileRejections) => { + const errors = fileRejections.flatMap((file) => + file.errors.map((err) => { + const fileName = file.file.name; + if (err.code === 'file-too-large') { + return `${fileName} is too large. File size must be under ${getReadableSize(maxSize)}`; + } else if (err.code === 'file-invalid-type') { + return `${fileName} is an unsupported file type. ${ + accept + ? `Supported file types are: ${getFileTypesFromAccept(accept)}` + : '' + }`; + } else { + return `${fileName} Error: ${err.message || err.code}`; + } + }) + ); + setErrors(errors); + }, + onDrop: () => setErrors([]), + validator: uniqueNameValidator, + }); + + const removeFile = useCallback( + (file: File | FileFieldsFragment) => { + const newFiles = currentFiles.filter((f) => f !== file); + const newUploads = currentUploads.filter( + // This is probably not ideal, but we do enforce file name uniqueness, so it should work + (upload) => upload.filename !== file.name + ); + setCurrentFiles(newFiles); + setCurrentUploads(newUploads); + + if (onChangeMultiple) { + onChangeMultiple([ + ...existingFiles.filter((f) => f !== file), + ...newUploads.map((u) => u.signedBlobId), + ]); + } + if (onUploadMultiple) { + onUploadMultiple(newUploads, newFiles); + } + + if (onChangeSingle) { + onChangeSingle(undefined); + } + if (onUploadSingle) { + onUploadSingle(undefined, undefined); + } + // favor a timeout here in this callback, rather than a useEffect, to avoid hijacking the focus on pageload + setTimeout(() => inputRef.current?.focus(), 100); + }, + [ + currentFiles, + currentUploads, + existingFiles, + onChangeMultiple, + onChangeSingle, + onUploadMultiple, + onUploadSingle, + inputRef, + ] + ); + + const showFileList = useMemo( + () => multiple && (currentFiles.length > 0 || existingFiles.length > 0), + [currentFiles.length, existingFiles.length, multiple] + ); + + return ( + + ({ + minHeight: '150px', + transition: 'background 300ms', + borderRadius: `${shape.borderRadius}px`, + border: `1px dashed ${palette.divider}`, + // Adjust bottom border if file list is showing (only for multi) + ...(showFileList && { + borderBottomLeftRadius: 0, + borderBottomRightRadius: 0, + borderBottom: 0, + }), + backgroundColor: isDragActive + ? alpha(palette.primary.light, 0.12) + : palette.background.paper, + overflow: 'hidden', + })} + {...getRootProps()} + id={id} + > + + + {/* If currently uploading (whether multi or single), show "Uploading" and hide the click-to-upload link */} + {loading ? ( + + + Uploading + + + + ) : ( + + {/* If multi-upload, always show the click-to-upload link. If not, only show it when there is no uploaded file yet. */} + {(multiple || + (currentFiles.length === 0 && existingFiles.length === 0)) && ( + <> + + + + Click to upload + {' '} + or drag and drop + + + {accept ? getFileTypesFromAccept(accept) : 'Any file type'}{' '} + (max. {getReadableSize(maxSize)}) + + + )} + {/* If it's a single-file upload, render the single summary thumbnail in the input, above the error */} + {!multiple && ( + + )} + {/* Upload errors */} + {errors?.map((error) => ( + + {error} + + ))} + + )} + + + {/* If it's a multi-file upload, render the summary rows below the input */} + {showFileList && ( + + )} + + ); +}; + +export default Uploader; diff --git a/src/components/elements/upload/UploaderBase.tsx b/src/components/elements/upload/UploaderBase.tsx deleted file mode 100644 index 353112869..000000000 --- a/src/components/elements/upload/UploaderBase.tsx +++ /dev/null @@ -1,310 +0,0 @@ -import { HighlightOff as HighlightOffIcon } from '@mui/icons-material'; -import InsertDriveFileIcon from '@mui/icons-material/InsertDriveFile'; -import UploadFileIcon from '@mui/icons-material/UploadFile'; -import { - Grid, - Typography, - Box, - Link, - Tooltip, - alpha, - LinearProgress, - SvgIconProps, -} from '@mui/material'; -import { compact, first, flatten, isEmpty, sortBy, uniq } from 'lodash-es'; -import React, { useCallback, useMemo, useState } from 'react'; -import { - Accept, - DropzoneInputProps, - DropzoneRootProps, - useDropzone, -} from 'react-dropzone'; - -import useDirectUpload from './useDirectUpload'; - -import { DirectUpload } from '@/types/gqlTypes'; - -export type UploaderProps = { - id: string; - onUpload: (upload: DirectUpload, file: File) => any | Promise; - onClear?: (upload?: DirectUpload, file?: File) => any; - file?: File; - accept?: Accept; - image?: boolean; - maxSize?: number; - children?: React.ReactNode | ((args: ChildrenArgs) => React.ReactElement); -}; - -export type ChildrenArgs = { - id: string; - file?: File; - loading?: boolean; - error?: string | undefined; - previewUrl?: string; - dragging?: boolean; - clearFile?: UploaderProps['onClear']; - selectFile?: VoidFunction; - rootProps?: DropzoneRootProps; - inputProps?: DropzoneInputProps; - accept?: Accept; - maxSize: number; -}; - -const DEFUALT_MAX_BYTES = 3000000; -const IMAGE_FILE_TYPES = ['.png', '.jpg', '.jpeg', '.gif']; - -const FilePreviewIcon: React.FC<{ - IconComponent: React.ComponentType; -}> = ({ IconComponent }) => ( - alpha(theme.palette.primary.light, 0.12), - lineHeight: 0, - display: 'inline-flex', - justifyContent: 'center', - alignItems: 'center', - p: 1, - borderRadius: 100, - mb: 0.5, - }} - > - - -); - -const getFileTypesFromAccept = (accept: Accept) => { - let arr = sortBy( - compact(uniq(flatten(Object.values(accept)))).map((e) => - e.toUpperCase().replace(/\.(.*)/, '$1') - ) - ); - - if (arr.length === 2) arr = [arr.join(' or ')]; - if (arr.length > 2) arr = [...arr.slice(0, -2), arr.slice(-2).join(' or ')]; - - return arr.join(', '); -}; - -const getReadableSize = (maxSize: number) => - `${(maxSize / 1000000).toFixed(1)}MB`; - -const defaultChildren: NonNullable = ({ - id, - file, - loading, - error, - previewUrl, - dragging, - clearFile = () => {}, - selectFile = () => {}, - rootProps = {}, - inputProps = {}, - accept, - maxSize, -}) => ( - ({ - minHeight: '150px', - transition: 'background 300ms', - borderRadius: `${shape.borderRadius}px`, - border: `1px dashed ${palette.divider}`, - backgroundColor: dragging - ? alpha(palette.primary.light, 0.12) - : palette.background.paper, - overflow: 'hidden', - })} - {...rootProps} - id={id} - > - - - - {!loading && !file && ( - <> - - - - Click to upload - {' '} - or drag and drop - - - {accept ? getFileTypesFromAccept(accept) : 'Any file type'} (max.{' '} - {getReadableSize(maxSize)}) - - - )} - {!loading && file && ( - <> - {previewUrl ? ( - `${theme.shape.borderRadius}px`, - mb: 1, - }} - /> - ) : ( - - )} - {file?.name} - - { - e.stopPropagation(); - clearFile(); - }} - variant='body2' - color='GrayText' - sx={{ - display: 'inline-flex', - alignItems: 'center', - mt: 1, - }} - > - -  Clear - - - - )} - {loading && ( - <> - - Uploading - - - - )} - {error && ( - - {error} - - )} - - - -); - -const Uploader: React.FC = ({ - id, - onUpload, - onClear = () => {}, - file: fileProp, - image: isImage = false, - accept: acceptProp, - maxSize = DEFUALT_MAX_BYTES, -}) => { - const [currentFile, setCurrentFile] = useState(); - const [currentUpload, setCurrentUpload] = useState(); - const [loading, setLoading] = useState(false); - const [error, setError] = useState(); - const file = fileProp || currentFile; - const fileImageUrl = - file && file.type.match(/^image/) ? URL.createObjectURL(file) : undefined; - // const isEmpty = !file; - - const [uploadFile] = useDirectUpload(); - const uploadAndCreate = useCallback( - (acceptedFiles: File[]) => { - const file = first(acceptedFiles); - if (file) { - setLoading(true); - setCurrentFile(file); - uploadFile(file) - .then((res) => { - setCurrentUpload(res); - onUpload(res, file); - }) - .then(() => setLoading(false)) - .catch((error) => { - setLoading(false); - setError(error.message); - }); - } - }, - [uploadFile, onUpload] - ); - - const accept = useMemo(() => { - const base: Accept = { - ...(isImage ? { 'image/*': IMAGE_FILE_TYPES } : {}), - ...acceptProp, - }; - - return isEmpty(base) ? undefined : base; - }, [isImage, acceptProp]); - - const { getRootProps, isDragActive, getInputProps, open } = useDropzone({ - onDropAccepted: uploadAndCreate, - multiple: false, - accept, - maxSize, - noClick: true, - onDrop: (acceptedFiles, fileRejections) => { - fileRejections.forEach((file) => { - file.errors.forEach((err) => { - if (err.code === 'file-too-large') { - setError( - `Image is too large. File size must be under ${getReadableSize( - maxSize - )}` - ); - } else if (err.code === 'file-invalid-type') { - setError( - `Unsupported file type. ${ - accept - ? `Supported file types are: ${getFileTypesFromAccept( - accept - )}` - : '' - }` - ); - } else { - setError(`Error: ${err.message || err.code}`); - } - setCurrentFile(undefined); - }); - }); - acceptedFiles.forEach(() => setError(undefined)); - }, - }); - - const handleClear = useCallback>(() => { - onClear(currentUpload, currentFile); - setCurrentFile(undefined); - setCurrentUpload(undefined); - }, [currentUpload, currentFile, onClear]); - - return defaultChildren({ - id, - file, - loading, - error, - previewUrl: fileImageUrl, - dragging: isDragActive, - clearFile: handleClear, - selectFile: open, - rootProps: getRootProps(), - inputProps: getInputProps(), - accept, - maxSize, - }); -}; - -export default Uploader; diff --git a/src/modules/clientFiles/components/FileModal.tsx b/src/components/elements/upload/fileDialog/FilePreview.tsx similarity index 68% rename from src/modules/clientFiles/components/FileModal.tsx rename to src/components/elements/upload/fileDialog/FilePreview.tsx index 7681c3fee..3f42fbedf 100644 --- a/src/modules/clientFiles/components/FileModal.tsx +++ b/src/components/elements/upload/fileDialog/FilePreview.tsx @@ -9,19 +9,13 @@ import { Stack, Typography, } from '@mui/material'; -import pdfWorker from 'pdfjs-dist/build/pdf.worker.js?url'; import React, { useMemo, useState } from 'react'; -import { pdfjs, Document, Page } from 'react-pdf'; - -pdfjs.GlobalWorkerOptions.workerSrc = pdfWorker; - -import useSafeParams from '@/hooks/useSafeParams'; -import ViewRecordDialog from '@/modules/form/components/ViewRecordDialog'; -import { FileFieldsFragment, RecordFormRole } from '@/types/gqlTypes'; +import { Document, Page } from 'react-pdf'; +import { FileFieldsFragment } from '@/types/gqlTypes'; export type FileDialogProps = { - file: FileFieldsFragment; - actions?: React.ReactNode; + file: Pick & + Partial>; } & DialogProps; const LoadingPreview: React.FC = () => ( @@ -38,7 +32,9 @@ const LoadingPreview: React.FC = () => ( ); -const ImagePreview: React.FC<{ file: FileFieldsFragment }> = ({ file }) => { +const ImagePreview: React.FC<{ file: FileDialogProps['file'] }> = ({ + file, +}) => { const [loaded, setLoaded] = useState(false); if (!file.url) return null; @@ -62,7 +58,7 @@ const ImagePreview: React.FC<{ file: FileFieldsFragment }> = ({ file }) => { ); }; -const PdfPreview: React.FC<{ file: FileFieldsFragment }> = ({ +const PdfPreview: React.FC<{ file: FileDialogProps['file'] }> = ({ file: { url }, }) => { const [pageNumber, setPageNumber] = useState(1); @@ -120,8 +116,7 @@ const PdfPreview: React.FC<{ file: FileFieldsFragment }> = ({ ); }; -const FileDialog: React.FC = ({ file, actions, ...props }) => { - const { clientId } = useSafeParams() as { clientId?: string }; +const FilePreview: React.FC<{ file: FileDialogProps['file'] }> = ({ file }) => { const previewContent = useMemo(() => { if ( file.contentType && @@ -176,50 +171,29 @@ const FileDialog: React.FC = ({ file, actions, ...props }) => { ); } }, [file]); - const pickListArgs = useMemo(() => ({ clientId }), [clientId]); return ( <> - {file && ( - - {...props} - record={file} - formRole={RecordFormRole.File} - title={file.name} - actions={actions} - pickListArgs={pickListArgs} - > - - - - File Preview - - ({ - backgroundColor: theme.palette.grey[300], - padding: 2, - display: 'flex', - flexDirection: 'column', - alignItems: 'center', - justifyContent: 'center', - borderRadius: `${theme.shape.borderRadius}px`, - mx: 2, - mb: 2, - })} - > - {previewContent} - - - - - )} + + File Preview + + ({ + backgroundColor: theme.palette.grey[300], + padding: 2, + display: 'flex', + flexDirection: 'column', + alignItems: 'center', + justifyContent: 'center', + borderRadius: `${theme.shape.borderRadius}px`, + mx: 2, + mb: 2, + })} + > + {previewContent} + ); }; -export default FileDialog; +export default FilePreview; diff --git a/src/components/elements/upload/fileDialog/FilePreviewDialog.tsx b/src/components/elements/upload/fileDialog/FilePreviewDialog.tsx new file mode 100644 index 000000000..15d94c67c --- /dev/null +++ b/src/components/elements/upload/fileDialog/FilePreviewDialog.tsx @@ -0,0 +1,48 @@ +import { DialogProps, Paper, Stack } from '@mui/material'; +import pdfWorker from 'pdfjs-dist/build/pdf.worker.js?url'; +import React, { useMemo } from 'react'; +import { pdfjs } from 'react-pdf'; +import FilePreview from '@/components/elements/upload/fileDialog/FilePreview'; +import useSafeParams from '@/hooks/useSafeParams'; +import ViewRecordDialog from '@/modules/form/components/ViewRecordDialog'; +import { FileFieldsFragment, RecordFormRole } from '@/types/gqlTypes'; + +pdfjs.GlobalWorkerOptions.workerSrc = pdfWorker; + +// component for viewing a FileFieldsFragment. Viewing an unsaved File is not currently supported +export type FileRecordDialogProps = { + file: FileFieldsFragment; + actions?: React.ReactNode; +} & DialogProps; +const FilePreviewDialog: React.FC = ({ + file, + actions, + ...props +}) => { + const { clientId } = useSafeParams() as { clientId?: string }; + const pickListArgs = useMemo(() => ({ clientId }), [clientId]); + + return ( + + {...props} + record={file} + formRole={RecordFormRole.File} + title={file.name} + actions={actions} + pickListArgs={pickListArgs} + > + + + + + + + ); +}; + +export default FilePreviewDialog; diff --git a/src/components/elements/upload/fileSummary/FileSummary.tsx b/src/components/elements/upload/fileSummary/FileSummary.tsx new file mode 100644 index 000000000..d8fe09ca6 --- /dev/null +++ b/src/components/elements/upload/fileSummary/FileSummary.tsx @@ -0,0 +1,144 @@ +import { HighlightOff as HighlightOffIcon } from '@mui/icons-material'; +import InsertDriveFileIcon from '@mui/icons-material/InsertDriveFile'; +import { Box, Link, Stack, Tooltip, Typography } from '@mui/material'; +import React, { ReactNode, useMemo } from 'react'; +import CommonMenuButton from '@/components/elements/CommonMenuButton'; +import FileThumbnailIcon from '@/components/elements/upload/FileThumbnailIcon'; + +export type FileSummaryProps = { + fileName: string; + url: string; + showThumbnail?: boolean; + permitDownload?: boolean; + onRemove?: VoidFunction; + openPreview?: VoidFunction; + info?: ReactNode; + variant: 'row' | 'stacked'; +}; + +const FileSummary: React.FC = ({ + fileName, + url, + onRemove, + openPreview, + info, + variant = 'stacked', + showThumbnail = false, + permitDownload = true, +}) => { + const preview = useMemo(() => { + // For the "row" variant, make the preview the same size as the FilePreviewIcon, so row heights are the same + const size = variant === 'row' ? '40px' : '72px'; + return ( + <> + {showThumbnail ? ( + `${theme.shape.borderRadius}px`, + mb: 1, + }} + /> + ) : ( + + )} + + ); + }, [showThumbnail, url, variant]); + + const menuItems = useMemo( + () => [ + ...(openPreview + ? [ + { + key: 'View', + title: 'View', + onClick: openPreview, + ariaLabel: `View ${fileName}`, + }, + ] + : []), + ...(permitDownload + ? [ + { + key: 'Download', + title: 'Download', + to: url, + ariaLabel: `Download ${fileName}`, + }, + ] + : []), + // It's intentional that we use Delete here in the 'row' variant, vs Clear in the 'stacked' variant + ...(onRemove + ? [ + { + key: 'Delete', + title: 'Delete', + onClick: onRemove, + ariaLabel: `Delete ${fileName}`, + }, + ] + : []), + ], + [onRemove, openPreview, permitDownload, url, fileName] + ); + + if (variant === 'stacked') { + return ( + <> + {preview} + + {fileName} + {onRemove && ( + + { + e.stopPropagation(); + onRemove(); + }} + variant='body2' + color='GrayText' + sx={{ + display: 'inline-flex', + alignItems: 'center', + mt: 1, + }} + > + +  Clear + + + )} + + + ); + } + + return ( + + + {preview} + + {fileName} + + {info} + + {menuItems.length && ( + + )} + + ); +}; + +export default FileSummary; diff --git a/src/components/elements/upload/fileSummary/MultiFileSummaries.tsx b/src/components/elements/upload/fileSummary/MultiFileSummaries.tsx new file mode 100644 index 000000000..812994a01 --- /dev/null +++ b/src/components/elements/upload/fileSummary/MultiFileSummaries.tsx @@ -0,0 +1,50 @@ +import { Box, Card, Divider, Stack } from '@mui/material'; +import { visuallyHidden } from '@mui/utils'; +import React, { Fragment } from 'react'; +import SavedFileSummary from '@/components/elements/upload/fileSummary/SavedFileSummary'; +import UnsavedFileSummary from '@/components/elements/upload/fileSummary/UnsavedFileSummary'; +import { FileFieldsFragment } from '@/types/gqlTypes'; + +const MultiFileSummaries = ({ + savedFiles, + unsavedFiles, + onRemove, +}: { + savedFiles: FileFieldsFragment[]; + unsavedFiles: File[]; + onRemove: (file: FileFieldsFragment | File) => void; +}) => { + return ( + + }> + {savedFiles.map((file) => { + return ( + onRemove(file)} + variant='row' + /> + ); + })} + {unsavedFiles.map((file) => { + return ( + + onRemove(file)} + variant='row' + /> + + Uploaded {file.name} + + + ); + })} + + + ); +}; + +export default MultiFileSummaries; diff --git a/src/components/elements/upload/fileSummary/SavedFileSummary.tsx b/src/components/elements/upload/fileSummary/SavedFileSummary.tsx new file mode 100644 index 000000000..5a4d873b6 --- /dev/null +++ b/src/components/elements/upload/fileSummary/SavedFileSummary.tsx @@ -0,0 +1,50 @@ +import { Typography } from '@mui/material'; +import React, { useState } from 'react'; +import FilePreviewDialog from '@/components/elements/upload/fileDialog/FilePreviewDialog'; +import FileSummary, { + FileSummaryProps, +} from '@/components/elements/upload/fileSummary/FileSummary'; +import { + formatRelativeDate, + parseHmisDateString, +} from '@/modules/hmis/hmisUtil'; +import { FileFieldsFragment } from '@/types/gqlTypes'; + +// Wrapper around FileSummary for representing a FileFieldsFragment, aka a file that has already been saved as a File record in our db +const SavedFileSummary: React.FC<{ + file: FileFieldsFragment; + variant: FileSummaryProps['variant']; + onRemove?: FileSummaryProps['onRemove']; +}> = ({ file, variant, onRemove }) => { + const date = parseHmisDateString(file.dateCreated); + const [previewOpen, setPreviewOpen] = useState(false); + + return ( + <> + + Uploaded {formatRelativeDate(date)} + + ) + } + variant={variant} + onRemove={onRemove} + openPreview={() => setPreviewOpen(true)} + /> + setPreviewOpen(false)} + file={file} + /> + + ); +}; + +export default SavedFileSummary; diff --git a/src/components/elements/upload/fileSummary/SingleFileSummary.tsx b/src/components/elements/upload/fileSummary/SingleFileSummary.tsx new file mode 100644 index 000000000..e844ba6f7 --- /dev/null +++ b/src/components/elements/upload/fileSummary/SingleFileSummary.tsx @@ -0,0 +1,35 @@ +import React from 'react'; +import SavedFileSummary from '@/components/elements/upload/fileSummary/SavedFileSummary'; +import UnsavedFileSummary from '@/components/elements/upload/fileSummary/UnsavedFileSummary'; +import { FileFieldsFragment } from '@/types/gqlTypes'; + +const SingleFileSummary = ({ + savedFile, + unsavedFile, + onRemove, +}: { + savedFile?: FileFieldsFragment; + unsavedFile?: File; + onRemove: (file: FileFieldsFragment | File) => void; +}) => { + return ( + <> + {unsavedFile && ( + onRemove(unsavedFile)} + variant='stacked' + /> + )} + {savedFile && ( + onRemove(savedFile)} + variant='stacked' + /> + )} + + ); +}; + +export default SingleFileSummary; diff --git a/src/components/elements/upload/fileSummary/UnsavedFileSummary.tsx b/src/components/elements/upload/fileSummary/UnsavedFileSummary.tsx new file mode 100644 index 000000000..6fedccded --- /dev/null +++ b/src/components/elements/upload/fileSummary/UnsavedFileSummary.tsx @@ -0,0 +1,37 @@ +import { Typography } from '@mui/material'; +import React, { useMemo } from 'react'; +import FileSummary, { + FileSummaryProps, +} from '@/components/elements/upload/fileSummary/FileSummary'; + +// Wrapper around FileSummary for representing a File, aka a file that has just now been uploaded to Active Storage but doesn't yet exist as a File record in our db. +const UnsavedFileSummary: React.FC<{ + file: File; + variant: FileSummaryProps['variant']; + onRemove?: FileSummaryProps['onRemove']; +}> = ({ file, variant, onRemove }) => { + const url = useMemo(() => URL.createObjectURL(file), [file]); + + return ( + <> + + (unsaved) + + } + variant={variant} + onRemove={onRemove} + permitDownload={false} + /> + + ); +}; + +export default UnsavedFileSummary; diff --git a/src/modules/admin/components/users/UserActionsMenu.tsx b/src/modules/admin/components/users/UserActionsMenu.tsx index 8d595f23c..c3ca82f20 100644 --- a/src/modules/admin/components/users/UserActionsMenu.tsx +++ b/src/modules/admin/components/users/UserActionsMenu.tsx @@ -51,7 +51,9 @@ const UserActionsMenu: React.FC = ({ ); }; diff --git a/src/modules/assessments/components/IndividualAssessmentFormController.tsx b/src/modules/assessments/components/IndividualAssessmentFormController.tsx index 0dafce990..51b5bcaae 100644 --- a/src/modules/assessments/components/IndividualAssessmentFormController.tsx +++ b/src/modules/assessments/components/IndividualAssessmentFormController.tsx @@ -69,6 +69,12 @@ const IndividualAssessmentFormController: React.FC = ({ onCompletedMutation, }); + const showSaveWipButton = useMemo(() => { + if (!editingDefinition.supportsSaveInProgress) return false; + + return !assessment || assessment.inProgress; + }, [assessment, editingDefinition.supportsSaveInProgress]); + const FormActionProps = useMemo(() => { return { onDiscard: navigateToEnrollment, @@ -80,16 +86,16 @@ const IndividualAssessmentFormController: React.FC = ({ action: FormActionTypes.Submit, buttonProps: { variant: 'contained' } as const, }, - ...(assessment && !assessment.inProgress - ? [] - : [ + ...(showSaveWipButton + ? [ { id: 'saveDraft', label: 'Save and finish later', action: FormActionTypes.Save, buttonProps: { variant: 'outlined' } as const, }, - ]), + ] + : []), { id: 'discard', label: 'Cancel', @@ -98,7 +104,7 @@ const IndividualAssessmentFormController: React.FC = ({ }, ], }; - }, [assessment, navigateToEnrollment]); + }, [navigateToEnrollment, showSaveWipButton]); return ( { /> {viewingFile && ( - setViewingFile(undefined)} file={viewingFile} diff --git a/src/modules/enrollment/components/EnrollmentAssessmentActionButtons.tsx b/src/modules/enrollment/components/EnrollmentAssessmentActionButtons.tsx index c957c907b..ac4b5c6dc 100644 --- a/src/modules/enrollment/components/EnrollmentAssessmentActionButtons.tsx +++ b/src/modules/enrollment/components/EnrollmentAssessmentActionButtons.tsx @@ -6,7 +6,7 @@ import { useAssessmentEligibilities } from '../hooks/useAssessmentEligibilities' import ButtonLink from '@/components/elements/ButtonLink'; import ButtonTooltipContainer from '@/components/elements/ButtonTooltipContainer'; import CommonMenuButton, { - NavMenuItem, + CommonMenuItem, } from '@/components/elements/CommonMenuButton'; import { DashboardEnrollment } from '@/modules/hmis/types'; import { useHouseholdMembers } from '@/modules/household/hooks/useHouseholdMembers'; @@ -77,7 +77,7 @@ const NewAssessmentMenu: React.FC< [clientId, enrollmentId] ); - const items: NavMenuItem[] = useMemo( + const items: CommonMenuItem[] = useMemo( () => assessmentEligibilities.map(({ id, title, role, formDefinitionId }) => ({ key: id, @@ -92,7 +92,11 @@ const NewAssessmentMenu: React.FC< - + ); } @@ -115,7 +119,11 @@ const EnrollmentAssessmentActionButtons: React.FC = ({ enrollment }) => { if (loading && !assessmentEligibilities) { return ( - + ); } diff --git a/src/modules/form/components/DynamicField.tsx b/src/modules/form/components/DynamicField.tsx index adb35e87a..e146113ac 100644 --- a/src/modules/form/components/DynamicField.tsx +++ b/src/modules/form/components/DynamicField.tsx @@ -42,7 +42,8 @@ import SsnInput from '@/components/elements/input/SsnInput'; import TextInput from '@/components/elements/input/TextInput'; import TimeOfDayPicker from '@/components/elements/input/TimeOfDayPicker'; import YesNoRadio from '@/components/elements/input/YesNoRadio'; -import Uploader from '@/components/elements/upload/UploaderBase'; +import LabelWithContent from '@/components/elements/LabelWithContent'; +import Uploader from '@/components/elements/upload/Uploader'; import useAuth from '@/modules/auth/hooks/useAuth'; import MciClearance from '@/modules/external/mci/components/MciClearance'; import SimpleAddressInput from '@/modules/form/components/client/addresses/SimpleAddressInput'; @@ -410,20 +411,30 @@ const DynamicField: React.FC = ({ case ItemType.Image: return ( - onChangeValue(upload.signedBlobId)} - /> + + + ); case ItemType.File: return ( - onChangeValue(upload.signedBlobId)} - /> + + + ); case ItemType.Object: diff --git a/src/modules/form/components/viewable/DynamicViewField.tsx b/src/modules/form/components/viewable/DynamicViewField.tsx index c18583a7c..dbe21c963 100644 --- a/src/modules/form/components/viewable/DynamicViewField.tsx +++ b/src/modules/form/components/viewable/DynamicViewField.tsx @@ -1,4 +1,4 @@ -import { Skeleton, Stack, Typography } from '@mui/material'; +import { Card, Divider, Skeleton, Stack, Typography } from '@mui/material'; import { formatDuration } from 'date-fns'; import { isNil } from 'lodash-es'; import React, { useMemo } from 'react'; @@ -8,9 +8,6 @@ import { DynamicViewFieldProps } from '../../types'; import { isDataNotCollected } from '../../util/formUtil'; import DynamicDisplay from '../DynamicDisplay'; -import File from './item/File'; -import Image from './item/Image'; - import TextContent from './item/TextContent'; import CommonHtmlContent from '@/components/elements/CommonHtmlContent'; @@ -19,6 +16,7 @@ import { minutesToHoursAndMinutes } from '@/components/elements/input/MinutesDur import LabelWithContent from '@/components/elements/LabelWithContent'; import NotCollectedText from '@/components/elements/NotCollectedText'; import RecoverableError from '@/components/elements/RecoverableError'; +import SavedFileSummary from '@/components/elements/upload/fileSummary/SavedFileSummary'; import YesNoDisplay from '@/components/elements/YesNoDisplay'; import ClientAddress from '@/modules/client/components/ClientAddress'; import ClientContactPoint from '@/modules/client/components/ClientContactPoint'; @@ -195,9 +193,23 @@ const DynamicViewField: React.FC = ({ /> ); case ItemType.Image: - return ; case ItemType.File: - return ; + const files = ensureArray(value); + return ( + + {files.length === 0 ? ( + + ) : ( + + }> + {files.map((file) => ( + + ))} + + + )} + + ); case ItemType.Object: switch (item.component) { case Component.Address: // Used in Move-in Date Display diff --git a/src/modules/form/util/formUtil.ts b/src/modules/form/util/formUtil.ts index 00b5226de..de00ef473 100644 --- a/src/modules/form/util/formUtil.ts +++ b/src/modules/form/util/formUtil.ts @@ -718,6 +718,11 @@ export const gqlValueToFormValue = ( return compact(value.map((v) => getOptionValue(v, item))); } return getOptionValue(value, item); + case ItemType.File: + // Use full File object in form to display metadata. + // The metadata fields wont be submitted because of the `formValueToGqlValue` + // logic which will transform the file object into an ID before submitting it back. + return value; default: // Set the property directly as the initial form value @@ -788,6 +793,21 @@ export const formValueToGqlValue = ( } else if (value) { return (value as PickListOption).code; } + } else if ([ItemType.File, ItemType.Image].includes(item.type)) { + // Special case for File types. The frontend receives a FileFieldsFragment + // if this file has already been saved, but we don't want to return that whole fragment + // to the backend for processing, so just return the ID. + if (Array.isArray(value)) { + return value.map((fileOrBlobId) => + fileOrBlobId.hasOwnProperty('id') ? fileOrBlobId.id : fileOrBlobId + ); + } else { + if (value.hasOwnProperty('id')) { + return value.id; + } else { + return value; + } + } } return value; diff --git a/src/modules/formBuilder/components/FormBuilderPalette.tsx b/src/modules/formBuilder/components/FormBuilderPalette.tsx index 56c198b03..c90d2a9c8 100644 --- a/src/modules/formBuilder/components/FormBuilderPalette.tsx +++ b/src/modules/formBuilder/components/FormBuilderPalette.tsx @@ -25,12 +25,7 @@ import { FormItemPaletteType } from '@/modules/formBuilder/types'; import { ItemType } from '@/types/gqlTypes'; // Item types that are excluded from the form builder palette, until we have better support (#6401) -const EXCLUDED_ITEM_TYPES = [ - ItemType.Object, - ItemType.Image, - ItemType.File, - ItemType.Geolocation, -]; +const EXCLUDED_ITEM_TYPES = [ItemType.Object, ItemType.Geolocation]; export const FORM_ITEM_PALETTE = { [ItemType.Group]: { diff --git a/src/modules/formBuilder/components/formTree/FormTreeLabel.tsx b/src/modules/formBuilder/components/formTree/FormTreeLabel.tsx index d8e7fc0ff..42c586e9b 100644 --- a/src/modules/formBuilder/components/formTree/FormTreeLabel.tsx +++ b/src/modules/formBuilder/components/formTree/FormTreeLabel.tsx @@ -184,14 +184,16 @@ const FormTreeLabel: React.FC = ({ > theme.palette.links, - height: '28px', - width: '28px', + ButtonProps={{ + 'aria-label': `${itemId} item actions`, + variant: 'outlined', + sx: { + color: (theme: Theme) => theme.palette.links, + height: '28px', + width: '28px', + }, }} MenuProps={{ sx: { diff --git a/src/modules/formBuilder/components/itemEditor/FormItemEditor.tsx b/src/modules/formBuilder/components/itemEditor/FormItemEditor.tsx index 19b4fb26a..9f0aa3083 100644 --- a/src/modules/formBuilder/components/itemEditor/FormItemEditor.tsx +++ b/src/modules/formBuilder/components/itemEditor/FormItemEditor.tsx @@ -206,6 +206,13 @@ const FormItemEditor: React.FC = ({ } }, [errorState]); + const isSizeEditable = useMemo(() => { + // TODO - Not all types that don't respect `size` prop are listed here yet + return ( + itemTypeValue && ![ItemType.File, ItemType.Image].includes(itemTypeValue) + ); + }, [itemTypeValue]); + if (!itemTypeValue) throw Error('Item type must be defined'); return ( @@ -327,7 +334,7 @@ const FormItemEditor: React.FC = ({ minRows={isDisplayItem ? 2 : undefined} /> )} - {isQuestionItem && ( + {isQuestionItem && isSizeEditable && ( = ({ options={inputSizePickList} /> )} - {([ItemType.Choice, ItemType.OpenChoice].includes(itemTypeValue) || + {([ + ItemType.Choice, + ItemType.OpenChoice, + ItemType.File, + ItemType.Image, + ].includes(itemTypeValue) || (itemTypeValue === ItemType.Object && itemComponentValue === Component.Address)) && ( !isNil(e))[0]; }; diff --git a/src/types/gqlEnums.ts b/src/types/gqlEnums.ts index 91d4f0229..779cefe20 100644 --- a/src/types/gqlEnums.ts +++ b/src/types/gqlEnums.ts @@ -272,6 +272,7 @@ export const HmisEnums = { CustomDataElementType: { boolean: 'boolean', date: 'date', + file: 'file', float: 'float', integer: 'integer', json: 'json', diff --git a/src/types/gqlObjects.ts b/src/types/gqlObjects.ts index d267e1ad1..629c8682e 100644 --- a/src/types/gqlObjects.ts +++ b/src/types/gqlObjects.ts @@ -1611,14 +1611,6 @@ export const HmisObjectSchemas: GqlSchema[] = [ { name: 'DirectUpload', fields: [ - { - name: 'blobId', - type: { - kind: 'NON_NULL', - name: null, - ofType: { kind: 'SCALAR', name: 'ID', ofType: null }, - }, - }, { name: 'filename', type: { @@ -3178,10 +3170,6 @@ export const HmisObjectSchemas: GqlSchema[] = [ name: 'expirationDate', type: { kind: 'SCALAR', name: 'ISO8601Date', ofType: null }, }, - { - name: 'fileBlobId', - type: { kind: 'SCALAR', name: 'ID', ofType: null }, - }, { name: 'id', type: { @@ -3300,6 +3288,14 @@ export const HmisObjectSchemas: GqlSchema[] = [ ofType: { kind: 'ENUM', name: 'FormStatus', ofType: null }, }, }, + { + name: 'supportsSaveInProgress', + type: { + kind: 'NON_NULL', + name: null, + ofType: { kind: 'SCALAR', name: 'Boolean', ofType: null }, + }, + }, { name: 'system', type: { diff --git a/src/types/gqlTypes.ts b/src/types/gqlTypes.ts index 58f33a26f..cf6609a0d 100644 --- a/src/types/gqlTypes.ts +++ b/src/types/gqlTypes.ts @@ -1500,6 +1500,7 @@ export type CustomDataElement = { export enum CustomDataElementType { Boolean = 'boolean', Date = 'date', + File = 'file', Float = 'float', Integer = 'integer', Json = 'json', @@ -1517,6 +1518,7 @@ export type CustomDataElementValue = { user?: Maybe; valueBoolean?: Maybe; valueDate?: Maybe; + valueFile?: Maybe; valueFloat?: Maybe; valueInteger?: Maybe; valueJson?: Maybe; @@ -2012,11 +2014,6 @@ export enum Destination { /** Represents direct upload credentials */ export type DirectUpload = { __typename?: 'DirectUpload'; - /** - * Created blob record ID - * @deprecated Deprecated in favor of signed_blob_id - */ - blobId: Scalars['ID']['output']; filename: Scalars['String']['output']; /** HTTP request headers (JSON-encoded) */ headers: Scalars['String']['output']; @@ -2912,8 +2909,6 @@ export type File = { enrollment?: Maybe; enrollmentId?: Maybe; expirationDate?: Maybe; - /** @deprecated Removing unused blob ID */ - fileBlobId?: Maybe; id: Scalars['ID']['output']; name: Scalars['String']['output']; ownFile: Scalars['Boolean']['output']; @@ -2956,6 +2951,7 @@ export type FormDefinition = { rawDefinition: Scalars['JsonObject']['output']; role: FormRole; status: FormStatus; + supportsSaveInProgress: Scalars['Boolean']['output']; system: Scalars['Boolean']['output']; title: Scalars['String']['output']; updatedBy?: Maybe; @@ -8455,6 +8451,41 @@ export type AssessmentWithRecordsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -8476,6 +8507,41 @@ export type AssessmentWithRecordsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -8625,6 +8691,41 @@ export type AssessmentWithRecordsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -8646,6 +8747,41 @@ export type AssessmentWithRecordsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -8757,6 +8893,41 @@ export type AssessmentWithRecordsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -8778,6 +8949,41 @@ export type AssessmentWithRecordsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -8834,6 +9040,41 @@ export type AssessmentWithRecordsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -8855,6 +9096,41 @@ export type AssessmentWithRecordsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -9030,6 +9306,41 @@ export type FullAssessmentFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -9051,6 +9362,41 @@ export type FullAssessmentFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -9200,6 +9546,41 @@ export type FullAssessmentFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -9221,6 +9602,41 @@ export type FullAssessmentFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -9332,6 +9748,41 @@ export type FullAssessmentFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -9353,6 +9804,41 @@ export type FullAssessmentFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -9409,6 +9895,41 @@ export type FullAssessmentFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -9430,6 +9951,41 @@ export type FullAssessmentFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -9498,6 +10054,7 @@ export type GetAssessmentQuery = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -10007,6 +10564,7 @@ export type GetAssessmentQuery = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -10593,6 +11151,41 @@ export type GetAssessmentQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -10614,6 +11207,41 @@ export type GetAssessmentQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -10763,6 +11391,41 @@ export type GetAssessmentQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -10784,6 +11447,41 @@ export type GetAssessmentQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -10895,6 +11593,41 @@ export type GetAssessmentQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -10916,6 +11649,41 @@ export type GetAssessmentQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -10972,6 +11740,41 @@ export type GetAssessmentQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -10993,6 +11796,41 @@ export type GetAssessmentQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -11426,6 +12264,41 @@ export type SubmitAssessmentMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -11447,6 +12320,41 @@ export type SubmitAssessmentMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -11596,6 +12504,41 @@ export type SubmitAssessmentMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -11617,6 +12560,41 @@ export type SubmitAssessmentMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -11728,6 +12706,41 @@ export type SubmitAssessmentMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -11749,6 +12762,41 @@ export type SubmitAssessmentMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -11805,6 +12853,41 @@ export type SubmitAssessmentMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -11826,6 +12909,41 @@ export type SubmitAssessmentMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -11988,6 +13106,41 @@ export type SubmitHouseholdAssessmentsMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12009,6 +13162,41 @@ export type SubmitHouseholdAssessmentsMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12158,6 +13346,41 @@ export type SubmitHouseholdAssessmentsMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12179,6 +13402,41 @@ export type SubmitHouseholdAssessmentsMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12290,6 +13548,41 @@ export type SubmitHouseholdAssessmentsMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12311,6 +13604,41 @@ export type SubmitHouseholdAssessmentsMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12367,6 +13695,41 @@ export type SubmitHouseholdAssessmentsMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12388,6 +13751,41 @@ export type SubmitHouseholdAssessmentsMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12567,6 +13965,41 @@ export type GetAssessmentsForPopulationQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12588,6 +14021,41 @@ export type GetAssessmentsForPopulationQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12737,6 +14205,41 @@ export type GetAssessmentsForPopulationQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12758,6 +14261,41 @@ export type GetAssessmentsForPopulationQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12869,6 +14407,41 @@ export type GetAssessmentsForPopulationQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12890,6 +14463,41 @@ export type GetAssessmentsForPopulationQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12946,6 +14554,41 @@ export type GetAssessmentsForPopulationQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -12967,6 +14610,41 @@ export type GetAssessmentsForPopulationQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -13950,6 +15628,41 @@ export type ClientFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -13971,6 +15684,41 @@ export type ClientFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -14380,6 +16128,41 @@ export type GetClientQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -14401,6 +16184,41 @@ export type GetClientQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -14694,6 +16512,41 @@ export type GetClientServicesQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -14715,6 +16568,41 @@ export type GetClientServicesQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -15153,6 +17041,7 @@ export type ClientDetailFormsQuery = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -15889,6 +17778,41 @@ export type MergeClientsMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -15910,6 +17834,41 @@ export type MergeClientsMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -16695,6 +18654,41 @@ export type CurrentLivingSituationFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -16716,6 +18710,41 @@ export type CurrentLivingSituationFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -16787,6 +18816,41 @@ export type ProjectCurrentLivingSituationFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -16808,6 +18872,41 @@ export type ProjectCurrentLivingSituationFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -16879,6 +18978,41 @@ export type GetEnrollmentCurrentLivingSituationsQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -16900,6 +19034,41 @@ export type GetEnrollmentCurrentLivingSituationsQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -16990,6 +19159,41 @@ export type GetProjectCurrentLivingSituationsQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17011,6 +19215,41 @@ export type GetProjectCurrentLivingSituationsQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17062,6 +19301,41 @@ export type CustomCaseNoteFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17083,6 +19357,41 @@ export type CustomCaseNoteFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17148,6 +19457,41 @@ export type GetEnrollmentCustomCaseNotesQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17169,6 +19513,41 @@ export type GetEnrollmentCustomCaseNotesQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17283,6 +19662,41 @@ export type GetClientCaseNotesQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17304,6 +19718,41 @@ export type GetClientCaseNotesQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17331,6 +19780,41 @@ export type CustomDataElementValueFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17361,6 +19845,41 @@ export type CustomDataElementFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17382,6 +19901,41 @@ export type CustomDataElementFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17537,6 +20091,41 @@ export type EnrolledClientFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17558,6 +20147,41 @@ export type EnrolledClientFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17642,6 +20266,41 @@ export type AllEnrollmentDetailsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17663,6 +20322,41 @@ export type AllEnrollmentDetailsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17706,6 +20400,41 @@ export type AllEnrollmentDetailsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17727,6 +20456,41 @@ export type AllEnrollmentDetailsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -17794,6 +20558,7 @@ export type AllEnrollmentDetailsFragment = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -18503,6 +21268,41 @@ export type SubmittedEnrollmentResultFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -18524,6 +21324,41 @@ export type SubmittedEnrollmentResultFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -18777,6 +21612,41 @@ export type GetEnrollmentDetailsQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -18798,6 +21668,41 @@ export type GetEnrollmentDetailsQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -18841,6 +21746,41 @@ export type GetEnrollmentDetailsQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -18862,6 +21802,41 @@ export type GetEnrollmentDetailsQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -18929,6 +21904,7 @@ export type GetEnrollmentDetailsQuery = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -19957,6 +22933,7 @@ export type ExternalFormSubmissionFieldsFragment = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -20631,6 +23608,7 @@ export type GetExternalFormSubmissionQuery = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -21824,6 +24802,7 @@ export type FormDefinitionMetadataFragment = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; updatedBy?: { __typename?: 'ApplicationUser'; name: string } | null; }; @@ -21836,6 +24815,7 @@ export type FormDefinitionFieldsFragment = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -22347,6 +25327,7 @@ export type FormDefinitionFieldsForJsonEditorFragment = { cacheKey: string; identifier: string; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -22858,6 +25839,7 @@ export type FormDefinitionFieldsForEditorFragment = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -23373,6 +26355,7 @@ export type FormIdentifierDetailsFragment = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; updatedBy?: { __typename?: 'ApplicationUser'; name: string } | null; }; draftVersion?: { @@ -23384,6 +26367,7 @@ export type FormIdentifierDetailsFragment = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; updatedBy?: { __typename?: 'ApplicationUser'; name: string } | null; } | null; }; @@ -23407,6 +26391,7 @@ export type UpdateFormDefinitionMutation = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -23943,6 +26928,7 @@ export type UpdateFormDefinitionFromJsonEditorMutation = { cacheKey: string; identifier: string; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -24477,6 +27463,7 @@ export type CreateFormDefinitionMutation = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; updatedBy?: { __typename?: 'ApplicationUser'; name: string } | null; } | null; errors: Array<{ @@ -24517,6 +27504,7 @@ export type CreateNextDraftFormDefinitionMutation = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; updatedBy?: { __typename?: 'ApplicationUser'; name: string } | null; } | null; } | null; @@ -24544,6 +27532,7 @@ export type CreateDuplicateFormDefinitionMutation = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; updatedBy?: { __typename?: 'ApplicationUser'; name: string } | null; } | null; } | null; @@ -24572,6 +27561,7 @@ export type PublishFormDefinitionMutation = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; updatedBy?: { __typename?: 'ApplicationUser'; name: string } | null; }; draftVersion?: { @@ -24583,6 +27573,7 @@ export type PublishFormDefinitionMutation = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; updatedBy?: { __typename?: 'ApplicationUser'; name: string } | null; } | null; } | null; @@ -24673,6 +27664,7 @@ export type GetFormDefinitionQuery = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -25190,6 +28182,7 @@ export type GetStaticFormDefinitionQuery = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -25708,6 +28701,7 @@ export type GetServiceFormDefinitionQuery = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -26228,6 +29222,7 @@ export type GetAssessmentFormDefinitionQuery = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -26750,6 +29745,7 @@ export type GetFormIdentifierDetailsQuery = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; updatedBy?: { __typename?: 'ApplicationUser'; name: string } | null; }; draftVersion?: { @@ -26761,6 +29757,7 @@ export type GetFormIdentifierDetailsQuery = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; updatedBy?: { __typename?: 'ApplicationUser'; name: string } | null; } | null; } | null; @@ -26793,6 +29790,7 @@ export type GetFormIdentifierVersionsQuery = { cacheKey: string; identifier: string; status: FormStatus; + supportsSaveInProgress: boolean; updatedBy?: { __typename: 'ApplicationUser'; id: string; @@ -26834,6 +29832,7 @@ export type GetFormIdentifiersQuery = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; formRules: { __typename?: 'FormRulesPaginated'; nodesCount: number }; updatedBy?: { __typename?: 'ApplicationUser'; name: string } | null; }; @@ -26991,6 +29990,41 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27012,6 +30046,41 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27132,6 +30201,179 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; + values?: Array<{ + __typename?: 'CustomDataElementValue'; + id: string; + valueBoolean?: boolean | null; + valueDate?: string | null; + valueFloat?: number | null; + valueInteger?: number | null; + valueJson?: any | null; + valueString?: string | null; + valueText?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + }> | null; + }>; + } + | { + __typename?: 'CustomCaseNote'; + id: string; + content: string; + informationDate?: string | null; + dateUpdated?: string | null; + dateCreated?: string | null; + formDefinitionId?: string | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + customDataElements: Array<{ + __typename?: 'CustomDataElement'; + id: string; + key: string; + label: string; + fieldType: CustomDataElementType; + repeats: boolean; + displayHooks: Array; + value?: { + __typename?: 'CustomDataElementValue'; + id: string; + valueBoolean?: boolean | null; + valueDate?: string | null; + valueFloat?: number | null; + valueInteger?: number | null; + valueJson?: any | null; + valueString?: string | null; + valueText?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27153,74 +30395,41 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; - user?: { - __typename: 'ApplicationUser'; - id: string; - name: string; - firstName?: string | null; - lastName?: string | null; - email: string; - } | null; - }> | null; - }>; - } - | { - __typename?: 'CustomCaseNote'; - id: string; - content: string; - informationDate?: string | null; - dateUpdated?: string | null; - dateCreated?: string | null; - formDefinitionId?: string | null; - user?: { - __typename: 'ApplicationUser'; - id: string; - name: string; - firstName?: string | null; - lastName?: string | null; - email: string; - } | null; - customDataElements: Array<{ - __typename?: 'CustomDataElement'; - id: string; - key: string; - label: string; - fieldType: CustomDataElementType; - repeats: boolean; - displayHooks: Array; - value?: { - __typename?: 'CustomDataElementValue'; - id: string; - valueBoolean?: boolean | null; - valueDate?: string | null; - valueFloat?: number | null; - valueInteger?: number | null; - valueJson?: any | null; - valueString?: string | null; - valueText?: string | null; - dateCreated?: string | null; - dateUpdated?: string | null; - user?: { - __typename: 'ApplicationUser'; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; id: string; name: string; - firstName?: string | null; - lastName?: string | null; - email: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; } | null; - } | null; - values?: Array<{ - __typename?: 'CustomDataElementValue'; - id: string; - valueBoolean?: boolean | null; - valueDate?: string | null; - valueFloat?: number | null; - valueInteger?: number | null; - valueJson?: any | null; - valueString?: string | null; - valueText?: string | null; - dateCreated?: string | null; - dateUpdated?: string | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27276,6 +30485,41 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27297,6 +30541,41 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27496,6 +30775,41 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27517,6 +30831,41 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27567,6 +30916,41 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27588,6 +30972,41 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27671,6 +31090,41 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27692,6 +31146,41 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27831,6 +31320,41 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27852,6 +31376,41 @@ export type SubmitFormMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -27897,6 +31456,7 @@ export type GetFormDefinitionFieldsForEditorQuery = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -28415,6 +31975,7 @@ export type GetFormDefinitionFieldsForJsonEditorQuery = { cacheKey: string; identifier: string; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -29868,6 +33429,41 @@ export type InventoryFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -29889,6 +33485,41 @@ export type InventoryFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -30146,6 +33777,41 @@ export type OrganizationDetailFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -30167,6 +33833,41 @@ export type OrganizationDetailFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -30218,6 +33919,41 @@ export type OrganizationFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -30239,6 +33975,41 @@ export type OrganizationFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -30323,6 +34094,41 @@ export type GetOrganizationQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -30344,6 +34150,41 @@ export type GetOrganizationQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -30505,6 +34346,41 @@ export type ProjectAllFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -30526,6 +34402,41 @@ export type ProjectAllFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -30583,6 +34494,7 @@ export type OccurrencePointFormFieldsFragment = { identifier: string; status: FormStatus; dateUpdated: string; + supportsSaveInProgress: boolean; definition: { __typename?: 'FormDefinitionJson'; item: Array<{ @@ -31351,6 +35263,41 @@ export type GetProjectQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -31372,6 +35319,41 @@ export type GetProjectQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -31885,6 +35867,41 @@ export type GetInventoryQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -31906,6 +35923,41 @@ export type GetInventoryQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -32015,6 +36067,41 @@ export type GetProjectInventoriesQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -32036,6 +36123,41 @@ export type GetProjectInventoriesQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -32834,6 +36956,41 @@ export type UpdateReferralPostingMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -32855,6 +37012,41 @@ export type UpdateReferralPostingMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -33029,6 +37221,41 @@ export type GetReferralPostingQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -33050,6 +37277,41 @@ export type GetReferralPostingQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -33264,6 +37526,41 @@ export type ReferralPostingDetailFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -33285,6 +37582,41 @@ export type ReferralPostingDetailFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -33387,6 +37719,41 @@ export type EsgFundingServiceFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -33408,6 +37775,41 @@ export type EsgFundingServiceFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -33468,6 +37870,41 @@ export type GetEsgFundingReportQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -33489,6 +37926,41 @@ export type GetEsgFundingReportQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -33806,6 +38278,41 @@ export type ServiceFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -33827,6 +38334,41 @@ export type ServiceFieldsFragment = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -33916,6 +38458,41 @@ export type GetServiceQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -33937,6 +38514,41 @@ export type GetServiceQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -34041,6 +38653,41 @@ export type DeleteServiceMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -34062,6 +38709,41 @@ export type DeleteServiceMutation = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -34165,6 +38847,41 @@ export type GetEnrollmentServicesQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -34186,6 +38903,41 @@ export type GetEnrollmentServicesQuery = { valueText?: string | null; dateCreated?: string | null; dateUpdated?: string | null; + valueFile?: { + __typename?: 'File'; + confidential?: boolean | null; + contentType?: string | null; + effectiveDate?: string | null; + expirationDate?: string | null; + id: string; + name: string; + url?: string | null; + tags: Array; + ownFile: boolean; + redacted: boolean; + enrollmentId?: string | null; + dateCreated?: string | null; + dateUpdated?: string | null; + enrollment?: { __typename?: 'Enrollment'; id: string } | null; + uploadedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + updatedBy?: { + __typename?: 'ApplicationUser'; + id: string; + name: string; + } | null; + user?: { + __typename: 'ApplicationUser'; + id: string; + name: string; + firstName?: string | null; + lastName?: string | null; + email: string; + } | null; + } | null; user?: { __typename: 'ApplicationUser'; id: string; @@ -35147,6 +39899,38 @@ export const EnrollmentValuesFragmentDoc = gql` preferredLanguageDifferent } `; +export const FileFieldsFragmentDoc = gql` + fragment FileFields on File { + confidential + contentType + effectiveDate + expirationDate + id + name + url + tags + ownFile + redacted + enrollmentId + enrollment { + id + } + uploadedBy { + id + name + } + updatedBy { + id + name + } + dateCreated + dateUpdated + user { + ...UserFields + } + } + ${UserFieldsFragmentDoc} +`; export const CustomDataElementValueFieldsFragmentDoc = gql` fragment CustomDataElementValueFields on CustomDataElementValue { id @@ -35157,12 +39941,16 @@ export const CustomDataElementValueFieldsFragmentDoc = gql` valueJson valueString valueText + valueFile { + ...FileFields + } user { ...UserFields } dateCreated dateUpdated } + ${FileFieldsFragmentDoc} ${UserFieldsFragmentDoc} `; export const CustomDataElementFieldsFragmentDoc = gql` @@ -36156,6 +40944,7 @@ export const FormDefinitionMetadataFragmentDoc = gql` name } dateUpdated + supportsSaveInProgress } `; export const PickListOptionFieldsFragmentDoc = gql` @@ -36413,38 +41202,6 @@ export const ExternalFormSubmissionFieldsFragmentDoc = gql` ${ExternalFormSubmissionSummaryFragmentDoc} ${FormDefinitionFieldsFragmentDoc} `; -export const FileFieldsFragmentDoc = gql` - fragment FileFields on File { - confidential - contentType - effectiveDate - expirationDate - id - name - url - tags - ownFile - redacted - enrollmentId - enrollment { - id - } - uploadedBy { - id - name - } - updatedBy { - id - name - } - dateCreated - dateUpdated - user { - ...UserFields - } - } - ${UserFieldsFragmentDoc} -`; export const ValidationErrorFieldsFragmentDoc = gql` fragment ValidationErrorFields on ValidationError { type