{"version":3,"file":"RemindersScreen.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","FluentDatePicker","useActionStore","FILE_TO_TYPES","getSearchObject","useStyles","root","row","display","justifyContent","input","height","padding","formTextInput","fontSize","labelRoot","RemindersScreen","props","$","_c","formRef","onSubmit","shortcutContentFinderEnabled","id","viewOnly","reloadReminders","reminder","setReminder","t0","Symbol","for","typeOptions","setTypeOptions","t1","templateOptions","setTemplateOptions","reminderId","setReminderId","t2","existingReminderFiledFor","setExistingReminderFiledFor","existingReminderObj","setExistingReminderObj","loading","setLoading","classes","t","actionState","shellHidden","_temp","menuListState","catalogPromotedEntities","handleSuccessSnackbar","handleErrorSnackbar","user","editorRef","selectedNode","_temp2","t3","bb0","menuList","length","selectedMenuIndex","selectedMenu","t4","Udp_Reminder","reminderGetFullApiMethod","t5","Udp_Reminder_Type","reminderTypeSearchApiMethod","t6","Udp_Reminder_Template","reminderTemplateSearchApiMethod","t7","createReminderApiMethod","t8","updateReminderApiMethod","t9","Udp_Reminder_Filed_For","createReminderFiledForApiMethod","t10","updateReminderFiledForApiMethod","t11","deleteReminderFiledForApiMethod","disabled","t12","defaultValue","t13","t14","labelKeys","1","2","map","option","label","value","fileToTypeOptions","t15","currentTenantId","familyName","firstName","values","response","reminderDate","Date","setHours","data","requestBody","tenantId","typeCode","type","code","subject","content","unityUserId","userDisplayName","toDateString","apiMethodId","catch","e","e_0","status","handleSaveReminder","reminderFiledForToComparator","_temp3","t16","values_0","reminderdIdToFileFor","reminderFiledForToDelete","fileTo","reminderFiledForToCreate","deletedPromises","forEach","nftd","data_0","push","Promise","all","_temp5","then","responses","console","warn","createdPromises","nftc","data_1","entityBusinessKey","domainObject","fileToType","_temp7","responses_0","response_0","matchingReminderFiledFor","find","nftc_0","updatedPromises","nftu","data_2","_temp9","responses_1","response_1","entityBusinessKey_0","matchingReminderFiledFor_0","nftu_0","handleReminderFiledFor","t17","values_1","reminderdIdToFileFor_0","handleOnSubmit","t18","reminder_0","handleTextEditorChange","t19","current","form","change","option_0","onTemplateChange","t20","shortcutContent","insertTextAtCursor","handleShortcutOnSelect","t21","options","t22","fileToOptions","getTypeOptions","options_0","filterElements","searchObject","data_3","typesResponse","pageList","t23","t24","getTemplateOptions","options_1","filterElements_0","searchObject_0","data_4","templatesResponse","t25","t26","t27","getExistingReminder","existingReminderObj_0","data_5","reminderResponse","e_4","error","t28","t29","initialFileTos","filter","option_1","reminderFiledFor","nff","t30","t31","initialType","option_2","t32","t33","t34","t35","t36","properties","catalogReturnObject","matchingReminderFiledFor_1","rff","initialFileToType","option_3","t37","t38","t39","t40","t41","t42","t43","t44","t45","t46","t47","t48","width","t49","t50","t51","t52","marginLeft","t53","t54","t55","t56","t57","t58","t59","t60","t61","t62","t63","t64","t65","event","target","t66","t67","t68","t69","t70","state","state_0","nftc1","nftc2","_temp4","e_1","p","_temp6","e_2","p_0","_temp8","e_3","p_1"],"sources":["../../src/reminders/RemindersScreen.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 { FluentDatePicker } from '../UI/inputs/pickers/FluentDatePicker';\nimport { useActionStore } from '../stores/actionStore';\nimport { FILE_TO_TYPES } from '../constants/reminderConstants';\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 RemindersScreen = (props) => {\n  const {\n    formRef,\n    onSubmit,\n    shortcutContentFinderEnabled,\n    id,\n    viewOnly,\n    reloadReminders\n  } = props;\n  const [reminder, setReminder] = useState('');\n  const [typeOptions, setTypeOptions] = useState([]);\n  const [templateOptions, setTemplateOptions] = useState([]);\n  const [reminderId, setReminderId] = useState(id || '');\n  const [existingReminderFiledFor, setExistingReminderFiledFor] = useState([]);\n  const [existingReminderObj, setExistingReminderObj] = 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  const selectedNode = useActionStore((state) => state.selectedNode);\n\n  const selectedMenu = useMemo(() => {\n    if (menuListState.menuList.length) {\n      return menuListState.menuList[menuListState.selectedMenuIndex] || null;\n    }\n    return null;\n  }, [menuListState]);\n\n  const reminderGetFullApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Reminder,\n      'unityBaseGetFullMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const reminderTypeSearchApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Reminder_Type,\n      'unityBaseSearchMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const reminderTemplateSearchApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Reminder_Template,\n      'unityBaseSearchMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const createReminderApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Reminder,\n      'unityBaseCreateMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const updateReminderApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Reminder,\n      'unityBaseUpdateMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const createReminderFiledForApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Reminder_Filed_For,\n      'unityBaseCreateMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const updateReminderFiledForApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Reminder_Filed_For,\n      'unityBaseUpdateMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const deleteReminderFiledForApiMethod = useMemo(() => {\n    return getBaseMethod(\n      UdpEnums.Udp_Reminder_Filed_For,\n      'unityBaseDeleteMethod',\n      catalogPromotedEntities\n    );\n  }, [catalogPromotedEntities]);\n\n  const disabled = useMemo(() => {\n    return viewOnly;\n  }, [viewOnly]);\n\n  const fileToTypeOptions = useMemo(() => {\n    const labelKeys = {\n      1: t('reminders.fileToType.user', { defaultValue: 'User' }),\n      2: t('reminders.fileToType.system', { defaultValue: 'System' })\n    };\n    return FILE_TO_TYPES.map((option) => ({\n      ...option,\n      label: labelKeys[option.value] || option.label\n    }));\n  }, [t]);\n\n  const handleSaveReminder = useCallback(\n    async (values) => {\n      let response = null;\n      const reminderDate = new Date(values?.reminderDate?.setHours(0, 0, 0, 0));\n      const data = {\n        requestBody: {\n          tenantId: user?.currentTenantId,\n          typeCode: values?.type?.code,\n          subject: values?.subject,\n          content: values?.reminder,\n          unityUserId: user?.id,\n          userDisplayName: `${user?.firstName} ${user?.familyName}`,\n          reminderDate: reminderDate.toDateString()\n        }\n      };\n      if (reminderId) {\n        if (updateReminderApiMethod) {\n          // Set the url parameter for updating reminder\n          data['{iD}'] = reminderId;\n          response = await executeQueryWithParameters(\n            { data },\n            updateReminderApiMethod.apiMethodId\n          ).catch((e) =>\n            handleErrorSnackbar(\n              e,\n              t('reminders.errors.updateFailed', {\n                defaultValue: 'Could not Update Reminder'\n              })\n            )\n          );\n        } else {\n          handleErrorSnackbar(\n            null,\n            t('reminders.errors.updateMethodNotPromoted', {\n              defaultValue: 'Update Reminder Method Not Promoted'\n            })\n          );\n        }\n      } else {\n        if (createReminderApiMethod) {\n          response = await executeQueryWithParameters(\n            { data },\n            createReminderApiMethod.apiMethodId\n          ).catch((e) =>\n            handleErrorSnackbar(\n              e,\n              t('reminders.errors.saveFailed', {\n                defaultValue: 'Could not Save Reminder'\n              })\n            )\n          );\n        } else {\n          handleErrorSnackbar(\n            null,\n            t('reminders.errors.createMethodNotPromoted', {\n              defaultValue: 'Create Reminder Method Not Promoted'\n            })\n          );\n        }\n      }\n\n      if (response?.status === 200) {\n        if (!reminderId) {\n          setReminderId(response.data.id || '');\n          handleSuccessSnackbar(\n            t('reminders.snackbar.saved', { defaultValue: 'Reminder Saved' })\n          );\n        } else {\n          handleSuccessSnackbar(\n            t('reminders.snackbar.updated', { defaultValue: 'Reminder Updated' })\n          );\n        }\n        if (reloadReminders) {\n          reloadReminders();\n        }\n        return response.data.id || reminderId;\n      }\n\n      return reminderId;\n    },\n    [\n      createReminderApiMethod,\n      updateReminderApiMethod,\n      reminderId,\n      setReminderId,\n      handleErrorSnackbar,\n      handleSuccessSnackbar,\n      user,\n      reloadReminders,\n      t\n    ]\n  );\n\n  const reminderFiledForToComparator = (nftc1, nftc2) => {\n    return nftc1?.value === nftc2?.value;\n  };\n\n  const handleReminderFiledFor = useCallback(\n    async (values, reminderdIdToFileFor) => {\n      // Get the reminderFiledFor objects to delete\n      const reminderFiledForToDelete = differenceWith(\n        existingReminderFiledFor,\n        values?.fileTo,\n        reminderFiledForToComparator\n      );\n\n      // Get the reminderFiledFor objects to create\n      const reminderFiledForToCreate = differenceWith(\n        values?.fileTo,\n        existingReminderFiledFor,\n        reminderFiledForToComparator\n      );\n\n      if (reminderdIdToFileFor) {\n        if (deleteReminderFiledForApiMethod) {\n          const deletedPromises = [];\n          reminderFiledForToDelete.forEach((nftd) => {\n            const data = {};\n            data['{reminderID}'] = reminderdIdToFileFor;\n            data['{entityBusinessKey}'] = nftd.value;\n\n            deletedPromises.push(\n              executeQueryWithParameters(\n                { data },\n                deleteReminderFiledForApiMethod.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 Reminder Filed For deleted`);\n              }\n            }\n          );\n        } else {\n          handleErrorSnackbar(\n            null,\n            t('reminders.errors.deleteFiledForMethodNotPromoted', {\n              defaultValue: 'Delete Reminder Filed For Method Not Promoted'\n            })\n          );\n        }\n\n        if (createReminderFiledForApiMethod) {\n          const createdPromises = [];\n          reminderFiledForToCreate.forEach((nftc) => {\n            const data = {\n              requestBody: {\n                reminderId: reminderdIdToFileFor,\n                entityBusinessKey: nftc.value,\n                domainObject: nftc.domainObject,\n                type: values?.fileToType?.value || 1\n              }\n            };\n            createdPromises.push(\n              executeQueryWithParameters(\n                { data },\n                createReminderFiledForApiMethod.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 matchingReminderFiledFor =\n                    reminderFiledForToCreate.find(\n                      (nftc) => nftc.value === entityBusinessKey\n                    );\n                  if (!matchingReminderFiledFor) {\n                    console.warn(\n                      `Reminder Filed For not created for all file to entities`\n                    );\n                  }\n                }\n              });\n            }\n          );\n          setExistingReminderFiledFor(values?.fileTo);\n        } else {\n          handleErrorSnackbar(\n            null,\n            t('reminders.errors.createFiledForMethodNotPromoted', {\n              defaultValue: 'Create Reminder Filed For Method Not Promoted'\n            })\n          );\n        }\n\n        if (updateReminderFiledForApiMethod) {\n          const updatedPromises = [];\n          values?.fileTo?.forEach((nftu) => {\n            const data = {\n              requestBody: {\n                reminderId: reminderdIdToFileFor,\n                entityBusinessKey: nftu.value,\n                domainObject: nftu.domainObject,\n                type: values?.fileToType?.value || 1\n              }\n            };\n            data['{reminderID}'] = reminderdIdToFileFor;\n            data['{entityBusinessKey}'] = nftu.value;\n            updatedPromises.push(\n              executeQueryWithParameters(\n                { data },\n                updateReminderFiledForApiMethod.apiMethodId\n              )\n            );\n          });\n          await Promise.all(updatedPromises.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 matchingReminderFiledFor = values?.fileTo?.find(\n                    (nftu) => nftu.value === entityBusinessKey\n                  );\n                  if (!matchingReminderFiledFor) {\n                    console.warn(\n                      `Reminder Filed For not updated for all file to entities`\n                    );\n                  }\n                }\n              });\n            }\n          );\n          setExistingReminderFiledFor(values?.fileTo);\n        } else {\n          handleErrorSnackbar(\n            null,\n            t('reminders.errors.updateFiledForMethodNotPromoted', {\n              defaultValue: 'Update Reminder Filed For Method Not Promoted'\n            })\n          );\n        }\n      }\n    },\n    [\n      createReminderFiledForApiMethod,\n      updateReminderFiledForApiMethod,\n      deleteReminderFiledForApiMethod,\n      handleErrorSnackbar,\n      existingReminderFiledFor,\n      setExistingReminderFiledFor,\n      t\n    ]\n  );\n\n  const handleOnSubmit = useCallback(\n    async (values) => {\n      if (onSubmit) {\n        onSubmit({ reminder, ...values });\n      } else {\n        const reminderdIdToFileFor = await handleSaveReminder({\n          reminder,\n          ...values\n        });\n        await handleReminderFiledFor(\n          { reminder, ...values },\n          reminderdIdToFileFor\n        );\n      }\n    },\n    [reminder, onSubmit, handleSaveReminder, handleReminderFiledFor]\n  );\n\n  const handleTextEditorChange = (reminder) => {\n    setReminder(reminder);\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      formRef?.current?.form?.change(\n        'reminderDate',\n        value.reminderDate === '0001-01-01T00:00:00'\n          ? new Date()\n          : new Date(value.reminderDate)\n      );\n      setReminder(value?.content || '');\n    },\n    [setReminder, 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: update to use getAll reminderTypes\n    const getTypeOptions = async () => {\n      let options = [];\n      if (reminderTypeSearchApiMethod) {\n        const filterElements = [];\n        const searchObject = getSearchObject(filterElements, 1, 200, true);\n        const data = { data: searchObject };\n        const typesResponse = await executeQueryAdHoc(\n          data,\n          reminderTypeSearchApiMethod.apiMethodId\n        );\n        if (typesResponse?.status === 200) {\n          options = typesResponse.data?.pageList || [];\n        }\n      }\n      setTypeOptions(options);\n    };\n    getTypeOptions();\n  }, [reminderTypeSearchApiMethod, setTypeOptions, user]);\n\n  useEffect(() => {\n    // TODO: update to use getAll reminderTemplates\n    const getTemplateOptions = async () => {\n      let options = [];\n      if (reminderTemplateSearchApiMethod) {\n        const filterElements = [];\n        const searchObject = getSearchObject(filterElements, 1, 200, true);\n        const data = { data: searchObject };\n        const templatesResponse = await executeQueryAdHoc(\n          data,\n          reminderTemplateSearchApiMethod.apiMethodId\n        );\n        if (templatesResponse?.status === 200) {\n          options = templatesResponse.data?.pageList || [];\n        }\n      }\n      setTemplateOptions(options);\n    };\n    getTemplateOptions();\n  }, [reminderTemplateSearchApiMethod, setTemplateOptions, user]);\n\n  useEffect(() => {\n    const getExistingReminder = async () => {\n      let existingReminderObj = null;\n      const data = {};\n      if (reminderGetFullApiMethod) {\n        setLoading(true);\n        data['{iD}'] = id;\n        const reminderResponse = await executeQueryWithParameters(\n          { data },\n          reminderGetFullApiMethod.apiMethodId\n        ).catch((e) => {\n          console.error(e);\n          setLoading(false);\n        });\n        if (reminderResponse?.status === 200) {\n          existingReminderObj = reminderResponse.data;\n        }\n      }\n      setExistingReminderObj(existingReminderObj);\n      setReminder(existingReminderObj?.content);\n      setLoading(false);\n    };\n    if (id) {\n      getExistingReminder();\n    }\n  }, [id, reminderGetFullApiMethod]);\n\n  useEffect(() => {\n    if (!existingReminderObj || !fileToOptions?.length) {\n      return;\n    }\n    const initialFileTos = fileToOptions.filter((option) => {\n      return existingReminderObj.reminderFiledFor.find(\n        (nff) => option.value === nff.entityBusinessKey\n      );\n    });\n    setExistingReminderFiledFor(initialFileTos);\n    formRef?.current?.form?.change('fileTo', initialFileTos);\n  }, [existingReminderObj, fileToOptions, formRef]);\n\n  useEffect(() => {\n    if (!existingReminderObj || !typeOptions?.length) {\n      return;\n    }\n    const initialType = typeOptions.find(\n      (option) => option.code === existingReminderObj.typeCode\n    );\n    formRef?.current?.form?.change('type', initialType || null);\n  }, [existingReminderObj, typeOptions, formRef]);\n\n  useEffect(() => {\n    if (!existingReminderObj) {\n      return;\n    }\n    formRef?.current?.form?.change(\n      'subject',\n      existingReminderObj?.subject || ''\n    );\n  }, [existingReminderObj, formRef]);\n\n  useEffect(() => {\n    if (!existingReminderObj?.reminderDate) {\n      return;\n    }\n    formRef?.current?.form?.change(\n      'reminderDate',\n      new Date(existingReminderObj.reminderDate)\n    );\n  }, [existingReminderObj, formRef]);\n\n  useEffect(() => {\n    if (!existingReminderObj) {\n      return;\n    }\n    const matchingReminderFiledFor = existingReminderObj.reminderFiledFor?.find(\n      (rff) =>\n        rff.domainObject === selectedNode?.properties?.catalogReturnObject\n    );\n    const initialFileToType = fileToTypeOptions.find(\n      (option) => option.value === matchingReminderFiledFor?.type\n    );\n    formRef?.current?.form?.change('fileToType', initialFileToType || null);\n  }, [existingReminderObj, typeOptions, formRef, selectedNode, fileToTypeOptions]);\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('reminders.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          <Field\n            component={FluentTextFieldAutoComplete}\n            label={t('reminders.form.fileToType', { defaultValue: 'File To Type' })}\n            name='fileToType'\n            id='fileToType'\n            fullWidth\n            variant='outlined'\n            margin='dense'\n            size='small'\n            options={fileToTypeOptions || []}\n            optionKey={'label'}\n            required={true}\n            disabled={disabled}\n          />\n          <div className={classes.row}>\n            <div style={{ width: '100%' }}>\n              <Field\n                component={FluentTextFieldAutoComplete}\n                label={t('reminders.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('reminders.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={FluentDatePicker}\n            label={t('reminders.form.reminderDate', { defaultValue: 'Reminder Date' })}\n            name='reminderDate'\n            id='reminderDate'\n            fullWidth\n            variant='outlined'\n            size='small'\n            margin='dense'\n            required\n            disabled={disabled}\n          />\n          <Field\n            component={TextField}\n            label={t('reminders.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('reminders.form.details', { defaultValue: 'Details' })}\n            value={reminder}\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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"}