{"version":3,"file":"UdpCrudFormFields.mjs","names":["PropTypes","React","useMemo","useEffect","Field","UdpEnums","usePromotedMethodEntity","useAxiosMutate","getSanitizedName","useForm","useTranslation","useUser","TagEnums","ConfigService","UdpAutocomplete","UdpCrudFormFields","props","entityName","formData","existingTagAssociation","form","user","t","sanitizedEntityName","IS_FOR_LOOKUP","toLowerCase","Udp_Lookup","IS_FOR_TAGS","TagAssociationSanitizedName","TagSanitizedName","TagTypeSanitizedName","includes","data","udpObjectInfoEntity","udpTagEntity","udpObjectInfoList","fetchUdpObjectInfoList","integrationV1ApiUrl","unityBaseGetAllMethod","apiMethodId","method","udpTagList","fetchUdpTagList","initialTagValues","existingTagIds","map","tag","id","tagValues","filter","initialDomainNameValue","domainName","find","updObjectInfo","sanitizedName","lookupFields","defaultValue","tagFields","change","propTypes","string"],"sources":["../../../src/UI/forms/UdpCrudFormFields.jsx"],"sourcesContent":["import PropTypes from 'prop-types';\nimport React, { useMemo, useEffect } from 'react';\nimport { Field } from '../../utilities/form';\nimport { UdpEnums } from '../../enums/unitySystemEnums';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useForm } from 'react-final-form';\nimport { useTranslation } from 'react-i18next';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { TagEnums } from '../../enums/tagEnums';\nimport { ConfigService } from '../../configService';\nimport { UdpAutocomplete } from '../fluent-web-components';\n\nexport const UdpCrudFormFields = (props) => {\n  const { entityName, formData, existingTagAssociation } = props;\n  const form = useForm();\n  const user = useUser();\n  const { t } = useTranslation();\n  const sanitizedEntityName = getSanitizedName(entityName);\n  const IS_FOR_LOOKUP =\n    sanitizedEntityName?.toLowerCase() === UdpEnums.Udp_Lookup.toLowerCase();\n  const IS_FOR_TAGS = ![\n    TagEnums.TagAssociationSanitizedName.toLowerCase(),\n    TagEnums.TagSanitizedName.toLowerCase(),\n    TagEnums.TagTypeSanitizedName.toLowerCase()\n  ].includes(sanitizedEntityName?.toLowerCase());\n\n  const { data: udpObjectInfoEntity } = usePromotedMethodEntity(\n    'udpObjectInfo',\n    true\n  );\n  const { data: udpTagEntity } = usePromotedMethodEntity('udpTag', true);\n\n  const [{ data: udpObjectInfoList }, fetchUdpObjectInfoList] = useAxiosMutate(\n    ConfigService.integrationV1ApiUrl,\n    `apimethod/executeQueryWithParameters/${udpObjectInfoEntity?.unityBaseGetAllMethod?.apiMethodId}`,\n    {\n      method: 'post'\n    }\n  );\n\n  const [{ data: udpTagList }, fetchUdpTagList] = useAxiosMutate(\n    ConfigService.integrationV1ApiUrl,\n    `apimethod/executeQueryWithParameters/${udpTagEntity?.unityBaseGetAllMethod?.apiMethodId}`,\n    {\n      method: 'post'\n    }\n  );\n\n  const initialTagValues = useMemo(() => {\n    let existingTagIds = existingTagAssociation?.map((tag) => tag.id);\n    let tagValues = udpTagList\n      ? udpTagList.filter((tag) => existingTagIds.includes(tag.id))\n      : [];\n    return tagValues;\n  }, [existingTagAssociation, udpTagList]);\n\n  const initialDomainNameValue = useMemo(() => {\n    let domainName = formData?.domainName;\n    if (domainName && udpObjectInfoList) {\n      domainName = getSanitizedName(domainName);\n      return udpObjectInfoList.find(\n        (updObjectInfo) => updObjectInfo.sanitizedName === domainName\n      );\n    }\n    return '';\n  }, [formData, udpObjectInfoList]);\n\n  const lookupFields = useMemo(() => {\n    return (\n      <Field\n        component={UdpAutocomplete}\n        initialValue={initialDomainNameValue}\n        label={t('ui.forms.domainName', { defaultValue: 'Domain Name' })}\n        name={'domainName'}\n        appearance='outline'\n        options={udpObjectInfoList || []}\n        optionLabel={'sanitizedName'}\n        optionValue={'id'}\n      />\n    );\n  }, [udpObjectInfoList, initialDomainNameValue, t]);\n\n  const tagFields = useMemo(() => {\n    return (\n      <Field\n        component={UdpAutocomplete}\n        initialValue={initialTagValues}\n        multiple={true}\n        label={t('ui.forms.tags', { defaultValue: 'Tags' })}\n        name={'udpTags'}\n        appearance='outline'\n        options={udpTagList || []}\n        optionLabel={'name'}\n        optionValue={'id'}\n      />\n    );\n  }, [udpTagList, initialTagValues, t]);\n\n  useEffect(() => {\n    if (udpObjectInfoEntity?.unityBaseGetAllMethod && IS_FOR_LOOKUP) {\n      fetchUdpObjectInfoList({ data: {} });\n    }\n  }, [udpObjectInfoEntity, fetchUdpObjectInfoList, IS_FOR_LOOKUP]);\n\n  useEffect(() => {\n    form.change('domainName', initialDomainNameValue);\n  }, [form, initialDomainNameValue]);\n\n  useEffect(() => {\n    form.change('udpTags', initialTagValues);\n  }, [form, initialTagValues]);\n\n  useEffect(() => {\n    if (udpTagEntity?.unityBaseGetAllMethod) {\n      fetchUdpTagList({ data: {} });\n    }\n  }, [udpTagEntity, fetchUdpTagList]);\n\n  return (\n    <>\n      {IS_FOR_LOOKUP ? lookupFields : null}\n      {IS_FOR_TAGS ? tagFields : null}\n    </>\n  );\n};\n\nUdpCrudFormFields.propTypes = {\n  /**\n   * Entity name for promoted entity\n   */\n  entityName: PropTypes.string\n};\n"],"mappings":"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"}