udp-react-enterprise-component-library 25.18.1-beta.70 → 25.18.1-beta.72
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/{ActionProvider-DGzli-X1.js → ActionProvider-BGugOmjV.js} +2 -2
- package/dist/{ActionProvider-DGzli-X1.js.map → ActionProvider-BGugOmjV.js.map} +1 -1
- package/dist/{ActionSplitScreen-gKH4ISoo.js → ActionSplitScreen-D6_7PlK-.js} +4 -4
- package/dist/{ActionSplitScreen-gKH4ISoo.js.map → ActionSplitScreen-D6_7PlK-.js.map} +1 -1
- package/dist/{ActionWrapper-Bpp9Mn4j.js → ActionWrapper-DnP7lGDq.js} +4 -4
- package/dist/{ActionWrapper-Bpp9Mn4j.js.map → ActionWrapper-DnP7lGDq.js.map} +1 -1
- package/dist/{AmbientCard-CLW4bPCu.js → AmbientCard-DhAiVDYD.js} +2 -2
- package/dist/{AmbientCard-CLW4bPCu.js.map → AmbientCard-DhAiVDYD.js.map} +1 -1
- package/dist/{AmbientVisualizationCard-CAxx4QWe.js → AmbientVisualizationCard-CivQRhmD.js} +4 -4
- package/dist/{AmbientVisualizationCard-CAxx4QWe.js.map → AmbientVisualizationCard-CivQRhmD.js.map} +1 -1
- package/dist/{AmbientVisualizer-BABKxgsK.js → AmbientVisualizer-buICwVdO.js} +2 -2
- package/dist/{AmbientVisualizer-BABKxgsK.js.map → AmbientVisualizer-buICwVdO.js.map} +1 -1
- package/dist/{BioCardWrapper-B2bT-4zw.js → BioCardWrapper-D1ZOHyA4.js} +3 -3
- package/dist/{BioCardWrapper-B2bT-4zw.js.map → BioCardWrapper-D1ZOHyA4.js.map} +1 -1
- package/dist/{CrudTableSidePanel-CNEZxJi0.js → CrudTableSidePanel-Dw8gZSqR.js} +2 -2
- package/dist/{CrudTableSidePanel-CNEZxJi0.js.map → CrudTableSidePanel-Dw8gZSqR.js.map} +1 -1
- package/dist/{DashboardWidget-CsOrr74H.js → DashboardWidget-D3HStfJA.js} +26 -10
- package/dist/DashboardWidget-D3HStfJA.js.map +1 -0
- package/dist/{DataBrowserContainer-cU_EEIiR.js → DataBrowserContainer-D4gJ66IC.js} +2 -2
- package/dist/{DataBrowserContainer-cU_EEIiR.js.map → DataBrowserContainer-D4gJ66IC.js.map} +1 -1
- package/dist/{DynamicRangeSlider-prr4fg8d.js → DynamicRangeSlider-BX4kCzUd.js} +2 -2
- package/dist/{DynamicRangeSlider-prr4fg8d.js.map → DynamicRangeSlider-BX4kCzUd.js.map} +1 -1
- package/dist/{EmailDisplay-Dm8ynSko.js → EmailDisplay-DZHmPeiL.js} +2 -2
- package/dist/{EmailDisplay-Dm8ynSko.js.map → EmailDisplay-DZHmPeiL.js.map} +1 -1
- package/dist/{ExportSidesheet-DWkoiwxC.js → ExportSidesheet-BQiNzxN9.js} +4 -4
- package/dist/{ExportSidesheet-DWkoiwxC.js.map → ExportSidesheet-BQiNzxN9.js.map} +1 -1
- package/dist/{FieldArrayCard-Ds_ysYWL.js → FieldArrayCard-sEe2pmg7.js} +3 -3
- package/dist/{FieldArrayCard-Ds_ysYWL.js.map → FieldArrayCard-sEe2pmg7.js.map} +1 -1
- package/dist/{FluentListItem-_Nq3fhEY.js → FluentListItem-1fzW--Dq.js} +2 -2
- package/dist/{FluentListItem-_Nq3fhEY.js.map → FluentListItem-1fzW--Dq.js.map} +1 -1
- package/dist/{GraphCard-BhcSveF4.js → GraphCard-Bdh6VeDb.js} +2 -2
- package/dist/{GraphCard-BhcSveF4.js.map → GraphCard-Bdh6VeDb.js.map} +1 -1
- package/dist/{ImportDataFromFileMapping-3XXgUR-Z.js → ImportDataFromFileMapping-BIcQmKll.js} +2 -2
- package/dist/{ImportDataFromFileMapping-3XXgUR-Z.js.map → ImportDataFromFileMapping-BIcQmKll.js.map} +1 -1
- package/dist/{Inquiry-KKLgba3g.js → Inquiry-1o8EuckI.js} +12 -10
- package/dist/{Inquiry-KKLgba3g.js.map → Inquiry-1o8EuckI.js.map} +1 -1
- package/dist/Inquiry-B9U7e2Iu.js +3 -0
- package/dist/{InquirySearchContainer-DKDrIqNO.js → InquirySearchContainer-zxbukV51.js} +3 -3
- package/dist/{InquirySearchContainer-DKDrIqNO.js.map → InquirySearchContainer-zxbukV51.js.map} +1 -1
- package/dist/MenuPage-CdzHSWBt.js +3 -0
- package/dist/{MenuPage-tkkhpco5.js → MenuPage-KiNfnc7P.js} +3 -3
- package/dist/{MenuPage-tkkhpco5.js.map → MenuPage-KiNfnc7P.js.map} +1 -1
- package/dist/{MttMainTimeline-s0ANW7l-.js → MttMainTimeline-DbaaXXQv.js} +2 -2
- package/dist/{MttMainTimeline-s0ANW7l-.js.map → MttMainTimeline-DbaaXXQv.js.map} +1 -1
- package/dist/{NotesScreen-DQatppnX.js → NotesScreen-D8-QnWaB.js} +2 -2
- package/dist/{NotesScreen-DQatppnX.js.map → NotesScreen-D8-QnWaB.js.map} +1 -1
- package/dist/{PDFViewer-B4nJKbIy.js → PDFViewer-BvaqCfIS.js} +2 -2
- package/dist/{PDFViewer-B4nJKbIy.js.map → PDFViewer-BvaqCfIS.js.map} +1 -1
- package/dist/{Page-fxgRfgm6.js → Page-BNjiUMqy.js} +5 -4
- package/dist/Page-BNjiUMqy.js.map +1 -0
- package/dist/{PageActionWrapper-BBkGtnC6.js → PageActionWrapper-Bm6J0thr.js} +2 -2
- package/dist/{PageActionWrapper-BBkGtnC6.js.map → PageActionWrapper-Bm6J0thr.js.map} +1 -1
- package/dist/{PageContainer-DTXNLt_2.js → PageContainer-ButX_XVS.js} +8 -6
- package/dist/PageContainer-ButX_XVS.js.map +1 -0
- package/dist/{PageRenderer-BTkUO-hr.js → PageRenderer-hxobUKe_.js} +2 -2
- package/dist/{PageRenderer-BTkUO-hr.js.map → PageRenderer-hxobUKe_.js.map} +1 -1
- package/dist/{PaymentForm-Dum5p1mf.js → PaymentForm-BdWY9dEt.js} +2 -2
- package/dist/{PaymentForm-Dum5p1mf.js.map → PaymentForm-BdWY9dEt.js.map} +1 -1
- package/dist/{PrimaryActionHeader-DBJpROPu.js → PrimaryActionHeader-H5w3twaM.js} +3 -2
- package/dist/PrimaryActionHeader-H5w3twaM.js.map +1 -0
- package/dist/{RecentlyLoadedNodesTable-Dy8yBVfH.js → RecentlyLoadedNodesTable-BzvR0L0h.js} +2 -2
- package/dist/{RecentlyLoadedNodesTable-Dy8yBVfH.js.map → RecentlyLoadedNodesTable-BzvR0L0h.js.map} +1 -1
- package/dist/{RecentlyLoadedNodesWidget-Cb8fiSSn.js → RecentlyLoadedNodesWidget-Kt5BElrK.js} +2 -2
- package/dist/{RecentlyLoadedNodesWidget-Cb8fiSSn.js.map → RecentlyLoadedNodesWidget-Kt5BElrK.js.map} +1 -1
- package/dist/{RemindersScreen-Cp7lMWrE.js → RemindersScreen-BDgMIUaq.js} +2 -2
- package/dist/{RemindersScreen-Cp7lMWrE.js.map → RemindersScreen-BDgMIUaq.js.map} +1 -1
- package/dist/{Shell-BE_Aq6W2.js → Shell-Bcr0PHnd.js} +6 -6
- package/dist/{Shell-BE_Aq6W2.js.map → Shell-Bcr0PHnd.js.map} +1 -1
- package/dist/{SiteHeader-CuOFCr7D.js → SiteHeader-DmfTUOmH.js} +4 -4
- package/dist/{SiteHeader-CuOFCr7D.js.map → SiteHeader-DmfTUOmH.js.map} +1 -1
- package/dist/{SummaryBlock-BjUNDl4q.js → SummaryBlock-Q5Jf4V8A.js} +2 -2
- package/dist/{SummaryBlock-BjUNDl4q.js.map → SummaryBlock-Q5Jf4V8A.js.map} +1 -1
- package/dist/{SupportCaseSideSheet-DuvvXDWF.js → SupportCaseSideSheet-9iAiZyOu.js} +1 -1
- package/dist/{SupportCaseSideSheet-BNec-nDN.js → SupportCaseSideSheet-CT15Dg8h.js} +2 -2
- package/dist/{SupportCaseSideSheet-BNec-nDN.js.map → SupportCaseSideSheet-CT15Dg8h.js.map} +1 -1
- package/dist/{Typography-BMsa1JYd.js → Typography-FuShOop3.js} +2 -2
- package/dist/{Typography-BMsa1JYd.js.map → Typography-FuShOop3.js.map} +1 -1
- package/dist/UI/accordion/index.js +1 -1
- package/dist/UI/components/dataDisplay/index.js +1 -1
- package/dist/UI/components/index.js +1 -1
- package/dist/UI/dataDisplay/GraphCard/index.js +1 -1
- package/dist/UI/dataDisplay/index.js +2 -2
- package/dist/UI/dataDisplay/typography/index.js +1 -1
- package/dist/UI/dataDisplay/visualization/index.js +1 -1
- package/dist/UI/fileViewer/index.js +1 -1
- package/dist/UI/fileViewer/pdfViewer/index.js +1 -1
- package/dist/UI/forms/index.js +1 -1
- package/dist/UI/index.js +11 -11
- package/dist/UI/inputs/fieldArrayCard/index.js +1 -1
- package/dist/UI/mapLayout/index.js +1 -1
- package/dist/UI/support/index.js +1 -1
- package/dist/UI/surfaces/cards/AmbientCard/index.js +1 -1
- package/dist/UI/surfaces/cards/chartDisplayCards/index.js +1 -1
- package/dist/UI/surfaces/cards/workOrderCard/index.js +1 -1
- package/dist/UI/templates/deprecated/UdpGridTemplate/index.js +1 -1
- package/dist/UI/templates/newGrid/index.js +1 -1
- package/dist/UI/utilityDisplay/index.js +2 -2
- package/dist/UI/utilityDisplay/utilityHeader/index.js +1 -1
- package/dist/UI/widgets/index.js +1 -1
- package/dist/UI/widgets/library/CircleGaugeWidget/index.js +1 -1
- package/dist/UI/widgets/library/RecentlyLoadedNodesWidget/index.js +1 -1
- package/dist/{UdpAuditEvents-C5p1KgV0.js → UdpAuditEvents-DotSR4R9.js} +2 -2
- package/dist/{UdpAuditEvents-C5p1KgV0.js.map → UdpAuditEvents-DotSR4R9.js.map} +1 -1
- package/dist/{UdpAuditEventsPage-CohNvZiq.js → UdpAuditEventsPage-BZ5fMCYW.js} +2 -2
- package/dist/{UdpAuditEventsPage-CohNvZiq.js.map → UdpAuditEventsPage-BZ5fMCYW.js.map} +1 -1
- package/dist/UdpAuditEventsPage-BtsmPFyR.js +3 -0
- package/dist/{UdpDataBrowserPage-DQXaWtYD.js → UdpDataBrowserPage-3fiOCSkx.js} +3 -3
- package/dist/{UdpDataBrowserPage-DQXaWtYD.js.map → UdpDataBrowserPage-3fiOCSkx.js.map} +1 -1
- package/dist/{UdpFormsSubmissionGrid-DzMuwwTO.js → UdpFormsSubmissionGrid-B3pQiK5q.js} +10 -9
- package/dist/UdpFormsSubmissionGrid-B3pQiK5q.js.map +1 -0
- package/dist/{UdpGridTemplate-OsS_O6jR.js → UdpGridTemplate-xen0Fvww.js} +2 -2
- package/dist/{UdpGridTemplate-OsS_O6jR.js.map → UdpGridTemplate-xen0Fvww.js.map} +1 -1
- package/dist/{UdpImportFromFileMappingPage-Dti79T9x.js → UdpImportFromFileMappingPage-BxGvGFua.js} +2 -2
- package/dist/{UdpImportFromFileMappingPage-Dti79T9x.js.map → UdpImportFromFileMappingPage-BxGvGFua.js.map} +1 -1
- package/dist/{UdpInquiryMaintenanceEnginePage-Boln3evx.js → UdpInquiryMaintenanceEnginePage-CSf7jB35.js} +2 -2
- package/dist/{UdpInquiryMaintenanceEnginePage-Boln3evx.js.map → UdpInquiryMaintenanceEnginePage-CSf7jB35.js.map} +1 -1
- package/dist/{UdpMaintenanceEnginePage-B8OpNNcP.js → UdpMaintenanceEnginePage-C8NLZSPb.js} +3 -3
- package/dist/{UdpMaintenanceEnginePage-B8OpNNcP.js.map → UdpMaintenanceEnginePage-C8NLZSPb.js.map} +1 -1
- package/dist/{UdpNotesPage-DCjDBqqU.js → UdpNotesPage-BABI4D2S.js} +2 -2
- package/dist/{UdpNotesPage-DCjDBqqU.js.map → UdpNotesPage-BABI4D2S.js.map} +1 -1
- package/dist/{UdpRemindersPage-CrgWmKWD.js → UdpRemindersPage-DuS3aPUk.js} +2 -2
- package/dist/{UdpRemindersPage-CrgWmKWD.js.map → UdpRemindersPage-DuS3aPUk.js.map} +1 -1
- package/dist/{UdpTransactionsPage-X1Wu4-CC.js → UdpTransactionsPage-DXt_i8vP.js} +6 -6
- package/dist/{UdpTransactionsPage-X1Wu4-CC.js.map → UdpTransactionsPage-DXt_i8vP.js.map} +1 -1
- package/dist/{UtilitySideBar-wvrocDGI.js → UtilitySideBar-BU3ppHrv.js} +2 -2
- package/dist/{UtilitySideBar-wvrocDGI.js.map → UtilitySideBar-BU3ppHrv.js.map} +1 -1
- package/dist/VirtualBrowser-CbL5X-W-.js +3 -0
- package/dist/{VirtualBrowser-CVs-vW3x.js → VirtualBrowser-qF1k097T.js} +2 -2
- package/dist/{VirtualBrowser-CVs-vW3x.js.map → VirtualBrowser-qF1k097T.js.map} +1 -1
- package/dist/{WorkOrderCard-s-6QK3Re.js → WorkOrderCard-geZ9o4iP.js} +2 -2
- package/dist/{WorkOrderCard-s-6QK3Re.js.map → WorkOrderCard-geZ9o4iP.js.map} +1 -1
- package/dist/{WorkflowContainer-Boj87JRI.js → WorkflowContainer-BxBxnHEY.js} +1 -1
- package/dist/{WorkflowContainer-DDGm1Cxo.js → WorkflowContainer-Drts8hsZ.js} +3 -3
- package/dist/{WorkflowContainer-DDGm1Cxo.js.map → WorkflowContainer-Drts8hsZ.js.map} +1 -1
- package/dist/{WorkflowContent-CU_-pOym.js → WorkflowContent-HlBHhWl8.js} +4 -4
- package/dist/{WorkflowContent-CU_-pOym.js.map → WorkflowContent-HlBHhWl8.js.map} +1 -1
- package/dist/{accordion--zpb1uMC.js → accordion-Ca8ECaw2.js} +3 -3
- package/dist/accordion-Ca8ECaw2.js.map +1 -0
- package/dist/{actionSummary-D0CwyTXJ.js → actionSummary-DwSHY1Tt.js} +2 -2
- package/dist/{actionSummary-D0CwyTXJ.js.map → actionSummary-DwSHY1Tt.js.map} +1 -1
- package/dist/actions/actionSummary/index.js +1 -1
- package/dist/actions/index.js +4 -4
- package/dist/{colorConverter-x64WSLsF.js → colorConverter-5PvESBA1.js} +7 -1
- package/dist/colorConverter-5PvESBA1.js.map +1 -0
- package/dist/componentSystems/multiThreadTimeline/index.js +2 -2
- package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +1 -1
- package/dist/componentSystems/multiThreadTimeline/ui/index.js +1 -1
- package/dist/componentSystems/pageRenderer/hocs/index.js +1 -1
- package/dist/componentSystems/pageRenderer/index.js +3 -3
- package/dist/componentSystems/pageRenderer/wrappers/index.js +1 -1
- package/dist/dashboard/index.js +1 -1
- package/dist/dataBrowser/index.js +1 -1
- package/dist/{fileViewer-BbIFHura.js → fileViewer-C_Q-hFda.js} +4 -4
- package/dist/{fileViewer-BbIFHura.js.map → fileViewer-C_Q-hFda.js.map} +1 -1
- package/dist/{forms-BVssUn2h.js → forms-lyNriVSn.js} +3 -3
- package/dist/{forms-BVssUn2h.js.map → forms-lyNriVSn.js.map} +1 -1
- package/dist/index.js +47 -47
- package/dist/inquiry/dashboard/index.js +1 -1
- package/dist/inquiry/index.js +3 -3
- package/dist/inquiry/search/index.js +1 -1
- package/dist/layout/index.js +1 -1
- package/dist/{layout-Do6o2q2R.js → layout-IgoykV-U.js} +2 -2
- package/dist/{layout-Do6o2q2R.js.map → layout-IgoykV-U.js.map} +1 -1
- package/dist/maintenanceEngine/crudBrowser/index.js +1 -1
- package/dist/maintenanceEngine/index.js +2 -2
- package/dist/maintenanceEngine/virtualBrowser/index.js +1 -1
- package/dist/{mapLayout-B_m2Fh8n.js → mapLayout-BlHtCf7p.js} +2 -2
- package/dist/{mapLayout-B_m2Fh8n.js.map → mapLayout-BlHtCf7p.js.map} +1 -1
- package/dist/menuPage/index.js +1 -1
- package/dist/{menuPage-7DcUM-Q3.js → menuPage-BHXchSeD.js} +2 -2
- package/dist/{menuPage-7DcUM-Q3.js.map → menuPage-BHXchSeD.js.map} +1 -1
- package/dist/{newGrid-zmtQXU5G.js → newGrid-Cx_UGQS8.js} +2 -2
- package/dist/{newGrid-zmtQXU5G.js.map → newGrid-Cx_UGQS8.js.map} +1 -1
- package/dist/notes/index.js +1 -1
- package/dist/page/PageContainer/index.js +1 -1
- package/dist/reminders/index.js +1 -1
- package/dist/routes/index.js +1 -1
- package/dist/{routes-DafRlYVQ.js → routes-Cep1JMTf.js} +5 -5
- package/dist/{routes-DafRlYVQ.js.map → routes-Cep1JMTf.js.map} +1 -1
- package/dist/shell/index.js +2 -2
- package/dist/shell/ui/index.js +1 -1
- package/dist/types/src/UI/accordion/Accordion.d.ts.map +1 -1
- package/dist/types/src/UI/utilityDisplay/utilityHeader/PrimaryActionHeader.d.ts.map +1 -1
- package/dist/types/src/dashboard/DashboardCardGrid.d.ts.map +1 -1
- package/dist/types/src/inquiry/InquiryContainer.d.ts.map +1 -1
- package/dist/types/src/page/Page.d.ts.map +1 -1
- package/dist/types/src/page/PageContainer/PageContainer.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/UdpFormsSubmissionGrid.d.ts +3 -1
- package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/UdpFormsSubmissionGrid.d.ts.map +1 -1
- package/dist/types/src/utilities/style/colorConverter.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/udp/export/index.js +1 -1
- package/dist/udp/fileImportMapping/index.js +1 -1
- package/dist/udp/pages/UdpAuditEvents/index.js +1 -1
- package/dist/udp/pages/UdpDataBrowserPage/index.js +1 -1
- package/dist/udp/pages/UdpFormsSubmissionGrid/index.js +1 -1
- package/dist/udp/pages/UdpImportFromFileMappingPage/index.js +1 -1
- package/dist/udp/pages/UdpInquiryMaintenanceEnginePage/index.js +1 -1
- package/dist/udp/pages/UdpMaintenanceEnginePage/index.js +1 -1
- package/dist/udp/pages/UdpNotesPage/index.js +1 -1
- package/dist/udp/pages/UdpPages/index.js +9 -9
- package/dist/udp/pages/UdpPagesLazy/index.js +1 -1
- package/dist/udp/pages/UdpRemindersPage/index.js +1 -1
- package/dist/udp/pages/UdpTransactionsPage/index.js +1 -1
- package/dist/uploader/index.js +1 -1
- package/dist/{uploader-YWjDebFN.js → uploader-BdeUKdYW.js} +2 -2
- package/dist/{uploader-YWjDebFN.js.map → uploader-BdeUKdYW.js.map} +1 -1
- package/dist/utilities/form/paymentForm/index.js +1 -1
- package/dist/utilities/provider/index.js +1 -1
- package/dist/utilities/style/index.js +1 -1
- package/dist/{widgets-BCHN3J80.js → widgets-Bwklnxz1.js} +2 -2
- package/dist/{widgets-BCHN3J80.js.map → widgets-Bwklnxz1.js.map} +1 -1
- package/dist/{withEngineComponent-CpOJBSmx.js → withEngineComponent-Bcnxug3h.js} +2 -2
- package/dist/{withEngineComponent-CpOJBSmx.js.map → withEngineComponent-Bcnxug3h.js.map} +1 -1
- package/dist/workflow/index.js +2 -2
- package/export-map.json +1 -1
- package/package.json +2 -2
- package/dist/DashboardWidget-CsOrr74H.js.map +0 -1
- package/dist/Inquiry-C094H1jQ.js +0 -3
- package/dist/MenuPage-R6mbeCuS.js +0 -3
- package/dist/Page-fxgRfgm6.js.map +0 -1
- package/dist/PageContainer-DTXNLt_2.js.map +0 -1
- package/dist/PrimaryActionHeader-DBJpROPu.js.map +0 -1
- package/dist/UdpAuditEventsPage-BiUdXrGu.js +0 -3
- package/dist/UdpFormsSubmissionGrid-DzMuwwTO.js.map +0 -1
- package/dist/VirtualBrowser-CcWYHhRb.js +0 -3
- package/dist/accordion--zpb1uMC.js.map +0 -1
- package/dist/colorConverter-x64WSLsF.js.map +0 -1
package/dist/{ImportDataFromFileMapping-3XXgUR-Z.js.map → ImportDataFromFileMapping-BIcQmKll.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImportDataFromFileMapping-3XXgUR-Z.js","names":["Divider","FileImportMappingWizard"],"sources":["../src/udp/fileImportMapping/fileUtils.js","../src/udp/fileImportMapping/FileImportConfigCard.jsx","../src/udp/fileImportMapping/FileImportMappingWizard.jsx","../src/udp/fileImportMapping/ImportDataFromFileMapping.jsx"],"sourcesContent":["import * as XLSX from 'xlsx';\n\nexport const handleExcelFileUpload = (fileObject, fileProperties) => {\n return new Promise((resolve, reject) => {\n if (fileObject) {\n const reader = new FileReader();\n\n reader.onload = function (e) {\n const data = new Uint8Array(e.target.result);\n const workbook = XLSX.read(data, { type: 'array' });\n\n const sheetName = workbook.SheetNames[fileProperties?.worksheetNumber?.value - 1];\n const worksheet = workbook.Sheets[sheetName];\n\n // Get the headers (first row) and first data line\n const json = XLSX.utils.sheet_to_json(worksheet, {\n header: 1,\n });\n if (json.length > 1) {\n const headers = json[0]; // First row as headers\n const firstDataLine = json[1]; // Second row as the first data line\n resolve({ headers: headers, sampleData: firstDataLine });\n }\n else{\n reject(\"Could not get file headers\")\n }\n };\n reader.onerror = function () {\n reject('Error reading the file.');\n };\n\n reader.readAsArrayBuffer(fileObject); // Read the file as an ArrayBuffer\n } else {\n reject('No file provided');\n }\n });\n};\n\nexport const handleTextFileUpload = (fileObject, fileProperties) => {\n return new Promise((resolve, reject) => {\n if (fileObject) {\n const chunkSize = 1024; // Read 1024 bytes at a time\n let offset = 0; // Start reading at the beginning of the file\n let accumulatedData = '';\n\n const reader = new FileReader();\n\n reader.onload = function (e) {\n accumulatedData += e.target.result;\n\n const lines = accumulatedData.split('\\n');\n if (lines.length > 2) {\n const headers = lines[0].replace(/\\r/g, '').split(fileProperties?.delimiter?.value);\n const firstDataLine = lines[1].replace(/\\r/g, '').split(fileProperties?.delimiter?.value);\n resolve({ headers: headers, sampleData: firstDataLine });\n } else {\n // If the header is not found and there's more data to read\n if (offset < fileObject.size) {\n readNextChunk();\n }\n }\n };\n reader.onerror = function () {\n reject('Error reading the file.');\n };\n\n function readNextChunk() {\n // Read the next 1024 bytes\n const blob = fileObject.slice(offset, offset + chunkSize);\n reader.readAsText(blob);\n offset += chunkSize;\n }\n readNextChunk();\n } else {\n reject('No file provided');\n }\n });\n};\n\nexport const handleJsonFileUpload = (fileObject, fileProperties) => {\n return new Promise((resolve, reject) => {\n if (fileObject) {\n const reader = new FileReader();\n\n reader.onload = function (e) {\n try {\n const jsonData = JSON.parse(e.target.result);\n const dataAtPath = fileProperties?.jsonPath ? getValueByPath(jsonData, fileProperties?.jsonPath) : jsonData;\n\n if (Array.isArray(dataAtPath) && dataAtPath.length > 0) {\n const keys = Object.keys(dataAtPath[0]);\n resolve({ headers: keys, sampleData: dataAtPath[0] });\n } else {\n reject('The JSON file does not contain an array or is empty.');\n }\n } catch (err) {\n reject('Error parsing JSON file:', err);\n }\n };\n reader.onerror = function () {\n reject('Error reading the file.');\n };\n\n reader.readAsText(fileObject);\n } else {\n reject('No file provided');\n }\n });\n};\n\nconst getValueByPath = (obj, path) => {\n return path.split('.').reduce((acc, key) => acc && acc[key], obj);\n }\n","import React, { useState, useMemo } from 'react';\nimport { AmbientCard } from '../../UI/surfaces/cards/AmbientCard';\nimport { CompactDataListItem } from '../../UI/dataDisplay/CompactDataListItem';\nimport { Typography, Divider } from '@material-ui/core';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { ChromeBackMirroredIcon } from '@fluentui/react-icons';\n\nexport const FileImportConfigCard = (props) => {\n const { fileMappingRecord, domain } = props;\n const [showIndexNumbers, setShowIndexNumbers] = useState(false);\n\n const parsedProperties = useMemo(() => {\n if (fileMappingRecord) {\n let parsedObject = fileMappingRecord?.properties;\n if (typeof fileMappingRecord?.properties === 'string') {\n parsedObject = JSON.parse(fileMappingRecord?.properties);\n }\n if (\n 'includesHeader' in parsedObject &&\n parsedObject?.includesHeader === false\n ) {\n setShowIndexNumbers(true);\n } else {\n setShowIndexNumbers(false);\n }\n return Object.entries(parsedObject).map(([key, value]) => ({\n key,\n value\n }));\n }\n }, [fileMappingRecord]);\n\n const parsedFieldMappings = useMemo(() => {\n let parsedObject = fileMappingRecord?.mapping;\n if (typeof fileMappingRecord?.mapping === 'string') {\n parsedObject = JSON.parse(fileMappingRecord?.mapping);\n }\n if (fileMappingRecord) {\n return Object.entries(parsedObject);\n }\n }, [fileMappingRecord]);\n\n return (\n parsedFieldMappings && (\n <AmbientCard fullWidth title='Mapping Configuration' subtitle={domain}>\n {parsedProperties?.map((property) => (\n <CompactDataListItem\n label={property?.key\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/^./, function (char) {\n return char.toUpperCase();\n })}\n value={\n property?.value === false\n ? 'False'\n : property?.value === true\n ? 'True'\n : property?.value\n }\n />\n ))}\n\n <>\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingTop: 20\n }}\n >\n <Typography variant='caption'>\n {showIndexNumbers ? \"Column index's\" : 'File Headers'}\n </Typography>\n <Typography variant='caption'>Fields</Typography>\n </div>\n <Divider style={{ marginTop: 5, marginBottom: -14 }} />\n {parsedFieldMappings?.map((field) => (\n <div style={{ height: 42 }}>\n <div style={{ display: 'flex', flexDirection: 'row', gap: 10 }}>\n <Typography style={{ marginTop: 25, width: '50%' }}>\n {showIndexNumbers\n ? 'index ' + field[1]?.headerIndex\n : field[1]?.importFileField}\n </Typography>\n <FluentIcon\n style={{ marginTop: 28, width: '10%' }}\n component={ChromeBackMirroredIcon}\n />\n <Typography\n style={{ marginTop: 25, width: '50%', textAlign: 'right' }}\n >\n {field[1]?.udpField.replace(/([A-Z])/g, ' $1').trim()}\n </Typography>\n </div>\n <Divider style={{ margin: '5px 0px' }} />\n </div>\n ))}\n </>\n </AmbientCard>\n )\n );\n};\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { AmbientCard } from '../../UI/surfaces/cards/AmbientCard';\nimport { AmbientAutoComplete } from '../../UI/inputs/textField/AmbientAutoComplete';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { executeQueryAdHoc } from '../utilities/methodUtils';\nimport { Form } from '../../utilities/form';\nimport { Field } from '../../utilities/form';\nimport { FormButtons } from '../../utilities/form';\nimport { SubmitButton } from '../../utilities/form';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { AmbientStepper } from '../../UI/inputs/menus/AmbientStepper/AmbientStepper';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { DragDropFileUpload } from '../../uploader/DragDropFileUpload';\nimport { Typography } from '@material-ui/core';\nimport { ChromeBackMirroredIcon } from '@fluentui/react-icons';\nimport { FluentButton } from '../../UI/inputs/buttons/FluentButton';\nimport { AmbientTextField } from '../../UI/inputs/textField/AmbientTextField';\nimport { Divider } from '../../UI/utilityDisplay/Divider';\nimport {\n handleExcelFileUpload,\n handleJsonFileUpload,\n handleTextFileUpload\n} from './fileUtils';\nimport { FileImportConfigCard } from './FileImportConfigCard';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { ConfigService } from '../../configService';\n\nconst FileImportMappingWizard = (props) => {\n const { refetchMappings, setNewFileMappingSidesheetOpen, verifyRequiredFields } = props;\n const user = useUser();\n const [importHeaderData, setImportHeaderData] = useState();\n const [udpObjectList, setUdpObjectList] = useState();\n const [selectedDomain, setSelectedDomain] = useState();\n const [selectedFileType, setSelectedFileType] = useState();\n const [fileObject, setFileObject] = useState();\n const [fileImportMappingObject, setFileImportMappingObject] = useState({});\n const [activeStep, setActiveStep] = useState(0);\n const [showIndexNumbers, setShowIndexNumbers] = useState(false);\n const [errorText, setErrorText] = useState('');\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const executeCreateFileMapping = useCallback(\n async (data) =>\n apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpFileImportMapping`,\n {\n method: 'post'\n },\n { data }\n ),\n []\n );\n const { data: udpObjectEntity } = usePromotedMethodEntity(\n 'UdpObjectInfo',\n true\n );\n\n const [{ data: allowedFileTypesData }, refetchAllowedFileTypes] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpFileImportType`,\n {},\n false\n );\n\n const searchUdpObjectData = useCallback(async () => {\n if (udpObjectEntity?.unityBaseSearchMethod?.apiMethodId && user?.id) {\n const sapUserRes = await executeQueryAdHoc(\n {\n data: {\n eagerLoad: true,\n pageSize: 200,\n filterElements: []\n }\n },\n udpObjectEntity?.unityBaseSearchMethod?.apiMethodId\n );\n if (sapUserRes?.data?.pageList.length > 0) {\n setUdpObjectList(sapUserRes?.data?.pageList);\n }\n }\n }, [udpObjectEntity, user]);\n\n const filterCatalogObjectList = useMemo(() => {\n return udpObjectList;\n }, [udpObjectList]);\n\n const getNameFormattedOptionLabel = (option) => {\n return option?.name.replace(/([A-Z])/g, ' $1').trim();\n };\n\n const getNameOptionLabel = (option) => {\n return option?.name;\n };\n\n const handleFileUpload = async (properties) => {\n let result;\n if (\n selectedFileType.extension === '.csv' ||\n selectedFileType.extension === '.txt'\n ) {\n result = await handleTextFileUpload(fileObject, properties);\n } else if (selectedFileType.extension === '.xlsx') {\n result = await handleExcelFileUpload(fileObject, properties);\n } else if (selectedFileType.extension === '.json') {\n result = await handleJsonFileUpload(fileObject, properties);\n }\n setImportHeaderData(result?.headers);\n };\n\n useEffect(() => {\n searchUdpObjectData();\n }, [searchUdpObjectData]);\n\n const handleCreateNewFieldMapping = useCallback(\n async (values) => {\n const response = await executeCreateFileMapping({\n name: values.name,\n objectInfoSanitizedName: getSanitizedName(selectedDomain.name),\n fileImportType: selectedFileType.id,\n mapping: JSON.stringify(fileImportMappingObject?.mapping),\n properties: JSON.stringify(fileImportMappingObject?.properties)\n }).catch((res) => {\n handleErrorSnackbar(res);\n });\n if (response?.status === 201) {\n handleSuccessSnackbar('Created Mapping');\n refetchMappings();\n setNewFileMappingSidesheetOpen(false);\n }\n },\n [\n executeCreateFileMapping,\n selectedDomain?.name,\n selectedFileType?.id,\n fileImportMappingObject?.mapping,\n fileImportMappingObject?.properties,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n refetchMappings,\n setNewFileMappingSidesheetOpen\n ]\n );\n\n const handleUpdateFieldMapping = (values) => {\n let valid = true;\n selectedDomain?.objectFieldInfo?.forEach((option) => {\n if (\n !option.dataType.endsWith('?') &&\n !option.isPrimaryKey &&\n !option.udpType\n ) {\n if (\n !Object.entries(values).some(\n (obj) => obj[1].businessObjectKey === option.businessObjectKey\n )\n ) {\n if(verifyRequiredFields){\n valid = false;\n }\n }\n }\n });\n if (!valid) {\n setErrorText('All required Udp fields must have a mapping');\n return;\n }\n const filteredMappings = Object.entries(values)\n .filter(([key, value]) => value !== null)\n .reduce((acc, [key, value]) => {\n acc[key] = value;\n return acc;\n }, {});\n const mappedFieldIndexes = Object.keys(filteredMappings).map((key) =>\n parseInt(key.split('udpFieldMapping')[1], 10)\n );\n const fieldMappings = Object.values(filteredMappings).map(\n (selectedUdpField, index) => {\n return {\n udpField: selectedUdpField.name,\n importFileField: !showIndexNumbers\n ? importHeaderData[mappedFieldIndexes[index]]\n : null,\n headerIndex: !showIndexNumbers ? -1 : mappedFieldIndexes[index]\n };\n }\n );\n setFileImportMappingObject((prev) => {\n return { ...prev, mapping: fieldMappings };\n });\n setActiveStep((prev) => prev + 1);\n };\n\n const handleUpdateFileProperties = (values) => {\n setFileImportMappingObject((prev) => {\n let properties = {};\n Object.keys(values).forEach(\n (propKey) =>\n (properties[propKey] =\n 'value' in values[propKey]\n ? values[propKey]?.value\n : values[propKey])\n );\n return { ...prev, properties: properties };\n });\n if ('includesHeader' in values && values?.includesHeader.value === false) {\n setShowIndexNumbers(true);\n }\n handleFileUpload(values);\n setActiveStep((prev) => prev + 1);\n };\n\n const getUdpFieldOptionLabel = (option) => {\n if (\n !option.dataType.endsWith('?') &&\n !option.isPrimaryKey &&\n !option.udpType\n ) {\n return `${option.name.replace(/([A-Z])/g, ' $1').trim()}*`; //required field\n }\n return `${option.name} - ${option.dataType}`;\n };\n\n const handleAddFileToUpload = (fileObj) => {\n setFileObject(fileObj[0]);\n };\n\n const formattedFileTypeProperties = useMemo(() => {\n if (selectedFileType) {\n return JSON.parse(selectedFileType?.properties);\n }\n }, [selectedFileType]);\n\n return (\n <>\n <AmbientCard fullWidth>\n <div style={{ marginBottom: 20 }}>\n <AmbientStepper\n activeStep={activeStep}\n steps={['File', 'Domain', 'Field Mappings', 'Review']}\n orientation='vertical'\n />\n </div>\n {activeStep === 0 && (\n <>\n <AmbientAutoComplete\n isMultiple={false}\n id={'fileImportType'}\n name={'fileImportType'}\n label='File Type'\n onChange={(val) => setSelectedFileType(val)}\n options={allowedFileTypesData}\n size='small'\n getOptionLabelFunction={getNameOptionLabel}\n value={selectedFileType}\n required\n />\n {selectedFileType && (\n <div style={{ marginTop: 5 }}>\n <DragDropFileUpload\n handleUploadFile={handleAddFileToUpload}\n accept={{\n 'text/csv': ['.csv'],\n 'text/plain': ['.txt'],\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n ['.xlsx'],\n 'application/json': ['.json']\n }}\n />\n </div>\n )}\n <Form onSubmit={handleUpdateFileProperties}>\n {formattedFileTypeProperties?.map((property) =>\n property?.options ? (\n <Field\n component={AmbientAutoComplete}\n isMultiple={false}\n id={property.propertyName}\n name={property.propertyName}\n label={property.label}\n options={property.options}\n size='small'\n getOptionLabelFunction={getNameOptionLabel}\n required={property?.required}\n />\n ) : (\n <Field\n component={AmbientTextField}\n isMultiple={false}\n id={property.propertyName}\n name={property.propertyName}\n label={property.label}\n size='small'\n getOptionLabelFunction={getNameOptionLabel}\n required={property?.required}\n />\n )\n )}\n <FormButtons\n style={{\n display: 'flex',\n float: 'right',\n marginRight: -16\n }}\n >\n <SubmitButton\n variant='contained'\n color='secondary'\n disablePristine={false}\n disabled={!fileObject}\n >\n Next\n </SubmitButton>\n </FormButtons>\n </Form>\n </>\n )}\n {activeStep === 1 && (\n <>\n <AmbientAutoComplete\n isMultiple={false}\n id={'domain'}\n name={'domain'}\n label='Domain'\n onChange={(val) => setSelectedDomain(val)}\n options={filterCatalogObjectList}\n size='small'\n getOptionLabelFunction={getNameFormattedOptionLabel}\n value={selectedDomain}\n required\n />\n <div\n style={{ float: 'right', display: 'flex', gap: 8, marginTop: 8 }}\n >\n <FluentButton\n variant='contained'\n onClick={() => setActiveStep((prev) => prev - 1)}\n disabled={activeStep === 0}\n >\n Prev\n </FluentButton>\n <FluentButton\n variant='contained'\n onClick={() => setActiveStep((prev) => prev + 1)}\n color='secondary'\n disabled={!selectedDomain}\n >\n Next\n </FluentButton>\n </div>\n </>\n )}\n {activeStep === 2 && (\n <>\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingTop: 20\n }}\n >\n <Typography variant='caption'>\n {showIndexNumbers ? \"Column index's\" : 'File Headers'}\n </Typography>\n <Typography variant='caption'>UDP Fields</Typography>\n </div>\n <Divider style={{ margin: '5px 0px' }} />\n <Form\n onSubmit={handleUpdateFieldMapping}\n style={{ marginTop: -20 }}\n >\n {importHeaderData?.map((field, index) => (\n <div style={{ height: 42 }}>\n <div\n style={{ display: 'flex', flexDirection: 'row', gap: 10 }}\n >\n <Typography style={{ marginTop: 25, width: '50%' }}>\n {showIndexNumbers ? 'index ' + index : field}\n </Typography>\n <FluentIcon\n style={{ marginTop: 28, width: '10%' }}\n component={ChromeBackMirroredIcon}\n />\n <Field\n style={{ height: 30 }}\n component={AmbientAutoComplete}\n isMultiple={false}\n id={`udpFieldMapping${index}`}\n name={`udpFieldMapping${index}`}\n options={selectedDomain?.objectFieldInfo}\n size='small'\n getOptionLabelFunction={getUdpFieldOptionLabel}\n />\n </div>\n <Divider style={{ margin: '5px 0px' }} />\n </div>\n ))}\n <div style={{ paddingTop: 20, textAlign: 'right', color: 'red' }}>\n {errorText}\n </div>\n <FormButtons\n style={{\n display: 'flex',\n float: 'right',\n paddingTop: 16,\n marginRight: -16\n }}\n >\n <FluentButton\n variant='contained'\n onClick={() => setActiveStep((prev) => prev - 1)}\n disabled={activeStep === 0}\n >\n Prev\n </FluentButton>\n <SubmitButton\n variant='contained'\n color='secondary'\n disablePristine={false}\n >\n Next\n </SubmitButton>\n </FormButtons>\n </Form>\n </>\n )}\n {activeStep === 3 && (\n <Form onSubmit={handleCreateNewFieldMapping}>\n <Field\n component={AmbientTextField}\n id={`name`}\n name={`name`}\n label='Mapping Name'\n size='small'\n />\n <FormButtons\n style={{\n display: 'flex',\n float: 'right',\n marginRight: -16\n }}\n >\n <FluentButton\n variant='contained'\n onClick={() => setActiveStep((prev) => prev - 1)}\n disabled={activeStep === 0}\n >\n Prev\n </FluentButton>\n <SubmitButton\n variant='contained'\n color='secondary'\n disablePristine={false}\n >\n {'Create Mapping'}\n </SubmitButton>\n </FormButtons>\n </Form>\n )}\n </AmbientCard>\n {fileImportMappingObject?.mapping &&<div style={{ marginTop: 10 }}>\n <FileImportConfigCard\n fileMappingRecord={{\n mapping: fileImportMappingObject?.mapping,\n properties: fileImportMappingObject?.properties\n }}\n domain={selectedDomain?.name.replace(/([A-Z])/g, ' $1').trim()}\n />\n </div>}\n </>\n );\n};\n\nexport default FileImportMappingWizard;\n","import React, { useState, useCallback, useEffect } from 'react';\nimport { AmbientCard } from '../../UI/surfaces/cards/AmbientCard';\nimport { AmbientAutoComplete } from '../../UI/inputs/textField/AmbientAutoComplete';\nimport { FluentButton } from '../../UI/inputs/buttons/FluentButton';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { DragDropFileUpload } from '../../uploader/DragDropFileUpload';\nimport FileImportMappingWizard from './FileImportMappingWizard';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { executeQueryAdHoc } from '../utilities/methodUtils';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { FileImportConfigCard } from './FileImportConfigCard';\nimport { ConfigService } from '../../configService';\n\nexport const ImportDataFromFileMapping = (props) => {\n const {onImportSuccess, onImportFail, verifyRequiredFields = true} = props\n const user = useUser();\n const [selectedFileMapping, setSelectedFileMapping] = useState();\n const [udpImportMappingData, setUdpImportMappingData] = useState();\n const [newFileMappingSidesheetOpen, setNewFileMappingSidesheetOpen] =\n useState(false);\n const [fileObject, setFileObject] = useState();\n const [isLoading, setIsLoading] = useState(false)\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const { data: udpFileImportMappingEntity } = usePromotedMethodEntity(\n 'UdpFileImportMapping',\n true\n );\n\n const executeImportDataFromFile = useCallback(\n async (data) =>\n apiMutate(\n ConfigService.productV1ApiUrl,\n `${selectedFileMapping?.objectInfoSanitizedName}/fileImportMapping`,\n {\n method: 'post'\n },\n { data }\n ),\n [selectedFileMapping]\n );\n\n const searchFileImportMappingData = useCallback(async () => {\n if (udpFileImportMappingEntity?.unityBaseSearchMethod?.apiMethodId) {\n const res = await executeQueryAdHoc(\n {\n data: {\n eagerLoad: true,\n pageSize: 200,\n filterElements: []\n }\n },\n udpFileImportMappingEntity?.unityBaseSearchMethod?.apiMethodId\n );\n if (res?.data?.pageList.length > 0) {\n setUdpImportMappingData(res?.data?.pageList);\n }\n }\n }, [udpFileImportMappingEntity?.unityBaseSearchMethod?.apiMethodId]);\n\n useEffect(() => {\n searchFileImportMappingData();\n }, [searchFileImportMappingData]);\n\n const handleImportDataFromFile = useCallback(async () => {\n setIsLoading(true)\n const file = fileObject;\n const blob = new Blob([file], { type: file.type });\n const formData = new FormData();\n formData.append('file', blob, file.name);\n formData.append('tenantId', user?.currentTenantId);\n formData.append('name', selectedFileMapping.name);\n formData.append('objectInfoSanitizedName', selectedFileMapping.objectInfoSanitizedName);\n formData.append('fileImportType', selectedFileMapping.fileImportType);\n formData.append('mapping', selectedFileMapping.mapping);\n formData.append('properties', selectedFileMapping.properties);\n formData.append('id', selectedFileMapping.id);\n const response = await executeImportDataFromFile(formData).catch((res) => {\n setIsLoading(false)\n handleErrorSnackbar(res);\n onImportFail()\n });\n if (response?.status === 201) {\n handleSuccessSnackbar('Imported Data');\n setIsLoading(false)\n onImportSuccess && onImportSuccess()\n }\n\n }, [\n fileObject,\n selectedFileMapping,\n executeImportDataFromFile,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n user,\n onImportSuccess,\n onImportFail\n ]);\n\n const getFileMappingOptionlabel = (option) => {\n return `${option.name} (${option?.udpFileImportMappingUdpFileImportType?.extension})`;\n };\n\n const handleAddFileToUpload = (fileObj) => {\n setFileObject(fileObj[0]);\n };\n\n return (\n <>\n <AmbientCard fullWidth>\n <div style={{ display: 'flex' }}>\n <AmbientAutoComplete\n isMultiple={false}\n id={'fileMapping'}\n name={'fileMapping'}\n label='File Mapping'\n onChange={(val) => setSelectedFileMapping(val)}\n options={udpImportMappingData}\n size='small'\n getOptionLabelFunction={getFileMappingOptionlabel}\n value={selectedFileMapping}\n required\n groupBy={(option) =>\n option?.udpFileImportMappingUdpObjectInfo?.sanitizedName\n }\n />\n </div>\n {selectedFileMapping && (\n <DragDropFileUpload\n handleUploadFile={handleAddFileToUpload}\n accept={{\n 'text/csv': ['.csv'],\n 'text/plain': ['.txt'],\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n ['.xlsx'],\n 'application/json': ['.json']\n }}\n />\n )}\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n gap: 5,\n float: 'right',\n marginTop: 10\n }}\n >\n <FluentButton\n onClick={() => setNewFileMappingSidesheetOpen(true)}\n variant='outlined'\n >\n Create New Mapping\n </FluentButton>\n <FluentButton\n variant='contained'\n color='secondary'\n onClick={handleImportDataFromFile}\n progress={isLoading}\n disabled={!fileObject}\n >\n Import Data\n </FluentButton>\n </div>\n <SideSheet\n title='Create New File Mapping'\n open={newFileMappingSidesheetOpen}\n onClose={() => setNewFileMappingSidesheetOpen(false)}\n width={'60%'}\n >\n <FileImportMappingWizard\n refetchMappings={searchFileImportMappingData}\n setNewFileMappingSidesheetOpen={setNewFileMappingSidesheetOpen}\n verifyRequiredFields={verifyRequiredFields}\n />\n </SideSheet>\n </AmbientCard>\n <div style={{ marginTop: 10 }}>\n <FileImportConfigCard fileMappingRecord={selectedFileMapping} domain={selectedFileMapping?.udpFileImportMappingUdpObjectInfo?.sanitizedName.replace(/([A-Z])/g, ' $1').trim()}/>\n </div>\n </>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ImportDataFromFileMapping-BIcQmKll.js","names":["Divider","FileImportMappingWizard"],"sources":["../src/udp/fileImportMapping/fileUtils.js","../src/udp/fileImportMapping/FileImportConfigCard.jsx","../src/udp/fileImportMapping/FileImportMappingWizard.jsx","../src/udp/fileImportMapping/ImportDataFromFileMapping.jsx"],"sourcesContent":["import * as XLSX from 'xlsx';\n\nexport const handleExcelFileUpload = (fileObject, fileProperties) => {\n return new Promise((resolve, reject) => {\n if (fileObject) {\n const reader = new FileReader();\n\n reader.onload = function (e) {\n const data = new Uint8Array(e.target.result);\n const workbook = XLSX.read(data, { type: 'array' });\n\n const sheetName = workbook.SheetNames[fileProperties?.worksheetNumber?.value - 1];\n const worksheet = workbook.Sheets[sheetName];\n\n // Get the headers (first row) and first data line\n const json = XLSX.utils.sheet_to_json(worksheet, {\n header: 1,\n });\n if (json.length > 1) {\n const headers = json[0]; // First row as headers\n const firstDataLine = json[1]; // Second row as the first data line\n resolve({ headers: headers, sampleData: firstDataLine });\n }\n else{\n reject(\"Could not get file headers\")\n }\n };\n reader.onerror = function () {\n reject('Error reading the file.');\n };\n\n reader.readAsArrayBuffer(fileObject); // Read the file as an ArrayBuffer\n } else {\n reject('No file provided');\n }\n });\n};\n\nexport const handleTextFileUpload = (fileObject, fileProperties) => {\n return new Promise((resolve, reject) => {\n if (fileObject) {\n const chunkSize = 1024; // Read 1024 bytes at a time\n let offset = 0; // Start reading at the beginning of the file\n let accumulatedData = '';\n\n const reader = new FileReader();\n\n reader.onload = function (e) {\n accumulatedData += e.target.result;\n\n const lines = accumulatedData.split('\\n');\n if (lines.length > 2) {\n const headers = lines[0].replace(/\\r/g, '').split(fileProperties?.delimiter?.value);\n const firstDataLine = lines[1].replace(/\\r/g, '').split(fileProperties?.delimiter?.value);\n resolve({ headers: headers, sampleData: firstDataLine });\n } else {\n // If the header is not found and there's more data to read\n if (offset < fileObject.size) {\n readNextChunk();\n }\n }\n };\n reader.onerror = function () {\n reject('Error reading the file.');\n };\n\n function readNextChunk() {\n // Read the next 1024 bytes\n const blob = fileObject.slice(offset, offset + chunkSize);\n reader.readAsText(blob);\n offset += chunkSize;\n }\n readNextChunk();\n } else {\n reject('No file provided');\n }\n });\n};\n\nexport const handleJsonFileUpload = (fileObject, fileProperties) => {\n return new Promise((resolve, reject) => {\n if (fileObject) {\n const reader = new FileReader();\n\n reader.onload = function (e) {\n try {\n const jsonData = JSON.parse(e.target.result);\n const dataAtPath = fileProperties?.jsonPath ? getValueByPath(jsonData, fileProperties?.jsonPath) : jsonData;\n\n if (Array.isArray(dataAtPath) && dataAtPath.length > 0) {\n const keys = Object.keys(dataAtPath[0]);\n resolve({ headers: keys, sampleData: dataAtPath[0] });\n } else {\n reject('The JSON file does not contain an array or is empty.');\n }\n } catch (err) {\n reject('Error parsing JSON file:', err);\n }\n };\n reader.onerror = function () {\n reject('Error reading the file.');\n };\n\n reader.readAsText(fileObject);\n } else {\n reject('No file provided');\n }\n });\n};\n\nconst getValueByPath = (obj, path) => {\n return path.split('.').reduce((acc, key) => acc && acc[key], obj);\n }\n","import React, { useState, useMemo } from 'react';\nimport { AmbientCard } from '../../UI/surfaces/cards/AmbientCard';\nimport { CompactDataListItem } from '../../UI/dataDisplay/CompactDataListItem';\nimport { Typography, Divider } from '@material-ui/core';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { ChromeBackMirroredIcon } from '@fluentui/react-icons';\n\nexport const FileImportConfigCard = (props) => {\n const { fileMappingRecord, domain } = props;\n const [showIndexNumbers, setShowIndexNumbers] = useState(false);\n\n const parsedProperties = useMemo(() => {\n if (fileMappingRecord) {\n let parsedObject = fileMappingRecord?.properties;\n if (typeof fileMappingRecord?.properties === 'string') {\n parsedObject = JSON.parse(fileMappingRecord?.properties);\n }\n if (\n 'includesHeader' in parsedObject &&\n parsedObject?.includesHeader === false\n ) {\n setShowIndexNumbers(true);\n } else {\n setShowIndexNumbers(false);\n }\n return Object.entries(parsedObject).map(([key, value]) => ({\n key,\n value\n }));\n }\n }, [fileMappingRecord]);\n\n const parsedFieldMappings = useMemo(() => {\n let parsedObject = fileMappingRecord?.mapping;\n if (typeof fileMappingRecord?.mapping === 'string') {\n parsedObject = JSON.parse(fileMappingRecord?.mapping);\n }\n if (fileMappingRecord) {\n return Object.entries(parsedObject);\n }\n }, [fileMappingRecord]);\n\n return (\n parsedFieldMappings && (\n <AmbientCard fullWidth title='Mapping Configuration' subtitle={domain}>\n {parsedProperties?.map((property) => (\n <CompactDataListItem\n label={property?.key\n .replace(/([a-z])([A-Z])/g, '$1 $2')\n .replace(/^./, function (char) {\n return char.toUpperCase();\n })}\n value={\n property?.value === false\n ? 'False'\n : property?.value === true\n ? 'True'\n : property?.value\n }\n />\n ))}\n\n <>\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingTop: 20\n }}\n >\n <Typography variant='caption'>\n {showIndexNumbers ? \"Column index's\" : 'File Headers'}\n </Typography>\n <Typography variant='caption'>Fields</Typography>\n </div>\n <Divider style={{ marginTop: 5, marginBottom: -14 }} />\n {parsedFieldMappings?.map((field) => (\n <div style={{ height: 42 }}>\n <div style={{ display: 'flex', flexDirection: 'row', gap: 10 }}>\n <Typography style={{ marginTop: 25, width: '50%' }}>\n {showIndexNumbers\n ? 'index ' + field[1]?.headerIndex\n : field[1]?.importFileField}\n </Typography>\n <FluentIcon\n style={{ marginTop: 28, width: '10%' }}\n component={ChromeBackMirroredIcon}\n />\n <Typography\n style={{ marginTop: 25, width: '50%', textAlign: 'right' }}\n >\n {field[1]?.udpField.replace(/([A-Z])/g, ' $1').trim()}\n </Typography>\n </div>\n <Divider style={{ margin: '5px 0px' }} />\n </div>\n ))}\n </>\n </AmbientCard>\n )\n );\n};\n","import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { AmbientCard } from '../../UI/surfaces/cards/AmbientCard';\nimport { AmbientAutoComplete } from '../../UI/inputs/textField/AmbientAutoComplete';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { executeQueryAdHoc } from '../utilities/methodUtils';\nimport { Form } from '../../utilities/form';\nimport { Field } from '../../utilities/form';\nimport { FormButtons } from '../../utilities/form';\nimport { SubmitButton } from '../../utilities/form';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { AmbientStepper } from '../../UI/inputs/menus/AmbientStepper/AmbientStepper';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { DragDropFileUpload } from '../../uploader/DragDropFileUpload';\nimport { Typography } from '@material-ui/core';\nimport { ChromeBackMirroredIcon } from '@fluentui/react-icons';\nimport { FluentButton } from '../../UI/inputs/buttons/FluentButton';\nimport { AmbientTextField } from '../../UI/inputs/textField/AmbientTextField';\nimport { Divider } from '../../UI/utilityDisplay/Divider';\nimport {\n handleExcelFileUpload,\n handleJsonFileUpload,\n handleTextFileUpload\n} from './fileUtils';\nimport { FileImportConfigCard } from './FileImportConfigCard';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { ConfigService } from '../../configService';\n\nconst FileImportMappingWizard = (props) => {\n const { refetchMappings, setNewFileMappingSidesheetOpen, verifyRequiredFields } = props;\n const user = useUser();\n const [importHeaderData, setImportHeaderData] = useState();\n const [udpObjectList, setUdpObjectList] = useState();\n const [selectedDomain, setSelectedDomain] = useState();\n const [selectedFileType, setSelectedFileType] = useState();\n const [fileObject, setFileObject] = useState();\n const [fileImportMappingObject, setFileImportMappingObject] = useState({});\n const [activeStep, setActiveStep] = useState(0);\n const [showIndexNumbers, setShowIndexNumbers] = useState(false);\n const [errorText, setErrorText] = useState('');\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const executeCreateFileMapping = useCallback(\n async (data) =>\n apiMutate(\n ConfigService.productV1ApiUrl,\n `UdpFileImportMapping`,\n {\n method: 'post'\n },\n { data }\n ),\n []\n );\n const { data: udpObjectEntity } = usePromotedMethodEntity(\n 'UdpObjectInfo',\n true\n );\n\n const [{ data: allowedFileTypesData }, refetchAllowedFileTypes] = useAxiosGet(\n ConfigService.productV1ApiUrl,\n `UdpFileImportType`,\n {},\n false\n );\n\n const searchUdpObjectData = useCallback(async () => {\n if (udpObjectEntity?.unityBaseSearchMethod?.apiMethodId && user?.id) {\n const sapUserRes = await executeQueryAdHoc(\n {\n data: {\n eagerLoad: true,\n pageSize: 200,\n filterElements: []\n }\n },\n udpObjectEntity?.unityBaseSearchMethod?.apiMethodId\n );\n if (sapUserRes?.data?.pageList.length > 0) {\n setUdpObjectList(sapUserRes?.data?.pageList);\n }\n }\n }, [udpObjectEntity, user]);\n\n const filterCatalogObjectList = useMemo(() => {\n return udpObjectList;\n }, [udpObjectList]);\n\n const getNameFormattedOptionLabel = (option) => {\n return option?.name.replace(/([A-Z])/g, ' $1').trim();\n };\n\n const getNameOptionLabel = (option) => {\n return option?.name;\n };\n\n const handleFileUpload = async (properties) => {\n let result;\n if (\n selectedFileType.extension === '.csv' ||\n selectedFileType.extension === '.txt'\n ) {\n result = await handleTextFileUpload(fileObject, properties);\n } else if (selectedFileType.extension === '.xlsx') {\n result = await handleExcelFileUpload(fileObject, properties);\n } else if (selectedFileType.extension === '.json') {\n result = await handleJsonFileUpload(fileObject, properties);\n }\n setImportHeaderData(result?.headers);\n };\n\n useEffect(() => {\n searchUdpObjectData();\n }, [searchUdpObjectData]);\n\n const handleCreateNewFieldMapping = useCallback(\n async (values) => {\n const response = await executeCreateFileMapping({\n name: values.name,\n objectInfoSanitizedName: getSanitizedName(selectedDomain.name),\n fileImportType: selectedFileType.id,\n mapping: JSON.stringify(fileImportMappingObject?.mapping),\n properties: JSON.stringify(fileImportMappingObject?.properties)\n }).catch((res) => {\n handleErrorSnackbar(res);\n });\n if (response?.status === 201) {\n handleSuccessSnackbar('Created Mapping');\n refetchMappings();\n setNewFileMappingSidesheetOpen(false);\n }\n },\n [\n executeCreateFileMapping,\n selectedDomain?.name,\n selectedFileType?.id,\n fileImportMappingObject?.mapping,\n fileImportMappingObject?.properties,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n refetchMappings,\n setNewFileMappingSidesheetOpen\n ]\n );\n\n const handleUpdateFieldMapping = (values) => {\n let valid = true;\n selectedDomain?.objectFieldInfo?.forEach((option) => {\n if (\n !option.dataType.endsWith('?') &&\n !option.isPrimaryKey &&\n !option.udpType\n ) {\n if (\n !Object.entries(values).some(\n (obj) => obj[1].businessObjectKey === option.businessObjectKey\n )\n ) {\n if(verifyRequiredFields){\n valid = false;\n }\n }\n }\n });\n if (!valid) {\n setErrorText('All required Udp fields must have a mapping');\n return;\n }\n const filteredMappings = Object.entries(values)\n .filter(([key, value]) => value !== null)\n .reduce((acc, [key, value]) => {\n acc[key] = value;\n return acc;\n }, {});\n const mappedFieldIndexes = Object.keys(filteredMappings).map((key) =>\n parseInt(key.split('udpFieldMapping')[1], 10)\n );\n const fieldMappings = Object.values(filteredMappings).map(\n (selectedUdpField, index) => {\n return {\n udpField: selectedUdpField.name,\n importFileField: !showIndexNumbers\n ? importHeaderData[mappedFieldIndexes[index]]\n : null,\n headerIndex: !showIndexNumbers ? -1 : mappedFieldIndexes[index]\n };\n }\n );\n setFileImportMappingObject((prev) => {\n return { ...prev, mapping: fieldMappings };\n });\n setActiveStep((prev) => prev + 1);\n };\n\n const handleUpdateFileProperties = (values) => {\n setFileImportMappingObject((prev) => {\n let properties = {};\n Object.keys(values).forEach(\n (propKey) =>\n (properties[propKey] =\n 'value' in values[propKey]\n ? values[propKey]?.value\n : values[propKey])\n );\n return { ...prev, properties: properties };\n });\n if ('includesHeader' in values && values?.includesHeader.value === false) {\n setShowIndexNumbers(true);\n }\n handleFileUpload(values);\n setActiveStep((prev) => prev + 1);\n };\n\n const getUdpFieldOptionLabel = (option) => {\n if (\n !option.dataType.endsWith('?') &&\n !option.isPrimaryKey &&\n !option.udpType\n ) {\n return `${option.name.replace(/([A-Z])/g, ' $1').trim()}*`; //required field\n }\n return `${option.name} - ${option.dataType}`;\n };\n\n const handleAddFileToUpload = (fileObj) => {\n setFileObject(fileObj[0]);\n };\n\n const formattedFileTypeProperties = useMemo(() => {\n if (selectedFileType) {\n return JSON.parse(selectedFileType?.properties);\n }\n }, [selectedFileType]);\n\n return (\n <>\n <AmbientCard fullWidth>\n <div style={{ marginBottom: 20 }}>\n <AmbientStepper\n activeStep={activeStep}\n steps={['File', 'Domain', 'Field Mappings', 'Review']}\n orientation='vertical'\n />\n </div>\n {activeStep === 0 && (\n <>\n <AmbientAutoComplete\n isMultiple={false}\n id={'fileImportType'}\n name={'fileImportType'}\n label='File Type'\n onChange={(val) => setSelectedFileType(val)}\n options={allowedFileTypesData}\n size='small'\n getOptionLabelFunction={getNameOptionLabel}\n value={selectedFileType}\n required\n />\n {selectedFileType && (\n <div style={{ marginTop: 5 }}>\n <DragDropFileUpload\n handleUploadFile={handleAddFileToUpload}\n accept={{\n 'text/csv': ['.csv'],\n 'text/plain': ['.txt'],\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n ['.xlsx'],\n 'application/json': ['.json']\n }}\n />\n </div>\n )}\n <Form onSubmit={handleUpdateFileProperties}>\n {formattedFileTypeProperties?.map((property) =>\n property?.options ? (\n <Field\n component={AmbientAutoComplete}\n isMultiple={false}\n id={property.propertyName}\n name={property.propertyName}\n label={property.label}\n options={property.options}\n size='small'\n getOptionLabelFunction={getNameOptionLabel}\n required={property?.required}\n />\n ) : (\n <Field\n component={AmbientTextField}\n isMultiple={false}\n id={property.propertyName}\n name={property.propertyName}\n label={property.label}\n size='small'\n getOptionLabelFunction={getNameOptionLabel}\n required={property?.required}\n />\n )\n )}\n <FormButtons\n style={{\n display: 'flex',\n float: 'right',\n marginRight: -16\n }}\n >\n <SubmitButton\n variant='contained'\n color='secondary'\n disablePristine={false}\n disabled={!fileObject}\n >\n Next\n </SubmitButton>\n </FormButtons>\n </Form>\n </>\n )}\n {activeStep === 1 && (\n <>\n <AmbientAutoComplete\n isMultiple={false}\n id={'domain'}\n name={'domain'}\n label='Domain'\n onChange={(val) => setSelectedDomain(val)}\n options={filterCatalogObjectList}\n size='small'\n getOptionLabelFunction={getNameFormattedOptionLabel}\n value={selectedDomain}\n required\n />\n <div\n style={{ float: 'right', display: 'flex', gap: 8, marginTop: 8 }}\n >\n <FluentButton\n variant='contained'\n onClick={() => setActiveStep((prev) => prev - 1)}\n disabled={activeStep === 0}\n >\n Prev\n </FluentButton>\n <FluentButton\n variant='contained'\n onClick={() => setActiveStep((prev) => prev + 1)}\n color='secondary'\n disabled={!selectedDomain}\n >\n Next\n </FluentButton>\n </div>\n </>\n )}\n {activeStep === 2 && (\n <>\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n paddingTop: 20\n }}\n >\n <Typography variant='caption'>\n {showIndexNumbers ? \"Column index's\" : 'File Headers'}\n </Typography>\n <Typography variant='caption'>UDP Fields</Typography>\n </div>\n <Divider style={{ margin: '5px 0px' }} />\n <Form\n onSubmit={handleUpdateFieldMapping}\n style={{ marginTop: -20 }}\n >\n {importHeaderData?.map((field, index) => (\n <div style={{ height: 42 }}>\n <div\n style={{ display: 'flex', flexDirection: 'row', gap: 10 }}\n >\n <Typography style={{ marginTop: 25, width: '50%' }}>\n {showIndexNumbers ? 'index ' + index : field}\n </Typography>\n <FluentIcon\n style={{ marginTop: 28, width: '10%' }}\n component={ChromeBackMirroredIcon}\n />\n <Field\n style={{ height: 30 }}\n component={AmbientAutoComplete}\n isMultiple={false}\n id={`udpFieldMapping${index}`}\n name={`udpFieldMapping${index}`}\n options={selectedDomain?.objectFieldInfo}\n size='small'\n getOptionLabelFunction={getUdpFieldOptionLabel}\n />\n </div>\n <Divider style={{ margin: '5px 0px' }} />\n </div>\n ))}\n <div style={{ paddingTop: 20, textAlign: 'right', color: 'red' }}>\n {errorText}\n </div>\n <FormButtons\n style={{\n display: 'flex',\n float: 'right',\n paddingTop: 16,\n marginRight: -16\n }}\n >\n <FluentButton\n variant='contained'\n onClick={() => setActiveStep((prev) => prev - 1)}\n disabled={activeStep === 0}\n >\n Prev\n </FluentButton>\n <SubmitButton\n variant='contained'\n color='secondary'\n disablePristine={false}\n >\n Next\n </SubmitButton>\n </FormButtons>\n </Form>\n </>\n )}\n {activeStep === 3 && (\n <Form onSubmit={handleCreateNewFieldMapping}>\n <Field\n component={AmbientTextField}\n id={`name`}\n name={`name`}\n label='Mapping Name'\n size='small'\n />\n <FormButtons\n style={{\n display: 'flex',\n float: 'right',\n marginRight: -16\n }}\n >\n <FluentButton\n variant='contained'\n onClick={() => setActiveStep((prev) => prev - 1)}\n disabled={activeStep === 0}\n >\n Prev\n </FluentButton>\n <SubmitButton\n variant='contained'\n color='secondary'\n disablePristine={false}\n >\n {'Create Mapping'}\n </SubmitButton>\n </FormButtons>\n </Form>\n )}\n </AmbientCard>\n {fileImportMappingObject?.mapping &&<div style={{ marginTop: 10 }}>\n <FileImportConfigCard\n fileMappingRecord={{\n mapping: fileImportMappingObject?.mapping,\n properties: fileImportMappingObject?.properties\n }}\n domain={selectedDomain?.name.replace(/([A-Z])/g, ' $1').trim()}\n />\n </div>}\n </>\n );\n};\n\nexport default FileImportMappingWizard;\n","import React, { useState, useCallback, useEffect } from 'react';\nimport { AmbientCard } from '../../UI/surfaces/cards/AmbientCard';\nimport { AmbientAutoComplete } from '../../UI/inputs/textField/AmbientAutoComplete';\nimport { FluentButton } from '../../UI/inputs/buttons/FluentButton';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { DragDropFileUpload } from '../../uploader/DragDropFileUpload';\nimport FileImportMappingWizard from './FileImportMappingWizard';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { executeQueryAdHoc } from '../utilities/methodUtils';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { FileImportConfigCard } from './FileImportConfigCard';\nimport { ConfigService } from '../../configService';\n\nexport const ImportDataFromFileMapping = (props) => {\n const {onImportSuccess, onImportFail, verifyRequiredFields = true} = props\n const user = useUser();\n const [selectedFileMapping, setSelectedFileMapping] = useState();\n const [udpImportMappingData, setUdpImportMappingData] = useState();\n const [newFileMappingSidesheetOpen, setNewFileMappingSidesheetOpen] =\n useState(false);\n const [fileObject, setFileObject] = useState();\n const [isLoading, setIsLoading] = useState(false)\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const { data: udpFileImportMappingEntity } = usePromotedMethodEntity(\n 'UdpFileImportMapping',\n true\n );\n\n const executeImportDataFromFile = useCallback(\n async (data) =>\n apiMutate(\n ConfigService.productV1ApiUrl,\n `${selectedFileMapping?.objectInfoSanitizedName}/fileImportMapping`,\n {\n method: 'post'\n },\n { data }\n ),\n [selectedFileMapping]\n );\n\n const searchFileImportMappingData = useCallback(async () => {\n if (udpFileImportMappingEntity?.unityBaseSearchMethod?.apiMethodId) {\n const res = await executeQueryAdHoc(\n {\n data: {\n eagerLoad: true,\n pageSize: 200,\n filterElements: []\n }\n },\n udpFileImportMappingEntity?.unityBaseSearchMethod?.apiMethodId\n );\n if (res?.data?.pageList.length > 0) {\n setUdpImportMappingData(res?.data?.pageList);\n }\n }\n }, [udpFileImportMappingEntity?.unityBaseSearchMethod?.apiMethodId]);\n\n useEffect(() => {\n searchFileImportMappingData();\n }, [searchFileImportMappingData]);\n\n const handleImportDataFromFile = useCallback(async () => {\n setIsLoading(true)\n const file = fileObject;\n const blob = new Blob([file], { type: file.type });\n const formData = new FormData();\n formData.append('file', blob, file.name);\n formData.append('tenantId', user?.currentTenantId);\n formData.append('name', selectedFileMapping.name);\n formData.append('objectInfoSanitizedName', selectedFileMapping.objectInfoSanitizedName);\n formData.append('fileImportType', selectedFileMapping.fileImportType);\n formData.append('mapping', selectedFileMapping.mapping);\n formData.append('properties', selectedFileMapping.properties);\n formData.append('id', selectedFileMapping.id);\n const response = await executeImportDataFromFile(formData).catch((res) => {\n setIsLoading(false)\n handleErrorSnackbar(res);\n onImportFail()\n });\n if (response?.status === 201) {\n handleSuccessSnackbar('Imported Data');\n setIsLoading(false)\n onImportSuccess && onImportSuccess()\n }\n\n }, [\n fileObject,\n selectedFileMapping,\n executeImportDataFromFile,\n handleErrorSnackbar,\n handleSuccessSnackbar,\n user,\n onImportSuccess,\n onImportFail\n ]);\n\n const getFileMappingOptionlabel = (option) => {\n return `${option.name} (${option?.udpFileImportMappingUdpFileImportType?.extension})`;\n };\n\n const handleAddFileToUpload = (fileObj) => {\n setFileObject(fileObj[0]);\n };\n\n return (\n <>\n <AmbientCard fullWidth>\n <div style={{ display: 'flex' }}>\n <AmbientAutoComplete\n isMultiple={false}\n id={'fileMapping'}\n name={'fileMapping'}\n label='File Mapping'\n onChange={(val) => setSelectedFileMapping(val)}\n options={udpImportMappingData}\n size='small'\n getOptionLabelFunction={getFileMappingOptionlabel}\n value={selectedFileMapping}\n required\n groupBy={(option) =>\n option?.udpFileImportMappingUdpObjectInfo?.sanitizedName\n }\n />\n </div>\n {selectedFileMapping && (\n <DragDropFileUpload\n handleUploadFile={handleAddFileToUpload}\n accept={{\n 'text/csv': ['.csv'],\n 'text/plain': ['.txt'],\n 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet':\n ['.xlsx'],\n 'application/json': ['.json']\n }}\n />\n )}\n <div\n style={{\n display: 'flex',\n flexDirection: 'row',\n gap: 5,\n float: 'right',\n marginTop: 10\n }}\n >\n <FluentButton\n onClick={() => setNewFileMappingSidesheetOpen(true)}\n variant='outlined'\n >\n Create New Mapping\n </FluentButton>\n <FluentButton\n variant='contained'\n color='secondary'\n onClick={handleImportDataFromFile}\n progress={isLoading}\n disabled={!fileObject}\n >\n Import Data\n </FluentButton>\n </div>\n <SideSheet\n title='Create New File Mapping'\n open={newFileMappingSidesheetOpen}\n onClose={() => setNewFileMappingSidesheetOpen(false)}\n width={'60%'}\n >\n <FileImportMappingWizard\n refetchMappings={searchFileImportMappingData}\n setNewFileMappingSidesheetOpen={setNewFileMappingSidesheetOpen}\n verifyRequiredFields={verifyRequiredFields}\n />\n </SideSheet>\n </AmbientCard>\n <div style={{ marginTop: 10 }}>\n <FileImportConfigCard fileMappingRecord={selectedFileMapping} domain={selectedFileMapping?.udpFileImportMappingUdpObjectInfo?.sanitizedName.replace(/([A-Z])/g, ' $1').trim()}/>\n </div>\n </>\n );\n};\n"],"mappings":"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"}
|
|
@@ -21,27 +21,27 @@ import { A as makeTreeStructure, B as searchForMatchingNode, E as getSearchValue
|
|
|
21
21
|
import { r as SvgIcon, t as getUnityIconFromName } from "./UnityIconLibrary-CjIwzfjv.js";
|
|
22
22
|
import { t as LayoutUnit } from "./LayoutUnit-D4jJvonh.js";
|
|
23
23
|
import { t as useAxiosGet } from "./useAxiosGet-CYnt6Hd0.js";
|
|
24
|
-
import { t as PrimaryActionHeader } from "./PrimaryActionHeader-
|
|
24
|
+
import { t as PrimaryActionHeader } from "./PrimaryActionHeader-H5w3twaM.js";
|
|
25
25
|
import { t as UdpTabs } from "./UdpTabs-DVZGEwOC.js";
|
|
26
26
|
import { t as useSetLocationState } from "./useSetLocationState-Kvcc9BTb.js";
|
|
27
|
-
import { t as PageContainer } from "./PageContainer-
|
|
27
|
+
import { t as PageContainer } from "./PageContainer-ButX_XVS.js";
|
|
28
28
|
import { n as OpenPage } from "./DraggableSidebarTemplate-BUWBvL6H.js";
|
|
29
29
|
import { n as executeQueryInstance } from "./methodUtils-CDx9usdO.js";
|
|
30
30
|
import { n as useBuildEnvironment, t as APP_RIBBON_SPACE } from "./useBuildEnvironment-2gdqpmBX.js";
|
|
31
31
|
import { t as FluentDialog } from "./FluentDialog-B5ZxvX1E.js";
|
|
32
|
-
import { i as InquiryAdvancedSearch, t as InquirySearchContainer } from "./InquirySearchContainer-
|
|
32
|
+
import { i as InquiryAdvancedSearch, t as InquirySearchContainer } from "./InquirySearchContainer-zxbukV51.js";
|
|
33
33
|
import { t as InquiryDashboard } from "./InquiryDashboard-BeXOeKII.js";
|
|
34
34
|
import { i as InquiryHeaderSecondaryTarget, n as InquiryHeaderSecondaryAlertTarget, r as InquiryHeaderSecondary } from "./InquiryHeaderSecondaryAlert-DH8I1ThI.js";
|
|
35
35
|
import { t as InquiryNodeControls } from "./InquiryNodeControls-DeK_hTzo.js";
|
|
36
36
|
import { t as NodeLoader } from "./NodeLoader-6vxxLuHg.js";
|
|
37
37
|
import { t as AggregateChip } from "./AggregateChip-BF7S3x_K.js";
|
|
38
|
-
import { t as RecentlyLoadedNodesTable } from "./RecentlyLoadedNodesTable-
|
|
39
|
-
import { t as UtilitySideBar } from "./UtilitySideBar-
|
|
40
|
-
import { t as PageActionWrapper } from "./PageActionWrapper-
|
|
38
|
+
import { t as RecentlyLoadedNodesTable } from "./RecentlyLoadedNodesTable-BzvR0L0h.js";
|
|
39
|
+
import { t as UtilitySideBar } from "./UtilitySideBar-BU3ppHrv.js";
|
|
40
|
+
import { t as PageActionWrapper } from "./PageActionWrapper-Bm6J0thr.js";
|
|
41
41
|
import { t as WorkflowTreeMenu } from "./WorkflowTreeMenu-HHtwkDzu.js";
|
|
42
42
|
import { t as UnitStateType } from "./workflowEnums-BJmSE_P8.js";
|
|
43
43
|
import { i as transformWorkflowPlayTree } from "./workflowUtilities-Brby0vts.js";
|
|
44
|
-
import { t as WorkflowContent } from "./WorkflowContent-
|
|
44
|
+
import { t as WorkflowContent } from "./WorkflowContent-HlBHhWl8.js";
|
|
45
45
|
import { t as LoadingOverlay_default } from "./LoadingOverlay-CLUqp3yg.js";
|
|
46
46
|
import { t as useAuthedUser } from "./useAuthedUser-Bhr7Yhlg.js";
|
|
47
47
|
import { t as buildCatalogObjectList } from "./CatalogUtilities-CAPPpjBH.js";
|
|
@@ -2379,7 +2379,8 @@ const InquiryContainer = (props) => {
|
|
|
2379
2379
|
inquiryContainerId: containerId
|
|
2380
2380
|
},
|
|
2381
2381
|
disableMargins: true,
|
|
2382
|
-
loadingHeight: 32
|
|
2382
|
+
loadingHeight: 32,
|
|
2383
|
+
autoHeight: true
|
|
2383
2384
|
}) : /* @__PURE__ */ React.createElement(NodeDetails, { node: selectedNode })), showToggle1 && /* @__PURE__ */ React.createElement("div", { className: clsx(primaryExpanded ? classes.chevronButtons : classes.chevronButtonClosed) }, /* @__PURE__ */ React.createElement(FluentIconButton, {
|
|
2384
2385
|
onClick: () => setPrimaryExpanded(!primaryExpanded),
|
|
2385
2386
|
icon: primaryExpanded ? ChevronUpIcon : ChevronDownIcon
|
|
@@ -2399,7 +2400,8 @@ const InquiryContainer = (props) => {
|
|
|
2399
2400
|
inquiryContainerId: containerId
|
|
2400
2401
|
},
|
|
2401
2402
|
disableMargins: true,
|
|
2402
|
-
loadingHeight: 32
|
|
2403
|
+
loadingHeight: 32,
|
|
2404
|
+
autoHeight: true
|
|
2403
2405
|
}) : /* @__PURE__ */ React.createElement(React.Fragment, null, /* @__PURE__ */ React.createElement(InquiryHeaderSecondaryTarget, { className: classes.actions }), /* @__PURE__ */ React.createElement(InquiryHeaderSecondaryAlertTarget, { className: classes.actions })))), selectedNode?.properties?.tabs?.length > 1 && !inSearch ? /* @__PURE__ */ React.createElement(UdpTabs, {
|
|
2404
2406
|
value: tabValue,
|
|
2405
2407
|
onChange: handlePageChange,
|
|
@@ -2635,4 +2637,4 @@ const Inquiry = (props) => {
|
|
|
2635
2637
|
|
|
2636
2638
|
//#endregion
|
|
2637
2639
|
export { InquiryTreeMenuItem as a, ExecuteApiDialog as c, InquiryTreeMenu as i, InquiryContainer as n, NodeDetails as o, NodeList as r, InquiryWrapper as s, Inquiry as t };
|
|
2638
|
-
//# sourceMappingURL=Inquiry-
|
|
2640
|
+
//# sourceMappingURL=Inquiry-1o8EuckI.js.map
|