udp-react-enterprise-component-library 25.14.1-beta.7 → 25.14.1-beta.9
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{Accordion-Cd6gzd60.js → Accordion-DL61AM6M.js} +2 -2
- package/dist/{Accordion-Cd6gzd60.js.map → Accordion-DL61AM6M.js.map} +1 -1
- package/dist/{ActionProvider-BPuiwxd4.js → ActionProvider-DL5qMp-u.js} +2 -2
- package/dist/{ActionProvider-BPuiwxd4.js.map → ActionProvider-DL5qMp-u.js.map} +1 -1
- package/dist/{ActionSplitScreen-Cym0gCOb.js → ActionSplitScreen-x0Bh5GEF.js} +3 -3
- package/dist/{ActionSplitScreen-Cym0gCOb.js.map → ActionSplitScreen-x0Bh5GEF.js.map} +1 -1
- package/dist/{ActionWrapper-CoP91vel.js → ActionWrapper-BRzh3vn0.js} +3 -3
- package/dist/{ActionWrapper-CoP91vel.js.map → ActionWrapper-BRzh3vn0.js.map} +1 -1
- package/dist/{BaseTreeMenu-DmsrGSdA.js → BaseTreeMenu-DHEMztjA.js} +7 -3
- package/dist/BaseTreeMenu-DHEMztjA.js.map +1 -0
- package/dist/{CircleButton-BFASpo5t.js → CircleButton-DBPFjNl1.js} +2 -2
- package/dist/{CircleButton-BFASpo5t.js.map → CircleButton-DBPFjNl1.js.map} +1 -1
- package/dist/{CrudBrowserContainer-Dpgwjt7c.js → CrudBrowserContainer-B8AKH7kQ.js} +9 -4
- package/dist/CrudBrowserContainer-B8AKH7kQ.js.map +1 -0
- package/dist/{EntityHeader-Buq_r4IE.js → EntityHeader-DOoeCEj3.js} +2 -2
- package/dist/{EntityHeader-Buq_r4IE.js.map → EntityHeader-DOoeCEj3.js.map} +1 -1
- package/dist/{FileViewer-C1eQoTDj.js → FileViewer-Bhubf4Uv.js} +2 -2
- package/dist/{FileViewer-C1eQoTDj.js.map → FileViewer-Bhubf4Uv.js.map} +1 -1
- package/dist/{FluentCell-DZ5pFjdC.js → FluentCell-C7lb2y4Z.js} +2 -2
- package/dist/{FluentCell-DZ5pFjdC.js.map → FluentCell-C7lb2y4Z.js.map} +1 -1
- package/dist/{FluentDataTable-C7Ng6Eh3.js → FluentDataTable-C3A36z2b.js} +2 -2
- package/dist/{FluentDataTable-C7Ng6Eh3.js.map → FluentDataTable-C3A36z2b.js.map} +1 -1
- package/dist/{FluentTimeline-ChthjfxZ.js → FluentTimeline-B0VjMqsq.js} +2 -2
- package/dist/{FluentTimeline-ChthjfxZ.js.map → FluentTimeline-B0VjMqsq.js.map} +1 -1
- package/dist/{IconRenderer-8w6JVRET.js → IconRenderer-DiwGfDul.js} +2 -2
- package/dist/{IconRenderer-8w6JVRET.js.map → IconRenderer-DiwGfDul.js.map} +1 -1
- package/dist/{Inquiry-DJ-yrELW.js → Inquiry-UnnTFapw.js} +6 -6
- package/dist/{Inquiry-DJ-yrELW.js.map → Inquiry-UnnTFapw.js.map} +1 -1
- package/dist/{MenuPage-BJsOWc5e.js → MenuPage-D4tvTXC3.js} +4 -4
- package/dist/{MenuPage-0qeyA5lF.js → MenuPage-DJGGAhH5.js} +11 -6
- package/dist/MenuPage-DJGGAhH5.js.map +1 -0
- package/dist/{MttMainTimeline-au5xi1SZ.js → MttMainTimeline-Bme6LQZO.js} +2 -2
- package/dist/{MttMainTimeline-au5xi1SZ.js.map → MttMainTimeline-Bme6LQZO.js.map} +1 -1
- package/dist/{MttSummary-DHB1AW_0.js → MttSummary-CTETqPbU.js} +3 -3
- package/dist/{MttSummary-DHB1AW_0.js.map → MttSummary-CTETqPbU.js.map} +1 -1
- package/dist/{NotesScreen-moR3WUoq.js → NotesScreen-CmMz3GTR.js} +2 -2
- package/dist/{NotesScreen-moR3WUoq.js.map → NotesScreen-CmMz3GTR.js.map} +1 -1
- package/dist/{PageActionWrapper-KtNGraWi.js → PageActionWrapper-HgV0I8Km.js} +2 -2
- package/dist/{PageActionWrapper-KtNGraWi.js.map → PageActionWrapper-HgV0I8Km.js.map} +1 -1
- package/dist/{RecentlyLoadedNodesTable-B5KlS1HR.js → RecentlyLoadedNodesTable-BRxssq07.js} +2 -2
- package/dist/{RecentlyLoadedNodesTable-B5KlS1HR.js.map → RecentlyLoadedNodesTable-BRxssq07.js.map} +1 -1
- package/dist/{RemindersCard-CRstZlRF.js → RemindersCard-BrjYmZVz.js} +2 -2
- package/dist/{RemindersCard-CRstZlRF.js.map → RemindersCard-BrjYmZVz.js.map} +1 -1
- package/dist/{RemindersScreen-C2hcBWnk.js → RemindersScreen-CVTHY97W.js} +2 -2
- package/dist/{RemindersScreen-C2hcBWnk.js.map → RemindersScreen-CVTHY97W.js.map} +1 -1
- package/dist/{Shell-CuYfQQKW.js → Shell-CZIS-LvO.js} +4 -4
- package/dist/{Shell-CuYfQQKW.js.map → Shell-CZIS-LvO.js.map} +1 -1
- package/dist/{TreeUtilities-DVY-2md6.js → TreeUtilities-XLrXtUeL.js} +9 -8
- package/dist/{TreeUtilities-DVY-2md6.js.map → TreeUtilities-XLrXtUeL.js.map} +1 -1
- package/dist/UI/accordion/index.js +2 -2
- package/dist/UI/dataDisplay/FluentDataTable/FluentCell/index.js +2 -2
- package/dist/UI/dataDisplay/FluentDataTable/index.js +3 -3
- package/dist/UI/dataDisplay/entityHeader/index.js +3 -3
- package/dist/UI/dataDisplay/index.js +5 -5
- package/dist/UI/fileViewer/index.js +2 -2
- package/dist/UI/index.js +9 -9
- package/dist/UI/timeline/fluentTimeline/index.js +2 -2
- package/dist/UI/timeline/index.js +2 -2
- package/dist/UI/utilityDisplay/index.js +1 -1
- package/dist/{UdpMaintenanceConfigPage-CC_gwu35.js → UdpMaintenanceConfigPage-DfKk0PmB.js} +1 -1
- package/dist/{UdpMaintenanceConfigPage-yuotrI0g.js → UdpMaintenanceConfigPage-mJ4AkDYp.js} +3 -2
- package/dist/UdpMaintenanceConfigPage-mJ4AkDYp.js.map +1 -0
- package/dist/{UdpMaintenanceEnginePage-o40sezly.js → UdpMaintenanceEnginePage-DAioIeSf.js} +8 -3
- package/dist/UdpMaintenanceEnginePage-DAioIeSf.js.map +1 -0
- package/dist/{UdpMaintenanceEnginePage-b5cm6uW2.js → UdpMaintenanceEnginePage-M0RbzSTX.js} +2 -2
- package/dist/{UdpRoutes-BVVsyngj.js → UdpRoutes-Bjfl5no0.js} +5 -5
- package/dist/{UdpRoutes-BVVsyngj.js.map → UdpRoutes-Bjfl5no0.js.map} +1 -1
- package/dist/{UtilitySideBar-DlCvljVV.js → UtilitySideBar-otYqGPhu.js} +2 -2
- package/dist/UtilitySideBar-otYqGPhu.js.map +1 -0
- package/dist/{WorkflowContainer-DasTFSlY.js → WorkflowContainer-C5zXxhJE.js} +3 -3
- package/dist/{WorkflowContainer-DasTFSlY.js.map → WorkflowContainer-C5zXxhJE.js.map} +1 -1
- package/dist/{WorkflowContainer-C6QfVid-.js → WorkflowContainer-D0Od__D5.js} +4 -4
- package/dist/{WorkflowTreeMenu-Dc9l7jEY.js → WorkflowTreeMenu-BtolZKVF.js} +2 -2
- package/dist/{WorkflowTreeMenu-Dc9l7jEY.js.map → WorkflowTreeMenu-BtolZKVF.js.map} +1 -1
- package/dist/actions/index.js +6 -6
- package/dist/componentSystems/multiThreadTimeline/index.js +5 -5
- package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +3 -3
- package/dist/componentSystems/multiThreadTimeline/mttSummary/index.js +4 -4
- package/dist/componentSystems/multiThreadTimeline/ui/index.js +3 -3
- package/dist/index.js +146 -62
- package/dist/index.js.map +1 -1
- package/dist/inquiry/dashboard/index.js +3 -3
- package/dist/inquiry/index.js +10 -10
- package/dist/maintenanceEngine/crudBrowser/index.js +1 -1
- package/dist/maintenanceEngine/index.js +1 -1
- package/dist/menuPage/index.js +4 -4
- package/dist/notes/index.js +2 -2
- package/dist/reminders/index.js +3 -3
- package/dist/routes/index.js +1 -1
- package/dist/shell/index.js +12 -12
- package/dist/shell/ui/addUser/index.js +1 -1
- package/dist/shell/ui/appSwitcher/index.js +1 -1
- package/dist/shell/ui/index.js +3 -3
- package/dist/treeMenu/index.js +2 -2
- package/dist/types/UI/charts/types.d.ts +1 -0
- package/dist/types/index.d.ts +2 -0
- package/dist/types/menuPage/CustomMenuPage.d.ts +22 -0
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/types/utilities/iconLibrary/index.d.ts +5 -1
- package/dist/types/utilities/tree/TreeUtilities.d.ts +2 -0
- package/dist/udp/pages/index.js +10 -10
- package/dist/{udpPages-WbvmyuOa.js → udpPages-D6t7REhp.js} +7 -7
- package/dist/{udpPages-WbvmyuOa.js.map → udpPages-D6t7REhp.js.map} +1 -1
- package/dist/utilities/DemoJuly/index.js +1 -1
- package/dist/utilities/aggrid/index.js +1 -1
- package/dist/utilities/auth/index.js +1 -1
- package/dist/utilities/catalog/index.js +1 -1
- package/dist/utilities/chatBot/index.js +1 -1
- package/dist/utilities/crud/index.js +1 -1
- package/dist/utilities/customIcons/index.js +1 -1
- package/dist/utilities/entities/index.js +1 -1
- package/dist/utilities/floorplanFunctions/index.js +1 -1
- package/dist/utilities/iconLibrary/index.js +5 -5
- package/dist/utilities/index.js +35 -35
- package/dist/utilities/input/index.js +1 -1
- package/dist/utilities/maintenanceEngine/index.js +1 -1
- package/dist/utilities/menus/index.js +1 -1
- package/dist/utilities/page/index.js +1 -1
- package/dist/utilities/provider/index.js +7 -7
- package/dist/utilities/redirect/index.js +1 -1
- package/dist/utilities/rules/index.js +1 -1
- package/dist/utilities/search/index.js +1 -1
- package/dist/utilities/storage/index.js +1 -1
- package/dist/utilities/style/index.js +1 -1
- package/dist/utilities/tenant/index.js +1 -1
- package/dist/utilities/tree/index.js +2 -2
- package/dist/utilities/uploader/index.js +1 -1
- package/dist/utilities/utilityBar/index.js +1 -1
- package/dist/utilities/workflow/index.js +1 -1
- package/dist/workflow/components/index.js +1 -1
- package/dist/workflow/index.js +6 -6
- package/dist/workflow/menus/index.js +3 -3
- package/export-map.json +7 -5
- package/package.json +2 -2
- package/dist/BaseTreeMenu-DmsrGSdA.js.map +0 -1
- package/dist/CrudBrowserContainer-Dpgwjt7c.js.map +0 -1
- package/dist/MenuPage-0qeyA5lF.js.map +0 -1
- package/dist/UdpMaintenanceConfigPage-yuotrI0g.js.map +0 -1
- package/dist/UdpMaintenanceEnginePage-o40sezly.js.map +0 -1
- package/dist/UtilitySideBar-DlCvljVV.js.map +0 -1
- /package/dist/{DemoJuly-HEFpRiJ1.js → DemoJuly-D7RhIRiO.js} +0 -0
- /package/dist/{addUser-CDUgX71C.js → addUser-CS0LS9_W.js} +0 -0
- /package/dist/{aggrid-D_aCbevC.js → aggrid-C3KMLJBL.js} +0 -0
- /package/dist/{appSwitcher-BXsn0Y7P.js → appSwitcher-DqliMkfh.js} +0 -0
- /package/dist/{auth-DWPlnjpI.js → auth-DLdDsXt6.js} +0 -0
- /package/dist/{catalog-DMuLXcCK.js → catalog-DLo7sqLU.js} +0 -0
- /package/dist/{chatBot-CESOMewn.js → chatBot-dEV9kiqk.js} +0 -0
- /package/dist/{components-DaFrTvLa.js → components-CnnFIob2.js} +0 -0
- /package/dist/{crud-tnZ9W8IE.js → crud-C_ERd-Ed.js} +0 -0
- /package/dist/{customIcons-DbLvDHvX.js → customIcons-BzKpDhOz.js} +0 -0
- /package/dist/{entities-Hs88OmOI.js → entities-Z3wHDYPc.js} +0 -0
- /package/dist/{floorplanFunctions-DI9Q0N4y.js → floorplanFunctions-CyG-A6Ho.js} +0 -0
- /package/dist/{iconLibrary-BzBDlfKa.js → iconLibrary-DkiwUTn0.js} +0 -0
- /package/dist/{input-DVo_b6i8.js → input-Bd3pOKUF.js} +0 -0
- /package/dist/{maintenanceEngine-BbFlaLMV.js → maintenanceEngine-BiIXrgHI.js} +0 -0
- /package/dist/{menus-BZI70wR2.js → menus-CreZRf8_.js} +0 -0
- /package/dist/{menus-DN6GDDqx.js → menus-lneAs-ot.js} +0 -0
- /package/dist/{page-BQMQ1JlA.js → page-DF9Cce_a.js} +0 -0
- /package/dist/{provider-CwOhsp5M.js → provider-CDMCgVZv.js} +0 -0
- /package/dist/{redirect-B0_sESdf.js → redirect-DXdJsOUE.js} +0 -0
- /package/dist/{rules-cVxJYdGG.js → rules-vy1m9JZd.js} +0 -0
- /package/dist/{search-6zyJ3P-2.js → search-By3X_wDu.js} +0 -0
- /package/dist/{storage-ZisRFPrn.js → storage-Dzx9lS99.js} +0 -0
- /package/dist/{style-B_j5O3ww.js → style-DCetPHEb.js} +0 -0
- /package/dist/{tenant-CMcPr3w4.js → tenant-9yY-GOUj.js} +0 -0
- /package/dist/{tree-BLeqwXve.js → tree-n0-Yv6Oq.js} +0 -0
- /package/dist/{ui-CQsw5PPh.js → ui-C4SYLrHn.js} +0 -0
- /package/dist/{uploader-nV12FZ_U.js → uploader-DSBUHOEF.js} +0 -0
- /package/dist/{utilityBar-BCRqW4jk.js → utilityBar-BgOu4S_x.js} +0 -0
- /package/dist/{workflow-Cou_j4_8.js → workflow-Cy4leS9X.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CrudBrowserContainer-Dpgwjt7c.js","names":["uuid"],"sources":["../src/maintenanceEngine/crudBrowser/crudHelper.ts","../src/maintenanceEngine/crudBrowser/CrudTableColumnDefs.js","../src/maintenanceEngine/crudBrowser/CrudBrowserContainer.jsx"],"sourcesContent":["export function mapDotNetTypeToAgGridType(\n type: string\n): 'text' | 'number' | 'boolean' | 'dateString' | 'dateTimeString' | 'object' {\n const normalized = type.replace(/\\?$/, '').trim().toLowerCase();\n\n if (\n normalized === 'byte' ||\n normalized === 'short' ||\n normalized === 'int' ||\n normalized === 'long' ||\n normalized === 'float' ||\n normalized === 'double' ||\n normalized === 'decimal'\n ) {\n return 'number';\n }\n\n if (normalized === 'string' || normalized === 'guid') {\n return 'text';\n }\n\n if (normalized === 'bool' || normalized === 'boolean') {\n return 'boolean';\n }\n\n if (normalized === 'date') {\n return 'dateString';\n }\n\n if (normalized === 'datetime') {\n return 'dateTimeString';\n }\n\n if (normalized.startsWith('dictionary') || normalized === 'object') {\n return 'object';\n }\n\n // fallback default\n return 'text';\n}\n","import { toTitleCase } from '../../utilities/input/StringUtilities';\nimport { mapDotNetTypeToAgGridType } from './crudHelper';\n\nexport const CrudTableColumnDefs = (entityAttributes, actionList) => {\n let columnDefs =\n entityAttributes?.reduce((defs, element) => {\n //skip is hidden through maintenance config\n if (\n element?.extendedProperties?.udpFieldProperties?.maintenanceConfig\n ?.hidden === true\n ) {\n return defs;\n }\n //skip if business object key\n if (element?.name === 'businessObjectKey') {\n return defs;\n }\n\n if (!element?.extendedProperties?.childEntity) {\n const columnHeader =\n element?.extendedProperties?.udpFieldProperties?.displayName ||\n element?.name;\n\n const columnHeaderName = toTitleCase(columnHeader);\n const lookupId =\n element?.extendedProperties?.lookup ||\n element?.extendedProperties?.udpFieldProperties?.maintainenceConfig\n ?.lookup;\n\n let def = {\n headerName: columnHeaderName,\n field: element?.name.charAt(0).toLowerCase() + element?.name.slice(1),\n cellDataType: mapDotNetTypeToAgGridType(element?.type),\n filter: element?.extendedProperties?.searchable,\n sortable: element?.extendedProperties?.orderable,\n hide: element?.extendedProperties?.udpFieldProperties?.maintainenceConfig?.hidden,\n context: {\n lookupId: lookupId,\n ...element\n }\n };\n\n defs.push(def);\n }\n return defs;\n }, []) || [];\n\n columnDefs.push({\n headerName: 'Actions',\n field: 'actions',\n cellRenderer: 'actionsRenderer',\n cellRendererParams: {\n actionList: actionList\n }\n });\n\n return columnDefs;\n};\n","import React, { useMemo, useEffect, useCallback } from 'react';\nimport { CrudTableColumnDefs } from './CrudTableColumnDefs';\nimport { LookupEntitiesIcon } from '@fluentui/react-icons';\nimport { useTranslation } from 'react-i18next';\nimport { useHistory } from 'react-router-dom';\nimport { LookupTypeIdEnums, UdpEnums } from '../../enums/unitySystemEnums';\nimport { toTitleCase } from '../../utilities/input/StringUtilities';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { v4 as uuid } from 'uuid';\nimport { SearchMethodUdpGrid } from '../../UI/templates/newGrid/SearchMethodUdpGrid';\n\nconst GRID_ID = '4be3be45-1930-4ab9-b7b7-0c0fa3e30490';\n\nexport const CrudBrowserContainer = (props) => {\n const {\n actionList,\n onCreate,\n entityAttributes,\n foreignKeyData,\n promotedEntity,\n apiMethod,\n filterElements,\n setAlertWarnings,\n gridApiCallback,\n ...other\n } = props;\n\n const { t } = useTranslation();\n const history = useHistory();\n\n const entityName = useMemo(() => {\n return promotedEntity?.entityName;\n }, [promotedEntity]);\n\n const commonEntityName = useMemo(() => {\n if (!entityName) return '';\n return toTitleCase(getSanitizedName(entityName));\n }, [entityName]);\n\n const handleGoToTableBrowser = useCallback(() => {\n history.push({\n pathname: `/tableBrowser`\n });\n }, [history]);\n\n const secondaryActionButtons = useMemo(() => {\n return [\n {\n label: t('Table Browser'),\n iconName: 'arrowLeft16',\n onClick: handleGoToTableBrowser\n }\n ];\n }, [handleGoToTableBrowser, t]);\n\n const virtualActions = useMemo(() => {\n return [\n // Action for opening Virtual Configuration\n {\n id: 3,\n title: t('Open Virtual Table'),\n icon: LookupEntitiesIcon,\n loading: !!!foreignKeyData,\n onClick: (value) => {\n history.push({\n pathname: `/virtual/${value.id}`,\n search: `?entityName=${entityName}`,\n state: {\n value,\n promotedEntity,\n label: value.name\n }\n });\n },\n checkDisabled: (value) => value.typeId !== LookupTypeIdEnums.Lookup\n }\n ];\n }, [entityName, foreignKeyData, history, promotedEntity, t]);\n\n const jointActionList = useMemo(() => {\n if (!actionList || actionList?.length === 0) {\n return null;\n }\n // Check if it's a udp lookup entity\n if (\n getSanitizedName(entityName?.toLowerCase()) ===\n UdpEnums.Udp_Lookup.toLowerCase()\n ) {\n return [...actionList, ...virtualActions];\n }\n return [...actionList];\n }, [actionList, entityName, virtualActions]);\n\n const columnDefs = useMemo(() => {\n if (entityAttributes && jointActionList) {\n return CrudTableColumnDefs(entityAttributes, jointActionList);\n }\n }, [entityAttributes, jointActionList]);\n\n useEffect(() => {\n if (promotedEntity) {\n if (!promotedEntity?.unityBaseSearchMethod?.apiMethodId) {\n const searchMethodWarning = {\n id: uuid(),\n message: `${promotedEntity.entityName}'s Search method needs to be promoted`\n };\n setAlertWarnings &&\n setAlertWarnings((prevState) => [...prevState, searchMethodWarning]);\n }\n }\n }, [promotedEntity, setAlertWarnings]);\n\n const searchMethodConfig = useMemo(() => {\n return {\n apiMethodId: promotedEntity?.unityBaseSearchMethod?.apiMethodId,\n customSearchObject: filterElements\n };\n }, [promotedEntity?.unityBaseSearchMethod?.apiMethodId, filterElements]);\n\n const gridFunctions = useMemo(() => {\n return [\n { name: 'openSavedViews' },\n { name: 'agGridSizeColumnsToFit' },\n { name: 'agGridAutoSizeColumns' },\n { name: 'agGridResetColumns' },\n { name: 'agGridHideShowColumns' }\n ];\n }, []);\n\n return (\n <SearchMethodUdpGrid\n columnDefs={columnDefs}\n searchMethodConfig={searchMethodConfig}\n gridHeaderConfig={{\n title: commonEntityName,\n primaryActionButton: {\n label: 'Add',\n iconName: 'add',\n onClick: onCreate,\n },\n secondaryActionButtons: secondaryActionButtons\n }}\n gridId={GRID_ID}\n entityName={commonEntityName}\n gridOptions={{\n pagination: true,\n ...other\n }}\n gridApiCallback={gridApiCallback}\n gridFunctions={gridFunctions}\n />\n );\n};\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MenuPage-0qeyA5lF.js","names":[],"sources":["../src/menuPage/MenuPage.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useRef, useState } from 'react';\nimport { useHistory, useLocation, Prompt } from 'react-router-dom';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { makeStyles } from '@material-ui/core';\nimport { PageContainer } from '../page/PageContainer';\nimport { transformMenuPageTree } from '../utilities/tree/TreeUtilities';\nimport { BaseTreeMenu } from '../treeMenu/BaseTreeMenu';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useUser } from '../utilities/auth/useUser';\nimport { useShellStore } from '../stores/shellStore';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/EnvironmentRibbon';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flex: 1,\n minHeight: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n display: 'grid',\n gridTemplateAreas: ['sidebar content'].map((line) => `\"${line}\"`).join(' '),\n gridTemplateColumns: 'auto 1fr',\n gridTemplateRows: 'auto 1fr'\n },\n sidebar: {\n gridArea: 'sidebar',\n marginRight: theme.spacing(1)\n },\n content: {\n gridArea: 'content',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n zIndex: 1,\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n overflowY: 'auto'\n },\n menuContent: {\n marginTop: theme.spacing(1),\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 116}px)`,\n overflowX: 'hidden'\n },\n loader: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n }\n}));\n\nconst MenuPage = (props) => {\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const history = useHistory();\n const location = useLocation();\n const user = useUser();\n const { t } = useTranslation();\n const setLocationState = useSetLocationState();\n\n const [menuItemsList, setMenuItemsList] = useState([]); // holds a list of trees\n const [selectedNode, setSelectedNode] = useState(null);\n const [sidebarExpanded, setSidebarExpanded] = useState(true);\n const [hasUnsavedChanges, setHasUnsavedChanges] = useState(false);\n // Just the menuInstanceId for an inner menu\n const innerMenuId = location.pathname.replace('/menupage/', '');\n\n const prevInnerMenuId = useRef(innerMenuId);\n\n const [{ data: innerMenu, loading: menuLoading }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `menus/${innerMenuId}`,\n {},\n !innerMenuId,\n false\n );\n\n const { setSubHeaderActionHasChildren, setNavigationExpanded } =\n useShellStore();\n\n const [{ data: pageData, loading: pageLoading, error: pageError }] =\n useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${selectedNode?.properties?.page?.id}`,\n {},\n !selectedNode?.properties?.page?.id,\n false\n );\n\n const handleSelectedNode = useCallback(\n (node, menuIndex) => {\n const searchParams = new URLSearchParams(location.search);\n searchParams.set('page', node.id);\n\n history.push({\n pathname: location.pathname,\n search: searchParams.toString()\n });\n setSelectedNode(node);\n setHasUnsavedChanges(false);\n },\n [history, location]\n );\n\n const handleDropNode = useCallback(\n (sourceNode, targetNode, sourceNodeMenuIndex, targetNodeMenuIndex) => {\n // TODO: Implement if we need to for next Phase\n },\n []\n );\n\n const handleSidebarExpandClick = useCallback(() => {\n setSidebarExpanded((expanded) => !expanded);\n }, []);\n\n const findNodeById = useCallback((node, id) => {\n if (!node) return null;\n if (node.id.toString() === id) return node;\n if (node.children) {\n for (const child of node.children) {\n const found = findNodeById(child, id);\n if (found) return found;\n }\n }\n return null;\n }, []);\n\n useEffect(() => {\n const searchParams = new URLSearchParams(location.search);\n const pageId = searchParams.get('page');\n if (pageId && menuItemsList.length > 0) {\n // Search all root menu trees for the node\n let node = null;\n for (const tree of menuItemsList) {\n node = findNodeById(tree, pageId);\n if (node) break;\n }\n if (node && node.id !== selectedNode?.id) {\n setSelectedNode(node);\n setHasUnsavedChanges(false);\n }\n }\n }, [location.search, menuItemsList, findNodeById, selectedNode]);\n\n useEffect(() => {\n const mainPageIdChanged = prevInnerMenuId.current !== innerMenuId;\n\n if (innerMenu) {\n const list = [];\n innerMenu.menuItemInstanceStructureViews.forEach((menuInstance) => {\n const updatedMenu = transformMenuPageTree(menuInstance);\n if (updatedMenu) {\n list.push(updatedMenu);\n }\n });\n setMenuItemsList(list);\n\n // Find the node matching the current page param\n const searchParams = new URLSearchParams(location.search);\n const pageId = searchParams.get('page');\n let nodeToSelect = null;\n\n if (pageId && list.length > 0) {\n // Try to find the node with this id\n for (const tree of list) {\n nodeToSelect = findNodeById(tree, pageId);\n if (nodeToSelect) break;\n }\n }\n\n // If we found a node, select it. If not, select the first node.\n if (nodeToSelect) {\n setSelectedNode(nodeToSelect);\n setHasUnsavedChanges(false);\n setNavigationExpanded(false);\n } else if (list.length > 0) {\n // No valid page param, select first node and update URL\n const firstNode = list[0];\n searchParams.set('page', firstNode.id);\n history.replace({\n pathname: location.pathname,\n search: searchParams.toString()\n });\n setSelectedNode(firstNode);\n setHasUnsavedChanges(false);\n setNavigationExpanded(false);\n }\n }\n prevInnerMenuId.current = innerMenuId;\n }, [\n innerMenu,\n setNavigationExpanded,\n history,\n location,\n innerMenuId,\n findNodeById\n ]);\n\n useEffect(() => {\n setSubHeaderActionHasChildren(false);\n }, [setSubHeaderActionHasChildren]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n if (innerMenu) {\n setLocationState({ label: t(innerMenu?.name) });\n }\n }, [setLocationState, t, innerMenu]);\n\n return (\n <DndProvider backend={HTML5Backend}>\n <Prompt\n when={hasUnsavedChanges}\n message='You have unsaved changes. Are you sure you want to leave this page?'\n />\n <div className={classes.root}>\n <div className={classes.sidebar}>\n <UtilitySideBar\n title={innerMenu?.name}\n isUsingChildren={true}\n resizable={true}\n removePadding={true}\n removeTopLayoutUnit={true}\n onUtilitySidebarToggleExpandClick={handleSidebarExpandClick}\n collapsedWidth={64}\n >\n <div className={classes.menuContent} key={innerMenuId}>\n {menuItemsList?.length > 0 &&\n !menuLoading &&\n menuItemsList.map((menuItems, index) => (\n <div key={menuItems.id} className={classes.nodeContainer}>\n <BaseTreeMenu\n menuItems={menuItems}\n onSelectNode={handleSelectedNode}\n onDropNode={handleDropNode}\n menuIndex={index}\n selectedNodeId={selectedNode?.id}\n selectedNodeParentId={selectedNode?.parentId}\n sidebarExpanded={sidebarExpanded}\n treeViewMode={TreeViewModeEnums.Classic}\n />\n </div>\n ))}\n {menuLoading && (\n <div className={classes.loader}>\n <NodeLoader loading={menuLoading} />\n </div>\n )}\n </div>\n </UtilitySideBar>\n </div>\n <div className={classes.content}>\n {selectedNode?.properties?.page?.id && (\n <PageContainer\n user={user}\n key={selectedNode?.id}\n pageData={pageData}\n pageLoading={pageLoading}\n widgetParams={{\n pageId: pageData?.pageId,\n entityName: selectedNode?.properties?.page?.entity?.entityName,\n pbiReportCode: selectedNode?.properties?.page?.pbiReportCode,\n requiredFieldsMap:\n selectedNode?.properties?.page?.requiredFieldMapping,\n udpTagId: selectedNode?.properties?.page?.udpTagId,\n queryId: selectedNode?.properties?.page?.queryId,\n inquiryTreeId: selectedNode?.properties?.page?.inquiryTreeId,\n setHasUnsavedChanges: setHasUnsavedChanges\n }}\n disableMargins={true}\n fromMenu={true}\n />\n )}\n </div>\n </div>\n </DndProvider>\n );\n};\n\nexport default MenuPage;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UdpMaintenanceConfigPage-yuotrI0g.js","names":[],"sources":["../src/udp/pages/UdpMaintenanceConfigPage.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState, useMemo } from 'react';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { useAuthedUser } from '../../utilities/auth/useAuthedUser';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useHistory } from 'react-router-dom';\nimport { PageLoading } from '../../UI/feedback/PageLoading';\nimport { useTranslation } from 'react-i18next';\nimport { ClientSideUdpGrid } from '../../UI/templates/newGrid/ClientSideUdpGrid';\n\nconst UdpMaintenanceConfigPage = (props) => {\n const [apiCatalogId, setApiCatalogId] = useState(null);\n const user = useAuthedUser();\n const history = useHistory();\n const { t } = useTranslation();\n\n /* #region API Methods */\n\n const [{ data: tpacb, loading: loadingTpacb, error: tpacbError }] =\n useAxiosGet(\n process.env.REACT_APP_INTEGRATION_API_BASE,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${process.env.REACT_APP_UNITY_PRODUCT_ID}`,\n {},\n !!!user,\n false\n );\n\n const [\n {\n data: promotedGetConfigApi,\n loading: loadingPromotedGetConfigApi,\n error: promotedGetConfigApiError\n }\n ] = useAxiosGet(\n process.env.REACT_APP_INTEGRATION_API_BASE,\n `apicatalog/${apiCatalogId}/promotedConfigEntity/product/${process.env.REACT_APP_UNITY_PRODUCT_ID}`,\n {},\n !!!apiCatalogId,\n false\n );\n\n const [\n {\n data: tableConfigList,\n loading: tableConfigListLoading,\n error: tableConfigListError\n },\n fetchTableConfigList\n ] = useAxiosMutate(\n process.env.REACT_APP_INTEGRATION_API_BASE,\n `apimethod/executeQueryWithParameters/${promotedGetConfigApi?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const [{ data: promotedMethods, loading, error }] = useAxiosGet(\n process.env.REACT_APP_INTEGRATION_API_BASE,\n `apicatalog/${apiCatalogId}/promotedMethodEntities?productId=${process.env.REACT_APP_UNITY_PRODUCT_ID}`,\n {},\n !!!apiCatalogId,\n false\n );\n\n /* #endregion */\n\n const rowData = useMemo(() => {\n if (!promotedMethods || !tableConfigList) {\n return [];\n }\n let tmp = [];\n if (Array.isArray(tableConfigList)) {\n tmp = tableConfigList;\n } else {\n // eslint-disable-next-line no-unused-vars\n for (const [key, value] of Object.entries(tableConfigList)) {\n tmp.push(`${key}`);\n }\n }\n\n const result = tmp.reduce((mergedData, tableConfig) => {\n const matchingEntityRow = promotedMethods.find(\n (promotedEntity) =>\n promotedEntity.entityName === getSanitizedName(tableConfig)\n );\n if (matchingEntityRow) {\n mergedData.push(matchingEntityRow);\n } else {\n const placeholderData = {\n entityName: tableConfig,\n productId: process.env.REACT_APP_UNITY_PRODUCT_ID,\n unityBaseGetAllMethod: null,\n unityBaseGetMethod: null,\n unityBaseCreateMethod: null,\n unityBaseUpdateMethod: null,\n unityBaseDeleteMethod: null\n };\n mergedData.push(placeholderData);\n }\n return mergedData;\n }, []);\n return result;\n }, [promotedMethods, tableConfigList]);\n\n const handleOpenEntityMaintenancePage = useCallback(\n (selectedEntity) => {\n history.push(`/crudbrowser`, {\n entityName: getSanitizedName(selectedEntity?.entityName),\n apiCatalogId: apiCatalogId\n });\n },\n [history, apiCatalogId]\n );\n\n const actionList = useMemo(\n () => [\n {\n id: 0,\n title: t('View table data'),\n iconName: 'arrowRight16',\n handleOnClick: (e, params) => handleOpenEntityMaintenancePage(params?.data),\n disabled: false\n }\n ],\n [handleOpenEntityMaintenancePage, t]\n );\n\n const columnDefs = useMemo(() => {\n return [\n {\n headerName: 'Entity Name',\n field: 'entityName',\n valueGetter: (params) =>\n params.data?.properties?.displayName ||\n params.data?.sanitizedName ||\n getSanitizedName(params.data?.entityName),\n },\n {\n headerName: 'Actions',\n field: 'actions',\n cellRenderer: 'actionsRenderer',\n cellRendererParams: {\n actionList: actionList\n }\n }\n ];\n }, [actionList]);\n\n useEffect(() => {\n if (tpacb) {\n setApiCatalogId(tpacb.apiCatalogId);\n }\n }, [tpacb]);\n\n useEffect(() => {\n if (promotedGetConfigApi?.apiMethodId) {\n fetchTableConfigList({ data: {} });\n }\n }, [fetchTableConfigList, promotedGetConfigApi]);\n\n if (loadingTpacb || loadingPromotedGetConfigApi || tableConfigListLoading) {\n return <PageLoading />;\n }\n\n if (tpacbError) {\n return (\n <div>\n {t('There is no Api Catalog associated with your tenant and product')}\n </div>\n );\n }\n\n if (promotedGetConfigApiError) {\n return (\n <div>\n {t(\n 'Please promote your get configuration tables method before proceeding'\n )}\n </div>\n );\n }\n\n if (tableConfigListError) {\n return <div>{t('No configuration tables could be found')}</div>;\n }\n\n return (\n <ClientSideUdpGrid\n rowData={rowData}\n columnDefs={columnDefs}\n gridHeaderConfig={{ title: 'Table Browser' }}\n />\n );\n};\n\nexport default UdpMaintenanceConfigPage;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UdpMaintenanceEnginePage-o40sezly.js","names":["apiMutate","entityName","uuid","params"],"sources":["../src/udp/pages/UdpMaintenanceEnginePage.jsx"],"sourcesContent":["import React, { useEffect, useState, useMemo, useCallback, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { CrudBrowserContainer } from '../../maintenanceEngine/crudBrowser/CrudBrowserContainer';\nimport { CrudTableSidePanel } from '../../maintenanceEngine/crudBrowser/CrudTableSidePanel';\nimport {\n getEntityAttributes,\n getPathObject,\n getPrimaryKeyValues\n} from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport {\n toLowerFirstChar,\n toUpperFirstChar\n} from '../../utilities/input/StringUtilities';\nimport {\n CardinalityTypeEnums,\n EntityAttributeEnums,\n UdpEnums\n} from '../../enums/unitySystemEnums';\nimport { executeQueryAdHoc } from '../utilities/methodUtils';\nimport { getSearchObject } from '../../utilities/search/SearchUtilities';\nimport { useApiCatalog } from '../../hooks/useApiCatalog';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { Alert } from '@material-ui/lab';\nimport { v4 as uuid } from 'uuid';\nimport { useLocation } from 'react-router-dom';\nimport { TagEnums } from '../../enums/tagEnums';\nimport { ConfigService } from 'udp-react-stencil-component-library';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { FluentDialog } from '../../UI/feedback/FluentDialog';\nimport { useCatalogStore } from '../../stores/catalogStore';\nimport { useHistory } from 'react-router-dom';\n\nexport const UdpMaintenanceEnginePage = (props) => {\n const { catalogKey, params } = props;\n const { t } = useTranslation();\n const [udpFieldInfos, setUdpFieldInfos] = useState([]);\n const [alertWarnings, setAlertWarnings] = useState([]);\n const gridApiRef = useRef(null);\n const [modalConfig, setModalConfig] = useState({ type: null, data: null });\n const location = useLocation();\n const state = location.state;\n const history = useHistory();\n let searchParamStr = location.search;\n let searchParams = new URLSearchParams(searchParamStr);\n const searchParamsEntityName = state?.entityName\n ? state.entityName\n : searchParams.has('entityName') === true\n ? toUpperFirstChar(searchParams.get('entityName'))\n : '';\n\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const handleGoToTableBrowser = useCallback(() => {\n history.push({\n pathname: `/tableBrowser`\n });\n }, [history]);\n\n const udpCatalogKey = useMemo(() => {\n if (params?.entityName || catalogKey || searchParamsEntityName) {\n return params?.entityName || catalogKey || searchParamsEntityName;\n } else {\n handleGoToTableBrowser();\n }\n }, [\n params?.entityName,\n catalogKey,\n searchParamsEntityName,\n handleGoToTableBrowser\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 [entityName, setEntityName] = useState(null);\n\n const { currentApiCatalogId } = useCatalogStore();\n\n const { data: catalog } = useApiCatalog(currentApiCatalogId);\n\n const { data: udpObjectFieldInfo } = usePromotedMethodEntity(\n 'UdpObjectFieldInfo',\n true\n );\n\n const { data: promotedMethodEntities } = usePromotedMethodEntity(\n udpCatalogKey,\n true\n );\n\n // 2. MODAL HANDLERS: Callbacks to open and close modals/sheets.\n const openModal = useCallback((type, data = null) => {\n setModalConfig({ type, data });\n }, []);\n\n const closeModal = useCallback(() => {\n setModalConfig({ type: null, data: null });\n }, []);\n\n //------- CRUD operations--------\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 const searchFilterElements = useMemo(() => {\n const filterElements = [];\n if (udpTagId) {\n filterElements.push({\n searchField: 'UdpTags.UdpTagAssociationUdpTag.Id',\n searchOperator: '=',\n searchValue: udpTagId\n });\n }\n return filterElements;\n }, [udpTagId]);\n\n const entityAttributes = useMemo(() => {\n if (udpFieldInfos?.length > 0 && catalog && entityName) {\n // 1. Get original attributes from catalog\n const originalAttributes = getEntityAttributes(catalog, entityName);\n const attributeMap = new Map(\n originalAttributes.map((attr) => [attr.name.toLowerCase(), attr])\n );\n\n // 2. Create the sorted list by iterating through udpFieldInfos\n const sortedPart = udpFieldInfos\n .map((field) => {\n const match = attributeMap.get(field.name.toLowerCase());\n if (match) {\n // Merge properties as we build the sorted list\n return {\n ...match,\n extendedProperties: {\n ...match.extendedProperties,\n udpFieldProperties: field.properties\n }\n };\n }\n return null;\n })\n .filter(Boolean);\n\n // 3. Find unmatched items in a single pass\n const udpFieldNames = new Set(\n udpFieldInfos.map((f) => f.name.toLowerCase())\n );\n const unmatchedPart = originalAttributes.filter(\n (attr) => !udpFieldNames.has(attr.name.toLowerCase())\n );\n\n // 4. Combine the sorted, merged part with the original unmatched part\n return [...sortedPart, ...unmatchedPart];\n }\n }, [catalog, entityName, udpFieldInfos]);\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: getSanitizedName(entityName)\n }\n ];\n const requestObj = getSearchObject(filterElements, 1, 50, true);\n\n await 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 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/${currentApiCatalogId}/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 [currentApiCatalogId]\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: `${method.entity.entityName}'s Get-All method needs to be promoted`\n });\n }\n }\n setAlertWarnings((existingWarnings) => [...existingWarnings, ...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\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 promiseDetail?.associationLabel\n ? toLowerFirstChar(promiseDetail.associationLabel)\n : 'name'\n );\n\n respData.push({ id: id, name: name ?? id });\n });\n\n if (!!promiseDetail) {\n fkData.push({\n fieldName: promiseDetail.fieldName,\n entityName: promiseDetail.name,\n name: promiseDetail.fieldName,\n data: respData\n });\n }\n }\n }\n });\n setForeignKeyData(fkData);\n });\n }, [entityAttributes, getFKMethodEntities, getFKAssociationLabel]);\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(`${entityName} has been created`)\n : t(`Entity has been created`)\n );\n gridApiRef.current.refreshServerSide();\n closeModal('create');\n return response;\n }\n } else {\n handleErrorSnackbar(\n null,\n selectedEntity.entityName + \"'s create method must be promoted\"\n );\n }\n }\n },\n [selectedEntity, onCreate, handleErrorSnackbar, handleSuccessSnackbar, t, closeModal]\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(`${entityName} has been updated`)\n : t(`Entity has been updated`)\n );\n\n gridApiRef.current.refreshServerSide();\n closeModal('edit');\n }\n }\n }\n },\n [selectedEntity, onUpdate, handleErrorSnackbar, handleSuccessSnackbar, t, closeModal]\n );\n\n const handleOnDelete = useCallback(\n async (value) => {\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(`${entityName} has been deleted`)\n : t(`Entity has been deleted`)\n );\n gridApiRef.current.refreshServerSide();\n closeModal('delete');\n }\n }\n }\n },\n [selectedEntity, entityAttributes, onDelete, handleErrorSnackbar, handleSuccessSnackbar, t, closeModal]\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 const shouldDisableAction = useCallback(\n (value) => {\n const sanitizedEntityName = getSanitizedName(entityName);\n const tagTypeShouldDisableEdit =\n [TagEnums.TagTypeSanitizedName.toLowerCase()].includes(\n sanitizedEntityName?.toLowerCase()\n ) && !value?.[toLowerFirstChar(EntityAttributeEnums.User_Defined)];\n\n const shortCutContentShouldDisableEdit =\n [UdpEnums.Udp_Shortcut_Content.toLowerCase()].includes(\n sanitizedEntityName?.toLowerCase()\n ) &&\n value?.[\n toLowerFirstChar(EntityAttributeEnums.Is_Product_ShortcutContent)\n ];\n\n const lookupShouldDisableEdit =\n [UdpEnums.Udp_Lookup.toLowerCase()].includes(\n sanitizedEntityName?.toLowerCase()\n ) && value?.[toLowerFirstChar(EntityAttributeEnums.Is_Product_Lookup)];\n return (\n tagTypeShouldDisableEdit ||\n shortCutContentShouldDisableEdit ||\n lookupShouldDisableEdit\n );\n },\n [entityName]\n );\n\n const actionList = useMemo(() => {\n if (!selectedEntity) {\n return [];\n }\n\n return [\n {\n id: 'edit',\n iconName: 'edit', // Pass string name for the icon\n getTitle: () =>\n // Use getTitle for dynamic text\n selectedEntity?.unityBaseUpdateMethod\n ? t('Edit')\n : t('Edit Method Not Accessible'),\n handleOnClick: (e, params) => {\n openModal('edit', params.data); // Calls parent state handler\n },\n checkDisabled: (params) =>\n !!!selectedEntity?.unityBaseUpdateMethod ||\n shouldDisableAction(params.data)\n },\n {\n id: 'delete',\n iconName: 'trashCan', // Pass string name for the icon\n getTitle: () =>\n selectedEntity?.unityBaseDeleteMethod\n ? t('Delete')\n : t('Delete Method Not Accessible'),\n handleOnClick: (e, params) => {\n openModal('delete', params.data); // Calls parent state handler\n },\n checkDisabled: (params) =>\n !!!selectedEntity?.unityBaseDeleteMethod ||\n shouldDisableAction(params.data)\n }\n ];\n }, [selectedEntity, t, shouldDisableAction, openModal]);\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 setEntityName(promotedMethodEntities?.entityName);\n }\n }, [promotedMethodEntities]);\n\n useEffect(() => {\n if (udpObjectFieldInfo) {\n if (udpObjectFieldInfo?.unityBaseSearchMethod?.apiMethodId) {\n setUdpFieldSearchApiId(\n udpObjectFieldInfo?.unityBaseSearchMethod?.apiMethodId\n );\n } else {\n setUdpFieldSearchApiId('');\n const udpFieldWarning = {\n id: uuid(),\n message: `UdpObjectFieldInfo method needs to be promoted`\n };\n setAlertWarnings((prevState) => [...prevState, udpFieldWarning]);\n }\n }\n }, [udpObjectFieldInfo]);\n\n useEffect(() => {\n const setFieldInfos = async () => {\n let temp = await getMetaDataForUdpField(entityName);\n setUdpFieldInfos(temp);\n };\n if (udpFieldSearchApiId) {\n setFieldInfos();\n }\n }, [\n udpObjectFieldInfo,\n getMetaDataForUdpField,\n udpFieldSearchApiId,\n entityName\n ]);\n\n const handleGridApiCallback = (api) => {\n gridApiRef.current = api;\n };\n\n return (\n <>\n {alertWarnings.map((warning) => (\n <Alert\n key={warning.id}\n onClose={() => removeWarning(warning.id)}\n severity='warning'\n >\n {warning.message || ''}\n </Alert>\n ))}\n <CrudBrowserContainer\n actionList={actionList}\n onCreate={() => openModal('create')}\n entityAttributes={entityAttributes}\n foreignKeyData={foreignKeyData}\n promotedEntity={selectedEntity}\n apiMethod={{ currentApiCatalogId, entityName }}\n filterElements={searchFilterElements}\n setAlertWarnings={setAlertWarnings}\n gridApiCallback={handleGridApiCallback}\n />\n <SideSheet\n open={modalConfig.type === 'create' || modalConfig.type === 'edit'}\n onClose={closeModal}\n title={\n modalConfig.type === 'create'\n ? `Add New ${entityName}`\n : `Edit ${entityName}`\n }\n width={600}\n >\n {(modalConfig.type === 'create' || modalConfig.type === 'edit') && (\n <CrudTableSidePanel\n entityAttributes={entityAttributes}\n udpFieldInfos={udpFieldInfos}\n foreignKeyData={foreignKeyData}\n closeSideSheet={closeModal}\n isNewEntry={modalConfig.type === 'create'}\n entityName={entityName}\n onCreate={\n modalConfig.type === 'create' ? handleOnCreate : undefined\n }\n onUpdate={modalConfig.type === 'edit' ? handleOnUpdate : undefined}\n crudTableEditionData={\n modalConfig.type === 'edit' ? modalConfig.data : null\n }\n pageId={\n modalConfig.type === 'edit'\n ? selectedEntity?.unityBaseUpdateMethod?.pageId\n : selectedEntity?.unityBaseCreateMethod?.pageId\n }\n />\n )}\n </SideSheet>\n <FluentDialog\n open={modalConfig.type === 'delete'}\n handleClose={closeModal}\n title={t('Delete')}\n message={t('Are you sure you want to delete this row?')}\n actionOne={closeModal}\n labelOne={t('Cancel')}\n actionTwo={() => handleOnDelete(modalConfig.data)}\n labelTwo={t('Confirm')}\n />\n </>\n );\n};\n\nexport default UdpMaintenanceEnginePage;\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"UtilitySideBar-DlCvljVV.js","names":["expanded"],"sources":["../src/UI/utilityDisplay/UtilitySideBar.jsx"],"sourcesContent":["import React, { useState, useEffect, useCallback } from 'react';\nimport { makeStyles, Typography, useTheme } from '@material-ui/core';\nimport { AmbientCard } from '../surfaces/cards/AmbientCard';\nimport { SidebarCollapseButton } from '../../shell/ui/SidebarCollapseButton';\nimport { UtilityBarInportTarget } from '../../utilities/utilityBar/UtilityBarInport';\nimport { ResizableBox } from 'react-resizable';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../../shell/ui/EnvironmentRibbon';\n\nconst EXPANDED_WIDTH = 288;\nconst COLLAPSED_WIDTH = 78;\nconst MAX_WIDTH = 700;\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n paddingTop: (props) =>\n props.removePadding || props.sidebarHidden ? 0 : 40,\n overflow: 'hidden',\n height: '100%'\n },\n titleWrapper: {\n display: (props) => (props.hideTitleBar ? 'none' : 'flex'),\n width: '100%',\n paddingLeft: theme.spacing(1)\n },\n button: {\n marginTop: -8\n },\n title: {\n flex: 1,\n width: '100%',\n marginTop: 8\n },\n expandedWidth: {\n width: 288\n },\n handle: {\n top: 0,\n right: theme.spacing(-0.75),\n width: theme.spacing(0.75),\n zIndex: 10000,\n height: 'calc(100vh - 56px)',\n display: 'inline-block',\n position: 'absolute',\n '&:hover': {\n cursor: 'col-resize'\n }\n }\n}));\n\nexport const UtilitySideBar = (props) => {\n const {\n onUtilitySidebarToggleExpandClick,\n resizable,\n title,\n utilitySidebarToggleOverride,\n isUsingChildren = false,\n removeTopLayoutUnit = false,\n collapsedWidth,\n children,\n sidebarHidden,\n handleResize = null,\n hideTitleBar\n } = props;\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const [expanded, setExpanded] = useState(true);\n const [width, setWidth] = useState(EXPANDED_WIDTH);\n const _collapsedWidth = collapsedWidth ?? COLLAPSED_WIDTH;\n\n const theme = useTheme();\n\n const onResize = (event, { element, size, handle }) => {\n setWidth(size.width);\n if (handleResize) {\n handleResize(size.width);\n }\n };\n\n const handleToggleClick = useCallback(() => {\n if (onUtilitySidebarToggleExpandClick) {\n onUtilitySidebarToggleExpandClick();\n }\n setExpanded((expanded) => !expanded);\n }, [onUtilitySidebarToggleExpandClick]);\n\n useEffect(() => {\n if (typeof utilitySidebarToggleOverride === 'boolean') {\n setExpanded(utilitySidebarToggleOverride);\n }\n }, [utilitySidebarToggleOverride]);\n return (\n <ResizableBox\n width={expanded ? width : _collapsedWidth}\n resizeHandles={resizable && expanded ? ['e'] : []}\n axis='x'\n minConstraints={expanded ? [EXPANDED_WIDTH] : [_collapsedWidth]}\n maxConstraints={[MAX_WIDTH]}\n onResize={onResize}\n handle={expanded && <div className={classes.handle} />}\n style={{ position: 'relative' }}\n >\n <div\n className={classes.root}\n style={{ width: expanded ? width : _collapsedWidth }}\n >\n <AmbientCard\n fullWidth\n removePadding\n lastChildBottomPadding={12}\n removeTopLayoutUnit={removeTopLayoutUnit || sidebarHidden}\n >\n <div\n style={{\n display: hideTitleBar ? 'none' : 'flex',\n width: '100%',\n paddingLeft: theme.spacing(1)\n }}\n >\n <div className={classes.title}>\n {expanded && <Typography variant='h6'> {title} </Typography>}\n </div>\n <div className={classes.button}>\n <SidebarCollapseButton\n id={'udpRecord-UtilitySideBar'}\n udprecordid={'udpRecord-UtilitySideBar'}\n expanded={expanded}\n onClick={handleToggleClick}\n />\n </div>\n </div>\n {!isUsingChildren && <UtilityBarInportTarget />}\n {isUsingChildren && children}\n </AmbientCard>\n </div>\n </ResizableBox>\n );\n};\n"],"mappings":";;;;;;;;;AAWA,MAAM,iBAAiB;AACvB,MAAM,kBAAkB;AACxB,MAAM,YAAY;AAElB,MAAM,YAAY,YAAY,WAAW;CACvC,MAAM;EACJ,aAAa,UACX,MAAM,iBAAiB,MAAM,gBAAgB,IAAI;EACnD,UAAU;EACV,QAAQ;EACT;CACD,cAAc;EACZ,UAAU,UAAW,MAAM,eAAe,SAAS;EACnD,OAAO;EACP,aAAa,MAAM,QAAQ,EAAE;EAC9B;CACD,QAAQ,EACN,WAAW,IACZ;CACD,OAAO;EACL,MAAM;EACN,OAAO;EACP,WAAW;EACZ;CACD,eAAe,EACb,OAAO,KACR;CACD,QAAQ;EACN,KAAK;EACL,OAAO,MAAM,QAAQ,KAAM;EAC3B,OAAO,MAAM,QAAQ,IAAK;EAC1B,QAAQ;EACR,QAAQ;EACR,SAAS;EACT,UAAU;EACV,WAAW,EACT,QAAQ,cACT;EACF;CACF,EAAE;AAEH,MAAa,kBAAkB,UAAU;CACvC,MAAM,EACJ,mCACA,WACA,OACA,8BACA,kBAAkB,OAClB,sBAAsB,OACtB,gBACA,UACA,eACA,eAAe,MACf,iBACE;CACJ,MAAM,WAAW,qBAAqB;CACtC,MAAM,UAAU,UAAU;EACxB,GAAG;EACH,iBAAiB,WAAW,mBAAmB;EAChD,CAAC;CACF,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAC9C,MAAM,CAAC,OAAO,YAAY,SAAS,eAAe;CAClD,MAAM,kBAAkB,kBAAkB;CAE1C,MAAM,QAAQ,UAAU;CAExB,MAAM,YAAY,OAAO,EAAE,SAAS,MAAM,aAAa;AACrD,WAAS,KAAK,MAAM;AACpB,MAAI,aACF,cAAa,KAAK,MAAM;;CAI5B,MAAM,oBAAoB,kBAAkB;AAC1C,MAAI,kCACF,oCAAmC;AAErC,eAAa,eAAa,CAACA,WAAS;IACnC,CAAC,kCAAkC,CAAC;AAEvC,iBAAgB;AACd,MAAI,OAAO,iCAAiC,UAC1C,aAAY,6BAA6B;IAE1C,CAAC,6BAA6B,CAAC;AAClC,QACE,oCAAC;EACC,OAAO,WAAW,QAAQ;EAC1B,eAAe,aAAa,WAAW,CAAC,IAAI,GAAG,EAAE;EACjD,MAAK;EACL,gBAAgB,WAAW,CAAC,eAAe,GAAG,CAAC,gBAAgB;EAC/D,gBAAgB,CAAC,UAAU;EACjB;EACV,QAAQ,YAAY,oCAAC,SAAI,WAAW,QAAQ,SAAU;EACtD,OAAO,EAAE,UAAU,YAAY;IAE/B,oCAAC;EACC,WAAW,QAAQ;EACnB,OAAO,EAAE,OAAO,WAAW,QAAQ,iBAAiB;IAEpD,oCAAC;EACC;EACA;EACA,wBAAwB;EACxB,qBAAqB,uBAAuB;IAE5C,oCAAC,SACC,OAAO;EACL,SAAS,eAAe,SAAS;EACjC,OAAO;EACP,aAAa,MAAM,QAAQ,EAAE;EAC9B,IAED,oCAAC,SAAI,WAAW,QAAQ,SACrB,YAAY,oCAAC,cAAW,SAAQ,QAAK,KAAE,OAAM,IAAc,CACxD,EACN,oCAAC,SAAI,WAAW,QAAQ,UACtB,oCAAC;EACC,IAAI;EACJ,aAAa;EACH;EACV,SAAS;GACT,CACE,CACF,EACL,CAAC,mBAAmB,oCAAC,6BAAyB,EAC9C,mBAAmB,SACR,CACV,CACO"}
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|