udp-react-enterprise-component-library 25.18.1-beta.11 → 25.18.1-beta.13
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-CTn1qVWd.js → ActionProvider-MFZvkh4u.js} +6 -6
- package/dist/{ActionProvider-CTn1qVWd.js.map → ActionProvider-MFZvkh4u.js.map} +1 -1
- package/dist/{ActionSplitScreen-KVa5olgd.js → ActionSplitScreen-SncJFJJQ.js} +7 -7
- package/dist/{ActionSplitScreen-KVa5olgd.js.map → ActionSplitScreen-SncJFJJQ.js.map} +1 -1
- package/dist/{ActionWrapper-47uvDDnB.js → ActionWrapper-Dq45yDqo.js} +11 -11
- package/dist/{ActionWrapper-47uvDDnB.js.map → ActionWrapper-Dq45yDqo.js.map} +1 -1
- package/dist/{ActionsRenderer-BVfaUEx2.js → ActionsRenderer-B1ImXko3.js} +2 -2
- package/dist/{ActionsRenderer-BVfaUEx2.js.map → ActionsRenderer-B1ImXko3.js.map} +1 -1
- package/dist/{AggregateChip-BF6RL_4_.js → AggregateChip-BDugg_kG.js} +3 -3
- package/dist/{AggregateChip-BF6RL_4_.js.map → AggregateChip-BDugg_kG.js.map} +1 -1
- package/dist/{AmbientGridTemplate-CDj051YK.js → AmbientGridTemplate-BecuOnHe.js} +5 -5
- package/dist/{AmbientGridTemplate-CDj051YK.js.map → AmbientGridTemplate-BecuOnHe.js.map} +1 -1
- package/dist/{AppMenu-l9dxXKrP.js → AppMenu-B9CCWiY8.js} +3 -3
- package/dist/{AppMenu-l9dxXKrP.js.map → AppMenu-B9CCWiY8.js.map} +1 -1
- package/dist/{BaseTreeMenu-Bk4XZUCL.js → BaseTreeMenu-DitVfbeZ.js} +2 -2
- package/dist/{BaseTreeMenu-Bk4XZUCL.js.map → BaseTreeMenu-DitVfbeZ.js.map} +1 -1
- package/dist/{BioCardWrapper-DmS18Z9H.js → BioCardWrapper-CI0ZngTU.js} +3 -3
- package/dist/{BioCardWrapper-DmS18Z9H.js.map → BioCardWrapper-CI0ZngTU.js.map} +1 -1
- package/dist/{BulkActionsGridButton-C2Nwb7c6.js → BulkActionsGridButton-CSzHiVvH.js} +3 -3
- package/dist/{BulkActionsGridButton-C2Nwb7c6.js.map → BulkActionsGridButton-CSzHiVvH.js.map} +1 -1
- package/dist/{ChatContainer-BpN6e_Of.js → ChatContainer-CW2u13tF.js} +2 -2
- package/dist/{ChatContainer-BpN6e_Of.js.map → ChatContainer-CW2u13tF.js.map} +1 -1
- package/dist/{ChatUDP-DglX5k_O.js → ChatUDP-B7dgnKO0.js} +2 -2
- package/dist/{ChatUDP-DglX5k_O.js.map → ChatUDP-B7dgnKO0.js.map} +1 -1
- package/dist/{CoreLayoutFloorplan-C-4DdwJz.js → CoreLayoutFloorplan-xIdceY2Q.js} +2 -2
- package/dist/{CoreLayoutFloorplan-C-4DdwJz.js.map → CoreLayoutFloorplan-xIdceY2Q.js.map} +1 -1
- package/dist/{CrudForm-mWpBEuUw.js → CrudForm-DzmNPfVa.js} +6 -6
- package/dist/{CrudForm-mWpBEuUw.js.map → CrudForm-DzmNPfVa.js.map} +1 -1
- package/dist/{CrudTableSidePanel-CepOcRgl.js → CrudTableSidePanel-CXOSojmw.js} +4 -4
- package/dist/{CrudTableSidePanel-CepOcRgl.js.map → CrudTableSidePanel-CXOSojmw.js.map} +1 -1
- package/dist/{DataBrowserContainer-hkDvrMzs.js → DataBrowserContainer-DHE9PS3L.js} +7 -7
- package/dist/{DataBrowserContainer-hkDvrMzs.js.map → DataBrowserContainer-DHE9PS3L.js.map} +1 -1
- package/dist/{EntityHeader-Ddk4syVV.js → EntityHeader-y6CNHP0L.js} +3 -3
- package/dist/{EntityHeader-Ddk4syVV.js.map → EntityHeader-y6CNHP0L.js.map} +1 -1
- package/dist/{EntitySideBarContent-CBckqx1w.js → EntitySideBarContent-Bp0saKq_.js} +2 -2
- package/dist/{EntitySideBarContent-CBckqx1w.js.map → EntitySideBarContent-Bp0saKq_.js.map} +1 -1
- package/dist/{ExportSidesheet-DA6NzDsz.js → ExportSidesheet-DBww0zIt.js} +3 -3
- package/dist/{ExportSidesheet-DA6NzDsz.js.map → ExportSidesheet-DBww0zIt.js.map} +1 -1
- package/dist/{FieldArrayCard-tENUf1YA.js → FieldArrayCard-56TLTaZc.js} +3 -3
- package/dist/{FieldArrayCard-tENUf1YA.js.map → FieldArrayCard-56TLTaZc.js.map} +1 -1
- package/dist/{FluentProfileMenuCard-CMRsJxqq.js → FluentProfileMenuCard-CnUOy-ne.js} +8 -8
- package/dist/{FluentProfileMenuCard-CMRsJxqq.js.map → FluentProfileMenuCard-CnUOy-ne.js.map} +1 -1
- package/dist/{FluentSimpleSelect-kMQgny9h.js → FluentSimpleSelect-sDwSJFGU.js} +2 -2
- package/dist/{FluentSimpleSelect-kMQgny9h.js.map → FluentSimpleSelect-sDwSJFGU.js.map} +1 -1
- package/dist/{ImportDataFromFileMapping-kkCJEGIS.js → ImportDataFromFileMapping-CBKGm2pM.js} +6 -6
- package/dist/{ImportDataFromFileMapping-kkCJEGIS.js.map → ImportDataFromFileMapping-CBKGm2pM.js.map} +1 -1
- package/dist/{InputsExample-2z_6lbK2.js → InputsExample-ClC-vFVK.js} +1 -1
- package/dist/{InputsExample-2z_6lbK2.js.map → InputsExample-ClC-vFVK.js.map} +1 -1
- package/dist/{InsightRenderer-DU65aYRt.js → InsightRenderer-UkS3B5zg.js} +2 -2
- package/dist/{InsightRenderer-DU65aYRt.js.map → InsightRenderer-UkS3B5zg.js.map} +1 -1
- package/dist/{MapLayout-D_OmMd5_.js → MapLayout-D6hNVarS.js} +2 -2
- package/dist/{MapLayout-D_OmMd5_.js.map → MapLayout-D6hNVarS.js.map} +1 -1
- package/dist/{MenuPage-CM3gZWnB.js → MenuPage-B4ZN_tQt.js} +4 -4
- package/dist/{MenuPage-CM3gZWnB.js.map → MenuPage-B4ZN_tQt.js.map} +1 -1
- package/dist/{MenuPage-C8256rDe.js → MenuPage-HFTfG0b-.js} +10 -10
- package/dist/{MttMainTimeline-CO2XiVps.js → MttMainTimeline-CwttwjLy.js} +2 -2
- package/dist/{MttMainTimeline-CO2XiVps.js.map → MttMainTimeline-CwttwjLy.js.map} +1 -1
- package/dist/{MttSummary-DDb0TusU.js → MttSummary-Br4SrY1Q.js} +2 -2
- package/dist/{MttSummary-DDb0TusU.js.map → MttSummary-Br4SrY1Q.js.map} +1 -1
- package/dist/{MyExportsPage-tRTJ5QKs.js → MyExportsPage-Bw0ueYE_.js} +14 -14
- package/dist/{MyExportsPage-BAtFVaZg.js → MyExportsPage-lqTyApig.js} +7 -7
- package/dist/{MyExportsPage-BAtFVaZg.js.map → MyExportsPage-lqTyApig.js.map} +1 -1
- package/dist/{NotesScreen-DeWD6LVV.js → NotesScreen-COYYhVJJ.js} +5 -5
- package/dist/{NotesScreen-DeWD6LVV.js.map → NotesScreen-COYYhVJJ.js.map} +1 -1
- package/dist/{OutlookCallback-BETH8x2Z.js → OutlookCallback-BJmI0px0.js} +2 -2
- package/dist/{OutlookCallback-BETH8x2Z.js.map → OutlookCallback-BJmI0px0.js.map} +1 -1
- package/dist/{PageActionWrapper-BCK4anE9.js → PageActionWrapper-DuvcqQCs.js} +4 -4
- package/dist/{PageActionWrapper-BCK4anE9.js.map → PageActionWrapper-DuvcqQCs.js.map} +1 -1
- package/dist/{PageContainer-BgNeJt3S.js → PageContainer-N4d5KO-T.js} +2 -2
- package/dist/{PageContainer-BgNeJt3S.js.map → PageContainer-N4d5KO-T.js.map} +1 -1
- package/dist/{PageRenderer-DDEem1OJ.js → PageRenderer-ToHJXkJq.js} +2 -2
- package/dist/{PageRenderer-DDEem1OJ.js.map → PageRenderer-ToHJXkJq.js.map} +1 -1
- package/dist/{PaymentForm-C0Hvky2o.js → PaymentForm-D09B2VrH.js} +3 -3
- package/dist/{PaymentForm-C0Hvky2o.js.map → PaymentForm-D09B2VrH.js.map} +1 -1
- package/dist/{PaymentReversalForm-CYoR6QL5.js → PaymentReversalForm-BCACJcnX.js} +2 -2
- package/dist/{PaymentReversalForm-CYoR6QL5.js.map → PaymentReversalForm-BCACJcnX.js.map} +1 -1
- package/dist/{PowerBIReport-BQP0l17v.js → PowerBIReport-DzVNLdH0.js} +2 -2
- package/dist/{PowerBIReport-BQP0l17v.js.map → PowerBIReport-DzVNLdH0.js.map} +1 -1
- package/dist/{RejectIcon-yEBYxlIm.js → RejectIcon-9a6AQhFS.js} +1 -1
- package/dist/{RejectIcon-yEBYxlIm.js.map → RejectIcon-9a6AQhFS.js.map} +1 -1
- package/dist/{RemindersCard-BJvpNrnD.js → RemindersCard-EbJUUB54.js} +2 -2
- package/dist/{RemindersCard-BJvpNrnD.js.map → RemindersCard-EbJUUB54.js.map} +1 -1
- package/dist/{RemindersScreen--hs-M0hg.js → RemindersScreen-bwvsZOGc.js} +5 -5
- package/dist/{RemindersScreen--hs-M0hg.js.map → RemindersScreen-bwvsZOGc.js.map} +1 -1
- package/dist/{RemindersWidget-BcypyEI4.js → RemindersWidget-Uk_ZyAW-.js} +5 -5
- package/dist/{RemindersWidget-BcypyEI4.js.map → RemindersWidget-Uk_ZyAW-.js.map} +1 -1
- package/dist/{RequiredFieldsMappingForm-BTnefL8X.js → RequiredFieldsMappingForm-KwEaUAJ-.js} +2 -2
- package/dist/{RequiredFieldsMappingForm-BTnefL8X.js.map → RequiredFieldsMappingForm-KwEaUAJ-.js.map} +1 -1
- package/dist/{Shell-DxRVAjoc.js → Shell-BnKSMfKq.js} +6 -6
- package/dist/{Shell-DxRVAjoc.js.map → Shell-BnKSMfKq.js.map} +1 -1
- package/dist/{ShortcutContentFinder-DV4VXUyJ.js → ShortcutContentFinder-MyXbDeFJ.js} +3 -3
- package/dist/{ShortcutContentFinder-DV4VXUyJ.js.map → ShortcutContentFinder-MyXbDeFJ.js.map} +1 -1
- package/dist/{SimpleTable-qZ0yJQ7F.js → SimpleTable-BMjywRbx.js} +1 -1
- package/dist/{SimpleTable-qZ0yJQ7F.js.map → SimpleTable-BMjywRbx.js.map} +1 -1
- package/dist/{StatusCellRenderer-DK3MexwY.js → StatusCellRenderer-DOYDkiZu.js} +1 -1
- package/dist/{StatusCellRenderer-DK3MexwY.js.map → StatusCellRenderer-DOYDkiZu.js.map} +1 -1
- package/dist/{SupportCaseSideSheet-_IBBlr08.js → SupportCaseSideSheet-D5VyeXgu.js} +5 -5
- package/dist/{SupportCaseSideSheet-DNXocqwx.js → SupportCaseSideSheet-DPfapAFC.js} +2 -2
- package/dist/{SupportCaseSideSheet-DNXocqwx.js.map → SupportCaseSideSheet-DPfapAFC.js.map} +1 -1
- package/dist/{TableContainer-CNI8NNy2.js → TableContainer-B4aFO7ly.js} +4 -4
- package/dist/{TableContainer-CNI8NNy2.js.map → TableContainer-B4aFO7ly.js.map} +1 -1
- package/dist/{TenantProvider-DLI5riri.js → TenantProvider-rYWrO7y7.js} +2 -2
- package/dist/{TenantProvider-DLI5riri.js.map → TenantProvider-rYWrO7y7.js.map} +1 -1
- package/dist/UI/accordion/index.js +1 -1
- package/dist/UI/advancedSearchBuilder/index.js +1 -1
- package/dist/UI/charts/index.js +6 -6
- package/dist/UI/components/dataDisplay/index.js +1 -1
- package/dist/UI/components/feedback/index.js +1 -1
- package/dist/UI/components/index.js +3 -3
- package/dist/UI/containers/index.js +1 -1
- package/dist/UI/dataDisplay/FluentActivity/index.js +1 -1
- package/dist/UI/dataDisplay/FluentDataTable/index.js +1 -1
- package/dist/UI/dataDisplay/entityHeader/index.js +11 -11
- package/dist/UI/dataDisplay/index.js +3 -3
- package/dist/UI/demos/index.js +2 -2
- package/dist/UI/feedback/index.js +1 -1
- package/dist/UI/fileViewer/index.js +1 -1
- package/dist/UI/floorplans/index.js +11 -11
- package/dist/UI/forms/index.js +12 -12
- package/dist/UI/iframe/index.js +1 -1
- package/dist/UI/index.js +64 -64
- package/dist/UI/inputs/fieldArrayCard/index.js +10 -10
- package/dist/UI/inputs/menus/index.js +5 -5
- package/dist/UI/loading/index.js +1 -1
- package/dist/UI/mapLayout/index.js +11 -11
- package/dist/UI/maps/index.js +2 -2
- package/dist/UI/navigation/index.js +11 -11
- package/dist/UI/navigation/menus/index.js +8 -8
- package/dist/UI/navigation/tabs/defaultTabs/index.js +1 -1
- package/dist/UI/navigation/tabs/index.js +2 -2
- package/dist/UI/property/index.js +1 -1
- package/dist/UI/stepper/index.js +1 -1
- package/dist/UI/support/index.js +6 -6
- package/dist/UI/surfaces/NestedGrid/index.js +2 -2
- package/dist/UI/surfaces/NestedGrid/ui/index.js +1 -1
- package/dist/UI/surfaces/cards/index.js +1 -1
- package/dist/UI/surfaces/index.js +4 -4
- package/dist/UI/templates/deprecated/AmbientGridTemplate/index.js +9 -9
- package/dist/UI/templates/deprecated/UdpGridTemplate/index.js +9 -9
- package/dist/UI/templates/index.js +1 -1
- package/dist/UI/templates/newGrid/index.js +9 -9
- package/dist/UI/templates/ui/renderers/index.js +3 -3
- package/dist/UI/timeline/fluentTimeline/index.js +1 -1
- package/dist/UI/timeline/index.js +2 -2
- package/dist/UI/utilityDisplay/alerts/index.js +11 -11
- package/dist/UI/utilityDisplay/index.js +17 -17
- package/dist/UI/utilityDisplay/ui/index.js +1 -1
- package/dist/UI/utilityDisplay/utilities/index.js +1 -1
- package/dist/UI/utilityDisplay/utilityHeader/index.js +1 -1
- package/dist/UI/widgets/FluentComponents/index.js +1 -1
- package/dist/UI/widgets/index.js +1 -1
- package/dist/UI/widgets/library/RemindersWidget/index.js +9 -9
- package/dist/UI/widgets/library/TableWidget/index.js +1 -1
- package/dist/{UdpAlertsContainer-DexXCrFZ.js → UdpAlertsContainer-DehnlBcE.js} +4 -4
- package/dist/{UdpAlertsContainer-DexXCrFZ.js.map → UdpAlertsContainer-DehnlBcE.js.map} +1 -1
- package/dist/{UdpAuditEvents-BOsP49Fy.js → UdpAuditEvents-Dsvqz2Ad.js} +2 -2
- package/dist/{UdpAuditEvents-BOsP49Fy.js.map → UdpAuditEvents-Dsvqz2Ad.js.map} +1 -1
- package/dist/{UdpAuditEventsPage-mfZsK6Up.js → UdpAuditEventsPage-BF-AXqwI.js} +18 -18
- package/dist/{UdpAuditEventsPage-DoA7iu8S.js → UdpAuditEventsPage-CUXXlLY1.js} +3 -3
- package/dist/{UdpAuditEventsPage-DoA7iu8S.js.map → UdpAuditEventsPage-CUXXlLY1.js.map} +1 -1
- package/dist/{UdpDataBrowserPage-cKFWzGRk.js → UdpDataBrowserPage-DIq--ak3.js} +10 -10
- package/dist/{UdpDataBrowserPage-cKFWzGRk.js.map → UdpDataBrowserPage-DIq--ak3.js.map} +1 -1
- package/dist/{UdpFormsBuilderPage-_oo5DGDq.js → UdpFormsBuilderPage-C1_7kI_t.js} +7 -5
- package/dist/{UdpFormsBuilderPage-_oo5DGDq.js.map → UdpFormsBuilderPage-C1_7kI_t.js.map} +1 -1
- package/dist/UdpFormsSubmissionGrid-Bzo5wcCS.js +295 -0
- package/dist/UdpFormsSubmissionGrid-Bzo5wcCS.js.map +1 -0
- package/dist/{UdpGridPanelManagementPage-BcGNXKD4.js → UdpGridPanelManagementPage-Dk0miZ38.js} +5 -5
- package/dist/{UdpGridPanelManagementPage-BcGNXKD4.js.map → UdpGridPanelManagementPage-Dk0miZ38.js.map} +1 -1
- package/dist/{UdpGridTemplate-jILzGANi.js → UdpGridTemplate-CodLjVVL.js} +2 -2
- package/dist/{UdpGridTemplate-jILzGANi.js.map → UdpGridTemplate-CodLjVVL.js.map} +1 -1
- package/dist/{UdpImportFromFileMappingPage-CC3YinwA.js → UdpImportFromFileMappingPage-BWaYkxhW.js} +2 -2
- package/dist/{UdpImportFromFileMappingPage-CC3YinwA.js.map → UdpImportFromFileMappingPage-BWaYkxhW.js.map} +1 -1
- package/dist/{UdpInquiryMaintenanceEnginePage-BU49LRTZ.js → UdpInquiryMaintenanceEnginePage-DTanTz7X.js} +3 -3
- package/dist/{UdpInquiryMaintenanceEnginePage-BU49LRTZ.js.map → UdpInquiryMaintenanceEnginePage-DTanTz7X.js.map} +1 -1
- package/dist/{UdpMaintenanceEnginePage-Dhf985zH.js → UdpMaintenanceEnginePage-DIyBfIMk.js} +8 -8
- package/dist/{UdpMaintenanceEnginePage-Dhf985zH.js.map → UdpMaintenanceEnginePage-DIyBfIMk.js.map} +1 -1
- package/dist/{UdpMap-Bu59mmYa.js → UdpMap-DB0qsBfI.js} +1 -1
- package/dist/{UdpMap-Bu59mmYa.js.map → UdpMap-DB0qsBfI.js.map} +1 -1
- package/dist/{UdpNotesPage-CXu_ydp4.js → UdpNotesPage-B3cesDaw.js} +7 -7
- package/dist/{UdpNotesPage-CXu_ydp4.js.map → UdpNotesPage-B3cesDaw.js.map} +1 -1
- package/dist/{UdpPages-DVPJl-XO.js → UdpPages-Duf7s2Bf.js} +16 -16
- package/dist/{UdpPages-DVPJl-XO.js.map → UdpPages-Duf7s2Bf.js.map} +1 -1
- package/dist/{UdpPrivateForm-BJdYZzlO.js → UdpPrivateForm-Cju6dVDc.js} +9 -6
- package/dist/UdpPrivateForm-Cju6dVDc.js.map +1 -0
- package/dist/{UdpPublicForm-aCs42nKH.js → UdpPublicForm-D3D8GPrh.js} +2 -2
- package/dist/{UdpPublicForm-aCs42nKH.js.map → UdpPublicForm-D3D8GPrh.js.map} +1 -1
- package/dist/{UdpRemindersPage-5EYNlPs6.js → UdpRemindersPage-DBQ0SQO4.js} +7 -7
- package/dist/{UdpRemindersPage-5EYNlPs6.js.map → UdpRemindersPage-DBQ0SQO4.js.map} +1 -1
- package/dist/{UdpReportsPage-CKxd-e9T.js → UdpReportsPage-DMA-kvyF.js} +2 -2
- package/dist/{UdpReportsPage-CKxd-e9T.js.map → UdpReportsPage-DMA-kvyF.js.map} +1 -1
- package/dist/{UdpRoutes-BRQDUS6-.js → UdpRoutes-MhKxW3An.js} +6 -6
- package/dist/{UdpRoutes-BRQDUS6-.js.map → UdpRoutes-MhKxW3An.js.map} +1 -1
- package/dist/{UdpVerticalManagementPage-8VmP_fHh.js → UdpVerticalManagementPage-SWVycbx7.js} +6 -6
- package/dist/{UdpVerticalManagementPage-8VmP_fHh.js.map → UdpVerticalManagementPage-SWVycbx7.js.map} +1 -1
- package/dist/{UdpVerticalManagementSidesheet-DUahRHZG.js → UdpVerticalManagementSidesheet-aIPwJWAM.js} +6 -6
- package/dist/{UdpVerticalManagementSidesheet-DUahRHZG.js.map → UdpVerticalManagementSidesheet-aIPwJWAM.js.map} +1 -1
- package/dist/{UserForm-BvhytSr8.js → UserForm-Crii1kld.js} +2 -2
- package/dist/{UserForm-BvhytSr8.js.map → UserForm-Crii1kld.js.map} +1 -1
- package/dist/{UserFormSideSheet-hCzYWgFm.js → UserFormSideSheet-2QRJUUnm.js} +4 -4
- package/dist/{UserFormSideSheet-hCzYWgFm.js.map → UserFormSideSheet-2QRJUUnm.js.map} +1 -1
- package/dist/{UserFormSideSheet-7MuWUCQQ.js → UserFormSideSheet-DGU02bqo.js} +7 -7
- package/dist/{UtilityBar-DRKn9kf4.js → UtilityBar-CdvZ37Da.js} +2 -2
- package/dist/{UtilityBar-DRKn9kf4.js.map → UtilityBar-CdvZ37Da.js.map} +1 -1
- package/dist/{VirtualBrowser-BQ_Zpdh0.js → VirtualBrowser-CKvzgu8L.js} +9 -9
- package/dist/{VirtualBrowser-BQ_Zpdh0.js.map → VirtualBrowser-CKvzgu8L.js.map} +1 -1
- package/dist/{VirtualBrowser-CaeWWI1I.js → VirtualBrowser-CxAjZWKa.js} +14 -14
- package/dist/{VirtualForm-B3d7su-F.js → VirtualForm-Dj5FMp9u.js} +1 -1
- package/dist/{VirtualForm-B3d7su-F.js.map → VirtualForm-Dj5FMp9u.js.map} +1 -1
- package/dist/{WorkflowContainer-sEYHBwJR.js → WorkflowContainer-CBoWiJQY.js} +4 -4
- package/dist/{WorkflowContainer-sEYHBwJR.js.map → WorkflowContainer-CBoWiJQY.js.map} +1 -1
- package/dist/{WorkflowContainer-2ubt2MCe.js → WorkflowContainer-CW9NJXbF.js} +11 -11
- package/dist/{WorkflowContent-CaMS5xmR.js → WorkflowContent-B4W3IhqH.js} +4 -4
- package/dist/{WorkflowContent-CaMS5xmR.js.map → WorkflowContent-B4W3IhqH.js.map} +1 -1
- package/dist/{WorkflowTreeMenu-DC4CuF88.js → WorkflowTreeMenu-DKGbOQSH.js} +2 -2
- package/dist/{WorkflowTreeMenu-DC4CuF88.js.map → WorkflowTreeMenu-DKGbOQSH.js.map} +1 -1
- package/dist/{actionSummary-BOSgduAE.js → actionSummary-Ciu0y-s0.js} +2 -2
- package/dist/{actionSummary-BOSgduAE.js.map → actionSummary-Ciu0y-s0.js.map} +1 -1
- package/dist/{actionUtils-99XIoiDI.js → actionUtils-cC_2y5Xi.js} +2 -2
- package/dist/{actionUtils-99XIoiDI.js.map → actionUtils-cC_2y5Xi.js.map} +1 -1
- package/dist/actions/actionSummary/index.js +7 -7
- package/dist/actions/index.js +21 -21
- package/dist/actions/sidebar/index.js +6 -6
- package/dist/actions/utils/index.js +6 -6
- package/dist/{apiHelpers-BpZTkMX8.js → apiHelpers-B_cn3sZo.js} +2 -2
- package/dist/{apiHelpers-BpZTkMX8.js.map → apiHelpers-B_cn3sZo.js.map} +1 -1
- package/dist/{auth-EOQASxKM.js → auth-BEf5rt4s.js} +4 -4
- package/dist/{auth-EOQASxKM.js.map → auth-BEf5rt4s.js.map} +1 -1
- package/dist/{axiosInterceptors-6Czv1PA5.js → axiosInterceptors-FQ3b5kjr.js} +2 -2
- package/dist/{axiosInterceptors-6Czv1PA5.js.map → axiosInterceptors-FQ3b5kjr.js.map} +1 -1
- package/dist/{cards-CqNi83lO.js → cards-Bpy1zoxV.js} +1 -1
- package/dist/{cards-CqNi83lO.js.map → cards-Bpy1zoxV.js.map} +1 -1
- package/dist/chatBot/index.js +5 -5
- package/dist/componentSystems/multiThreadTimeline/functions/index.js +1 -1
- package/dist/componentSystems/multiThreadTimeline/index.js +11 -11
- package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +6 -6
- package/dist/componentSystems/multiThreadTimeline/mttSummary/index.js +6 -6
- package/dist/componentSystems/multiThreadTimeline/ui/index.js +2 -2
- package/dist/componentSystems/multiThreadTimeline/ui/modified/index.js +1 -1
- package/dist/componentSystems/pageRenderer/hocs/index.js +13 -13
- package/dist/componentSystems/pageRenderer/hooks/index.js +1 -1
- package/dist/componentSystems/pageRenderer/index.js +17 -17
- package/dist/componentSystems/pageRenderer/utils/index.js +1 -1
- package/dist/componentSystems/pageRenderer/wrappers/index.js +12 -12
- package/dist/{crudActions-Bl1NmJtO.js → crudActions-DXyHKaN8.js} +2 -2
- package/dist/{crudActions-Bl1NmJtO.js.map → crudActions-DXyHKaN8.js.map} +1 -1
- package/dist/dataBrowser/forms/index.js +6 -6
- package/dist/dataBrowser/index.js +20 -20
- package/dist/{dataDisplay-nJIK_NjC.js → dataDisplay-CBFgak2F.js} +1 -1
- package/dist/{dataDisplay-nJIK_NjC.js.map → dataDisplay-CBFgak2F.js.map} +1 -1
- package/dist/{defaultTabs-BzZY0_Jb.js → defaultTabs-CVeUq9lw.js} +1 -1
- package/dist/{defaultTabs-BzZY0_Jb.js.map → defaultTabs-CVeUq9lw.js.map} +1 -1
- package/dist/enums/index.js +2 -1
- package/dist/hooks/index.js +14 -14
- package/dist/{hooks-C2Rr_sq1.js → hooks-CxLP2j70.js} +3 -3
- package/dist/{hooks-C2Rr_sq1.js.map → hooks-CxLP2j70.js.map} +1 -1
- package/dist/index.js +99 -97
- package/dist/inquiry/index.js +20 -20
- package/dist/{inquiry-5fUj13A8.js → inquiry-J7m3wdvC.js} +10 -10
- package/dist/{inquiry-5fUj13A8.js.map → inquiry-J7m3wdvC.js.map} +1 -1
- package/dist/maintenanceEngine/crudBrowser/index.js +12 -12
- package/dist/maintenanceEngine/index.js +22 -22
- package/dist/maintenanceEngine/tableBrowser/index.js +13 -13
- package/dist/maintenanceEngine/virtualBrowser/index.js +15 -15
- package/dist/menuPage/index.js +11 -11
- package/dist/{CustomMenuPage-PSOKksBZ.js → menuPage-Df5ucoQW.js} +2 -2
- package/dist/menuPage-Df5ucoQW.js.map +1 -0
- package/dist/{menuUtilities-fX5ECi0i.js → menuUtilities-58E3hJ9u.js} +2 -2
- package/dist/{menuUtilities-fX5ECi0i.js.map → menuUtilities-58E3hJ9u.js.map} +1 -1
- package/dist/{methodUtils-DEk9B4A8.js → methodUtils-Cwo_kmVX.js} +2 -2
- package/dist/{methodUtils-DEk9B4A8.js.map → methodUtils-Cwo_kmVX.js.map} +1 -1
- package/dist/{newGrid-DPiAB3cO.js → newGrid-nbEL11Vp.js} +2 -2
- package/dist/{newGrid-DPiAB3cO.js.map → newGrid-nbEL11Vp.js.map} +1 -1
- package/dist/notes/index.js +9 -9
- package/dist/page/PageContainer/index.js +5 -5
- package/dist/{pageEnums-CA-HlW3W.js → pageEnums-DHCYa0ey.js} +2 -1
- package/dist/{pageEnums-CA-HlW3W.js.map → pageEnums-DHCYa0ey.js.map} +1 -1
- package/dist/reminders/index.js +10 -10
- package/dist/reports/index.js +5 -5
- package/dist/routes/index.js +2 -2
- package/dist/shell/index.js +32 -32
- package/dist/shell/ui/addUser/index.js +8 -8
- package/dist/shell/ui/appSwitcher/index.js +1 -1
- package/dist/shell/ui/index.js +14 -14
- package/dist/treeMenu/index.js +8 -8
- package/dist/types/src/enums/pageEnums.d.ts +2 -1
- package/dist/types/src/enums/pageEnums.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +1 -0
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpFormsBuilderPage/UdpFormsBuilderPage.d.ts.map +1 -1
- package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/UdpFormsSubmissionGrid.d.ts +5 -0
- package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/UdpFormsSubmissionGrid.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/index.d.ts +3 -0
- package/dist/types/src/udp/pages/UdpFormsSubmissionGrid/index.d.ts.map +1 -0
- package/dist/types/src/udp/pages/UdpPrivateForm/UdpPrivateForm.d.ts.map +1 -1
- package/dist/types/tsconfig.tsbuildinfo +1 -1
- package/dist/udp/ShortcutContent/index.js +8 -8
- package/dist/udp/export/index.js +16 -16
- package/dist/udp/fileImportMapping/index.js +14 -14
- package/dist/udp/pages/ChatUDP/index.js +6 -6
- package/dist/udp/pages/UdpAuditEvents/index.js +19 -19
- package/dist/udp/pages/UdpDataBrowserPage/index.js +20 -20
- package/dist/udp/pages/UdpFormsBuilderPage/index.js +1 -1
- package/dist/udp/pages/UdpFormsSubmissionGrid/index.js +94 -0
- package/dist/udp/pages/UdpGridPanelManagementPage/index.js +12 -12
- package/dist/udp/pages/UdpImportFromFileMappingPage/index.js +9 -9
- package/dist/udp/pages/UdpInquiryMaintenanceEnginePage/index.js +26 -26
- package/dist/udp/pages/UdpMaintenanceConfigPage/index.js +5 -5
- package/dist/udp/pages/UdpMaintenanceEnginePage/index.js +25 -25
- package/dist/udp/pages/UdpNotesPage/index.js +14 -14
- package/dist/udp/pages/UdpPages/index.js +57 -57
- package/dist/udp/pages/UdpPagesLazy/index.js +1 -1
- package/dist/udp/pages/UdpPrivateForm/index.js +11 -10
- package/dist/udp/pages/UdpPublicForm/index.js +3 -3
- package/dist/udp/pages/UdpRemindersPage/index.js +14 -14
- package/dist/udp/pages/UdpReportsPage/index.js +6 -6
- package/dist/udp/pages/UdpVerticalManagementPage/index.js +12 -12
- package/dist/udp/pages/UdpVerticalManagementSidesheet/index.js +11 -11
- package/dist/udp/pages/index.js +57 -57
- package/dist/udp/utilities/index.js +5 -5
- package/dist/{ui-CsyeuYr4.js → ui-gRqaK08H.js} +1 -1
- package/dist/{ui-CsyeuYr4.js.map → ui-gRqaK08H.js.map} +1 -1
- package/dist/{useActions-CBGNxEKr.js → useActions-BbqecXkd.js} +3 -3
- package/dist/{useActions-CBGNxEKr.js.map → useActions-BbqecXkd.js.map} +1 -1
- package/dist/{useApiCatalog-sZ6uMfzd.js → useApiCatalog-Yi_KDPot.js} +2 -2
- package/dist/{useApiCatalog-sZ6uMfzd.js.map → useApiCatalog-Yi_KDPot.js.map} +1 -1
- package/dist/{useAxiosGet-BMoXHfLN.js → useAxiosGet-vvPjwB4W.js} +3 -3
- package/dist/{useAxiosGet-BMoXHfLN.js.map → useAxiosGet-vvPjwB4W.js.map} +1 -1
- package/dist/{useAxiosMutate-q_ZpG98Z.js → useAxiosMutate-DcLxzykX.js} +3 -3
- package/dist/{useAxiosMutate-q_ZpG98Z.js.map → useAxiosMutate-DcLxzykX.js.map} +1 -1
- package/dist/{usePromotedMethodEntities-DGb2hZSz.js → usePromotedMethodEntities-bv9ewSry.js} +2 -2
- package/dist/{usePromotedMethodEntities-DGb2hZSz.js.map → usePromotedMethodEntities-bv9ewSry.js.map} +1 -1
- package/dist/{usePromotedMethodEntity-wRBkHT3x.js → usePromotedMethodEntity-Bi2neP26.js} +2 -2
- package/dist/{usePromotedMethodEntity-wRBkHT3x.js.map → usePromotedMethodEntity-Bi2neP26.js.map} +1 -1
- package/dist/{useQueryExecutors-CuXmVvXX.js → useQueryExecutors-UWa24-Mf.js} +3 -3
- package/dist/{useQueryExecutors-CuXmVvXX.js.map → useQueryExecutors-UWa24-Mf.js.map} +1 -1
- package/dist/utilities/auth/index.js +6 -6
- package/dist/utilities/customIcons/index.js +1 -1
- package/dist/utilities/form/paymentForm/index.js +6 -6
- package/dist/utilities/index.js +6 -6
- package/dist/utilities/menus/index.js +2 -2
- package/dist/utilities/provider/index.js +21 -21
- package/dist/utilities/redirect/pages/index.js +5 -5
- package/dist/utilities/tenant/index.js +5 -5
- package/dist/{theme-DLA8cxjc.js → utilities-BLu3F9sJ.js} +1 -1
- package/dist/utilities-BLu3F9sJ.js.map +1 -0
- package/dist/{withEngineComponent-Bya6z6jQ.js → withEngineComponent-CUQbIi-0.js} +2 -2
- package/dist/{withEngineComponent-Bya6z6jQ.js.map → withEngineComponent-CUQbIi-0.js.map} +1 -1
- package/dist/workflow/components/index.js +1 -1
- package/dist/workflow/index.js +13 -13
- package/dist/workflow/menus/index.js +9 -9
- package/dist/wrappers-CGE2HK5z.js +1 -0
- package/export-map.json +3 -2
- package/package.json +2 -2
- package/dist/CustomMenuPage-PSOKksBZ.js.map +0 -1
- package/dist/UdpPrivateForm-BJdYZzlO.js.map +0 -1
- package/dist/theme-DLA8cxjc.js.map +0 -1
- /package/dist/{FluentActivity-CSTNwtbg.js → FluentActivity-DNv5ppko.js} +0 -0
- /package/dist/{FluentDataTable-DaeSnPVT.js → FluentDataTable-BXPIqR8m.js} +0 -0
- /package/dist/{NestedGrid-DnwDKGuS.js → NestedGrid-CQ_tEe-B.js} +0 -0
- /package/dist/{accordion-b0s-0-RI.js → accordion-BLXGkcTH.js} +0 -0
- /package/dist/{addUser-B0865wVm.js → addUser-D2pqu0AW.js} +0 -0
- /package/dist/{advancedSearchBuilder-3XkAGMdW.js → advancedSearchBuilder-DAGBcP1-.js} +0 -0
- /package/dist/{alerts-OCaGbJa8.js → alerts-Gbvcpl4E.js} +0 -0
- /package/dist/{appSwitcher-CgqKfl97.js → appSwitcher-Cj_OxE8O.js} +0 -0
- /package/dist/{charts-Dqnchxlj.js → charts-R51kXdbo.js} +0 -0
- /package/dist/{components-DS49lfXu.js → components-BbPynQ4E.js} +0 -0
- /package/dist/{components-RSFyyue7.js → components-HFPHj0Z0.js} +0 -0
- /package/dist/{containers-CbiOWu6t.js → containers-Do3V9CjC.js} +0 -0
- /package/dist/{crudBrowser-B3M_qFXM.js → crudBrowser-CNJMNMPk.js} +0 -0
- /package/dist/{dataDisplay-C4xsjRpN.js → dataDisplay-CHdSKRO0.js} +0 -0
- /package/dist/{demos-CHF7C73o.js → demos-D1hYYoOq.js} +0 -0
- /package/dist/{feedback-8c0PUyzJ.js → enums-Edm9Kwqq.js} +0 -0
- /package/dist/{feedback-D7AaTszW.js → feedback-DL6EKTOa.js} +0 -0
- /package/dist/{fileViewer-N90YmIyL.js → feedback-Dw-Qh7A6.js} +0 -0
- /package/dist/{floorplans-rm7R2YbY.js → fileViewer-CMBhBXGp.js} +0 -0
- /package/dist/{fluentTimeline-De-79li3.js → floorplans-CtbDAfnq.js} +0 -0
- /package/dist/{forms-DUpzjbB8.js → fluentTimeline-BbvrZFSz.js} +0 -0
- /package/dist/{forms-DoLgP7J3.js → forms-Bqbd2PSS.js} +0 -0
- /package/dist/{functions-DjPVehfJ.js → forms-uSV7-14b.js} +0 -0
- /package/dist/{hocs-BuWIHy7I.js → functions-BKH-pLPX.js} +0 -0
- /package/dist/{hooks-Bgdv7Rjl.js → hocs-DwAy8u5A.js} +0 -0
- /package/dist/{iframe-AW8kvPvm.js → hooks-B7ab4j1m.js} +0 -0
- /package/dist/{loading-6mD-gixw.js → iframe-CM2OOxOu.js} +0 -0
- /package/dist/{mapLayout-CDZKQDHU.js → loading-BwkuGJoi.js} +0 -0
- /package/dist/{maps-Ce7LPzeA.js → mapLayout-Cg6spO9k.js} +0 -0
- /package/dist/{menus-BOCTn6h6.js → maps-D2whP8Zh.js} +0 -0
- /package/dist/{menus-pzqEb4ZE.js → menus-DugtDOhA.js} +0 -0
- /package/dist/{modified-CeJaPfN-.js → menus-VWidUTp_.js} +0 -0
- /package/dist/{mttMainTimeline-Bhn6Bx8O.js → modified--RrdyRlS.js} +0 -0
- /package/dist/{mttSummary-Bx5hrrL_.js → mttMainTimeline-DFHSLEBw.js} +0 -0
- /package/dist/{navigation-n9BzYj_m.js → mttSummary-BrQ0Tb62.js} +0 -0
- /package/dist/{property-BZsCMXJZ.js → navigation-2kyWDJg1.js} +0 -0
- /package/dist/{sidebar-BV9-4hst.js → property-CB8U10nw.js} +0 -0
- /package/dist/{stepper-CE7rAMMG.js → sidebar-C8yBp4eL.js} +0 -0
- /package/dist/{support-DeorQvzN.js → stepper-sZXSP0dk.js} +0 -0
- /package/dist/{surfaces-BjGAutOC.js → support-BhMVhBcD.js} +0 -0
- /package/dist/{tableBrowser-THunl5ws.js → surfaces-B445R0FQ.js} +0 -0
- /package/dist/{tabs-DcAL3Jpp.js → tableBrowser-BRVY65f3.js} +0 -0
- /package/dist/{templates-B2aOg0L7.js → tabs-BMrd1KM-.js} +0 -0
- /package/dist/{timeline-D0LJGudk.js → templates-Cz1v1M4q.js} +0 -0
- /package/dist/{ui-BCGHP5Tg.js → timeline-x3kpYbLD.js} +0 -0
- /package/dist/{ui-CWkntoL5.js → ui-BjpkPJO5.js} +0 -0
- /package/dist/{ui-P3i_0RoE.js → ui-Bqag992Z.js} +0 -0
- /package/dist/{utilities-tnyNft1v.js → ui-DBhxlgrk.js} +0 -0
- /package/dist/{utilityDisplay-9oT_42C1.js → utilities-CMoiGbGt.js} +0 -0
- /package/dist/{utilityHeader-CluhKbl1.js → utilityDisplay-BHYWs3gf.js} +0 -0
- /package/dist/{utils-B90bZC89.js → utilityHeader-BsUlwtE7.js} +0 -0
- /package/dist/{utils-ISMJodw8.js → utils-CRdMZZPC.js} +0 -0
- /package/dist/{virtualBrowser-CjWRkC7M.js → utils-Cpcp_Rx8.js} +0 -0
- /package/dist/{widgets-BbScraXi.js → virtualBrowser-pfw07Czd.js} +0 -0
- /package/dist/{wrappers-DT4B7IyD.js → widgets-BcHFxfRK.js} +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WorkflowTreeMenu-DC4CuF88.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-DKGbOQSH.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 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-BbqecXkd.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-Ciu0y-s0.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionSummary-BOSgduAE.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.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-Ciu0y-s0.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.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,6 +1,6 @@
|
|
|
1
1
|
import { i as getPathParametersObj } from "./CrudBrowserUtilities-C9nVmUR3.js";
|
|
2
2
|
import { t as ConfigService } from "./configService-C4uoG3wj.js";
|
|
3
|
-
import { t as apiMutate } from "./useAxiosMutate-
|
|
3
|
+
import { t as apiMutate } from "./useAxiosMutate-DcLxzykX.js";
|
|
4
4
|
import { A as SplitScreenTypeEnums, g as NodeActionEnums } from "./unitySystemEnums-DQSkCr3D.js";
|
|
5
5
|
import { r as useActionStore, t as useInquiryStore } from "./inquiryStore-BMYKf5MP.js";
|
|
6
6
|
import React from "react";
|
|
@@ -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-cC_2y5Xi.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"actionUtils-99XIoiDI.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-cC_2y5Xi.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,23 +1,23 @@
|
|
|
1
1
|
import "../../FluentButton-BexKrnAp.js";
|
|
2
2
|
import "../../CrudBrowserUtilities-C9nVmUR3.js";
|
|
3
3
|
import "../../configService-C4uoG3wj.js";
|
|
4
|
-
import "../../apiHelpers-
|
|
5
|
-
import "../../pageEnums-
|
|
4
|
+
import "../../apiHelpers-B_cn3sZo.js";
|
|
5
|
+
import "../../pageEnums-DHCYa0ey.js";
|
|
6
6
|
import "../../UnitySessionStorage-CUDx9YWR.js";
|
|
7
|
-
import "../../axiosInterceptors-
|
|
7
|
+
import "../../axiosInterceptors-FQ3b5kjr.js";
|
|
8
8
|
import "../../useUser-wpHGo6jU.js";
|
|
9
|
-
import "../../useAxiosMutate-
|
|
9
|
+
import "../../useAxiosMutate-DcLxzykX.js";
|
|
10
10
|
import "../../FluentIcon-DQ6nSDJg.js";
|
|
11
11
|
import "../../unitySystemEnums-DQSkCr3D.js";
|
|
12
12
|
import "../../FluentSearchField-DebM7Nzf.js";
|
|
13
|
-
import { a as ActionSummaryCard, i as ActionSummaryListContainer, n as ActionSummaryListItem, r as ActionSummaryHeader, t as ActionSummaryPopover } from "../../actionSummary-
|
|
13
|
+
import { a as ActionSummaryCard, i as ActionSummaryListContainer, n as ActionSummaryListItem, r as ActionSummaryHeader, t as ActionSummaryPopover } from "../../actionSummary-Ciu0y-s0.js";
|
|
14
14
|
import "../../UnityFluentIcon-DrASIcTF.js";
|
|
15
15
|
import "../../ActionLoadingDispatchContext-XEU8GWlw.js";
|
|
16
|
-
import "../../actionUtils-
|
|
16
|
+
import "../../actionUtils-cC_2y5Xi.js";
|
|
17
17
|
import "../../inquiryStore-BMYKf5MP.js";
|
|
18
18
|
import "../../catalogStore-DP2GxpTJ.js";
|
|
19
19
|
import "../../shellStore-C8zfPsZ-.js";
|
|
20
|
-
import "../../useActions-
|
|
20
|
+
import "../../useActions-BbqecXkd.js";
|
|
21
21
|
import "../../RuleUtilities-D5ACzikQ.js";
|
|
22
22
|
import "../../PrimaryActionButton-Dk8zvDAW.js";
|
|
23
23
|
import "../../colors-BONxjrOE.js";
|
package/dist/actions/index.js
CHANGED
|
@@ -5,12 +5,12 @@ import "../FluentButton-BexKrnAp.js";
|
|
|
5
5
|
import "../FormButtons-BTCO-pzW.js";
|
|
6
6
|
import "../CrudBrowserUtilities-C9nVmUR3.js";
|
|
7
7
|
import "../configService-C4uoG3wj.js";
|
|
8
|
-
import "../apiHelpers-
|
|
9
|
-
import "../pageEnums-
|
|
8
|
+
import "../apiHelpers-B_cn3sZo.js";
|
|
9
|
+
import "../pageEnums-DHCYa0ey.js";
|
|
10
10
|
import "../UnitySessionStorage-CUDx9YWR.js";
|
|
11
|
-
import "../axiosInterceptors-
|
|
11
|
+
import "../axiosInterceptors-FQ3b5kjr.js";
|
|
12
12
|
import "../useUser-wpHGo6jU.js";
|
|
13
|
-
import "../useAxiosMutate-
|
|
13
|
+
import "../useAxiosMutate-DcLxzykX.js";
|
|
14
14
|
import "../DateTimeField-CUzs3MIq.js";
|
|
15
15
|
import "../FluentTextFieldAutoComplete-5Hp3qpk6.js";
|
|
16
16
|
import "../FluentToggle-B1DqTfua.js";
|
|
@@ -21,18 +21,18 @@ import "../FluentIcon-DQ6nSDJg.js";
|
|
|
21
21
|
import "../FluentIconButton-Dc95mE3v.js";
|
|
22
22
|
import "../FluentColorPicker-Wi2o3JqX.js";
|
|
23
23
|
import "../entityUtilities-_8w-Zjs3.js";
|
|
24
|
-
import "../crudActions-
|
|
24
|
+
import "../crudActions-DXyHKaN8.js";
|
|
25
25
|
import "../unitySystemEnums-DQSkCr3D.js";
|
|
26
|
-
import { a as ActionModal, i as ActionSpeedDial, n as ActionSideSheet, o as ActionForm, r as ActionPanelPlacement, t as ActionWrapper } from "../ActionWrapper-
|
|
26
|
+
import { a as ActionModal, i as ActionSpeedDial, n as ActionSideSheet, o as ActionForm, r as ActionPanelPlacement, t as ActionWrapper } from "../ActionWrapper-Dq45yDqo.js";
|
|
27
27
|
import "../FluentSearchField-DebM7Nzf.js";
|
|
28
|
-
import { a as ActionSummaryCard, i as ActionSummaryListContainer, n as ActionSummaryListItem, r as ActionSummaryHeader, t as ActionSummaryPopover } from "../actionSummary-
|
|
28
|
+
import { a as ActionSummaryCard, i as ActionSummaryListContainer, n as ActionSummaryListItem, r as ActionSummaryHeader, t as ActionSummaryPopover } from "../actionSummary-Ciu0y-s0.js";
|
|
29
29
|
import "../UnityFluentIcon-DrASIcTF.js";
|
|
30
30
|
import "../ActionLoadingDispatchContext-XEU8GWlw.js";
|
|
31
|
-
import { t as useHandleAction } from "../actionUtils-
|
|
31
|
+
import { t as useHandleAction } from "../actionUtils-cC_2y5Xi.js";
|
|
32
32
|
import "../inquiryStore-BMYKf5MP.js";
|
|
33
33
|
import "../catalogStore-DP2GxpTJ.js";
|
|
34
34
|
import "../shellStore-C8zfPsZ-.js";
|
|
35
|
-
import "../useActions-
|
|
35
|
+
import "../useActions-BbqecXkd.js";
|
|
36
36
|
import "../RuleUtilities-D5ACzikQ.js";
|
|
37
37
|
import "../PrimaryActionButton-Dk8zvDAW.js";
|
|
38
38
|
import "../colors-BONxjrOE.js";
|
|
@@ -50,7 +50,7 @@ import "../LayoutUnit-D4jJvonh.js";
|
|
|
50
50
|
import "../StandardTitle-DJ9zcNBA.js";
|
|
51
51
|
import "../SideSheetHeader-DgnkLGmv.js";
|
|
52
52
|
import "../SideSheet-C-rILQqR.js";
|
|
53
|
-
import "../useAxiosGet-
|
|
53
|
+
import "../useAxiosGet-vvPjwB4W.js";
|
|
54
54
|
import "../DashboardWidget-F4pnOQAe.js";
|
|
55
55
|
import "../FUICard-DmszpY_T.js";
|
|
56
56
|
import "../FUISquareIconButton-DwTSTnBV.js";
|
|
@@ -64,28 +64,28 @@ import "../StatusChip-DZAN88VU.js";
|
|
|
64
64
|
import "../UdpTabs-DVZGEwOC.js";
|
|
65
65
|
import "../PageContext-BpOBJHpb.js";
|
|
66
66
|
import "../useSetLocationState-Kvcc9BTb.js";
|
|
67
|
-
import "../PageContainer-
|
|
67
|
+
import "../PageContainer-N4d5KO-T.js";
|
|
68
68
|
import "../DraggableSidebarTemplate-BUWBvL6H.js";
|
|
69
69
|
import "../SidebarHeader-DU68JdgW.js";
|
|
70
|
-
import { t as EntitySideBarContent } from "../EntitySideBarContent-
|
|
70
|
+
import { t as EntitySideBarContent } from "../EntitySideBarContent-Bp0saKq_.js";
|
|
71
71
|
import "../CkRichEditor-CoP_h6jt.js";
|
|
72
|
-
import "../methodUtils-
|
|
73
|
-
import "../ShortcutContentFinder-
|
|
72
|
+
import "../methodUtils-Cwo_kmVX.js";
|
|
73
|
+
import "../ShortcutContentFinder-MyXbDeFJ.js";
|
|
74
74
|
import "../tenantStore-OMCaM0Mv.js";
|
|
75
75
|
import "../AmbientCardButton-DGhpVDRV.js";
|
|
76
76
|
import "../Adornment-Ciq1X7he.js";
|
|
77
77
|
import "../AmbientCard-DK9abODq.js";
|
|
78
78
|
import "../AmbientCardTitle-CvXW2qf0.js";
|
|
79
|
-
import "../NotesScreen-
|
|
79
|
+
import "../NotesScreen-COYYhVJJ.js";
|
|
80
80
|
import "../FluentDatePicker-C6WEywwM.js";
|
|
81
81
|
import "../reminderConstants-IPyFwGAf.js";
|
|
82
|
-
import "../RemindersScreen
|
|
82
|
+
import "../RemindersScreen-bwvsZOGc.js";
|
|
83
83
|
import "../useBuildEnvironment-2gdqpmBX.js";
|
|
84
|
-
import { t as ActionSplitScreen } from "../ActionSplitScreen-
|
|
85
|
-
import "../usePromotedMethodEntity-
|
|
84
|
+
import { t as ActionSplitScreen } from "../ActionSplitScreen-SncJFJJQ.js";
|
|
85
|
+
import "../usePromotedMethodEntity-Bi2neP26.js";
|
|
86
86
|
import "../PageSubHeaderAction-Cd6MlbR8.js";
|
|
87
|
-
import { t as PageActionWrapper } from "../PageActionWrapper-
|
|
88
|
-
import "../utils-
|
|
89
|
-
import "../sidebar-
|
|
87
|
+
import { t as PageActionWrapper } from "../PageActionWrapper-DuvcqQCs.js";
|
|
88
|
+
import "../utils-CRdMZZPC.js";
|
|
89
|
+
import "../sidebar-C8yBp4eL.js";
|
|
90
90
|
|
|
91
91
|
export { ActionForm, ActionModal, ActionPanelPlacement, ActionSideSheet, ActionSpeedDial, ActionSplitScreen, ActionSummaryCard, ActionSummaryHeader, ActionSummaryListContainer, ActionSummaryListItem, ActionSummaryPopover, ActionWrapper, EntitySideBarContent, PageActionWrapper, useHandleAction };
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import "../../CrudBrowserUtilities-C9nVmUR3.js";
|
|
2
2
|
import "../../configService-C4uoG3wj.js";
|
|
3
|
-
import "../../apiHelpers-
|
|
4
|
-
import "../../pageEnums-
|
|
3
|
+
import "../../apiHelpers-B_cn3sZo.js";
|
|
4
|
+
import "../../pageEnums-DHCYa0ey.js";
|
|
5
5
|
import "../../UnitySessionStorage-CUDx9YWR.js";
|
|
6
|
-
import "../../axiosInterceptors-
|
|
6
|
+
import "../../axiosInterceptors-FQ3b5kjr.js";
|
|
7
7
|
import "../../useUser-wpHGo6jU.js";
|
|
8
8
|
import "../../StringUtilities-u-cxAW6-.js";
|
|
9
|
-
import "../../useAxiosGet-
|
|
10
|
-
import { t as EntitySideBarContent } from "../../EntitySideBarContent-
|
|
11
|
-
import "../../sidebar-
|
|
9
|
+
import "../../useAxiosGet-vvPjwB4W.js";
|
|
10
|
+
import { t as EntitySideBarContent } from "../../EntitySideBarContent-Bp0saKq_.js";
|
|
11
|
+
import "../../sidebar-C8yBp4eL.js";
|
|
12
12
|
|
|
13
13
|
export { EntitySideBarContent };
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import "../../CrudBrowserUtilities-C9nVmUR3.js";
|
|
2
2
|
import "../../configService-C4uoG3wj.js";
|
|
3
|
-
import "../../apiHelpers-
|
|
4
|
-
import "../../pageEnums-
|
|
3
|
+
import "../../apiHelpers-B_cn3sZo.js";
|
|
4
|
+
import "../../pageEnums-DHCYa0ey.js";
|
|
5
5
|
import "../../UnitySessionStorage-CUDx9YWR.js";
|
|
6
|
-
import "../../axiosInterceptors-
|
|
6
|
+
import "../../axiosInterceptors-FQ3b5kjr.js";
|
|
7
7
|
import "../../useUser-wpHGo6jU.js";
|
|
8
|
-
import "../../useAxiosMutate-
|
|
8
|
+
import "../../useAxiosMutate-DcLxzykX.js";
|
|
9
9
|
import "../../unitySystemEnums-DQSkCr3D.js";
|
|
10
|
-
import { t as useHandleAction } from "../../actionUtils-
|
|
10
|
+
import { t as useHandleAction } from "../../actionUtils-cC_2y5Xi.js";
|
|
11
11
|
import "../../inquiryStore-BMYKf5MP.js";
|
|
12
|
-
import "../../utils-
|
|
12
|
+
import "../../utils-CRdMZZPC.js";
|
|
13
13
|
|
|
14
14
|
export { useHandleAction };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { t as ConfigService } from "./configService-C4uoG3wj.js";
|
|
2
|
-
import { n as UdpPageEnums } from "./pageEnums-
|
|
2
|
+
import { n as UdpPageEnums } from "./pageEnums-DHCYa0ey.js";
|
|
3
3
|
import { n as getStoredTenant } from "./UnitySessionStorage-CUDx9YWR.js";
|
|
4
4
|
import React, { useCallback } from "react";
|
|
5
5
|
import { Button } from "@material-ui/core";
|
|
@@ -204,4 +204,4 @@ const useHandleAxiosSnackbar = () => {
|
|
|
204
204
|
|
|
205
205
|
//#endregion
|
|
206
206
|
export { acquireAccessToken as a, useLogoutAction as c, getLoginRequest as d, getSignInAuthProvider as f, useHandleAxiosSnackbar as i, whitelistedPaths as l, initSignInAuthProvider as m, getMergedConfig as n, loginRedirect as o, getTokenRequest as p, handleResponseErrors as r, useLoginAction as s, getAccessToken as t, getApiAccessScope as u };
|
|
207
|
-
//# sourceMappingURL=apiHelpers-
|
|
207
|
+
//# sourceMappingURL=apiHelpers-B_cn3sZo.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"apiHelpers-BpZTkMX8.js","names":["useLoginAction: LoginFunction","loginRedirect: () => void"],"sources":["../src/utilities/auth/signInAuthProvider.js","../src/utilities/auth/whitelistedPaths.js","../src/utilities/auth/authActions.ts","../src/utilities/apiHelpers.jsx"],"sourcesContent":["import { PublicClientApplication, EventType } from '@azure/msal-browser';\nimport { ConfigService } from '../../configService';\n\nlet signInAuthProviderInstance = null;\nlet loginRequestInstance = null;\nlet tokenRequestInstance = null;\nlet apiAccessScopeValue = null;\n\nexport async function initSignInAuthProvider() {\n if (signInAuthProviderInstance) {\n return; // Already initialized\n }\n\n const PUBLIC_URL = new URL(\n import.meta.env.BASE_URL || '/',\n window.location.origin\n ).href.replace(/\\/$/, '');\n\n const REDIRECT_URL_BASE = ConfigService.config.USE_AAD_REDIRECT\n ? ConfigService.config.UNITY_URL\n : PUBLIC_URL;\n\n if (!ConfigService.config.MSAL_TENANT)\n throw new Error('MSAL_TENANT not configured');\n if (!ConfigService.config.MSAL_CLIENT_ID)\n throw new Error('MSAL_CLIENT_ID not configured');\n\n const tenant = ConfigService.config.MSAL_TENANT;\n const signInPolicy = ConfigService.config.SIGN_IN_POLICY;\n const applicationID = ConfigService.config.MSAL_CLIENT_ID;\n const reactRedirectUri = `${REDIRECT_URL_BASE}/${\n ConfigService.config.USE_AAD_REDIRECT ? 'aad_redirect' : 'aad_callback'\n }`;\n const tenantSubdomain = tenant.split('.')[0];\n const instance = `https://${tenantSubdomain}.b2clogin.com/`;\n const signInAuthority = `${instance}${tenant}/${signInPolicy}`;\n apiAccessScopeValue = `https://${tenant}/${ConfigService.config.MSAL_API_ACCESS_SCOPE}`;\n\n const ua = window.navigator.userAgent;\n const msie = ua.indexOf('MSIE ');\n const msie11 = ua.indexOf('Trident/');\n const msedge = ua.indexOf('Edge/');\n const firefox = ua.indexOf('Firefox');\n const isIE = msie > 0 || msie11 > 0;\n const isEdge = msedge > 0;\n const isFirefox = firefox > 0; // Only needed if you need to support the redirect flow in Firefox incognito\n\n // Msal Configurations\n const signInConfig = {\n auth: {\n authority: signInAuthority,\n knownAuthorities: [`${tenantSubdomain}.b2clogin.com`],\n clientId: applicationID,\n redirectUri: reactRedirectUri,\n postLogoutRedirectUri: PUBLIC_URL + '/',\n navigateToLoginRequestUrl: false,\n },\n cache: {\n cacheLocation: 'sessionStorage',\n storeAuthStateInCookie: isIE || isEdge || isFirefox,\n },\n system: {\n allowRedirectInIframe: true,\n },\n };\n\n signInAuthProviderInstance = new PublicClientApplication(signInConfig);\n\n await signInAuthProviderInstance.initialize();\n\n if (\n !signInAuthProviderInstance.getActiveAccount() &&\n signInAuthProviderInstance.getAllAccounts().length > 0\n ) {\n signInAuthProviderInstance.setActiveAccount(\n signInAuthProviderInstance.getAllAccounts()[0]\n );\n }\n\n signInAuthProviderInstance.addEventCallback((event) => {\n if (event.eventType === EventType.LOGIN_SUCCESS && event.payload.account) {\n const account = event.payload.account;\n signInAuthProviderInstance.setActiveAccount(account);\n }\n });\n\n tokenRequestInstance = { scopes: [apiAccessScopeValue] };\n\n loginRequestInstance = {\n scopes: [apiAccessScopeValue, 'openid', 'offline_access'],\n state: `${PUBLIC_URL}/aad_callback`,\n };\n}\n\nexport const getSignInAuthProvider = () => {\n if (!signInAuthProviderInstance) {\n throw new Error(\n 'signInAuthProvider is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return signInAuthProviderInstance;\n};\n\nexport const getLoginRequest = () => {\n if (!loginRequestInstance) {\n throw new Error(\n 'loginRequest is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return loginRequestInstance;\n};\n\nexport const getTokenRequest = () => {\n if (!tokenRequestInstance) {\n throw new Error(\n 'tokenRequest is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return tokenRequestInstance;\n};\n\nexport const getApiAccessScope = () => {\n if (!apiAccessScopeValue) {\n throw new Error(\n 'apiAccessScope is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return apiAccessScopeValue;\n};\n","import { UdpPageEnums } from \"../../enums/pageEnums\";\n\nexport const whitelistedPaths = [\n '/verify', \n `/page/${UdpPageEnums.Udp_Public_Forms_Page}`, // Public forms page\n '/aad_redirect',\n '/passwordresetsuccess'\n];\n","import {\n getSignInAuthProvider,\n getTokenRequest,\n getLoginRequest,\n} from './signInAuthProvider';\nimport { BrowserUtils } from '@azure/msal-browser';\nimport { storeCurrentPath } from '../redirect/LocalRedirectUrlStorage';\nimport { whitelistedPaths } from './whitelistedPaths';\nexport type LoginFunction = () => void;\nexport type LogoutFunction = () => void;\n/**\n * Hook providing auth \"actions\" such as login/logout\n */\n\nexport const useLoginAction: LoginFunction = () => loginRedirect;\nexport const loginRedirect: () => void = () => {\n const signInAuthProvider = getSignInAuthProvider();\n signInAuthProvider.loginRedirect(getLoginRequest());\n};\n\nexport function useLogoutAction(): LogoutFunction {\n return async () => {\n const signInAuthProvider = getSignInAuthProvider();\n await signInAuthProvider.logoutRedirect({\n account: signInAuthProvider.getActiveAccount(),\n });\n };\n}\n\nexport async function acquireAccessToken(): Promise<string | void> {\n const signInAuthProvider = getSignInAuthProvider();\n const account = signInAuthProvider.getActiveAccount() ?? undefined;\n\n if (account) {\n return signInAuthProvider\n .acquireTokenSilent({ ...getTokenRequest(), account })\n .then((response) => {\n return response.accessToken;\n })\n .catch(async (error) => {\n const currentPathIsWhitelisted = whitelistedPaths.includes(\n window.location.pathname\n );\n if (!currentPathIsWhitelisted) {\n signInAuthProvider.loginRedirect(getLoginRequest());\n }\n });\n }\n}\n","import React from \"react\";\nimport { acquireAccessToken } from './auth/authActions';\nimport { InteractionRequiredAuthError } from '@azure/msal-browser';\nimport { getStoredTenant } from './storage/UnitySessionStorage';\nimport { useSnackbar } from 'notistack';\nimport { Button } from '@material-ui/core';\nimport { useCallback } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nexport const getMergedConfig = (accessToken, config) => {\n const headers = config?.headers ?? {};\n\n headers.currentTenantId ||= getStoredTenant();\n if (accessToken) headers.Authorization ||= `Bearer ${accessToken}`;\n\n config.headers = headers;\n return config;\n};\n\nexport const handleResponseErrors = async (error) => {\n if (error?.response?.status === 401) {\n await acquireAccessToken();\n }\n};\n\nexport const getAccessToken = async () => {\n return await acquireAccessToken();\n};\n\n/**\n * Checks to make sure the error isn't cancelled, if so just return w/o doing anything\n *Otherwise call a pre-method, create a snackbar, then call a post-method\n *preCallBack returns a bool, true = show snackbar\n */\nexport const useHandleAxiosSnackbar = () => {\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const history = useHistory();\n\n const dismissSnackbar = useCallback(\n (key, callback) => {\n closeSnackbar(key);\n callback?.();\n },\n [closeSnackbar]\n );\n\n const handleErrorSnackbar = useCallback(\n (error, customMessage, preCallBack, callback) => {\n const fallbackErrorMessage = 'Error executing request';\n if (\n error?.toString()?.toLowerCase() === 'cancel' ||\n error?.code === 'ERR_CANCELED'\n )\n return;\n\n // Don't call the preCallback unless we actually failed.\n const showSnackBar = preCallBack?.();\n if (preCallBack && !showSnackBar) return;\n\n let errorMessage =\n customMessage ??\n (error?.response?.data || error?.message || fallbackErrorMessage);\n if (\n typeof errorMessage !== 'string' ||\n !errorMessage ||\n errorMessage.length === 0\n ) {\n errorMessage = fallbackErrorMessage;\n }\n\n enqueueSnackbar(errorMessage, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n dismissSnackbar(key);\n }}\n >\n Ok\n </Button>\n )\n });\n\n callback?.();\n },\n [dismissSnackbar, enqueueSnackbar]\n );\n\n const handleSuccessSnackbar = useCallback(\n (message, preCallBack, callback, navigationPath, buttonText) => {\n const fallbackSuccessMessage = 'Executed request successfully';\n const showMessage = preCallBack?.();\n if (preCallBack && !showMessage) return;\n\n let successMessage = message ?? fallbackSuccessMessage;\n if (\n typeof successMessage !== 'string' ||\n !successMessage ||\n successMessage.length === 0\n ) {\n successMessage = fallbackSuccessMessage;\n }\n\n const options = {\n variant: 'default',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <>\n {navigationPath && (\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n history.push(navigationPath);\n dismissSnackbar(key);\n }}\n >\n {buttonText? buttonText : 'Go to page'}\n </Button>\n )}\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n dismissSnackbar(key);\n }}\n >\n Ok\n </Button>\n </>\n )\n };\n\n enqueueSnackbar(successMessage, options);\n },\n [dismissSnackbar, enqueueSnackbar]\n );\n\n return { handleErrorSnackbar, handleSuccessSnackbar };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"apiHelpers-B_cn3sZo.js","names":["useLoginAction: LoginFunction","loginRedirect: () => void"],"sources":["../src/utilities/auth/signInAuthProvider.js","../src/utilities/auth/whitelistedPaths.js","../src/utilities/auth/authActions.ts","../src/utilities/apiHelpers.jsx"],"sourcesContent":["import { PublicClientApplication, EventType } from '@azure/msal-browser';\nimport { ConfigService } from '../../configService';\n\nlet signInAuthProviderInstance = null;\nlet loginRequestInstance = null;\nlet tokenRequestInstance = null;\nlet apiAccessScopeValue = null;\n\nexport async function initSignInAuthProvider() {\n if (signInAuthProviderInstance) {\n return; // Already initialized\n }\n\n const PUBLIC_URL = new URL(\n import.meta.env.BASE_URL || '/',\n window.location.origin\n ).href.replace(/\\/$/, '');\n\n const REDIRECT_URL_BASE = ConfigService.config.USE_AAD_REDIRECT\n ? ConfigService.config.UNITY_URL\n : PUBLIC_URL;\n\n if (!ConfigService.config.MSAL_TENANT)\n throw new Error('MSAL_TENANT not configured');\n if (!ConfigService.config.MSAL_CLIENT_ID)\n throw new Error('MSAL_CLIENT_ID not configured');\n\n const tenant = ConfigService.config.MSAL_TENANT;\n const signInPolicy = ConfigService.config.SIGN_IN_POLICY;\n const applicationID = ConfigService.config.MSAL_CLIENT_ID;\n const reactRedirectUri = `${REDIRECT_URL_BASE}/${\n ConfigService.config.USE_AAD_REDIRECT ? 'aad_redirect' : 'aad_callback'\n }`;\n const tenantSubdomain = tenant.split('.')[0];\n const instance = `https://${tenantSubdomain}.b2clogin.com/`;\n const signInAuthority = `${instance}${tenant}/${signInPolicy}`;\n apiAccessScopeValue = `https://${tenant}/${ConfigService.config.MSAL_API_ACCESS_SCOPE}`;\n\n const ua = window.navigator.userAgent;\n const msie = ua.indexOf('MSIE ');\n const msie11 = ua.indexOf('Trident/');\n const msedge = ua.indexOf('Edge/');\n const firefox = ua.indexOf('Firefox');\n const isIE = msie > 0 || msie11 > 0;\n const isEdge = msedge > 0;\n const isFirefox = firefox > 0; // Only needed if you need to support the redirect flow in Firefox incognito\n\n // Msal Configurations\n const signInConfig = {\n auth: {\n authority: signInAuthority,\n knownAuthorities: [`${tenantSubdomain}.b2clogin.com`],\n clientId: applicationID,\n redirectUri: reactRedirectUri,\n postLogoutRedirectUri: PUBLIC_URL + '/',\n navigateToLoginRequestUrl: false,\n },\n cache: {\n cacheLocation: 'sessionStorage',\n storeAuthStateInCookie: isIE || isEdge || isFirefox,\n },\n system: {\n allowRedirectInIframe: true,\n },\n };\n\n signInAuthProviderInstance = new PublicClientApplication(signInConfig);\n\n await signInAuthProviderInstance.initialize();\n\n if (\n !signInAuthProviderInstance.getActiveAccount() &&\n signInAuthProviderInstance.getAllAccounts().length > 0\n ) {\n signInAuthProviderInstance.setActiveAccount(\n signInAuthProviderInstance.getAllAccounts()[0]\n );\n }\n\n signInAuthProviderInstance.addEventCallback((event) => {\n if (event.eventType === EventType.LOGIN_SUCCESS && event.payload.account) {\n const account = event.payload.account;\n signInAuthProviderInstance.setActiveAccount(account);\n }\n });\n\n tokenRequestInstance = { scopes: [apiAccessScopeValue] };\n\n loginRequestInstance = {\n scopes: [apiAccessScopeValue, 'openid', 'offline_access'],\n state: `${PUBLIC_URL}/aad_callback`,\n };\n}\n\nexport const getSignInAuthProvider = () => {\n if (!signInAuthProviderInstance) {\n throw new Error(\n 'signInAuthProvider is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return signInAuthProviderInstance;\n};\n\nexport const getLoginRequest = () => {\n if (!loginRequestInstance) {\n throw new Error(\n 'loginRequest is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return loginRequestInstance;\n};\n\nexport const getTokenRequest = () => {\n if (!tokenRequestInstance) {\n throw new Error(\n 'tokenRequest is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return tokenRequestInstance;\n};\n\nexport const getApiAccessScope = () => {\n if (!apiAccessScopeValue) {\n throw new Error(\n 'apiAccessScope is not initialized. Call initSignInAuthProvider first.'\n );\n }\n return apiAccessScopeValue;\n};\n","import { UdpPageEnums } from \"../../enums/pageEnums\";\n\nexport const whitelistedPaths = [\n '/verify', \n `/page/${UdpPageEnums.Udp_Public_Forms_Page}`, // Public forms page\n '/aad_redirect',\n '/passwordresetsuccess'\n];\n","import {\n getSignInAuthProvider,\n getTokenRequest,\n getLoginRequest,\n} from './signInAuthProvider';\nimport { BrowserUtils } from '@azure/msal-browser';\nimport { storeCurrentPath } from '../redirect/LocalRedirectUrlStorage';\nimport { whitelistedPaths } from './whitelistedPaths';\nexport type LoginFunction = () => void;\nexport type LogoutFunction = () => void;\n/**\n * Hook providing auth \"actions\" such as login/logout\n */\n\nexport const useLoginAction: LoginFunction = () => loginRedirect;\nexport const loginRedirect: () => void = () => {\n const signInAuthProvider = getSignInAuthProvider();\n signInAuthProvider.loginRedirect(getLoginRequest());\n};\n\nexport function useLogoutAction(): LogoutFunction {\n return async () => {\n const signInAuthProvider = getSignInAuthProvider();\n await signInAuthProvider.logoutRedirect({\n account: signInAuthProvider.getActiveAccount(),\n });\n };\n}\n\nexport async function acquireAccessToken(): Promise<string | void> {\n const signInAuthProvider = getSignInAuthProvider();\n const account = signInAuthProvider.getActiveAccount() ?? undefined;\n\n if (account) {\n return signInAuthProvider\n .acquireTokenSilent({ ...getTokenRequest(), account })\n .then((response) => {\n return response.accessToken;\n })\n .catch(async (error) => {\n const currentPathIsWhitelisted = whitelistedPaths.includes(\n window.location.pathname\n );\n if (!currentPathIsWhitelisted) {\n signInAuthProvider.loginRedirect(getLoginRequest());\n }\n });\n }\n}\n","import React from \"react\";\nimport { acquireAccessToken } from './auth/authActions';\nimport { InteractionRequiredAuthError } from '@azure/msal-browser';\nimport { getStoredTenant } from './storage/UnitySessionStorage';\nimport { useSnackbar } from 'notistack';\nimport { Button } from '@material-ui/core';\nimport { useCallback } from 'react';\nimport { useHistory } from 'react-router-dom';\n\nexport const getMergedConfig = (accessToken, config) => {\n const headers = config?.headers ?? {};\n\n headers.currentTenantId ||= getStoredTenant();\n if (accessToken) headers.Authorization ||= `Bearer ${accessToken}`;\n\n config.headers = headers;\n return config;\n};\n\nexport const handleResponseErrors = async (error) => {\n if (error?.response?.status === 401) {\n await acquireAccessToken();\n }\n};\n\nexport const getAccessToken = async () => {\n return await acquireAccessToken();\n};\n\n/**\n * Checks to make sure the error isn't cancelled, if so just return w/o doing anything\n *Otherwise call a pre-method, create a snackbar, then call a post-method\n *preCallBack returns a bool, true = show snackbar\n */\nexport const useHandleAxiosSnackbar = () => {\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const history = useHistory();\n\n const dismissSnackbar = useCallback(\n (key, callback) => {\n closeSnackbar(key);\n callback?.();\n },\n [closeSnackbar]\n );\n\n const handleErrorSnackbar = useCallback(\n (error, customMessage, preCallBack, callback) => {\n const fallbackErrorMessage = 'Error executing request';\n if (\n error?.toString()?.toLowerCase() === 'cancel' ||\n error?.code === 'ERR_CANCELED'\n )\n return;\n\n // Don't call the preCallback unless we actually failed.\n const showSnackBar = preCallBack?.();\n if (preCallBack && !showSnackBar) return;\n\n let errorMessage =\n customMessage ??\n (error?.response?.data || error?.message || fallbackErrorMessage);\n if (\n typeof errorMessage !== 'string' ||\n !errorMessage ||\n errorMessage.length === 0\n ) {\n errorMessage = fallbackErrorMessage;\n }\n\n enqueueSnackbar(errorMessage, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n dismissSnackbar(key);\n }}\n >\n Ok\n </Button>\n )\n });\n\n callback?.();\n },\n [dismissSnackbar, enqueueSnackbar]\n );\n\n const handleSuccessSnackbar = useCallback(\n (message, preCallBack, callback, navigationPath, buttonText) => {\n const fallbackSuccessMessage = 'Executed request successfully';\n const showMessage = preCallBack?.();\n if (preCallBack && !showMessage) return;\n\n let successMessage = message ?? fallbackSuccessMessage;\n if (\n typeof successMessage !== 'string' ||\n !successMessage ||\n successMessage.length === 0\n ) {\n successMessage = fallbackSuccessMessage;\n }\n\n const options = {\n variant: 'default',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: (key) => (\n <>\n {navigationPath && (\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n history.push(navigationPath);\n dismissSnackbar(key);\n }}\n >\n {buttonText? buttonText : 'Go to page'}\n </Button>\n )}\n <Button\n color='secondary'\n size='small'\n onClick={() => {\n dismissSnackbar(key);\n }}\n >\n Ok\n </Button>\n </>\n )\n };\n\n enqueueSnackbar(successMessage, options);\n },\n [dismissSnackbar, enqueueSnackbar]\n );\n\n return { handleErrorSnackbar, handleSuccessSnackbar };\n};\n"],"mappings":"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"}
|