udp-react-enterprise-component-library 25.18.1-beta.10 → 25.18.1-beta.12
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/hooks/usePromotedLookupMethods.d.ts +1 -1
- package/dist/types/src/hooks/usePromotedMethodEntity.d.ts +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":"crudActions-Bl1NmJtO.js","names":[],"sources":["../src/hooks/crudActions.jsx"],"sourcesContent":["import { FormControlLabel, TextField } from '@material-ui/core';\nimport React, { useCallback } from 'react';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport { DateTimeField } from '../UI/inputs/datetimes/DateTimeField';\nimport { Field } from '../utilities/form';\nimport { FluentTextFieldAutoComplete } from '../UI/inputs/textField/FluentTextFieldAutoComplete';\nimport { FluentToggle } from '../UI/inputs/toggle/FluentToggle';\nimport { PropertyTypeEnum } from '../enums/propertyTypeEnums';\nimport { InputFieldType } from '../enums/InputFieldTypeEnums';\nimport { toLowerFirstChar } from '../utilities/input/StringUtilities';\nimport { toTitleCase } from '../utilities/input/StringUtilities';\nimport { FluentColorPicker } from '../UI/inputs/pickers/FluentColorPicker';\nimport { getSanitizedName } from '../utilities/entities/entityUtilities';\nimport { ConfigService } from '../configService';\n\nexport function useCrudActions() {\n const renderInputByForeignKey = useCallback(\n (\n foreignKeyData,\n setFkData,\n crudTableFormData,\n schemaAttribute,\n index,\n isNewEntry,\n entityData,\n label = '',\n manyToManyPropertyList = new Set()\n ) => {\n const foreignKeyAttributeName = toLowerFirstChar(schemaAttribute.name);\n if (!foreignKeyData) {\n return;\n }\n\n let attributeData = foreignKeyData.find(\n (fkd) => fkd.fieldName === foreignKeyAttributeName\n )?.data;\n\n //This onChange is trying to prevent duplicate entries but does not consider a 3 way many to many\n // const onChange = (value) => {\n // let newFKData = [...foreignKeyData];\n // const fieldName = schemaAttribute.name;\n // const existingEntityData = [...entityData].filter(\n // (ed) => ed[fieldName] === value?.id\n // );\n // if (manyToManyPropertyList.has(fieldName?.toLowerCase())) {\n // newFKData.forEach((fkd) => {\n // // omit comparing selected entity\n // if (fkd.fieldName !== fieldName) {\n // // compare existing data and remove any used options\n // existingEntityData.forEach((eData) => {\n // fkd.data = fkd.data.filter(\n // (data) => data.id !== eData[fkd.fieldName]\n // );\n // });\n // }\n // });\n // }\n\n // setFkData && setFkData(newFKData);\n // };\n\n return (\n (!schemaAttribute.extendedProperties.identifier || isNewEntry) && (\n <Field\n component={FluentTextFieldAutoComplete}\n id={`${schemaAttribute.name}${index}`}\n initialValue={\n attributeData\n ? attributeData.find(\n (d) => d.id === crudTableFormData[foreignKeyAttributeName]\n )\n : 0\n }\n label={toTitleCase(label)}\n name={foreignKeyAttributeName}\n fullWidth\n variant='outlined'\n margin='normal'\n options={attributeData || []}\n optionKey={'name'}\n required={!schemaAttribute?.nullable}\n style={{ marginTop: 8 }}\n //additionalOnChangeAction={onChange}\n disabled={schemaAttribute?.disabled}\n />\n )\n );\n },\n []\n );\n\n const renderInputByFieldType = useCallback(\n (\n schemaAttribute,\n index,\n attributes,\n fieldInfo,\n foreignKeyData,\n setFkData,\n crudTableFormData,\n classes,\n isNewEntry,\n entityData,\n manyToManyPropertyList\n ) => {\n const NUMBER_TYPE = [\n PropertyTypeEnum.Int,\n PropertyTypeEnum.Long,\n PropertyTypeEnum.Double\n ];\n\n //dont render clusterId\n if (schemaAttribute?.name === 'clusterId') {\n return;\n }\n\n //Get list of child entities\n const ceAttributes = attributes.filter(\n (ea) => ea.extendedProperties.childEntity\n );\n\n //If bool field not set, set to false\n if (\n schemaAttribute.type === 'bool' &&\n crudTableFormData[toLowerFirstChar(schemaAttribute.name)] === ''\n ) {\n crudTableFormData[toLowerFirstChar(schemaAttribute.name)] = false;\n }\n\n //finding if any child entity\n const attribute = ceAttributes.find(\n (ceAttr) =>\n Object.keys(ceAttr?.extendedProperties?.childEntityAssoc || {})\n .length &&\n ceAttr.extendedProperties.childEntityAssoc.Keys.find((a) => {\n const fieldId = a.split(',')[0];\n return (\n (/^[A-Z]*$/.test(fieldId)\n ? fieldId.toLowerCase()\n : toLowerFirstChar(fieldId)) ===\n toLowerFirstChar(schemaAttribute.name)\n );\n })\n );\n\n //If schemaAttribute is used as a foreign key, render field as foreign field\n //schemaAttribute must be a foreign key to another table and if its manytomany, it has to be the joining table. No one to many\n if (\n (schemaAttribute?.isForeignKey || attribute) &&\n !(\n !attribute?.extendedProperties?.childEntityAssoc?.IsJoiningObject &&\n attribute?.extendedProperties?.childEntityAssoc?.Cardinality === 2\n ) &&\n attribute?.extendedProperties?.childEntityAssoc?.Cardinality !== 3\n ) {\n const label = fieldInfo?.properties?.displayName\n ? fieldInfo.properties.displayName\n : attribute?.reference\n ? getSanitizedName(attribute.reference)\n : '';\n console.log(label);\n return renderInputByForeignKey(\n foreignKeyData,\n setFkData,\n crudTableFormData,\n schemaAttribute,\n index,\n isNewEntry,\n entityData,\n label,\n manyToManyPropertyList\n );\n }\n\n const maintainenceConfig = fieldInfo?.properties?.maintainenceConfig;\n const displayLabel = toTitleCase(\n fieldInfo?.properties?.displayName || schemaAttribute.name\n );\n const defaultFieldType = schemaAttribute?.type;\n const disabled =\n schemaAttribute?.disabled ||\n maintainenceConfig?.readOnly ||\n schemaAttribute?.extendedProperties?.readOnly;\n\n let fieldIsNumberType =\n maintainenceConfig?.renderAs === InputFieldType.Number;\n\n const required =\n !schemaAttribute?.nullable ||\n (fieldInfo?.isPrimaryKey && !disabled) ||\n disabled;\n\n const DefaultTextField = (\n <Field\n component={TextField}\n id={`${schemaAttribute.name}${index}`}\n name={toLowerFirstChar(schemaAttribute.name)}\n label={displayLabel}\n initialValue={\n crudTableFormData[toLowerFirstChar(schemaAttribute.name)] !== null\n ? crudTableFormData[toLowerFirstChar(schemaAttribute.name)]\n : ''\n }\n type={fieldIsNumberType && 'number'}\n fullWidth\n variant='outlined'\n size='small'\n required={required}\n margin='dense'\n InputProps={{\n classes: {\n root: classes?.input,\n input: classes?.formTextInput\n }\n }}\n inputProps={{\n udprecordid: `udpRecord-crudActions-${schemaAttribute.name}${index}`\n }}\n InputLabelProps={{\n classes: {\n root: classes?.labelRoot\n }\n }}\n disabled={disabled}\n />\n );\n\n const DefaultFluentToggle = (\n <FormControlLabel\n control={\n <Field\n component={FluentToggle}\n type='checkbox'\n id={`${schemaAttribute.name}${index}`}\n disabled={disabled}\n classes={{ root: classes?.switchRoot }}\n name={toLowerFirstChar(schemaAttribute.name)}\n color='secondary'\n inputProps={{ 'aria-label': 'Active condition' }}\n initialValue={\n typeof crudTableFormData[\n toLowerFirstChar(schemaAttribute.name)\n ] === 'boolean'\n ? crudTableFormData[toLowerFirstChar(schemaAttribute.name)]\n : crudTableFormData[\n toLowerFirstChar(schemaAttribute.name)\n ] === 'true'\n ? true\n : false\n }\n />\n }\n label={displayLabel}\n labelPlacement='start'\n style={{ marginLeft: 4 }}\n />\n );\n\n const DefaultFluentDatePicker = (\n <Field\n disabled={disabled}\n component={DateTimeField}\n id={`${schemaAttribute.name}${index}`}\n name={toLowerFirstChar(schemaAttribute.name)}\n label={displayLabel}\n initialValue={\n crudTableFormData[toLowerFirstChar(schemaAttribute.name)]\n ? new Date(\n crudTableFormData[toLowerFirstChar(schemaAttribute.name)]\n )\n : ''\n }\n fullWidth\n variant='outlined'\n size='small'\n required={required}\n style={{ marginTop: 8 }}\n />\n );\n\n const DefaultFluentColorPicker = (\n <FormControlLabel\n control={\n <Field\n component={FluentColorPicker}\n id={`${schemaAttribute.name}${index}`}\n name={toLowerFirstChar(schemaAttribute.name)}\n initialValue={\n crudTableFormData[toLowerFirstChar(schemaAttribute.name)] || ''\n }\n fullWidth\n variant='outlined'\n size='small'\n required={required}\n margin='dense'\n InputProps={{\n classes: {\n root: classes?.input,\n input: classes?.formTextInput\n }\n }}\n InputLabelProps={{\n classes: {\n root: classes?.labelRoot\n }\n }}\n disabled={disabled}\n />\n }\n label={displayLabel}\n labelPlacement='start'\n style={{ marginLeft: 4 }}\n />\n );\n\n if (maintainenceConfig?.hiddenForm) return null;\n\n switch (maintainenceConfig?.renderAs) {\n case InputFieldType.Text:\n case InputFieldType.Number:\n return DefaultTextField;\n case InputFieldType.Toggle:\n return DefaultFluentToggle;\n case InputFieldType.DateTime:\n return DefaultFluentDatePicker;\n case InputFieldType.ColorPicker:\n return DefaultFluentColorPicker;\n case InputFieldType.Default:\n default:\n fieldIsNumberType = NUMBER_TYPE.includes(defaultFieldType);\n switch (defaultFieldType) {\n case PropertyTypeEnum.Int:\n case PropertyTypeEnum.Long:\n case PropertyTypeEnum.Double:\n case PropertyTypeEnum.String:\n case PropertyTypeEnum.String_Uuid:\n return DefaultTextField;\n case PropertyTypeEnum.Boolean:\n return DefaultFluentToggle;\n case PropertyTypeEnum.DateTime:\n return DefaultFluentDatePicker;\n default:\n return null;\n }\n }\n },\n [renderInputByForeignKey]\n );\n\n const getFKData = useCallback(\n async (fkMethods, setForeignKeyData, enqueueSnackbar, displayToasts) => {\n let fkData = [];\n let promises = [];\n let promiseDetails = [];\n fkMethods.forEach((method) => {\n if (method && method?.entity?.unityBaseGetAllMethod) {\n promiseDetails.push({\n url:\n ConfigService.integrationV1ApiUrl +\n `/apimethod/executeQueryWithParameters/${method?.entity?.unityBaseGetAllMethod?.apiMethodId}`,\n fieldName: method.fkName,\n name: method.entity.entityName\n });\n\n promises.push(\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${method?.entity?.unityBaseGetAllMethod?.apiMethodId}`,\n {\n method: 'post'\n },\n { data: {} }\n )\n );\n } else {\n if (displayToasts) {\n enqueueSnackbar(\n `${method.entity.entityName}'s Get-All method needs to be promoted`,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n } else {\n console.warn(\n `${method.entity.entityName}'s Get-All method needs to be promoted`\n );\n }\n }\n });\n\n Promise.all(promises).then((resp) => {\n resp.forEach((response, index) => {\n if (response.status === 200) {\n if (response?.data) {\n let respData = [];\n response.data.forEach((d) => {\n respData.push({ id: d.id, name: d.name ?? d.id });\n });\n\n const promiseDetail = promiseDetails.find(\n (p) => p.url === response?.config?.url\n );\n fkData.push({\n fieldName: promiseDetail.fieldName,\n name: promiseDetail.fieldName,\n data: respData\n });\n }\n }\n });\n setForeignKeyData(fkData);\n });\n },\n []\n );\n\n return {\n renderInputByForeignKey,\n renderInputByFieldType,\n getFKData\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"crudActions-DXyHKaN8.js","names":[],"sources":["../src/hooks/crudActions.jsx"],"sourcesContent":["import { FormControlLabel, TextField } from '@material-ui/core';\nimport React, { useCallback } from 'react';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport { DateTimeField } from '../UI/inputs/datetimes/DateTimeField';\nimport { Field } from '../utilities/form';\nimport { FluentTextFieldAutoComplete } from '../UI/inputs/textField/FluentTextFieldAutoComplete';\nimport { FluentToggle } from '../UI/inputs/toggle/FluentToggle';\nimport { PropertyTypeEnum } from '../enums/propertyTypeEnums';\nimport { InputFieldType } from '../enums/InputFieldTypeEnums';\nimport { toLowerFirstChar } from '../utilities/input/StringUtilities';\nimport { toTitleCase } from '../utilities/input/StringUtilities';\nimport { FluentColorPicker } from '../UI/inputs/pickers/FluentColorPicker';\nimport { getSanitizedName } from '../utilities/entities/entityUtilities';\nimport { ConfigService } from '../configService';\n\nexport function useCrudActions() {\n const renderInputByForeignKey = useCallback(\n (\n foreignKeyData,\n setFkData,\n crudTableFormData,\n schemaAttribute,\n index,\n isNewEntry,\n entityData,\n label = '',\n manyToManyPropertyList = new Set()\n ) => {\n const foreignKeyAttributeName = toLowerFirstChar(schemaAttribute.name);\n if (!foreignKeyData) {\n return;\n }\n\n let attributeData = foreignKeyData.find(\n (fkd) => fkd.fieldName === foreignKeyAttributeName\n )?.data;\n\n //This onChange is trying to prevent duplicate entries but does not consider a 3 way many to many\n // const onChange = (value) => {\n // let newFKData = [...foreignKeyData];\n // const fieldName = schemaAttribute.name;\n // const existingEntityData = [...entityData].filter(\n // (ed) => ed[fieldName] === value?.id\n // );\n // if (manyToManyPropertyList.has(fieldName?.toLowerCase())) {\n // newFKData.forEach((fkd) => {\n // // omit comparing selected entity\n // if (fkd.fieldName !== fieldName) {\n // // compare existing data and remove any used options\n // existingEntityData.forEach((eData) => {\n // fkd.data = fkd.data.filter(\n // (data) => data.id !== eData[fkd.fieldName]\n // );\n // });\n // }\n // });\n // }\n\n // setFkData && setFkData(newFKData);\n // };\n\n return (\n (!schemaAttribute.extendedProperties.identifier || isNewEntry) && (\n <Field\n component={FluentTextFieldAutoComplete}\n id={`${schemaAttribute.name}${index}`}\n initialValue={\n attributeData\n ? attributeData.find(\n (d) => d.id === crudTableFormData[foreignKeyAttributeName]\n )\n : 0\n }\n label={toTitleCase(label)}\n name={foreignKeyAttributeName}\n fullWidth\n variant='outlined'\n margin='normal'\n options={attributeData || []}\n optionKey={'name'}\n required={!schemaAttribute?.nullable}\n style={{ marginTop: 8 }}\n //additionalOnChangeAction={onChange}\n disabled={schemaAttribute?.disabled}\n />\n )\n );\n },\n []\n );\n\n const renderInputByFieldType = useCallback(\n (\n schemaAttribute,\n index,\n attributes,\n fieldInfo,\n foreignKeyData,\n setFkData,\n crudTableFormData,\n classes,\n isNewEntry,\n entityData,\n manyToManyPropertyList\n ) => {\n const NUMBER_TYPE = [\n PropertyTypeEnum.Int,\n PropertyTypeEnum.Long,\n PropertyTypeEnum.Double\n ];\n\n //dont render clusterId\n if (schemaAttribute?.name === 'clusterId') {\n return;\n }\n\n //Get list of child entities\n const ceAttributes = attributes.filter(\n (ea) => ea.extendedProperties.childEntity\n );\n\n //If bool field not set, set to false\n if (\n schemaAttribute.type === 'bool' &&\n crudTableFormData[toLowerFirstChar(schemaAttribute.name)] === ''\n ) {\n crudTableFormData[toLowerFirstChar(schemaAttribute.name)] = false;\n }\n\n //finding if any child entity\n const attribute = ceAttributes.find(\n (ceAttr) =>\n Object.keys(ceAttr?.extendedProperties?.childEntityAssoc || {})\n .length &&\n ceAttr.extendedProperties.childEntityAssoc.Keys.find((a) => {\n const fieldId = a.split(',')[0];\n return (\n (/^[A-Z]*$/.test(fieldId)\n ? fieldId.toLowerCase()\n : toLowerFirstChar(fieldId)) ===\n toLowerFirstChar(schemaAttribute.name)\n );\n })\n );\n\n //If schemaAttribute is used as a foreign key, render field as foreign field\n //schemaAttribute must be a foreign key to another table and if its manytomany, it has to be the joining table. No one to many\n if (\n (schemaAttribute?.isForeignKey || attribute) &&\n !(\n !attribute?.extendedProperties?.childEntityAssoc?.IsJoiningObject &&\n attribute?.extendedProperties?.childEntityAssoc?.Cardinality === 2\n ) &&\n attribute?.extendedProperties?.childEntityAssoc?.Cardinality !== 3\n ) {\n const label = fieldInfo?.properties?.displayName\n ? fieldInfo.properties.displayName\n : attribute?.reference\n ? getSanitizedName(attribute.reference)\n : '';\n console.log(label);\n return renderInputByForeignKey(\n foreignKeyData,\n setFkData,\n crudTableFormData,\n schemaAttribute,\n index,\n isNewEntry,\n entityData,\n label,\n manyToManyPropertyList\n );\n }\n\n const maintainenceConfig = fieldInfo?.properties?.maintainenceConfig;\n const displayLabel = toTitleCase(\n fieldInfo?.properties?.displayName || schemaAttribute.name\n );\n const defaultFieldType = schemaAttribute?.type;\n const disabled =\n schemaAttribute?.disabled ||\n maintainenceConfig?.readOnly ||\n schemaAttribute?.extendedProperties?.readOnly;\n\n let fieldIsNumberType =\n maintainenceConfig?.renderAs === InputFieldType.Number;\n\n const required =\n !schemaAttribute?.nullable ||\n (fieldInfo?.isPrimaryKey && !disabled) ||\n disabled;\n\n const DefaultTextField = (\n <Field\n component={TextField}\n id={`${schemaAttribute.name}${index}`}\n name={toLowerFirstChar(schemaAttribute.name)}\n label={displayLabel}\n initialValue={\n crudTableFormData[toLowerFirstChar(schemaAttribute.name)] !== null\n ? crudTableFormData[toLowerFirstChar(schemaAttribute.name)]\n : ''\n }\n type={fieldIsNumberType && 'number'}\n fullWidth\n variant='outlined'\n size='small'\n required={required}\n margin='dense'\n InputProps={{\n classes: {\n root: classes?.input,\n input: classes?.formTextInput\n }\n }}\n inputProps={{\n udprecordid: `udpRecord-crudActions-${schemaAttribute.name}${index}`\n }}\n InputLabelProps={{\n classes: {\n root: classes?.labelRoot\n }\n }}\n disabled={disabled}\n />\n );\n\n const DefaultFluentToggle = (\n <FormControlLabel\n control={\n <Field\n component={FluentToggle}\n type='checkbox'\n id={`${schemaAttribute.name}${index}`}\n disabled={disabled}\n classes={{ root: classes?.switchRoot }}\n name={toLowerFirstChar(schemaAttribute.name)}\n color='secondary'\n inputProps={{ 'aria-label': 'Active condition' }}\n initialValue={\n typeof crudTableFormData[\n toLowerFirstChar(schemaAttribute.name)\n ] === 'boolean'\n ? crudTableFormData[toLowerFirstChar(schemaAttribute.name)]\n : crudTableFormData[\n toLowerFirstChar(schemaAttribute.name)\n ] === 'true'\n ? true\n : false\n }\n />\n }\n label={displayLabel}\n labelPlacement='start'\n style={{ marginLeft: 4 }}\n />\n );\n\n const DefaultFluentDatePicker = (\n <Field\n disabled={disabled}\n component={DateTimeField}\n id={`${schemaAttribute.name}${index}`}\n name={toLowerFirstChar(schemaAttribute.name)}\n label={displayLabel}\n initialValue={\n crudTableFormData[toLowerFirstChar(schemaAttribute.name)]\n ? new Date(\n crudTableFormData[toLowerFirstChar(schemaAttribute.name)]\n )\n : ''\n }\n fullWidth\n variant='outlined'\n size='small'\n required={required}\n style={{ marginTop: 8 }}\n />\n );\n\n const DefaultFluentColorPicker = (\n <FormControlLabel\n control={\n <Field\n component={FluentColorPicker}\n id={`${schemaAttribute.name}${index}`}\n name={toLowerFirstChar(schemaAttribute.name)}\n initialValue={\n crudTableFormData[toLowerFirstChar(schemaAttribute.name)] || ''\n }\n fullWidth\n variant='outlined'\n size='small'\n required={required}\n margin='dense'\n InputProps={{\n classes: {\n root: classes?.input,\n input: classes?.formTextInput\n }\n }}\n InputLabelProps={{\n classes: {\n root: classes?.labelRoot\n }\n }}\n disabled={disabled}\n />\n }\n label={displayLabel}\n labelPlacement='start'\n style={{ marginLeft: 4 }}\n />\n );\n\n if (maintainenceConfig?.hiddenForm) return null;\n\n switch (maintainenceConfig?.renderAs) {\n case InputFieldType.Text:\n case InputFieldType.Number:\n return DefaultTextField;\n case InputFieldType.Toggle:\n return DefaultFluentToggle;\n case InputFieldType.DateTime:\n return DefaultFluentDatePicker;\n case InputFieldType.ColorPicker:\n return DefaultFluentColorPicker;\n case InputFieldType.Default:\n default:\n fieldIsNumberType = NUMBER_TYPE.includes(defaultFieldType);\n switch (defaultFieldType) {\n case PropertyTypeEnum.Int:\n case PropertyTypeEnum.Long:\n case PropertyTypeEnum.Double:\n case PropertyTypeEnum.String:\n case PropertyTypeEnum.String_Uuid:\n return DefaultTextField;\n case PropertyTypeEnum.Boolean:\n return DefaultFluentToggle;\n case PropertyTypeEnum.DateTime:\n return DefaultFluentDatePicker;\n default:\n return null;\n }\n }\n },\n [renderInputByForeignKey]\n );\n\n const getFKData = useCallback(\n async (fkMethods, setForeignKeyData, enqueueSnackbar, displayToasts) => {\n let fkData = [];\n let promises = [];\n let promiseDetails = [];\n fkMethods.forEach((method) => {\n if (method && method?.entity?.unityBaseGetAllMethod) {\n promiseDetails.push({\n url:\n ConfigService.integrationV1ApiUrl +\n `/apimethod/executeQueryWithParameters/${method?.entity?.unityBaseGetAllMethod?.apiMethodId}`,\n fieldName: method.fkName,\n name: method.entity.entityName\n });\n\n promises.push(\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${method?.entity?.unityBaseGetAllMethod?.apiMethodId}`,\n {\n method: 'post'\n },\n { data: {} }\n )\n );\n } else {\n if (displayToasts) {\n enqueueSnackbar(\n `${method.entity.entityName}'s Get-All method needs to be promoted`,\n {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n }\n );\n } else {\n console.warn(\n `${method.entity.entityName}'s Get-All method needs to be promoted`\n );\n }\n }\n });\n\n Promise.all(promises).then((resp) => {\n resp.forEach((response, index) => {\n if (response.status === 200) {\n if (response?.data) {\n let respData = [];\n response.data.forEach((d) => {\n respData.push({ id: d.id, name: d.name ?? d.id });\n });\n\n const promiseDetail = promiseDetails.find(\n (p) => p.url === response?.config?.url\n );\n fkData.push({\n fieldName: promiseDetail.fieldName,\n name: promiseDetail.fieldName,\n data: respData\n });\n }\n }\n });\n setForeignKeyData(fkData);\n });\n },\n []\n );\n\n return {\n renderInputByForeignKey,\n renderInputByFieldType,\n getFKData\n };\n}\n"],"mappings":";;;;;;;;;;;;;;;AAeA,SAAgB,iBAAiB;CAC/B,MAAM,0BAA0B,aAE5B,gBACA,WACA,mBACA,iBACA,OACA,YACA,YACA,QAAQ,IACR,yCAAyB,IAAI,KAAK,KAC/B;EACH,MAAM,0BAA0B,iBAAiB,gBAAgB,KAAK;AACtE,MAAI,CAAC,eACH;EAGF,IAAI,gBAAgB,eAAe,MAChC,QAAQ,IAAI,cAAc,wBAC5B,EAAE;AA0BH,UACG,CAAC,gBAAgB,mBAAmB,cAAc,eACjD,oCAAC;GACC,WAAW;GACX,IAAI,GAAG,gBAAgB,OAAO;GAC9B,cACE,gBACI,cAAc,MACX,MAAM,EAAE,OAAO,kBAAkB,yBACnC,GACD;GAEN,OAAO,YAAY,MAAM;GACzB,MAAM;GACN;GACA,SAAQ;GACR,QAAO;GACP,SAAS,iBAAiB,EAAE;GAC5B,WAAW;GACX,UAAU,CAAC,iBAAiB;GAC5B,OAAO,EAAE,WAAW,GAAG;GAEvB,UAAU,iBAAiB;IAC3B;IAIR,EAAE,CACH;AA2UD,QAAO;EACL;EACA,wBA3U6B,aAE3B,iBACA,OACA,YACA,WACA,gBACA,WACA,mBACA,SACA,YACA,YACA,2BACG;GACH,MAAM,cAAc;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,iBAAiB;IAClB;AAGD,OAAI,iBAAiB,SAAS,YAC5B;GAIF,MAAM,eAAe,WAAW,QAC7B,OAAO,GAAG,mBAAmB,YAC/B;AAGD,OACE,gBAAgB,SAAS,UACzB,kBAAkB,iBAAiB,gBAAgB,KAAK,MAAM,GAE9D,mBAAkB,iBAAiB,gBAAgB,KAAK,IAAI;GAI9D,MAAM,YAAY,aAAa,MAC5B,WACC,OAAO,KAAK,QAAQ,oBAAoB,oBAAoB,EAAE,CAAC,CAC5D,UACH,OAAO,mBAAmB,iBAAiB,KAAK,MAAM,MAAM;IAC1D,MAAM,UAAU,EAAE,MAAM,IAAI,CAAC;AAC7B,YACG,WAAW,KAAK,QAAQ,GACrB,QAAQ,aAAa,GACrB,iBAAiB,QAAQ,MAC7B,iBAAiB,gBAAgB,KAAK;KAExC,CACL;AAID,QACG,iBAAiB,gBAAgB,cAClC,EACE,CAAC,WAAW,oBAAoB,kBAAkB,mBAClD,WAAW,oBAAoB,kBAAkB,gBAAgB,MAEnE,WAAW,oBAAoB,kBAAkB,gBAAgB,GACjE;IACA,MAAM,QAAQ,WAAW,YAAY,cACjC,UAAU,WAAW,cACrB,WAAW,YACX,iBAAiB,UAAU,UAAU,GACrC;AACJ,YAAQ,IAAI,MAAM;AAClB,WAAO,wBACL,gBACA,WACA,mBACA,iBACA,OACA,YACA,YACA,OACA,uBACD;;GAGH,MAAM,qBAAqB,WAAW,YAAY;GAClD,MAAM,eAAe,YACnB,WAAW,YAAY,eAAe,gBAAgB,KACvD;GACD,MAAM,mBAAmB,iBAAiB;GAC1C,MAAM,WACJ,iBAAiB,YACjB,oBAAoB,YACpB,iBAAiB,oBAAoB;GAEvC,IAAI,oBACF,oBAAoB,aAAa,eAAe;GAElD,MAAM,WACJ,CAAC,iBAAiB,YACjB,WAAW,gBAAgB,CAAC,YAC7B;GAEF,MAAM,mBACJ,oCAAC;IACC,WAAW;IACX,IAAI,GAAG,gBAAgB,OAAO;IAC9B,MAAM,iBAAiB,gBAAgB,KAAK;IAC5C,OAAO;IACP,cACE,kBAAkB,iBAAiB,gBAAgB,KAAK,MAAM,OAC1D,kBAAkB,iBAAiB,gBAAgB,KAAK,IACxD;IAEN,MAAM,qBAAqB;IAC3B;IACA,SAAQ;IACR,MAAK;IACK;IACV,QAAO;IACP,YAAY,EACV,SAAS;KACP,MAAM,SAAS;KACf,OAAO,SAAS;KACjB,EACF;IACD,YAAY,EACV,aAAa,yBAAyB,gBAAgB,OAAO,SAC9D;IACD,iBAAiB,EACf,SAAS,EACP,MAAM,SAAS,WAChB,EACF;IACS;KACV;GAGJ,MAAM,sBACJ,oCAAC;IACC,SACE,oCAAC;KACC,WAAW;KACX,MAAK;KACL,IAAI,GAAG,gBAAgB,OAAO;KACpB;KACV,SAAS,EAAE,MAAM,SAAS,YAAY;KACtC,MAAM,iBAAiB,gBAAgB,KAAK;KAC5C,OAAM;KACN,YAAY,EAAE,cAAc,oBAAoB;KAChD,cACE,OAAO,kBACL,iBAAiB,gBAAgB,KAAK,MAClC,YACF,kBAAkB,iBAAiB,gBAAgB,KAAK,IACxD,kBACE,iBAAiB,gBAAgB,KAAK,MAClC,SACN,OACA;MAEN;IAEJ,OAAO;IACP,gBAAe;IACf,OAAO,EAAE,YAAY,GAAG;KACxB;GAGJ,MAAM,0BACJ,oCAAC;IACW;IACV,WAAW;IACX,IAAI,GAAG,gBAAgB,OAAO;IAC9B,MAAM,iBAAiB,gBAAgB,KAAK;IAC5C,OAAO;IACP,cACE,kBAAkB,iBAAiB,gBAAgB,KAAK,IACpD,IAAI,KACF,kBAAkB,iBAAiB,gBAAgB,KAAK,EACzD,GACD;IAEN;IACA,SAAQ;IACR,MAAK;IACK;IACV,OAAO,EAAE,WAAW,GAAG;KACvB;GAGJ,MAAM,2BACJ,oCAAC;IACC,SACE,oCAAC;KACC,WAAW;KACX,IAAI,GAAG,gBAAgB,OAAO;KAC9B,MAAM,iBAAiB,gBAAgB,KAAK;KAC5C,cACE,kBAAkB,iBAAiB,gBAAgB,KAAK,KAAK;KAE/D;KACA,SAAQ;KACR,MAAK;KACK;KACV,QAAO;KACP,YAAY,EACV,SAAS;MACP,MAAM,SAAS;MACf,OAAO,SAAS;MACjB,EACF;KACD,iBAAiB,EACf,SAAS,EACP,MAAM,SAAS,WAChB,EACF;KACS;MACV;IAEJ,OAAO;IACP,gBAAe;IACf,OAAO,EAAE,YAAY,GAAG;KACxB;AAGJ,OAAI,oBAAoB,WAAY,QAAO;AAE3C,WAAQ,oBAAoB,UAA5B;IACE,KAAK,eAAe;IACpB,KAAK,eAAe,OAClB,QAAO;IACT,KAAK,eAAe,OAClB,QAAO;IACT,KAAK,eAAe,SAClB,QAAO;IACT,KAAK,eAAe,YAClB,QAAO;IACT,KAAK,eAAe;IACpB;AACE,yBAAoB,YAAY,SAAS,iBAAiB;AAC1D,aAAQ,kBAAR;MACE,KAAK,iBAAiB;MACtB,KAAK,iBAAiB;MACtB,KAAK,iBAAiB;MACtB,KAAK,iBAAiB;MACtB,KAAK,iBAAiB,YACpB,QAAO;MACT,KAAK,iBAAiB,QACpB,QAAO;MACT,KAAK,iBAAiB,SACpB,QAAO;MACT,QACE,QAAO;;;KAIjB,CAAC,wBAAwB,CAC1B;EA4EC,WA1EgB,YAChB,OAAO,WAAW,mBAAmB,iBAAiB,kBAAkB;GACtE,IAAI,SAAS,EAAE;GACf,IAAI,WAAW,EAAE;GACjB,IAAI,iBAAiB,EAAE;AACvB,aAAU,SAAS,WAAW;AAC5B,QAAI,UAAU,QAAQ,QAAQ,uBAAuB;AACnD,oBAAe,KAAK;MAClB,KACE,cAAc,sBACd,yCAAyC,QAAQ,QAAQ,uBAAuB;MAClF,WAAW,OAAO;MAClB,MAAM,OAAO,OAAO;MACrB,CAAC;AAEF,cAAS,KACP,UACE,cAAc,qBACd,wCAAwC,QAAQ,QAAQ,uBAAuB,eAC/E,EACE,QAAQ,QACT,EACD,EAAE,MAAM,EAAE,EAAE,CACb,CACF;eAEG,cACF,iBACE,GAAG,OAAO,OAAO,WAAW,yCAC5B;KACE,SAAS;KACT,cAAc;MACZ,UAAU;MACV,YAAY;MACb;KACF,CACF;QAED,SAAQ,KACN,GAAG,OAAO,OAAO,WAAW,wCAC7B;KAGL;AAEF,WAAQ,IAAI,SAAS,CAAC,MAAM,SAAS;AACnC,SAAK,SAAS,UAAU,UAAU;AAChC,SAAI,SAAS,WAAW,KACtB;UAAI,UAAU,MAAM;OAClB,IAAI,WAAW,EAAE;AACjB,gBAAS,KAAK,SAAS,MAAM;AAC3B,iBAAS,KAAK;SAAE,IAAI,EAAE;SAAI,MAAM,EAAE,QAAQ,EAAE;SAAI,CAAC;SACjD;OAEF,MAAM,gBAAgB,eAAe,MAClC,MAAM,EAAE,QAAQ,UAAU,QAAQ,IACpC;AACD,cAAO,KAAK;QACV,WAAW,cAAc;QACzB,MAAM,cAAc;QACpB,MAAM;QACP,CAAC;;;MAGN;AACF,sBAAkB,OAAO;KACzB;KAEJ,EAAE,CACH;EAMA"}
|
|
@@ -4,16 +4,16 @@ import "../../form-Dj1zVw6K.js";
|
|
|
4
4
|
import "../../FluentButton-BexKrnAp.js";
|
|
5
5
|
import "../../FormButtons-BTCO-pzW.js";
|
|
6
6
|
import "../../configService-C4uoG3wj.js";
|
|
7
|
-
import "../../apiHelpers-
|
|
8
|
-
import "../../pageEnums-
|
|
7
|
+
import "../../apiHelpers-B_cn3sZo.js";
|
|
8
|
+
import "../../pageEnums-DHCYa0ey.js";
|
|
9
9
|
import "../../UnitySessionStorage-CUDx9YWR.js";
|
|
10
|
-
import "../../axiosInterceptors-
|
|
10
|
+
import "../../axiosInterceptors-FQ3b5kjr.js";
|
|
11
11
|
import "../../useUser-wpHGo6jU.js";
|
|
12
12
|
import "../../FluentTextFieldAutoComplete-5Hp3qpk6.js";
|
|
13
13
|
import "../../FluentIcon-DQ6nSDJg.js";
|
|
14
14
|
import "../../FluentIconButton-Dc95mE3v.js";
|
|
15
|
-
import "../../useAxiosGet-
|
|
16
|
-
import { i as ParamsMappingFields, n as RequiredFieldsMappingField, r as ParamsMappingForm, t as RequiredFieldsMappingForm } from "../../RequiredFieldsMappingForm-
|
|
17
|
-
import "../../forms-
|
|
15
|
+
import "../../useAxiosGet-vvPjwB4W.js";
|
|
16
|
+
import { i as ParamsMappingFields, n as RequiredFieldsMappingField, r as ParamsMappingForm, t as RequiredFieldsMappingForm } from "../../RequiredFieldsMappingForm-KwEaUAJ-.js";
|
|
17
|
+
import "../../forms-uSV7-14b.js";
|
|
18
18
|
|
|
19
19
|
export { ParamsMappingFields, ParamsMappingForm, RequiredFieldsMappingField, RequiredFieldsMappingForm };
|
|
@@ -6,12 +6,12 @@ import "../FluentButton-BexKrnAp.js";
|
|
|
6
6
|
import "../FormButtons-BTCO-pzW.js";
|
|
7
7
|
import "../CrudBrowserUtilities-C9nVmUR3.js";
|
|
8
8
|
import "../configService-C4uoG3wj.js";
|
|
9
|
-
import "../apiHelpers-
|
|
10
|
-
import "../pageEnums-
|
|
9
|
+
import "../apiHelpers-B_cn3sZo.js";
|
|
10
|
+
import "../pageEnums-DHCYa0ey.js";
|
|
11
11
|
import "../UnitySessionStorage-CUDx9YWR.js";
|
|
12
|
-
import "../axiosInterceptors-
|
|
12
|
+
import "../axiosInterceptors-FQ3b5kjr.js";
|
|
13
13
|
import "../useUser-wpHGo6jU.js";
|
|
14
|
-
import "../useAxiosMutate-
|
|
14
|
+
import "../useAxiosMutate-DcLxzykX.js";
|
|
15
15
|
import "../DateTimeField-CUzs3MIq.js";
|
|
16
16
|
import "../FluentTextFieldAutoComplete-5Hp3qpk6.js";
|
|
17
17
|
import "../FluentToggle-B1DqTfua.js";
|
|
@@ -22,15 +22,15 @@ import "../FluentIcon-DQ6nSDJg.js";
|
|
|
22
22
|
import "../FluentIconButton-Dc95mE3v.js";
|
|
23
23
|
import "../FluentColorPicker-Wi2o3JqX.js";
|
|
24
24
|
import "../entityUtilities-_8w-Zjs3.js";
|
|
25
|
-
import "../crudActions-
|
|
25
|
+
import "../crudActions-DXyHKaN8.js";
|
|
26
26
|
import "../unitySystemEnums-DQSkCr3D.js";
|
|
27
27
|
import "../UnityFluentIcon-DrASIcTF.js";
|
|
28
28
|
import "../ActionLoadingDispatchContext-XEU8GWlw.js";
|
|
29
|
-
import "../actionUtils-
|
|
29
|
+
import "../actionUtils-cC_2y5Xi.js";
|
|
30
30
|
import "../inquiryStore-BMYKf5MP.js";
|
|
31
31
|
import "../catalogStore-DP2GxpTJ.js";
|
|
32
32
|
import "../shellStore-C8zfPsZ-.js";
|
|
33
|
-
import "../useActions-
|
|
33
|
+
import "../useActions-BbqecXkd.js";
|
|
34
34
|
import "../PrimaryActionButton-Dk8zvDAW.js";
|
|
35
35
|
import "../SearchUtilities-Df1gkDw9.js";
|
|
36
36
|
import "../teleporterStore-CjUFtATo.js";
|
|
@@ -39,7 +39,7 @@ import "../LayoutUnit-D4jJvonh.js";
|
|
|
39
39
|
import "../StandardTitle-DJ9zcNBA.js";
|
|
40
40
|
import "../SideSheetHeader-DgnkLGmv.js";
|
|
41
41
|
import "../SideSheet-C-rILQqR.js";
|
|
42
|
-
import "../useAxiosGet-
|
|
42
|
+
import "../useAxiosGet-vvPjwB4W.js";
|
|
43
43
|
import "../DashboardWidget-F4pnOQAe.js";
|
|
44
44
|
import "../FUICard-DmszpY_T.js";
|
|
45
45
|
import "../FUISquareIconButton-DwTSTnBV.js";
|
|
@@ -53,10 +53,10 @@ import "../StatusChip-DZAN88VU.js";
|
|
|
53
53
|
import "../UdpTabs-DVZGEwOC.js";
|
|
54
54
|
import "../PageContext-BpOBJHpb.js";
|
|
55
55
|
import "../useSetLocationState-Kvcc9BTb.js";
|
|
56
|
-
import "../PageContainer-
|
|
57
|
-
import "../methodUtils-
|
|
56
|
+
import "../PageContainer-N4d5KO-T.js";
|
|
57
|
+
import "../methodUtils-Cwo_kmVX.js";
|
|
58
58
|
import "../useBuildEnvironment-2gdqpmBX.js";
|
|
59
|
-
import "../usePromotedMethodEntity-
|
|
59
|
+
import "../usePromotedMethodEntity-Bi2neP26.js";
|
|
60
60
|
import "../AmbientTextField-CdnqPJUw.js";
|
|
61
61
|
import "../Ellipse-DGTaApGj.js";
|
|
62
62
|
import "../GridGroupingSidebar-D-ozXbff.js";
|
|
@@ -65,26 +65,26 @@ import "../Token-rFpVjQT_.js";
|
|
|
65
65
|
import "../AmbientToggleButton-BjyjXj8S.js";
|
|
66
66
|
import "../isValueSelected-DhRqZZPu.js";
|
|
67
67
|
import "../AmbientToggleButtonGroupDefault-CngfAplM.js";
|
|
68
|
-
import "../BulkActionsGridButton-
|
|
68
|
+
import "../BulkActionsGridButton-CSzHiVvH.js";
|
|
69
69
|
import "../AmbientChipButton-DYAYXuKp.js";
|
|
70
70
|
import "../FluentDialog-B5ZxvX1E.js";
|
|
71
71
|
import "../GridFunctions-BmV2e-nR.js";
|
|
72
72
|
import "../useDynamicListCalculation-BzXkwt1u.js";
|
|
73
73
|
import "../DynamicContainerWithMenu-lYZyNyb_.js";
|
|
74
74
|
import "../SearchOperator-D9838PIe.js";
|
|
75
|
-
import "../AmbientGridTemplate-
|
|
75
|
+
import "../AmbientGridTemplate-BecuOnHe.js";
|
|
76
76
|
import "../IconButtonWithToolTip-DswviiJB.js";
|
|
77
|
-
import "../ActionsRenderer-
|
|
78
|
-
import { i as ParamsMappingFields, n as RequiredFieldsMappingField, r as ParamsMappingForm, t as RequiredFieldsMappingForm } from "../RequiredFieldsMappingForm-
|
|
77
|
+
import "../ActionsRenderer-B1ImXko3.js";
|
|
78
|
+
import { i as ParamsMappingFields, n as RequiredFieldsMappingField, r as ParamsMappingForm, t as RequiredFieldsMappingForm } from "../RequiredFieldsMappingForm-KwEaUAJ-.js";
|
|
79
79
|
import "../lookupsStore-DPI8oD9R.js";
|
|
80
80
|
import "../QueryResult-CNLmUNN4.js";
|
|
81
|
-
import "../useQueryExecutors-
|
|
81
|
+
import "../useQueryExecutors-UWa24-Mf.js";
|
|
82
82
|
import "../SearchServiceDatasource-CFWLJElU.js";
|
|
83
83
|
import "../useDefaultFormValues-BVsgZOlc.js";
|
|
84
84
|
import "../tagEnums-BG8WEzei.js";
|
|
85
|
-
import "../CrudForm-
|
|
86
|
-
import "../CrudTableSidePanel-
|
|
87
|
-
import { n as DataBrowserColumnDefs, r as defaultColActionsDef, t as DataBrowserContainer } from "../DataBrowserContainer-
|
|
88
|
-
import "../forms-
|
|
85
|
+
import "../CrudForm-DzmNPfVa.js";
|
|
86
|
+
import "../CrudTableSidePanel-CXOSojmw.js";
|
|
87
|
+
import { n as DataBrowserColumnDefs, r as defaultColActionsDef, t as DataBrowserContainer } from "../DataBrowserContainer-DHE9PS3L.js";
|
|
88
|
+
import "../forms-uSV7-14b.js";
|
|
89
89
|
|
|
90
90
|
export { DataBrowserColumnDefs, DataBrowserContainer, ParamsMappingFields, ParamsMappingForm, RequiredFieldsMappingField, RequiredFieldsMappingForm, defaultColActionsDef };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataDisplay-
|
|
1
|
+
{"version":3,"file":"dataDisplay-CBFgak2F.js","names":[],"sources":["../src/UI/dataDisplay/HintPanel.jsx"],"sourcesContent":["import React, { useState } from 'react';\nimport { makeStyles, useTheme } from '@material-ui/core/styles';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n hintContainer: {\n borderLeft: `3px solid ${theme.palette.primary.main}`\n },\n hintContent: {\n backgroundColor: '#F3F9FE',\n padding: `1rem`\n },\n hideHintButton: {\n border: 'none',\n background: 'none',\n cursor: 'pointer',\n color: '#0B79D0',\n textDecoration: 'none'\n },\n hidehelp: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end',\n width: '100%'\n }\n}));\n\nexport const HintPanel = ({ hint, hideHintText }) => {\n const theme = useTheme();\n const classes = useStyles(theme);\n const [showHint, setShowHint] = useState(true);\n\n const handleHideHint = () => {\n setShowHint(false);\n };\n\n return (\n <div className={classes.hintContainer}>\n {showHint && (\n <div className={classes.hintContent}>\n <div>{hint}</div>\n <div className={classes.hidehelp}>\n <button className={classes.hideHintButton} onClick={handleHideHint}>\n {hideHintText}\n </button>\n </div>\n </div>\n )}\n </div>\n );\n};\n\nHintPanel.propTypes = {\n hint: PropTypes.string.isRequired, // Hint content to be displayed\n hideHintText: PropTypes.string.isRequired // Text for the hide hint button\n};\n"],"mappings":";;;;;AAIA,MAAM,YAAY,YAAY,WAAW;CACvC,eAAe,EACb,YAAY,aAAa,MAAM,QAAQ,QAAQ,QAChD;CACD,aAAa;EACX,iBAAiB;EACjB,SAAS;EACV;CACD,gBAAgB;EACd,QAAQ;EACR,YAAY;EACZ,QAAQ;EACR,OAAO;EACP,gBAAgB;EACjB;CACD,UAAU;EACR,SAAS;EACT,eAAe;EACf,YAAY;EACZ,OAAO;EACR;CACF,EAAE;AAEH,MAAa,aAAa,EAAE,MAAM,mBAAmB;CAEnD,MAAM,UAAU,UADF,UAAU,CACQ;CAChC,MAAM,CAAC,UAAU,eAAe,SAAS,KAAK;CAE9C,MAAM,uBAAuB;AAC3B,cAAY,MAAM;;AAGpB,QACE,oCAAC,SAAI,WAAW,QAAQ,iBACrB,YACC,oCAAC,SAAI,WAAW,QAAQ,eACtB,oCAAC,aAAK,KAAW,EACjB,oCAAC,SAAI,WAAW,QAAQ,YACtB,oCAAC;EAAO,WAAW,QAAQ;EAAgB,SAAS;IACjD,aACM,CACL,CACF,CAEJ;;AAIV,UAAU,YAAY;CACpB,MAAM,UAAU,OAAO;CACvB,cAAc,UAAU,OAAO;CAChC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"defaultTabs-
|
|
1
|
+
{"version":3,"file":"defaultTabs-CVeUq9lw.js","names":[],"sources":["../src/UI/navigation/tabs/defaultTabs/FluentTabPanels.jsx"],"sourcesContent":["import React from 'react'\nimport { Box, Tab, Typography, styled, lighten } from '@material-ui/core';\nimport PropTypes from 'prop-types';\n\nexport const a11yProps = (index) => {\n return {\n id: `simple-tab-${index}`,\n 'aria-controls': `simple-tabpanel-${index}`,\n };\n}\n\n/**\n * @type {import('@material-ui/core').StyledComponentProps<\"root\" | \"labelIcon\" | \"textColorInherit\" | \"textColorPrimary\" | \"textColorSecondary\" | \"selected\" | \"disabled\" | \"fullWidth\" | \"wrapped\" | \"wrapper\">}\n */\nexport const StyledTab = styled(Tab)(({ theme, style }) => ({\n textTransform: \"none\",\n '&.Mui-selected': {\n backgroundColor: lighten(theme.palette.secondary.light, 0.9),\n color: theme.palette.primary.main,\n },\n backgroundColor: theme.palette.background.paper,\n ...style\n}));\n\nexport const FluentTabPanels = (props) => {\n const { children, value, index, sx, ...other } = props;\n\n return (\n <div\n role=\"tabpanel\"\n hidden={value !== index}\n id={`simple-tabpanel-${index}`}\n aria-labelledby={`simple-tab-${index}`}\n {...other}\n >\n {value === index && (\n <Box sx={sx ? { ...sx } : { p: 3 }}>\n <Typography variant=\"subtitle2\">{children}</Typography>\n </Box>\n )}\n </div>\n );\n}\n\nFluentTabPanels.propTypes = {\n children: PropTypes.node,\n index: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n value: PropTypes.number.isRequired,\n sx: PropTypes.object,\n}\n\n"],"mappings":";;;;;AAIA,MAAa,aAAa,UAAU;AAClC,QAAO;EACL,IAAI,cAAc;EAClB,iBAAiB,mBAAmB;EACrC;;;;;AAMH,MAAa,YAAY,OAAO,IAAI,EAAE,EAAE,OAAO,aAAa;CAC1D,eAAe;CACf,kBAAkB;EAChB,iBAAiB,QAAQ,MAAM,QAAQ,UAAU,OAAO,GAAI;EAC5D,OAAO,MAAM,QAAQ,QAAQ;EAC9B;CACD,iBAAiB,MAAM,QAAQ,WAAW;CAC1C,GAAG;CACJ,EAAE;AAEH,MAAa,mBAAmB,UAAU;CACxC,MAAM,EAAE,UAAU,OAAO,OAAO,IAAI,GAAG,UAAU;AAEjD,QACE,oCAAC;EACC,MAAK;EACL,QAAQ,UAAU;EAClB,IAAI,mBAAmB;EACvB,mBAAiB,cAAc;EAC/B,GAAI;IAEH,UAAU,SACT,oCAAC,OAAI,IAAI,KAAK,EAAE,GAAG,IAAI,GAAG,EAAE,GAAG,GAAG,IAChC,oCAAC,cAAW,SAAQ,eAAa,SAAsB,CACnD,CAEJ;;AAIV,gBAAgB,YAAY;CAC1B,UAAU,UAAU;CACpB,OAAO,UAAU,UAAU,CAAC,UAAU,QAAQ,UAAU,OAAO,CAAC,CAAC;CACjE,OAAO,UAAU,OAAO;CACxB,IAAI,UAAU;CACf"}
|
package/dist/enums/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { n as UdpPageEnums, t as ClickOpenEnums } from "../pageEnums-
|
|
1
|
+
import { n as UdpPageEnums, t as ClickOpenEnums } from "../pageEnums-DHCYa0ey.js";
|
|
2
2
|
import { t as PropertyTypeEnum } from "../propertyTypeEnums-Dys-84NL.js";
|
|
3
3
|
import { t as InputFieldType } from "../InputFieldTypeEnums-Mg684vvi.js";
|
|
4
4
|
import { A as SplitScreenTypeEnums, C as RoleIdEnums, D as SearchSortDirection, E as SearchGroupingType, F as UdpReminderFiledForType, I as VerticalEnums, L as VisibilityTypeEnums, M as TreeViewModeEnums, N as UdpEnums, O as SearchValueType, P as UdpKeywordEnums, S as ProductNameEnums, T as RoleTypeEnums, _ as NodeActionTriggerEnums, a as EntityAttributeEnums, b as PanelPositionEnums, c as GridStateTypeEnums, d as LogicalSearchOperatorEnums, f as LookupTypeEnums, g as NodeActionEnums, h as MenuTypeEnums, i as DeviceTypeEnums, j as TenantTypeEnums, k as SeverityTypeEnums, l as JobStatusIdMapping, m as MenuItemEnums, n as CardinalityTypeEnums, o as GridEnums, p as LookupTypeIdEnums, r as ContainerTypeEnums, s as GridExcelStyleEnums, t as ADUserTypeEnums, u as JobTypeIdMapping, v as NodeGroupOutlierEnums, w as RoleNameEnums, x as ProductEnums, y as NodeGroupTypeEnums } from "../unitySystemEnums-DQSkCr3D.js";
|
|
@@ -6,5 +6,6 @@ import { n as PaymentTenderTypeEnum, r as PaymentMethodTypeEnum, t as PaymentVen
|
|
|
6
6
|
import { t as FilterElementParamType } from "../searchEnums-BTFUwf6v.js";
|
|
7
7
|
import { n as UnitTypeEnums, t as UnitStateType } from "../workflowEnums-Ce66RCVc.js";
|
|
8
8
|
import { t as TagEnums } from "../tagEnums-BG8WEzei.js";
|
|
9
|
+
import "../enums-Edm9Kwqq.js";
|
|
9
10
|
|
|
10
11
|
export { ADUserTypeEnums, CardinalityTypeEnums, ClickOpenEnums, ContainerTypeEnums, DeviceTypeEnums, EntityAttributeEnums, FilterElementParamType, GridEnums, GridExcelStyleEnums, GridStateTypeEnums, InputFieldType, JobStatusIdMapping, JobTypeIdMapping, LogicalSearchOperatorEnums, LookupTypeEnums, LookupTypeIdEnums, MenuItemEnums, MenuTypeEnums, NodeActionEnums, NodeActionTriggerEnums, NodeGroupOutlierEnums, NodeGroupTypeEnums, PanelPositionEnums, PaymentMethodTypeEnum, PaymentTenderTypeEnum, PaymentVendorFactoryEnum, ProductEnums, ProductNameEnums, PropertyTypeEnum, RoleIdEnums, RoleNameEnums, RoleTypeEnums, SearchGroupingType, SearchSortDirection, SearchValueType, SeverityTypeEnums, SplitScreenTypeEnums, TagEnums, TenantTypeEnums, TreeViewModeEnums, UdpEnums, UdpKeywordEnums, UdpPageEnums, UdpReminderFiledForType, UnitStateType, UnitTypeEnums, VerticalEnums, VisibilityTypeEnums };
|
package/dist/hooks/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,29 +21,29 @@ 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 { t as useCrudActions } from "../crudActions-
|
|
24
|
+
import { t as useCrudActions } from "../crudActions-DXyHKaN8.js";
|
|
25
25
|
import "../unitySystemEnums-DQSkCr3D.js";
|
|
26
26
|
import "../ActionLoadingDispatchContext-XEU8GWlw.js";
|
|
27
|
-
import "../actionUtils-
|
|
27
|
+
import "../actionUtils-cC_2y5Xi.js";
|
|
28
28
|
import "../inquiryStore-BMYKf5MP.js";
|
|
29
29
|
import "../catalogStore-DP2GxpTJ.js";
|
|
30
30
|
import "../shellStore-C8zfPsZ-.js";
|
|
31
|
-
import { n as useActions, t as useActionState } from "../useActions-
|
|
32
|
-
import "../useAxiosGet-
|
|
31
|
+
import { n as useActions, t as useActionState } from "../useActions-BbqecXkd.js";
|
|
32
|
+
import "../useAxiosGet-vvPjwB4W.js";
|
|
33
33
|
import { t as useSetLocationState } from "../useSetLocationState-Kvcc9BTb.js";
|
|
34
|
-
import "../methodUtils-
|
|
35
|
-
import { t as usePromotedMethodEntity } from "../usePromotedMethodEntity-
|
|
34
|
+
import "../methodUtils-Cwo_kmVX.js";
|
|
35
|
+
import { t as usePromotedMethodEntity } from "../usePromotedMethodEntity-Bi2neP26.js";
|
|
36
36
|
import "../LibraryData-D8Uai7Yd.js";
|
|
37
37
|
import { t as useDynamicListCalculation } from "../useDynamicListCalculation-BzXkwt1u.js";
|
|
38
|
-
import { t as useApiCatalog } from "../useApiCatalog-
|
|
38
|
+
import { t as useApiCatalog } from "../useApiCatalog-Yi_KDPot.js";
|
|
39
39
|
import { t as useFluentIcon } from "../useFluentIcon-Dy-hy_aD.js";
|
|
40
40
|
import "../QuickViewCard-odqSWVkJ.js";
|
|
41
41
|
import { t as useItemSubCard } from "../useItemSubCard-CJ3DL7fz.js";
|
|
42
|
-
import { a as useOutlook, i as useProductVersion, n as useWorkflow, r as useDateLocale, t as usePreloadPages } from "../hooks-
|
|
42
|
+
import { a as useOutlook, i as useProductVersion, n as useWorkflow, r as useDateLocale, t as usePreloadPages } from "../hooks-CxLP2j70.js";
|
|
43
43
|
import "../lookupsStore-DPI8oD9R.js";
|
|
44
|
-
import { n as usePromotedLookupMethods, t as usePromotedMethodEntities } from "../usePromotedMethodEntities-
|
|
44
|
+
import { n as usePromotedLookupMethods, t as usePromotedMethodEntities } from "../usePromotedMethodEntities-bv9ewSry.js";
|
|
45
45
|
import "../QueryResult-CNLmUNN4.js";
|
|
46
|
-
import { t as useQueryExecutors } from "../useQueryExecutors-
|
|
46
|
+
import { t as useQueryExecutors } from "../useQueryExecutors-UWa24-Mf.js";
|
|
47
47
|
import "../searchEnums-BTFUwf6v.js";
|
|
48
48
|
import { t as useSearchFilterParamsMap } from "../useSearchFilterParamsMap-1qMwke0K.js";
|
|
49
49
|
import { t as useSplitDecimal } from "../useSplitDecimal-CsxaeRaU.js";
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { t as ConfigService } from "./configService-C4uoG3wj.js";
|
|
2
2
|
import { t as useUser } from "./useUser-wpHGo6jU.js";
|
|
3
|
-
import { t as apiMutate } from "./useAxiosMutate-
|
|
3
|
+
import { t as apiMutate } from "./useAxiosMutate-DcLxzykX.js";
|
|
4
4
|
import { n as useShellStore } from "./shellStore-C8zfPsZ-.js";
|
|
5
|
-
import { t as useAxiosGet } from "./useAxiosGet-
|
|
5
|
+
import { t as useAxiosGet } from "./useAxiosGet-vvPjwB4W.js";
|
|
6
6
|
import { t as useWorkflowStore } from "./workflowStore-flVBWM0f.js";
|
|
7
7
|
import { useCallback, useEffect, useMemo, useRef, useState } from "react";
|
|
8
8
|
import { DateTime } from "luxon";
|
|
@@ -280,4 +280,4 @@ const usePreloadPages = () => {
|
|
|
280
280
|
|
|
281
281
|
//#endregion
|
|
282
282
|
export { useOutlook as a, useProductVersion as i, useWorkflow as n, useDateLocale as r, usePreloadPages as t };
|
|
283
|
-
//# sourceMappingURL=hooks-
|
|
283
|
+
//# sourceMappingURL=hooks-CxLP2j70.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hooks-C2Rr_sq1.js","names":["dateTimeOptions: Intl.DateTimeFormatOptions","localeString: string","error"],"sources":["../src/hooks/useOutlook.js","../src/hooks/useProductVersion.js","../src/hooks/useDateLocale.ts","../src/hooks/useWorkflow.js","../src/hooks/usePreloadPages.js"],"sourcesContent":["import { apiMutate } from '../utilities/useAxiosMutate';\nimport { useEffect } from 'react';\nimport { ConfigService } from '../configService';\n\nexport const useOutlook = (callbackUri, onLogin) => {\n\n const invalidateUserSession = async () => {\n try {\n // if (ConfigService.integrationV2ApiUrl === undefined) {\n // throw new Error('REACT_APP_INTEGRATION_V2_API_BASE is undefined')\n // }\n // const accessToken = localStorage.getItem('outlookAccessToken');\n // const response = await apiMutate(\n // ConfigService.integrationV2ApiUrl,\n // `OutlookIntegrationAccessToken/invalidateUserSession`,\n // {\n // method: \"post\",\n // headers : {\n // OutlookAccessToken: accessToken\n // }\n // }\n // )\n\n } catch (error) {\n console.error('Error refreshing access token:', error);\n return null;\n // }\n } finally {\n try {\n localStorage.removeItem('outlookAccessToken');\n } catch (error) {\n console.error('Error removing accessToken:', error);\n }\n\n try {\n localStorage.removeItem('outlookRefreshToken');\n } catch (error) {\n console.error('Error removing refreshToken:', error);\n }\n\n try {\n localStorage.removeItem('outlookExpiresAt');\n } catch (error) {\n console.error('Error removing expiresAt:', error);\n }\n\n }\n }\n\n const getAccessToken = async () => {\n let accessToken = localStorage.getItem('outlookAccessToken');\n\n if (!accessToken) {\n throw(new Error(\"No access token found\"));\n }\n\n const expiresAt = localStorage.getItem('outlookExpiresAt');\n if (expiresAt && !isBeforeCurrentTime(expiresAt)) {\n return accessToken;\n }\n\n const refreshToken = localStorage.getItem('outlookRefreshToken');\n if (!refreshToken) {\n throw(new Error(\"No refresh token found\"));\n }\n\n try {\n if (ConfigService.integrationV2ApiUrl === undefined) {\n throw new Error('REACT_APP_INTEGRATION_V2_API_BASE is undefined')\n }\n const response = await apiMutate(\n ConfigService.integrationV2ApiUrl,\n `OutlookIntegrationAccessToken/getAccessToken`,\n {\n method: \"post\",\n data: {\n option: \"refresh_token\",\n value: refreshToken,\n redirectUri: ConfigService.config.UNITY_URL + \"/aad_redirect\"\n }\n }\n )\n const data = response.data;\n if (data.accessToken != null && data.refreshToken != null && data.expiresIn != null) {\n localStorage.setItem('outlookAccessToken', data.accessToken);\n localStorage.setItem('outlookRefreshToken', data.refreshToken);\n localStorage.setItem('outlookExpiresAt', addSecondsToCurrentTimeUnix(data.expiresIn));\n return data.accessToken;\n } else {\n throw(new Error(\"Error: unable to get access token\"));\n }\n\n } catch (error) {\n console.error('Error refreshing access token:', error);\n return null;\n }\n };\n\n const login = () => {\n\n const baseUrl = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize';\n const clientId = process.env.REACT_APP_MSAL_API_CLIENT_ID;\n const responseType = 'code';\n const redirectUri = `${ConfigService.config.UNITY_URL}/aad_redirect`;\n const responseMode = 'query';\n const scope = [\n 'https://graph.microsoft.com/Calendars.ReadWrite',\n 'https://graph.microsoft.com/Calendars.ReadWrite.Shared',\n 'https://graph.microsoft.com/OnlineMeetingTranscript.Read.All',\n 'https://graph.microsoft.com/OnlineMeetings.Read',\n ].join('%20'); // Join scopes with URL-encoded space\n\n const authUrl = `${baseUrl}?client_id=${clientId}&response_type=${responseType}&redirect_uri=${redirectUri}&response_mode=${responseMode}&scope=${scope}&state=${callbackUri}`;\n openLoginPopup(authUrl)\n // window.location.href = authUrl;\n }\n\n\n function openLoginPopup(url) {\n var width = 600;\n var height = 600;\n var left = (screen.width - width) / 2;\n var top = (screen.height - height) / 2;\n var features = `width=${width},height=${height},top=${top},left=${left},status=no,toolbar=no,menubar=no,location=no`;\n\n var popup = window.open(url, 'LoginPopup', features);\n return popup;\n }\n function addSecondsToCurrentTimeUnix(seconds) {\n var now = new Date();\n now.setSeconds(now.getSeconds() + seconds);\n return now.getTime();\n }\n\n function isBeforeCurrentTime(unixTime) {\n var now = new Date().getTime();\n return unixTime < now;\n }\n\n const isUserSignedIn = () => {\n const accessToken = localStorage.getItem('outlookAccessToken');\n const refreshToken = localStorage.getItem('outlookRefreshToken');\n const expiresAt = localStorage.getItem('outlookExpiresAt');\n if (accessToken && refreshToken && expiresAt && !isBeforeCurrentTime(expiresAt)) {\n return true;\n } else {\n return false;\n }\n }\n\n useEffect(() => {\n const handleStorageChange = (event) => {\n if (event.key === 'outlookAccessToken') {\n onLogin();\n }\n };\n\n window.addEventListener('storage', handleStorageChange);\n\n // Clean up the event listener\n return () => {\n window.removeEventListener('storage', handleStorageChange);\n };\n }, []);\n return {getAccessToken, invalidateUserSession, login, isUserSignedIn};\n}\n","import { useUser } from '../utilities/auth/useUser';\n\nexport const useProductVersion = (productId) => {\n const user = useUser();\n\n const matchingProduct = user?.products?.find(\n (product) => product?.productId === productId\n );\n\n return matchingProduct?.currentProductVersionId || '';\n};\n","import React, { useMemo } from 'react'\nimport {DateTime} from 'luxon'\n\n// TODO: tie in datetime config at the user or tenant level\n\nexport interface UseDateLocaleReturn {\n convertISOStringToLocalDateTime: (date: string) => string | null;\n convertISOStringToLocalDate: (date: string) => string | null;\n getISODate: () => string;\n}\n\nexport const useDateLocale = (\n datetimeFormatOptions : Intl.DateTimeFormatOptions | null = null,\n locale: string | null = null\n): UseDateLocaleReturn => {\n\n const dateTimeOptions: Intl.DateTimeFormatOptions = useMemo(() => (datetimeFormatOptions ?? {\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n hour12: true,\n }), [datetimeFormatOptions]);\n\n const localeString: string = useMemo(() => locale ?? navigator.language,[locale]);\n\n const convertISOStringToLocalDateTime = (date: string): string | null => {\n const luxonDateTime = DateTime.fromISO(date, {zone: 'utc'});\n luxonDateTime.setZone(dateTimeOptions.timeZone);\n\n luxonDateTime.setLocale(localeString);\n\n if(!luxonDateTime.isValid)\n {\n return null;\n }\n return luxonDateTime.toLocaleString(dateTimeOptions);\n\n }\n\n const convertISOStringToLocalDate = (date: string): string | null => {\n const luxonDateTime = DateTime.fromISO(date);\n luxonDateTime.setZone(dateTimeOptions.timeZone);\n\n luxonDateTime.setLocale(localeString);\n if(!luxonDateTime.isValid)\n {\n return null;\n }\n const { hour, minute, ...dateOptions} = dateTimeOptions;\n return luxonDateTime.toLocaleString(dateOptions);\n }\n\n const getISODate = ():string => {\n return DateTime.now().toISO({includeOffset:true, suppressMilliseconds: true})\n }\n\n return {\n convertISOStringToLocalDateTime: convertISOStringToLocalDateTime,\n convertISOStringToLocalDate: convertISOStringToLocalDate,\n getISODate: getISODate\n };\n}\n","import { useCallback } from 'react';\nimport { useWorkflowStore } from '../stores/workflowStore';\n\nexport const useWorkflow = () => {\n const { updateTaskDataMap } = useWorkflowStore();\n\n const setWorkflowTaskPageData = useCallback(\n (taskId, pageId, data) => {\n updateTaskDataMap(taskId, pageId, data);\n },\n [updateTaskDataMap]\n );\n\n return {\n setWorkflowTaskPageData\n };\n};\n","import { useEffect, useState, useCallback, useRef } from 'react';\nimport { useUser } from '../utilities/auth/useUser';\nimport { ConfigService } from '../configService';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport {useShellStore} from '../stores/shellStore';\n\n// Global cache to store preloaded modules (persists across component re-renders)\n// This prevents re-fetching modules when navigating to pages\nconst preloadedModulesCache = new Map();\n\n/**\n * Custom hook to preload all pages for a product.\n * This eliminates sequential server calls when navigating to /page/<id>\n * by fetching all page metadata in a single API call on mount.\n * After fetching metadata, it preloads the actual widget modules in the background.\n *\n * @param {Function} getWidget - Function to load widget modules\n * @returns {Object} - { pages, loading, error, refetch, preloadingWidgets }\n */\nexport const usePreloadPages = () => {\n const user = useUser();\n const [preloadingWidgets, setPreloadingWidgets] = useState(false);\n const [preloadedWidgets, setPreloadedWidgets] = useState(new Set());\n const { getWidget } = useShellStore();\n const preloadingRef = useRef(false); // Prevent duplicate preloading\n\n\n // Build the query parameters for the pages endpoint\n const queryParams = `page/product/${ConfigService.config.UNITY_PRODUCT_ID}?includeUdpPages=true`;\n\n // Fetch pages data - manual is true if user is not available\n const [{ data: pages, loading, error }, refetch] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n queryParams,\n {},\n !!!user?.id || !!!user?.currentTenantId, // Skip if user info not available\n false // Don't use cache for fresh data\n );\n\n // Preload widget modules in the background after pages are fetched\n useEffect(() => {\n if (!pages || pages.length === 0 || !getWidget || preloadingRef.current) {\n return;\n }\n\n // Background preloading function\n const preloadWidgets = async () => {\n preloadingRef.current = true;\n setPreloadingWidgets(true);\n\n // Collect all unique widget types from all pages\n const widgetTypes = new Set();\n\n for (const page of pages) {\n try {\n // Parse the widgets field which contains JSON string\n if (page.widgets) {\n // The widgets field is a JSON object where the key is the pageId\n // and the value is a JSON string containing an array of widgets\n const widgetsObj = JSON.parse(page.widgets);\n const widgetsJson = widgetsObj[page.pageId];\n\n if (widgetsJson) {\n const widgetsList = JSON.parse(widgetsJson);\n\n // Extract widget types from the array\n if (Array.isArray(widgetsList)) {\n widgetsList.forEach(widget => {\n if (widget.widgetType && widget.widgetType !== '0') {\n widgetTypes.add(widget.widgetType);\n }\n });\n }\n }\n }\n } catch (error) {\n console.warn(`Failed to parse widgets for page ${page.name || page.pageId}:`, error);\n }\n }\n\n // Iterate through unique widget types and preload each module\n for (const widgetType of widgetTypes) {\n // Skip if already preloaded or no valid widget type\n if (!widgetType || preloadedWidgets.has(widgetType) || preloadedModulesCache.has(widgetType)) {\n continue;\n }\n\n try {\n // Call getWidget in the background to preload the module\n const lazyComponent = await getWidget(widgetType);\n\n // If it's a React.lazy component, we need to resolve its internal promise\n // React.lazy components have a _payload that stores the loading state\n if (lazyComponent && typeof lazyComponent === 'object' && lazyComponent._payload) {\n const payload = lazyComponent._payload;\n\n // Check if the payload is still pending (status: -1 = pending, 0 = error, 1 = success)\n if (payload._status === undefined || payload._status === -1) {\n // The module hasn't been loaded yet - trigger the import\n if (typeof payload._result === 'function') {\n // _result is the import() function - call it\n try {\n const module = await payload._result();\n // Update the lazy component's internal state\n payload._status = 1; // Success\n payload._result = module;\n console.log(widgetType, module);\n preloadedModulesCache.set(widgetType, module);\n console.log(`✓ Preloaded and cached: ${widgetType}`);\n } catch (err) {\n payload._status = 0; // Error\n payload._result = err;\n throw err;\n }\n }\n } else if (payload._status === 1) {\n // Already loaded - just cache it\n preloadedModulesCache.set(widgetType, payload._result);\n console.log(`✓ Already loaded: ${widgetType}`);\n }\n }\n\n // Mark as preloaded\n setPreloadedWidgets((prev) => new Set([...prev, widgetType]));\n } catch (error) {\n // Silently fail - don't want to block or show errors for background preloading\n console.warn(`✗ Failed to preload widget: ${widgetType}`, error);\n }\n }\n\n setPreloadingWidgets(false);\n };\n\n // Run preloading in background without blocking\n preloadWidgets();\n }, [pages, getWidget, preloadedWidgets]);\n\n /**\n * Helper function to find a page by ID from the preloaded pages\n * @param {string} pageId - The page ID to search for\n * @returns {Object|undefined} - The page object if found\n */\n const getPageById = useCallback(\n (pageId) => {\n if (!pages || !Array.isArray(pages)) return undefined;\n return pages.find((page) => page.pageId === pageId || page.id === pageId);\n },\n [pages]\n );\n\n /**\n * Helper function to check if a page name is valid (exists in preloaded pages)\n * @param {string} pageName - The page name to check\n * @returns {boolean} - True if the page name exists\n */\n const isValidPageName = useCallback(\n (pageName) => {\n if (!pages || !Array.isArray(pages)) return false;\n return pages.some(\n (page) => page.name === pageName || page.componentName === pageName\n );\n },\n [pages]\n );\n\n /**\n * Check if a module has been preloaded and cached\n * @param {string} pageName - The page/widget name\n * @returns {boolean} - True if the module is cached\n */\n const isModulePreloaded = useCallback(\n (pageName) => preloadedModulesCache.has(pageName),\n []\n );\n\n /**\n * Get a preloaded module from cache (if available)\n * @param {string} pageName - The page/widget name\n * @returns {Object|undefined} - The cached module or undefined\n */\n const getPreloadedModule = useCallback(\n (pageName) => preloadedModulesCache.get(pageName),\n []\n );\n\n return {\n pages,\n loading,\n error,\n refetch,\n getPageById,\n isValidPageName,\n preloadingWidgets,\n preloadedCount: preloadedWidgets.size,\n isModulePreloaded,\n getPreloadedModule,\n // Expose the cache for debugging\n _cache: preloadedModulesCache\n };\n};\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"hooks-CxLP2j70.js","names":["dateTimeOptions: Intl.DateTimeFormatOptions","localeString: string","error"],"sources":["../src/hooks/useOutlook.js","../src/hooks/useProductVersion.js","../src/hooks/useDateLocale.ts","../src/hooks/useWorkflow.js","../src/hooks/usePreloadPages.js"],"sourcesContent":["import { apiMutate } from '../utilities/useAxiosMutate';\nimport { useEffect } from 'react';\nimport { ConfigService } from '../configService';\n\nexport const useOutlook = (callbackUri, onLogin) => {\n\n const invalidateUserSession = async () => {\n try {\n // if (ConfigService.integrationV2ApiUrl === undefined) {\n // throw new Error('REACT_APP_INTEGRATION_V2_API_BASE is undefined')\n // }\n // const accessToken = localStorage.getItem('outlookAccessToken');\n // const response = await apiMutate(\n // ConfigService.integrationV2ApiUrl,\n // `OutlookIntegrationAccessToken/invalidateUserSession`,\n // {\n // method: \"post\",\n // headers : {\n // OutlookAccessToken: accessToken\n // }\n // }\n // )\n\n } catch (error) {\n console.error('Error refreshing access token:', error);\n return null;\n // }\n } finally {\n try {\n localStorage.removeItem('outlookAccessToken');\n } catch (error) {\n console.error('Error removing accessToken:', error);\n }\n\n try {\n localStorage.removeItem('outlookRefreshToken');\n } catch (error) {\n console.error('Error removing refreshToken:', error);\n }\n\n try {\n localStorage.removeItem('outlookExpiresAt');\n } catch (error) {\n console.error('Error removing expiresAt:', error);\n }\n\n }\n }\n\n const getAccessToken = async () => {\n let accessToken = localStorage.getItem('outlookAccessToken');\n\n if (!accessToken) {\n throw(new Error(\"No access token found\"));\n }\n\n const expiresAt = localStorage.getItem('outlookExpiresAt');\n if (expiresAt && !isBeforeCurrentTime(expiresAt)) {\n return accessToken;\n }\n\n const refreshToken = localStorage.getItem('outlookRefreshToken');\n if (!refreshToken) {\n throw(new Error(\"No refresh token found\"));\n }\n\n try {\n if (ConfigService.integrationV2ApiUrl === undefined) {\n throw new Error('REACT_APP_INTEGRATION_V2_API_BASE is undefined')\n }\n const response = await apiMutate(\n ConfigService.integrationV2ApiUrl,\n `OutlookIntegrationAccessToken/getAccessToken`,\n {\n method: \"post\",\n data: {\n option: \"refresh_token\",\n value: refreshToken,\n redirectUri: ConfigService.config.UNITY_URL + \"/aad_redirect\"\n }\n }\n )\n const data = response.data;\n if (data.accessToken != null && data.refreshToken != null && data.expiresIn != null) {\n localStorage.setItem('outlookAccessToken', data.accessToken);\n localStorage.setItem('outlookRefreshToken', data.refreshToken);\n localStorage.setItem('outlookExpiresAt', addSecondsToCurrentTimeUnix(data.expiresIn));\n return data.accessToken;\n } else {\n throw(new Error(\"Error: unable to get access token\"));\n }\n\n } catch (error) {\n console.error('Error refreshing access token:', error);\n return null;\n }\n };\n\n const login = () => {\n\n const baseUrl = 'https://login.microsoftonline.com/common/oauth2/v2.0/authorize';\n const clientId = process.env.REACT_APP_MSAL_API_CLIENT_ID;\n const responseType = 'code';\n const redirectUri = `${ConfigService.config.UNITY_URL}/aad_redirect`;\n const responseMode = 'query';\n const scope = [\n 'https://graph.microsoft.com/Calendars.ReadWrite',\n 'https://graph.microsoft.com/Calendars.ReadWrite.Shared',\n 'https://graph.microsoft.com/OnlineMeetingTranscript.Read.All',\n 'https://graph.microsoft.com/OnlineMeetings.Read',\n ].join('%20'); // Join scopes with URL-encoded space\n\n const authUrl = `${baseUrl}?client_id=${clientId}&response_type=${responseType}&redirect_uri=${redirectUri}&response_mode=${responseMode}&scope=${scope}&state=${callbackUri}`;\n openLoginPopup(authUrl)\n // window.location.href = authUrl;\n }\n\n\n function openLoginPopup(url) {\n var width = 600;\n var height = 600;\n var left = (screen.width - width) / 2;\n var top = (screen.height - height) / 2;\n var features = `width=${width},height=${height},top=${top},left=${left},status=no,toolbar=no,menubar=no,location=no`;\n\n var popup = window.open(url, 'LoginPopup', features);\n return popup;\n }\n function addSecondsToCurrentTimeUnix(seconds) {\n var now = new Date();\n now.setSeconds(now.getSeconds() + seconds);\n return now.getTime();\n }\n\n function isBeforeCurrentTime(unixTime) {\n var now = new Date().getTime();\n return unixTime < now;\n }\n\n const isUserSignedIn = () => {\n const accessToken = localStorage.getItem('outlookAccessToken');\n const refreshToken = localStorage.getItem('outlookRefreshToken');\n const expiresAt = localStorage.getItem('outlookExpiresAt');\n if (accessToken && refreshToken && expiresAt && !isBeforeCurrentTime(expiresAt)) {\n return true;\n } else {\n return false;\n }\n }\n\n useEffect(() => {\n const handleStorageChange = (event) => {\n if (event.key === 'outlookAccessToken') {\n onLogin();\n }\n };\n\n window.addEventListener('storage', handleStorageChange);\n\n // Clean up the event listener\n return () => {\n window.removeEventListener('storage', handleStorageChange);\n };\n }, []);\n return {getAccessToken, invalidateUserSession, login, isUserSignedIn};\n}\n","import { useUser } from '../utilities/auth/useUser';\n\nexport const useProductVersion = (productId) => {\n const user = useUser();\n\n const matchingProduct = user?.products?.find(\n (product) => product?.productId === productId\n );\n\n return matchingProduct?.currentProductVersionId || '';\n};\n","import React, { useMemo } from 'react'\nimport {DateTime} from 'luxon'\n\n// TODO: tie in datetime config at the user or tenant level\n\nexport interface UseDateLocaleReturn {\n convertISOStringToLocalDateTime: (date: string) => string | null;\n convertISOStringToLocalDate: (date: string) => string | null;\n getISODate: () => string;\n}\n\nexport const useDateLocale = (\n datetimeFormatOptions : Intl.DateTimeFormatOptions | null = null,\n locale: string | null = null\n): UseDateLocaleReturn => {\n\n const dateTimeOptions: Intl.DateTimeFormatOptions = useMemo(() => (datetimeFormatOptions ?? {\n timeZone: Intl.DateTimeFormat().resolvedOptions().timeZone,\n year: 'numeric',\n month: 'short',\n day: 'numeric',\n hour: 'numeric',\n minute: 'numeric',\n hour12: true,\n }), [datetimeFormatOptions]);\n\n const localeString: string = useMemo(() => locale ?? navigator.language,[locale]);\n\n const convertISOStringToLocalDateTime = (date: string): string | null => {\n const luxonDateTime = DateTime.fromISO(date, {zone: 'utc'});\n luxonDateTime.setZone(dateTimeOptions.timeZone);\n\n luxonDateTime.setLocale(localeString);\n\n if(!luxonDateTime.isValid)\n {\n return null;\n }\n return luxonDateTime.toLocaleString(dateTimeOptions);\n\n }\n\n const convertISOStringToLocalDate = (date: string): string | null => {\n const luxonDateTime = DateTime.fromISO(date);\n luxonDateTime.setZone(dateTimeOptions.timeZone);\n\n luxonDateTime.setLocale(localeString);\n if(!luxonDateTime.isValid)\n {\n return null;\n }\n const { hour, minute, ...dateOptions} = dateTimeOptions;\n return luxonDateTime.toLocaleString(dateOptions);\n }\n\n const getISODate = ():string => {\n return DateTime.now().toISO({includeOffset:true, suppressMilliseconds: true})\n }\n\n return {\n convertISOStringToLocalDateTime: convertISOStringToLocalDateTime,\n convertISOStringToLocalDate: convertISOStringToLocalDate,\n getISODate: getISODate\n };\n}\n","import { useCallback } from 'react';\nimport { useWorkflowStore } from '../stores/workflowStore';\n\nexport const useWorkflow = () => {\n const { updateTaskDataMap } = useWorkflowStore();\n\n const setWorkflowTaskPageData = useCallback(\n (taskId, pageId, data) => {\n updateTaskDataMap(taskId, pageId, data);\n },\n [updateTaskDataMap]\n );\n\n return {\n setWorkflowTaskPageData\n };\n};\n","import { useEffect, useState, useCallback, useRef } from 'react';\nimport { useUser } from '../utilities/auth/useUser';\nimport { ConfigService } from '../configService';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport {useShellStore} from '../stores/shellStore';\n\n// Global cache to store preloaded modules (persists across component re-renders)\n// This prevents re-fetching modules when navigating to pages\nconst preloadedModulesCache = new Map();\n\n/**\n * Custom hook to preload all pages for a product.\n * This eliminates sequential server calls when navigating to /page/<id>\n * by fetching all page metadata in a single API call on mount.\n * After fetching metadata, it preloads the actual widget modules in the background.\n *\n * @param {Function} getWidget - Function to load widget modules\n * @returns {Object} - { pages, loading, error, refetch, preloadingWidgets }\n */\nexport const usePreloadPages = () => {\n const user = useUser();\n const [preloadingWidgets, setPreloadingWidgets] = useState(false);\n const [preloadedWidgets, setPreloadedWidgets] = useState(new Set());\n const { getWidget } = useShellStore();\n const preloadingRef = useRef(false); // Prevent duplicate preloading\n\n\n // Build the query parameters for the pages endpoint\n const queryParams = `page/product/${ConfigService.config.UNITY_PRODUCT_ID}?includeUdpPages=true`;\n\n // Fetch pages data - manual is true if user is not available\n const [{ data: pages, loading, error }, refetch] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n queryParams,\n {},\n !!!user?.id || !!!user?.currentTenantId, // Skip if user info not available\n false // Don't use cache for fresh data\n );\n\n // Preload widget modules in the background after pages are fetched\n useEffect(() => {\n if (!pages || pages.length === 0 || !getWidget || preloadingRef.current) {\n return;\n }\n\n // Background preloading function\n const preloadWidgets = async () => {\n preloadingRef.current = true;\n setPreloadingWidgets(true);\n\n // Collect all unique widget types from all pages\n const widgetTypes = new Set();\n\n for (const page of pages) {\n try {\n // Parse the widgets field which contains JSON string\n if (page.widgets) {\n // The widgets field is a JSON object where the key is the pageId\n // and the value is a JSON string containing an array of widgets\n const widgetsObj = JSON.parse(page.widgets);\n const widgetsJson = widgetsObj[page.pageId];\n\n if (widgetsJson) {\n const widgetsList = JSON.parse(widgetsJson);\n\n // Extract widget types from the array\n if (Array.isArray(widgetsList)) {\n widgetsList.forEach(widget => {\n if (widget.widgetType && widget.widgetType !== '0') {\n widgetTypes.add(widget.widgetType);\n }\n });\n }\n }\n }\n } catch (error) {\n console.warn(`Failed to parse widgets for page ${page.name || page.pageId}:`, error);\n }\n }\n\n // Iterate through unique widget types and preload each module\n for (const widgetType of widgetTypes) {\n // Skip if already preloaded or no valid widget type\n if (!widgetType || preloadedWidgets.has(widgetType) || preloadedModulesCache.has(widgetType)) {\n continue;\n }\n\n try {\n // Call getWidget in the background to preload the module\n const lazyComponent = await getWidget(widgetType);\n\n // If it's a React.lazy component, we need to resolve its internal promise\n // React.lazy components have a _payload that stores the loading state\n if (lazyComponent && typeof lazyComponent === 'object' && lazyComponent._payload) {\n const payload = lazyComponent._payload;\n\n // Check if the payload is still pending (status: -1 = pending, 0 = error, 1 = success)\n if (payload._status === undefined || payload._status === -1) {\n // The module hasn't been loaded yet - trigger the import\n if (typeof payload._result === 'function') {\n // _result is the import() function - call it\n try {\n const module = await payload._result();\n // Update the lazy component's internal state\n payload._status = 1; // Success\n payload._result = module;\n console.log(widgetType, module);\n preloadedModulesCache.set(widgetType, module);\n console.log(`✓ Preloaded and cached: ${widgetType}`);\n } catch (err) {\n payload._status = 0; // Error\n payload._result = err;\n throw err;\n }\n }\n } else if (payload._status === 1) {\n // Already loaded - just cache it\n preloadedModulesCache.set(widgetType, payload._result);\n console.log(`✓ Already loaded: ${widgetType}`);\n }\n }\n\n // Mark as preloaded\n setPreloadedWidgets((prev) => new Set([...prev, widgetType]));\n } catch (error) {\n // Silently fail - don't want to block or show errors for background preloading\n console.warn(`✗ Failed to preload widget: ${widgetType}`, error);\n }\n }\n\n setPreloadingWidgets(false);\n };\n\n // Run preloading in background without blocking\n preloadWidgets();\n }, [pages, getWidget, preloadedWidgets]);\n\n /**\n * Helper function to find a page by ID from the preloaded pages\n * @param {string} pageId - The page ID to search for\n * @returns {Object|undefined} - The page object if found\n */\n const getPageById = useCallback(\n (pageId) => {\n if (!pages || !Array.isArray(pages)) return undefined;\n return pages.find((page) => page.pageId === pageId || page.id === pageId);\n },\n [pages]\n );\n\n /**\n * Helper function to check if a page name is valid (exists in preloaded pages)\n * @param {string} pageName - The page name to check\n * @returns {boolean} - True if the page name exists\n */\n const isValidPageName = useCallback(\n (pageName) => {\n if (!pages || !Array.isArray(pages)) return false;\n return pages.some(\n (page) => page.name === pageName || page.componentName === pageName\n );\n },\n [pages]\n );\n\n /**\n * Check if a module has been preloaded and cached\n * @param {string} pageName - The page/widget name\n * @returns {boolean} - True if the module is cached\n */\n const isModulePreloaded = useCallback(\n (pageName) => preloadedModulesCache.has(pageName),\n []\n );\n\n /**\n * Get a preloaded module from cache (if available)\n * @param {string} pageName - The page/widget name\n * @returns {Object|undefined} - The cached module or undefined\n */\n const getPreloadedModule = useCallback(\n (pageName) => preloadedModulesCache.get(pageName),\n []\n );\n\n return {\n pages,\n loading,\n error,\n refetch,\n getPageById,\n isValidPageName,\n preloadingWidgets,\n preloadedCount: preloadedWidgets.size,\n isModulePreloaded,\n getPreloadedModule,\n // Expose the cache for debugging\n _cache: preloadedModulesCache\n };\n};\n"],"mappings":"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"}
|