udp-react-enterprise-component-library 25.18.1-beta.50 → 25.18.1-beta.52
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-C_rohJIr.js → ActionProvider-DGzli-X1.js} +4 -4
- package/dist/{ActionProvider-C_rohJIr.js.map → ActionProvider-DGzli-X1.js.map} +1 -1
- package/dist/{ActionSplitScreen-OFqIncG9.js → ActionSplitScreen-gKH4ISoo.js} +5 -5
- package/dist/{ActionSplitScreen-OFqIncG9.js.map → ActionSplitScreen-gKH4ISoo.js.map} +1 -1
- package/dist/{ActionWrapper-d9dIOSYB.js → ActionWrapper-Bpp9Mn4j.js} +8 -8
- package/dist/{ActionWrapper-d9dIOSYB.js.map → ActionWrapper-Bpp9Mn4j.js.map} +1 -1
- package/dist/{AggregateChip-6GSEsL_A.js → AggregateChip-BF7S3x_K.js} +3 -3
- package/dist/{AggregateChip-6GSEsL_A.js.map → AggregateChip-BF7S3x_K.js.map} +1 -1
- package/dist/{AmbientGridTemplate-D0GSZj4a.js → AmbientGridTemplate-D1TMpzxb.js} +4 -4
- package/dist/{AmbientGridTemplate-D0GSZj4a.js.map → AmbientGridTemplate-D1TMpzxb.js.map} +1 -1
- package/dist/{AppMenu-DW1oQdFA.js → AppMenu-oGJtO6Vp.js} +2 -2
- package/dist/{AppMenu-DW1oQdFA.js.map → AppMenu-oGJtO6Vp.js.map} +1 -1
- package/dist/{AuthProvider-qWjJiYSg.js → AuthProvider-C8qG0V63.js} +3 -3
- package/dist/{AuthProvider-qWjJiYSg.js.map → AuthProvider-C8qG0V63.js.map} +1 -1
- package/dist/{BaseTreeMenu-CBFIl0VF.js → BaseTreeMenu-Dg8MW4TD.js} +4 -4
- package/dist/{BaseTreeMenu-CBFIl0VF.js.map → BaseTreeMenu-Dg8MW4TD.js.map} +1 -1
- package/dist/{BioCardWrapper-BiRI3EDR.js → BioCardWrapper-B2bT-4zw.js} +2 -2
- package/dist/{BioCardWrapper-BiRI3EDR.js.map → BioCardWrapper-B2bT-4zw.js.map} +1 -1
- package/dist/{BulkActionsGridButton-uhTB0AGy.js → BulkActionsGridButton-JYgIABWU.js} +3 -3
- package/dist/{BulkActionsGridButton-uhTB0AGy.js.map → BulkActionsGridButton-JYgIABWU.js.map} +1 -1
- package/dist/{CircleButton-B9JAMG53.js → CircleButton-CrvnPHDw.js} +2 -2
- package/dist/{CircleButton-B9JAMG53.js.map → CircleButton-CrvnPHDw.js.map} +1 -1
- package/dist/{CrudBrowserContainer-De2WRDIH.js → CrudBrowserContainer-DJHq5ILl.js} +2 -2
- package/dist/{CrudBrowserContainer-De2WRDIH.js.map → CrudBrowserContainer-DJHq5ILl.js.map} +1 -1
- package/dist/{CrudForm-B5VDs-17.js → CrudForm-C9xMnPoA.js} +2 -2
- package/dist/{CrudForm-B5VDs-17.js.map → CrudForm-C9xMnPoA.js.map} +1 -1
- package/dist/{CrudTableSidePanel-DnxJx49i.js → CrudTableSidePanel-CNEZxJi0.js} +3 -3
- package/dist/{CrudTableSidePanel-DnxJx49i.js.map → CrudTableSidePanel-CNEZxJi0.js.map} +1 -1
- package/dist/{DataBrowserContainer-DZGhEt9N.js → DataBrowserContainer-cU_EEIiR.js} +6 -6
- package/dist/{DataBrowserContainer-DZGhEt9N.js.map → DataBrowserContainer-cU_EEIiR.js.map} +1 -1
- package/dist/{EntityHeader-DiOEw-za.js → EntityHeader-DKkYwvsi.js} +4 -4
- package/dist/{EntityHeader-DiOEw-za.js.map → EntityHeader-DKkYwvsi.js.map} +1 -1
- package/dist/{FieldArrayCard-DeZ7Q9KB.js → FieldArrayCard-C1I5_qJ4.js} +2 -2
- package/dist/{FieldArrayCard-DeZ7Q9KB.js.map → FieldArrayCard-C1I5_qJ4.js.map} +1 -1
- package/dist/{FluentCell-D2lpxw4O.js → FluentCell-F9eits6u.js} +2 -2
- package/dist/{FluentCell-D2lpxw4O.js.map → FluentCell-F9eits6u.js.map} +1 -1
- package/dist/{FluentDataTable-ChpZUwal.js → FluentDataTable-BSQ_EHJX.js} +2 -2
- package/dist/{FluentDataTable-ChpZUwal.js.map → FluentDataTable-BSQ_EHJX.js.map} +1 -1
- package/dist/{GridFunctions-CRTDIOe0.js → GridFunctions-D76ygiH2.js} +2 -2
- package/dist/{GridFunctions-CRTDIOe0.js.map → GridFunctions-D76ygiH2.js.map} +1 -1
- package/dist/{GroupNode-Djp62Urb.js → GroupNode-CZX--ble.js} +2 -2
- package/dist/{GroupNode-Djp62Urb.js.map → GroupNode-CZX--ble.js.map} +1 -1
- package/dist/{IconRenderer-JdCm70xC.js → IconRenderer-BEezfZ3N.js} +2 -2
- package/dist/{IconRenderer-JdCm70xC.js.map → IconRenderer-BEezfZ3N.js.map} +1 -1
- package/dist/{Inquiry-Cjz91wf_.js → Inquiry-BCu8bSal.js} +12 -12
- package/dist/{Inquiry-Cjz91wf_.js.map → Inquiry-BCu8bSal.js.map} +1 -1
- package/dist/Inquiry-NWBPf-o4.js +3 -0
- package/dist/{InquiryNodeControls-B677QFu4.js → InquiryNodeControls-DeK_hTzo.js} +2 -2
- package/dist/{InquiryNodeControls-B677QFu4.js.map → InquiryNodeControls-DeK_hTzo.js.map} +1 -1
- package/dist/{InquirySearchContainer-BnHwUWFC.js → InquirySearchContainer-DLkAOjWJ.js} +5 -5
- package/dist/{InquirySearchContainer-BnHwUWFC.js.map → InquirySearchContainer-DLkAOjWJ.js.map} +1 -1
- package/dist/MenuPage-R6mbeCuS.js +3 -0
- package/dist/{MenuPage-fqEs3MSY.js → MenuPage-tkkhpco5.js} +4 -4
- package/dist/{MenuPage-fqEs3MSY.js.map → MenuPage-tkkhpco5.js.map} +1 -1
- package/dist/{MenuProvider-rwBliXcV.js → MenuProvider-BuTAUs0Z.js} +2 -2
- package/dist/{MenuProvider-rwBliXcV.js.map → MenuProvider-BuTAUs0Z.js.map} +1 -1
- package/dist/{MttMainTimeline-nusYDWg_.js → MttMainTimeline-BG6nlcC_.js} +2 -2
- package/dist/{MttMainTimeline-nusYDWg_.js.map → MttMainTimeline-BG6nlcC_.js.map} +1 -1
- package/dist/{MttSummary-DWESRW7k.js → MttSummary-DP2U55LK.js} +3 -3
- package/dist/{MttSummary-DWESRW7k.js.map → MttSummary-DP2U55LK.js.map} +1 -1
- package/dist/MyExportsPage-DFIMneFr.js +3 -0
- package/dist/{MyExportsPage-CeeH8ViY.js → MyExportsPage-zKRz4fL5.js} +2 -2
- package/dist/{MyExportsPage-CeeH8ViY.js.map → MyExportsPage-zKRz4fL5.js.map} +1 -1
- package/dist/{NotesScreen-DE3fhpjW.js → NotesScreen-DQatppnX.js} +6 -6
- package/dist/{NotesScreen-DE3fhpjW.js.map → NotesScreen-DQatppnX.js.map} +1 -1
- package/dist/{PageActionWrapper-C-irIPLE.js → PageActionWrapper-BBkGtnC6.js} +3 -3
- package/dist/{PageActionWrapper-C-irIPLE.js.map → PageActionWrapper-BBkGtnC6.js.map} +1 -1
- package/dist/{PageRenderer-AfVo1f0z.js → PageRenderer-BTkUO-hr.js} +2 -2
- package/dist/{PageRenderer-AfVo1f0z.js.map → PageRenderer-BTkUO-hr.js.map} +1 -1
- package/dist/{PaymentForm-CRlhsB2F.js → PaymentForm-CtrVBoH8.js} +2 -2
- package/dist/{PaymentForm-CRlhsB2F.js.map → PaymentForm-CtrVBoH8.js.map} +1 -1
- package/dist/{RecentlyLoadedNodesTable-8WQBaAl4.js → RecentlyLoadedNodesTable-Dy8yBVfH.js} +2 -2
- package/dist/{RecentlyLoadedNodesTable-8WQBaAl4.js.map → RecentlyLoadedNodesTable-Dy8yBVfH.js.map} +1 -1
- package/dist/{RecentlyLoadedNodesWidget--NDwNQQF.js → RecentlyLoadedNodesWidget-C5chQWOm.js} +2 -2
- package/dist/{RecentlyLoadedNodesWidget--NDwNQQF.js.map → RecentlyLoadedNodesWidget-C5chQWOm.js.map} +1 -1
- package/dist/{RemindersCard-CSJ8buYt.js → RemindersCard-BOSGv9pc.js} +4 -4
- package/dist/{RemindersCard-CSJ8buYt.js.map → RemindersCard-BOSGv9pc.js.map} +1 -1
- package/dist/{RemindersScreen-CyT18piP.js → RemindersScreen-Cp7lMWrE.js} +6 -6
- package/dist/{RemindersScreen-CyT18piP.js.map → RemindersScreen-Cp7lMWrE.js.map} +1 -1
- package/dist/{RemindersWidget-B3qlh8K-.js → RemindersWidget-BnaccE9-.js} +5 -5
- package/dist/{RemindersWidget-B3qlh8K-.js.map → RemindersWidget-BnaccE9-.js.map} +1 -1
- package/dist/{SearchServiceDatasource-BrfkHkEq.js → SearchServiceDatasource-D8egrLwe.js} +3 -3
- package/dist/{SearchServiceDatasource-BrfkHkEq.js.map → SearchServiceDatasource-D8egrLwe.js.map} +1 -1
- package/dist/{SearchUtilities-B1TCyppF.js → SearchUtilities-DUW0kaw_.js} +2 -2
- package/dist/{SearchUtilities-B1TCyppF.js.map → SearchUtilities-DUW0kaw_.js.map} +1 -1
- package/dist/{Shell-CL_ENLg6.js → Shell-B6Qxi2hZ.js} +9 -9
- package/dist/{Shell-CL_ENLg6.js.map → Shell-B6Qxi2hZ.js.map} +1 -1
- package/dist/{ShortcutContentFinder-DTkqEgtI.js → ShortcutContentFinder-BR-Gd55o.js} +5 -5
- package/dist/{ShortcutContentFinder-DTkqEgtI.js.map → ShortcutContentFinder-BR-Gd55o.js.map} +1 -1
- package/dist/{SiteHeader-6rdY93D_.js → SiteHeader-CuOFCr7D.js} +5 -5
- package/dist/{SiteHeader-6rdY93D_.js.map → SiteHeader-CuOFCr7D.js.map} +1 -1
- package/dist/{Statistic-ChTR_kas.js → Statistic-CB8UpsW4.js} +2 -2
- package/dist/{Statistic-ChTR_kas.js.map → Statistic-CB8UpsW4.js.map} +1 -1
- package/dist/{TableContainer-CcHjtMCa.js → TableContainer-B0IAjIA3.js} +3 -3
- package/dist/{TableContainer-CcHjtMCa.js.map → TableContainer-B0IAjIA3.js.map} +1 -1
- package/dist/{TenantProvider-C-3eqCA3.js → TenantProvider-CCrrxyiD.js} +9 -8
- package/dist/TenantProvider-CCrrxyiD.js.map +1 -0
- package/dist/{TreeUtilities-VCy2z4Qv.js → TreeUtilities-jEhtZNg5.js} +4 -4
- package/dist/{TreeUtilities-VCy2z4Qv.js.map → TreeUtilities-jEhtZNg5.js.map} +1 -1
- package/dist/UI/accordion/index.js +1 -1
- package/dist/UI/dataDisplay/FluentDataTable/FluentCell/index.js +1 -1
- package/dist/UI/dataDisplay/FluentDataTable/index.js +1 -1
- package/dist/UI/dataDisplay/entityHeader/index.js +1 -1
- package/dist/UI/dataDisplay/index.js +1 -1
- package/dist/UI/fileViewer/index.js +1 -1
- package/dist/UI/floorplans/index.js +1 -1
- package/dist/UI/forms/index.js +1 -1
- package/dist/UI/index.js +14 -14
- package/dist/UI/inputs/fieldArrayCard/index.js +1 -1
- package/dist/UI/mapLayout/index.js +1 -1
- package/dist/UI/mapLayout/ui/index.js +1 -1
- package/dist/UI/navigation/index.js +1 -1
- package/dist/UI/navigation/menus/index.js +1 -1
- package/dist/UI/templates/deprecated/AmbientGridTemplate/index.js +1 -1
- package/dist/UI/templates/ui/renderers/index.js +1 -1
- package/dist/UI/timeline/fluentTimeline/index.js +1 -1
- package/dist/UI/timeline/index.js +1 -1
- package/dist/UI/utilityDisplay/alerts/index.js +1 -1
- package/dist/UI/utilityDisplay/index.js +5 -5
- package/dist/UI/utilityDisplay/utilities/index.js +1 -1
- package/dist/UI/widgets/library/RecentlyLoadedNodesWidget/index.js +1 -1
- package/dist/UI/widgets/library/RemindersWidget/index.js +1 -1
- package/dist/{UdpAlertsContainer-Dz76Kg2v.js → UdpAlertsContainer-CbiqX1P0.js} +4 -4
- package/dist/{UdpAlertsContainer-Dz76Kg2v.js.map → UdpAlertsContainer-CbiqX1P0.js.map} +1 -1
- package/dist/{UdpAppProvider-XtIYbmNb.js → UdpAppProvider-BuJv7P-y.js} +3 -3
- package/dist/{UdpAppProvider-XtIYbmNb.js.map → UdpAppProvider-BuJv7P-y.js.map} +1 -1
- package/dist/{UdpAuditEvents-Bqz0_-Du.js → UdpAuditEvents-JP-tGjrh.js} +2 -2
- package/dist/{UdpAuditEvents-Bqz0_-Du.js.map → UdpAuditEvents-JP-tGjrh.js.map} +1 -1
- package/dist/UdpAuditEventsPage-BiUdXrGu.js +3 -0
- package/dist/{UdpAuditEventsPage-CobHOioY.js → UdpAuditEventsPage-CohNvZiq.js} +2 -2
- package/dist/{UdpAuditEventsPage-CobHOioY.js.map → UdpAuditEventsPage-CohNvZiq.js.map} +1 -1
- package/dist/{UdpDataBrowserPage-B-afkKoz.js → UdpDataBrowserPage-CpDMeFtE.js} +7 -7
- package/dist/{UdpDataBrowserPage-B-afkKoz.js.map → UdpDataBrowserPage-CpDMeFtE.js.map} +1 -1
- package/dist/{UdpFormsPrivateForm-L8NRz5Xf.js → UdpFormsPrivateForm-D6clAgfY.js} +2 -2
- package/dist/{UdpFormsPrivateForm-L8NRz5Xf.js.map → UdpFormsPrivateForm-D6clAgfY.js.map} +1 -1
- package/dist/{UdpFormsSubmissionGrid-CkrI4_CC.js → UdpFormsSubmissionGrid-DzMuwwTO.js} +3 -3
- package/dist/{UdpFormsSubmissionGrid-CkrI4_CC.js.map → UdpFormsSubmissionGrid-DzMuwwTO.js.map} +1 -1
- package/dist/{UdpGridPanelManagementPage-Cvye5uKC.js → UdpGridPanelManagementPage-CJbKbZeN.js} +2 -2
- package/dist/{UdpGridPanelManagementPage-Cvye5uKC.js.map → UdpGridPanelManagementPage-CJbKbZeN.js.map} +1 -1
- package/dist/{UdpInquiryMaintenanceEnginePage-BiKDpo6a.js → UdpInquiryMaintenanceEnginePage-B7jCKzw5.js} +2 -2
- package/dist/{UdpInquiryMaintenanceEnginePage-BiKDpo6a.js.map → UdpInquiryMaintenanceEnginePage-B7jCKzw5.js.map} +1 -1
- package/dist/{UdpMaintenanceEnginePage-C1UcnDlL.js → UdpMaintenanceEnginePage-C5OzABlj.js} +6 -6
- package/dist/{UdpMaintenanceEnginePage-C1UcnDlL.js.map → UdpMaintenanceEnginePage-C5OzABlj.js.map} +1 -1
- package/dist/{UdpNotesPage-Deug2da_.js → UdpNotesPage-CO5te_bd.js} +6 -6
- package/dist/{UdpNotesPage-Deug2da_.js.map → UdpNotesPage-CO5te_bd.js.map} +1 -1
- package/dist/{UdpRemindersPage-B8vCglBX.js → UdpRemindersPage-Dvoe-qlm.js} +6 -6
- package/dist/{UdpRemindersPage-B8vCglBX.js.map → UdpRemindersPage-Dvoe-qlm.js.map} +1 -1
- package/dist/{UdpTransactionTypesPage-DxUsXnV7.js → UdpTransactionTypesPage-DFpnQn7f.js} +3 -3
- package/dist/{UdpTransactionTypesPage-DxUsXnV7.js.map → UdpTransactionTypesPage-DFpnQn7f.js.map} +1 -1
- package/dist/{UdpTransactionsPage-BZ0Idg5s.js → UdpTransactionsPage-hu97DvPW.js} +4 -4
- package/dist/{UdpTransactionsPage-BZ0Idg5s.js.map → UdpTransactionsPage-hu97DvPW.js.map} +1 -1
- package/dist/{UdpVerticalManagementPage-DHK7-w0K.js → UdpVerticalManagementPage-Cc4zz9Tv.js} +3 -3
- package/dist/{UdpVerticalManagementPage-DHK7-w0K.js.map → UdpVerticalManagementPage-Cc4zz9Tv.js.map} +1 -1
- package/dist/{UdpVerticalManagementSidesheet-C2kuDXac.js → UdpVerticalManagementSidesheet-DGL4dyia.js} +4 -4
- package/dist/{UdpVerticalManagementSidesheet-C2kuDXac.js.map → UdpVerticalManagementSidesheet-DGL4dyia.js.map} +1 -1
- package/dist/{UserForm-DZ1a9uqZ.js → UserForm-DNgeQvad.js} +2 -2
- package/dist/{UserForm-DZ1a9uqZ.js.map → UserForm-DNgeQvad.js.map} +1 -1
- package/dist/{UserFormSideSheet-B7bFqu5x.js → UserFormSideSheet-RyDFg3QI.js} +2 -2
- package/dist/{UserFormSideSheet-B7bFqu5x.js.map → UserFormSideSheet-RyDFg3QI.js.map} +1 -1
- package/dist/UserFormSideSheet-iBczI7p0.js +3 -0
- package/dist/{VirtualBrowser-BZkfXaY5.js → VirtualBrowser-CVs-vW3x.js} +3 -3
- package/dist/{VirtualBrowser-BZkfXaY5.js.map → VirtualBrowser-CVs-vW3x.js.map} +1 -1
- package/dist/VirtualBrowser-CcWYHhRb.js +3 -0
- package/dist/{WorkflowContainer-CHmVR99E.js → WorkflowContainer-Boj87JRI.js} +1 -1
- package/dist/{WorkflowContainer-BheQPhXt.js → WorkflowContainer-DDGm1Cxo.js} +3 -3
- package/dist/{WorkflowContainer-BheQPhXt.js.map → WorkflowContainer-DDGm1Cxo.js.map} +1 -1
- package/dist/{WorkflowTreeMenu-D2Uc09jP.js → WorkflowTreeMenu-HHtwkDzu.js} +4 -4
- package/dist/{WorkflowTreeMenu-D2Uc09jP.js.map → WorkflowTreeMenu-HHtwkDzu.js.map} +1 -1
- package/dist/{accordion-CT8euUVM.js → accordion--zpb1uMC.js} +2 -2
- package/dist/{accordion-CT8euUVM.js.map → accordion--zpb1uMC.js.map} +1 -1
- package/dist/{actionSummary-BEOW5B3h.js → actionSummary-D0CwyTXJ.js} +2 -2
- package/dist/{actionSummary-BEOW5B3h.js.map → actionSummary-D0CwyTXJ.js.map} +1 -1
- package/dist/{actionUtils-Bj5-851p.js → actionUtils-CPmiSAig.js} +2 -2
- package/dist/{actionUtils-Bj5-851p.js.map → actionUtils-CPmiSAig.js.map} +1 -1
- package/dist/actions/actionSummary/index.js +1 -1
- package/dist/actions/index.js +5 -5
- package/dist/actions/utils/index.js +1 -1
- package/dist/{aggregateUtils-B10uvnUw.js → aggregateUtils-UcpEjFnf.js} +2 -2
- package/dist/{aggregateUtils-B10uvnUw.js.map → aggregateUtils-UcpEjFnf.js.map} +1 -1
- package/dist/{aggridHelpers-RYO7tWY9.js → aggridHelpers-BvrSzjdD.js} +3 -3
- package/dist/{aggridHelpers-RYO7tWY9.js.map → aggridHelpers-BvrSzjdD.js.map} +1 -1
- package/dist/{auth-DX4sNV3x.js → auth-DZmqyrT1.js} +2 -2
- package/dist/{auth-DX4sNV3x.js.map → auth-DZmqyrT1.js.map} +1 -1
- package/dist/componentSystems/multiThreadTimeline/index.js +3 -3
- package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +1 -1
- package/dist/componentSystems/multiThreadTimeline/mttSummary/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/dataBrowser/index.js +1 -1
- package/dist/enums/index.js +2 -2
- package/dist/{fileViewer-BVzlhb3g.js → fileViewer-BbIFHura.js} +2 -2
- package/dist/{fileViewer-BVzlhb3g.js.map → fileViewer-BbIFHura.js.map} +1 -1
- package/dist/{floorplans-CF6ssxTg.js → floorplans-DNUFP5-n.js} +2 -2
- package/dist/{floorplans-CF6ssxTg.js.map → floorplans-DNUFP5-n.js.map} +1 -1
- package/dist/{fluentTimeline-BWoLOxF_.js → fluentTimeline-DpnUZabY.js} +2 -2
- package/dist/{fluentTimeline-BWoLOxF_.js.map → fluentTimeline-DpnUZabY.js.map} +1 -1
- package/dist/hooks/index.js +3 -3
- package/dist/index.js +63 -63
- package/dist/inquiry/dashboard/index.js +1 -1
- package/dist/inquiry/index.js +4 -4
- package/dist/inquiry/inquiryBar/index.js +1 -1
- package/dist/inquiry/search/index.js +1 -1
- package/dist/maintenanceEngine/crudBrowser/index.js +2 -2
- package/dist/maintenanceEngine/index.js +4 -4
- package/dist/maintenanceEngine/tableBrowser/index.js +1 -1
- package/dist/maintenanceEngine/virtualBrowser/index.js +1 -1
- package/dist/{mapLayout-DCBNFKk9.js → mapLayout-B_m2Fh8n.js} +2 -2
- package/dist/{mapLayout-DCBNFKk9.js.map → mapLayout-B_m2Fh8n.js.map} +1 -1
- package/dist/menuPage/index.js +1 -1
- package/dist/{menuPage-PIJOkANO.js → menuPage-7DcUM-Q3.js} +2 -2
- package/dist/{menuPage-PIJOkANO.js.map → menuPage-7DcUM-Q3.js.map} +1 -1
- package/dist/{menuUtilities-B6z02FRb.js → menuUtilities-Da5uVIJ8.js} +2 -2
- package/dist/{menuUtilities-B6z02FRb.js.map → menuUtilities-Da5uVIJ8.js.map} +1 -1
- package/dist/notes/index.js +1 -1
- package/dist/{profile-CXlla7mZ.js → profile-BA_cbWI8.js} +3 -3
- package/dist/{profile-CXlla7mZ.js.map → profile-BA_cbWI8.js.map} +1 -1
- package/dist/providers/index.js +1 -1
- package/dist/reminders/index.js +2 -2
- package/dist/routes/index.js +1 -1
- package/dist/{routes-BToKqY03.js → routes-qV4EIuwZ.js} +7 -7
- package/dist/{routes-BToKqY03.js.map → routes-qV4EIuwZ.js.map} +1 -1
- package/dist/shell/index.js +3 -3
- package/dist/shell/ui/addUser/index.js +1 -1
- package/dist/shell/ui/index.js +2 -2
- package/dist/shell/ui/profile/index.js +1 -1
- package/dist/stores/index.js +1 -1
- package/dist/{tenantStore-TgmV03z9.js → tenantStore-CFYu7ndZ.js} +2 -2
- package/dist/tenantStore-CFYu7ndZ.js.map +1 -0
- package/dist/{theme-Bb8h8tjE.js → theme-_CEHumbt.js} +3 -3
- package/dist/theme-_CEHumbt.js.map +1 -0
- package/dist/treeMenu/index.js +1 -1
- package/dist/types/src/enums/unitySystemEnums.d.ts +5 -0
- package/dist/types/src/enums/unitySystemEnums.d.ts.map +1 -1
- package/dist/types/src/stores/tenantStore.d.ts +1 -0
- package/dist/types/src/stores/tenantStore.d.ts.map +1 -1
- package/dist/types/src/utilities/tenant/TenantProvider.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/udp/ShortcutContent/index.js +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/UdpFormsPrivateForm/index.js +1 -1
- package/dist/udp/pages/UdpFormsSubmissionGrid/index.js +1 -1
- package/dist/udp/pages/UdpGridPanelManagementPage/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 +13 -13
- package/dist/udp/pages/UdpPagesLazy/index.js +1 -1
- package/dist/udp/pages/UdpRemindersPage/index.js +1 -1
- package/dist/udp/pages/UdpTransactionTypesPage/index.js +1 -1
- package/dist/udp/pages/UdpTransactionsPage/index.js +1 -1
- package/dist/udp/pages/UdpVerticalManagementPage/index.js +1 -1
- package/dist/udp/pages/UdpVerticalManagementSidesheet/index.js +1 -1
- package/dist/{unitySystemEnums-e5F9Jr7m.js → unitySystemEnums-CZDCsD5t.js} +6 -2
- package/dist/{unitySystemEnums-e5F9Jr7m.js.map → unitySystemEnums-CZDCsD5t.js.map} +1 -1
- package/dist/{useActions-BWBXokgQ.js → useActions-DZe6YlEm.js} +3 -3
- package/dist/{useActions-BWBXokgQ.js.map → useActions-DZe6YlEm.js.map} +1 -1
- package/dist/{usePromotedMethodEntities-DaPFmr0s.js → usePromotedMethodEntities-D-GoZJZB.js} +2 -2
- package/dist/{usePromotedMethodEntities-DaPFmr0s.js.map → usePromotedMethodEntities-D-GoZJZB.js.map} +1 -1
- package/dist/{useSearchFilterParamsMap-DPCfEY-N.js → useSearchFilterParamsMap-hAHx2Rav.js} +2 -2
- package/dist/{useSearchFilterParamsMap-DPCfEY-N.js.map → useSearchFilterParamsMap-hAHx2Rav.js.map} +1 -1
- package/dist/utilities/aggrid/datasources/index.js +1 -1
- package/dist/utilities/aggrid/index.js +2 -2
- package/dist/utilities/auth/index.js +3 -3
- package/dist/utilities/form/paymentForm/index.js +1 -1
- package/dist/utilities/menus/index.js +1 -1
- package/dist/utilities/provider/index.js +1 -1
- package/dist/utilities/search/index.js +1 -1
- package/dist/utilities/tenant/index.js +1 -1
- package/dist/utilities/theme/index.js +1 -1
- package/dist/utilities/tree/index.js +1 -1
- package/dist/{utilityDisplay-C6c73Efx.js → utilityDisplay-DtdjV7V1.js} +2 -2
- package/dist/{utilityDisplay-C6c73Efx.js.map → utilityDisplay-DtdjV7V1.js.map} +1 -1
- package/dist/{withEngineComponent-JSgAYpSg.js → withEngineComponent-CpOJBSmx.js} +2 -2
- package/dist/{withEngineComponent-JSgAYpSg.js.map → withEngineComponent-CpOJBSmx.js.map} +1 -1
- package/dist/workflow/index.js +2 -2
- package/dist/workflow/menus/index.js +1 -1
- package/export-map.json +3 -2
- package/package.json +1 -1
- package/dist/Inquiry-C1q14Yyd.js +0 -3
- package/dist/MenuPage-DP1ATpru.js +0 -3
- package/dist/MyExportsPage-DGc4Sbt9.js +0 -3
- package/dist/TenantProvider-C-3eqCA3.js.map +0 -1
- package/dist/UdpAuditEventsPage-DuHg-BRJ.js +0 -3
- package/dist/UserFormSideSheet-tpmcX5Ax.js +0 -3
- package/dist/VirtualBrowser-BUTWxd9P.js +0 -3
- package/dist/tenantStore-TgmV03z9.js.map +0 -1
- package/dist/theme-Bb8h8tjE.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowContainer-BheQPhXt.js","names":[],"sources":["../src/workflow/WorkflowContainer.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { makeStyles } from '@material-ui/core';\nimport { WorkflowTreeMenu } from './menus/WorkflowTreeMenu';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useShellStore } from '../stores/shellStore';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/useBuildEnvironment';\nimport { WorkflowContent } from './WorkflowContent';\nimport {\n transformWorkflowPlayTree,\n updateWorkflowPlayNodeState\n} from '../utilities/workflow/workflowUtilities';\nimport { useUpdateSearchParams } from '../hooks/useUpdateSearchParams';\nimport { useUser } from '../utilities/auth/useUser';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../configService';\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\nexport const WorkflowContainer = (props) => {\n const { playId, taskId, autoCollapseNav = true } = props;\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const location = useLocation();\n const updateSearchParams = useUpdateSearchParams();\n const user = useUser();\n const setLocationState = useSetLocationState();\n const { t } = useTranslation();\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 [reloadFromPage, setReloadFromPage] = useState(false);\n const [workflow, setWorkflow] = useState(false);\n\n const state = location.state;\n let searchParamStr = location.search;\n let searchParams = new URLSearchParams(searchParamStr);\n const urlPlayId = location.pathname.replace('/workflowtask/', '');\n const udpPlayId =\n playId ||\n urlPlayId ||\n (state\n ? state.playId\n : searchParams.has('playId') === true\n ? searchParams.get('playId')\n : '');\n\n const udpTaskId =\n taskId ||\n (state\n ? state.taskId\n : searchParams.has('taskId') === true\n ? searchParams.get('taskId')\n : '');\n\n const [{ data: workflowPlay, loading: workflowPlayLoading }, reloadWorkflow] =\n useAxiosGet(\n ConfigService.builderV1ApiUrl,\n `workflow/play/${udpPlayId}`,\n {},\n !!!udpPlayId,\n false\n );\n\n const [{ data: users }] = useAxiosGet(\n ConfigService.securityV1ApiUrl,\n `users?tenantId=${user?.currentTenantId || ''}`,\n {},\n !!!user?.currentTenantId\n );\n\n const [{ data: groups }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `groups?tenantId=${user?.currentTenantId || ''}&productId=${\n ConfigService.config.UNITY_PRODUCT_ID\n }`,\n {},\n !!!user?.currentTenantId\n );\n\n // const getNodeState = useCallback(\n // async (nodeId) =>\n // apiMutate(\n // ConfigService.builderV1ApiUrl,\n // `workflow/play/${udpPlayId}/node/${nodeId}/state`,\n // {\n // method: 'get'\n // }\n // ),\n // [udpPlayId]\n // );\n\n const { setSubHeaderActionHasChildren, setNavigationExpanded } =\n useShellStore();\n\n const handleReloadWorkflow = useCallback(async () => {\n setReloadFromPage(true);\n await reloadWorkflow();\n setReloadFromPage(false);\n }, [reloadWorkflow]);\n\n const handleSelectedNode = useCallback(\n async (node, menuIndex) => {\n if (node.isSelectable) {\n setSelectedNode(node);\n await handleReloadWorkflow();\n if (node?.properties?.playSceneId) {\n updateSearchParams({ taskId: node.properties.playSceneId });\n }\n }\n },\n [updateSearchParams, handleReloadWorkflow]\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 useEffect(() => {\n if (workflowPlay) {\n setWorkflow(workflowPlay);\n }\n }, [workflowPlay]);\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 setLocationState({ label: t('Workflow') });\n }, [setLocationState, t]);\n\n // this is used for updating the state node for page use\n useEffect(() => {\n if (workflow) {\n setSelectedNode((prevNode) => {\n if (!!prevNode) {\n const foundNode = workflow.workflowPlayNode?.children?.find(\n (child) => child.id === prevNode.id\n );\n if (!!foundNode) {\n const updatedNode = { ...prevNode };\n // TODO: using this to update state for now but may need to update\n // other properties of the selected node when we pull workflow tree\n updatedNode.properties.state = foundNode.state;\n return updatedNode;\n } else {\n return prevNode;\n }\n }\n });\n }\n }, [workflow]);\n\n useEffect(() => {\n if (workflow) {\n const list = [];\n const updatedMenu = transformWorkflowPlayTree(workflow.workflowPlayNode);\n if (updatedMenu) {\n list.push(updatedMenu);\n }\n setMenuItemsList(list);\n }\n }, [workflow]);\n\n useEffect(() => {\n if (!selectedNode) {\n const menu = menuItemsList[0];\n // Use Task Id to find the first matching node in tree\n if (menu) {\n if (!!udpTaskId) {\n const matchingTaskNode = menu.children.find(\n (child) => child?.properties?.playSceneId === udpTaskId\n );\n setSelectedNode(matchingTaskNode || menu.children[0] || null);\n } else {\n const firstSelectableMenuItem = menu?.children?.find(\n (item) => item.isSelectable\n );\n setSelectedNode(firstSelectableMenuItem || null);\n }\n if (autoCollapseNav) {\n setNavigationExpanded(false);\n }\n }\n }\n }, [\n udpTaskId,\n menuItemsList,\n selectedNode,\n setNavigationExpanded,\n autoCollapseNav\n ]);\n\n useEffect(() => {\n setSubHeaderActionHasChildren(false);\n }, [setSubHeaderActionHasChildren]);\n\n // useEffect(() => {\n // if (selectedNode) {\n // const getState = async () => {\n // const response = await getNodeState(selectedNode.id);\n // if (response.status === 200) {\n // setMenuItemsList((prevMenuList) => {\n // let updatedList = [];\n // prevMenuList.forEach((menu) => {\n // const updatedMenu = updateWorkflowPlayNodeState(\n // menu,\n // selectedNode.id,\n // response.data\n // );\n // updatedList.push(updatedMenu);\n // });\n // return updatedList;\n // });\n // }\n // };\n // getState();\n // }\n // }, [selectedNode, getNodeState]);\n\n return (\n <DndProvider backend={HTML5Backend}>\n <div className={classes.root}>\n <div className={classes.sidebar}>\n <UtilitySideBar\n title={'Workflow'}\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={playId}>\n {menuItemsList?.length > 0 &&\n (!workflowPlayLoading || reloadFromPage) &&\n menuItemsList.map((menuItems, index) => (\n <div key={menuItems.id} className={classes.nodeContainer}>\n <WorkflowTreeMenu\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 {workflowPlayLoading && !reloadFromPage && (\n <div className={classes.loader}>\n <NodeLoader loading={workflowPlayLoading} />\n </div>\n )}\n </div>\n </UtilitySideBar>\n </div>\n <div className={classes.content}>\n <WorkflowContent\n selectedNode={selectedNode}\n workflow={workflow}\n reloadWorkflow={handleReloadWorkflow}\n users={users}\n groups={groups}\n />\n </div>\n </div>\n </DndProvider>\n );\n};\n\nexport default WorkflowContainer;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkflowContainer-DDGm1Cxo.js","names":[],"sources":["../src/workflow/WorkflowContainer.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { makeStyles } from '@material-ui/core';\nimport { WorkflowTreeMenu } from './menus/WorkflowTreeMenu';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useShellStore } from '../stores/shellStore';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/useBuildEnvironment';\nimport { WorkflowContent } from './WorkflowContent';\nimport {\n transformWorkflowPlayTree,\n updateWorkflowPlayNodeState\n} from '../utilities/workflow/workflowUtilities';\nimport { useUpdateSearchParams } from '../hooks/useUpdateSearchParams';\nimport { useUser } from '../utilities/auth/useUser';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../configService';\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\nexport const WorkflowContainer = (props) => {\n const { playId, taskId, autoCollapseNav = true } = props;\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const location = useLocation();\n const updateSearchParams = useUpdateSearchParams();\n const user = useUser();\n const setLocationState = useSetLocationState();\n const { t } = useTranslation();\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 [reloadFromPage, setReloadFromPage] = useState(false);\n const [workflow, setWorkflow] = useState(false);\n\n const state = location.state;\n let searchParamStr = location.search;\n let searchParams = new URLSearchParams(searchParamStr);\n const urlPlayId = location.pathname.replace('/workflowtask/', '');\n const udpPlayId =\n playId ||\n urlPlayId ||\n (state\n ? state.playId\n : searchParams.has('playId') === true\n ? searchParams.get('playId')\n : '');\n\n const udpTaskId =\n taskId ||\n (state\n ? state.taskId\n : searchParams.has('taskId') === true\n ? searchParams.get('taskId')\n : '');\n\n const [{ data: workflowPlay, loading: workflowPlayLoading }, reloadWorkflow] =\n useAxiosGet(\n ConfigService.builderV1ApiUrl,\n `workflow/play/${udpPlayId}`,\n {},\n !!!udpPlayId,\n false\n );\n\n const [{ data: users }] = useAxiosGet(\n ConfigService.securityV1ApiUrl,\n `users?tenantId=${user?.currentTenantId || ''}`,\n {},\n !!!user?.currentTenantId\n );\n\n const [{ data: groups }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `groups?tenantId=${user?.currentTenantId || ''}&productId=${\n ConfigService.config.UNITY_PRODUCT_ID\n }`,\n {},\n !!!user?.currentTenantId\n );\n\n // const getNodeState = useCallback(\n // async (nodeId) =>\n // apiMutate(\n // ConfigService.builderV1ApiUrl,\n // `workflow/play/${udpPlayId}/node/${nodeId}/state`,\n // {\n // method: 'get'\n // }\n // ),\n // [udpPlayId]\n // );\n\n const { setSubHeaderActionHasChildren, setNavigationExpanded } =\n useShellStore();\n\n const handleReloadWorkflow = useCallback(async () => {\n setReloadFromPage(true);\n await reloadWorkflow();\n setReloadFromPage(false);\n }, [reloadWorkflow]);\n\n const handleSelectedNode = useCallback(\n async (node, menuIndex) => {\n if (node.isSelectable) {\n setSelectedNode(node);\n await handleReloadWorkflow();\n if (node?.properties?.playSceneId) {\n updateSearchParams({ taskId: node.properties.playSceneId });\n }\n }\n },\n [updateSearchParams, handleReloadWorkflow]\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 useEffect(() => {\n if (workflowPlay) {\n setWorkflow(workflowPlay);\n }\n }, [workflowPlay]);\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 setLocationState({ label: t('Workflow') });\n }, [setLocationState, t]);\n\n // this is used for updating the state node for page use\n useEffect(() => {\n if (workflow) {\n setSelectedNode((prevNode) => {\n if (!!prevNode) {\n const foundNode = workflow.workflowPlayNode?.children?.find(\n (child) => child.id === prevNode.id\n );\n if (!!foundNode) {\n const updatedNode = { ...prevNode };\n // TODO: using this to update state for now but may need to update\n // other properties of the selected node when we pull workflow tree\n updatedNode.properties.state = foundNode.state;\n return updatedNode;\n } else {\n return prevNode;\n }\n }\n });\n }\n }, [workflow]);\n\n useEffect(() => {\n if (workflow) {\n const list = [];\n const updatedMenu = transformWorkflowPlayTree(workflow.workflowPlayNode);\n if (updatedMenu) {\n list.push(updatedMenu);\n }\n setMenuItemsList(list);\n }\n }, [workflow]);\n\n useEffect(() => {\n if (!selectedNode) {\n const menu = menuItemsList[0];\n // Use Task Id to find the first matching node in tree\n if (menu) {\n if (!!udpTaskId) {\n const matchingTaskNode = menu.children.find(\n (child) => child?.properties?.playSceneId === udpTaskId\n );\n setSelectedNode(matchingTaskNode || menu.children[0] || null);\n } else {\n const firstSelectableMenuItem = menu?.children?.find(\n (item) => item.isSelectable\n );\n setSelectedNode(firstSelectableMenuItem || null);\n }\n if (autoCollapseNav) {\n setNavigationExpanded(false);\n }\n }\n }\n }, [\n udpTaskId,\n menuItemsList,\n selectedNode,\n setNavigationExpanded,\n autoCollapseNav\n ]);\n\n useEffect(() => {\n setSubHeaderActionHasChildren(false);\n }, [setSubHeaderActionHasChildren]);\n\n // useEffect(() => {\n // if (selectedNode) {\n // const getState = async () => {\n // const response = await getNodeState(selectedNode.id);\n // if (response.status === 200) {\n // setMenuItemsList((prevMenuList) => {\n // let updatedList = [];\n // prevMenuList.forEach((menu) => {\n // const updatedMenu = updateWorkflowPlayNodeState(\n // menu,\n // selectedNode.id,\n // response.data\n // );\n // updatedList.push(updatedMenu);\n // });\n // return updatedList;\n // });\n // }\n // };\n // getState();\n // }\n // }, [selectedNode, getNodeState]);\n\n return (\n <DndProvider backend={HTML5Backend}>\n <div className={classes.root}>\n <div className={classes.sidebar}>\n <UtilitySideBar\n title={'Workflow'}\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={playId}>\n {menuItemsList?.length > 0 &&\n (!workflowPlayLoading || reloadFromPage) &&\n menuItemsList.map((menuItems, index) => (\n <div key={menuItems.id} className={classes.nodeContainer}>\n <WorkflowTreeMenu\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 {workflowPlayLoading && !reloadFromPage && (\n <div className={classes.loader}>\n <NodeLoader loading={workflowPlayLoading} />\n </div>\n )}\n </div>\n </UtilitySideBar>\n </div>\n <div className={classes.content}>\n <WorkflowContent\n selectedNode={selectedNode}\n workflow={workflow}\n reloadWorkflow={handleReloadWorkflow}\n users={users}\n groups={groups}\n />\n </div>\n </div>\n </DndProvider>\n );\n};\n\nexport default WorkflowContainer;\n"],"mappings":"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"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { t as FluentIcon } from "./FluentIcon-DQ6nSDJg.js";
|
|
2
|
-
import { I as TreeViewModeEnums, v as NodeActionTriggerEnums } from "./unitySystemEnums-
|
|
2
|
+
import { I as TreeViewModeEnums, v as NodeActionTriggerEnums } from "./unitySystemEnums-CZDCsD5t.js";
|
|
3
3
|
import { t as UnityFluentIcon } from "./UnityFluentIcon-DrASIcTF.js";
|
|
4
|
-
import { S as getIconFromName, V as searchTree, d as findAllParentIds, w as getNodeIdForRightBorder } from "./TreeUtilities-
|
|
4
|
+
import { S as getIconFromName, V as searchTree, d as findAllParentIds, w as getNodeIdForRightBorder } from "./TreeUtilities-jEhtZNg5.js";
|
|
5
5
|
import { t as getUnityIconFromName } from "./UnityIconLibrary-CjIwzfjv.js";
|
|
6
|
-
import { t as AggregateChip } from "./AggregateChip-
|
|
6
|
+
import { t as AggregateChip } from "./AggregateChip-BF7S3x_K.js";
|
|
7
7
|
import React, { useCallback, useEffect, useState } from "react";
|
|
8
8
|
import { CircularProgress, Tooltip, Typography, darken, lighten, makeStyles, useTheme } from "@material-ui/core";
|
|
9
9
|
import clsx from "clsx";
|
|
@@ -343,4 +343,4 @@ const WorkflowTreeMenu = (props) => {
|
|
|
343
343
|
|
|
344
344
|
//#endregion
|
|
345
345
|
export { WorkflowTreeMenuItem as n, WorkflowTreeMenu as t };
|
|
346
|
-
//# sourceMappingURL=WorkflowTreeMenu-
|
|
346
|
+
//# sourceMappingURL=WorkflowTreeMenu-HHtwkDzu.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowTreeMenu-D2Uc09jP.js","names":["useStyles","other","tree","expanded"],"sources":["../src/workflow/menus/WorkflowTreeMenuItem.jsx","../src/workflow/menus/WorkflowTreeMenu.jsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n makeStyles,\n lighten,\n Typography,\n CircularProgress,\n darken,\n useTheme,\n Tooltip\n} from '@material-ui/core';\nimport TreeItem from '@material-ui/lab/TreeItem';\nimport { getIconFromName } from '../../utilities/tree/TreeUtilities';\nimport clsx from 'clsx';\nimport { UnityFluentIcon } from '../../utilities/iconLibrary/UnityFluentIcon';\nimport { getUnityIconFromName } from '../../utilities/iconLibrary/UnityIconLibrary';\nimport { useDrag, useDrop } from 'react-dnd';\nimport {\n NodeActionTriggerEnums,\n TreeViewModeEnums\n} from '../../enums/unitySystemEnums.ts';\nimport { AggregateChip } from '../../UI/utilityDisplay/AggregateChip';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n '&.Mui-selected > .MuiTreeItem-content': {\n backgroundColor:\n theme?.getThemeData()?.mode === 'dark'\n ? theme.palette.grey[700]\n : theme.palette.grey[300],\n borderRight: `4px solid ${theme.palette.primary.main}`\n },\n '&.Mui-selected > .MuiTreeItem-content .MuiTreeItem-label': {\n backgroundColor: 'transparent',\n paddingLeft: 0\n },\n '&.Mui-selected > .MuiTreeItem-content > .MuiCollapse-wrapperInner': {\n backgroundColor:\n theme?.getThemeData()?.mode !== 'dark' && theme.palette.grey[50]\n },\n '& .MuiTreeItem-content .MuiTreeItem-iconContainer': {\n display: (props) => (props.sidebarExpanded ? 'flex' : 'none')\n }\n },\n content: {\n backgroundColor: (props) =>\n theme?.getThemeData()?.mode !== 'dark' &&\n !props.sidebarExpanded &&\n props.conditionalIconName &&\n props.conditionalIconColor\n ? lighten(props.conditionalIconColor, 0.92)\n : ''\n },\n labelRoot: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: (props) => (props.sidebarExpanded ? 0 : theme.spacing(1.5)),\n width: '100%'\n },\n labelContainer: {\n display: (props) => (!props.sidebarExpanded ? 'none' : ''),\n width: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `calc(100% - ${theme.spacing(6.25)}px)`\n : `calc(100% - ${theme.spacing(7.75)}px)`\n },\n conditionalIconContainer: {\n display: 'inline-flex'\n },\n labelText: {\n fontSize: '0.75rem',\n fontWeight: 600,\n lineHeight: '1rem',\n letterSpacing: 0.1\n },\n captionText: {\n marginLeft: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact ? theme.spacing(1) : '',\n fontSize: '0.65rem',\n fontWeight: 400,\n lineHeight: 1,\n letterSpacing: 0.4\n },\n labelOverflow: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginTop: `-${theme.spacing(0.25)}px`\n },\n group: {\n width: '100%',\n '& .MuiTreeItem-group': {\n marginLeft: 0\n },\n '& .MuiTreeItem-content': {\n paddingLeft: (props) =>\n props.sidebarExpanded ? (props.depth || 1) * theme.spacing(1) : 0,\n borderRight: (props) =>\n props.showRightBorderColor\n ? `4px solid ${theme.palette.primary.main}`\n : '',\n borderBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n },\n '& .MuiTreeItem-content .MuiTreeItem-label': {\n paddingLeft: 0,\n width: (props) =>\n props.sidebarExpanded && `calc(100% - ${theme.spacing(2.5)}px)`\n },\n '& .MuiTreeItem-content .MuiTreeItem-iconContainer span': {\n display: (props) => (props.hideExpansion ? 'none' : '')\n },\n '& .MuiCollapse-wrapperInner': {\n backgroundColor: (props) =>\n theme?.getThemeData()?.mode !== 'dark' && props.isSelectedNode\n ? theme.palette.grey[50]\n : ''\n }\n },\n iconContainer: {\n display: 'flex',\n // alignItems: 'center',\n justifyContent: 'center',\n // borderRadius: 50,\n marginTop: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(0.25)\n : theme.spacing(0.5),\n marginBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(0.25)\n : theme.spacing(0.5),\n marginRight: theme.spacing(1),\n width: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(3)\n : theme.spacing(4),\n height: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(3)\n : theme.spacing(4)\n // border: (props) =>\n // props.iconColor\n // ? `1px solid ${darken(props.iconColor, 0.1)}`\n // : `1px solid ${theme.palette.secondary.main}`,\n // backgroundColor: '#ffffff'\n }\n}));\n\nexport const WorkflowTreeMenuItem = (props) => {\n const {\n parentId,\n nodeId,\n iconName,\n iconType,\n conditionalIconName,\n conditionalIconType,\n conditionalIconColor,\n label,\n iconColor,\n onNodeSelect,\n isSelectedNode,\n subLabel,\n sidebarExpanded,\n isLastNode,\n loading,\n node,\n onDropNode,\n treeViewMode,\n menuIndex,\n aggregateThresholdId,\n ...other\n } = props;\n const classes = useStyles(props);\n const theme = useTheme();\n\n const [{ isDragging }, dragRef] = useDrag({\n type: 'BaseTreeMenuItem',\n item: { ...node, sourceNodeMenuIndex: menuIndex },\n collect: (monitor) => ({\n isDragging: monitor.isDragging()\n })\n });\n\n const handleOnDrop = useCallback(\n (sourceNode, monitor) => {\n if (!monitor.didDrop()) {\n if (onDropNode) {\n const { sourceNodeMenuIndex, ...other } = sourceNode;\n onDropNode({ ...other }, node, sourceNodeMenuIndex, menuIndex);\n }\n }\n },\n [onDropNode, node, menuIndex]\n );\n\n const [{ canDrop, isOver }, dropRef] = useDrop(\n () => ({\n accept: ['BaseTreeMenuItem'],\n drop: (sourceNode, monitor) => {\n // condition to only handle first drop\n handleOnDrop(sourceNode, monitor);\n },\n canDrop: (sourceNode) => checkCanDrop(sourceNode),\n collect: (monitor) => ({\n isOver: monitor.isOver(),\n canDrop: !!monitor.canDrop()\n })\n }),\n [handleOnDrop]\n );\n\n const checkCanDrop = useCallback(\n (sourceNode) => {\n if (sourceNode) {\n const onDropActions = node?.properties?.nodeActions?.filter(\n (na) => na?.triggerType === NodeActionTriggerEnums.On_Node_Drop\n );\n if (!onDropActions) {\n return false;\n }\n const nodeDragEntities = onDropActions?.map(\n (action) => action?.dragEntityName\n );\n return nodeDragEntities.includes(\n sourceNode?.properties?.catalogReturnObject\n );\n }\n },\n [node]\n );\n\n const handleOnLabelClick = useCallback(\n (e) => {\n e.preventDefault();\n onNodeSelect(e, nodeId);\n },\n [onNodeSelect, nodeId]\n );\n\n return (\n <TreeItem\n className={classes.group}\n key={nodeId}\n nodeId={nodeId}\n label={\n <div ref={dropRef}>\n <Tooltip title={sidebarExpanded ? '' : label}>\n <div\n ref={(node?.properties?.isDraggable && dragRef) || null}\n style={{ opacity: isDragging ? 0.5 : 1 }}\n >\n {loading ? (\n <CircularProgress size={12} />\n ) : (\n <div\n id={\n 'udpRecord-BaseTreeMenuItem-' + label?.replace(/\\s+/g, '')\n }\n udprecordid={\n 'udpRecord-BaseTreeMenuItem-' + label?.replace(/\\s+/g, '')\n }\n className={classes.labelRoot}\n style={{\n fontWeight: isSelectedNode ? 'bold' : ''\n }}\n >\n {iconName && (\n <div className={classes.iconContainer}>\n <UnityFluentIcon\n size={\n treeViewMode === TreeViewModeEnums.Compact\n ? 'small'\n : 'large'\n }\n color={iconColor}\n type={iconType}\n icon={\n iconType === 'unity'\n ? getUnityIconFromName(iconName)\n : getIconFromName(iconName)\n }\n style={{\n color: iconColor\n ? darken(iconColor, 0.1)\n : theme.palette.secondary.main\n }}\n />\n </div>\n )}\n <div className={classes.labelContainer}>\n <Typography\n variant='subtitle2'\n className={clsx(classes.labelText, classes.labelOverflow)}\n >\n {label}\n {subLabel &&\n treeViewMode === TreeViewModeEnums.Compact && (\n <Typography\n variant='caption'\n className={clsx(\n classes.captionText,\n classes.labelOverflow\n )}\n >\n {subLabel}\n </Typography>\n )}\n </Typography>\n {subLabel && treeViewMode === TreeViewModeEnums.Classic && (\n <div className={classes.labelOverflow}>\n <Typography\n variant='caption'\n className={clsx(classes.captionText)}\n >\n {subLabel}\n </Typography>\n </div>\n )}\n </div>\n <AggregateChip aggregateThresholdId={aggregateThresholdId} />\n {conditionalIconName && sidebarExpanded && (\n <div className={classes.conditionalIconContainer}>\n <UnityFluentIcon\n size={\n treeViewMode === TreeViewModeEnums.Compact\n ? 'small'\n : 'default'\n }\n color={conditionalIconColor}\n type={conditionalIconType}\n icon={\n conditionalIconType === 'unity'\n ? getUnityIconFromName(conditionalIconName)\n : getIconFromName(conditionalIconName)\n }\n style={{\n color: conditionalIconColor\n }}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </Tooltip>\n </div>\n }\n onLabelClick={handleOnLabelClick}\n classes={{ root: classes.root, content: classes.content }}\n {...other}\n />\n );\n};\n","import React, { useCallback, useState, useEffect } from 'react';\nimport {\n makeStyles,\n useTheme,\n lighten,\n CircularProgress,\n Typography\n} from '@material-ui/core';\nimport TreeView from '@material-ui/lab/TreeView';\nimport { WorkflowTreeMenuItem } from './WorkflowTreeMenuItem';\nimport {\n searchTree,\n findAllParentIds,\n getNodeIdForRightBorder\n} from '../../utilities/tree/TreeUtilities';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { CaretUpSolid8Icon, CaretDownSolid8Icon } from '@fluentui/react-icons';\nimport { cloneDeep } from 'lodash';\nimport { TreeViewModeEnums } from '../../enums/unitySystemEnums.ts';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginBottom: theme.spacing(1.75),\n borderTop: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n },\n noChildrenContainer: {\n borderBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n }\n}));\n\nexport const WorkflowTreeMenu = (props) => {\n const {\n menuItems,\n onSelectNode,\n onDropNode,\n menuIndex,\n selectedNodeId,\n selectedNodeParentId,\n sidebarExpanded,\n treeViewMode,\n childrenKey = 'children'\n } = props;\n const [expanded, setExpanded] = useState(null);\n const [isCurrentActiveTree, setIsCurrentActiveTree] = useState(false);\n const [selectedNodeIsHidden, setSelectedNodeIsHidden] = useState(false);\n const [tree, setTree] = useState(menuItems);\n const theme = useTheme();\n const classes = useStyles(props);\n\n const handleSelectedNode = useCallback(\n (e, value) => {\n const selectedNode = searchTree(tree, value);\n if (onSelectNode) {\n onSelectNode(selectedNode, menuIndex);\n setSelectedNodeIsHidden(false);\n }\n },\n [tree, menuIndex, onSelectNode]\n );\n\n const renderTree = useCallback(\n (node, depth = 1) => {\n let label = node.properties?.nodeLabel || node.properties?.name;\n let subLabel = node.properties?.nodeSubLabel;\n let iconName = node.properties?.defaultIcon?.name;\n let iconType = node.properties?.defaultIcon?.type;\n let conditionalIconName = node.properties?.conditionalIcon?.name || '';\n let conditionalIconType = node.properties?.conditionalIcon?.name\n ? node.properties.conditionalIcon?.type\n : '';\n let conditionalIconColor = node.properties?.conditionalIcon?.name\n ? node.properties?.conditionalIcon?.color\n : '';\n let nodeId = node.id;\n let iconColor = node.properties?.conditionalIconName\n ? node.properties?.conditionalIconColor\n : node.properties?.defaultIcon?.color?.hex;\n let aggregateThresholdId = node.properties?.aggregateThresholdId || '';\n\n if (node.isGroupNode) {\n label = node.properties?.label;\n subLabel = node.properties?.subLabel;\n iconName = node.properties?.icon?.name;\n iconType = node.properties?.icon?.type;\n iconColor = node.properties?.icon?.color?.hex;\n }\n\n return (\n <WorkflowTreeMenuItem\n key={nodeId}\n nodeId={nodeId}\n label={label}\n subLabel={subLabel}\n iconName={iconName}\n iconType={iconType}\n conditionalIconName={conditionalIconName}\n conditionalIconType={conditionalIconType}\n conditionalIconColor={conditionalIconColor}\n parentId={node.parentId}\n iconColor={iconColor}\n onNodeSelect={handleSelectedNode}\n selectedNodeId={selectedNodeId}\n isSelectedNode={selectedNodeId === node.id}\n showRightBorderColor={\n selectedNodeIsHidden &&\n isCurrentActiveTree &&\n getNodeIdForRightBorder(expanded, tree, selectedNodeParentId) ===\n node.id\n }\n isCurrentActiveTree={isCurrentActiveTree}\n sidebarExpanded={sidebarExpanded}\n depth={depth}\n hideExpansion={!!!node[childrenKey]?.length}\n node={node}\n onDropNode={onDropNode}\n treeViewMode={treeViewMode}\n menuIndex={menuIndex}\n aggregateThresholdId={aggregateThresholdId}\n >\n {node.properties?.lazyLoad &&\n !!!node[childrenKey]?.length &&\n !node.completedLoadingChildren && (\n <CircularProgress\n size={12}\n style={{ marginLeft: (depth || 1) * theme.spacing(1) }}\n />\n )}\n {node.properties?.lazyLoad &&\n !!!node[childrenKey]?.length &&\n node.completedLoadingChildren &&\n sidebarExpanded &&\n !node.errorRetrievingChildren && (\n <div className={classes.noChildrenContainer}>\n <Typography\n variant='caption'\n style={{\n marginLeft: (depth || 1) * theme.spacing(3),\n fontWeight: 400\n }}\n >\n No Children\n </Typography>\n </div>\n )}\n {node.properties?.lazyLoad &&\n node.completedLoadingChildren &&\n sidebarExpanded &&\n node.errorRetrievingChildren && (\n <div className={classes.noChildrenContainer}>\n <Typography\n variant='caption'\n style={{\n marginLeft: (depth || 1) * theme.spacing(3),\n fontWeight: 400\n }}\n >\n {`Error Retrieving ${\n !!node[childrenKey]?.length ? `Additional ` : ''\n }Children`}\n </Typography>\n </div>\n )}\n {Array.isArray(node[childrenKey])\n ? node[childrenKey].map((n, i) => renderTree(n, depth + 1))\n : null}\n </WorkflowTreeMenuItem>\n );\n },\n [\n handleSelectedNode,\n selectedNodeId,\n selectedNodeIsHidden,\n isCurrentActiveTree,\n sidebarExpanded,\n expanded,\n tree,\n selectedNodeParentId,\n theme,\n classes,\n onDropNode,\n treeViewMode,\n menuIndex,\n childrenKey\n ]\n );\n\n const handleNodeExpansion = useCallback(\n async (evt, nodeIds) => {\n const treeCopy = cloneDeep(tree);\n setExpanded(nodeIds);\n\n const parentNode = searchTree(treeCopy, selectedNodeParentId);\n const initialAllParentNodeIds = selectedNodeParentId\n ? [selectedNodeParentId]\n : [];\n const allParentNodeIds = findAllParentIds(\n treeCopy,\n parentNode,\n initialAllParentNodeIds\n );\n const selectedNodeShown = allParentNodeIds.every((id) =>\n nodeIds.includes(id)\n );\n if (\n isCurrentActiveTree &&\n allParentNodeIds.length &&\n !selectedNodeShown\n ) {\n setSelectedNodeIsHidden(true);\n } else {\n setSelectedNodeIsHidden(false);\n }\n },\n [isCurrentActiveTree, tree, selectedNodeParentId]\n );\n\n const getExpandedRecursively = useCallback(\n (tree) => {\n if (!tree) return [];\n return tree.reduce((expandedIds, item) => {\n if (item?.isExpanded) {\n expandedIds.push(item.id);\n }\n if (item && item[childrenKey]?.length) {\n expandedIds = expandedIds.concat(\n getExpandedRecursively(item[childrenKey])\n );\n }\n return expandedIds;\n }, []);\n },\n [childrenKey]\n );\n\n useEffect(() => {\n setTree(menuItems);\n }, [menuItems]);\n\n useEffect(() => {\n if (!tree) {\n return;\n }\n let expanded = [];\n if (tree?.isExpanded) {\n expanded.push(tree.id);\n }\n expanded = expanded.concat(getExpandedRecursively(tree[childrenKey]));\n setExpanded(expanded);\n }, [getExpandedRecursively, tree, childrenKey]);\n\n useEffect(() => {\n if (!!searchTree(tree, selectedNodeId)) {\n setIsCurrentActiveTree(true);\n } else {\n setIsCurrentActiveTree(false);\n }\n }, [tree, selectedNodeId]);\n\n if (!expanded) {\n return null;\n }\n\n return (\n <TreeView\n key={tree}\n className={classes.root}\n defaultCollapseIcon={\n <FluentIcon\n size='small'\n component={CaretUpSolid8Icon}\n style={{\n color: lighten(theme.palette.primary.main, 0.5),\n width: theme.spacing(1.5),\n height: theme.spacing(1.5)\n }}\n />\n }\n expanded={expanded || []}\n onNodeToggle={handleNodeExpansion}\n defaultExpandIcon={\n <FluentIcon\n size='small'\n component={CaretDownSolid8Icon}\n style={{\n color: lighten(theme.palette.primary.main, 0.5),\n width: theme.spacing(1.5),\n height: theme.spacing(1.5)\n }}\n />\n }\n selected={selectedNodeId}\n >\n {tree && renderTree(tree)}\n </TreeView>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"WorkflowTreeMenu-HHtwkDzu.js","names":["useStyles","other","tree","expanded"],"sources":["../src/workflow/menus/WorkflowTreeMenuItem.jsx","../src/workflow/menus/WorkflowTreeMenu.jsx"],"sourcesContent":["import React, { useCallback } from 'react';\nimport {\n makeStyles,\n lighten,\n Typography,\n CircularProgress,\n darken,\n useTheme,\n Tooltip\n} from '@material-ui/core';\nimport TreeItem from '@material-ui/lab/TreeItem';\nimport { getIconFromName } from '../../utilities/tree/TreeUtilities';\nimport clsx from 'clsx';\nimport { UnityFluentIcon } from '../../utilities/iconLibrary/UnityFluentIcon';\nimport { getUnityIconFromName } from '../../utilities/iconLibrary/UnityIconLibrary';\nimport { useDrag, useDrop } from 'react-dnd';\nimport {\n NodeActionTriggerEnums,\n TreeViewModeEnums\n} from '../../enums/unitySystemEnums.ts';\nimport { AggregateChip } from '../../UI/utilityDisplay/AggregateChip';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n '&.Mui-selected > .MuiTreeItem-content': {\n backgroundColor:\n theme?.getThemeData()?.mode === 'dark'\n ? theme.palette.grey[700]\n : theme.palette.grey[300],\n borderRight: `4px solid ${theme.palette.primary.main}`\n },\n '&.Mui-selected > .MuiTreeItem-content .MuiTreeItem-label': {\n backgroundColor: 'transparent',\n paddingLeft: 0\n },\n '&.Mui-selected > .MuiTreeItem-content > .MuiCollapse-wrapperInner': {\n backgroundColor:\n theme?.getThemeData()?.mode !== 'dark' && theme.palette.grey[50]\n },\n '& .MuiTreeItem-content .MuiTreeItem-iconContainer': {\n display: (props) => (props.sidebarExpanded ? 'flex' : 'none')\n }\n },\n content: {\n backgroundColor: (props) =>\n theme?.getThemeData()?.mode !== 'dark' &&\n !props.sidebarExpanded &&\n props.conditionalIconName &&\n props.conditionalIconColor\n ? lighten(props.conditionalIconColor, 0.92)\n : ''\n },\n labelRoot: {\n display: 'flex',\n alignItems: 'center',\n marginLeft: (props) => (props.sidebarExpanded ? 0 : theme.spacing(1.5)),\n width: '100%'\n },\n labelContainer: {\n display: (props) => (!props.sidebarExpanded ? 'none' : ''),\n width: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `calc(100% - ${theme.spacing(6.25)}px)`\n : `calc(100% - ${theme.spacing(7.75)}px)`\n },\n conditionalIconContainer: {\n display: 'inline-flex'\n },\n labelText: {\n fontSize: '0.75rem',\n fontWeight: 600,\n lineHeight: '1rem',\n letterSpacing: 0.1\n },\n captionText: {\n marginLeft: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact ? theme.spacing(1) : '',\n fontSize: '0.65rem',\n fontWeight: 400,\n lineHeight: 1,\n letterSpacing: 0.4\n },\n labelOverflow: {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n marginTop: `-${theme.spacing(0.25)}px`\n },\n group: {\n width: '100%',\n '& .MuiTreeItem-group': {\n marginLeft: 0\n },\n '& .MuiTreeItem-content': {\n paddingLeft: (props) =>\n props.sidebarExpanded ? (props.depth || 1) * theme.spacing(1) : 0,\n borderRight: (props) =>\n props.showRightBorderColor\n ? `4px solid ${theme.palette.primary.main}`\n : '',\n borderBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n },\n '& .MuiTreeItem-content .MuiTreeItem-label': {\n paddingLeft: 0,\n width: (props) =>\n props.sidebarExpanded && `calc(100% - ${theme.spacing(2.5)}px)`\n },\n '& .MuiTreeItem-content .MuiTreeItem-iconContainer span': {\n display: (props) => (props.hideExpansion ? 'none' : '')\n },\n '& .MuiCollapse-wrapperInner': {\n backgroundColor: (props) =>\n theme?.getThemeData()?.mode !== 'dark' && props.isSelectedNode\n ? theme.palette.grey[50]\n : ''\n }\n },\n iconContainer: {\n display: 'flex',\n // alignItems: 'center',\n justifyContent: 'center',\n // borderRadius: 50,\n marginTop: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(0.25)\n : theme.spacing(0.5),\n marginBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(0.25)\n : theme.spacing(0.5),\n marginRight: theme.spacing(1),\n width: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(3)\n : theme.spacing(4),\n height: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? theme.spacing(3)\n : theme.spacing(4)\n // border: (props) =>\n // props.iconColor\n // ? `1px solid ${darken(props.iconColor, 0.1)}`\n // : `1px solid ${theme.palette.secondary.main}`,\n // backgroundColor: '#ffffff'\n }\n}));\n\nexport const WorkflowTreeMenuItem = (props) => {\n const {\n parentId,\n nodeId,\n iconName,\n iconType,\n conditionalIconName,\n conditionalIconType,\n conditionalIconColor,\n label,\n iconColor,\n onNodeSelect,\n isSelectedNode,\n subLabel,\n sidebarExpanded,\n isLastNode,\n loading,\n node,\n onDropNode,\n treeViewMode,\n menuIndex,\n aggregateThresholdId,\n ...other\n } = props;\n const classes = useStyles(props);\n const theme = useTheme();\n\n const [{ isDragging }, dragRef] = useDrag({\n type: 'BaseTreeMenuItem',\n item: { ...node, sourceNodeMenuIndex: menuIndex },\n collect: (monitor) => ({\n isDragging: monitor.isDragging()\n })\n });\n\n const handleOnDrop = useCallback(\n (sourceNode, monitor) => {\n if (!monitor.didDrop()) {\n if (onDropNode) {\n const { sourceNodeMenuIndex, ...other } = sourceNode;\n onDropNode({ ...other }, node, sourceNodeMenuIndex, menuIndex);\n }\n }\n },\n [onDropNode, node, menuIndex]\n );\n\n const [{ canDrop, isOver }, dropRef] = useDrop(\n () => ({\n accept: ['BaseTreeMenuItem'],\n drop: (sourceNode, monitor) => {\n // condition to only handle first drop\n handleOnDrop(sourceNode, monitor);\n },\n canDrop: (sourceNode) => checkCanDrop(sourceNode),\n collect: (monitor) => ({\n isOver: monitor.isOver(),\n canDrop: !!monitor.canDrop()\n })\n }),\n [handleOnDrop]\n );\n\n const checkCanDrop = useCallback(\n (sourceNode) => {\n if (sourceNode) {\n const onDropActions = node?.properties?.nodeActions?.filter(\n (na) => na?.triggerType === NodeActionTriggerEnums.On_Node_Drop\n );\n if (!onDropActions) {\n return false;\n }\n const nodeDragEntities = onDropActions?.map(\n (action) => action?.dragEntityName\n );\n return nodeDragEntities.includes(\n sourceNode?.properties?.catalogReturnObject\n );\n }\n },\n [node]\n );\n\n const handleOnLabelClick = useCallback(\n (e) => {\n e.preventDefault();\n onNodeSelect(e, nodeId);\n },\n [onNodeSelect, nodeId]\n );\n\n return (\n <TreeItem\n className={classes.group}\n key={nodeId}\n nodeId={nodeId}\n label={\n <div ref={dropRef}>\n <Tooltip title={sidebarExpanded ? '' : label}>\n <div\n ref={(node?.properties?.isDraggable && dragRef) || null}\n style={{ opacity: isDragging ? 0.5 : 1 }}\n >\n {loading ? (\n <CircularProgress size={12} />\n ) : (\n <div\n id={\n 'udpRecord-BaseTreeMenuItem-' + label?.replace(/\\s+/g, '')\n }\n udprecordid={\n 'udpRecord-BaseTreeMenuItem-' + label?.replace(/\\s+/g, '')\n }\n className={classes.labelRoot}\n style={{\n fontWeight: isSelectedNode ? 'bold' : ''\n }}\n >\n {iconName && (\n <div className={classes.iconContainer}>\n <UnityFluentIcon\n size={\n treeViewMode === TreeViewModeEnums.Compact\n ? 'small'\n : 'large'\n }\n color={iconColor}\n type={iconType}\n icon={\n iconType === 'unity'\n ? getUnityIconFromName(iconName)\n : getIconFromName(iconName)\n }\n style={{\n color: iconColor\n ? darken(iconColor, 0.1)\n : theme.palette.secondary.main\n }}\n />\n </div>\n )}\n <div className={classes.labelContainer}>\n <Typography\n variant='subtitle2'\n className={clsx(classes.labelText, classes.labelOverflow)}\n >\n {label}\n {subLabel &&\n treeViewMode === TreeViewModeEnums.Compact && (\n <Typography\n variant='caption'\n className={clsx(\n classes.captionText,\n classes.labelOverflow\n )}\n >\n {subLabel}\n </Typography>\n )}\n </Typography>\n {subLabel && treeViewMode === TreeViewModeEnums.Classic && (\n <div className={classes.labelOverflow}>\n <Typography\n variant='caption'\n className={clsx(classes.captionText)}\n >\n {subLabel}\n </Typography>\n </div>\n )}\n </div>\n <AggregateChip aggregateThresholdId={aggregateThresholdId} />\n {conditionalIconName && sidebarExpanded && (\n <div className={classes.conditionalIconContainer}>\n <UnityFluentIcon\n size={\n treeViewMode === TreeViewModeEnums.Compact\n ? 'small'\n : 'default'\n }\n color={conditionalIconColor}\n type={conditionalIconType}\n icon={\n conditionalIconType === 'unity'\n ? getUnityIconFromName(conditionalIconName)\n : getIconFromName(conditionalIconName)\n }\n style={{\n color: conditionalIconColor\n }}\n />\n </div>\n )}\n </div>\n )}\n </div>\n </Tooltip>\n </div>\n }\n onLabelClick={handleOnLabelClick}\n classes={{ root: classes.root, content: classes.content }}\n {...other}\n />\n );\n};\n","import React, { useCallback, useState, useEffect } from 'react';\nimport {\n makeStyles,\n useTheme,\n lighten,\n CircularProgress,\n Typography\n} from '@material-ui/core';\nimport TreeView from '@material-ui/lab/TreeView';\nimport { WorkflowTreeMenuItem } from './WorkflowTreeMenuItem';\nimport {\n searchTree,\n findAllParentIds,\n getNodeIdForRightBorder\n} from '../../utilities/tree/TreeUtilities';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { CaretUpSolid8Icon, CaretDownSolid8Icon } from '@fluentui/react-icons';\nimport { cloneDeep } from 'lodash';\nimport { TreeViewModeEnums } from '../../enums/unitySystemEnums.ts';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginBottom: theme.spacing(1.75),\n borderTop: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n },\n noChildrenContainer: {\n borderBottom: (props) =>\n props.treeViewMode === TreeViewModeEnums.Compact\n ? `1px solid ${theme.palette.grey[200]}`\n : ''\n }\n}));\n\nexport const WorkflowTreeMenu = (props) => {\n const {\n menuItems,\n onSelectNode,\n onDropNode,\n menuIndex,\n selectedNodeId,\n selectedNodeParentId,\n sidebarExpanded,\n treeViewMode,\n childrenKey = 'children'\n } = props;\n const [expanded, setExpanded] = useState(null);\n const [isCurrentActiveTree, setIsCurrentActiveTree] = useState(false);\n const [selectedNodeIsHidden, setSelectedNodeIsHidden] = useState(false);\n const [tree, setTree] = useState(menuItems);\n const theme = useTheme();\n const classes = useStyles(props);\n\n const handleSelectedNode = useCallback(\n (e, value) => {\n const selectedNode = searchTree(tree, value);\n if (onSelectNode) {\n onSelectNode(selectedNode, menuIndex);\n setSelectedNodeIsHidden(false);\n }\n },\n [tree, menuIndex, onSelectNode]\n );\n\n const renderTree = useCallback(\n (node, depth = 1) => {\n let label = node.properties?.nodeLabel || node.properties?.name;\n let subLabel = node.properties?.nodeSubLabel;\n let iconName = node.properties?.defaultIcon?.name;\n let iconType = node.properties?.defaultIcon?.type;\n let conditionalIconName = node.properties?.conditionalIcon?.name || '';\n let conditionalIconType = node.properties?.conditionalIcon?.name\n ? node.properties.conditionalIcon?.type\n : '';\n let conditionalIconColor = node.properties?.conditionalIcon?.name\n ? node.properties?.conditionalIcon?.color\n : '';\n let nodeId = node.id;\n let iconColor = node.properties?.conditionalIconName\n ? node.properties?.conditionalIconColor\n : node.properties?.defaultIcon?.color?.hex;\n let aggregateThresholdId = node.properties?.aggregateThresholdId || '';\n\n if (node.isGroupNode) {\n label = node.properties?.label;\n subLabel = node.properties?.subLabel;\n iconName = node.properties?.icon?.name;\n iconType = node.properties?.icon?.type;\n iconColor = node.properties?.icon?.color?.hex;\n }\n\n return (\n <WorkflowTreeMenuItem\n key={nodeId}\n nodeId={nodeId}\n label={label}\n subLabel={subLabel}\n iconName={iconName}\n iconType={iconType}\n conditionalIconName={conditionalIconName}\n conditionalIconType={conditionalIconType}\n conditionalIconColor={conditionalIconColor}\n parentId={node.parentId}\n iconColor={iconColor}\n onNodeSelect={handleSelectedNode}\n selectedNodeId={selectedNodeId}\n isSelectedNode={selectedNodeId === node.id}\n showRightBorderColor={\n selectedNodeIsHidden &&\n isCurrentActiveTree &&\n getNodeIdForRightBorder(expanded, tree, selectedNodeParentId) ===\n node.id\n }\n isCurrentActiveTree={isCurrentActiveTree}\n sidebarExpanded={sidebarExpanded}\n depth={depth}\n hideExpansion={!!!node[childrenKey]?.length}\n node={node}\n onDropNode={onDropNode}\n treeViewMode={treeViewMode}\n menuIndex={menuIndex}\n aggregateThresholdId={aggregateThresholdId}\n >\n {node.properties?.lazyLoad &&\n !!!node[childrenKey]?.length &&\n !node.completedLoadingChildren && (\n <CircularProgress\n size={12}\n style={{ marginLeft: (depth || 1) * theme.spacing(1) }}\n />\n )}\n {node.properties?.lazyLoad &&\n !!!node[childrenKey]?.length &&\n node.completedLoadingChildren &&\n sidebarExpanded &&\n !node.errorRetrievingChildren && (\n <div className={classes.noChildrenContainer}>\n <Typography\n variant='caption'\n style={{\n marginLeft: (depth || 1) * theme.spacing(3),\n fontWeight: 400\n }}\n >\n No Children\n </Typography>\n </div>\n )}\n {node.properties?.lazyLoad &&\n node.completedLoadingChildren &&\n sidebarExpanded &&\n node.errorRetrievingChildren && (\n <div className={classes.noChildrenContainer}>\n <Typography\n variant='caption'\n style={{\n marginLeft: (depth || 1) * theme.spacing(3),\n fontWeight: 400\n }}\n >\n {`Error Retrieving ${\n !!node[childrenKey]?.length ? `Additional ` : ''\n }Children`}\n </Typography>\n </div>\n )}\n {Array.isArray(node[childrenKey])\n ? node[childrenKey].map((n, i) => renderTree(n, depth + 1))\n : null}\n </WorkflowTreeMenuItem>\n );\n },\n [\n handleSelectedNode,\n selectedNodeId,\n selectedNodeIsHidden,\n isCurrentActiveTree,\n sidebarExpanded,\n expanded,\n tree,\n selectedNodeParentId,\n theme,\n classes,\n onDropNode,\n treeViewMode,\n menuIndex,\n childrenKey\n ]\n );\n\n const handleNodeExpansion = useCallback(\n async (evt, nodeIds) => {\n const treeCopy = cloneDeep(tree);\n setExpanded(nodeIds);\n\n const parentNode = searchTree(treeCopy, selectedNodeParentId);\n const initialAllParentNodeIds = selectedNodeParentId\n ? [selectedNodeParentId]\n : [];\n const allParentNodeIds = findAllParentIds(\n treeCopy,\n parentNode,\n initialAllParentNodeIds\n );\n const selectedNodeShown = allParentNodeIds.every((id) =>\n nodeIds.includes(id)\n );\n if (\n isCurrentActiveTree &&\n allParentNodeIds.length &&\n !selectedNodeShown\n ) {\n setSelectedNodeIsHidden(true);\n } else {\n setSelectedNodeIsHidden(false);\n }\n },\n [isCurrentActiveTree, tree, selectedNodeParentId]\n );\n\n const getExpandedRecursively = useCallback(\n (tree) => {\n if (!tree) return [];\n return tree.reduce((expandedIds, item) => {\n if (item?.isExpanded) {\n expandedIds.push(item.id);\n }\n if (item && item[childrenKey]?.length) {\n expandedIds = expandedIds.concat(\n getExpandedRecursively(item[childrenKey])\n );\n }\n return expandedIds;\n }, []);\n },\n [childrenKey]\n );\n\n useEffect(() => {\n setTree(menuItems);\n }, [menuItems]);\n\n useEffect(() => {\n if (!tree) {\n return;\n }\n let expanded = [];\n if (tree?.isExpanded) {\n expanded.push(tree.id);\n }\n expanded = expanded.concat(getExpandedRecursively(tree[childrenKey]));\n setExpanded(expanded);\n }, [getExpandedRecursively, tree, childrenKey]);\n\n useEffect(() => {\n if (!!searchTree(tree, selectedNodeId)) {\n setIsCurrentActiveTree(true);\n } else {\n setIsCurrentActiveTree(false);\n }\n }, [tree, selectedNodeId]);\n\n if (!expanded) {\n return null;\n }\n\n return (\n <TreeView\n key={tree}\n className={classes.root}\n defaultCollapseIcon={\n <FluentIcon\n size='small'\n component={CaretUpSolid8Icon}\n style={{\n color: lighten(theme.palette.primary.main, 0.5),\n width: theme.spacing(1.5),\n height: theme.spacing(1.5)\n }}\n />\n }\n expanded={expanded || []}\n onNodeToggle={handleNodeExpansion}\n defaultExpandIcon={\n <FluentIcon\n size='small'\n component={CaretDownSolid8Icon}\n style={{\n color: lighten(theme.palette.primary.main, 0.5),\n width: theme.spacing(1.5),\n height: theme.spacing(1.5)\n }}\n />\n }\n selected={selectedNodeId}\n >\n {tree && renderTree(tree)}\n </TreeView>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as FluentIcon } from "./FluentIcon-DQ6nSDJg.js";
|
|
2
2
|
import { t as FluentIconButton } from "./FluentIconButton-Dc95mE3v.js";
|
|
3
|
-
import { S as getIconFromName } from "./TreeUtilities-
|
|
3
|
+
import { S as getIconFromName } from "./TreeUtilities-jEhtZNg5.js";
|
|
4
4
|
import { t as StatusChip } from "./StatusChip-DZAN88VU.js";
|
|
5
5
|
import { t as IconButtonWithTooltip } from "./IconButtonWithToolTip-DswviiJB.js";
|
|
6
6
|
import React, { useCallback } from "react";
|
|
@@ -189,4 +189,4 @@ const Accordion = (props) => {
|
|
|
189
189
|
|
|
190
190
|
//#endregion
|
|
191
191
|
export { Accordion as t };
|
|
192
|
-
//# sourceMappingURL=accordion
|
|
192
|
+
//# sourceMappingURL=accordion--zpb1uMC.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"accordion-CT8euUVM.js","names":[],"sources":["../src/UI/accordion/Accordion.jsx"],"sourcesContent":["import {\n ButtonBase,\n Collapse,\n Tooltip,\n Typography,\n lighten,\n makeStyles\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport React, { useCallback } from 'react';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { IconButtonWithTooltip } from '../inputs/buttons/IconButtonWithToolTip';\nimport { ChevronUpIcon } from '@fluentui/react-icons';\nimport { FluentIconButton } from '../inputs/buttons/FluentIconButton';\nimport { getIconFromName } from '../../utilities/tree/TreeUtilities';\nimport { StatusChip } from '../dataDisplay/status/StatusChip';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n height: '100%'\n },\n rootBorder: {\n borderStyle: 'solid',\n borderColor: (props) => theme.palette[props?.color]?.main,\n borderWidth: '1px 1px 1px 6px'\n },\n headerWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n backgroundColor: (props) =>\n props?.simpleAccordion && props?.color && props?.color !== 'default'\n ? props?.color === 'paper'\n ? theme.palette.background.paper\n : lighten(theme.palette[props?.color]?.light, 0.8)\n : theme.palette.background.default,\n overflow: 'hidden',\n width: (props) => props?.headerWidth ?? '100%'\n },\n secondaryButtonsWrapper: {\n display: 'flex',\n gap: theme.spacing(2),\n borderRadius: theme.spacing(2),\n backgroundColor: 'white',\n padding: `2px ${theme.spacing(1)}px`,\n width: 'fit-content'\n },\n primaryButtonWrapper: {\n minWidth: '68px',\n maxWidth: (props) => props?.primaryActionMaxWidth,\n height: 'auto',\n color: 'white',\n backgroundColor: (props) => theme.palette[props?.color]?.main,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'normal'\n },\n headerColor: {\n backgroundColor: (props) =>\n props?.color !== 'default' &&\n props?.color !== 'paper' &&\n lighten(theme.palette[props?.color]?.light, 0.85)\n },\n buttonWrapper: {\n display: 'flex',\n gap: theme.spacing(0.5)\n },\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexGrow: 2,\n margin: (props) => (props.removeHeaderMargin ? '0px' : theme.spacing(0.8)),\n color: theme.palette.text.primary\n },\n closeButtonWrapper: {\n display: 'flex',\n justifyContent: 'flex-end',\n marginTop: theme.spacing(1)\n },\n unexpandedIconButton: {\n width: '68px',\n height: '40px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'normal',\n borderTop: `solid 1px lightgrey`,\n borderLeft: `solid 1px lightgrey`,\n overflow: 'hidden',\n border: (props) => props?.removeBorder && '0px'\n },\n rightIconButton: {\n backgroundColor: 'white',\n padding: theme.spacing(1),\n borderRadius: '50%'\n },\n primaryActionLabel: {\n marginRight: theme.spacing(0.5),\n marginLeft: theme.spacing(0.5)\n },\n expand: {\n transform: 'rotate(0deg)',\n marginLeft: 'auto',\n marginRight: theme.spacing(1),\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n })\n },\n expandOpen: {\n transform: 'rotate(180deg)'\n },\n titleStatusWrapper: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n }\n}));\n\nexport const Accordion = (props) => {\n const {\n title,\n subtitle,\n subtitleVariant,\n status,\n statusIcon,\n statusLabel,\n secondaryIconButtons,\n overriddenSecondaryContainer,\n rightIcon,\n rightIconAction,\n rightIconTooltip,\n disableRightIconButton = false,\n primaryActionIcon,\n primaryActionLabel,\n primaryAction,\n primaryActionMaxWidth,\n disablePrimaryActionButton = false,\n color = 'info',\n children,\n expand,\n setExpand,\n additionalEvent,\n hideCloseButton = false,\n hideRightIconButton = false,\n hidePrimaryAction = false,\n noWrapTitle = false,\n simpleAccordion = false,\n recordId = 0,\n removeBorder = false,\n headerWidth,\n removeHeaderMargin,\n titleVariant = 'subtitle2',\n chevronIconSize = 'medium'\n } = props;\n const classes = useStyles({\n color,\n primaryActionMaxWidth,\n simpleAccordion,\n headerWidth,\n removeHeaderMargin,\n removeBorder,\n });\n\n const handleOnClickAccordion = useCallback(() => {\n if (setExpand) {\n setExpand(!expand);\n }\n\n if (additionalEvent) {\n additionalEvent();\n }\n }, [additionalEvent, expand, setExpand]);\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.rootBorder]: !simpleAccordion & !removeBorder\n })}\n >\n <div\n className={clsx(classes.headerWrapper, {\n [classes.headerColor]: simpleAccordion ? false : expand\n })}\n onClick={handleOnClickAccordion}\n >\n <div className={classes.titleWrapper}>\n <div>\n <div className={classes.titleStatusWrapper}>\n <Typography variant={titleVariant} noWrap={noWrapTitle}>\n {title}\n </Typography>\n {statusLabel && <StatusChip\n status={status ?? color}\n label={statusLabel}\n icon={statusIcon}\n />}\n </div>\n\n {subtitle && (\n <Typography variant={subtitleVariant} noWrap={noWrapTitle}>\n {subtitle}\n </Typography>\n )}\n\n {overriddenSecondaryContainer ? (\n { overriddenSecondaryContainer }\n ) : (\n <div>\n {secondaryIconButtons?.length > 0 && (\n <div className={classes.secondaryButtonsWrapper}>\n {secondaryIconButtons?.map((item) => (\n <div className={classes.buttonWrapper}>\n <IconButtonWithTooltip\n {...item}\n title={item?.title}\n icon={item.icon}\n onClick={(event) => {\n event.stopPropagation();\n item.onClick();\n }}\n size='small'\n id={`udpRecord-Accordion-${item?.title}-${recordId}`}\n udprecordid={`udpRecord-Accordion-${item?.title}-${recordId}`}\n />\n {item?.value && <Typography>{item?.value}</Typography>}\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n {!hideRightIconButton && !simpleAccordion && (\n <div>\n <IconButtonWithTooltip\n title={rightIconTooltip}\n icon={rightIcon}\n onClick={(event) => {\n event.stopPropagation();\n rightIconAction();\n }}\n className={classes.rightIconButton}\n size='small'\n disabled={disableRightIconButton}\n id={`udpRecord-Accordion-RightButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-RightButton-${recordId}`}\n />\n </div>\n )}\n </div>\n {!hidePrimaryAction && !simpleAccordion && (\n <div className={classes.primaryButtonWrapper}>\n {primaryActionIcon ? (\n <Tooltip title={primaryActionLabel}>\n <ButtonBase\n onClick={(event) => {\n event.stopPropagation();\n primaryAction();\n }}\n className={classes.primaryButtonWrapper}\n disabled={disablePrimaryActionButton}\n id={`udpRecord-Accordion-ButtonBase-${recordId}`}\n udprecordid={`udpRecord-Accordion-ButtonBase-${recordId}`}\n >\n <FluentIcon component={primaryActionIcon} />\n </ButtonBase>\n </Tooltip>\n ) : (\n <ButtonBase\n onClick={primaryAction}\n className={classes.primaryButtonWrapper}\n disabled={disablePrimaryActionButton}\n >\n <Typography className={classes.primaryActionLabel}>\n {primaryActionLabel}\n </Typography>\n </ButtonBase>\n )}\n </div>\n )}\n {simpleAccordion && (\n <FluentIconButton\n icon={getIconFromName('ChevronDownIcon')}\n onClick={handleOnClickAccordion}\n className={clsx(classes.expand, {\n [classes.expandOpen]: expand\n })}\n size={chevronIconSize}\n disabled={disableRightIconButton}\n id={`udpRecord-Accordion-ExpandButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-ExpandButton-${recordId}`}\n />\n )}\n </div>\n <Collapse in={expand} timeout='auto' unmountOnExit>\n <div>\n <div>{children}</div>\n {!hideCloseButton && !simpleAccordion && (\n <div className={classes.closeButtonWrapper}>\n <ButtonBase\n onClick={() => {\n if (setExpand) {\n setExpand(false);\n }\n }}\n className={classes.unexpandedIconButton}\n id={`udpRecord-Accordion-CloseButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-CloseButton-${recordId}`}\n >\n <FluentIcon component={ChevronUpIcon} />\n </ButtonBase>\n </div>\n )}\n </div>\n </Collapse>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"accordion--zpb1uMC.js","names":[],"sources":["../src/UI/accordion/Accordion.jsx"],"sourcesContent":["import {\n ButtonBase,\n Collapse,\n Tooltip,\n Typography,\n lighten,\n makeStyles\n} from '@material-ui/core';\nimport clsx from 'clsx';\nimport React, { useCallback } from 'react';\nimport { FluentIcon } from '../../utilities/iconLibrary/FluentIcon';\nimport { IconButtonWithTooltip } from '../inputs/buttons/IconButtonWithToolTip';\nimport { ChevronUpIcon } from '@fluentui/react-icons';\nimport { FluentIconButton } from '../inputs/buttons/FluentIconButton';\nimport { getIconFromName } from '../../utilities/tree/TreeUtilities';\nimport { StatusChip } from '../dataDisplay/status/StatusChip';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: '100%',\n height: '100%'\n },\n rootBorder: {\n borderStyle: 'solid',\n borderColor: (props) => theme.palette[props?.color]?.main,\n borderWidth: '1px 1px 1px 6px'\n },\n headerWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n backgroundColor: (props) =>\n props?.simpleAccordion && props?.color && props?.color !== 'default'\n ? props?.color === 'paper'\n ? theme.palette.background.paper\n : lighten(theme.palette[props?.color]?.light, 0.8)\n : theme.palette.background.default,\n overflow: 'hidden',\n width: (props) => props?.headerWidth ?? '100%'\n },\n secondaryButtonsWrapper: {\n display: 'flex',\n gap: theme.spacing(2),\n borderRadius: theme.spacing(2),\n backgroundColor: 'white',\n padding: `2px ${theme.spacing(1)}px`,\n width: 'fit-content'\n },\n primaryButtonWrapper: {\n minWidth: '68px',\n maxWidth: (props) => props?.primaryActionMaxWidth,\n height: 'auto',\n color: 'white',\n backgroundColor: (props) => theme.palette[props?.color]?.main,\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'normal'\n },\n headerColor: {\n backgroundColor: (props) =>\n props?.color !== 'default' &&\n props?.color !== 'paper' &&\n lighten(theme.palette[props?.color]?.light, 0.85)\n },\n buttonWrapper: {\n display: 'flex',\n gap: theme.spacing(0.5)\n },\n titleWrapper: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center',\n flexGrow: 2,\n margin: (props) => (props.removeHeaderMargin ? '0px' : theme.spacing(0.8)),\n color: theme.palette.text.primary\n },\n closeButtonWrapper: {\n display: 'flex',\n justifyContent: 'flex-end',\n marginTop: theme.spacing(1)\n },\n unexpandedIconButton: {\n width: '68px',\n height: '40px',\n display: 'flex',\n justifyContent: 'center',\n alignItems: 'center',\n alignSelf: 'normal',\n borderTop: `solid 1px lightgrey`,\n borderLeft: `solid 1px lightgrey`,\n overflow: 'hidden',\n border: (props) => props?.removeBorder && '0px'\n },\n rightIconButton: {\n backgroundColor: 'white',\n padding: theme.spacing(1),\n borderRadius: '50%'\n },\n primaryActionLabel: {\n marginRight: theme.spacing(0.5),\n marginLeft: theme.spacing(0.5)\n },\n expand: {\n transform: 'rotate(0deg)',\n marginLeft: 'auto',\n marginRight: theme.spacing(1),\n transition: theme.transitions.create('transform', {\n duration: theme.transitions.duration.shortest\n })\n },\n expandOpen: {\n transform: 'rotate(180deg)'\n },\n titleStatusWrapper: {\n display: 'flex',\n alignItems: 'center',\n gap: theme.spacing(1),\n }\n}));\n\nexport const Accordion = (props) => {\n const {\n title,\n subtitle,\n subtitleVariant,\n status,\n statusIcon,\n statusLabel,\n secondaryIconButtons,\n overriddenSecondaryContainer,\n rightIcon,\n rightIconAction,\n rightIconTooltip,\n disableRightIconButton = false,\n primaryActionIcon,\n primaryActionLabel,\n primaryAction,\n primaryActionMaxWidth,\n disablePrimaryActionButton = false,\n color = 'info',\n children,\n expand,\n setExpand,\n additionalEvent,\n hideCloseButton = false,\n hideRightIconButton = false,\n hidePrimaryAction = false,\n noWrapTitle = false,\n simpleAccordion = false,\n recordId = 0,\n removeBorder = false,\n headerWidth,\n removeHeaderMargin,\n titleVariant = 'subtitle2',\n chevronIconSize = 'medium'\n } = props;\n const classes = useStyles({\n color,\n primaryActionMaxWidth,\n simpleAccordion,\n headerWidth,\n removeHeaderMargin,\n removeBorder,\n });\n\n const handleOnClickAccordion = useCallback(() => {\n if (setExpand) {\n setExpand(!expand);\n }\n\n if (additionalEvent) {\n additionalEvent();\n }\n }, [additionalEvent, expand, setExpand]);\n\n return (\n <div\n className={clsx(classes.root, {\n [classes.rootBorder]: !simpleAccordion & !removeBorder\n })}\n >\n <div\n className={clsx(classes.headerWrapper, {\n [classes.headerColor]: simpleAccordion ? false : expand\n })}\n onClick={handleOnClickAccordion}\n >\n <div className={classes.titleWrapper}>\n <div>\n <div className={classes.titleStatusWrapper}>\n <Typography variant={titleVariant} noWrap={noWrapTitle}>\n {title}\n </Typography>\n {statusLabel && <StatusChip\n status={status ?? color}\n label={statusLabel}\n icon={statusIcon}\n />}\n </div>\n\n {subtitle && (\n <Typography variant={subtitleVariant} noWrap={noWrapTitle}>\n {subtitle}\n </Typography>\n )}\n\n {overriddenSecondaryContainer ? (\n { overriddenSecondaryContainer }\n ) : (\n <div>\n {secondaryIconButtons?.length > 0 && (\n <div className={classes.secondaryButtonsWrapper}>\n {secondaryIconButtons?.map((item) => (\n <div className={classes.buttonWrapper}>\n <IconButtonWithTooltip\n {...item}\n title={item?.title}\n icon={item.icon}\n onClick={(event) => {\n event.stopPropagation();\n item.onClick();\n }}\n size='small'\n id={`udpRecord-Accordion-${item?.title}-${recordId}`}\n udprecordid={`udpRecord-Accordion-${item?.title}-${recordId}`}\n />\n {item?.value && <Typography>{item?.value}</Typography>}\n </div>\n ))}\n </div>\n )}\n </div>\n )}\n </div>\n {!hideRightIconButton && !simpleAccordion && (\n <div>\n <IconButtonWithTooltip\n title={rightIconTooltip}\n icon={rightIcon}\n onClick={(event) => {\n event.stopPropagation();\n rightIconAction();\n }}\n className={classes.rightIconButton}\n size='small'\n disabled={disableRightIconButton}\n id={`udpRecord-Accordion-RightButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-RightButton-${recordId}`}\n />\n </div>\n )}\n </div>\n {!hidePrimaryAction && !simpleAccordion && (\n <div className={classes.primaryButtonWrapper}>\n {primaryActionIcon ? (\n <Tooltip title={primaryActionLabel}>\n <ButtonBase\n onClick={(event) => {\n event.stopPropagation();\n primaryAction();\n }}\n className={classes.primaryButtonWrapper}\n disabled={disablePrimaryActionButton}\n id={`udpRecord-Accordion-ButtonBase-${recordId}`}\n udprecordid={`udpRecord-Accordion-ButtonBase-${recordId}`}\n >\n <FluentIcon component={primaryActionIcon} />\n </ButtonBase>\n </Tooltip>\n ) : (\n <ButtonBase\n onClick={primaryAction}\n className={classes.primaryButtonWrapper}\n disabled={disablePrimaryActionButton}\n >\n <Typography className={classes.primaryActionLabel}>\n {primaryActionLabel}\n </Typography>\n </ButtonBase>\n )}\n </div>\n )}\n {simpleAccordion && (\n <FluentIconButton\n icon={getIconFromName('ChevronDownIcon')}\n onClick={handleOnClickAccordion}\n className={clsx(classes.expand, {\n [classes.expandOpen]: expand\n })}\n size={chevronIconSize}\n disabled={disableRightIconButton}\n id={`udpRecord-Accordion-ExpandButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-ExpandButton-${recordId}`}\n />\n )}\n </div>\n <Collapse in={expand} timeout='auto' unmountOnExit>\n <div>\n <div>{children}</div>\n {!hideCloseButton && !simpleAccordion && (\n <div className={classes.closeButtonWrapper}>\n <ButtonBase\n onClick={() => {\n if (setExpand) {\n setExpand(false);\n }\n }}\n className={classes.unexpandedIconButton}\n id={`udpRecord-Accordion-CloseButton-${recordId}`}\n udprecordid={`udpRecord-Accordion-CloseButton-${recordId}`}\n >\n <FluentIcon component={ChevronUpIcon} />\n </ButtonBase>\n </div>\n )}\n </div>\n </Collapse>\n </div>\n );\n};\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as FluentSearchField } from "./FluentSearchField-DebM7Nzf.js";
|
|
2
2
|
import { t as UnityFluentIcon } from "./UnityFluentIcon-DrASIcTF.js";
|
|
3
|
-
import { n as useActions } from "./useActions-
|
|
3
|
+
import { n as useActions } from "./useActions-DZe6YlEm.js";
|
|
4
4
|
import { i as mapRule, t as evaluateRule } from "./RuleUtilities-D5ACzikQ.js";
|
|
5
5
|
import { t as PrimaryActionButton } from "./PrimaryActionButton-Dk8zvDAW.js";
|
|
6
6
|
import { t as Typography$1 } from "./Typography-BMsa1JYd.js";
|
|
@@ -252,4 +252,4 @@ ActionSummaryPopover.propTypes = {
|
|
|
252
252
|
|
|
253
253
|
//#endregion
|
|
254
254
|
export { ActionSummaryCard as a, ActionSummaryListContainer as i, ActionSummaryListItem as n, ActionSummaryHeader as r, ActionSummaryPopover as t };
|
|
255
|
-
//# sourceMappingURL=actionSummary-
|
|
255
|
+
//# sourceMappingURL=actionSummary-D0CwyTXJ.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionSummary-BEOW5B3h.js","names":["useStyles","ActionSummaryCard: FC<ActionSummaryProps>","useStyles","ActionSummaryListContainer: FC<\n ActionSummaryListContainerProps\n>","count: number","useStyles","ActionSummaryHeader: FC<ActionSummaryHeaderProps>","useStyles","ActionSummaryListItem: FC<ActionSummaryListItemProps>","Typography"],"sources":["../src/actions/actionSummary/ActionSummaryCard.tsx","../src/actions/actionSummary/ActionSummaryListContainer.tsx","../src/actions/actionSummary/ActionSummaryHeader.tsx","../src/actions/actionSummary/ActionSummaryListItem.tsx","../src/actions/actionSummary/ActionSummaryPopover.jsx"],"sourcesContent":["import React, { FC, useState } from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport { FluentSearchField } from '../../UI/inputs/textField/FluentSearchField';\nimport {\n ActionSummaryHeader,\n ActionSummaryListContainer,\n ActionSummaryListItemProps\n} from '.';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: 750,\n paddingLeft: 12,\n paddingRight: 12,\n maxHeight: 750,\n overflowY: 'scroll'\n },\n header: {\n display: 'flex',\n justifyContent: 'space-between'\n //backgroundColor: 'red'\n }\n}));\n\nexport type ActionSummaryProps = {\n actionMenuContent: Array<ActionSummaryContent>;\n selectedNode: object | null | undefined;\n};\n\nexport type ActionSummaryContent = {\n header: string;\n icon: string;\n iconType?: string;\n items: Array<ActionSummaryListItemProps>;\n};\n\nexport const ActionSummaryCard: FC<ActionSummaryProps> = ({\n actionMenuContent,\n selectedNode\n}: ActionSummaryProps) => {\n const classes = useStyles();\n const [searchValue, setSearchValue] = useState<string>('');\n\n return (\n <div className={classes.root}>\n <div className={classes.header}>\n <div\n style={{\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column'\n }}\n >\n <Typography variant='h6'>Actions</Typography>\n </div>\n <FluentSearchField\n id='udpRecord-ActionSummaryCard-Search'\n udprecordid='udpRecord-ActionSummaryCard-Search'\n value={searchValue}\n onChange={(e: any) => setSearchValue(e.target.value)}\n variant='filled'\n // searchOptions={searchOptions}\n style={{ marginTop: 0, paddingTop: 0 }}\n />\n </div>\n {actionMenuContent.map((section: ActionSummaryContent, i: number) => (\n <>\n <ActionSummaryHeader\n key={i}\n iconType={section.iconType}\n icon={section.icon}\n header={section.header}\n />\n <ActionSummaryListContainer\n key={i}\n selectedNode={selectedNode}\n items={section.items.map((item): ActionSummaryListItemProps => {\n const highlighted =\n item?.value &&\n item.value.toLowerCase().includes(searchValue.toLowerCase()) &&\n searchValue.length > 0;\n return { ...item, highlighted: highlighted || item.highlighted };\n })}\n />\n </>\n ))}\n </div>\n );\n};\n","import { List, makeStyles, Typography, ListItem } from '@material-ui/core';\nimport React, { FC, MutableRefObject } from 'react';\nimport { ActionSummaryListItemProps, ActionSummaryListItem } from '.';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n flexWrap: 'wrap',\n overflowY: 'scroll',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n },\n itemContainer: {\n display: 'flex',\n flexDirection: 'column',\n paddingLeft: 1,\n // paddingBottom: theme.spacing(2),\n width: '33%'\n }\n}));\n\ntype ActionSummaryListContainerProps = {\n items: Array<ActionSummaryListItemProps>;\n selectedNode?: object;\n};\n\nexport const ActionSummaryListContainer: FC<\n ActionSummaryListContainerProps\n> = ({ items, selectedNode }: ActionSummaryListContainerProps) => {\n const classes = useStyles();\n function* keyGenerator() {\n let count: number = 0;\n while (true) {\n yield count++;\n }\n }\n const countGen = keyGenerator();\n return (\n <div className={classes.root}>\n <div className={classes.itemContainer}>\n <List disablePadding>\n {items\n .filter((item, i) => i % 3 === 0)\n .map((item: ActionSummaryListItemProps) => (\n <ActionSummaryListItem\n selectedNode={selectedNode}\n {...item}\n key={countGen.next().value as number}\n />\n ))}\n </List>\n </div>\n <div className={classes.itemContainer}>\n <List disablePadding>\n {items\n .filter((item, i) => i % 3 === 1)\n .map((item: ActionSummaryListItemProps) => (\n <ActionSummaryListItem\n selectedNode={selectedNode}\n {...item}\n key={countGen.next().value as number}\n />\n ))}\n </List>\n </div>\n <div className={classes.itemContainer}>\n <List disablePadding>\n {items\n .filter((item, i) => i % 3 === 2)\n .map((item: ActionSummaryListItemProps) => (\n <ActionSummaryListItem\n selectedNode={selectedNode}\n {...item}\n key={countGen.next().value as number}\n />\n ))}\n </List>\n </div>\n </div>\n );\n};\n","import * as Icons from \"@fluentui/react-icons\";\nimport { makeStyles, Typography } from \"@material-ui/core\";\nimport React, { FC } from \"react\";\nimport { UnityFluentIcon } from '../../utilities/iconLibrary/UnityFluentIcon'\n\ntype ActionSummaryHeaderProps = {\n icon: string;\n header: string;\n iconType?: string\n};\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n backgroundColor: theme.palette.primary.main + '1A',\n display: \"flex\",\n padding: 5,\n gap: 10,\n },\n container: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center'\n\n },\n icon: {\n color: theme.palette.primary.main\n }\n}));\n\nexport const ActionSummaryHeader: FC<ActionSummaryHeaderProps> = (\n {\n icon,\n header,\n iconType\n }: ActionSummaryHeaderProps\n) => {\n const classes = useStyles();\n return (\n <div className={classes.root}>\n <div className={classes.container}>\n <UnityFluentIcon className={classes.icon} type={iconType} component={Icons[icon]} />\n </div>\n <div className={classes.container}>\n <Typography display='inline' variant='h6' >{header}</Typography>\n </div>\n </div>\n );\n};\n","import React, { FC, useMemo, MutableRefObject } from 'react';\nimport { Chip, makeStyles } from '@material-ui/core';\nimport { useActions } from '../../hooks/useActions';\nimport { UdpTheme } from '../../utilities/theme/theme.types';\n\nexport type ActionSummaryListItemProps = {\n value: string;\n highlighted?: boolean; // gives an mui chip background\n enabled?: boolean; // greys out the item\n actionId: string;\n setLoading: Function;\n selectedNode?: any;\n};\n\nconst useStyles = makeStyles((theme: UdpTheme) => ({\n listItemWithChip: {\n paddingTop: 1,\n paddingBottom: 1,\n alignItems: 'start'\n },\n listItemGutters: {\n paddingLeft: 10\n },\n chipSelected: {\n backgroundColor: theme.palette.secondary.main + '1A',\n color: theme?.getThemeData()?.mode === 'light' ? 'black' : 'white'\n },\n chipWhite: {\n color: theme?.getThemeData()?.mode === 'light' ? 'black' : 'white',\n backgroundColor: theme.palette.background.paper\n },\n chipRoot: {\n width: '100%',\n justifyContent: 'start',\n paddingTop: 1\n },\n chipWhiteDeselected: {\n color: 'grey',\n backgroundColor: theme.palette.background.paper\n },\n chipHover: {\n '&:hover': {\n backgroundColor: theme.palette.secondary.main + '3A'\n },\n '&:focus': {\n backgroundColor: theme.palette.secondary.main + '3A'\n }\n }\n}));\n\nexport const ActionSummaryListItem: FC<ActionSummaryListItemProps> = ({\n value,\n highlighted,\n enabled,\n actionId,\n selectedNode\n}: ActionSummaryListItemProps) => {\n const classes = useStyles();\n const { triggerAction } = useActions();\n const render = useMemo(() => {\n return (\n <div className={classes.listItemWithChip}>\n <Chip\n color='primary'\n clickable={enabled}\n onClick={\n enabled\n ? () => triggerAction(actionId, selectedNode?.nodeObj)\n : () => {}\n }\n classes={{\n colorPrimary: enabled\n ? highlighted\n ? classes.chipSelected\n : classes.chipWhite\n : classes.chipWhiteDeselected,\n root: classes.chipRoot,\n clickableColorPrimary: classes.chipHover\n }}\n label={value}\n />\n </div>\n );\n }, [highlighted, enabled, value]);\n\n return render;\n};\n","import { MoreVerticalIcon } from '@fluentui/react-icons';\nimport { makeStyles, Popover } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useState, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ActionSummaryCard } from './';\nimport { evaluateRule, mapRule } from '../../utilities/rules/RuleUtilities';\nimport { PrimaryActionButton } from '../../UI/inputs/buttons/PrimaryActionButton';\nimport { Typography } from '../../UI/dataDisplay/typography/Typography';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n actionsMenu: {\n color: theme?.palette?.getContrastText(theme?.palette?.primary?.main)\n }\n}));\n\nexport const ActionSummaryPopover = (props) => {\n const { panelActions, noContrastColor, selectedNode, setLoading } = props;\n const classes = useStyles();\n const [anchorEl, setAnchorEl] = useState(null);\n const { t } = useTranslation();\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const actionSummaryPopoverActions = useMemo(() => {\n return panelActions?.reduce((actions, current) => {\n if (!current.enabled) return actions;\n\n const passRule =\n current.action.actionRules?.reduce((boolValue, rule) => {\n const ruleExpression = mapRule(rule.mapping, rule.jsonLogic);\n return (\n boolValue &&\n evaluateRule(\n ruleExpression,\n selectedNode?.nodeObj,\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n selectedNode?.wasLazyLoaded\n )\n );\n }, true) ?? true;\n\n if (!passRule && current?.hideAction) return actions;\n\n const currentVal = {\n value: current.action.name,\n actionId: current.actionId,\n sequence: current.sequence,\n enabled: passRule\n };\n\n const group = actions.find(\n (action) =>\n action?.header?.toLowerCase() === current?.groupName?.toLowerCase()\n );\n if (group) {\n group.items.push(currentVal);\n group.items.sort((a, b) => a.sequence - b.sequence);\n } else {\n actions.push({\n header: current.groupName,\n icon: current.icon.name,\n iconType: current.icon.type,\n items: [currentVal]\n });\n }\n return actions;\n }, []);\n }, [panelActions, selectedNode]);\n\n const open = Boolean(anchorEl);\n const id = open ? 'action-summary-popover' : undefined;\n\n return (\n <>\n <PrimaryActionButton onClick={handleClick} icon={<MoreVerticalIcon />}>\n <Typography>{t('Actions')}</Typography>\n </PrimaryActionButton>\n\n <Popover\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left'\n }}\n >\n <ActionSummaryCard\n actionMenuContent={actionSummaryPopoverActions}\n setLoading={setLoading}\n selectedNode={selectedNode}\n />\n </Popover>\n </>\n );\n};\n\nActionSummaryPopover.propTypes = {\n /**\n * Actions configured within Action Panel\n */\n panelActions: PropTypes.array,\n /**\n * Boolean to toggle contrast color\n */\n noContrastColor: PropTypes.bool,\n /**\n * Action Panels\n */\n selectedNode: PropTypes.object\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"actionSummary-D0CwyTXJ.js","names":["useStyles","ActionSummaryCard: FC<ActionSummaryProps>","useStyles","ActionSummaryListContainer: FC<\n ActionSummaryListContainerProps\n>","count: number","useStyles","ActionSummaryHeader: FC<ActionSummaryHeaderProps>","useStyles","ActionSummaryListItem: FC<ActionSummaryListItemProps>","Typography"],"sources":["../src/actions/actionSummary/ActionSummaryCard.tsx","../src/actions/actionSummary/ActionSummaryListContainer.tsx","../src/actions/actionSummary/ActionSummaryHeader.tsx","../src/actions/actionSummary/ActionSummaryListItem.tsx","../src/actions/actionSummary/ActionSummaryPopover.jsx"],"sourcesContent":["import React, { FC, useState } from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport { FluentSearchField } from '../../UI/inputs/textField/FluentSearchField';\nimport {\n ActionSummaryHeader,\n ActionSummaryListContainer,\n ActionSummaryListItemProps\n} from '.';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n width: 750,\n paddingLeft: 12,\n paddingRight: 12,\n maxHeight: 750,\n overflowY: 'scroll'\n },\n header: {\n display: 'flex',\n justifyContent: 'space-between'\n //backgroundColor: 'red'\n }\n}));\n\nexport type ActionSummaryProps = {\n actionMenuContent: Array<ActionSummaryContent>;\n selectedNode: object | null | undefined;\n};\n\nexport type ActionSummaryContent = {\n header: string;\n icon: string;\n iconType?: string;\n items: Array<ActionSummaryListItemProps>;\n};\n\nexport const ActionSummaryCard: FC<ActionSummaryProps> = ({\n actionMenuContent,\n selectedNode\n}: ActionSummaryProps) => {\n const classes = useStyles();\n const [searchValue, setSearchValue] = useState<string>('');\n\n return (\n <div className={classes.root}>\n <div className={classes.header}>\n <div\n style={{\n display: 'flex',\n justifyContent: 'center',\n flexDirection: 'column'\n }}\n >\n <Typography variant='h6'>Actions</Typography>\n </div>\n <FluentSearchField\n id='udpRecord-ActionSummaryCard-Search'\n udprecordid='udpRecord-ActionSummaryCard-Search'\n value={searchValue}\n onChange={(e: any) => setSearchValue(e.target.value)}\n variant='filled'\n // searchOptions={searchOptions}\n style={{ marginTop: 0, paddingTop: 0 }}\n />\n </div>\n {actionMenuContent.map((section: ActionSummaryContent, i: number) => (\n <>\n <ActionSummaryHeader\n key={i}\n iconType={section.iconType}\n icon={section.icon}\n header={section.header}\n />\n <ActionSummaryListContainer\n key={i}\n selectedNode={selectedNode}\n items={section.items.map((item): ActionSummaryListItemProps => {\n const highlighted =\n item?.value &&\n item.value.toLowerCase().includes(searchValue.toLowerCase()) &&\n searchValue.length > 0;\n return { ...item, highlighted: highlighted || item.highlighted };\n })}\n />\n </>\n ))}\n </div>\n );\n};\n","import { List, makeStyles, Typography, ListItem } from '@material-ui/core';\nimport React, { FC, MutableRefObject } from 'react';\nimport { ActionSummaryListItemProps, ActionSummaryListItem } from '.';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n display: 'flex',\n flexWrap: 'wrap',\n overflowY: 'scroll',\n marginTop: theme.spacing(1),\n marginBottom: theme.spacing(1)\n },\n itemContainer: {\n display: 'flex',\n flexDirection: 'column',\n paddingLeft: 1,\n // paddingBottom: theme.spacing(2),\n width: '33%'\n }\n}));\n\ntype ActionSummaryListContainerProps = {\n items: Array<ActionSummaryListItemProps>;\n selectedNode?: object;\n};\n\nexport const ActionSummaryListContainer: FC<\n ActionSummaryListContainerProps\n> = ({ items, selectedNode }: ActionSummaryListContainerProps) => {\n const classes = useStyles();\n function* keyGenerator() {\n let count: number = 0;\n while (true) {\n yield count++;\n }\n }\n const countGen = keyGenerator();\n return (\n <div className={classes.root}>\n <div className={classes.itemContainer}>\n <List disablePadding>\n {items\n .filter((item, i) => i % 3 === 0)\n .map((item: ActionSummaryListItemProps) => (\n <ActionSummaryListItem\n selectedNode={selectedNode}\n {...item}\n key={countGen.next().value as number}\n />\n ))}\n </List>\n </div>\n <div className={classes.itemContainer}>\n <List disablePadding>\n {items\n .filter((item, i) => i % 3 === 1)\n .map((item: ActionSummaryListItemProps) => (\n <ActionSummaryListItem\n selectedNode={selectedNode}\n {...item}\n key={countGen.next().value as number}\n />\n ))}\n </List>\n </div>\n <div className={classes.itemContainer}>\n <List disablePadding>\n {items\n .filter((item, i) => i % 3 === 2)\n .map((item: ActionSummaryListItemProps) => (\n <ActionSummaryListItem\n selectedNode={selectedNode}\n {...item}\n key={countGen.next().value as number}\n />\n ))}\n </List>\n </div>\n </div>\n );\n};\n","import * as Icons from \"@fluentui/react-icons\";\nimport { makeStyles, Typography } from \"@material-ui/core\";\nimport React, { FC } from \"react\";\nimport { UnityFluentIcon } from '../../utilities/iconLibrary/UnityFluentIcon'\n\ntype ActionSummaryHeaderProps = {\n icon: string;\n header: string;\n iconType?: string\n};\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n backgroundColor: theme.palette.primary.main + '1A',\n display: \"flex\",\n padding: 5,\n gap: 10,\n },\n container: {\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center'\n\n },\n icon: {\n color: theme.palette.primary.main\n }\n}));\n\nexport const ActionSummaryHeader: FC<ActionSummaryHeaderProps> = (\n {\n icon,\n header,\n iconType\n }: ActionSummaryHeaderProps\n) => {\n const classes = useStyles();\n return (\n <div className={classes.root}>\n <div className={classes.container}>\n <UnityFluentIcon className={classes.icon} type={iconType} component={Icons[icon]} />\n </div>\n <div className={classes.container}>\n <Typography display='inline' variant='h6' >{header}</Typography>\n </div>\n </div>\n );\n};\n","import React, { FC, useMemo, MutableRefObject } from 'react';\nimport { Chip, makeStyles } from '@material-ui/core';\nimport { useActions } from '../../hooks/useActions';\nimport { UdpTheme } from '../../utilities/theme/theme.types';\n\nexport type ActionSummaryListItemProps = {\n value: string;\n highlighted?: boolean; // gives an mui chip background\n enabled?: boolean; // greys out the item\n actionId: string;\n setLoading: Function;\n selectedNode?: any;\n};\n\nconst useStyles = makeStyles((theme: UdpTheme) => ({\n listItemWithChip: {\n paddingTop: 1,\n paddingBottom: 1,\n alignItems: 'start'\n },\n listItemGutters: {\n paddingLeft: 10\n },\n chipSelected: {\n backgroundColor: theme.palette.secondary.main + '1A',\n color: theme?.getThemeData()?.mode === 'light' ? 'black' : 'white'\n },\n chipWhite: {\n color: theme?.getThemeData()?.mode === 'light' ? 'black' : 'white',\n backgroundColor: theme.palette.background.paper\n },\n chipRoot: {\n width: '100%',\n justifyContent: 'start',\n paddingTop: 1\n },\n chipWhiteDeselected: {\n color: 'grey',\n backgroundColor: theme.palette.background.paper\n },\n chipHover: {\n '&:hover': {\n backgroundColor: theme.palette.secondary.main + '3A'\n },\n '&:focus': {\n backgroundColor: theme.palette.secondary.main + '3A'\n }\n }\n}));\n\nexport const ActionSummaryListItem: FC<ActionSummaryListItemProps> = ({\n value,\n highlighted,\n enabled,\n actionId,\n selectedNode\n}: ActionSummaryListItemProps) => {\n const classes = useStyles();\n const { triggerAction } = useActions();\n const render = useMemo(() => {\n return (\n <div className={classes.listItemWithChip}>\n <Chip\n color='primary'\n clickable={enabled}\n onClick={\n enabled\n ? () => triggerAction(actionId, selectedNode?.nodeObj)\n : () => {}\n }\n classes={{\n colorPrimary: enabled\n ? highlighted\n ? classes.chipSelected\n : classes.chipWhite\n : classes.chipWhiteDeselected,\n root: classes.chipRoot,\n clickableColorPrimary: classes.chipHover\n }}\n label={value}\n />\n </div>\n );\n }, [highlighted, enabled, value]);\n\n return render;\n};\n","import { MoreVerticalIcon } from '@fluentui/react-icons';\nimport { makeStyles, Popover } from '@material-ui/core';\nimport PropTypes from 'prop-types';\nimport React, { useState, useMemo } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ActionSummaryCard } from './';\nimport { evaluateRule, mapRule } from '../../utilities/rules/RuleUtilities';\nimport { PrimaryActionButton } from '../../UI/inputs/buttons/PrimaryActionButton';\nimport { Typography } from '../../UI/dataDisplay/typography/Typography';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n actionsMenu: {\n color: theme?.palette?.getContrastText(theme?.palette?.primary?.main)\n }\n}));\n\nexport const ActionSummaryPopover = (props) => {\n const { panelActions, noContrastColor, selectedNode, setLoading } = props;\n const classes = useStyles();\n const [anchorEl, setAnchorEl] = useState(null);\n const { t } = useTranslation();\n\n const handleClick = (event) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClose = () => {\n setAnchorEl(null);\n };\n\n const actionSummaryPopoverActions = useMemo(() => {\n return panelActions?.reduce((actions, current) => {\n if (!current.enabled) return actions;\n\n const passRule =\n current.action.actionRules?.reduce((boolValue, rule) => {\n const ruleExpression = mapRule(rule.mapping, rule.jsonLogic);\n return (\n boolValue &&\n evaluateRule(\n ruleExpression,\n selectedNode?.nodeObj,\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n selectedNode?.wasLazyLoaded\n )\n );\n }, true) ?? true;\n\n if (!passRule && current?.hideAction) return actions;\n\n const currentVal = {\n value: current.action.name,\n actionId: current.actionId,\n sequence: current.sequence,\n enabled: passRule\n };\n\n const group = actions.find(\n (action) =>\n action?.header?.toLowerCase() === current?.groupName?.toLowerCase()\n );\n if (group) {\n group.items.push(currentVal);\n group.items.sort((a, b) => a.sequence - b.sequence);\n } else {\n actions.push({\n header: current.groupName,\n icon: current.icon.name,\n iconType: current.icon.type,\n items: [currentVal]\n });\n }\n return actions;\n }, []);\n }, [panelActions, selectedNode]);\n\n const open = Boolean(anchorEl);\n const id = open ? 'action-summary-popover' : undefined;\n\n return (\n <>\n <PrimaryActionButton onClick={handleClick} icon={<MoreVerticalIcon />}>\n <Typography>{t('Actions')}</Typography>\n </PrimaryActionButton>\n\n <Popover\n id={id}\n open={open}\n anchorEl={anchorEl}\n onClose={handleClose}\n anchorOrigin={{\n vertical: 'bottom',\n horizontal: 'left'\n }}\n >\n <ActionSummaryCard\n actionMenuContent={actionSummaryPopoverActions}\n setLoading={setLoading}\n selectedNode={selectedNode}\n />\n </Popover>\n </>\n );\n};\n\nActionSummaryPopover.propTypes = {\n /**\n * Actions configured within Action Panel\n */\n panelActions: PropTypes.array,\n /**\n * Boolean to toggle contrast color\n */\n noContrastColor: PropTypes.bool,\n /**\n * Action Panels\n */\n selectedNode: PropTypes.object\n};\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { i as getPathParametersObj } from "./CrudBrowserUtilities-C9nVmUR3.js";
|
|
2
2
|
import { t as ConfigService } from "./configService-C4uoG3wj.js";
|
|
3
3
|
import { t as apiMutate } from "./useAxiosMutate-DeqKSi5z.js";
|
|
4
|
-
import { _ as NodeActionEnums, j as SplitScreenTypeEnums } from "./unitySystemEnums-
|
|
4
|
+
import { _ as NodeActionEnums, j as SplitScreenTypeEnums } from "./unitySystemEnums-CZDCsD5t.js";
|
|
5
5
|
import { r as useActionStore, t as useInquiryStore } from "./inquiryStore-BMYKf5MP.js";
|
|
6
6
|
import React from "react";
|
|
7
7
|
import { Button } from "@material-ui/core";
|
|
@@ -215,4 +215,4 @@ const useHandleAction = () => {
|
|
|
215
215
|
|
|
216
216
|
//#endregion
|
|
217
217
|
export { getSuccessAction as n, useHandleAction as t };
|
|
218
|
-
//# sourceMappingURL=actionUtils-
|
|
218
|
+
//# sourceMappingURL=actionUtils-CPmiSAig.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionUtils-Bj5-851p.js","names":[],"sources":["../src/UI/SuccessAction.jsx","../src/actions/utils/actionUtils.js"],"sourcesContent":["import React from 'react';\nimport { Button } from '@material-ui/core';\n\nexport const getSuccessAction = (closeSnackbar) => {\n const successAction = (key) => (\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n closeSnackbar(key);\n }}\n >\n OK\n </Button>\n );\n return successAction;\n};\n","import { useHistory } from 'react-router-dom';\nimport { useSnackbar } from 'notistack';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../../configService';\nimport {\n NodeActionEnums,\n SplitScreenTypeEnums\n} from '../../enums/unitySystemEnums';\nimport { getSuccessAction } from '../../UI/SuccessAction';\nimport { useActionStore } from '../../stores/actionStore';\nimport { useInquiryStore } from '../../stores/inquiryStore';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { getPathParametersObj } from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\n\nfunction isValidURL(url) {\n // Regular expression for URL validation\n const urlPattern = /^(ftp|http|https):\\/\\/[^ \"]+$/;\n return urlPattern.test(url);\n}\n\nexport const useHandleAction = () => {\n const history = useHistory();\n const { t } = useTranslation();\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const successAction = getSuccessAction(closeSnackbar);\n const selectedNode = useActionStore((state) => state.selectedNode);\n const setWorkflowMap = useInquiryStore((state) => state.setWorkflowMap);\n const setWorkflowStarting = useInquiryStore(\n (state) => state.setWorkflowStarting\n );\n\n const executeStartWorkflow = async (workflowId, payload) =>\n apiMutate(\n ConfigService.config.BUILDER_API_BASE,\n `workflow/${workflowId}/start`,\n {\n method: 'post'\n },\n { data: payload }\n );\n\n const getApiMethod = async (apiMethodId) =>\n apiMutate(\n ConfigService.config.INTEGRATION_API_BASE,\n `apimethod/${apiMethodId}`,\n {\n method: 'get'\n }\n );\n\n const handleAction = async (\n dispatch,\n action,\n state,\n executeAction,\n apiCatalogId,\n entityAttributes,\n actionData,\n currentContainerId\n ) => {\n if (!action) {\n return;\n }\n\n const actionName = action.name;\n let actionValue = action.value;\n if (action?.parameters?.entityName) {\n actionValue +=\n '?entityName=' +\n action.parameters.entityName +\n '&apiCatalogId=' +\n apiCatalogId;\n }\n\n switch (action.actionTypeId) {\n case NodeActionEnums.Open_External_Link:\n window.open(actionValue, '_blank');\n break;\n case NodeActionEnums.Redirect:\n // if the url is valid, redirect to that url, if its not valid, assume its a path redirect on the same origin\n if (isValidURL(actionValue)) {\n window.location.href = actionValue;\n } else {\n history.push(actionValue);\n }\n break;\n case NodeActionEnums.Create:\n if (dispatch) {\n dispatch({\n type: 'OPEN_SIDESHEET',\n sideSheet: { action: action, open: true }\n });\n }\n break;\n case NodeActionEnums.Update:\n if (dispatch) {\n dispatch({\n type: 'OPEN_SIDESHEET',\n sideSheet: { action: action, open: true }\n });\n }\n break;\n case NodeActionEnums.Delete:\n if (dispatch) {\n dispatch({\n type: 'OPEN_MODAL',\n modal: { action: action, open: true, title: 'Delete ' }\n });\n }\n break;\n case NodeActionEnums.Retrieve:\n if (dispatch) {\n if (currentContainerId) {\n break;\n } else {\n dispatch({\n type: 'OPEN_SPLIT_SCREEN',\n splitScreen: {\n action: action,\n open: true,\n type: SplitScreenTypeEnums.Entity\n }\n });\n }\n }\n break;\n case NodeActionEnums.Open_Page_Split_Screen:\n if (dispatch) {\n if (!!selectedNode) {\n dispatch({\n type: 'OPEN_PAGE_CONTAINER_SPLIT_SCREEN',\n pageContainerSplitScreen: {\n action: action,\n open: true,\n type: SplitScreenTypeEnums.Page\n }\n });\n } else {\n dispatch({\n type: 'OPEN_PAGE_SPLIT_SCREEN',\n pageSplitScreen: {\n action: action,\n open: true,\n type: SplitScreenTypeEnums.Page\n }\n });\n }\n }\n break;\n case NodeActionEnums.Open_Shell_Split_Screen:\n if (dispatch) {\n if (currentContainerId) {\n break;\n } else {\n dispatch({\n type: 'OPEN_SPLIT_SCREEN',\n splitScreen: {\n action: action,\n open: true,\n type: SplitScreenTypeEnums.Page\n }\n });\n }\n }\n break;\n case NodeActionEnums.Open_Notes:\n if (dispatch) {\n if (currentContainerId) {\n break;\n } else {\n dispatch({\n type: 'OPEN_SPLIT_SCREEN',\n splitScreen: {\n action: action,\n open: true,\n type: SplitScreenTypeEnums.Notes\n }\n });\n }\n }\n break;\n case NodeActionEnums.Open_Reminders:\n if (dispatch) {\n if (currentContainerId) {\n break;\n } else {\n dispatch({\n type: 'OPEN_SPLIT_SCREEN',\n splitScreen: {\n action: action,\n open: true,\n type: SplitScreenTypeEnums.Reminders\n }\n });\n }\n }\n break;\n case NodeActionEnums.Execute_Api:\n if (executeAction && action?.value) {\n let data = {};\n\n if (\n entityAttributes.length > 0 &&\n (selectedNode?.nodeObj || actionData)\n ) {\n // actionData will be used as Request Data first as it is directly passed into function\n if (actionData) {\n data = { ...actionData };\n } else {\n data = { ...selectedNode?.nodeObj };\n }\n const removeAttributes = entityAttributes.filter(\n (p) => p?.extendedProperties?.childEntity\n );\n removeAttributes.forEach((att) => {\n if (att['name'] in data || 'serializeFields' in data) {\n delete data[att['name']];\n }\n });\n }\n const apiMethod = await getApiMethod(action?.value);\n const pathParamValues = getPathParametersObj(\n apiMethod?.data?.pathParametersDefinition,\n data\n );\n\n const response = executeAction(\n {\n data: { requestBody: data, ...pathParamValues }\n },\n action.value\n )\n .then((res) => {\n enqueueSnackbar(\n t(`${action?.name} api has been executed successfully.`),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n })\n .catch((res) => {\n enqueueSnackbar(res.message, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n } else {\n enqueueSnackbar(t(`Unable to execute ${actionName} action.`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }\n break;\n case NodeActionEnums.Start_Workflow:\n setWorkflowStarting(true);\n // actionValue will be workflowId where we can call Start workflow\n // actionData is the selected nodeObj used as payload\n const response = await executeStartWorkflow(\n actionValue,\n actionData || {}\n ).catch((e) => {\n enqueueSnackbar(t(`Unable to Start Workflow`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n setWorkflowStarting(false);\n if (response.status === 200) {\n const playId = response.data;\n // if selectedNode it means we're in Inquiry\n if (selectedNode) {\n const workflow = {\n inWorkflowMode: true,\n currentWorkflowPlayId: playId\n };\n const containerId = currentContainerId || 0;\n setWorkflowMap({ [containerId]: workflow });\n } else {\n history.push({\n pathname: `/workflowtask/${playId}?taskId=${''}`,\n state: {\n label: t('Workflow')\n }\n });\n }\n }\n break;\n case NodeActionEnums.Execute_Function:\n !!actionData?.execute && actionData.execute();\n\n break;\n default:\n break;\n }\n };\n return { handleAction };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"actionUtils-CPmiSAig.js","names":[],"sources":["../src/UI/SuccessAction.jsx","../src/actions/utils/actionUtils.js"],"sourcesContent":["import React from 'react';\nimport { Button } from '@material-ui/core';\n\nexport const getSuccessAction = (closeSnackbar) => {\n const successAction = (key) => (\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n closeSnackbar(key);\n }}\n >\n OK\n </Button>\n );\n return successAction;\n};\n","import { useHistory } from 'react-router-dom';\nimport { useSnackbar } from 'notistack';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../../configService';\nimport {\n NodeActionEnums,\n SplitScreenTypeEnums\n} from '../../enums/unitySystemEnums';\nimport { getSuccessAction } from '../../UI/SuccessAction';\nimport { useActionStore } from '../../stores/actionStore';\nimport { useInquiryStore } from '../../stores/inquiryStore';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport { getPathParametersObj } from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\n\nfunction isValidURL(url) {\n // Regular expression for URL validation\n const urlPattern = /^(ftp|http|https):\\/\\/[^ \"]+$/;\n return urlPattern.test(url);\n}\n\nexport const useHandleAction = () => {\n const history = useHistory();\n const { t } = useTranslation();\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const successAction = getSuccessAction(closeSnackbar);\n const selectedNode = useActionStore((state) => state.selectedNode);\n const setWorkflowMap = useInquiryStore((state) => state.setWorkflowMap);\n const setWorkflowStarting = useInquiryStore(\n (state) => state.setWorkflowStarting\n );\n\n const executeStartWorkflow = async (workflowId, payload) =>\n apiMutate(\n ConfigService.config.BUILDER_API_BASE,\n `workflow/${workflowId}/start`,\n {\n method: 'post'\n },\n { data: payload }\n );\n\n const getApiMethod = async (apiMethodId) =>\n apiMutate(\n ConfigService.config.INTEGRATION_API_BASE,\n `apimethod/${apiMethodId}`,\n {\n method: 'get'\n }\n );\n\n const handleAction = async (\n dispatch,\n action,\n state,\n executeAction,\n apiCatalogId,\n entityAttributes,\n actionData,\n currentContainerId\n ) => {\n if (!action) {\n return;\n }\n\n const actionName = action.name;\n let actionValue = action.value;\n if (action?.parameters?.entityName) {\n actionValue +=\n '?entityName=' +\n action.parameters.entityName +\n '&apiCatalogId=' +\n apiCatalogId;\n }\n\n switch (action.actionTypeId) {\n case NodeActionEnums.Open_External_Link:\n window.open(actionValue, '_blank');\n break;\n case NodeActionEnums.Redirect:\n // if the url is valid, redirect to that url, if its not valid, assume its a path redirect on the same origin\n if (isValidURL(actionValue)) {\n window.location.href = actionValue;\n } else {\n history.push(actionValue);\n }\n break;\n case NodeActionEnums.Create:\n if (dispatch) {\n dispatch({\n type: 'OPEN_SIDESHEET',\n sideSheet: { action: action, open: true }\n });\n }\n break;\n case NodeActionEnums.Update:\n if (dispatch) {\n dispatch({\n type: 'OPEN_SIDESHEET',\n sideSheet: { action: action, open: true }\n });\n }\n break;\n case NodeActionEnums.Delete:\n if (dispatch) {\n dispatch({\n type: 'OPEN_MODAL',\n modal: { action: action, open: true, title: 'Delete ' }\n });\n }\n break;\n case NodeActionEnums.Retrieve:\n if (dispatch) {\n if (currentContainerId) {\n break;\n } else {\n dispatch({\n type: 'OPEN_SPLIT_SCREEN',\n splitScreen: {\n action: action,\n open: true,\n type: SplitScreenTypeEnums.Entity\n }\n });\n }\n }\n break;\n case NodeActionEnums.Open_Page_Split_Screen:\n if (dispatch) {\n if (!!selectedNode) {\n dispatch({\n type: 'OPEN_PAGE_CONTAINER_SPLIT_SCREEN',\n pageContainerSplitScreen: {\n action: action,\n open: true,\n type: SplitScreenTypeEnums.Page\n }\n });\n } else {\n dispatch({\n type: 'OPEN_PAGE_SPLIT_SCREEN',\n pageSplitScreen: {\n action: action,\n open: true,\n type: SplitScreenTypeEnums.Page\n }\n });\n }\n }\n break;\n case NodeActionEnums.Open_Shell_Split_Screen:\n if (dispatch) {\n if (currentContainerId) {\n break;\n } else {\n dispatch({\n type: 'OPEN_SPLIT_SCREEN',\n splitScreen: {\n action: action,\n open: true,\n type: SplitScreenTypeEnums.Page\n }\n });\n }\n }\n break;\n case NodeActionEnums.Open_Notes:\n if (dispatch) {\n if (currentContainerId) {\n break;\n } else {\n dispatch({\n type: 'OPEN_SPLIT_SCREEN',\n splitScreen: {\n action: action,\n open: true,\n type: SplitScreenTypeEnums.Notes\n }\n });\n }\n }\n break;\n case NodeActionEnums.Open_Reminders:\n if (dispatch) {\n if (currentContainerId) {\n break;\n } else {\n dispatch({\n type: 'OPEN_SPLIT_SCREEN',\n splitScreen: {\n action: action,\n open: true,\n type: SplitScreenTypeEnums.Reminders\n }\n });\n }\n }\n break;\n case NodeActionEnums.Execute_Api:\n if (executeAction && action?.value) {\n let data = {};\n\n if (\n entityAttributes.length > 0 &&\n (selectedNode?.nodeObj || actionData)\n ) {\n // actionData will be used as Request Data first as it is directly passed into function\n if (actionData) {\n data = { ...actionData };\n } else {\n data = { ...selectedNode?.nodeObj };\n }\n const removeAttributes = entityAttributes.filter(\n (p) => p?.extendedProperties?.childEntity\n );\n removeAttributes.forEach((att) => {\n if (att['name'] in data || 'serializeFields' in data) {\n delete data[att['name']];\n }\n });\n }\n const apiMethod = await getApiMethod(action?.value);\n const pathParamValues = getPathParametersObj(\n apiMethod?.data?.pathParametersDefinition,\n data\n );\n\n const response = executeAction(\n {\n data: { requestBody: data, ...pathParamValues }\n },\n action.value\n )\n .then((res) => {\n enqueueSnackbar(\n t(`${action?.name} api has been executed successfully.`),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n })\n .catch((res) => {\n enqueueSnackbar(res.message, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n } else {\n enqueueSnackbar(t(`Unable to execute ${actionName} action.`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }\n break;\n case NodeActionEnums.Start_Workflow:\n setWorkflowStarting(true);\n // actionValue will be workflowId where we can call Start workflow\n // actionData is the selected nodeObj used as payload\n const response = await executeStartWorkflow(\n actionValue,\n actionData || {}\n ).catch((e) => {\n enqueueSnackbar(t(`Unable to Start Workflow`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n setWorkflowStarting(false);\n if (response.status === 200) {\n const playId = response.data;\n // if selectedNode it means we're in Inquiry\n if (selectedNode) {\n const workflow = {\n inWorkflowMode: true,\n currentWorkflowPlayId: playId\n };\n const containerId = currentContainerId || 0;\n setWorkflowMap({ [containerId]: workflow });\n } else {\n history.push({\n pathname: `/workflowtask/${playId}?taskId=${''}`,\n state: {\n label: t('Workflow')\n }\n });\n }\n }\n break;\n case NodeActionEnums.Execute_Function:\n !!actionData?.execute && actionData.execute();\n\n break;\n default:\n break;\n }\n };\n return { handleAction };\n};\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
import { a as ActionSummaryCard, i as ActionSummaryListContainer, n as ActionSummaryListItem, r as ActionSummaryHeader, t as ActionSummaryPopover } from "../../actionSummary-
|
|
1
|
+
import { a as ActionSummaryCard, i as ActionSummaryListContainer, n as ActionSummaryListItem, r as ActionSummaryHeader, t as ActionSummaryPopover } from "../../actionSummary-D0CwyTXJ.js";
|
|
2
2
|
|
|
3
3
|
export { ActionSummaryCard, ActionSummaryHeader, ActionSummaryListContainer, ActionSummaryListItem, ActionSummaryPopover };
|
package/dist/actions/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { a as ActionModal, i as ActionSpeedDial, n as ActionSideSheet, o as ActionForm, r as ActionPanelPlacement, t as ActionWrapper } from "../ActionWrapper-
|
|
2
|
-
import { a as ActionSummaryCard, i as ActionSummaryListContainer, n as ActionSummaryListItem, r as ActionSummaryHeader, t as ActionSummaryPopover } from "../actionSummary-
|
|
3
|
-
import { t as useHandleAction } from "../actionUtils-
|
|
1
|
+
import { a as ActionModal, i as ActionSpeedDial, n as ActionSideSheet, o as ActionForm, r as ActionPanelPlacement, t as ActionWrapper } from "../ActionWrapper-Bpp9Mn4j.js";
|
|
2
|
+
import { a as ActionSummaryCard, i as ActionSummaryListContainer, n as ActionSummaryListItem, r as ActionSummaryHeader, t as ActionSummaryPopover } from "../actionSummary-D0CwyTXJ.js";
|
|
3
|
+
import { t as useHandleAction } from "../actionUtils-CPmiSAig.js";
|
|
4
4
|
import { t as EntitySideBarContent } from "../EntitySideBarContent-Bl_8gI69.js";
|
|
5
|
-
import { t as ActionSplitScreen } from "../ActionSplitScreen-
|
|
6
|
-
import { t as PageActionWrapper } from "../PageActionWrapper-
|
|
5
|
+
import { t as ActionSplitScreen } from "../ActionSplitScreen-gKH4ISoo.js";
|
|
6
|
+
import { t as PageActionWrapper } from "../PageActionWrapper-BBkGtnC6.js";
|
|
7
7
|
import "./utils/index.js";
|
|
8
8
|
import "./sidebar/index.js";
|
|
9
9
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { A as SeverityTypeEnums } from "./unitySystemEnums-
|
|
1
|
+
import { A as SeverityTypeEnums } from "./unitySystemEnums-CZDCsD5t.js";
|
|
2
2
|
import { t as NumberOperatorEnums } from "./NumberOperator-p4HsHHx3.js";
|
|
3
3
|
|
|
4
4
|
//#region src/UI/utilityDisplay/utilities/aggregateUtils.js
|
|
@@ -67,4 +67,4 @@ const evaluateThreshold = (threshold = {}, aggregateValue) => {
|
|
|
67
67
|
|
|
68
68
|
//#endregion
|
|
69
69
|
export { getThresholdStatus as t };
|
|
70
|
-
//# sourceMappingURL=aggregateUtils-
|
|
70
|
+
//# sourceMappingURL=aggregateUtils-UcpEjFnf.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"aggregateUtils-
|
|
1
|
+
{"version":3,"file":"aggregateUtils-UcpEjFnf.js","names":[],"sources":["../src/UI/utilityDisplay/utilities/aggregateUtils.js"],"sourcesContent":["import { SeverityTypeEnums } from '../../../enums/unitySystemEnums';\nimport { NumberOperatorEnums } from '../../../models/NumberOperator';\n\nexport const getThresholdStatus = (aggThreshold, aggregateValue) => {\n if (!aggThreshold || !aggregateValue) return null;\n // Order of this array matters\n const thresholdTypes = [\n {\n type: SeverityTypeEnums.Success,\n threshold: aggThreshold.successThreshold\n },\n { type: SeverityTypeEnums.Error, threshold: aggThreshold.errorThreshold },\n {\n type: SeverityTypeEnums.Warning,\n threshold: aggThreshold.warningThreshold\n },\n { type: SeverityTypeEnums.Info, threshold: aggThreshold.infoThreshold }\n ];\n\n let thresholdStatus = '';\n for (const { type, threshold } of thresholdTypes) {\n if (threshold && evaluateThreshold(threshold, aggregateValue)) {\n thresholdStatus = type;\n break;\n }\n }\n\n return thresholdStatus;\n};\n\nconst evaluateThreshold = (threshold = {}, aggregateValue) => {\n if (typeof threshold === 'string') {\n try {\n threshold = JSON.parse(threshold);\n } catch {\n console.error(`Could not parse: ${threshold}`);\n return false;\n }\n }\n const { operator, value1, value2 } = threshold;\n let thresholdMet = false;\n\n switch (operator) {\n case NumberOperatorEnums.Equals:\n thresholdMet = aggregateValue === parseFloat(value1);\n break;\n case NumberOperatorEnums.Does_Not_Equal:\n thresholdMet = aggregateValue !== parseFloat(value1);\n break;\n case NumberOperatorEnums.Greater_Than:\n thresholdMet = aggregateValue > parseFloat(value1);\n break;\n case NumberOperatorEnums.Less_Than:\n thresholdMet = aggregateValue < parseFloat(value1);\n break;\n case NumberOperatorEnums.Greater_Than_Or_Equal_To:\n thresholdMet = aggregateValue >= parseFloat(value1);\n break;\n case NumberOperatorEnums.Less_Than_Or_Equal_To:\n thresholdMet = aggregateValue <= parseFloat(value1);\n break;\n case NumberOperatorEnums.Between:\n thresholdMet =\n aggregateValue >= parseFloat(value1) &&\n aggregateValue <= parseFloat(value2);\n break;\n default:\n break;\n }\n\n return thresholdMet;\n};\n"],"mappings":";;;;AAGA,MAAa,sBAAsB,cAAc,mBAAmB;AAClE,KAAI,CAAC,gBAAgB,CAAC,eAAgB,QAAO;CAE7C,MAAM,iBAAiB;EACrB;GACE,MAAM,kBAAkB;GACxB,WAAW,aAAa;GACzB;EACD;GAAE,MAAM,kBAAkB;GAAO,WAAW,aAAa;GAAgB;EACzE;GACE,MAAM,kBAAkB;GACxB,WAAW,aAAa;GACzB;EACD;GAAE,MAAM,kBAAkB;GAAM,WAAW,aAAa;GAAe;EACxE;CAED,IAAI,kBAAkB;AACtB,MAAK,MAAM,EAAE,MAAM,eAAe,eAChC,KAAI,aAAa,kBAAkB,WAAW,eAAe,EAAE;AAC7D,oBAAkB;AAClB;;AAIJ,QAAO;;AAGT,MAAM,qBAAqB,YAAY,EAAE,EAAE,mBAAmB;AAC5D,KAAI,OAAO,cAAc,SACvB,KAAI;AACF,cAAY,KAAK,MAAM,UAAU;SAC3B;AACN,UAAQ,MAAM,oBAAoB,YAAY;AAC9C,SAAO;;CAGX,MAAM,EAAE,UAAU,QAAQ,WAAW;CACrC,IAAI,eAAe;AAEnB,SAAQ,UAAR;EACE,KAAK,oBAAoB;AACvB,kBAAe,mBAAmB,WAAW,OAAO;AACpD;EACF,KAAK,oBAAoB;AACvB,kBAAe,mBAAmB,WAAW,OAAO;AACpD;EACF,KAAK,oBAAoB;AACvB,kBAAe,iBAAiB,WAAW,OAAO;AAClD;EACF,KAAK,oBAAoB;AACvB,kBAAe,iBAAiB,WAAW,OAAO;AAClD;EACF,KAAK,oBAAoB;AACvB,kBAAe,kBAAkB,WAAW,OAAO;AACnD;EACF,KAAK,oBAAoB;AACvB,kBAAe,kBAAkB,WAAW,OAAO;AACnD;EACF,KAAK,oBAAoB;AACvB,kBACE,kBAAkB,WAAW,OAAO,IACpC,kBAAkB,WAAW,OAAO;AACtC;EACF,QACE;;AAGJ,QAAO"}
|