{"version":3,"file":"UdpDataBrowserPage.mjs","names":["React","useEffect","useState","useMemo","useCallback","memo","EditIcon","DeleteIcon","UploadIcon","useTranslation","DataBrowserContainer","CrudTableSidePanel","getPrimaryKeyValues","getPathObject","useAuthedUser","useAxiosGet","apiMutate","toLowerFirstChar","toUpperFirstChar","CardinalityTypeEnums","executeQueryAdHoc","getSearchObject","useHandleAxiosSnackbar","usePromotedMethodEntity","useSearchFilterParamsMap","Alert","v4","uuid","useLocation","useQueryExecutors","mapNodeObjValuesToSearchParameters","ConfigService","UdpDataBrowserPage","props","$","_c","queryId","params","user","t","t0","Symbol","for","entityData","gridApi","setGridApi","t1","alertWarnings","setAlertWarnings","location","state","searchParamStr","search","t2","searchParams","URLSearchParams","has","get","searchParamsQueryId","handleErrorSnackbar","handleSuccessSnackbar","getCleanData","udpQueryId","udpTagId","selectedEntity","setSelectedEntity","foreignKeyData","setForeignKeyData","udpFieldSearchApiId","setUdpFieldSearchApiId","loading","setLoading","apiCatalogId","setApiCatalogId","entityName","setEntityName","enteredFromConfig","setEnteredFromConfig","data","udpOjectFieldInfo","getQueryFilterElements","t3","t4","integrationV1ApiUrl","currentTenantId","config","UNITY_PRODUCT_ID","tpacb","tpacbLoading","error","tpacbError","t5","t6","apiMethodInstance","t7","t8","apiMethodId","apiMethod","udpCatalogKey","t9","t10","integrationV2ApiUrl","catalogObject","promotedMethodEntities","promotedMethodsLoading","t11","unityBaseCreateMethod","method","executeCreate","t12","unityBaseUpdateMethod","data_0","executeUpdate","t13","unityBaseDeleteMethod","data_1","executeDelete","t14","data_2","onCreate","t15","data_3","onUpdate","t16","data_4","onDelete","t17","bb0","t18","catalogMods","catalogModificationStr","catalogModification","t19","JSON","parse","console","warn","queryColumnsData","bb1","length","map","lookupColumns","filter","_temp","forEach","lc","name","lookupKeyName","extendedProperties","lookupKeys","lookupValueName","value","lookup","filterOn","lookupsMap","filterParams","nodeObj","queryParamMapping","mappedParameters","Object","keys","key","push","type","nodeFilterParams","filterElements","searchField","searchOperator","searchValue","queryFilterElements","t20","concat","searchFilterElements","t21","properties","entityAttributes","t22","entityName_0","fieldInfos","filterElements_0","requestObj","then","resp","pageList","getMetaDataForUdpField","t23","attributes","fkMethods","attr","childEntity","ceFieldsArr","childEntityAssoc","Cardinality","Many_To_Many","One_To_Many","UdpType","Keys","i","split","idx","test","toLowerCase","ceAttr","find","p","cef","reference","resp_0","entityAttribute","entity","getFKMethodEntities","t24","entityName_1","fieldsInfo","associationLabelInfo","_temp2","getFKAssociationLabel","getDataByKey","_temp3","t25","fkMethods_0","fkData","promises","promiseDetails","warnings","unityBaseGetAllMethod","associationLabel","url","fieldName","id","message","defaultValue","Promise","all","resp_1","response","index","status","respData","promiseDetail","p_0","fd","Name","d","idName","name_0","getFKData","t26","values","entityName_2","data_5","requestBody","response_0","catch","res","refreshServerSide","handleOnCreate","t27","values_0","primaryKeyValues","entityName_3","pathObject","pathParameters","data_6","Array","isArray","po","response_1","res_0","handleOnUpdate","t28","value_0","entityName_4","primaryKeyValues_0","pathObject_0","data_7","po_0","response_2","res_1","handleOnDelete","t29","entityName_5","handleEntitySelect","t30","id_0","updatedWarnings","warning","removeWarning","t31","t32","setFrKeyData","t33","t34","t35","t36","unityBaseSearchMethod","t37","t38","t39","t40","t41","t42","t43","t44","warning_0","loadInquiryNode","displayLoadNodeButton","t45","t46","t47","t48","t49","column","fi","maintainenceConfig","obj","k","val","key_0","objKey","includes"],"sources":["../../../../src/udp/pages/UdpDataBrowserPage/UdpDataBrowserPage.jsx"],"sourcesContent":["import React, { useEffect, useState, useMemo, useCallback, memo } from 'react';\nimport { EditIcon, DeleteIcon, UploadIcon } from '@fluentui/react-icons';\nimport { useTranslation } from 'react-i18next';\nimport { DataBrowserContainer } from '../../../dataBrowser/DataBrowserContainer';\nimport { CrudTableSidePanel } from '../../../maintenanceEngine/crudBrowser/CrudTableSidePanel';\nimport {\n  getPrimaryKeyValues,\n  getPathObject\n} from '../../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { useAuthedUser } from '../../../utilities/auth/useAuthedUser';\nimport { useAxiosGet } from '../../../utilities/useAxiosGet';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport {\n  toLowerFirstChar,\n  toUpperFirstChar\n} from '../../../utilities/input/StringUtilities';\nimport { CardinalityTypeEnums } from '../../../enums/unitySystemEnums';\nimport { executeQueryAdHoc } from '../../utilities/methodUtils';\nimport { getSearchObject } from '../../../utilities/search/SearchUtilities';\nimport { useHandleAxiosSnackbar } from '../../../utilities/apiHelpers';\nimport { usePromotedMethodEntity } from '../../../hooks/usePromotedMethodEntity';\nimport { useSearchFilterParamsMap } from '../../../hooks/useSearchFilterParamsMap';\nimport { Alert } from '@material-ui/lab';\nimport { v4 as uuid } from 'uuid';\nimport { useLocation } from 'react-router-dom';\nimport { useQueryExecutors } from '../../../hooks/useQueryExecutors';\nimport { mapNodeObjValuesToSearchParameters } from '../../../utilities/tree/TreeUtilities';\nimport { ConfigService } from '../../../configService';\n\n// const FILTER_PARAMS = [\n//   {\n//     name: 'tenantName',\n//     value: 'ABC Company',\n//     type: 'string'\n//   },\n//   {\n//     name: 'productId',\n//     value: 'UDP_PRODUCT_ID',\n//     type: 'keyword'\n//   },\n//   {\n//     name: 'productId',\n//     value: 0,\n//     type: 'function'\n//   }\n// ];\n\n// const FUNCTION_LIST = [() => 1, () => 2];\n\nexport const UdpDataBrowserPage = (props) => {\n  const { queryId, params } = props;\n  const user = useAuthedUser();\n  const { t } = useTranslation();\n  const [entityData, setEntityData] = useState([]);\n  const [gridApi, setGridApi] = useState(null);\n  const [alertWarnings, setAlertWarnings] = useState([]);\n\n  const location = useLocation();\n  const state = location.state;\n  let searchParamStr = location.search;\n  let searchParams = new URLSearchParams(searchParamStr);\n  const searchParamsQueryId = state?.queryId\n    ? state.queryId\n    : searchParams.has('queryId') === true\n      ? toUpperFirstChar(searchParams.get('queryId'))\n      : '';\n\n  const { handleErrorSnackbar, handleSuccessSnackbar } =\n    useHandleAxiosSnackbar();\n\n  const { getCleanData } = useQueryExecutors();\n\n  const udpQueryId = useMemo(\n    () => params?.queryId || queryId || searchParamsQueryId || '',\n    [params, queryId, searchParamsQueryId]\n  );\n\n  const udpTagId = params?.udpTagId || '';\n\n  const [selectedEntity, setSelectedEntity] = useState(null);\n  const [foreignKeyData, setForeignKeyData] = useState(null);\n  const [udpFieldSearchApiId, setUdpFieldSearchApiId] = useState(null);\n\n  const [loading, setLoading] = useState(false);\n  const [apiCatalogId, setApiCatalogId] = useState(null);\n  const [entityName, setEntityName] = useState(null);\n  const [enteredFromConfig, setEnteredFromConfig] = useState(false);\n\n  const { data: udpOjectFieldInfo } = usePromotedMethodEntity(\n    'UdpObjectFieldInfo',\n    true\n  );\n\n  // TODO: Params will be either passed in or hard coded for now until we have a way of configuring/storing them.\n  const { getQueryFilterElements } = useSearchFilterParamsMap();\n\n  const [{ data: tpacb, loading: tpacbLoading, error: tpacbError }] =\n    useAxiosGet(\n      ConfigService.integrationV1ApiUrl,\n      `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n      {},\n      !!!user,\n      false\n    );\n\n  const [\n    {\n      data: apiMethodInstance,\n      loading: apiMethodInstancebLoading,\n      error: apiMethodInstanceError\n    }\n  ] = useAxiosGet(\n    ConfigService.integrationV1ApiUrl,\n    `apiMethodInstance/${udpQueryId}`,\n    {},\n    !!!udpQueryId,\n    false\n  );\n\n  const [\n    { data: apiMethod, loading: apiMethodLoading, error: apiMethodError }\n  ] = useAxiosGet(\n    ConfigService.integrationV1ApiUrl,\n    `apiMethod/${apiMethodInstance?.apiMethodId}`,\n    {},\n    !!!apiMethodInstance?.apiMethodId,\n    false\n  );\n\n  const udpCatalogKey = useMemo(() => apiMethod?.entityName || '', [apiMethod]);\n\n  const [{ data: catalogObject }] = useAxiosGet(\n    ConfigService.integrationV2ApiUrl,\n    `apiCatalog/${apiCatalogId}/catalogObject/${entityName}`,\n    {},\n    !!!apiCatalogId || !!!entityName,\n    false\n  );\n\n  /*\n    returns {\n      entityName: Tenant,\n      productId: 1,\n      unityBaseGetAllMethod: {apiMethodId: 'f06f7853-5816-4950-a275-5085c3387d57', pathParameters: [{name: \"version\", in: \"path\", parameterType: \"string\", fullReference: \"\"}]},\n      unityBaseGetMethod: {apiMethodId: '06f49cfd-0f1e-475a-812b-73cd3efd9f0d', pathParameters: [{name: \"id\", in: \"path\", parameterType: \"string\", fullReference: \"\"}, {name: \"version\", in: \"path\", parameterType: \"string\", fullReference: \"\"}]},\n      unityBaseCreateMethod: {apiMethodId: '33310aad-8998-4661-800b-00649d280d31', pathParameters: [{name: \"version\", in: \"path\", parameterType: \"string\", fullReference: \"\"}]},\n      unityBaseUpdateMethod: {apiMethodId: 'fe611db9-47ec-4a27-8840-871fe1323812', pathParameters: [{name: \"id\", in: \"path\", parameterType: \"string\", fullReference: \"\"}, {name: \"version\", in: \"path\", parameterType: \"string\", fullReference: \"\"}]},\n      unityBaseDeleteMethod: {apiMethodId: 'dafb84b6-e424-43ff-9ef0-774a5795e420', pathParameters: [{name: \"id\", in: \"path\", parameterType: \"string\", fullReference: \"\"}, {name: \"version\", in: \"path\", parameterType: \"string\", fullReference: \"\"}]},\n    }\n  */\n  const { data: promotedMethodEntities, loading: promotedMethodsLoading } =\n    usePromotedMethodEntity(entityName);\n\n  const executeCreate = useCallback(\n    async (data) =>\n      apiMutate(\n        ConfigService.integrationV1ApiUrl,\n        `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseCreateMethod?.apiMethodId}`,\n        {\n          method: 'post'\n        },\n        data\n      ),\n    [selectedEntity]\n  );\n\n  const executeUpdate = useCallback(\n    async (data) =>\n      apiMutate(\n        ConfigService.integrationV1ApiUrl,\n        `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseUpdateMethod?.apiMethodId}`,\n        {\n          method: 'post'\n        },\n        data\n      ),\n    [selectedEntity]\n  );\n\n  const executeDelete = useCallback(\n    async (data) =>\n      apiMutate(\n        ConfigService.integrationV1ApiUrl,\n        `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseDeleteMethod?.apiMethodId}`,\n        {\n          method: 'post'\n        },\n        data\n      ),\n    [selectedEntity]\n  );\n\n  const onCreate = useCallback(\n    async (data) => {\n      return await executeCreate(data);\n    },\n    [executeCreate]\n  );\n\n  const onUpdate = useCallback(\n    async (data) => {\n      return await executeUpdate(data);\n    },\n    [executeUpdate]\n  );\n\n  const onDelete = useCallback(\n    async (data) => {\n      return await executeDelete(data);\n    },\n    [executeDelete]\n  );\n\n  // Configured columns data from data builder\n  const queryColumnsData = useMemo(() => {\n    if (!apiMethodInstance) return [];\n    let catalogMods = [];\n    try {\n      const catalogModificationStr = apiMethodInstance.catalogModification;\n      const catalogModification = JSON.parse(catalogModificationStr);\n      catalogMods = catalogModification;\n    } catch {\n      console.warn('Error parsing apiMethodInstance catalogModification');\n    }\n    return catalogMods;\n  }, [apiMethodInstance]);\n\n  // Lookups map used for to map lookups to column entries\n  const lookupsMap = useMemo(() => {\n    // need to return null for Datasource to not render twice\n    if (!queryColumnsData.length) return null;\n    const map = {};\n    const lookupColumns = queryColumnsData.filter(\n      (column) => !!column.extendedProperties?.lookup\n    );\n    lookupColumns.forEach((lc) => {\n      map[lc.name] = {\n        lookupKeyName: lc.extendedProperties?.lookupKeyName || '',\n        lookupKeys: lc.extendedProperties?.lookupKeys || [],\n        lookupValueName: lc.extendedProperties?.lookupValueName || '',\n        value: lc.extendedProperties?.lookup || '',\n        filterOn: !!lc.filterOn || false\n      };\n    });\n\n    return map;\n  }, [queryColumnsData]);\n\n  const nodeFilterParams = useMemo(() => {\n    let filterParams = [];\n    if (params?.nodeObj && params?.queryParamMapping) {\n      const mappedParameters = mapNodeObjValuesToSearchParameters(\n        params.nodeObj,\n        params.queryParamMapping\n      );\n      if (Object.keys(mappedParameters).length) {\n        Object.keys(mappedParameters).forEach((key) => {\n          filterParams.push({\n            name: key,\n            value: mappedParameters[key],\n            type: 'string'\n          });\n        });\n      }\n    }\n    return filterParams;\n  }, [params]);\n\n  // Additional filter elements\n  const searchFilterElements = useMemo(() => {\n    const filterElements = [];\n    if (!enteredFromConfig && udpTagId) {\n      filterElements.push({\n        searchField: 'UdpTags.UdpTagAssociationUdpTag.Id',\n        searchOperator: '=',\n        searchValue: udpTagId\n      });\n    }\n\n    const queryFilterElements = getQueryFilterElements(\n      apiMethodInstance,\n      nodeFilterParams\n    );\n    return filterElements.concat(queryFilterElements);\n  }, [\n    udpTagId,\n    enteredFromConfig,\n    getQueryFilterElements,\n    apiMethodInstance,\n    nodeFilterParams\n  ]);\n\n  const entityAttributes = useMemo(() => {\n    return catalogObject?.properties || [];\n  }, [catalogObject]);\n\n  const getMetaDataForUdpField = useCallback(\n    async (entityName) => {\n      let fieldInfos = [];\n      if (udpFieldSearchApiId) {\n        const filterElements = [\n          {\n            searchField: 'ObjectInfo.SanitizedName',\n            searchOperator: '=',\n            searchValue: entityName\n          }\n        ];\n        const requestObj = getSearchObject(filterElements, 1, 50, true);\n\n        executeQueryAdHoc({ data: requestObj }, udpFieldSearchApiId).then(\n          (resp) => {\n            fieldInfos = resp.data?.pageList;\n          }\n        );\n      }\n      return fieldInfos;\n    },\n    [udpFieldSearchApiId]\n  );\n\n  const getFKMethodEntities = useCallback(\n    async (attributes) => {\n      if (!attributes) {\n        return [];\n      }\n      let fkMethods = [];\n\n      for (const attr of attributes) {\n        // check if there is a property with this childEntity\n        if (attr?.extendedProperties?.childEntity) {\n          // get the list of child entity field names from the Keys array\n          const ceFieldsArr = [];\n          // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n          Object.keys(attr.extendedProperties.childEntityAssoc || {}).length &&\n            (attr.extendedProperties.childEntityAssoc.Cardinality ===\n              CardinalityTypeEnums.Many_To_Many ||\n              attr.extendedProperties.childEntityAssoc.Cardinality ===\n              CardinalityTypeEnums.One_To_Many) &&\n            !attr.extendedProperties.childEntityAssoc.UdpType &&\n            attr.extendedProperties.childEntityAssoc.Keys.forEach(\n              (value, i) => {\n                const name = value.split(',')[0];\n                if (name) {\n                  // check name string: if 1 word, lowercase. if 2 words, lower first char\n                  ceFieldsArr.push({\n                    idx: i,\n                    name: /^[A-Z]*$/.test(name)\n                      ? name.toLowerCase()\n                      : toLowerFirstChar(name)\n                  });\n                }\n              }\n            );\n\n          // find the child entity attribute\n          const ceAttr = attributes.find((p) =>\n            ceFieldsArr.find((cef) => cef.name === p.name)\n          );\n\n          if (ceAttr) {\n            // get list of entity if ceProp exists\n            await apiMutate(\n              ConfigService.integrationV1ApiUrl,\n              `apicatalog/${apiCatalogId}/promotedMethodEntities/${attr.reference}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n              {\n                method: 'get'\n              },\n              {}\n            ).then((resp) => {\n              if (resp && resp.data) {\n                fkMethods.push({\n                  entityAttribute: ceAttr,\n                  entity: resp.data\n                });\n              }\n            });\n          }\n        }\n      }\n      return fkMethods;\n    },\n    [apiCatalogId]\n  );\n\n  const getFKAssociationLabel = useCallback(\n    async (entityName) => {\n      let fieldsInfo = [];\n      fieldsInfo = await getMetaDataForUdpField(entityName);\n      if (fieldsInfo?.length <= 0) {\n        return '';\n      }\n      const associationLabelInfo = fieldsInfo?.find(\n        (fi) => fi.properties?.maintainenceConfig?.associationLabel === 'true'\n      );\n      return associationLabelInfo?.name;\n    },\n    [getMetaDataForUdpField]\n  );\n\n  const getDataByKey = (obj, k) => {\n    if (!obj) return null;\n    let val = obj[k] ?? null;\n    if (!val) {\n      const key = Object.keys(obj).find((objKey) =>\n        objKey.toLowerCase().includes(k)\n      );\n      if (key) {\n        val = obj[key];\n      }\n    }\n    return val;\n  };\n\n  const getFKData = useCallback(async () => {\n    if (!entityAttributes?.length) {\n      return null;\n    }\n    const fkMethods = await getFKMethodEntities(entityAttributes);\n    if (!fkMethods?.length) {\n      setForeignKeyData([]);\n      return [];\n    }\n    let fkData = [];\n    let promises = [];\n    let promiseDetails = [];\n    const warnings = [];\n    for (const method of fkMethods) {\n      if (method && method?.entity?.unityBaseGetAllMethod) {\n        const associationLabel = await getFKAssociationLabel(\n          method.entity.entityName\n        );\n        promiseDetails.push({\n          url:\n            ConfigService.integrationV1ApiUrl +\n            `/apimethod/executeQueryWithParameters/${method?.entity?.unityBaseGetAllMethod?.apiMethodId}`,\n          fieldName: method.entityAttribute.name,\n          name: method.entity.entityName,\n          associationLabel: associationLabel\n        });\n\n        promises.push(\n          apiMutate(\n            ConfigService.integrationV1ApiUrl,\n            `apimethod/executeQueryWithParameters/${method?.entity?.unityBaseGetAllMethod?.apiMethodId}`,\n            {\n              method: 'post'\n            },\n            { data: {} }\n          )\n        );\n      } else {\n        warnings.push({\n          id: uuid(),\n          message: t('dataBrowserPage.warnings.getAllNotPromoted', {\n            defaultValue: \"{{entityName}}'s Get-All method needs to be promoted\",\n            entityName: method.entity.entityName\n          })\n        });\n      }\n    }\n\n    setAlertWarnings(warnings);\n\n    Promise.all(promises).then((resp) => {\n      resp.forEach((response, index) => {\n        if (response.status === 200) {\n          if (response?.data) {\n            let respData = [];\n            const promiseDetail = promiseDetails.find(\n              (p) =>\n                p.url === response?.config?.url &&\n                !fkData.find(\n                  (fd) =>\n                    fd.entityName === p.Name && fd.fieldName === p.fieldName\n                )\n            );\n            response.data.forEach((d) => {\n              const idName =\n                promiseDetail?.fieldName && d[promiseDetail.fieldName]\n                  ? promiseDetail.fieldName\n                  : 'id';\n              const id = getDataByKey(d, idName);\n              const name = getDataByKey(\n                d,\n                toLowerFirstChar(promiseDetail.associationLabel) || 'name'\n              );\n\n              respData.push({ id: id, name: name ?? id });\n            });\n\n            fkData.push({\n              fieldName: promiseDetail.fieldName,\n              entityName: promiseDetail.name,\n              name: promiseDetail.fieldName,\n              data: respData\n            });\n          }\n        }\n      });\n      setForeignKeyData(fkData);\n    });\n  }, [entityAttributes, getFKMethodEntities, getFKAssociationLabel, t]);\n\n  const handleOnCreate = useCallback(\n    async (values) => {\n      if (selectedEntity) {\n        const entityName = selectedEntity?.entityName;\n        if (selectedEntity?.unityBaseCreateMethod) {\n          const data = { requestBody: values };\n          const response = await onCreate({ data }).catch((res) => {\n            handleErrorSnackbar(res);\n          });\n\n          if (response?.status === 200) {\n            handleSuccessSnackbar(\n              entityName\n                ? t('dataBrowserPage.snackbar.entityCreated', {\n                    defaultValue: '{{entityName}} has been created',\n                    entityName\n                  })\n                : t('dataBrowserPage.snackbar.created', {\n                    defaultValue: 'Entity has been created'\n                  })\n            );\n            gridApi?.refreshServerSide();\n            return response;\n          }\n        }\n      }\n    },\n    [\n      selectedEntity,\n      onCreate,\n      t,\n      handleErrorSnackbar,\n      handleSuccessSnackbar,\n      gridApi\n    ]\n  );\n\n  const handleOnUpdate = useCallback(\n    async (values, primaryKeyValues) => {\n      if (selectedEntity) {\n        const entityName = selectedEntity?.entityName;\n\n        if (selectedEntity?.unityBaseUpdateMethod) {\n          // Get primary key value object using path parameters and merge with data\n          const pathObject = getPathObject(\n            selectedEntity.unityBaseUpdateMethod.pathParameters,\n            primaryKeyValues\n          );\n          let data = { requestBody: values };\n          if (Array.isArray(pathObject)) {\n            pathObject.forEach((po) => {\n              data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n            });\n          } else {\n            data = { ...pathObject, requestBody: values };\n          }\n\n          const response = await onUpdate({ data }).catch((res) => {\n            handleErrorSnackbar(res);\n          });\n\n          if (response?.status === 200) {\n            handleSuccessSnackbar(\n              entityName\n                ? t('dataBrowserPage.snackbar.entityUpdated', {\n                    defaultValue: '{{entityName}} has been updated',\n                    entityName\n                  })\n                : t('dataBrowserPage.snackbar.updated', {\n                    defaultValue: 'Entity has been updated'\n                  })\n            );\n\n            gridApi?.refreshServerSide();\n          }\n        }\n      }\n    },\n    [\n      selectedEntity,\n      onUpdate,\n      t,\n      gridApi,\n      handleErrorSnackbar,\n      handleSuccessSnackbar\n    ]\n  );\n\n  const handleOnDelete = useCallback(\n    async (value) => {\n      value = getCleanData(value, lookupsMap);\n      if (selectedEntity) {\n        const entityName = selectedEntity?.entityName;\n\n        if (selectedEntity?.unityBaseDeleteMethod) {\n          // Get primary key value object using path parameters and merge with data\n          const primaryKeyValues = getPrimaryKeyValues(entityAttributes, value);\n          const pathObject = getPathObject(\n            selectedEntity?.unityBaseDeleteMethod.pathParameters,\n            primaryKeyValues\n          );\n          let data = {};\n          if (Array.isArray(pathObject)) {\n            pathObject.forEach((po) => {\n              data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n            });\n          } else {\n            data = { ...pathObject };\n          }\n\n          const response = await onDelete({ data }).catch((res) => {\n            handleErrorSnackbar(res);\n          });\n\n          if (response?.status === 200) {\n            handleSuccessSnackbar(\n              entityName\n                ? t('dataBrowserPage.snackbar.entityDeleted', {\n                    defaultValue: '{{entityName}} has been deleted',\n                    entityName\n                  })\n                : t('dataBrowserPage.snackbar.deleted', {\n                    defaultValue: 'Entity has been deleted'\n                  })\n            );\n\n            gridApi?.refreshServerSide();\n          }\n        }\n      }\n    },\n    [\n      selectedEntity,\n      entityAttributes,\n      onDelete,\n      t,\n      gridApi,\n      handleErrorSnackbar,\n      handleSuccessSnackbar,\n      getCleanData,\n      lookupsMap\n    ]\n  );\n\n  const handleEntitySelect = useCallback((entityName) => {\n    setAlertWarnings([]);\n    setEntityName(entityName);\n    setEnteredFromConfig(true);\n  }, []);\n\n  const removeWarning = useCallback(\n    (id) => {\n      const updatedWarnings = alertWarnings.filter(\n        (warning) => warning.id !== id\n      );\n      setAlertWarnings(updatedWarnings);\n    },\n    [alertWarnings]\n  );\n\n\n\n  useEffect(() => {\n    const setFrKeyData = async () => {\n      await getFKData();\n    };\n    if (entityAttributes && udpFieldSearchApiId !== null) {\n      setFrKeyData();\n    }\n  }, [entityAttributes, getFKData, udpFieldSearchApiId]);\n\n  useEffect(() => {\n    if (promotedMethodEntities) {\n      setSelectedEntity(promotedMethodEntities);\n    }\n  }, [promotedMethodEntities]);\n\n  useEffect(() => {\n    if (udpOjectFieldInfo) {\n      setUdpFieldSearchApiId(\n        udpOjectFieldInfo?.unityBaseSearchMethod?.apiMethodId || '' // If falsy lets set to empty string\n      );\n    }\n  }, [udpOjectFieldInfo]);\n\n  useEffect(() => {\n    setAlertWarnings([]);\n    if (udpCatalogKey) {\n      setEntityName(udpCatalogKey);\n    }\n  }, [udpCatalogKey]);\n\n  useEffect(() => {\n    if (tpacb) {\n      setApiCatalogId(tpacb.apiCatalogId);\n    }\n  }, [tpacb]);\n\n  // Set loading flag based on the API loading flags\n  useEffect(() => {\n    setLoading(tpacbLoading || promotedMethodsLoading);\n  }, [tpacbLoading, promotedMethodsLoading]);\n\n  if (tpacbError) {\n    return (\n      <Alert severity='error'>\n        {t('dataBrowserPage.errors.noApiCatalog', { defaultValue: 'There is no Api Catalog associated with your tenant and product' })}\n      </Alert>\n    );\n  }\n\n  return (\n    <>\n      {alertWarnings.map((warning, idx) => (\n        <Alert onClose={() => removeWarning(warning.id)} severity='warning' key={idx}>\n          {warning.message || ''}\n        </Alert>\n      ))}\n      <DataBrowserContainer\n        entityData={entityData}\n        onCreate={handleOnCreate}\n        onUpdate={handleOnUpdate}\n        onDelete={handleOnDelete}\n        onLoadInquiryNode={params?.loadInquiryNode && params?.displayLoadNodeButton ? params.loadInquiryNode : null}\n        entityAttributes={entityAttributes}\n        foreignKeyData={foreignKeyData}\n        loading={loading}\n        promotedEntity={selectedEntity}\n        isServerSide={true}\n        apiMethod={{ apiCatalogId, entityName }}\n        setGridApi={setGridApi}\n        filterElements={searchFilterElements}\n        backToConfigPage={\n          enteredFromConfig ? () => handleEntitySelect(null) : null\n        }\n        queryColumnsData={queryColumnsData}\n        lookupsMap={lookupsMap}\n        disableRowSelction={!params?.loadInquiryNode}\n      />\n    </>\n  );\n};\n\nexport default memo(UdpDataBrowserPage);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAiDA,MAAagC,sBAAqBC,UAAA;CAAA,MAAAC,IAAAC,EAAA,IAAA;CAChC,MAAA,EAAAC,SAAAC,WAA4BJ;CAC5B,MAAAK,OAAaxB,eAAe;CAC5B,MAAA,EAAAyB,MAAc9B,gBAAgB;CAAC,IAAA+B;AAAA,KAAAN,EAAA,OAAAO,OAAAC,IAAA,4BAAA,EAAA;AACcF,OAAA,EAAE;AAAAN,IAAA,KAAAM;OAAAA,MAAAN,EAAA;CAA/C,MAAA,CAAAS,cAAoCzC,SAASsC,GAAG;CAChD,MAAA,CAAAI,SAAAC,cAA8B3C,SAAS,KAAK;CAAC,IAAA4C;AAAA,KAAAZ,EAAA,OAAAO,OAAAC,IAAA,4BAAA,EAAA;AACMI,OAAA,EAAE;AAAAZ,IAAA,KAAAY;OAAAA,MAAAZ,EAAA;CAArD,MAAA,CAAAa,eAAAC,oBAA0C9C,SAAS4C,GAAG;CAEtD,MAAAG,WAAiBrB,aAAa;CAC9B,MAAAsB,QAAcD,SAAQC;CACtB,MAAAC,iBAAqBF,SAAQG;CAAQ,IAAAC;AAAA,KAAAnB,EAAA,OAAAiB,kBAAAjB,EAAA,OAAAgB,OAAA;EACrC,MAAAI,eAAmB,IAAIC,gBAAgBJ,eAAe;AAC1BE,OAAAH,OAAKd,UAC7Bc,MAAKd,UACLkB,aAAYE,IAAK,UAAU,KAAK,OAC9BtC,iBAAiBoC,aAAYG,IAAK,UACjC,CAAC,GAFJ;AAEIvB,IAAA,KAAAiB;AAAAjB,IAAA,KAAAgB;AAAAhB,IAAA,KAAAmB;OAAAA,MAAAnB,EAAA;CAJR,MAAAwB,sBAA4BL;CAM5B,MAAA,EAAAM,qBAAAC,0BACEtC,wBAAwB;CAE1B,MAAA,EAAAuC,iBAAyBhC,mBAAmB;CAE5C,MAAAiC,aACQzB,QAAMD,WAANA,WAAAsB,uBAAA;CAIR,MAAAK,WAAiB1B,QAAM0B,YAAN;CAEjB,MAAA,CAAAC,gBAAAC,qBAA4C/D,SAAS,KAAK;CAC1D,MAAA,CAAAgE,gBAAAC,qBAA4CjE,SAAS,KAAK;CAC1D,MAAA,CAAAkE,qBAAAC,0BAAsDnE,SAAS,KAAK;CAEpE,MAAA,CAAAoE,SAAAC,cAA8BrE,SAAS,MAAM;CAC7C,MAAA,CAAAsE,cAAAC,mBAAwCvE,SAAS,KAAK;CACtD,MAAA,CAAAwE,YAAAC,iBAAoCzE,SAAS,KAAK;CAClD,MAAA,CAAA0E,mBAAAC,wBAAkD3E,SAAS,MAAM;CAEjE,MAAA,EAAA4E,MAAAC,sBAAoCxD,wBAClC,sBACA,KACD;CAGD,MAAA,EAAAyD,2BAAmCxD,0BAA0B;CAAC,IAAAyD;AAAA,KAAA/C,EAAA,OAAAO,OAAAC,IAAA,4BAAA,EAAA;AAM1DuC,OAAA,EAAE;AAAA/C,IAAA,KAAA+C;OAAAA,MAAA/C,EAAA;CAJN,MAAA,CAAAgD,MACEnE,YACEgB,cAAaoD,qBACb,sCAAsC7C,MAAI8C,gBAAiB,WAAYrD,cAAasD,OAAOC,oBAC3FL,IACA,CAAC,CAAC,CAAC3C,MACH,MACD;CAPI,MAAA,EAAAwC,MAAAS,OAAAjB,SAAAkB,cAAAC,OAAAC,eAAAR;CAAyD,IAAAS;AAAA,KAAAzD,EAAA,OAAAO,OAAAC,IAAA,4BAAA,EAAA;AAkB9DiD,OAAA,EAAE;AAAAzD,IAAA,KAAAyD;OAAAA,MAAAzD,EAAA;CATJ,MAAA,CAAA0D,MAMI7E,YACFgB,cAAaoD,qBACb,qBAAqBrB,cACrB6B,IACA,CAAC,CAAC,CAAC7B,YACH,MACD;CAXC,MAAA,EAAAgB,MAAAe,sBAAAD;CAIC,IAAAE;AAAA,KAAA5D,EAAA,OAAAO,OAAAC,IAAA,4BAAA,EAAA;AAcDoD,OAAA,EAAE;AAAA5D,IAAA,KAAA4D;OAAAA,MAAA5D,EAAA;CALJ,MAAA,CAAA6D,MAEIhF,YACFgB,cAAaoD,qBACb,aAAaU,mBAAiBG,eAC9BF,IACA,CAAC,CAAC,CAACD,mBAAiBG,aACpB,MACD;CAPC,MAAA,EAAAlB,MAAAmB,cAAAF;CASF,MAAAG,gBAAoCD,WAASvB,cAAT;CAA0C,IAAAyB;AAAA,KAAAjE,EAAA,OAAAO,OAAAC,IAAA,4BAAA,EAAA;AAK5EyD,OAAA,EAAE;AAAAjE,IAAA,KAAAiE;OAAAA,MAAAjE,EAAA;CAHJ,MAAA,CAAAkE,OAAkCrF,YAChCgB,cAAasE,qBACb,cAAc7B,aAAY,iBAAkBE,cAC5CyB,IACA,CAAC,CAAC,CAAC3B,gBAAH,CAAoB,CAAC,CAACE,YACtB,MACD;CANM,MAAA,EAAAI,MAAAwB,kBAAAF;CAmBP,MAAA,EAAAtB,MAAAyB,wBAAAjC,SAAAkC,2BACEjF,wBAAwBmD,WAAW;CAAC,IAAA+B;AAAA,KAAAvE,EAAA,OAAA8B,gBAAA0C,uBAAAV,aAAA;AAGpCS,QAAA,OAAA3B,SACE9D,UACEe,cAAaoD,qBACb,wCAAwCnB,gBAAc0C,uBAAoCV,eAC1F,EAAAW,QACU,QACT,EACD7B,KACD;AAAA5C,IAAA,KAAA8B,gBAAA0C,uBAAAV;AAAA9D,IAAA,MAAAuE;OAAAA,OAAAvE,EAAA;CATL,MAAA0E,gBAAsBH;CAWpB,IAAAI;AAAA,KAAA3E,EAAA,QAAA8B,gBAAA8C,uBAAAd,aAAA;AAGAa,QAAA,OAAAE,WACE/F,UACEe,cAAaoD,qBACb,wCAAwCnB,gBAAc8C,uBAAoCd,eAC1F,EAAAW,QACU,QACT,EACD7B,OACD;AAAA5C,IAAA,MAAA8B,gBAAA8C,uBAAAd;AAAA9D,IAAA,MAAA2E;OAAAA,OAAA3E,EAAA;CATL,MAAA8E,gBAAsBH;CAWpB,IAAAI;AAAA,KAAA/E,EAAA,QAAA8B,gBAAAkD,uBAAAlB,aAAA;AAGAiB,QAAA,OAAAE,WACEnG,UACEe,cAAaoD,qBACb,wCAAwCnB,gBAAckD,uBAAoClB,eAC1F,EAAAW,QACU,QACT,EACD7B,OACD;AAAA5C,IAAA,MAAA8B,gBAAAkD,uBAAAlB;AAAA9D,IAAA,MAAA+E;OAAAA,OAAA/E,EAAA;CATL,MAAAkF,gBAAsBH;CAWpB,IAAAI;AAAA,KAAAnF,EAAA,QAAA0E,eAAA;AAGAS,QAAA,OAAAC,WACS,MAAMV,cAAc9B,OAC5B;AAAA5C,IAAA,MAAA0E;AAAA1E,IAAA,MAAAmF;OAAAA,OAAAnF,EAAA;CAHH,MAAAqF,WAAiBF;CAKf,IAAAG;AAAA,KAAAtF,EAAA,QAAA8E,eAAA;AAGAQ,QAAA,OAAAC,WACS,MAAMT,cAAclC,OAC5B;AAAA5C,IAAA,MAAA8E;AAAA9E,IAAA,MAAAsF;OAAAA,OAAAtF,EAAA;CAHH,MAAAwF,WAAiBF;CAKf,IAAAG;AAAA,KAAAzF,EAAA,QAAAkF,eAAA;AAGAO,QAAA,OAAAC,WACS,MAAMR,cAActC,OAC5B;AAAA5C,IAAA,MAAAkF;AAAAlF,IAAA,MAAAyF;OAAAA,OAAAzF,EAAA;CAHH,MAAA2F,WAAiBF;CAKf,IAAAG;AAAAC,MAAA;AAIA,MAAI,CAAClC,mBAAiB;GAAA,IAAAmC;AAAA,OAAA9F,EAAA,QAAAO,OAAAC,IAAA,4BAAA,EAAA;AAASsF,UAAA,EAAE;AAAA9F,MAAA,MAAA8F;SAAAA,OAAA9F,EAAA;AAAT4F,SAAOE;AAAP,SAAAD;;EAAU,IAAAC;AAAA,MAAA9F,EAAA,QAAAO,OAAAC,IAAA,4BAAA,EAAA;AAChBsF,SAAA,EAAE;AAAA9F,KAAA,MAAA8F;QAAAA,OAAA9F,EAAA;EAApB,IAAA+F,cAAkBD;AAClB,MAAA;GACE,MAAAE,yBAA+BrC,kBAAiBsC;GAAqB,IAAAC;AAAA,OAAAlG,EAAA,QAAAgG,wBAAA;AACzCE,UAAAC,KAAIC,MAAOJ,uBAAuB;AAAAhG,MAAA,MAAAgG;AAAAhG,MAAA,MAAAkG;SAAAA,OAAAlG,EAAA;AAC9D+F,iBAD4BG;UACjB;AAEXG,WAAOC,KAAM,sDAAsD;;AAErEV,QAAOG;;CAVT,MAAAQ,mBAAyBX;CAWD,IAAAE;AAAAU,MAAA;AAKtB,MAAI,CAACD,iBAAgBE,QAAO;AAAEX,SAAO;AAAP,SAAAU;;EAAY,IAAAE;AAAA,MAAA1G,EAAA,QAAAuG,kBAAA;AAC1CG,SAAY,EAAE;AACQH,oBAAgBK,OACpCC,MACD,CACYC,SAASC,OAAA;AACpBL,QAAIK,GAAEC,QAAS;KAAAC,eACEF,GAAEG,oBAAkCD,iBAApC;KAA0CE,YAC7CJ,GAAEG,oBAA+BC,cAAjC,EAAuC;KAAAC,iBAClCL,GAAEG,oBAAoCE,mBAAtC;KAA4CC,OACtDN,GAAEG,oBAA2BI,UAA7B;KAAmCC,UAChC,CAAC,CAACR,GAAEQ,YAAJ;KALA;KAOZ;AAAAvH,KAAA,MAAAuG;AAAAvG,KAAA,MAAA0G;QAAAA,OAAA1G,EAAA;AAEF8F,QAAOY;;CAjBT,MAAAc,aAAmB1B;CAkBI,IAAA2B;AAAA,KAAAzH,EAAA,QAAAG,QAAA;AAGrBsH,iBAAmB,EAAE;AACrB,MAAItH,QAAMuH,WAAavH,QAAMwH,mBAAmB;GAC9C,MAAAC,mBAAyBhI,mCACvBO,OAAMuH,SACNvH,OAAMwH,kBACP;AACD,OAAIE,OAAMC,KAAMF,iBAAiB,CAAAnB,OAC/BoB,QAAMC,KAAMF,iBAAiB,CAAAd,SAASiB,QAAA;AACpCN,iBAAYO,KAAM;KAAAhB,MACVe;KAAGV,OACFO,iBAAiBG;KAAIE,MACtB;KACP,CAAC;KACF;;AAELjI,IAAA,MAAAG;AAAAH,IAAA,MAAAyH;OAAAA,gBAAAzH,EAAA;CAhBH,MAAAkI,mBAiBET;CACW,IAAAU;AAAA,KAAAnI,EAAA,QAAA0C,qBAAA1C,EAAA,QAAA6B,UAAA;AAIXsG,mBAAuB,EAAE;AACzB,MAAI,CAACzF,qBAADb,UAA8B;GAAA,IAAAqE;AAAA,OAAAlG,EAAA,QAAA6B,UAAA;AACZqE,UAAA;KAAAkC,aACL;KAAoCC,gBACjC;KAAGC,aACNzG;KACd;AAAA7B,MAAA,MAAA6B;AAAA7B,MAAA,MAAAkG;SAAAA,OAAAlG,EAAA;AAJDmI,kBAAcH,KAAM9B,IAIlB;;AACHlG,IAAA,MAAA0C;AAAA1C,IAAA,MAAA6B;AAAA7B,IAAA,MAAAmI;OAAAA,kBAAAnI,EAAA;CAAA,IAAAkG;AAAA,KAAAlG,EAAA,QAAA2D,qBAAA3D,EAAA,QAAA8C,0BAAA9C,EAAA,QAAAkI,kBAAA;AAE2BhC,QAAApD,uBAC1Ba,mBACAuE,iBACD;AAAAlI,IAAA,MAAA2D;AAAA3D,IAAA,MAAA8C;AAAA9C,IAAA,MAAAkI;AAAAlI,IAAA,MAAAkG;OAAAA,OAAAlG,EAAA;CAHD,MAAAuI,sBAA4BrC;CAG1B,IAAAsC;AAAA,KAAAxI,EAAA,QAAAmI,kBAAAnI,EAAA,QAAAuI,qBAAA;AACKC,QAAAL,eAAcM,OAAQF,oBAAoB;AAAAvI,IAAA,MAAAmI;AAAAnI,IAAA,MAAAuI;AAAAvI,IAAA,MAAAwI;OAAAA,OAAAxI,EAAA;CAdnD,MAAA0I,uBAcEF;CAOC,IAAAG;AAAA,KAAA3I,EAAA,QAAAoE,eAAAwE,YAAA;AAGMD,QAAAvE,eAAawE,cAAb,EAA+B;AAAA5I,IAAA,MAAAoE,eAAAwE;AAAA5I,IAAA,MAAA2I;OAAAA,OAAA3I,EAAA;CADxC,MAAA6I,mBACEF;CACkB,IAAAG;AAAA,KAAA9I,EAAA,QAAAkC,qBAAA;AAGlB4G,QAAA,OAAAC,iBAAA;GACE,IAAAC,aAAiB,EAAE;AACnB,OAAI9G,oBAUFhD,mBAAkB,EAAA0D,MAFCzD,gBAPI,CACrB;IAAAiJ,aACe;IAA0BC,gBACvB;IAAGC,aACN9F;IACd,CACF,EACkD,GAAG,IAAI,KAAK,EAEzB,EAAEN,oBAAoB,CAAAiH,MAC1DC,SAAA;AACEJ,iBAAaI,KAAIxG,MAAeyG;KAEnC;AACF,UACML;;AACRhJ,IAAA,MAAAkC;AAAAlC,IAAA,MAAA8I;OAAAA,OAAA9I,EAAA;CApBH,MAAAsJ,yBAA+BR;CAsB7B,IAAAS;AAAA,KAAAvJ,EAAA,QAAAsC,cAAA;AAGAiH,QAAA,OAAAC,eAAA;AACE,OAAI,CAACA,WAAU,QACN,EAAE;GAEX,MAAAC,YAAgB,EAAE;AAElB,QAAK,MAAAC,QAAcF,WAEjB,KAAIE,MAAIxC,oBAAiCyC,aAAA;IAEvC,MAAAC,cAAoB,EAAE;AAEtB/B,WAAMC,KAAM4B,KAAIxC,mBAAmB2C,oBAAvB,EAA8C,CAAC,CAAApD,WACxDiD,KAAIxC,mBAAmB2C,iBAAiBC,gBACvC7K,qBAAoB8K,gBACpBL,KAAIxC,mBAAmB2C,iBAAiBC,gBACxC7K,qBAAoB+K,gBAJxB,CAKGN,KAAIxC,mBAAmB2C,iBAAiBI,WACzCP,KAAIxC,mBAAmB2C,iBAAiBK,KAAKpD,SAC3CO,OAAA8C,MAAA;KACE,MAAAnD,OAAaK,MAAK+C,MAAO,IAAI,CAAA;AAC7B,SAAIpD,KAEF4C,aAAW5B,KAAM;MAAAqC,KACVF;MAACnD,MACA,WAAUsD,KAAMtD,KAEI,GADtBA,KAAIuD,aACkB,GAAtBxL,iBAAiBiI,KAAI;MAC1B,CAAC;MAGP;IAGH,MAAAwD,SAAehB,WAAUiB,MAAMC,MAC7Bd,YAAWa,MAAME,QAASA,IAAG3D,SAAU0D,EAAC1D,KAC1C,CAAC;AAED,QAAIwD,OAEF,OAAM1L,UACJe,cAAaoD,qBACb,cAAcX,aAAY,0BAA2BoH,KAAIkB,UAAU,WAAY/K,cAAasD,OAAOC,oBACnG,EAAAqB,QACU,OACT,EACD,EACF,CAAC,CAAA0E,MAAM0B,WAAA;AACL,SAAIA,UAAQzB,OAAIxG,KACd6G,WAASzB,KAAM;MAAA8C,iBACIN;MAAMO,QACf3B,OAAIxG;MACb,CAAC;MAEJ;;AAGP,UACM6G;;AACRzJ,IAAA,MAAAsC;AAAAtC,IAAA,MAAAuJ;OAAAA,OAAAvJ,EAAA;CA5DH,MAAAgL,sBAA4BzB;CA8D1B,IAAA0B;AAAA,KAAAjL,EAAA,QAAAsJ,wBAAA;AAGA2B,QAAA,OAAAC,iBAAA;GACE,IAAAC;AACAA,gBAAaA,MAAM7B,uBAAuB9G,aAAW;AACrD,OAAI2I,YAAU1E,UAAY,EAAC,QAClB;AAIP,WAF2B0E,YAAUV,KACrCY,OACD,GAC0BrE;;AAC5BhH,IAAA,MAAAsJ;AAAAtJ,IAAA,MAAAiL;OAAAA,OAAAjL,EAAA;CAXH,MAAAsL,wBAA8BL;CAe9B,MAAAM,eAAqBC;CAYnB,IAAAC;AAAA,KAAAzL,EAAA,QAAA6I,oBAAA7I,EAAA,QAAAsL,yBAAAtL,EAAA,QAAAgL,uBAAAhL,EAAA,QAAAK,GAAA;AAE4BoL,QAAA,YAAA;AAC5B,OAAI,CAAC5C,kBAAgBpC,OAAQ,QACpB;GAET,MAAAiF,cAAkB,MAAMV,oBAAoBnC,iBAAiB;AAC7D,OAAI,CAACY,aAAShD,QAAQ;AACpBxE,sBAAkB,EAAE,CAAC;AAAA,WACd,EAAE;;GAEX,MAAA0J,SAAa,EAAE;GACf,MAAAC,WAAe,EAAE;GACjB,MAAAC,iBAAqB,EAAE;GACvB,MAAAC,WAAiB,EAAE;AACnB,QAAK,MAAArH,UAAgBgF,YACnB,KAAIhF,UAAUA,QAAMsG,QAA+BgB,uBAAA;IACjD,MAAAC,mBAAyB,MAAMV,sBAC7B7G,OAAMsG,OAAOvI,WACd;AACDqJ,mBAAc7D,KAAM;KAAAiE,KAEhBpM,cAAaoD,sBACb,yCAAyCwB,QAAMsG,QAA+BgB,uBAAajI;KAAEoI,WACpFzH,OAAMqG,gBAAgB9D;KAAKA,MAChCvC,OAAMsG,OAAOvI;KAAWwJ;KAE/B,CAAC;AAEFJ,aAAQ5D,KACNlJ,UACEe,cAAaoD,qBACb,wCAAwCwB,QAAMsG,QAA+BgB,uBAAajI,eAC1F,EAAAW,QACU,QACT,EACD,EAAA7B,MAAQ,EAAC,EACX,CACF,CAAC;SAEDkJ,UAAQ9D,KAAM;IAAAmE,IACR1M,IAAM;IAAA2M,SACD/L,EAAE,8CAA8C;KAAAgM,cACzC;KAAsD7J,YACxDiC,OAAMsG,OAAOvI;KAC1B,CAAA;IACF,CAAC;AAIN1B,oBAAiBgL,SAAS;AAE1BQ,WAAOC,IAAKX,SAAS,CAAAzC,MAAMqD,WAAA;AACzBpD,WAAItC,SAAS2F,UAAAC,UAAA;AACX,SAAID,SAAQE,WAAY;UAClBF,UAAQ7J,MAAM;OAChB,MAAAgK,WAAe,EAAE;OACjB,MAAAC,gBAAsBhB,eAAcpB,MAClCqC,QACEpC,IAACuB,QAASQ,UAAQtJ,QAAa8I,OAA/B,CACCN,OAAMlB,MACLsC,OACEA,GAAEvK,eAAgBkI,IAACsC,QAASD,GAAEb,cAAexB,IAACwB,UAEtD,CAAC;AACDO,gBAAQ7J,KAAKkE,SAASmG,MAAA;QAKpB,MAAAd,KAAWZ,aAAa0B,GAHtBJ,eAAaX,aAAee,EAAEJ,cAAaX,aACvCW,cAAaX,YADjB,KAGgC;QAClC,MAAAiB,SAAa5B,aACX0B,GACAlO,iBAAiB8N,cAAab,iBAA4B,IAA1D,OACD;AAEDY,iBAAQ5E,KAAM;SAAAmE;SAAAnF,MAAgBmG,UAAAhB;SAAY,CAAC;SAC3C;AAEFR,cAAM3D,KAAM;QAAAkE,WACCW,cAAaX;QAAU1J,YACtBqK,cAAa7F;QAAKA,MACxB6F,cAAaX;QAAUtJ,MACvBgK;QACP,CAAC;;;MAGN;AACF3K,sBAAkB0J,OAAO;KACzB;;AACH3L,IAAA,MAAA6I;AAAA7I,IAAA,MAAAsL;AAAAtL,IAAA,MAAAgL;AAAAhL,IAAA,MAAAK;AAAAL,IAAA,MAAAyL;OAAAA,OAAAzL,EAAA;CAxFD,MAAAoN,YAAkB3B;CAwFoD,IAAA4B;AAAA,KAAArN,EAAA,QAAAU,WAAAV,EAAA,QAAAyB,uBAAAzB,EAAA,QAAA0B,yBAAA1B,EAAA,QAAAqF,YAAArF,EAAA,QAAA8B,kBAAA9B,EAAA,QAAAK,GAAA;AAGpEgN,QAAA,OAAAC,WAAA;AACE,OAAIxL,gBAAc;IAChB,MAAAyL,eAAmBzL,gBAAcU;AACjC,QAAIV,gBAAc0C,uBAAuB;KAEvC,MAAAkJ,aAAiB,MAAMrI,SAAS,EAAAzC,MADnB,EAAA6K,aAAeH,QAAQ,EACI,CAAC,CAAAK,OAAOC,QAAA;AAC9CnM,0BAAoBmM,IAAI;OACxB;AAEF,SAAInB,YAAQE,WAAa,KAAG;AAC1BjL,4BACEc,eACInC,EAAE,0CAA0C;OAAAgM,cAC5B;OAAiC7J,YAC/CA;OAID,CAAC,GAFFnC,EAAE,oCAAoC,EAAAgM,cACtB,2BACf,CACP,CAAC;AACD3L,eAAOmN,mBAAqB;AAAA,aACrBpB;;;;;AAIdzM,IAAA,MAAAU;AAAAV,IAAA,MAAAyB;AAAAzB,IAAA,MAAA0B;AAAA1B,IAAA,MAAAqF;AAAArF,IAAA,MAAA8B;AAAA9B,IAAA,MAAAK;AAAAL,IAAA,MAAAqN;OAAAA,OAAArN,EAAA;CA1BH,MAAA8N,iBAAuBT;CAmCrB,IAAAU;AAAA,KAAA/N,EAAA,QAAAU,WAAAV,EAAA,QAAAyB,uBAAAzB,EAAA,QAAA0B,yBAAA1B,EAAA,QAAAwF,YAAAxF,EAAA,QAAA8B,kBAAA9B,EAAA,QAAAK,GAAA;AAGA0N,QAAA,OAAAC,UAAAC,qBAAA;AACE,OAAInM,gBAAc;IAChB,MAAAoM,eAAmBpM,gBAAcU;AAEjC,QAAIV,gBAAc8C,uBAAuB;KAEvC,MAAAuJ,aAAmBxP,cACjBmD,eAAc8C,sBAAsBwJ,gBACpCH,iBACD;KACD,IAAAI,SAAW,EAAAZ,aAAeH,UAAQ;AAClC,SAAIgB,MAAKC,QAASJ,WAAW,CAC3BA,YAAUrH,SAAS0H,OAAA;AACjB5L,aAAKiF,OAAMC,KAAM0G,GAAG,CAAA,MAAOA,GAAG3G,OAAMC,KAAM0G,GAAG,CAAA;OAC7C;SAEF5L,UAAOA;MAAAA,GAAKuL;MAAUV,aAAeH;MAAQ;AAO/C,UAJiB,MAAM9H,SAAS,EAAA5C,MAAEA,QAAM,CAAC,CAAA+K,OAAOe,UAAA;AAC9CjN,0BAAoBmM,MAAI;OACxB,GAEUjB,WAAa,KAAG;AAC1BjL,4BACEc,eACInC,EAAE,0CAA0C;OAAAgM,cAC5B;OAAiC7J,YAC/CA;OAID,CAAC,GAFFnC,EAAE,oCAAoC,EAAAgM,cACtB,2BACf,CACP,CAAC;AAED3L,eAAOmN,mBAAqB;;;;;AAInC7N,IAAA,MAAAU;AAAAV,IAAA,MAAAyB;AAAAzB,IAAA,MAAA0B;AAAA1B,IAAA,MAAAwF;AAAAxF,IAAA,MAAA8B;AAAA9B,IAAA,MAAAK;AAAAL,IAAA,MAAA+N;OAAAA,OAAA/N,EAAA;CAxCH,MAAA2O,iBAAuBZ;CAiDrB,IAAAa;AAAA,KAAA5O,EAAA,QAAA6I,oBAAA7I,EAAA,QAAA2B,gBAAA3B,EAAA,QAAAU,WAAAV,EAAA,QAAAyB,uBAAAzB,EAAA,QAAA0B,yBAAA1B,EAAA,QAAAwH,cAAAxH,EAAA,QAAA2F,YAAA3F,EAAA,QAAA8B,kBAAA9B,EAAA,QAAAK,GAAA;AAGAuO,QAAA,OAAAC,YAAA;AACExH,aAAQ1F,aAAa0F,SAAOG,WAAW;AACvC,OAAI1F,gBAAc;IAChB,MAAAgN,eAAmBhN,gBAAcU;AAEjC,QAAIV,gBAAckD,uBAAuB;KAEvC,MAAA+J,qBAAyBrQ,oBAAoBmK,kBAAkBxB,QAAM;KACrE,MAAA2H,eAAmBrQ,cACjBmD,gBAAckD,sBAAsCoJ,gBACpDH,mBACD;KACD,IAAAgB,SAAW,EAAE;AACb,SAAIX,MAAKC,QAASJ,aAAW,CAC3BA,cAAUrH,SAASoI,SAAA;AACjBtM,aAAKiF,OAAMC,KAAM0G,KAAG,CAAA,MAAOA,KAAG3G,OAAMC,KAAM0G,KAAG,CAAA;OAC7C;SAEF5L,UAAOA,EAAAA,GAAKuL,cAAY;AAO1B,UAJiB,MAAMxI,SAAS,EAAA/C,MAAEA,QAAM,CAAC,CAAA+K,OAAOyB,UAAA;AAC9C3N,0BAAoBmM,MAAI;OACxB,GAEUjB,WAAa,KAAG;AAC1BjL,4BACEc,eACInC,EAAE,0CAA0C;OAAAgM,cAC5B;OAAiC7J,YAC/CA;OAID,CAAC,GAFFnC,EAAE,oCAAoC,EAAAgM,cACtB,2BACf,CACP,CAAC;AAED3L,eAAOmN,mBAAqB;;;;;AAInC7N,IAAA,MAAA6I;AAAA7I,IAAA,MAAA2B;AAAA3B,IAAA,MAAAU;AAAAV,IAAA,MAAAyB;AAAAzB,IAAA,MAAA0B;AAAA1B,IAAA,MAAAwH;AAAAxH,IAAA,MAAA2F;AAAA3F,IAAA,MAAA8B;AAAA9B,IAAA,MAAAK;AAAAL,IAAA,MAAA4O;OAAAA,OAAA5O,EAAA;CA1CH,MAAAqP,iBAAuBT;CAsDrB,IAAAU;AAAA,KAAAtP,EAAA,QAAAO,OAAAC,IAAA,4BAAA,EAAA;AAEqC8O,SAAAC,iBAAA;AACrCzO,oBAAiB,EAAE,CAAC;AACpB2B,iBAAcD,aAAW;AACzBG,wBAAqB,KAAK;;AAC3B3C,IAAA,MAAAsP;OAAAA,OAAAtP,EAAA;CAJD,MAAAwP,qBAA2BF;CAIpB,IAAAG;AAAA,KAAAzP,EAAA,QAAAa,eAAA;AAGL4O,SAAAC,SAAA;AAIE5O,oBAHwBD,cAAa+F,QACnCgJ,YAAaA,QAAOzD,OAAQA,KAC7B,CACgC;;AAClCnM,IAAA,MAAAa;AAAAb,IAAA,MAAAyP;OAAAA,OAAAzP,EAAA;CANH,MAAA6P,gBAAsBJ;CAQpB,IAAAK;CAAA,IAAAC;AAAA,KAAA/P,EAAA,QAAA6I,oBAAA7I,EAAA,QAAAoN,aAAApN,EAAA,QAAAkC,qBAAA;AAIQ4N,cAAA;GACR,MAAAE,eAAqB,YAAA;AACnB,UAAM5C,WAAW;;AAEnB,OAAIvE,oBAAoB3G,wBAAwB,KAC9C8N,eAAc;;AAEfD,QAAA;GAAClH;GAAkBuE;GAAWlL;GAAoB;AAAAlC,IAAA,MAAA6I;AAAA7I,IAAA,MAAAoN;AAAApN,IAAA,MAAAkC;AAAAlC,IAAA,MAAA8P;AAAA9P,IAAA,MAAA+P;QAAA;AAAAD,QAAA9P,EAAA;AAAA+P,QAAA/P,EAAA;;AAPrDjC,WAAU+R,KAOPC,IAAmD;CAAA,IAAAE;CAAA,IAAAC;AAAA,KAAAlQ,EAAA,QAAAqE,wBAAA;AAE5C4L,cAAA;AACR,OAAI5L,uBACFtC,mBAAkBsC,uBAAuB;;AAE1C6L,QAAA,CAAC7L,uBAAuB;AAAArE,IAAA,MAAAqE;AAAArE,IAAA,MAAAiQ;AAAAjQ,IAAA,MAAAkQ;QAAA;AAAAD,QAAAjQ,EAAA;AAAAkQ,QAAAlQ,EAAA;;AAJ3BjC,WAAUkS,KAIPC,IAAyB;CAAA,IAAAC;CAAA,IAAAC;AAAA,KAAApQ,EAAA,QAAA6C,mBAAA;AAElBsN,cAAA;AACR,OAAItN,kBACFV,wBACEU,mBAAiBwN,uBAAoCvM,eAArD,GACD;;AAEFsM,QAAA,CAACvN,kBAAkB;AAAA7C,IAAA,MAAA6C;AAAA7C,IAAA,MAAAmQ;AAAAnQ,IAAA,MAAAoQ;QAAA;AAAAD,QAAAnQ,EAAA;AAAAoQ,QAAApQ,EAAA;;AANtBjC,WAAUoS,KAMPC,IAAoB;CAAA,IAAAE;CAAA,IAAAC;AAAA,KAAAvQ,EAAA,QAAAgE,eAAA;AAEbsM,cAAA;AACRxP,oBAAiB,EAAE,CAAC;AACpB,OAAIkD,cACFvB,eAAcuB,cAAc;;AAE7BuM,QAAA,CAACvM,cAAc;AAAAhE,IAAA,MAAAgE;AAAAhE,IAAA,MAAAsQ;AAAAtQ,IAAA,MAAAuQ;QAAA;AAAAD,QAAAtQ,EAAA;AAAAuQ,QAAAvQ,EAAA;;AALlBjC,WAAUuS,KAKPC,IAAgB;CAAA,IAAAC;CAAA,IAAAC;AAAA,KAAAzQ,EAAA,QAAAqD,OAAA;AAETmN,cAAA;AACR,OAAInN,MACFd,iBAAgBc,MAAKf,aAAc;;AAEpCmO,QAAA,CAACpN,MAAM;AAAArD,IAAA,MAAAqD;AAAArD,IAAA,MAAAwQ;AAAAxQ,IAAA,MAAAyQ;QAAA;AAAAD,QAAAxQ,EAAA;AAAAyQ,QAAAzQ,EAAA;;AAJVjC,WAAUyS,KAIPC,IAAQ;CAAA,IAAAC;CAAA,IAAAC;AAAA,KAAA3Q,EAAA,QAAAsE,0BAAAtE,EAAA,QAAAsD,cAAA;AAGDoN,cAAA;AACRrO,cAAWiB,gBAAAgB,uBAAuC;;AACjDqM,QAAA,CAACrN,cAAcgB,uBAAuB;AAAAtE,IAAA,MAAAsE;AAAAtE,IAAA,MAAAsD;AAAAtD,IAAA,OAAA0Q;AAAA1Q,IAAA,OAAA2Q;QAAA;AAAAD,QAAA1Q,EAAA;AAAA2Q,QAAA3Q,EAAA;;AAFzCjC,WAAU2S,KAEPC,IAAuC;AAE1C,KAAInN,YAAU;EAAA,IAAAoN;AAAA,MAAA5Q,EAAA,SAAAK,GAAA;AAGPuQ,SAAAvQ,EAAE,uCAAuC,EAAAgM,cAAgB,mEAAmE,CAAC;AAAArM,KAAA,OAAAK;AAAAL,KAAA,OAAA4Q;QAAAA,OAAA5Q,EAAA;EAAA,IAAA6Q;AAAA,MAAA7Q,EAAA,SAAA4Q,KAAA;AADhIC,SAAA,sBAAA,cAAC,OAAD,EAAgB,UAAA,SAER,EADLD,IACK;AAAA5Q,KAAA,OAAA4Q;AAAA5Q,KAAA,OAAA6Q;QAAAA,OAAA7Q,EAAA;AAAA,SAFR6Q;;CAIH,IAAAD;AAAA,KAAA5Q,EAAA,SAAAa,iBAAAb,EAAA,SAAA6P,eAAA;EAAA,IAAAgB;AAAA,MAAA7Q,EAAA,SAAA6P,eAAA;AAIsBgB,UAAAC,WAAAzG,QACjB,sBAAA,cAAC,OAAD;IAAgB,eAAMwF,cAAcD,UAAOzD,GAAG;IAAY,UAAA;IAAe9B,KAAAA;IAG1E,EAFIuF,UAAOxD,WAAP,GAEJ;AAAApM,KAAA,OAAA6P;AAAA7P,KAAA,OAAA6Q;QAAAA,OAAA7Q,EAAA;AAJA4Q,QAAA/P,cAAa6F,IAAKmK,IAIjB;AAAA7Q,IAAA,OAAAa;AAAAb,IAAA,OAAA6P;AAAA7P,IAAA,OAAA4Q;OAAAA,OAAA5Q,EAAA;CAMmB,MAAA6Q,MAAA1Q,QAAM4Q,mBAAqB5Q,QAAM6Q,wBAA0B7Q,OAAM4Q,kBAAjE;CAAwF,IAAAE;AAAA,KAAAjR,EAAA,SAAAsC,gBAAAtC,EAAA,SAAAwC,YAAA;AAMhGyO,QAAA;GAAA3O;GAAAE;GAA4B;AAAAxC,IAAA,OAAAsC;AAAAtC,IAAA,OAAAwC;AAAAxC,IAAA,OAAAiR;OAAAA,OAAAjR,EAAA;CAAA,IAAAkR;AAAA,KAAAlR,EAAA,SAAA0C,mBAAA;AAIrCwO,QAAAxO,0BAA0B8M,mBAAmB,KAAY,GAAzD;AAAyDxP,IAAA,OAAA0C;AAAA1C,IAAA,OAAAkR;OAAAA,OAAAlR,EAAA;CAIvC,MAAAmR,MAAA,CAAChR,QAAM4Q;CAAiB,IAAAK;AAAA,KAAApR,EAAA,SAAA6I,oBAAA7I,EAAA,SAAAS,cAAAT,EAAA,SAAAgC,kBAAAhC,EAAA,SAAA8N,kBAAA9N,EAAA,SAAAqP,kBAAArP,EAAA,SAAA2O,kBAAA3O,EAAA,SAAAoC,WAAApC,EAAA,SAAAwH,cAAAxH,EAAA,SAAAuG,oBAAAvG,EAAA,SAAA0I,wBAAA1I,EAAA,SAAA8B,kBAAA9B,EAAA,SAAA6Q,OAAA7Q,EAAA,SAAAiR,OAAAjR,EAAA,SAAAkR,OAAAlR,EAAA,SAAAmR,KAAA;AAnB9CC,QAAA,sBAAA,cAAC,sBAAD;GACc3Q;GACFqN,UAAAA;GACAa,UAAAA;GACAU,UAAAA;GACS,mBAAAwB;GACDhI;GACF7G;GACPI;GACON,gBAAAA;GACF,cAAA;GACH,WAAAmP;GACCtQ;GACI+H,gBAAAA;GAEd,kBAAAwI;GAEgB3K;GACNiB;GACQ,oBAAA2J;GACpB,CAAA;AAAAnR,IAAA,OAAA6I;AAAA7I,IAAA,OAAAS;AAAAT,IAAA,OAAAgC;AAAAhC,IAAA,OAAA8N;AAAA9N,IAAA,OAAAqP;AAAArP,IAAA,OAAA2O;AAAA3O,IAAA,OAAAoC;AAAApC,IAAA,OAAAwH;AAAAxH,IAAA,OAAAuG;AAAAvG,IAAA,OAAA0I;AAAA1I,IAAA,OAAA8B;AAAA9B,IAAA,OAAA6Q;AAAA7Q,IAAA,OAAAiR;AAAAjR,IAAA,OAAAkR;AAAAlR,IAAA,OAAAmR;AAAAnR,IAAA,OAAAoR;OAAAA,OAAApR,EAAA;CAAA,IAAAqR;AAAA,KAAArR,EAAA,SAAA4Q,OAAA5Q,EAAA,SAAAoR,KAAA;AA1BJC,QAAA,sBAAA,cAAA,MAAA,UAAA,MACGT,KAKDQ,IAqBC;AAAApR,IAAA,OAAA4Q;AAAA5Q,IAAA,OAAAoR;AAAApR,IAAA,OAAAqR;OAAAA,OAAArR,EAAA;AAAA,QA3BHqR;;AA+BJ,IAAA,6BAAelT,KAAK2B,mBAAmB;AAzrBL,SAAA+G,MAAAyK,QAAA;AAAA,QAwLhB,CAAC,CAACA,OAAMpK,oBAA2BI;;AAxLnB,SAAA+D,OAAAkG,IAAA;AAAA,QAuVlBA,GAAE3I,YAA+B4I,oBAAkBxF,qBAAK;;AAvVtC,SAAAR,OAAAiG,KAAAC,GAAA;AA+V9B,KAAI,CAACD,IAAG,QAAS;CACjB,IAAAE,MAAUF,IAAIC,MAAJ;AACV,KAAI,CAACC,KAAG;EACN,MAAAC,QAAY/J,OAAMC,KAAM2J,IAAI,CAAAhH,MAAMoH,WAChCA,OAAMtH,aAAc,CAAAuH,SAAUJ,EAChC,CAAC;AACD,MAAI3J,MACF4J,OAAMF,IAAI1J;;AAEb,QACM4J"}