{"version":3,"file":"UdpLookupManagementPage.mjs","names":["React","useState","useMemo","useCallback","useTranslation","ClientSideUdpGrid","UdpDialog","UdpButton","UdpText","useLookups","LookupCreationSheet","useApiCatalog","useAxiosGet","useUser","ConfigService","LookupTypeId","getLookupKeysFormatted","UdpLookupManagementPage","productId","t","user","tenantId","currentTenantId","resolvedProductId","config","UNITY_PRODUCT_ID","data","productCatalog","integrationV1ApiUrl","apiCatalogId","lookups","loading","lookupsLoading","refetch","methodStatus","createLookup","updateLookup","deleteLookup","fetchColumns","createLookupColumn","updateLookupColumn","fetchValues","createLookupValue","deleteLookupValue","isLegacyLookups","setLoading","sheetOpen","setSheetOpen","catalogData","undefined","catalogObjectList","ctlg","editLookup","setEditLookup","deleteTarget","setDeleteTarget","deleting","setDeleting","handleRefresh","handleCreate","handleEdit","_","params","handleSheetClose","handleLookupCreatedOrUpdated","handleDeleteConfirm","statusConfig","true","false","columnDefs","headerName","defaultValue","field","valueFormatter","value","parts","split","length","cellRenderer","cellRendererParams","getStatusConfig","Domain","label","color","Lookup","Array","isArray","name","actionList","id","iconName","title","handleOnClick","gridHeaderConfig","primaryActionButton","onClick","gridFunctions","onRefreshStart","onRefreshComplete","pagination"],"sources":["../../../../src/udp/pages/UdpLookupManagementPage/UdpLookupManagementPage.jsx"],"sourcesContent":["import React, { useState, useMemo, useCallback } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ClientSideUdpGrid } from '../../../UI/templates/newGrid';\nimport { UdpDialog } from '../../../UI/fluent-web-components/UdpDialog';\nimport { UdpButton } from '../../../UI/fluent-web-components/UdpButton';\nimport { UdpText } from '../../../UI/fluent-web-components/UdpText';\nimport { useLookups } from '../../lookups/useLookups';\nimport { LookupCreationSheet } from '../../lookups/LookupCreationSheet';\nimport { useApiCatalog } from '../../../hooks/useApiCatalog';\nimport { useAxiosGet } from '../../../utilities/useAxiosGet';\nimport { useUser } from '../../../utilities/auth/useUser';\nimport { ConfigService } from '../../../configService';\nimport { LookupTypeId, getLookupKeysFormatted } from '@univerus/udp-stencil-component-library';\n\nexport const UdpLookupManagementPage = ({ productId }) => {\n  const { t } = useTranslation();\n  const user = useUser();\n  const tenantId = user?.currentTenantId;\n  const resolvedProductId = productId ?? ConfigService.config.UNITY_PRODUCT_ID;\n\n  const [{ data: productCatalog }] = useAxiosGet(\n    ConfigService.integrationV1ApiUrl,\n    `tenantProductApiCatalogBase/tenant/${tenantId}/product/${resolvedProductId}`,\n    {},\n    !tenantId || !resolvedProductId,\n    true\n  );\n\n  const apiCatalogId = productCatalog?.apiCatalogId;\n  const {\n    lookups,\n    loading: lookupsLoading,\n    refetch,\n    methodStatus,\n    createLookup,\n    updateLookup,\n    deleteLookup,\n    fetchColumns,\n    createLookupColumn,\n    updateLookupColumn,\n    fetchValues,\n    createLookupValue,\n    deleteLookupValue,\n    isLegacyLookups\n  } = useLookups(apiCatalogId, productId);\n\n  const [loading, setLoading] = useState(false);\n  const [sheetOpen, setSheetOpen] = useState(false);\n\n  const { data: catalogData } = useApiCatalog(\n    sheetOpen ? apiCatalogId : undefined\n  );\n  const catalogObjectList = catalogData?.ctlg?.catalogObjectList ?? [];\n  const [editLookup, setEditLookup] = useState(null);\n  const [deleteTarget, setDeleteTarget] = useState(null);\n  const [deleting, setDeleting] = useState(false);\n\n  const handleRefresh = useCallback(() => {\n    setLoading(true);\n    refetch();\n  }, [refetch]);\n\n  const handleCreate = useCallback(() => {\n    setEditLookup(null);\n    setSheetOpen(true);\n  }, []);\n\n  const handleEdit = useCallback((_, params) => {\n    setEditLookup(params?.data);\n    setSheetOpen(true);\n  }, []);\n\n  const handleSheetClose = useCallback(() => {\n    setSheetOpen(false);\n    setEditLookup(null);\n  }, []);\n\n  const handleLookupCreatedOrUpdated = useCallback(() => {\n    refetch();\n  }, [refetch]);\n\n  const handleDeleteConfirm = useCallback(async () => {\n    if (!deleteTarget) return;\n    setDeleting(true);\n    try {\n      await deleteLookup(deleteTarget);\n      setDeleteTarget(null);\n      refetch();\n    } finally {\n      setDeleting(false);\n    }\n  }, [deleteTarget, deleteLookup, refetch]);\n\n  const statusConfig = useMemo(\n    () => ({\n      true: 'success',\n      false: 'secondary'\n    }),\n    []\n  );\n\n  const columnDefs = useMemo(\n    () => [\n      { headerName: t('lookups.grid.columns.name', { defaultValue: 'Name' }), field: 'name' },\n      {\n        headerName: t('lookups.grid.columns.description', { defaultValue: 'Description' }),\n        field: 'description'\n      },\n      {\n        headerName: t('lookups.grid.columns.domain', { defaultValue: 'Domain' }),\n        field: 'domainName',\n        valueFormatter: (params) => {\n          if (!params.value) return '';\n          const parts = params.value.split('.');\n          return parts[parts.length - 1];\n        }\n      },\n      {\n        headerName: t('lookups.grid.columns.type', { defaultValue: 'Type' }),\n        field: 'typeId',\n        cellRenderer: 'statusRenderer',\n        cellRendererParams: {\n          getStatusConfig: (params) => {\n            if (params.value === LookupTypeId.Domain)\n              return { label: t('lookups.type.domain', { defaultValue: 'Domain' }), color: 'warning' };\n            if (params.value === LookupTypeId.Lookup)\n              return { label: t('lookups.type.virtual', { defaultValue: 'Virtual' }), color: 'info' };\n            return null;\n          }\n        }\n      },\n      {\n        headerName: t('lookups.grid.columns.keyNames', { defaultValue: 'Key Name(s)' }),\n        field: 'udpLookupUdpLookupKey',\n        valueFormatter: (params) => {\n          // console.log('Formatting keys for lookup:', params.value);\n          // console.log('data:', params);\n\n          if (!params.value) return '';\n          if (!Array.isArray(params.value))\n            return params.value?.name || '';\n\n          return getLookupKeysFormatted(params.value);\n        }\n      },\n      { headerName: t('lookups.grid.columns.valueName', { defaultValue: 'Value Name' }), field: 'valueName' },\n      {\n        field: 'actions',\n        cellRenderer: 'actionsRenderer',\n        cellRendererParams: {\n          actionList: [\n            {\n              id: 1,\n              iconName: 'edit',\n              title: t('common.edit', { defaultValue: 'Edit' }),\n              handleOnClick: handleEdit\n            },\n            {\n              id: 2,\n              iconName: 'delete',\n              title: t('common.delete', { defaultValue: 'Delete' }),\n              handleOnClick: (_, params) => setDeleteTarget(params?.data)\n            }\n          ]\n        }\n      }\n    ],\n    [handleEdit, t]\n  );\n\n  const gridHeaderConfig = useMemo(\n    () => ({\n      title: t('lookups.title', { defaultValue: 'Lookups' }),\n      primaryActionButton: {\n        label: t('lookups.createLookup', { defaultValue: 'Create Lookup' }),\n        iconName: 'add',\n        onClick: handleCreate\n      }\n    }),\n    [handleCreate, t]\n  );\n\n  const gridFunctions = useMemo(\n    () => [\n      {\n        name: 'agGridRefreshData',\n        params: {\n          onRefreshStart: handleRefresh,\n          onRefreshComplete: () => setLoading(false)\n        }\n      },\n      { name: 'quickFilter' }\n    ],\n    [handleRefresh]\n  );\n\n  return (\n    <>\n      <ClientSideUdpGrid\n        rowData={lookups ?? []}\n        loading={loading || lookupsLoading}\n        columnDefs={columnDefs}\n        gridHeaderConfig={gridHeaderConfig}\n        gridFunctions={gridFunctions}\n        gridOptions={{ pagination: true }}\n      />\n\n      <LookupCreationSheet\n        open={sheetOpen}\n        onClose={handleSheetClose}\n        lookup={editLookup}\n        onCreateLookup={createLookup}\n        onCreateLookupColumn={createLookupColumn}\n        onCreateLookupValue={createLookupValue}\n        onUpdateLookup={updateLookup}\n        onUpdateLookupColumn={updateLookupColumn}\n        onDeleteLookupValue={deleteLookupValue}\n        fetchColumns={fetchColumns}\n        fetchValues={fetchValues}\n        onLookupCreated={handleLookupCreatedOrUpdated}\n        catalogObjectList={catalogObjectList}\n        lookupMethodStatus={methodStatus}\n        isLegacyLookups={isLegacyLookups}\n      />\n\n      <UdpDialog\n        open={!!deleteTarget}\n        dialogTitle={t('lookups.deleteDialog.title', { defaultValue: 'Delete Lookup' })}\n        onDialogClose={() => setDeleteTarget(null)}\n      >\n        <UdpText>\n          {t('lookups.deleteDialog.message', {\n            defaultValue:\n              'Are you sure you want to delete \\u201c{{name}}\\u201d? This action cannot be undone.',\n            name: deleteTarget?.name\n          })}\n        </UdpText>\n\n        <UdpButton\n          appearance='outline'\n          onClick={() => setDeleteTarget(null)}\n          slot='action'\n        >\n          {t('common.cancel', { defaultValue: 'Cancel' })}\n        </UdpButton>\n        <UdpButton\n          appearance='primary'\n          onClick={handleDeleteConfirm}\n          loading={deleting}\n          slot='action'\n        >\n          {t('common.delete', { defaultValue: 'Delete' })}\n        </UdpButton>\n      </UdpDialog>\n    </>\n  );\n};\n"],"mappings":"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"}