{"version":3,"file":"NotesScreen.mjs","names":["React","useCallback","useEffect","useMemo","useRef","useState","UdpRichTextField","makeStyles","TextField","LinearProgress","Field","Form","FluentTextFieldAutoComplete","useTranslation","useActionState","constructBusinessObjectArrFromTree","LayoutUnit","UdpEnums","useHandleAxiosSnackbar","useUser","differenceWith","executeQueryAdHoc","getBaseMethod","executeQueryWithParameters","ShortcutContentFinder","AmbientCard","useShellStore","getSearchObject","useStyles","root","row","display","justifyContent","input","height","padding","formTextInput","fontSize","labelRoot","NotesScreen","props","$","_c","formRef","onSubmit","shortcutContentFinderEnabled","id","viewOnly","reloadNotes","filedForNode","note","setNote","t0","Symbol","for","typeOptions","setTypeOptions","t1","templateOptions","setTemplateOptions","noteId","setNoteId","t2","existingNoteFiledFor","setExistingNoteFiledFor","existingNoteObj","setExistingNoteObj","loading","setLoading","classes","t","actionState","shellHidden","_temp","menuListState","catalogPromotedEntities","handleSuccessSnackbar","handleErrorSnackbar","user","editorRef","t3","bb0","menuList","length","selectedMenuIndex","selectedMenu","t4","Udp_Note","noteGetFullApiMethod","t5","Udp_Note_Type","noteTypeSearchApiMethod","t6","Udp_Note_Template","noteTemplateSearchApiMethod","t7","createNoteApiMethod","t8","updateNoteApiMethod","t9","Udp_Note_Filed_For","createNoteFiledForApiMethod","t10","deleteNoteFiledForApiMethod","disabled","t11","currentTenantId","familyName","firstName","values","response","data","requestBody","tenantId","typeCode","type","code","subject","content","unityUserId","userDisplayName","apiMethodId","catch","e","defaultValue","e_0","status","handleSaveNote","noteFiledForToComparator","_temp2","t12","values_0","notedIdToFileFor","noteFiledForToDelete","fileTo","noteFiledForToCreate","deletedPromises","forEach","nftd","data_0","value","push","Promise","all","map","_temp4","then","responses","console","warn","createdPromises","nftc","data_1","entityBusinessKey","_temp6","responses_0","response_0","matchingNoteFiledFor","find","nftc_0","handleNoteFiledFor","t13","values_1","notedIdToFileFor_0","handleOnSubmit","t14","note_0","handleTextEditorChange","t15","current","form","change","option","onTemplateChange","t16","shortcutContent","insertTextAtCursor","handleShortcutOnSelect","t17","options","t18","fileToOptions","getTypeOptions","options_0","filterElements","searchObject","data_2","typesResponse","pageList","t19","t20","getTemplateOptions","options_1","filterElements_0","searchObject_0","data_3","templatesResponse","t21","t22","t23","getExistingNote","existingNoteObj_0","data_4","noteResponse","e_3","error","t24","t25","initialFileTos","filter","option_0","noteFiledFor","nff","t26","t27","initialType","option_1","t28","t29","t30","t31","t32","t33","t34","t35","t36","t37","width","t38","t39","t40","t41","marginLeft","t42","t43","t44","t45","t46","t47","t48","t49","t50","t51","t52","event","target","t53","t54","t55","t56","t57","state","nftc1","nftc2","_temp3","e_1","p","_temp5","e_2","p_0"],"sources":["../../src/notes/NotesScreen.jsx"],"sourcesContent":["import React, {\n  useCallback,\n  useEffect,\n  useMemo,\n  useRef,\n  useState\n} from 'react';\nimport { UdpRichTextField } from '../UI/fluent-web-components/UdpRichTextField';\nimport { makeStyles, TextField, LinearProgress } from '@material-ui/core';\nimport { Field, Form } from '../utilities/form';\nimport { FluentTextFieldAutoComplete } from '../UI/inputs/textField/FluentTextFieldAutoComplete';\nimport { useTranslation } from 'react-i18next';\nimport { useActionState } from '../hooks/useActions';\nimport { constructBusinessObjectArrFromTree } from '../utilities/tree/TreeUtilities';\nimport { LayoutUnit } from '../layout/LayoutUnit';\nimport { UdpEnums } from '../enums/unitySystemEnums';\nimport { useHandleAxiosSnackbar } from '../utilities/apiHelpers';\nimport { useUser } from '../utilities/auth/useUser';\nimport { differenceWith } from 'lodash-es';\nimport {\n  executeQueryAdHoc,\n  getBaseMethod,\n  executeQueryWithParameters\n} from '../udp/utilities/methodUtils';\nimport { ShortcutContentFinder } from '../udp/ShortcutContent/ShortcutContentFinder';\nimport { AmbientCard } from '../UI/surfaces/cards/AmbientCard';\nimport { useShellStore } from '../stores/shellStore';\nimport { getSearchObject } from '../utilities/search/SearchUtilities';\n\nconst useStyles = makeStyles(() => ({\n  root: {},\n  row: {\n    display: 'flex',\n    justifyContent: 'space-between'\n  },\n  input: {\n    height: 34,\n    padding: 0\n  },\n  formTextInput: {\n    fontSize: 14\n  },\n  labelRoot: {\n    fontSize: 14\n  }\n}));\n\nexport const NotesScreen = (props) => {\n  const {\n    formRef,\n    onSubmit,\n    shortcutContentFinderEnabled,\n    id,\n    viewOnly,\n    reloadNotes,\n    // Filed-for tree passed directly by the caller (v2 inquiry); falls back\n    // to the legacy ActionProvider menuListState mirror for v1 callers.\n    filedForNode\n  } = props;\n  const [note, setNote] = useState('');\n  const [typeOptions, setTypeOptions] = useState([]);\n  const [templateOptions, setTemplateOptions] = useState([]);\n  const [noteId, setNoteId] = useState(id || '');\n  const [existingNoteFiledFor, setExistingNoteFiledFor] = useState([]);\n  const [existingNoteObj, setExistingNoteObj] = useState(null);\n  const [loading, setLoading] = useState(false);\n  const classes = useStyles(props);\n  const { t } = useTranslation();\n  const actionState = useActionState();\n  const shellHidden = useShellStore((state) => state.shellHidden);\n  const { menuListState, catalogPromotedEntities } = actionState;\n  const { handleSuccessSnackbar, handleErrorSnackbar } =\n    useHandleAxiosSnackbar();\n  const user = useUser();\n  const editorRef = useRef(null);\n\n  const selectedMenu = useMemo(() => {\n    if (filedForNode) {\n      return filedForNode;\n    }\n    if (menuListState.menuList.length) {\n      return menuListState.menuList[menuListState.selectedMenuIndex] || null;\n    }\n    return null;\n  }, [filedForNode, menuListState]);\n\n  const noteGetFullApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Note,\n      'unityBaseGetFullMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const noteTypeSearchApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Note_Type,\n      'unityBaseSearchMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const noteTemplateSearchApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Note_Template,\n      'unityBaseSearchMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const createNoteApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Note,\n      'unityBaseCreateMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const updateNoteApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Note,\n      'unityBaseUpdateMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const createNoteFiledForApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Note_Filed_For,\n      'unityBaseCreateMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const deleteNoteFiledForApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Note_Filed_For,\n      'unityBaseDeleteMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const disabled = useMemo(() => {\n    return viewOnly;\n  }, [viewOnly]);\n\n  const handleSaveNote = useCallback(\n    async (values) => {\n      let response = null;\n      const data = {\n        requestBody: {\n          tenantId: user?.currentTenantId,\n          typeCode: values?.type?.code,\n          subject: values?.subject,\n          content: values?.note,\n          unityUserId: user?.id,\n          userDisplayName: `${user?.firstName} ${user?.familyName}`\n        }\n      };\n      if (noteId) {\n        if (updateNoteApiMethod) {\n          // Set the url parameter for updating note\n          data['{iD}'] = noteId;\n          response = await executeQueryWithParameters(\n            { data },\n            updateNoteApiMethod.apiMethodId\n          ).catch((e) =>\n            handleErrorSnackbar(\n              e,\n              t('notes.errors.updateFailed', {\n                defaultValue: 'Could not Update Note'\n              })\n            )\n          );\n        } else {\n          handleErrorSnackbar(\n            null,\n            t('notes.errors.updateMethodNotPromoted', {\n              defaultValue: 'Update Note Method Not Promoted'\n            })\n          );\n        }\n      } else {\n        if (createNoteApiMethod) {\n          response = await executeQueryWithParameters(\n            { data },\n            createNoteApiMethod.apiMethodId\n          ).catch((e) =>\n            handleErrorSnackbar(\n              e,\n              t('notes.errors.saveFailed', {\n                defaultValue: 'Could not Save Note'\n              })\n            )\n          );\n        } else {\n          handleErrorSnackbar(\n            null,\n            t('notes.errors.createMethodNotPromoted', {\n              defaultValue: 'Create Note Method Not Promoted'\n            })\n          );\n        }\n      }\n\n      if (response?.status === 200) {\n        if (!noteId) {\n          setNoteId(response.data.id || '');\n          handleSuccessSnackbar(\n            t('notes.snackbar.saved', { defaultValue: 'Note Saved' })\n          );\n        } else {\n          handleSuccessSnackbar(\n            t('notes.snackbar.updated', { defaultValue: 'Note Updated' })\n          );\n        }\n        if (reloadNotes) {\n          reloadNotes();\n        }\n        return response.data.id || noteId;\n      }\n\n      return noteId;\n    },\n    [\n      createNoteApiMethod,\n      updateNoteApiMethod,\n      noteId,\n      setNoteId,\n      handleErrorSnackbar,\n      handleSuccessSnackbar,\n      user,\n      reloadNotes,\n      t\n    ]\n  );\n\n  const noteFiledForToComparator = (nftc1, nftc2) => {\n    return nftc1?.value === nftc2?.value;\n  };\n\n  const handleNoteFiledFor = useCallback(\n    async (values, notedIdToFileFor) => {\n      // Get the noteFiledFor objects to delete\n      const noteFiledForToDelete = differenceWith(\n        existingNoteFiledFor,\n        values?.fileTo,\n        noteFiledForToComparator\n      );\n\n      // Get the noteFiledFor objects to create\n      const noteFiledForToCreate = differenceWith(\n        values?.fileTo,\n        existingNoteFiledFor,\n        noteFiledForToComparator\n      );\n\n      if (notedIdToFileFor) {\n        if (deleteNoteFiledForApiMethod) {\n          const deletedPromises = [];\n          noteFiledForToDelete.forEach((nftd) => {\n            const data = {};\n            data['{noteID}'] = notedIdToFileFor;\n            data['{entityBusinessKey}'] = nftd.value;\n            deletedPromises.push(\n              executeQueryWithParameters(\n                { data },\n                deleteNoteFiledForApiMethod.apiMethodId\n              )\n            );\n          });\n\n          await Promise.all(deletedPromises.map((p) => p.catch((e) => e))).then(\n            (responses) => {\n              if (responses.length !== deletedPromises.length) {\n                console.warn(`Not all Note Filed For deleted`);\n              }\n            }\n          );\n        } else {\n          handleErrorSnackbar(\n            null,\n            t('notes.errors.deleteFiledForMethodNotPromoted', {\n              defaultValue: 'Delete Note Filed For Method Not Promoted'\n            })\n          );\n        }\n\n        if (createNoteFiledForApiMethod) {\n          const createdPromises = [];\n          noteFiledForToCreate.forEach((nftc) => {\n            const data = {\n              requestBody: {\n                noteId: notedIdToFileFor,\n                entityBusinessKey: nftc.value\n              }\n            };\n            createdPromises.push(\n              executeQueryWithParameters(\n                { data },\n                createNoteFiledForApiMethod.apiMethodId\n              )\n            );\n          });\n          await Promise.all(createdPromises.map((p) => p.catch((e) => e))).then(\n            (responses) => {\n              responses.forEach((response) => {\n                if (response.status === 200) {\n                  const entityBusinessKey = response.data.entityBusinessKey;\n                  const matchingNoteFiledFor = noteFiledForToCreate.find(\n                    (nftc) => nftc.value === entityBusinessKey\n                  );\n                  if (!matchingNoteFiledFor) {\n                    console.warn(\n                      `Note Filed For not created for all file to entities`\n                    );\n                  }\n                }\n              });\n            }\n          );\n          setExistingNoteFiledFor(values?.fileTo);\n        } else {\n          handleErrorSnackbar(\n            null,\n            t('notes.errors.createFiledForMethodNotPromoted', {\n              defaultValue: 'Create Note Filed For Method Not Promoted'\n            })\n          );\n        }\n      }\n    },\n    [\n      createNoteFiledForApiMethod,\n      deleteNoteFiledForApiMethod,\n      handleErrorSnackbar,\n      existingNoteFiledFor,\n      setExistingNoteFiledFor,\n      t\n    ]\n  );\n\n  const handleOnSubmit = useCallback(\n    async (values) => {\n      if (onSubmit) {\n        onSubmit({ note, ...values });\n      } else {\n        const notedIdToFileFor = await handleSaveNote({ note, ...values });\n        await handleNoteFiledFor({ note, ...values }, notedIdToFileFor);\n      }\n    },\n    [note, onSubmit, handleSaveNote, handleNoteFiledFor]\n  );\n\n  const handleTextEditorChange = (note) => {\n    setNote(note);\n  };\n\n  const onTemplateChange = useCallback(\n    (value) => {\n      formRef?.current?.form?.change('subject', value?.subject || '');\n      const type = typeOptions.find((option) => option.code === value.typeCode);\n      formRef?.current?.form?.change('type', type || null);\n      setNote(value?.content || '');\n    },\n    [setNote, formRef, typeOptions]\n  );\n\n  const handleShortcutOnSelect = useCallback((shortcutContent) => {\n    // The editor emits its change event after the insert, which flows back through\n    // handleTextEditorChange — no manual state write is needed here.\n    void editorRef?.current?.insertTextAtCursor(shortcutContent);\n  }, []);\n\n  const fileToOptions = useMemo(() => {\n    let options = [];\n    if (selectedMenu) {\n      options = constructBusinessObjectArrFromTree(selectedMenu);\n    }\n    return options;\n  }, [selectedMenu]);\n\n  useEffect(() => {\n    // TODO: use getAll noteTypes\n    const getTypeOptions = async () => {\n      let options = [];\n      if (noteTypeSearchApiMethod) {\n        const filterElements = [];\n        const searchObject = getSearchObject(filterElements, 1, 200, true);\n        const data = { data: searchObject };\n        const typesResponse = await executeQueryAdHoc(\n          data,\n          noteTypeSearchApiMethod.apiMethodId\n        );\n        if (typesResponse?.status === 200) {\n          options = typesResponse.data?.pageList;\n        }\n      }\n      setTypeOptions(options);\n    };\n    getTypeOptions();\n  }, [noteTypeSearchApiMethod, setTypeOptions, user]);\n\n  useEffect(() => {\n    // TODO: use getAll noteTemplates\n    const getTemplateOptions = async () => {\n      let options = [];\n      if (noteTemplateSearchApiMethod) {\n        const filterElements = [];\n        const searchObject = getSearchObject(filterElements, 1, 200, true);\n        const data = { data: searchObject };\n        const templatesResponse = await executeQueryAdHoc(\n          data,\n          noteTemplateSearchApiMethod.apiMethodId\n        );\n        if (templatesResponse?.status === 200) {\n          options = templatesResponse.data?.pageList;\n        }\n      }\n      setTemplateOptions(options);\n    };\n    getTemplateOptions();\n  }, [noteTemplateSearchApiMethod, setTemplateOptions, user]);\n\n  useEffect(() => {\n    const getExistingNote = async () => {\n      let existingNoteObj = null;\n      const data = {};\n      if (noteGetFullApiMethod) {\n        setLoading(true);\n        data['{iD}'] = id;\n        const noteResponse = await executeQueryWithParameters(\n          { data },\n          noteGetFullApiMethod.apiMethodId\n        ).catch((e) => {\n          console.error(e);\n          setLoading(false);\n        });\n        if (noteResponse?.status === 200) {\n          existingNoteObj = noteResponse.data;\n        }\n      }\n      setExistingNoteObj(existingNoteObj);\n      setNote(existingNoteObj?.content);\n      setLoading(false);\n    };\n    if (id) {\n      getExistingNote();\n    }\n  }, [id, noteGetFullApiMethod]);\n\n  useEffect(() => {\n    if (!existingNoteObj || !fileToOptions?.length) {\n      return;\n    }\n    const initialFileTos = fileToOptions.filter((option) => {\n      return existingNoteObj.noteFiledFor.find(\n        (nff) => option.value === nff.entityBusinessKey\n      );\n    });\n    setExistingNoteFiledFor(initialFileTos);\n    formRef?.current?.form?.change('fileTo', initialFileTos);\n  }, [existingNoteObj, fileToOptions, formRef]);\n\n  useEffect(() => {\n    if (!existingNoteObj || !typeOptions?.length) {\n      return;\n    }\n    const initialType = typeOptions.find(\n      (option) => option.code === existingNoteObj.typeCode\n    );\n    formRef?.current?.form?.change('type', initialType || null);\n  }, [existingNoteObj, typeOptions, formRef]);\n\n  useEffect(() => {\n    if (!existingNoteObj) {\n      return;\n    }\n    formRef?.current?.form?.change('subject', existingNoteObj?.subject || '');\n  }, [existingNoteObj, formRef]);\n\n  return (\n    <div className={classes.root}>\n      {loading && <LinearProgress color='secondary' />}\n      <AmbientCard fullWidth={true} header={true}>\n        <Form onSubmit={handleOnSubmit} ref={formRef}>\n          <Field\n            component={FluentTextFieldAutoComplete}\n            label={t('notes.form.fileTo', { defaultValue: 'File To' })}\n            name='fileTo'\n            id='fileTo'\n            fullWidth\n            variant='outlined'\n            margin='dense'\n            size='small'\n            options={fileToOptions || []}\n            optionKey={'label'}\n            required={true}\n            limitTags={!viewOnly ? 2 : -1}\n            isMultiple={true}\n            disabled={disabled}\n          />\n          <div className={classes.row}>\n            <div style={{ width: '100%' }}>\n              <Field\n                component={FluentTextFieldAutoComplete}\n                label={t('notes.form.type', { defaultValue: 'Type' })}\n                name='type'\n                id='type'\n                fullWidth\n                variant='outlined'\n                margin='dense'\n                size='small'\n                options={typeOptions || []}\n                optionKey={'name'}\n                required={true}\n                disabled={disabled}\n              />\n            </div>\n            {!viewOnly && (\n              <div style={{ width: '100%', marginLeft: 8 }}>\n                <Field\n                  component={FluentTextFieldAutoComplete}\n                  label={t('notes.form.template', { defaultValue: 'Template' })}\n                  name='template'\n                  id='template'\n                  fullWidth\n                  variant='outlined'\n                  margin='dense'\n                  size='small'\n                  options={templateOptions || []}\n                  optionKey={'name'}\n                  additionalOnChangeAction={onTemplateChange}\n                />\n              </div>\n            )}\n          </div>\n          <Field\n            component={TextField}\n            label={t('notes.form.subject', { defaultValue: 'Subject' })}\n            name='subject'\n            id='subject'\n            fullWidth\n            variant='outlined'\n            size='small'\n            margin='dense'\n            required\n            disabled={disabled}\n            InputProps={{\n              classes: {\n                root: classes?.input,\n                input: classes?.formTextInput\n              }\n            }}\n            InputLabelProps={{\n              classes: {\n                root: classes?.labelRoot\n              }\n            }}\n          />\n          <LayoutUnit unit='nudge' />\n          <UdpRichTextField\n            ref={editorRef}\n            ariaLabel={t('notes.form.details', { defaultValue: 'Details' })}\n            value={note}\n            onChange={(event) => handleTextEditorChange(event.target.value)}\n            readonly={disabled}\n          />\n        </Form>\n      </AmbientCard>\n      <LayoutUnit unit='nudge' />\n      {shortcutContentFinderEnabled && (\n        <AmbientCard\n          fullWidth={true}\n          header={true}\n          lastChildBottomPadding={'0px'}\n          cardContentHeight={`calc(100vh - ${shellHidden ? '568px' : '623px'})`}\n        >\n          <ShortcutContentFinder onSelect={handleShortcutOnSelect} />\n        </AmbientCard>\n      )}\n    </div>\n  );\n};\n"],"mappings":"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"}