udp-react-enterprise-component-library 25.18.1-beta.40 → 25.18.1-beta.42

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.
Files changed (370) hide show
  1. package/dist/{AadCallback-DL4V3BBL.js → AadCallback-DI_SnmOU.js} +1 -1
  2. package/dist/{AadCallback-DL4V3BBL.js.map → AadCallback-DI_SnmOU.js.map} +1 -1
  3. package/dist/{ActionProvider-2AAAOm9H.js → ActionProvider-C_rohJIr.js} +2 -2
  4. package/dist/{ActionProvider-2AAAOm9H.js.map → ActionProvider-C_rohJIr.js.map} +1 -1
  5. package/dist/{ActionSplitScreen-DeU-9YQb.js → ActionSplitScreen-OFqIncG9.js} +3 -3
  6. package/dist/{ActionSplitScreen-DeU-9YQb.js.map → ActionSplitScreen-OFqIncG9.js.map} +1 -1
  7. package/dist/{ActionWrapper-Btbpz4rx.js → ActionWrapper-d9dIOSYB.js} +4 -4
  8. package/dist/{ActionWrapper-Btbpz4rx.js.map → ActionWrapper-d9dIOSYB.js.map} +1 -1
  9. package/dist/{AmChart-BM2HoPa4.js → AmChart-WvmHsOdz.js} +1 -1
  10. package/dist/{AmChart-BM2HoPa4.js.map → AmChart-WvmHsOdz.js.map} +1 -1
  11. package/dist/{AmbientSingleDateSelector-BQY1Nals.js → AmbientSingleDateSelector-8uylQ-tc.js} +1 -1
  12. package/dist/{AmbientSingleDateSelector-BQY1Nals.js.map → AmbientSingleDateSelector-8uylQ-tc.js.map} +1 -1
  13. package/dist/{AmbientVisualizationCard-Dig-Mh_G.js → AmbientVisualizationCard-Cov8RODG.js} +3 -3
  14. package/dist/{AmbientVisualizationCard-Dig-Mh_G.js.map → AmbientVisualizationCard-Cov8RODG.js.map} +1 -1
  15. package/dist/{AmbientVisualizer-B1Xwwe0J.js → AmbientVisualizer-Bo7NLGfw.js} +1 -1
  16. package/dist/{AmbientVisualizer-B1Xwwe0J.js.map → AmbientVisualizer-Bo7NLGfw.js.map} +1 -1
  17. package/dist/{BarChartWidget-Dwav8_8e.js → BarChartWidget-D-_ZVpMh.js} +1 -1
  18. package/dist/{BarChartWidget-Dwav8_8e.js.map → BarChartWidget-D-_ZVpMh.js.map} +1 -1
  19. package/dist/{BaseTreeMenu-koW5kjhb.js → BaseTreeMenu-nKjw3cil.js} +2 -2
  20. package/dist/{BaseTreeMenu-koW5kjhb.js.map → BaseTreeMenu-nKjw3cil.js.map} +1 -1
  21. package/dist/{BubbleWidget-CsIheJTW.js → BubbleWidget-SplMEBJm.js} +2 -2
  22. package/dist/{BubbleWidget-CsIheJTW.js.map → BubbleWidget-SplMEBJm.js.map} +1 -1
  23. package/dist/{CardList-BPNGTxsh.js → CardList-B_F1Qgqh.js} +1 -1
  24. package/dist/{CardList-BPNGTxsh.js.map → CardList-B_F1Qgqh.js.map} +1 -1
  25. package/dist/{CircleButton-cl6mmDmn.js → CircleButton-B9JAMG53.js} +2 -2
  26. package/dist/{CircleButton-cl6mmDmn.js.map → CircleButton-B9JAMG53.js.map} +1 -1
  27. package/dist/{ContentContainer-DmKz5kvq.js → ContentContainer-DuDrf5lL.js} +1 -1
  28. package/dist/{ContentContainer-DmKz5kvq.js.map → ContentContainer-DuDrf5lL.js.map} +1 -1
  29. package/dist/{DataBrowserContainer-DPB12XVR.js → DataBrowserContainer-DZGhEt9N.js} +3 -3
  30. package/dist/{DataBrowserContainer-DPB12XVR.js.map → DataBrowserContainer-DZGhEt9N.js.map} +1 -1
  31. package/dist/{DateTrendWidget-DzqqUeZv.js → DateTrendWidget-F6hBnYej.js} +1 -1
  32. package/dist/{DateTrendWidget-DzqqUeZv.js.map → DateTrendWidget-F6hBnYej.js.map} +1 -1
  33. package/dist/{DensePlotWidget-CsRmVbqu.js → DensePlotWidget-BEhHNh53.js} +1 -1
  34. package/dist/{DensePlotWidget-CsRmVbqu.js.map → DensePlotWidget-BEhHNh53.js.map} +1 -1
  35. package/dist/{Directory-CoEKdRkU.js → Directory-CFTCLxWZ.js} +1 -1
  36. package/dist/{Directory-CoEKdRkU.js.map → Directory-CFTCLxWZ.js.map} +1 -1
  37. package/dist/{EntityHeader-CuiVOsA7.js → EntityHeader-D_gYzj76.js} +2 -2
  38. package/dist/{EntityHeader-CuiVOsA7.js.map → EntityHeader-D_gYzj76.js.map} +1 -1
  39. package/dist/{FieldArrayCard-CgM6q87c.js → FieldArrayCard-Bv9h9akG.js} +1 -1
  40. package/dist/{FieldArrayCard-CgM6q87c.js.map → FieldArrayCard-Bv9h9akG.js.map} +1 -1
  41. package/dist/{FileUpload-t3PZx_yE.js → FileUpload-BCxrOds_.js} +1 -1
  42. package/dist/{FileUpload-t3PZx_yE.js.map → FileUpload-BCxrOds_.js.map} +1 -1
  43. package/dist/{FluentCardHeader-CRJaqkV3.js → FluentCardHeader-BdMB2qzK.js} +1 -1
  44. package/dist/{FluentCardHeader-CRJaqkV3.js.map → FluentCardHeader-BdMB2qzK.js.map} +1 -1
  45. package/dist/{FluentCell-C1d53Ct2.js → FluentCell-D2lpxw4O.js} +2 -2
  46. package/dist/{FluentCell-C1d53Ct2.js.map → FluentCell-D2lpxw4O.js.map} +1 -1
  47. package/dist/{FluentDataTable-C1rFIP0M.js → FluentDataTable-ChpZUwal.js} +2 -2
  48. package/dist/{FluentDataTable-C1rFIP0M.js.map → FluentDataTable-ChpZUwal.js.map} +1 -1
  49. package/dist/{FluentLink-D-gKioCQ.js → FluentLink-DP2eDAH2.js} +1 -1
  50. package/dist/{FluentLink-D-gKioCQ.js.map → FluentLink-DP2eDAH2.js.map} +1 -1
  51. package/dist/{FluentRadioGroup-Cfldr9dO.js → FluentRadioGroup-CCKelZVk.js} +1 -1
  52. package/dist/{FluentRadioGroup-Cfldr9dO.js.map → FluentRadioGroup-CCKelZVk.js.map} +1 -1
  53. package/dist/{FluentSelectMenu-BEREJbe-.js → FluentSelectMenu-yQMFZWEg.js} +1 -1
  54. package/dist/{FluentSelectMenu-BEREJbe-.js.map → FluentSelectMenu-yQMFZWEg.js.map} +1 -1
  55. package/dist/{FluentSimpleSelect-Djff-up8.js → FluentSimpleSelect-DxxbQV37.js} +2 -2
  56. package/dist/{FluentSimpleSelect-Djff-up8.js.map → FluentSimpleSelect-DxxbQV37.js.map} +1 -1
  57. package/dist/{FluentTimeline-D8sfgLj1.js → FluentTimeline-BEPJHsgi.js} +1 -1
  58. package/dist/{FluentTimeline-D8sfgLj1.js.map → FluentTimeline-BEPJHsgi.js.map} +1 -1
  59. package/dist/{GraphCard-Dv4a99wo.js → GraphCard-CcXwOERk.js} +1 -1
  60. package/dist/{GraphCard-Dv4a99wo.js.map → GraphCard-CcXwOERk.js.map} +1 -1
  61. package/dist/{IconKey-D7fZ_U4O.js → IconKey-CbK8_rol.js} +1 -1
  62. package/dist/{IconKey-D7fZ_U4O.js.map → IconKey-CbK8_rol.js.map} +1 -1
  63. package/dist/{IconRenderer-B6ZoqrTX.js → IconRenderer-JdCm70xC.js} +2 -2
  64. package/dist/{IconRenderer-B6ZoqrTX.js.map → IconRenderer-JdCm70xC.js.map} +1 -1
  65. package/dist/Inquiry-C1q14Yyd.js +3 -0
  66. package/dist/{Inquiry-CeZgX9ls.js → Inquiry-Cjz91wf_.js} +7 -7
  67. package/dist/{Inquiry-CeZgX9ls.js.map → Inquiry-Cjz91wf_.js.map} +1 -1
  68. package/dist/{InquirySearchContainer-BIpngula.js → InquirySearchContainer-BnHwUWFC.js} +2 -2
  69. package/dist/{InquirySearchContainer-BIpngula.js.map → InquirySearchContainer-BnHwUWFC.js.map} +1 -1
  70. package/dist/{LineAndSparklinesWidget-B7U_tk1Y.js → LineAndSparklinesWidget-KVAnvpKl.js} +1 -1
  71. package/dist/{LineAndSparklinesWidget-B7U_tk1Y.js.map → LineAndSparklinesWidget-KVAnvpKl.js.map} +1 -1
  72. package/dist/{LineGraphWidget-vAqCb_aI.js → LineGraphWidget-CYjLiV5B.js} +1 -1
  73. package/dist/{LineGraphWidget-vAqCb_aI.js.map → LineGraphWidget-CYjLiV5B.js.map} +1 -1
  74. package/dist/{MenuPage-CkV002Ni.js → MenuPage-BS8ti9lx.js} +3 -3
  75. package/dist/{MenuPage-CkV002Ni.js.map → MenuPage-BS8ti9lx.js.map} +1 -1
  76. package/dist/MenuPage-DV20TjmL.js +3 -0
  77. package/dist/{MttMainTimeline-DIzQDgmK.js → MttMainTimeline-nusYDWg_.js} +2 -2
  78. package/dist/{MttMainTimeline-DIzQDgmK.js.map → MttMainTimeline-nusYDWg_.js.map} +1 -1
  79. package/dist/{MttSummary-Ctibq7Eu.js → MttSummary-DWESRW7k.js} +3 -3
  80. package/dist/{MttSummary-Ctibq7Eu.js.map → MttSummary-DWESRW7k.js.map} +1 -1
  81. package/dist/MyExportsPage-B3A6lwaV.js +3 -0
  82. package/dist/{MyExportsPage-DAYh16lE.js → MyExportsPage-BwcVZASe.js} +3 -3
  83. package/dist/{MyExportsPage-DAYh16lE.js.map → MyExportsPage-BwcVZASe.js.map} +1 -1
  84. package/dist/{NewsCard-C3y9a_OJ.js → NewsCard-Y-exMCuK.js} +1 -1
  85. package/dist/{NewsCard-C3y9a_OJ.js.map → NewsCard-Y-exMCuK.js.map} +1 -1
  86. package/dist/{Notes-UkwV2z4D.js → Notes-i2G6Ugsq.js} +1 -1
  87. package/dist/{Notes-UkwV2z4D.js.map → Notes-i2G6Ugsq.js.map} +1 -1
  88. package/dist/{NotesScreen-Xj0vl0v1.js → NotesScreen-DE3fhpjW.js} +4 -4
  89. package/dist/{NotesScreen-Xj0vl0v1.js.map → NotesScreen-DE3fhpjW.js.map} +1 -1
  90. package/dist/{OutlookCallback-ClSfPtyN.js → OutlookCallback-teOtztm6.js} +1 -1
  91. package/dist/{OutlookCallback-ClSfPtyN.js.map → OutlookCallback-teOtztm6.js.map} +1 -1
  92. package/dist/{PageActionWrapper-DonuC2VZ.js → PageActionWrapper-C-irIPLE.js} +2 -2
  93. package/dist/{PageActionWrapper-DonuC2VZ.js.map → PageActionWrapper-C-irIPLE.js.map} +1 -1
  94. package/dist/{PageNotFoundRoute-BfkErQJB.js → PageNotFoundRoute-B_mbfK8s.js} +1 -1
  95. package/dist/{PageNotFoundRoute-dmLyzuH3.js → PageNotFoundRoute-i_Tf23jB.js} +1 -1
  96. package/dist/{PageNotFoundRoute-dmLyzuH3.js.map → PageNotFoundRoute-i_Tf23jB.js.map} +1 -1
  97. package/dist/{PaymentForm-jJcVd3Du.js → PaymentForm-BTLh5bXJ.js} +3 -3
  98. package/dist/{PaymentForm-jJcVd3Du.js.map → PaymentForm-BTLh5bXJ.js.map} +1 -1
  99. package/dist/{RecentlyLoadedNodesTable-CIR8D1c4.js → RecentlyLoadedNodesTable-8WQBaAl4.js} +2 -2
  100. package/dist/{RecentlyLoadedNodesTable-CIR8D1c4.js.map → RecentlyLoadedNodesTable-8WQBaAl4.js.map} +1 -1
  101. package/dist/{RecentlyLoadedNodesWidget-D0lhioMn.js → RecentlyLoadedNodesWidget--NDwNQQF.js} +2 -2
  102. package/dist/{RecentlyLoadedNodesWidget-D0lhioMn.js.map → RecentlyLoadedNodesWidget--NDwNQQF.js.map} +1 -1
  103. package/dist/{RejectIcon-lx34XeEL.js → RejectIcon-CNSkW92y.js} +1 -1
  104. package/dist/{RejectIcon-lx34XeEL.js.map → RejectIcon-CNSkW92y.js.map} +1 -1
  105. package/dist/{RemindersCard-rF51zmWF.js → RemindersCard-CSJ8buYt.js} +2 -2
  106. package/dist/{RemindersCard-rF51zmWF.js.map → RemindersCard-CSJ8buYt.js.map} +1 -1
  107. package/dist/{RemindersScreen-Cg6_SGJI.js → RemindersScreen-CyT18piP.js} +4 -4
  108. package/dist/{RemindersScreen-Cg6_SGJI.js.map → RemindersScreen-CyT18piP.js.map} +1 -1
  109. package/dist/{RemindersWidget-BcLn4sdk.js → RemindersWidget-B3qlh8K-.js} +3 -3
  110. package/dist/{RemindersWidget-BcLn4sdk.js.map → RemindersWidget-B3qlh8K-.js.map} +1 -1
  111. package/dist/Reports-CLowSLq9.js +3 -0
  112. package/dist/{Reports-CxRaLcxr.js → Reports-Cz5Pl1rM.js} +1 -1
  113. package/dist/{Reports-CxRaLcxr.js.map → Reports-Cz5Pl1rM.js.map} +1 -1
  114. package/dist/{SearchServiceDatasource-CeBOfTB0.js → SearchServiceDatasource-BrfkHkEq.js} +2 -2
  115. package/dist/{SearchServiceDatasource-CeBOfTB0.js.map → SearchServiceDatasource-BrfkHkEq.js.map} +1 -1
  116. package/dist/{SearchUtilities-CNz302LN.js → SearchUtilities-B1TCyppF.js} +20 -2
  117. package/dist/SearchUtilities-B1TCyppF.js.map +1 -0
  118. package/dist/{Shell-9TXRPvXM.js → Shell-CAPPm490.js} +5 -5
  119. package/dist/{Shell-9TXRPvXM.js.map → Shell-CAPPm490.js.map} +1 -1
  120. package/dist/{ShortcutContentFinder-B66kZQLM.js → ShortcutContentFinder-DTkqEgtI.js} +2 -2
  121. package/dist/{ShortcutContentFinder-B66kZQLM.js.map → ShortcutContentFinder-DTkqEgtI.js.map} +1 -1
  122. package/dist/{SimpleTable-lLaKKBvn.js → SimpleTable-z8tz6B0B.js} +1 -1
  123. package/dist/{SimpleTable-lLaKKBvn.js.map → SimpleTable-z8tz6B0B.js.map} +1 -1
  124. package/dist/{SiteHeader-DUNj1MrC.js → SiteHeader-wIcmMhx9.js} +3 -3
  125. package/dist/{SiteHeader-DUNj1MrC.js.map → SiteHeader-wIcmMhx9.js.map} +1 -1
  126. package/dist/{SparsePlotWidget-Ct-6iTAs.js → SparsePlotWidget-B3wtNHo2.js} +1 -1
  127. package/dist/{SparsePlotWidget-Ct-6iTAs.js.map → SparsePlotWidget-B3wtNHo2.js.map} +1 -1
  128. package/dist/{Statistic-CllW32VF.js → Statistic-IWynWCev.js} +2 -2
  129. package/dist/{Statistic-CllW32VF.js.map → Statistic-IWynWCev.js.map} +1 -1
  130. package/dist/{StatusCellRenderer-CVOARrth.js → StatusCellRenderer-BuPuvngw.js} +1 -1
  131. package/dist/{StatusCellRenderer-CVOARrth.js.map → StatusCellRenderer-BuPuvngw.js.map} +1 -1
  132. package/dist/{TableContainer-CcBkqd33.js → TableContainer-CcHjtMCa.js} +2 -2
  133. package/dist/{TableContainer-CcBkqd33.js.map → TableContainer-CcHjtMCa.js.map} +1 -1
  134. package/dist/{TicketCard-IqCCKSc0.js → TicketCard-D-FtADsb.js} +1 -1
  135. package/dist/{TicketCard-IqCCKSc0.js.map → TicketCard-D-FtADsb.js.map} +1 -1
  136. package/dist/{TimelineCalendar-D7T32gIH.js → TimelineCalendar-Mi4baqsg.js} +1 -1
  137. package/dist/{TimelineCalendar-D7T32gIH.js.map → TimelineCalendar-Mi4baqsg.js.map} +1 -1
  138. package/dist/{TokenGroupItem-BK0dx4cD.js → TokenGroupItem-DKbm__Kc.js} +1 -1
  139. package/dist/{TokenGroupItem-BK0dx4cD.js.map → TokenGroupItem-DKbm__Kc.js.map} +1 -1
  140. package/dist/{TreeUtilities-kiPupulY.js → TreeUtilities-VCy2z4Qv.js} +2 -2
  141. package/dist/{TreeUtilities-kiPupulY.js.map → TreeUtilities-VCy2z4Qv.js.map} +1 -1
  142. package/dist/UI/accordion/index.js +1 -1
  143. package/dist/UI/dataDisplay/FluentDataTable/FluentCell/index.js +1 -1
  144. package/dist/UI/dataDisplay/FluentDataTable/index.js +1 -1
  145. package/dist/UI/dataDisplay/GraphCard/index.js +1 -1
  146. package/dist/UI/dataDisplay/calendar/index.js +1 -1
  147. package/dist/UI/dataDisplay/cardList/index.js +1 -1
  148. package/dist/UI/dataDisplay/directory/index.js +1 -1
  149. package/dist/UI/dataDisplay/entityHeader/index.js +1 -1
  150. package/dist/UI/dataDisplay/index.js +1 -1
  151. package/dist/UI/dataDisplay/map/index.js +1 -1
  152. package/dist/UI/dataDisplay/notes/index.js +1 -1
  153. package/dist/UI/dataDisplay/ticketCard/index.js +1 -1
  154. package/dist/UI/dataDisplay/visualization/amCharts/index.js +1 -1
  155. package/dist/UI/dataDisplay/visualization/index.js +1 -1
  156. package/dist/UI/fileViewer/index.js +1 -1
  157. package/dist/UI/forms/index.js +1 -1
  158. package/dist/UI/index.js +5 -5
  159. package/dist/UI/inputs/calendar/index.js +1 -1
  160. package/dist/UI/inputs/dateRangeSelector/index.js +1 -1
  161. package/dist/UI/inputs/fieldArrayCard/index.js +1 -1
  162. package/dist/UI/inputs/link/index.js +1 -1
  163. package/dist/UI/inputs/menus/index.js +2 -2
  164. package/dist/UI/inputs/radio/index.js +1 -1
  165. package/dist/UI/mapLayout/ui/index.js +1 -1
  166. package/dist/UI/surfaces/cards/chartDisplayCards/index.js +1 -1
  167. package/dist/UI/surfaces/cards/fluentCards/index.js +1 -1
  168. package/dist/UI/surfaces/cards/newsCard/index.js +1 -1
  169. package/dist/UI/surfaces/cards/workOrderCard/index.js +1 -1
  170. package/dist/UI/templates/calendar/index.js +1 -1
  171. package/dist/UI/templates/deprecated/UdpGridTemplate/index.js +1 -1
  172. package/dist/UI/templates/ui/index.js +1 -1
  173. package/dist/UI/templates/ui/renderers/index.js +2 -2
  174. package/dist/UI/timeline/fluentTimeline/index.js +1 -1
  175. package/dist/UI/timeline/index.js +1 -1
  176. package/dist/UI/widgets/library/BarChartWidget/index.js +1 -1
  177. package/dist/UI/widgets/library/BubbleWidget/index.js +1 -1
  178. package/dist/UI/widgets/library/CircleGaugeWidget/index.js +110 -2
  179. package/dist/UI/widgets/library/CircleGaugeWidget/index.js.map +1 -0
  180. package/dist/UI/widgets/library/DateTrendWidget/index.js +1 -1
  181. package/dist/UI/widgets/library/DensePlotWidget/index.js +1 -1
  182. package/dist/UI/widgets/library/GaugeWidget/index.js +381 -2
  183. package/dist/UI/widgets/library/GaugeWidget/index.js.map +1 -0
  184. package/dist/UI/widgets/library/LineAndSparklinesWidget/index.js +1 -1
  185. package/dist/UI/widgets/library/LineGraphWidget/index.js +1 -1
  186. package/dist/UI/widgets/library/RecentlyLoadedNodesWidget/index.js +1 -1
  187. package/dist/UI/widgets/library/RemindersWidget/index.js +1 -1
  188. package/dist/UI/widgets/library/SparsePlotWidget/index.js +1 -1
  189. package/dist/UI/widgets/library/TableWidget/index.js +1 -1
  190. package/dist/{UdpAppProvider-C6fH--WD.js → UdpAppProvider-BRyRY8zN.js} +2 -2
  191. package/dist/{UdpAppProvider-C6fH--WD.js.map → UdpAppProvider-BRyRY8zN.js.map} +1 -1
  192. package/dist/{UdpCalendarYearView-BEdW-myL.js → UdpCalendarYearView-BSR8CGHt.js} +1 -1
  193. package/dist/{UdpCalendarYearView-BEdW-myL.js.map → UdpCalendarYearView-BSR8CGHt.js.map} +1 -1
  194. package/dist/{UdpDataBrowserPage-CQ0vS2GN.js → UdpDataBrowserPage-B-afkKoz.js} +4 -4
  195. package/dist/{UdpDataBrowserPage-CQ0vS2GN.js.map → UdpDataBrowserPage-B-afkKoz.js.map} +1 -1
  196. package/dist/{UdpDateRangeSelector-BivfBlPa.js → UdpDateRangeSelector-C_gpkHul.js} +1 -1
  197. package/dist/{UdpDateRangeSelector-BivfBlPa.js.map → UdpDateRangeSelector-C_gpkHul.js.map} +1 -1
  198. package/dist/{UdpFormsSubmissionGrid-i3P4ZwQx.js → UdpFormsSubmissionGrid-BTg1Ktrn.js} +2 -2
  199. package/dist/{UdpFormsSubmissionGrid-i3P4ZwQx.js.map → UdpFormsSubmissionGrid-BTg1Ktrn.js.map} +1 -1
  200. package/dist/{UdpGridTemplate-OsS_O6jR.js → UdpGridTemplate-U9YcYLUf.js} +1 -1
  201. package/dist/{UdpGridTemplate-OsS_O6jR.js.map → UdpGridTemplate-U9YcYLUf.js.map} +1 -1
  202. package/dist/{UdpInquiryMaintenanceEnginePage-D7HFcJQu.js → UdpInquiryMaintenanceEnginePage-BiKDpo6a.js} +2 -2
  203. package/dist/{UdpInquiryMaintenanceEnginePage-D7HFcJQu.js.map → UdpInquiryMaintenanceEnginePage-BiKDpo6a.js.map} +1 -1
  204. package/dist/{UdpMaintenanceEnginePage-CX5L5k-E.js → UdpMaintenanceEnginePage-C1UcnDlL.js} +3 -3
  205. package/dist/{UdpMaintenanceEnginePage-CX5L5k-E.js.map → UdpMaintenanceEnginePage-C1UcnDlL.js.map} +1 -1
  206. package/dist/{UdpNotesPage-CgIdQgVV.js → UdpNotesPage-Deug2da_.js} +3 -3
  207. package/dist/{UdpNotesPage-CgIdQgVV.js.map → UdpNotesPage-Deug2da_.js.map} +1 -1
  208. package/dist/{UdpRemindersPage-CfLAOWP_.js → UdpRemindersPage-B8vCglBX.js} +3 -3
  209. package/dist/{UdpRemindersPage-CfLAOWP_.js.map → UdpRemindersPage-B8vCglBX.js.map} +1 -1
  210. package/dist/{UdpTransactionTypesPage-Su-Z5Yjd.js → UdpTransactionTypesPage-CUpHKA6y.js} +149 -65
  211. package/dist/UdpTransactionTypesPage-CUpHKA6y.js.map +1 -0
  212. package/dist/{UdpTransactionsPage-DqSVtTyb.js → UdpTransactionsPage-B5uhMoFg.js} +51 -31
  213. package/dist/UdpTransactionsPage-B5uhMoFg.js.map +1 -0
  214. package/dist/{UdpVerticalManagementPage-ndwqxjDI.js → UdpVerticalManagementPage-DHK7-w0K.js} +2 -2
  215. package/dist/{UdpVerticalManagementPage-ndwqxjDI.js.map → UdpVerticalManagementPage-DHK7-w0K.js.map} +1 -1
  216. package/dist/{UdpVerticalManagementSidesheet-DomJyrvo.js → UdpVerticalManagementSidesheet-C2kuDXac.js} +2 -2
  217. package/dist/{UdpVerticalManagementSidesheet-DomJyrvo.js.map → UdpVerticalManagementSidesheet-C2kuDXac.js.map} +1 -1
  218. package/dist/{UserFormSideSheet-Bzw3AVnY.js → UserFormSideSheet-B6Mn3bZ0.js} +1 -1
  219. package/dist/{UserFormSideSheet-Bzw3AVnY.js.map → UserFormSideSheet-B6Mn3bZ0.js.map} +1 -1
  220. package/dist/UserFormSideSheet-C1G_jBcu.js +3 -0
  221. package/dist/VirtualBrowser-BoHR4EBJ.js +3 -0
  222. package/dist/{VirtualBrowser-BWflR1ah.js → VirtualBrowser-C2oPh3YY.js} +1 -1
  223. package/dist/{VirtualBrowser-BWflR1ah.js.map → VirtualBrowser-C2oPh3YY.js.map} +1 -1
  224. package/dist/{WorkOrderCard-s-6QK3Re.js → WorkOrderCard-Ce5WrpnX.js} +1 -1
  225. package/dist/{WorkOrderCard-s-6QK3Re.js.map → WorkOrderCard-Ce5WrpnX.js.map} +1 -1
  226. package/dist/{WorkflowContainer-CA0eMzMU.js → WorkflowContainer-Cd5H4mpf.js} +2 -2
  227. package/dist/{WorkflowContainer-CA0eMzMU.js.map → WorkflowContainer-Cd5H4mpf.js.map} +1 -1
  228. package/dist/{WorkflowContainer-LP2LBBn6.js → WorkflowContainer-Iq8fmnGR.js} +1 -1
  229. package/dist/{WorkflowTreeMenu-CTxpL6vb.js → WorkflowTreeMenu-D2Uc09jP.js} +2 -2
  230. package/dist/{WorkflowTreeMenu-CTxpL6vb.js.map → WorkflowTreeMenu-D2Uc09jP.js.map} +1 -1
  231. package/dist/{accordion-SICjF7Th.js → accordion-CT8euUVM.js} +2 -2
  232. package/dist/{accordion-SICjF7Th.js.map → accordion-CT8euUVM.js.map} +1 -1
  233. package/dist/actions/index.js +5 -3
  234. package/dist/{aggridHelpers-af9idKBD.js → aggridHelpers-BeUZvPIv.js} +2 -2
  235. package/dist/{aggridHelpers-af9idKBD.js.map → aggridHelpers-BeUZvPIv.js.map} +1 -1
  236. package/dist/componentSystems/multiThreadTimeline/index.js +7 -3
  237. package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +1 -1
  238. package/dist/componentSystems/multiThreadTimeline/mttSummary/index.js +1 -1
  239. package/dist/componentSystems/multiThreadTimeline/ui/index.js +1 -1
  240. package/dist/componentSystems/pageRenderer/index.js +4 -0
  241. package/dist/dataBrowser/index.js +2 -1
  242. package/dist/{fileViewer-BmTE1zuM.js → fileViewer-BVzlhb3g.js} +2 -2
  243. package/dist/{fileViewer-BmTE1zuM.js.map → fileViewer-BVzlhb3g.js.map} +1 -1
  244. package/dist/{fluentTimeline-BCLxH23f.js → fluentTimeline-BWoLOxF_.js} +2 -2
  245. package/dist/{fluentTimeline-BCLxH23f.js.map → fluentTimeline-BWoLOxF_.js.map} +1 -1
  246. package/dist/{forms-CuTE3vcQ.js → forms-Eqr3TUUl.js} +2 -1
  247. package/dist/{forms-CuTE3vcQ.js.map → forms-Eqr3TUUl.js.map} +1 -1
  248. package/dist/{gridVisualizationFunctions-D4fd_Ceb.js → gridVisualizationFunctions-jnvPACJD.js} +1 -1
  249. package/dist/{gridVisualizationFunctions-D4fd_Ceb.js.map → gridVisualizationFunctions-jnvPACJD.js.map} +1 -1
  250. package/dist/index.js +79 -79
  251. package/dist/inquiry/dashboard/index.js +1 -1
  252. package/dist/inquiry/index.js +3 -3
  253. package/dist/inquiry/search/index.js +1 -1
  254. package/dist/maintenanceEngine/index.js +5 -2
  255. package/dist/maintenanceEngine/tableBrowser/index.js +1 -1
  256. package/dist/maintenanceEngine/virtualBrowser/index.js +1 -1
  257. package/dist/menuPage/index.js +1 -1
  258. package/dist/{menuPage-C0cuD8I3.js → menuPage-B9NwQJVt.js} +2 -2
  259. package/dist/{menuPage-C0cuD8I3.js.map → menuPage-B9NwQJVt.js.map} +1 -1
  260. package/dist/notes/index.js +1 -1
  261. package/dist/providers/index.js +1 -1
  262. package/dist/reminders/index.js +2 -2
  263. package/dist/routes/components/index.js +1 -1
  264. package/dist/routes/index.js +1 -1
  265. package/dist/{routes-C-KBRkwM.js → routes-DG4NLFP9.js} +9 -9
  266. package/dist/{routes-C-KBRkwM.js.map → routes-DG4NLFP9.js.map} +1 -1
  267. package/dist/shell/index.js +3 -2
  268. package/dist/shell/ui/index.js +1 -1
  269. package/dist/{theme-C-5VosEn.js → theme-IKiRfNgl.js} +1 -1
  270. package/dist/{theme-C-5VosEn.js.map → theme-IKiRfNgl.js.map} +1 -1
  271. package/dist/treeMenu/index.js +1 -1
  272. package/dist/types/src/UI/forms/UdpTransactionEmailForm.d.ts.map +1 -1
  273. package/dist/types/src/index.d.ts +1 -0
  274. package/dist/types/src/index.d.ts.map +1 -1
  275. package/dist/types/src/udp/pages/UdpTransactionTypesPage/UdpTransactionTypesPage.d.ts.map +1 -1
  276. package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeForm.d.ts.map +1 -1
  277. package/dist/types/src/udp/pages/UdpTransactionTypesPage/forms/UdpTransactionTypeStatusForm.d.ts.map +1 -1
  278. package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionAttachmentTypeSidesheet.d.ts.map +1 -1
  279. package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationSidesheet.d.ts.map +1 -1
  280. package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeConfigurationTransactionActionSidesheet.d.ts.map +1 -1
  281. package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeStatusSidesheet.d.ts.map +1 -1
  282. package/dist/types/src/udp/pages/UdpTransactionTypesPage/sidesheets/UdpTransactionTypeTransactionActionSidesheet.d.ts.map +1 -1
  283. package/dist/types/src/udp/pages/UdpTransactionsPage/UdpTransactionGrid.d.ts.map +1 -1
  284. package/dist/types/src/udp/pages/UdpTransactionsPage/UdpTransactionsPage.d.ts +21 -0
  285. package/dist/types/src/udp/pages/UdpTransactionsPage/UdpTransactionsPage.d.ts.map +1 -1
  286. package/dist/types/src/udp/pages/UdpTransactionsPage/components/transactionAttachment/TransactionAttachments.d.ts.map +1 -1
  287. package/dist/types/src/udp/pages/UdpTransactionsPage/sidesheets/EditTransaction.d.ts.map +1 -1
  288. package/dist/types/src/udp/utilities/transactionConstants.d.ts +5 -0
  289. package/dist/types/src/udp/utilities/transactionConstants.d.ts.map +1 -0
  290. package/dist/types/src/utilities/search/Search.d.ts +3 -1
  291. package/dist/types/src/utilities/search/Search.d.ts.map +1 -1
  292. package/dist/types/src/utilities/search/SearchUtilities.d.ts +4 -1
  293. package/dist/types/src/utilities/search/SearchUtilities.d.ts.map +1 -1
  294. package/dist/types/src/utilities/transactions/useTransactionEngine.d.ts +1 -0
  295. package/dist/types/src/utilities/transactions/useTransactionEngine.d.ts.map +1 -1
  296. package/dist/types/tsconfig.tsbuildinfo +1 -1
  297. package/dist/udp/ShortcutContent/index.js +1 -1
  298. package/dist/udp/export/index.js +1 -1
  299. package/dist/udp/fileImportMapping/index.js +1 -1
  300. package/dist/udp/pages/UdpDataBrowserPage/index.js +1 -1
  301. package/dist/udp/pages/UdpFormsSubmissionGrid/index.js +1 -1
  302. package/dist/udp/pages/UdpInquiryMaintenanceEnginePage/index.js +1 -1
  303. package/dist/udp/pages/UdpMaintenanceEnginePage/index.js +1 -1
  304. package/dist/udp/pages/UdpNotesPage/index.js +1 -1
  305. package/dist/udp/pages/UdpPages/index.js +51 -2
  306. package/dist/udp/pages/UdpPages/index.js.map +1 -0
  307. package/dist/udp/pages/UdpPagesLazy/index.js +55 -2
  308. package/dist/udp/pages/UdpPagesLazy/index.js.map +1 -0
  309. package/dist/udp/pages/UdpRemindersPage/index.js +1 -1
  310. package/dist/udp/pages/UdpTransactionTypesPage/index.js +1 -1
  311. package/dist/udp/pages/UdpTransactionsPage/index.js +1 -1
  312. package/dist/udp/pages/UdpVerticalManagementPage/index.js +1 -1
  313. package/dist/udp/pages/UdpVerticalManagementSidesheet/index.js +1 -1
  314. package/dist/udp/pages/index.js +1 -1
  315. package/dist/utilities/aggrid/datasources/index.js +1 -1
  316. package/dist/utilities/aggrid/index.js +1 -1
  317. package/dist/utilities/customIcons/index.js +1 -1
  318. package/dist/utilities/floorplanFunctions/index.js +1 -1
  319. package/dist/utilities/form/paymentForm/index.js +1 -1
  320. package/dist/utilities/provider/index.js +1 -1
  321. package/dist/utilities/redirect/pages/index.js +1 -1
  322. package/dist/utilities/search/index.js +2 -2
  323. package/dist/utilities/style/index.js +1 -1
  324. package/dist/utilities/theme/index.js +1 -1
  325. package/dist/utilities/tree/index.js +1 -1
  326. package/dist/utilities/uploader/index.js +1 -1
  327. package/dist/workflow/index.js +4 -2
  328. package/dist/workflow/menus/index.js +1 -1
  329. package/export-map.json +3 -2
  330. package/package.json +2 -2
  331. package/dist/CircleGaugeWidget-Dbn-Hfs9.js +0 -111
  332. package/dist/CircleGaugeWidget-Dbn-Hfs9.js.map +0 -1
  333. package/dist/GaugeWidget-GvHtWlDn.js +0 -382
  334. package/dist/GaugeWidget-GvHtWlDn.js.map +0 -1
  335. package/dist/Inquiry-Cs1kj7m_.js +0 -3
  336. package/dist/MenuPage-IThq2ihD.js +0 -3
  337. package/dist/MyExportsPage-DMLtTRuJ.js +0 -3
  338. package/dist/Reports-Dsm8UDrt.js +0 -3
  339. package/dist/SearchUtilities-CNz302LN.js.map +0 -1
  340. package/dist/UdpPages-9KtA1yex.js +0 -52
  341. package/dist/UdpPages-9KtA1yex.js.map +0 -1
  342. package/dist/UdpPagesLazy-DAB_UwLn.js +0 -56
  343. package/dist/UdpPagesLazy-DAB_UwLn.js.map +0 -1
  344. package/dist/UdpTransactionTypesPage-Su-Z5Yjd.js.map +0 -1
  345. package/dist/UdpTransactionsPage-DqSVtTyb.js.map +0 -1
  346. package/dist/UserFormSideSheet-D6a35hXn.js +0 -3
  347. package/dist/VirtualBrowser-BLWKTPvM.js +0 -3
  348. package/dist/hocs-CyRt-7I7.js +0 -1
  349. package/dist/hooks-CZjs7TAZ.js +0 -1
  350. package/dist/menus-CETPr-Rz.js +0 -1
  351. package/dist/modified-BJdpgdkg.js +0 -1
  352. package/dist/mttMainTimeline-8er52lk7.js +0 -1
  353. package/dist/mttSummary-DjO6x1z3.js +0 -1
  354. package/dist/redirect-CiRW3aom.js +0 -1
  355. package/dist/renderers-CWJe-F-V.js +0 -1
  356. package/dist/sidebar-D6ohji9U.js +0 -1
  357. package/dist/storage-BH6-5v7t.js +0 -1
  358. package/dist/tableBrowser-DOXhQA7W.js +0 -1
  359. package/dist/ui-C4kNul8N.js +0 -1
  360. package/dist/ui-DKHa8sM6.js +0 -1
  361. package/dist/utils-DfHe3cg_.js +0 -1
  362. package/dist/utils-kACkfC1q.js +0 -1
  363. package/dist/virtualBrowser-CGrDP18C.js +0 -1
  364. package/dist/wrappers-RliXkfVO.js +0 -1
  365. /package/dist/{addUser-dW2T5ebz.js → addUser-B8dGyltZ.js} +0 -0
  366. /package/dist/{appSwitcher-Cc_raXX2.js → appSwitcher-Bcd4Cwcx.js} +0 -0
  367. /package/dist/{components-C06UZfZG.js → modified-BZxg92lm.js} +0 -0
  368. /package/dist/{crudBrowser-lDw1oxV2.js → redirect-dbCS_8ib.js} +0 -0
  369. /package/dist/{forms-CywZzmBr.js → renderers-DTo5-0ZY.js} +0 -0
  370. /package/dist/{functions-XSah-gNz.js → storage-C9onsVtI.js} +0 -0
@@ -19,4 +19,4 @@ var AadCallback_default = AadCallback;
19
19
 
20
20
  //#endregion
21
21
  export { AadCallback_default as default };
22
- //# sourceMappingURL=AadCallback-DL4V3BBL.js.map
22
+ //# sourceMappingURL=AadCallback-DI_SnmOU.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"AadCallback-DL4V3BBL.js","names":[],"sources":["../src/utilities/auth/AadCallback.jsx"],"sourcesContent":["import React from 'react';\nimport { Redirect, Route } from 'react-router-dom';\nimport {\n getStoredPath,\n clearStoredPath,\n getStoredExternalPath,\n clearStoredExternalPath\n} from '../redirect';\n\n\nconst AadCallback = () => {\n const localUrl = getStoredPath();\n const externalUrl = getStoredExternalPath();\n\n clearStoredPath();\n clearStoredExternalPath();\n\n if (externalUrl) {\n return (\n <Route\n component={() => {\n window.location.href = externalUrl;\n return null;\n }}\n />\n );\n }\n\n return <Redirect to={localUrl === '/aad_callback' ? '/' : localUrl} />;\n};\n\nexport default AadCallback;\n"],"mappings":";;;;;;AAUA,MAAM,oBAAoB;CACxB,MAAM,WAAW,eAAe;CAChC,MAAM,cAAc,uBAAuB;AAE3C,kBAAiB;AACjB,0BAAyB;AAEzB,KAAI,YACF,QACE,oCAAC,SACC,iBAAiB;AACf,SAAO,SAAS,OAAO;AACvB,SAAO;KAET;AAIN,QAAO,oCAAC,YAAS,IAAI,aAAa,kBAAkB,MAAM,WAAY;;AAGxE,0BAAe"}
1
+ {"version":3,"file":"AadCallback-DI_SnmOU.js","names":[],"sources":["../src/utilities/auth/AadCallback.jsx"],"sourcesContent":["import React from 'react';\nimport { Redirect, Route } from 'react-router-dom';\nimport {\n getStoredPath,\n clearStoredPath,\n getStoredExternalPath,\n clearStoredExternalPath\n} from '../redirect';\n\n\nconst AadCallback = () => {\n const localUrl = getStoredPath();\n const externalUrl = getStoredExternalPath();\n\n clearStoredPath();\n clearStoredExternalPath();\n\n if (externalUrl) {\n return (\n <Route\n component={() => {\n window.location.href = externalUrl;\n return null;\n }}\n />\n );\n }\n\n return <Redirect to={localUrl === '/aad_callback' ? '/' : localUrl} />;\n};\n\nexport default AadCallback;\n"],"mappings":";;;;;;AAUA,MAAM,oBAAoB;CACxB,MAAM,WAAW,eAAe;CAChC,MAAM,cAAc,uBAAuB;AAE3C,kBAAiB;AACjB,0BAAyB;AAEzB,KAAI,YACF,QACE,oCAAC,SACC,iBAAiB;AACf,SAAO,SAAS,OAAO;AACvB,SAAO;KAET;AAIN,QAAO,oCAAC,YAAS,IAAI,aAAa,kBAAkB,MAAM,WAAY;;AAGxE,0BAAe"}
@@ -2,7 +2,7 @@ import { n as getEntityAttributes } from "./CrudBrowserUtilities-C9nVmUR3.js";
2
2
  import { t as ConfigService } from "./configService-C4uoG3wj.js";
3
3
  import { t as apiMutate } from "./useAxiosMutate-DeqKSi5z.js";
4
4
  import { _ as NodeActionEnums } from "./unitySystemEnums-e5F9Jr7m.js";
5
- import { t as ActionWrapper } from "./ActionWrapper-Btbpz4rx.js";
5
+ import { t as ActionWrapper } from "./ActionWrapper-d9dIOSYB.js";
6
6
  import { n as ActionContext, r as ActionDispatchContext, t as ActionLoadingDispatchContext } from "./ActionLoadingDispatchContext-XEU8GWlw.js";
7
7
  import { r as useActionStore } from "./inquiryStore-BMYKf5MP.js";
8
8
  import { t as useCatalogStore } from "./catalogStore-DP2GxpTJ.js";
@@ -365,4 +365,4 @@ const ActionProvider = (props) => {
365
365
 
366
366
  //#endregion
367
367
  export { ActionProvider as t };
368
- //# sourceMappingURL=ActionProvider-2AAAOm9H.js.map
368
+ //# sourceMappingURL=ActionProvider-C_rohJIr.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionProvider-2AAAOm9H.js","names":["useDefaultFormValues","LoadingOverlay"],"sources":["../src/utilities/provider/ActionProvider.jsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useState\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { ActionContext } from '../../contexts/ActionContext';\nimport { ActionDispatchContext } from '../../contexts/ActionDispatchContext';\nimport { ActionWrapper } from '../../actions/ActionWrapper';\nimport { apiMutate } from '../useAxiosMutate';\nimport { NodeActionEnums } from '../../enums/unitySystemEnums';\nimport { useAuthedUser } from '../auth/useAuthedUser';\nimport { useAxiosGet } from '../useAxiosGet';\nimport useDefaultFormValues from '../crud/useDefaultFormValues';\nimport { getEntityAttributes } from '../maintenanceEngine/CrudBrowserUtilities';\nimport { ActionLoadingContext } from '../../contexts/ActionLoadingContext';\nimport { ActionLoadingDispatchContext } from '../../contexts/ActionLoadingDispatchContext';\nimport { useApiCatalog } from '../../hooks/useApiCatalog';\nimport LoadingOverlay from '../../UI/loading/LoadingOverlay';\nimport { useHistory } from 'react-router-dom';\nimport { usePromotedLookupMethods } from '../../hooks/usePromotedLookupMethods';\nimport { useCatalogStore } from '../../stores/catalogStore';\nimport { useActionStore } from '../../stores/actionStore';\nimport { useShellStore } from '../../stores/shellStore';\nimport { ConfigService } from '../../configService';\nimport { usePromotedMethodEntities } from '../../hooks/usePromotedMethodEntities';\n\nconst emptyAction = {\n action: {\n actionId: '',\n payload: null\n },\n actionPanels: {},\n catalog: null,\n catalogPromise: null,\n catalogEntities: [],\n catalogPromotedEntities: [],\n menuListState: {\n menuList: [],\n handleRemoveMenuItem: () => {},\n selectedMenuIndex: null\n },\n modal: {\n open: false,\n action: null,\n title: ''\n },\n inquiryParams: {\n 0: {\n selectedNode: null,\n selectedNodeParent: null,\n refreshTree: null\n }\n },\n showInquiryHeaderActions: true,\n sideSheet: {\n open: false,\n action: null\n },\n splitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n },\n pageSplitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n },\n pageContainerSplitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n },\n setCurrentEntityName: null\n};\n\nconst newRouteEmptyAction = {\n action: {\n actionId: '',\n payload: null\n },\n actionPanels: {},\n menuListState: {\n menuList: [],\n handleRemoveMenuItem: () => {},\n selectedMenuIndex: null\n },\n modal: {\n open: false,\n action: null,\n title: ''\n },\n selectedNodeObj: null,\n inquiryParams: {\n 0: {\n selectedNode: null,\n selectedNodeParent: null,\n refreshTree: null\n }\n },\n showInquiryHeaderActions: true,\n sideSheet: {\n open: false,\n action: null\n },\n splitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n },\n pageSplitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n },\n pageContainerSplitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n }\n};\n\nconst emptyActionLoading = {\n loading: false,\n waitingToExecute: ''\n};\n\nexport const ActionProvider = (props) => {\n const { domRoot, children } = props;\n const user = useAuthedUser();\n const history = useHistory();\n\n const [apiCatalogId, setApiCatalogId] = useState(null);\n const [foreignKeyData, setForeignKeyData] = useState([]);\n const [actionPanel, setActionPanel] = useState(null);\n const [currentEntityName, setCurrentEntityName] = useState(null);\n const [currentLocationPathname, setCurrentLocationPathname] = useState(\n history?.location?.pathname\n );\n const {\n data: catalog,\n promise: catalogPromise,\n loading: catalogLoading\n } = useApiCatalog(apiCatalogId);\n usePromotedMethodEntities(apiCatalogId);\n\n const selectedNode = useActionStore((state) => state.selectedNode);\n const currentContainerId = useShellStore((state) => state.currentContainerId);\n\n // Set the lookup api method Id for the application\n usePromotedLookupMethods(apiCatalogId);\n\n const setCurrentApiCatalogId = useCatalogStore(\n (state) => state.setCurrentApiCatalogId\n );\n\n const [{ data: tpacb, loading: tpacbLoading }] = useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!user,\n false\n );\n\n\n\n const [actionState, dispatch] = useReducer((state, reducerAction) => {\n switch (reducerAction.type) {\n case 'SET_ACTION_PANELS':\n let containerIdToUse = 0;\n if (reducerAction.containerId) {\n containerIdToUse = reducerAction.containerId;\n }\n\n const updatedActionPanels = { ...state.actionPanels };\n updatedActionPanels[containerIdToUse] = reducerAction.actionPanels;\n state = {\n ...state,\n actionPanels: updatedActionPanels\n };\n break;\n case 'OPEN_SIDESHEET':\n state = {\n ...state,\n sideSheet: reducerAction.sideSheet\n };\n break;\n case 'OPEN_MODAL':\n state = {\n ...state,\n modal: reducerAction.modal\n };\n break;\n case 'CLOSE_ALL_SPLIT_SCREENS':\n state = {\n ...state,\n splitScreen: { open: false, action: null, type: null, params: null },\n pageSplitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n },\n pageContainerSplitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n }\n };\n break;\n case 'OPEN_SPLIT_SCREEN':\n state = {\n ...state,\n splitScreen: reducerAction.splitScreen\n };\n break;\n case 'OPEN_PAGE_SPLIT_SCREEN':\n state = {\n ...state,\n pageSplitScreen: reducerAction.pageSplitScreen\n };\n break;\n case 'OPEN_PAGE_CONTAINER_SPLIT_SCREEN':\n state = {\n ...state,\n pageContainerSplitScreen: reducerAction.pageContainerSplitScreen\n };\n break;\n case 'SET_API_CATALOG':\n state = {\n ...state,\n catalog: reducerAction.catalog\n };\n break;\n case 'SET_API_CATALOG_PROMISE':\n state = {\n ...state,\n catalogPromise: reducerAction.catalogPromise\n };\n break;\n case 'SET_CATALOG_ENTITIES':\n state = {\n ...state,\n catalogEntities: reducerAction.catalogEntities\n };\n break;\n case 'SET_CATALOG_PROMOTED_ENTITIES':\n state = {\n ...state,\n catalogPromotedEntities: reducerAction.catalogPromotedEntities\n };\n break;\n case 'SET_INQUIRY_PARAMS':\n let initialContainerId = 0;\n if (reducerAction.containerId) {\n initialContainerId = reducerAction.containerId;\n }\n\n const updatedInquiryParams = { ...state.inquiryParams };\n updatedInquiryParams[initialContainerId] = reducerAction.inquiryParams;\n state = {\n ...state,\n inquiryParams: updatedInquiryParams\n };\n break;\n case 'SET_SHOW_INQUIRY_HEADER_ACTIONS':\n state = {\n ...state,\n showInquiryHeaderActions: reducerAction.showInquiryHeaderActions\n };\n break;\n case 'SET_MENU_LIST_STATE':\n state = {\n ...state,\n menuListState: reducerAction.menuListState\n };\n break;\n case 'SET_ACTION_STATE_FOR_NEW_ROUTE':\n state = {\n ...state,\n ...newRouteEmptyAction\n };\n break;\n default:\n throw new Error(`Unknown action type ${reducerAction.type}`);\n }\n state = {\n ...state,\n setCurrentEntityName: setCurrentEntityName\n };\n return state;\n }, emptyAction);\n\n const [actionLoadingState, dispatchActionLoading] = useReducer(\n (state, reducerAction) => {\n switch (reducerAction.type) {\n case 'SET_ACTION_LOADING':\n state = {\n ...state,\n loading: reducerAction.loading\n };\n break;\n case 'SET_ACTION_WAITING_TO_EXECUTE':\n state = {\n ...state,\n waitingToExecute: reducerAction.actionId\n };\n break;\n default:\n throw new Error(`Unknown action loading type ${reducerAction.type}`);\n }\n return state;\n },\n emptyActionLoading\n );\n const action = useMemo(() => {\n let selectedAction = null;\n if (actionState) {\n if (actionState.modal?.action) {\n selectedAction = actionState.modal.action;\n }\n if (actionState.sideSheet?.action) {\n selectedAction = actionState.sideSheet.action;\n }\n if (actionState.splitScreen?.action) {\n selectedAction = actionState.splitScreen.action;\n }\n if (actionState.pageSplitScreen?.action) {\n selectedAction = actionState.pageSplitScreen.action;\n }\n if (actionState.pageContainerSplitScreen?.action) {\n selectedAction = actionState.pageContainerSplitScreen.action;\n }\n }\n\n return selectedAction;\n }, [actionState]);\n\n const entityAttributes = useMemo(() => {\n if (!catalog) {\n return [];\n }\n const entityName = actionPanel ? actionPanel.entityName : currentEntityName;\n\n return getEntityAttributes(catalog, entityName);\n }, [actionPanel, catalog, currentEntityName]);\n\n const { defaultFormValues } = useDefaultFormValues(entityAttributes);\n const [crudTableFormData, setCrudTableFormData] = useState(defaultFormValues);\n\n const crudTableEditionData = useMemo(() => {\n let crudData = null;\n if (\n selectedNode?.nodeObj &&\n action &&\n action.actionTypeId === NodeActionEnums.Update\n ) {\n crudData = selectedNode.nodeObj;\n setCrudTableFormData(selectedNode.nodeObj);\n } else {\n setCrudTableFormData(defaultFormValues);\n }\n\n return crudData;\n }, [action, selectedNode]);\n\n const executeAction = useCallback(\n async (data, id) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${id}`,\n {\n method: 'post'\n },\n data\n ),\n []\n );\n\n const inquiryActions = (\n <ActionWrapper\n action={action}\n actionState={actionState}\n actionPanel={actionPanel}\n dispatch={dispatch}\n catalog={catalog}\n executeAction={executeAction}\n splitScreenBody={children}\n entityAttributes={entityAttributes}\n foreignKeyData={foreignKeyData}\n setForeignKeyData={setForeignKeyData}\n crudTableEditionData={crudTableEditionData}\n crudTableFormData={crudTableFormData}\n />\n );\n\n useEffect(() => {\n if (tpacb) {\n setApiCatalogId(tpacb.apiCatalogId);\n setCurrentApiCatalogId(tpacb.apiCatalogId);\n }\n }, [tpacb, setCurrentApiCatalogId]);\n\n useEffect(() => {\n if (action && actionState) {\n setActionPanel(\n actionState?.actionPanels[currentContainerId || 0]?.find((ap) =>\n ap.panelActions.find((pa) => pa.actionId === action.actionId)\n )\n );\n }\n }, [action, actionState, currentContainerId]);\n\n useEffect(\n () =>\n dispatchActionLoading({\n type: 'SET_ACTION_LOADING',\n loading: catalogLoading || tpacbLoading\n }),\n [catalogLoading, tpacbLoading]\n );\n\n useEffect(() => {\n if (catalog) {\n dispatch({\n type: 'SET_API_CATALOG',\n catalog: catalog\n });\n }\n }, [catalog]);\n\n // TODO: Find a better way to trigger actions even though it's waiting for\n // catalog to finish loading. One way is to wait for catalog to finish loading before\n // rendering children\n useEffect(() => {\n if (catalogPromise) {\n dispatch({\n type: 'SET_API_CATALOG_PROMISE',\n catalogPromise: catalogPromise\n });\n }\n }, [catalogPromise]);\n\n // listening to route changes to reset specific properties in the action state\n useEffect(() => {\n if (history) {\n return history.listen((location) => {\n if (currentLocationPathname !== location.pathname) {\n setCurrentLocationPathname(location.pathname);\n dispatch({\n type: 'SET_ACTION_STATE_FOR_NEW_ROUTE'\n });\n }\n });\n }\n }, [history, currentLocationPathname]);\n\n const actionLoading = useMemo(\n () => <LoadingOverlay open={!!actionLoadingState.waitingToExecute} />,\n [actionLoadingState]\n );\n\n return (\n <>\n {actionLoading}\n <ActionContext.Provider value={actionState}>\n <ActionDispatchContext.Provider value={dispatch}>\n <ActionLoadingContext.Provider value={actionLoadingState}>\n <ActionLoadingDispatchContext.Provider\n value={dispatchActionLoading}\n >\n {domRoot ? createPortal(inquiryActions, domRoot) : inquiryActions}\n </ActionLoadingDispatchContext.Provider>\n </ActionLoadingContext.Provider>\n </ActionDispatchContext.Provider>\n </ActionContext.Provider>\n </>\n );\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"ActionProvider-C_rohJIr.js","names":["useDefaultFormValues","LoadingOverlay"],"sources":["../src/utilities/provider/ActionProvider.jsx"],"sourcesContent":["import React, {\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useState\n} from 'react';\nimport { createPortal } from 'react-dom';\nimport { ActionContext } from '../../contexts/ActionContext';\nimport { ActionDispatchContext } from '../../contexts/ActionDispatchContext';\nimport { ActionWrapper } from '../../actions/ActionWrapper';\nimport { apiMutate } from '../useAxiosMutate';\nimport { NodeActionEnums } from '../../enums/unitySystemEnums';\nimport { useAuthedUser } from '../auth/useAuthedUser';\nimport { useAxiosGet } from '../useAxiosGet';\nimport useDefaultFormValues from '../crud/useDefaultFormValues';\nimport { getEntityAttributes } from '../maintenanceEngine/CrudBrowserUtilities';\nimport { ActionLoadingContext } from '../../contexts/ActionLoadingContext';\nimport { ActionLoadingDispatchContext } from '../../contexts/ActionLoadingDispatchContext';\nimport { useApiCatalog } from '../../hooks/useApiCatalog';\nimport LoadingOverlay from '../../UI/loading/LoadingOverlay';\nimport { useHistory } from 'react-router-dom';\nimport { usePromotedLookupMethods } from '../../hooks/usePromotedLookupMethods';\nimport { useCatalogStore } from '../../stores/catalogStore';\nimport { useActionStore } from '../../stores/actionStore';\nimport { useShellStore } from '../../stores/shellStore';\nimport { ConfigService } from '../../configService';\nimport { usePromotedMethodEntities } from '../../hooks/usePromotedMethodEntities';\n\nconst emptyAction = {\n action: {\n actionId: '',\n payload: null\n },\n actionPanels: {},\n catalog: null,\n catalogPromise: null,\n catalogEntities: [],\n catalogPromotedEntities: [],\n menuListState: {\n menuList: [],\n handleRemoveMenuItem: () => {},\n selectedMenuIndex: null\n },\n modal: {\n open: false,\n action: null,\n title: ''\n },\n inquiryParams: {\n 0: {\n selectedNode: null,\n selectedNodeParent: null,\n refreshTree: null\n }\n },\n showInquiryHeaderActions: true,\n sideSheet: {\n open: false,\n action: null\n },\n splitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n },\n pageSplitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n },\n pageContainerSplitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n },\n setCurrentEntityName: null\n};\n\nconst newRouteEmptyAction = {\n action: {\n actionId: '',\n payload: null\n },\n actionPanels: {},\n menuListState: {\n menuList: [],\n handleRemoveMenuItem: () => {},\n selectedMenuIndex: null\n },\n modal: {\n open: false,\n action: null,\n title: ''\n },\n selectedNodeObj: null,\n inquiryParams: {\n 0: {\n selectedNode: null,\n selectedNodeParent: null,\n refreshTree: null\n }\n },\n showInquiryHeaderActions: true,\n sideSheet: {\n open: false,\n action: null\n },\n splitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n },\n pageSplitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n },\n pageContainerSplitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n }\n};\n\nconst emptyActionLoading = {\n loading: false,\n waitingToExecute: ''\n};\n\nexport const ActionProvider = (props) => {\n const { domRoot, children } = props;\n const user = useAuthedUser();\n const history = useHistory();\n\n const [apiCatalogId, setApiCatalogId] = useState(null);\n const [foreignKeyData, setForeignKeyData] = useState([]);\n const [actionPanel, setActionPanel] = useState(null);\n const [currentEntityName, setCurrentEntityName] = useState(null);\n const [currentLocationPathname, setCurrentLocationPathname] = useState(\n history?.location?.pathname\n );\n const {\n data: catalog,\n promise: catalogPromise,\n loading: catalogLoading\n } = useApiCatalog(apiCatalogId);\n usePromotedMethodEntities(apiCatalogId);\n\n const selectedNode = useActionStore((state) => state.selectedNode);\n const currentContainerId = useShellStore((state) => state.currentContainerId);\n\n // Set the lookup api method Id for the application\n usePromotedLookupMethods(apiCatalogId);\n\n const setCurrentApiCatalogId = useCatalogStore(\n (state) => state.setCurrentApiCatalogId\n );\n\n const [{ data: tpacb, loading: tpacbLoading }] = useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!user,\n false\n );\n\n\n\n const [actionState, dispatch] = useReducer((state, reducerAction) => {\n switch (reducerAction.type) {\n case 'SET_ACTION_PANELS':\n let containerIdToUse = 0;\n if (reducerAction.containerId) {\n containerIdToUse = reducerAction.containerId;\n }\n\n const updatedActionPanels = { ...state.actionPanels };\n updatedActionPanels[containerIdToUse] = reducerAction.actionPanels;\n state = {\n ...state,\n actionPanels: updatedActionPanels\n };\n break;\n case 'OPEN_SIDESHEET':\n state = {\n ...state,\n sideSheet: reducerAction.sideSheet\n };\n break;\n case 'OPEN_MODAL':\n state = {\n ...state,\n modal: reducerAction.modal\n };\n break;\n case 'CLOSE_ALL_SPLIT_SCREENS':\n state = {\n ...state,\n splitScreen: { open: false, action: null, type: null, params: null },\n pageSplitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n },\n pageContainerSplitScreen: {\n open: false,\n action: null,\n type: null,\n params: null\n }\n };\n break;\n case 'OPEN_SPLIT_SCREEN':\n state = {\n ...state,\n splitScreen: reducerAction.splitScreen\n };\n break;\n case 'OPEN_PAGE_SPLIT_SCREEN':\n state = {\n ...state,\n pageSplitScreen: reducerAction.pageSplitScreen\n };\n break;\n case 'OPEN_PAGE_CONTAINER_SPLIT_SCREEN':\n state = {\n ...state,\n pageContainerSplitScreen: reducerAction.pageContainerSplitScreen\n };\n break;\n case 'SET_API_CATALOG':\n state = {\n ...state,\n catalog: reducerAction.catalog\n };\n break;\n case 'SET_API_CATALOG_PROMISE':\n state = {\n ...state,\n catalogPromise: reducerAction.catalogPromise\n };\n break;\n case 'SET_CATALOG_ENTITIES':\n state = {\n ...state,\n catalogEntities: reducerAction.catalogEntities\n };\n break;\n case 'SET_CATALOG_PROMOTED_ENTITIES':\n state = {\n ...state,\n catalogPromotedEntities: reducerAction.catalogPromotedEntities\n };\n break;\n case 'SET_INQUIRY_PARAMS':\n let initialContainerId = 0;\n if (reducerAction.containerId) {\n initialContainerId = reducerAction.containerId;\n }\n\n const updatedInquiryParams = { ...state.inquiryParams };\n updatedInquiryParams[initialContainerId] = reducerAction.inquiryParams;\n state = {\n ...state,\n inquiryParams: updatedInquiryParams\n };\n break;\n case 'SET_SHOW_INQUIRY_HEADER_ACTIONS':\n state = {\n ...state,\n showInquiryHeaderActions: reducerAction.showInquiryHeaderActions\n };\n break;\n case 'SET_MENU_LIST_STATE':\n state = {\n ...state,\n menuListState: reducerAction.menuListState\n };\n break;\n case 'SET_ACTION_STATE_FOR_NEW_ROUTE':\n state = {\n ...state,\n ...newRouteEmptyAction\n };\n break;\n default:\n throw new Error(`Unknown action type ${reducerAction.type}`);\n }\n state = {\n ...state,\n setCurrentEntityName: setCurrentEntityName\n };\n return state;\n }, emptyAction);\n\n const [actionLoadingState, dispatchActionLoading] = useReducer(\n (state, reducerAction) => {\n switch (reducerAction.type) {\n case 'SET_ACTION_LOADING':\n state = {\n ...state,\n loading: reducerAction.loading\n };\n break;\n case 'SET_ACTION_WAITING_TO_EXECUTE':\n state = {\n ...state,\n waitingToExecute: reducerAction.actionId\n };\n break;\n default:\n throw new Error(`Unknown action loading type ${reducerAction.type}`);\n }\n return state;\n },\n emptyActionLoading\n );\n const action = useMemo(() => {\n let selectedAction = null;\n if (actionState) {\n if (actionState.modal?.action) {\n selectedAction = actionState.modal.action;\n }\n if (actionState.sideSheet?.action) {\n selectedAction = actionState.sideSheet.action;\n }\n if (actionState.splitScreen?.action) {\n selectedAction = actionState.splitScreen.action;\n }\n if (actionState.pageSplitScreen?.action) {\n selectedAction = actionState.pageSplitScreen.action;\n }\n if (actionState.pageContainerSplitScreen?.action) {\n selectedAction = actionState.pageContainerSplitScreen.action;\n }\n }\n\n return selectedAction;\n }, [actionState]);\n\n const entityAttributes = useMemo(() => {\n if (!catalog) {\n return [];\n }\n const entityName = actionPanel ? actionPanel.entityName : currentEntityName;\n\n return getEntityAttributes(catalog, entityName);\n }, [actionPanel, catalog, currentEntityName]);\n\n const { defaultFormValues } = useDefaultFormValues(entityAttributes);\n const [crudTableFormData, setCrudTableFormData] = useState(defaultFormValues);\n\n const crudTableEditionData = useMemo(() => {\n let crudData = null;\n if (\n selectedNode?.nodeObj &&\n action &&\n action.actionTypeId === NodeActionEnums.Update\n ) {\n crudData = selectedNode.nodeObj;\n setCrudTableFormData(selectedNode.nodeObj);\n } else {\n setCrudTableFormData(defaultFormValues);\n }\n\n return crudData;\n }, [action, selectedNode]);\n\n const executeAction = useCallback(\n async (data, id) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${id}`,\n {\n method: 'post'\n },\n data\n ),\n []\n );\n\n const inquiryActions = (\n <ActionWrapper\n action={action}\n actionState={actionState}\n actionPanel={actionPanel}\n dispatch={dispatch}\n catalog={catalog}\n executeAction={executeAction}\n splitScreenBody={children}\n entityAttributes={entityAttributes}\n foreignKeyData={foreignKeyData}\n setForeignKeyData={setForeignKeyData}\n crudTableEditionData={crudTableEditionData}\n crudTableFormData={crudTableFormData}\n />\n );\n\n useEffect(() => {\n if (tpacb) {\n setApiCatalogId(tpacb.apiCatalogId);\n setCurrentApiCatalogId(tpacb.apiCatalogId);\n }\n }, [tpacb, setCurrentApiCatalogId]);\n\n useEffect(() => {\n if (action && actionState) {\n setActionPanel(\n actionState?.actionPanels[currentContainerId || 0]?.find((ap) =>\n ap.panelActions.find((pa) => pa.actionId === action.actionId)\n )\n );\n }\n }, [action, actionState, currentContainerId]);\n\n useEffect(\n () =>\n dispatchActionLoading({\n type: 'SET_ACTION_LOADING',\n loading: catalogLoading || tpacbLoading\n }),\n [catalogLoading, tpacbLoading]\n );\n\n useEffect(() => {\n if (catalog) {\n dispatch({\n type: 'SET_API_CATALOG',\n catalog: catalog\n });\n }\n }, [catalog]);\n\n // TODO: Find a better way to trigger actions even though it's waiting for\n // catalog to finish loading. One way is to wait for catalog to finish loading before\n // rendering children\n useEffect(() => {\n if (catalogPromise) {\n dispatch({\n type: 'SET_API_CATALOG_PROMISE',\n catalogPromise: catalogPromise\n });\n }\n }, [catalogPromise]);\n\n // listening to route changes to reset specific properties in the action state\n useEffect(() => {\n if (history) {\n return history.listen((location) => {\n if (currentLocationPathname !== location.pathname) {\n setCurrentLocationPathname(location.pathname);\n dispatch({\n type: 'SET_ACTION_STATE_FOR_NEW_ROUTE'\n });\n }\n });\n }\n }, [history, currentLocationPathname]);\n\n const actionLoading = useMemo(\n () => <LoadingOverlay open={!!actionLoadingState.waitingToExecute} />,\n [actionLoadingState]\n );\n\n return (\n <>\n {actionLoading}\n <ActionContext.Provider value={actionState}>\n <ActionDispatchContext.Provider value={dispatch}>\n <ActionLoadingContext.Provider value={actionLoadingState}>\n <ActionLoadingDispatchContext.Provider\n value={dispatchActionLoading}\n >\n {domRoot ? createPortal(inquiryActions, domRoot) : inquiryActions}\n </ActionLoadingDispatchContext.Provider>\n </ActionLoadingContext.Provider>\n </ActionDispatchContext.Provider>\n </ActionContext.Provider>\n </>\n );\n};\n"],"mappings":"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"}
@@ -9,8 +9,8 @@ import { t as PageContainer } from "./PageContainer-DTXNLt_2.js";
9
9
  import { t as DraggableSidebarTemplate } from "./DraggableSidebarTemplate-BUWBvL6H.js";
10
10
  import { t as SidebarHeader } from "./SidebarHeader-DU68JdgW.js";
11
11
  import { t as EntitySideBarContent } from "./EntitySideBarContent-Bl_8gI69.js";
12
- import { t as NotesScreen } from "./NotesScreen-Xj0vl0v1.js";
13
- import { t as RemindersScreen } from "./RemindersScreen-Cg6_SGJI.js";
12
+ import { t as NotesScreen } from "./NotesScreen-DE3fhpjW.js";
13
+ import { t as RemindersScreen } from "./RemindersScreen-CyT18piP.js";
14
14
  import { n as useBuildEnvironment, t as APP_RIBBON_SPACE } from "./useBuildEnvironment-2gdqpmBX.js";
15
15
  import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
16
16
  import { Card, CardContent, Slide, makeStyles } from "@material-ui/core";
@@ -293,4 +293,4 @@ ActionSplitScreen.propTypes = {
293
293
 
294
294
  //#endregion
295
295
  export { ActionSplitScreen as t };
296
- //# sourceMappingURL=ActionSplitScreen-DeU-9YQb.js.map
296
+ //# sourceMappingURL=ActionSplitScreen-OFqIncG9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionSplitScreen-DeU-9YQb.js","names":[],"sources":["../src/actions/ActionSplitScreen.jsx"],"sourcesContent":["import { Card, CardContent, makeStyles, Slide } from '@material-ui/core';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { DraggableSidebarTemplate } from '../UI/templates/DraggableSidebarTemplate';\nimport { useActions, useActionState } from '../hooks/useActions';\nimport PropTypes from 'prop-types';\nimport { SidebarHeader } from '../UI/dataDisplay/typography/SidebarHeader';\nimport { SplitScreenTypeEnums } from '../enums/unitySystemEnums';\nimport { EntitySideBarContent } from './sidebar/EntitySideBarContent';\nimport { useTranslation } from 'react-i18next';\nimport { getEntityAttributes } from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { useUser } from '../utilities/auth/useUser';\nimport { PageContainer } from '../page/PageContainer';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { Skeleton } from '@material-ui/lab';\nimport { NotesScreen } from '../notes/NotesScreen';\nimport { useShellStore } from '../stores/shellStore';\nimport { RemindersScreen } from '../reminders/RemindersScreen';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/useBuildEnvironment';\nimport { ConfigService } from '../configService';\nconst SPEED_DIAL_ACTIONS = [\n SplitScreenTypeEnums.Notes,\n SplitScreenTypeEnums.Reminders\n];\n\nconst useStyles = makeStyles((theme) => ({\n splitScreen: {\n width: '100%',\n height: ({ shellHidden, appRibbonSpace }) =>\n `calc(100vh - ${shellHidden ? 0 : 56}px - ${appRibbonSpace}px)`,\n marginTop: (props) => (props.forPage ? '' : props.shellHidden ? 0 : 56)\n },\n card: {\n height: '100%',\n overflowY: 'auto',\n background: (props) =>\n SPEED_DIAL_ACTIONS.includes(props.type)\n ? theme?.getThemeData()?.mode === 'dark'\n ? theme.palette.grey[700]\n : '#f4f4f4'\n : ''\n },\n cardContent: {\n padding: (props) => (SPEED_DIAL_ACTIONS.includes(props.type) ? 0 : ''),\n '&:last-child': {\n paddingBottom: (props) =>\n SPEED_DIAL_ACTIONS.includes(props.type) ? 0 : ''\n },\n height: `calc(100% - 40px)` // 40px is the height of the sidebar header\n },\n title: {\n display: 'flex',\n flex: 1,\n alignItems: 'center',\n marginLeft: theme.spacing(1.5)\n },\n dataRoot: {\n marginTop: theme.spacing(2)\n },\n skeletonButton: {\n height: (props) => (props.forPage ? 'calc(84vh - 70px)' : '84vh')\n },\n sidebarRoot: {\n padding: (props) => (SPEED_DIAL_ACTIONS.includes(props.type) ? 0 : '')\n },\n actionButton: {\n marginRight: (props) => (SPEED_DIAL_ACTIONS.includes(props.type) ? 0 : '')\n }\n}));\n\nexport const ActionSplitScreen = (props) => {\n const {\n body,\n open,\n action,\n type = SplitScreenTypeEnums.Entity,\n params,\n executeAction,\n actionPanel,\n selectedNodeObj,\n menuNodeList,\n sidebarEntity,\n forPage = false,\n forPageContainer = false,\n selectedNode,\n selectedNodeParent,\n refreshTree,\n ...otherProps\n } = props;\n const shellHidden = useShellStore((state) => state.shellHidden);\n const currentContainerId = useShellStore((state) => state.currentContainerId);\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n shellHidden,\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const [width, setWidth] = useState(0);\n const { t } = useTranslation();\n const { openSplitScreen, openPageSplitScreen, openPageContainerSplitScreen } =\n useActions();\n const actionState = useActionState();\n const user = useUser();\n const formRef = useRef(null);\n\n const [{ data: page, loading: loadingPage }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${action?.parameters?.pageId}`,\n {},\n !!!action?.parameters?.pageId,\n false\n );\n\n const entityName = useMemo(() => {\n return actionPanel\n ? actionPanel.entityName\n : actionState?.inquiryParams[currentContainerId || 0]?.selectedNode\n ?.properties?.catalogReturnObject;\n }, [actionPanel, actionState, currentContainerId]);\n\n const entityAttributes = useMemo(() => {\n if (!actionState?.catalog) {\n return [];\n }\n\n return getEntityAttributes(actionState?.catalog, entityName);\n }, [entityName, actionState]);\n\n const openScreen = useMemo(\n () =>\n forPage\n ? forPageContainer\n ? openPageContainerSplitScreen\n : openPageSplitScreen\n : openSplitScreen,\n [\n forPage,\n openPageSplitScreen,\n openSplitScreen,\n forPageContainer,\n openPageContainerSplitScreen\n ]\n );\n\n const closeSplitScreen = useCallback(() => {\n if (params?.closeSplitScreenAction) {\n params.closeSplitScreenAction();\n }\n openScreen({ open: false, action: null, type: null });\n setWidth(0);\n }, [openScreen, params]);\n\n const onSubmitAction = useCallback(() => {\n switch (type) {\n case SplitScreenTypeEnums.Notes:\n formRef?.current.form.submit();\n break;\n case SplitScreenTypeEnums.Page:\n params?.onSubmit();\n break;\n case SplitScreenTypeEnums.Reminders:\n formRef?.current.form.submit();\n break;\n default:\n break;\n }\n }, [type, params]);\n\n const cardContent = useMemo(() => {\n let content = null;\n switch (type) {\n case SplitScreenTypeEnums.Entity:\n content = (\n <EntitySideBarContent\n action={action}\n executeAction={executeAction}\n entityAttributes={entityAttributes}\n selectedNodeObj={selectedNodeObj}\n apiCatalogId={actionState?.catalog?.apiCatalogId}\n entityName={entityName}\n sidebarEntity={sidebarEntity}\n menuNodeList={menuNodeList}\n closeSplitScreen={closeSplitScreen}\n />\n );\n break;\n case SplitScreenTypeEnums.Notes:\n content = (\n <NotesScreen\n formRef={formRef}\n shortcutContentFinderEnabled={true}\n id={params?.id}\n reloadNotes={params?.reloadNotes}\n />\n );\n break;\n case SplitScreenTypeEnums.Page:\n if (page) {\n content = (\n <DndProvider backend={HTML5Backend}>\n <PageContainer\n user={user}\n key={action?.actionId}\n pageData={page}\n widgetParams={{\n pageId: page?.pageId,\n contentId: selectedNode?.properties?.searchValue,\n requiredFieldsMap:\n action?.parameters?.requiredFieldMapping || {},\n nodeObj: selectedNode?.nodeObj,\n parentNodeObj: selectedNodeParent?.nodeObj,\n inquiryParams: selectedNode?.inquiryParams,\n refreshTree: refreshTree\n }}\n disableMargins={true}\n />\n </DndProvider>\n );\n } else if (loadingPage) {\n content = (\n <Skeleton variant='rect' className={classes.skeletonButton} />\n );\n } else {\n content = params?.content || null;\n }\n break;\n case SplitScreenTypeEnums.Reminders:\n content = (\n <RemindersScreen\n formRef={formRef}\n shortcutContentFinderEnabled={true}\n id={params?.id}\n reloadReminders={params?.reloadReminders}\n />\n );\n break;\n default:\n break;\n }\n return content;\n }, [\n type,\n action,\n executeAction,\n entityAttributes,\n selectedNodeObj,\n closeSplitScreen,\n menuNodeList,\n actionState,\n entityName,\n sidebarEntity,\n refreshTree,\n page,\n selectedNode,\n selectedNodeParent,\n user,\n loadingPage,\n classes,\n params\n ]);\n\n const headerTitle = useMemo(() => {\n let title = '';\n switch (type) {\n case SplitScreenTypeEnums.Entity:\n title = t(`${entityName} Details`);\n break;\n case SplitScreenTypeEnums.Notes:\n title = t(`Add Note`);\n break;\n case SplitScreenTypeEnums.Reminders:\n title = t(`Add Reminder`);\n break;\n default:\n title = params?.headerTitle || '';\n break;\n }\n return title;\n }, [entityName, type, t, params]);\n\n const buttonLabelVal = useMemo(() => {\n let label = '';\n switch (type) {\n case SplitScreenTypeEnums.Notes:\n label = t(`Save Note`);\n break;\n case SplitScreenTypeEnums.Page:\n label = t(params?.buttonLabel);\n break;\n case SplitScreenTypeEnums.Reminders:\n label = t(`Save Reminder`);\n break;\n default:\n break;\n }\n return label;\n }, [type, t, params]);\n\n useEffect(() => {\n if (open) {\n setWidth(params?.initialWidth ?? 420);\n }\n }, [open, params]);\n\n return (\n <DraggableSidebarTemplate\n removePadding={false}\n width={width}\n setWidth={setWidth}\n handleToggleClick={() => {}}\n hide={!open}\n expanded={false}\n maxWidth={params?.maxWidth}\n enable={{\n top: false,\n right: false,\n bottom: false,\n left: true,\n topRight: false,\n bottomRight: false,\n bottomLeft: false,\n topLeft: false\n }}\n body={body}\n sidebar={\n <Slide in={open} direction='left'>\n <div className={classes.splitScreen}>\n <Card square elevation={4} className={classes.card}>\n {!params?.hideHeader && (\n <SidebarHeader\n onClose={closeSplitScreen}\n title={headerTitle}\n buttonLabel={buttonLabelVal}\n buttonProgress={params?.buttonProgress}\n buttonVariant={params?.buttonVariant}\n buttonIcon={params?.buttonIcon}\n onSubmit={onSubmitAction}\n secondaryButtonLabel={params?.secondaryButtonLabel}\n secondaryButtonProgress={params?.secondaryButtonProgress}\n secondaryButtonVariant={params?.secondaryButtonVariant}\n secondaryButtonIcon={params?.secondaryButtonIcon}\n secondaryOnSubmit={params?.secondaryOnSubmit}\n additionalInputs={params?.additionalInputs || null}\n classes={{\n root: classes.sidebarRoot,\n actionButton: classes.actionButton\n }}\n {...otherProps}\n />\n )}\n <CardContent className={classes.cardContent}>\n {cardContent}\n </CardContent>\n </Card>\n </div>\n </Slide>\n }\n splitScreenStyle={{\n zIndex: 1000\n }}\n />\n );\n};\n\nActionSplitScreen.propTypes = {\n body: PropTypes.object,\n open: PropTypes.bool,\n action: PropTypes.object,\n executeAction: PropTypes.func,\n entityName: PropTypes.string,\n entityAttributes: PropTypes.array,\n selectedNodeObj: PropTypes.object,\n menuNodeList: PropTypes.array,\n showError: PropTypes.func\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"ActionSplitScreen-OFqIncG9.js","names":[],"sources":["../src/actions/ActionSplitScreen.jsx"],"sourcesContent":["import { Card, CardContent, makeStyles, Slide } from '@material-ui/core';\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState\n} from 'react';\nimport { DraggableSidebarTemplate } from '../UI/templates/DraggableSidebarTemplate';\nimport { useActions, useActionState } from '../hooks/useActions';\nimport PropTypes from 'prop-types';\nimport { SidebarHeader } from '../UI/dataDisplay/typography/SidebarHeader';\nimport { SplitScreenTypeEnums } from '../enums/unitySystemEnums';\nimport { EntitySideBarContent } from './sidebar/EntitySideBarContent';\nimport { useTranslation } from 'react-i18next';\nimport { getEntityAttributes } from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { useUser } from '../utilities/auth/useUser';\nimport { PageContainer } from '../page/PageContainer';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { Skeleton } from '@material-ui/lab';\nimport { NotesScreen } from '../notes/NotesScreen';\nimport { useShellStore } from '../stores/shellStore';\nimport { RemindersScreen } from '../reminders/RemindersScreen';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/useBuildEnvironment';\nimport { ConfigService } from '../configService';\nconst SPEED_DIAL_ACTIONS = [\n SplitScreenTypeEnums.Notes,\n SplitScreenTypeEnums.Reminders\n];\n\nconst useStyles = makeStyles((theme) => ({\n splitScreen: {\n width: '100%',\n height: ({ shellHidden, appRibbonSpace }) =>\n `calc(100vh - ${shellHidden ? 0 : 56}px - ${appRibbonSpace}px)`,\n marginTop: (props) => (props.forPage ? '' : props.shellHidden ? 0 : 56)\n },\n card: {\n height: '100%',\n overflowY: 'auto',\n background: (props) =>\n SPEED_DIAL_ACTIONS.includes(props.type)\n ? theme?.getThemeData()?.mode === 'dark'\n ? theme.palette.grey[700]\n : '#f4f4f4'\n : ''\n },\n cardContent: {\n padding: (props) => (SPEED_DIAL_ACTIONS.includes(props.type) ? 0 : ''),\n '&:last-child': {\n paddingBottom: (props) =>\n SPEED_DIAL_ACTIONS.includes(props.type) ? 0 : ''\n },\n height: `calc(100% - 40px)` // 40px is the height of the sidebar header\n },\n title: {\n display: 'flex',\n flex: 1,\n alignItems: 'center',\n marginLeft: theme.spacing(1.5)\n },\n dataRoot: {\n marginTop: theme.spacing(2)\n },\n skeletonButton: {\n height: (props) => (props.forPage ? 'calc(84vh - 70px)' : '84vh')\n },\n sidebarRoot: {\n padding: (props) => (SPEED_DIAL_ACTIONS.includes(props.type) ? 0 : '')\n },\n actionButton: {\n marginRight: (props) => (SPEED_DIAL_ACTIONS.includes(props.type) ? 0 : '')\n }\n}));\n\nexport const ActionSplitScreen = (props) => {\n const {\n body,\n open,\n action,\n type = SplitScreenTypeEnums.Entity,\n params,\n executeAction,\n actionPanel,\n selectedNodeObj,\n menuNodeList,\n sidebarEntity,\n forPage = false,\n forPageContainer = false,\n selectedNode,\n selectedNodeParent,\n refreshTree,\n ...otherProps\n } = props;\n const shellHidden = useShellStore((state) => state.shellHidden);\n const currentContainerId = useShellStore((state) => state.currentContainerId);\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n shellHidden,\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const [width, setWidth] = useState(0);\n const { t } = useTranslation();\n const { openSplitScreen, openPageSplitScreen, openPageContainerSplitScreen } =\n useActions();\n const actionState = useActionState();\n const user = useUser();\n const formRef = useRef(null);\n\n const [{ data: page, loading: loadingPage }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${action?.parameters?.pageId}`,\n {},\n !!!action?.parameters?.pageId,\n false\n );\n\n const entityName = useMemo(() => {\n return actionPanel\n ? actionPanel.entityName\n : actionState?.inquiryParams[currentContainerId || 0]?.selectedNode\n ?.properties?.catalogReturnObject;\n }, [actionPanel, actionState, currentContainerId]);\n\n const entityAttributes = useMemo(() => {\n if (!actionState?.catalog) {\n return [];\n }\n\n return getEntityAttributes(actionState?.catalog, entityName);\n }, [entityName, actionState]);\n\n const openScreen = useMemo(\n () =>\n forPage\n ? forPageContainer\n ? openPageContainerSplitScreen\n : openPageSplitScreen\n : openSplitScreen,\n [\n forPage,\n openPageSplitScreen,\n openSplitScreen,\n forPageContainer,\n openPageContainerSplitScreen\n ]\n );\n\n const closeSplitScreen = useCallback(() => {\n if (params?.closeSplitScreenAction) {\n params.closeSplitScreenAction();\n }\n openScreen({ open: false, action: null, type: null });\n setWidth(0);\n }, [openScreen, params]);\n\n const onSubmitAction = useCallback(() => {\n switch (type) {\n case SplitScreenTypeEnums.Notes:\n formRef?.current.form.submit();\n break;\n case SplitScreenTypeEnums.Page:\n params?.onSubmit();\n break;\n case SplitScreenTypeEnums.Reminders:\n formRef?.current.form.submit();\n break;\n default:\n break;\n }\n }, [type, params]);\n\n const cardContent = useMemo(() => {\n let content = null;\n switch (type) {\n case SplitScreenTypeEnums.Entity:\n content = (\n <EntitySideBarContent\n action={action}\n executeAction={executeAction}\n entityAttributes={entityAttributes}\n selectedNodeObj={selectedNodeObj}\n apiCatalogId={actionState?.catalog?.apiCatalogId}\n entityName={entityName}\n sidebarEntity={sidebarEntity}\n menuNodeList={menuNodeList}\n closeSplitScreen={closeSplitScreen}\n />\n );\n break;\n case SplitScreenTypeEnums.Notes:\n content = (\n <NotesScreen\n formRef={formRef}\n shortcutContentFinderEnabled={true}\n id={params?.id}\n reloadNotes={params?.reloadNotes}\n />\n );\n break;\n case SplitScreenTypeEnums.Page:\n if (page) {\n content = (\n <DndProvider backend={HTML5Backend}>\n <PageContainer\n user={user}\n key={action?.actionId}\n pageData={page}\n widgetParams={{\n pageId: page?.pageId,\n contentId: selectedNode?.properties?.searchValue,\n requiredFieldsMap:\n action?.parameters?.requiredFieldMapping || {},\n nodeObj: selectedNode?.nodeObj,\n parentNodeObj: selectedNodeParent?.nodeObj,\n inquiryParams: selectedNode?.inquiryParams,\n refreshTree: refreshTree\n }}\n disableMargins={true}\n />\n </DndProvider>\n );\n } else if (loadingPage) {\n content = (\n <Skeleton variant='rect' className={classes.skeletonButton} />\n );\n } else {\n content = params?.content || null;\n }\n break;\n case SplitScreenTypeEnums.Reminders:\n content = (\n <RemindersScreen\n formRef={formRef}\n shortcutContentFinderEnabled={true}\n id={params?.id}\n reloadReminders={params?.reloadReminders}\n />\n );\n break;\n default:\n break;\n }\n return content;\n }, [\n type,\n action,\n executeAction,\n entityAttributes,\n selectedNodeObj,\n closeSplitScreen,\n menuNodeList,\n actionState,\n entityName,\n sidebarEntity,\n refreshTree,\n page,\n selectedNode,\n selectedNodeParent,\n user,\n loadingPage,\n classes,\n params\n ]);\n\n const headerTitle = useMemo(() => {\n let title = '';\n switch (type) {\n case SplitScreenTypeEnums.Entity:\n title = t(`${entityName} Details`);\n break;\n case SplitScreenTypeEnums.Notes:\n title = t(`Add Note`);\n break;\n case SplitScreenTypeEnums.Reminders:\n title = t(`Add Reminder`);\n break;\n default:\n title = params?.headerTitle || '';\n break;\n }\n return title;\n }, [entityName, type, t, params]);\n\n const buttonLabelVal = useMemo(() => {\n let label = '';\n switch (type) {\n case SplitScreenTypeEnums.Notes:\n label = t(`Save Note`);\n break;\n case SplitScreenTypeEnums.Page:\n label = t(params?.buttonLabel);\n break;\n case SplitScreenTypeEnums.Reminders:\n label = t(`Save Reminder`);\n break;\n default:\n break;\n }\n return label;\n }, [type, t, params]);\n\n useEffect(() => {\n if (open) {\n setWidth(params?.initialWidth ?? 420);\n }\n }, [open, params]);\n\n return (\n <DraggableSidebarTemplate\n removePadding={false}\n width={width}\n setWidth={setWidth}\n handleToggleClick={() => {}}\n hide={!open}\n expanded={false}\n maxWidth={params?.maxWidth}\n enable={{\n top: false,\n right: false,\n bottom: false,\n left: true,\n topRight: false,\n bottomRight: false,\n bottomLeft: false,\n topLeft: false\n }}\n body={body}\n sidebar={\n <Slide in={open} direction='left'>\n <div className={classes.splitScreen}>\n <Card square elevation={4} className={classes.card}>\n {!params?.hideHeader && (\n <SidebarHeader\n onClose={closeSplitScreen}\n title={headerTitle}\n buttonLabel={buttonLabelVal}\n buttonProgress={params?.buttonProgress}\n buttonVariant={params?.buttonVariant}\n buttonIcon={params?.buttonIcon}\n onSubmit={onSubmitAction}\n secondaryButtonLabel={params?.secondaryButtonLabel}\n secondaryButtonProgress={params?.secondaryButtonProgress}\n secondaryButtonVariant={params?.secondaryButtonVariant}\n secondaryButtonIcon={params?.secondaryButtonIcon}\n secondaryOnSubmit={params?.secondaryOnSubmit}\n additionalInputs={params?.additionalInputs || null}\n classes={{\n root: classes.sidebarRoot,\n actionButton: classes.actionButton\n }}\n {...otherProps}\n />\n )}\n <CardContent className={classes.cardContent}>\n {cardContent}\n </CardContent>\n </Card>\n </div>\n </Slide>\n }\n splitScreenStyle={{\n zIndex: 1000\n }}\n />\n );\n};\n\nActionSplitScreen.propTypes = {\n body: PropTypes.object,\n open: PropTypes.bool,\n action: PropTypes.object,\n executeAction: PropTypes.func,\n entityName: PropTypes.string,\n entityAttributes: PropTypes.array,\n selectedNodeObj: PropTypes.object,\n menuNodeList: PropTypes.array,\n showError: PropTypes.func\n};\n"],"mappings":"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"}
@@ -17,8 +17,8 @@ import { n as useShellStore } from "./shellStore-C8zfPsZ-.js";
17
17
  import { n as useActions } from "./useActions-BWBXokgQ.js";
18
18
  import { i as mapRule, t as evaluateRule } from "./RuleUtilities-D5ACzikQ.js";
19
19
  import { t as PrimaryActionButton } from "./PrimaryActionButton-Dk8zvDAW.js";
20
- import { r as getSearchObject } from "./SearchUtilities-CNz302LN.js";
21
- import { S as getIconFromName } from "./TreeUtilities-kiPupulY.js";
20
+ import { r as getSearchObject } from "./SearchUtilities-B1TCyppF.js";
21
+ import { S as getIconFromName } from "./TreeUtilities-VCy2z4Qv.js";
22
22
  import { t as getUnityIconFromName } from "./UnityIconLibrary-CjIwzfjv.js";
23
23
  import { t as PAHAdditionalRightComponent } from "./PAHAdditionalRightComponent-DMOU9Mho.js";
24
24
  import { t as SiteHeaderRightComponent } from "./SiteHeaderRightComponent-BwFUg3ur.js";
@@ -28,7 +28,7 @@ import { n as SideSheet } from "./SideSheet-CDXVa_Kr.js";
28
28
  import { t as useAxiosGet } from "./useAxiosGet-CYnt6Hd0.js";
29
29
  import { t as PageContainer } from "./PageContainer-DTXNLt_2.js";
30
30
  import { t as executeQueryAdHoc } from "./methodUtils-CDx9usdO.js";
31
- import { t as ActionSplitScreen } from "./ActionSplitScreen-DeU-9YQb.js";
31
+ import { t as ActionSplitScreen } from "./ActionSplitScreen-OFqIncG9.js";
32
32
  import { t as usePromotedMethodEntity } from "./usePromotedMethodEntity-B4rk75tH.js";
33
33
  import React, { useCallback, useEffect, useMemo, useState } from "react";
34
34
  import { Dialog, DialogActions, DialogContent, DialogContentText, DialogTitle, Typography, makeStyles } from "@material-ui/core";
@@ -888,4 +888,4 @@ ActionWrapper.propTypes = {
888
888
 
889
889
  //#endregion
890
890
  export { ActionModal as a, ActionSpeedDial as i, ActionSideSheet as n, ActionForm as o, ActionPanelPlacement as r, ActionWrapper as t };
891
- //# sourceMappingURL=ActionWrapper-Btbpz4rx.js.map
891
+ //# sourceMappingURL=ActionWrapper-d9dIOSYB.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionWrapper-Btbpz4rx.js","names":["useStyles","useStyles","useStyles","makeStyles","useStyles","useStyles","entityName"],"sources":["../src/actions/ActionForm.jsx","../src/actions/ActionModal.jsx","../src/actions/ActionSpeedDial.tsx","../src/actions/ActionPanelPlacement.jsx","../src/actions/ActionSideSheet.jsx","../src/actions/ActionWrapper.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport { Form, FormButtons, SubmitButton } from '../utilities/form';\nimport { getPrimaryKeyValues } from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { useCrudActions } from '../hooks/crudActions';\nimport { CardinalityTypeEnums } from '../enums/unitySystemEnums';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginTop: theme.spacing(-2)\n },\n body: {\n marginTop: theme.spacing(2)\n },\n actions: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n display: 'flex',\n flexDirection: 'row'\n },\n title: {\n flexGrow: 1\n },\n divider: {\n marginTop: theme.spacing(2)\n },\n subject: {\n marginLeft: theme.spacing(1),\n display: 'flex',\n flexDirection: 'row',\n flexGrow: 1\n },\n switchRoot: {\n marginLeft: theme.spacing(1)\n },\n input: {\n height: 34,\n padding: 0\n },\n formTextInput: {\n fontSize: 13\n },\n labelRoot: {\n fontSize: 13\n }\n}));\n\nexport const ActionForm = (props) => {\n const {\n entityAttributes,\n foreignKeyData,\n onCreate,\n closeSideSheet,\n onUpdate,\n crudTableEditionData,\n crudTableFormData,\n udpFieldInfos\n } = props;\n const classes = useStyles();\n\n const { renderInputByFieldType } = useCrudActions();\n\n const primaryKeyValues = useMemo(\n () => getPrimaryKeyValues(entityAttributes, crudTableEditionData),\n [entityAttributes, crudTableEditionData]\n );\n\n // we'll need this to determine which property names are used as keys for many-to-many\n const manyToManyPropertyList = useMemo(() => {\n if (!entityAttributes?.length) return [];\n const mtmPropertyList = new Set();\n entityAttributes.forEach((attr) => {\n if (attr?.extendedProperties?.childEntity) {\n Object.keys(attr.extendedProperties.childEntityAssoc || {}).length &&\n attr.extendedProperties.childEntityAssoc.Cardinality ===\n CardinalityTypeEnums.Many_To_Many &&\n attr.extendedProperties.childEntityAssoc.Keys.forEach((value, i) => {\n const name = value.split(',')[0];\n if (name) {\n // check name string: if 1 word, lowercase. if 2 words, lower first char\n mtmPropertyList.add(name.toLowerCase());\n }\n });\n }\n });\n return mtmPropertyList;\n }, [entityAttributes]);\n\n const handleSubmit = async (values) => {\n let newTableData = {\n ...crudTableFormData,\n ...values\n };\n\n // remove identifiers from object\n entityAttributes\n .filter((ea) => ea?.extendedProperties?.identifier)\n .forEach((ea) => {\n delete newTableData[ea.name];\n });\n\n // transform values by fkData before creating/updating\n foreignKeyData.forEach((fkd) => {\n Object.keys(newTableData).forEach((key) => {\n if (key === fkd.fieldName) {\n newTableData[key] = fkd.data.find(\n (d) => d.id === newTableData[key].id\n )?.id;\n }\n });\n });\n\n const isNewRow = !crudTableEditionData;\n\n if (isNewRow) {\n onCreate && (await onCreate(newTableData));\n } else {\n onUpdate && (await onUpdate(newTableData, primaryKeyValues));\n }\n closeSideSheet && closeSideSheet();\n };\n\n const isNewEntry = useMemo(\n () => !crudTableEditionData,\n [crudTableEditionData]\n );\n\n return (\n <Form onSubmit={handleSubmit}>\n <div>\n {entityAttributes?.map((schemaAttribute, index) => {\n const fieldInfo = udpFieldInfos?.find(\n (fi) =>\n fi?.name.toLowerCase() === schemaAttribute?.name?.toLowerCase()\n );\n // If the field is an identity and is Updating form, we will make the field readOnly\n if (fieldInfo?.isPrimaryKey && !isNewEntry) {\n schemaAttribute.disabled = true;\n }\n if (fieldInfo?.isPrimaryKey && isNewEntry && !fieldInfo?.isIdentity) {\n schemaAttribute.disabled = false;\n }\n return (\n !schemaAttribute?.extendedProperties?.identifier && (\n <React.Fragment key={`${schemaAttribute.name}-${index}`}>\n <Typography variant='subtitle2' style={{ marginTop: 8 }}>\n {schemaAttribute.friendlyName}\n </Typography>\n {renderInputByFieldType(\n schemaAttribute,\n index,\n entityAttributes,\n fieldInfo,\n foreignKeyData,\n null,\n crudTableFormData,\n classes,\n false,\n null,\n manyToManyPropertyList\n )}\n </React.Fragment>\n )\n );\n })}\n </div>\n\n <FormButtons>\n <SubmitButton\n variant='contained'\n color='secondary'\n disablePristine={false}\n disabled={false}\n style={{ marginTop: 15 }}\n >\n Save\n </SubmitButton>\n </FormButtons>\n </Form>\n );\n};\n\nActionForm.propTypes = {\n /**\n * Entity attributes for selected entity within catalog\n */\n entityAttributes: PropTypes.array,\n /**\n * Foreign key data for selected entity within catalog\n */\n foreignKeyData: PropTypes.array,\n /**\n * Entity data\n */\n crudTableEditionData: PropTypes.array,\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n","import {\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n makeStyles\n} from '@material-ui/core';\nimport React from 'react';\nimport { FluentButton } from '../UI/inputs/buttons/FluentButton';\n\nconst useStyles = makeStyles((theme) => ({}));\n\nexport const ActionModal = (props) => {\n const {\n open,\n action,\n title,\n message = 'Are you sure you want to delete this row?',\n confirmAction = () => {},\n handleOnClose\n } = props;\n const classes = useStyles();\n\n return (\n <Dialog\n open={open}\n onClose={handleOnClose}\n aria-labelledby='alert-dialog-title'\n aria-describedby='alert-dialog-description'\n >\n <DialogTitle id='alert-dialog-title'>{title}</DialogTitle>\n <DialogContent>\n <DialogContentText id='alert-dialog-description'>\n {message}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <FluentButton\n onClick={handleOnClose}\n color='secondary'\n variant='contained'\n >\n Cancel\n </FluentButton>\n <FluentButton\n onClick={action}\n onMouseUp={() => {\n confirmAction();\n handleOnClose();\n }}\n autoFocus\n variant='outlined'\n >\n Confirm\n </FluentButton>\n </DialogActions>\n </Dialog>\n );\n};\n","import React, { useState } from 'react';\nimport SpeedDial, { SpeedDialProps } from '@material-ui/lab/SpeedDial';\nimport SpeedDialIcon from '@material-ui/lab/SpeedDialIcon';\nimport SpeedDialAction from '@material-ui/lab/SpeedDialAction';\nimport AddIcon from '@material-ui/icons/esm/Add';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { UnityFluentIcon } from '../utilities/iconLibrary/UnityFluentIcon';\nimport { getIconFromName } from '../utilities/tree/TreeUtilities';\nimport { getUnityIconFromName } from '../utilities/iconLibrary/UnityIconLibrary';\n\ninterface FluentSpeedDialProps extends SpeedDialProps {\n actions: Array<{\n icon: {\n type?: string;\n name: string;\n };\n name: string;\n onClick: Function;\n }>;\n}\n\nconst useStyles = makeStyles((theme) => {\n return {\n wrapper: {\n position: 'fixed',\n right: theme.spacing(0),\n bottom: theme.spacing(0),\n zIndex: 1200\n },\n speedDial: {\n position: 'absolute',\n '&.MuiSpeedDial-directionUp, &.MuiSpeedDial-directionLeft': {\n bottom: theme.spacing(2),\n right: theme.spacing(2)\n }\n },\n speedDialFab: {\n backgroundColor: 'black',\n borderRadius: 1,\n margin: 0,\n opacity: 0.75,\n '&:hover': {\n backgroundColor: 'black'\n },\n '&:focus': {\n backgroundColor: 'black'\n }\n },\n speadDialFabExpanded: {\n backgroundColor: 'black',\n borderRadius: 1,\n margin: 0,\n '&:hover': {\n backgroundColor: 'black'\n },\n '&:focus': {\n backgroundColor: 'black'\n }\n },\n speedDialActions: {\n '&.MuiSpeedDial-directionUp, &.MuiSpeedDial-actions': {\n paddingBottom: 0,\n marginBottom: 0,\n opacity: 0.75\n },\n '&:hover': {\n opacity: 1\n },\n '&:focus': {\n opacity: 1\n }\n },\n speedDialActionFab: {\n backgroundColor: 'black',\n borderRadius: 1,\n margin: 0,\n color: 'white',\n width: 56,\n height: 56\n }\n };\n});\n\nexport const ActionSpeedDial = (props: FluentSpeedDialProps): JSX.Element | null => {\n const [expanded, setExpanded] = useState(false);\n const classes = useStyles(expanded);\n // @ts-ignore\n const { open, ariaLabel, actions, ...otherProps } = props;\n if (!actions.length) return null;\n return (\n <div className={classes.wrapper}>\n <SpeedDial\n id={'udpRecord-ActionSpeedDial'}\n // @ts-ignore\n udprecordid={'udpRecord-ActionSpeedDial'}\n className={classes.speedDial}\n ariaLabel='Fluent Speed Dial'\n classes={{\n fab: expanded ? classes.speadDialFabExpanded : classes.speedDialFab,\n actions: classes.speedDialActions\n }}\n icon={<SpeedDialIcon\n icon={<AddIcon />}\n />}\n onClose={() => setExpanded(false)}\n onOpen={() => setExpanded(true)}\n open={expanded}\n {...otherProps}\n >\n {actions.map((action) => (\n <SpeedDialAction\n id={'udpRecord-ActionSpeedDial-'+action.name}\n // @ts-ignore\n udprecordid={'udpRecord-ActionSpeedDial-'+action.name}\n key={action.name}\n icon={\n /*<UnityFluentIcon component={Icons[action.icon.name]} {...action.icon}/>*/\n <UnityFluentIcon\n type={action.icon.type}\n icon={\n action.icon.type === 'unity'\n ? getUnityIconFromName(action.icon.name)\n : getIconFromName(action.icon.name)\n }\n />\n }\n open={false}\n onClick={e => action.onClick(e)}\n classes={{\n fab: classes.speedDialActionFab\n }}\n tooltipTitle={action.name}\n />\n ))}\n </SpeedDial>\n </div>\n );\n};\n","import { makeStyles, Typography } from '@material-ui/core';\nimport { cloneDeep } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useMemo } from 'react';\nimport { ActionSummaryPopover } from './actionSummary';\nimport { getIconFromName } from '../utilities/tree/TreeUtilities';\nimport { getUnityIconFromName } from '../utilities/iconLibrary/UnityIconLibrary';\nimport { PAHAdditionalRightComponent } from '../UI/utilityDisplay/utilityHeader/ui/PAHAdditionalRightComponent';\nimport { PanelPositionEnums } from '../enums/unitySystemEnums';\nimport { PrimaryActionButton } from '../UI/inputs/buttons/PrimaryActionButton';\nimport { SiteHeaderRightComponent } from '../shell/ui/SiteHeaderRightComponent';\nimport { ToolBarButton } from '../UI/inputs/buttons/ToolBarButton';\nimport { useActions } from '../hooks/useActions';\nimport { evaluateRule, mapRule } from '../utilities/rules/RuleUtilities';\nimport { ActionSpeedDial } from './ActionSpeedDial';\nimport { useActionStore } from '../stores/actionStore';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n actionsMenu: {\n color: theme?.palette?.getContrastText(theme?.palette?.primary?.main)\n },\n additionalRightComponent: {\n display: 'flex',\n alignItems: 'center'\n }\n}));\n\nexport const ActionPanelPlacement = (props) => {\n const {\n actionPanels,\n showInquiryHeaderActions,\n selectedNode,\n globalActions\n } = props;\n const classes = useStyles();\n const { triggerAction } = useActions();\n const hideActions = useActionStore((state) => state.hideActions);\n\n const handleTriggerAction = useCallback(\n (actionId) => {\n triggerAction(actionId, selectedNode?.nodeObj);\n },\n [triggerAction, selectedNode]\n );\n\n const panelsMap = useMemo(() => {\n if (!actionPanels || !actionPanels?.length) {\n return {};\n }\n return actionPanels.reduce((panelsObj, panel) => {\n const panelPositionId = panel?.panelPositionId;\n panelsObj[panelPositionId] = panel?.panelActions;\n return panelsObj;\n }, {});\n }, [actionPanels]);\n\n const siteHeaderRightComponent = useMemo(() => {\n const siteHeaderActions = panelsMap[PanelPositionEnums.Site_Header];\n const siteHeaderSummaryActions =\n panelsMap[PanelPositionEnums.Site_Header_Summary];\n let siteHeaderActionsComponent1 = null;\n let siteHeaderActionsComponent2 = null;\n let siteHeaderSummaryComponent = null;\n\n if (siteHeaderActions?.length) {\n siteHeaderActionsComponent1 = siteHeaderActions.map((panelAction) => {\n const passRule =\n panelAction.action.actionRules?.reduce((boolValue, rule) => {\n const ruleExpression = mapRule(rule.mapping, rule.jsonLogic);\n return (\n boolValue &&\n evaluateRule(\n ruleExpression,\n selectedNode?.nodeObj,\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n selectedNode?.wasLazyLoaded\n )\n );\n }, true) ?? true;\n\n if (!passRule && panelAction?.hideAction) {\n return null;\n }\n\n return (\n <ToolBarButton\n key={panelAction?.actionId}\n label={panelAction?.action?.name}\n aria={panelAction?.action?.name}\n icon={false}\n component={\n panelAction?.icon?.type === 'unity'\n ? getUnityIconFromName(panelAction?.icon?.name)\n : getIconFromName(panelAction?.icon?.name)\n }\n click={() => handleTriggerAction(panelAction?.actionId)}\n disabled={!passRule}\n />\n );\n });\n }\n\n if (siteHeaderSummaryActions?.length) {\n if (!siteHeaderActions?.length && siteHeaderSummaryActions?.length <= 2) {\n siteHeaderActionsComponent2 = siteHeaderSummaryActions.map(\n (panelAction) => {\n const passRule =\n panelAction.action.actionRules?.reduce((boolValue, rule) => {\n const ruleExpression = mapRule(rule.mapping, rule.jsonLogic);\n return (\n boolValue &&\n evaluateRule(\n ruleExpression,\n selectedNode?.nodeObj,\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n selectedNode?.wasLazyLoaded\n )\n );\n }, true) ?? true;\n\n if (!passRule && panelAction?.hideAction) {\n return null;\n }\n\n return (\n <ToolBarButton\n key={panelAction?.actionId}\n label={panelAction?.action?.name}\n aria={panelAction?.action?.name}\n icon={false}\n component={\n panelAction?.icon?.type === 'unity'\n ? getUnityIconFromName(panelAction?.icon?.name)\n : getIconFromName(panelAction?.icon?.name)\n }\n click={() => handleTriggerAction(panelAction?.actionId)}\n disabled={!passRule}\n />\n );\n }\n );\n } else {\n siteHeaderSummaryComponent = (\n <ActionSummaryPopover\n panelActions={siteHeaderSummaryActions}\n selectedNode={selectedNode}\n />\n );\n }\n }\n\n return (\n <SiteHeaderRightComponent>\n <div className={classes.additionalRightComponent}>\n {siteHeaderActionsComponent1}\n {siteHeaderActionsComponent2}\n {siteHeaderSummaryComponent}\n </div>\n </SiteHeaderRightComponent>\n );\n }, [panelsMap, handleTriggerAction, classes, selectedNode]);\n\n const inquiryHeaderComponent = useMemo(() => {\n const panelsMapCopy = cloneDeep(panelsMap);\n const inquiryHeaderActions =\n panelsMapCopy[PanelPositionEnums.Inquiry_Header];\n const inquiryHeaderSummaryActions =\n panelsMapCopy[PanelPositionEnums.Inquiry_Header_Summary];\n let inquiryHeaderActionsComponent = null;\n let inquiryHeaderSummaryComponent = null;\n let inquiryHeaderPrimaryAction = null;\n // if inquiry header summary actions length is more than 2, display the Actions as primary and the primary action as secondary.\n // otherwise, display the primary action as primary and Actions as secondary\n const showActionsAsSecondary =\n !inquiryHeaderSummaryActions?.length ||\n (!inquiryHeaderActions?.length &&\n inquiryHeaderSummaryActions?.length <= 2);\n\n if (inquiryHeaderActions?.length) {\n const actionList = [];\n inquiryHeaderActions.forEach((action) => {\n const passRule =\n action.action.actionRules?.reduce((boolValue, rule) => {\n const ruleExpression = mapRule(rule.mapping, rule.jsonLogic);\n return (\n boolValue &&\n evaluateRule(\n ruleExpression,\n selectedNode?.nodeObj,\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n selectedNode?.wasLazyLoaded\n )\n );\n }, true) ?? true;\n\n if (!passRule && !action?.hideAction) {\n actionList.push({ ...action, disabled: true });\n } else if (passRule) {\n actionList.push(action);\n }\n });\n\n inquiryHeaderActionsComponent = actionList\n ?.filter((pa) => {\n return showActionsAsSecondary\n ? !pa.isPrimary && pa.enabled\n : pa.enabled;\n })\n ?.map((panelAction, i) => (\n <div key={i}>\n <ToolBarButton\n // key={panelAction?.actionId}\n label={panelAction?.action?.name}\n aria={panelAction?.action?.name}\n icon={false}\n component={\n panelAction?.icon?.type === 'unity'\n ? getUnityIconFromName(panelAction?.icon?.name)\n : getIconFromName(panelAction?.icon?.name)\n }\n click={() => {\n handleTriggerAction(panelAction?.actionId);\n }}\n disabled={panelAction?.disabled ?? false}\n />\n </div>\n ));\n\n if (showActionsAsSecondary) {\n const primaryAction = actionList?.find(\n (panelAction) => panelAction.isPrimary\n );\n\n inquiryHeaderPrimaryAction = primaryAction ? (\n <PrimaryActionButton\n onClick={() => handleTriggerAction(primaryAction?.actionId)}\n disabled={primaryAction?.disabled ?? false}\n >\n <Typography style={{ marginRight: 5 }}>\n {primaryAction?.action?.name}\n </Typography>\n </PrimaryActionButton>\n ) : null;\n }\n }\n\n if (inquiryHeaderSummaryActions?.length) {\n if (showActionsAsSecondary) {\n inquiryHeaderActionsComponent = inquiryHeaderSummaryActions.map(\n (panelAction) => {\n const passRule =\n panelAction.action.actionRules?.reduce((boolValue, rule) => {\n const ruleExpression = mapRule(rule.mapping, rule.jsonLogic);\n return (\n boolValue &&\n evaluateRule(\n ruleExpression,\n selectedNode?.nodeObj,\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n selectedNode?.wasLazyLoaded\n )\n );\n }, true) ?? true;\n\n if (!passRule && panelAction?.hideAction) {\n return null;\n }\n\n return (\n <ToolBarButton\n key={panelAction?.actionId}\n label={panelAction?.action?.name}\n icon={false}\n component={\n panelAction?.icon?.type === 'unity'\n ? getUnityIconFromName(panelAction?.icon?.name)\n : getIconFromName(panelAction?.icon?.name)\n }\n click={() => handleTriggerAction(panelAction?.actionId)}\n disabled={!passRule}\n />\n );\n }\n );\n } else {\n inquiryHeaderSummaryComponent = (\n <ActionSummaryPopover\n panelActions={inquiryHeaderSummaryActions}\n noContrastColor={true}\n selectedNode={selectedNode}\n />\n );\n }\n }\n\n return (\n <PAHAdditionalRightComponent>\n {showInquiryHeaderActions && !hideActions && (\n <div className={classes.additionalRightComponent}>\n {inquiryHeaderActionsComponent}\n {inquiryHeaderPrimaryAction}\n {inquiryHeaderSummaryComponent}\n </div>\n )}\n </PAHAdditionalRightComponent>\n );\n }, [\n panelsMap,\n handleTriggerAction,\n classes,\n showInquiryHeaderActions,\n selectedNode,\n hideActions\n ]);\n\n const inquirySpeedDialComponent = useMemo(() => {\n const panelsMapCopy = cloneDeep(panelsMap);\n const inquirySpeedDialActions =\n panelsMapCopy[PanelPositionEnums.Speed_Dial];\n const enabledSortedActions =\n inquirySpeedDialActions\n ?.filter(\n (action) =>\n action.enabled &&\n (action.action.actionRules?.reduce((boolValue, rule) => {\n const ruleExpression = mapRule(rule.mapping, rule.jsonLogic);\n return (\n boolValue &&\n evaluateRule(\n ruleExpression,\n selectedNode?.nodeObj,\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n selectedNode?.wasLazyLoaded\n )\n );\n }, true) ??\n true)\n )\n .sort((a, b) => a.sequence - b.sequence) ?? [];\n let parsedGlobalActions = [];\n if (globalActions?.length) {\n parsedGlobalActions = globalActions.map((action) => {\n const parameters = JSON.parse(action.parameters);\n return {\n icon: { name: parameters.icon, type: 'fluent' },\n action: {\n name: action.name\n },\n ...action\n };\n });\n }\n return (\n (!!enabledSortedActions?.length || !!parsedGlobalActions?.length) &&\n !hideActions && (\n <ActionSpeedDial\n actions={[...enabledSortedActions, ...parsedGlobalActions].map(\n (action) => ({\n icon: action.icon,\n onClick: () => handleTriggerAction(action.actionId),\n name: action.action.name\n })\n )}\n />\n )\n );\n }, [\n panelsMap,\n handleTriggerAction,\n selectedNode,\n globalActions,\n hideActions\n ]);\n\n return (\n <>\n {siteHeaderRightComponent}\n {inquiryHeaderComponent}\n {inquirySpeedDialComponent}\n </>\n );\n};\n\nActionPanelPlacement.propTypes = {\n /**\n * Action Panels\n */\n actionPanels: PropTypes.array,\n /**\n * Boolean to show inquiry header actions\n */\n showInquiryHeaderActions: PropTypes.bool,\n /**\n * Action Panels\n */\n selectedNode: PropTypes.object\n};\n","import { makeStyles } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { useSnackbar } from 'notistack';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../configService';\nimport { ActionForm } from './ActionForm';\nimport { getPathObject } from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { getSuccessAction } from '../UI/SuccessAction';\nimport { LayoutUnit } from '../layout/LayoutUnit';\nimport { NodeActionEnums } from '../enums/unitySystemEnums';\nimport { SideSheet } from '../UI/surfaces/SideSheet';\nimport { useActions } from '../hooks/useActions';\nimport { useUser } from '../utilities/auth/useUser';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { PageContainer } from '../page/PageContainer';\nimport { useActionStore } from '../stores/actionStore';\n\nconst useStyles = makeStyles((theme) => ({\n root: {}\n}));\n\nexport const ActionSideSheet = (props) => {\n const {\n open,\n action,\n actionPanel,\n selectedNodeObj,\n executeAction,\n selectedEntity,\n handleOnClose,\n entityAttributes,\n foreignKeyData,\n loadingContent,\n fetchEntityData,\n skeleton,\n showError,\n crudTableEditionData,\n crudTableFormData,\n selectedNode,\n selectedNodeParent,\n refreshTree,\n udpFieldInfos\n } = props;\n const classes = useStyles();\n const [width, setWidth] = useState(600);\n const [buttonLabel, setButtonLabel] = useState('');\n const [onSubmit, setOnSubmit] = useState(\n () => () => console.warn('onSubmit not set')\n );\n const [additionalOnClose, setAdditionalOnClose] = useState();\n const [otherSideSheetProps, setOtherSideSheetProps] = useState({});\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const successAction = getSuccessAction(closeSnackbar);\n const { t } = useTranslation();\n const user = useUser();\n\n const setSelectedNodeForStore = useActionStore(\n (state) => state.setSelectedNode\n );\n const selectedNodeFromStore = useActionStore((state) => state.selectedNode);\n\n const promotedMethodPageId = useMemo(() => {\n if (action?.value) {\n if (selectedEntity?.unityBaseUpdateMethod?.apiMethodId === action.value) {\n return selectedEntity.unityBaseUpdateMethod.pageId;\n } else if (\n selectedEntity?.unityBaseCreateMethod?.apiMethodId === action.value\n ) {\n return selectedEntity.unityBaseCreateMethod.pageId;\n }\n }\n return '';\n }, [selectedEntity, action]);\n\n const [{ data: page, loading: loadingPage }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${action?.parameters?.pageId || promotedMethodPageId}`,\n {},\n !!!action?.parameters?.pageId && !!!promotedMethodPageId,\n false\n );\n\n const onCreate = useCallback(\n async (data) => {\n if (selectedEntity?.unityBaseCreateMethod && action?.value) {\n if (selectedEntity.unityBaseCreateMethod.apiMethodId === action.value) {\n return await executeAction(data, action.value);\n } else {\n showError();\n }\n }\n },\n [action, executeAction, selectedEntity, showError]\n );\n\n const onUpdate = useCallback(\n async (data) => {\n if (selectedEntity?.unityBaseUpdateMethod && action?.value) {\n if (selectedEntity.unityBaseUpdateMethod.apiMethodId === action.value) {\n return await executeAction(data, action.value);\n } else {\n showError();\n }\n }\n },\n [action, executeAction, selectedEntity, showError]\n );\n\n const handleFetchEntityData = useCallback(async () => {\n if (selectedEntity?.unityBaseGetAllMethod) {\n const data = {};\n const response = await fetchEntityData({ data }).catch((res) => {\n enqueueSnackbar(res.message, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n\n if (response?.status === 200 && selectedNodeObj) {\n const updatedNode = response.data.find(\n (d) => d.id === selectedNodeObj.id\n );\n\n const updatedSelectedNode = { ...selectedNodeFromStore };\n updatedSelectedNode.nodeObj = updatedNode;\n setSelectedNodeForStore(updatedSelectedNode);\n }\n }\n }, [\n enqueueSnackbar,\n fetchEntityData,\n selectedEntity,\n selectedNodeObj,\n setSelectedNodeForStore,\n selectedNodeFromStore\n ]);\n\n const handleOnCreate = useCallback(\n async (values) => {\n if (selectedEntity && selectedEntity?.unityBaseCreateMethod) {\n const entityName = selectedEntity?.entityName;\n if (selectedEntity.unityBaseCreateMethod) {\n const data = { requestBody: values };\n const response = await onCreate({ data }).catch((res) => {\n enqueueSnackbar(res.message, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n\n if (response?.status === 200) {\n enqueueSnackbar(\n entityName\n ? t(`${entityName} has been created`)\n : t(`Entity has been created`),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n }\n } else {\n enqueueSnackbar(t(`Unable to retrieve entity methods`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }\n },\n [enqueueSnackbar, onCreate, selectedEntity, successAction, t]\n );\n\n const handleOnUpdate = useCallback(\n async (values, primaryKeyValues) => {\n if (selectedEntity && selectedEntity?.unityBaseUpdateMethod) {\n const entityName = selectedEntity?.entityName;\n\n if (selectedEntity.unityBaseUpdateMethod) {\n // Get primary key value object using path parameters and merge with data\n const pathObject = getPathObject(\n selectedEntity.unityBaseUpdateMethod.pathParameters,\n primaryKeyValues\n );\n const data = { ...pathObject, requestBody: values };\n const response = await onUpdate({ data }).catch((res) => {\n enqueueSnackbar(res.message, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n\n if (response?.status === 200) {\n enqueueSnackbar(\n entityName\n ? t(`${entityName} has been updated`)\n : t(`Entity has been updated`),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n\n handleFetchEntityData();\n }\n }\n } else {\n enqueueSnackbar(t(`Unable to retrieve entity methods`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }\n },\n [\n selectedEntity,\n onUpdate,\n enqueueSnackbar,\n t,\n successAction,\n handleFetchEntityData\n ]\n );\n\n const handleOnCloseSideSheet = useCallback(() => {\n if (additionalOnClose) {\n additionalOnClose();\n }\n handleOnClose();\n }, [additionalOnClose, handleOnClose]);\n\n // const primaryKeyValues = useMemo(\n // () => getPrimaryKeyValues(entityAttributes, null),\n // [entityAttributes]\n // );\n\n // @TODO: Need to add a check if a promoted method for specific Entity has a static page\n // linked to it. It can fall back to it if there is no actions page\n const content = useMemo(() => {\n if (page) {\n return (\n <DndProvider backend={HTML5Backend}>\n <PageContainer\n user={user}\n key={action?.actionId}\n pageData={page}\n widgetParams={{\n pageId: page?.pageId,\n contentId: selectedNode?.properties?.searchValue,\n nodeObj: selectedNode?.nodeObj,\n parentNodeObj: selectedNodeParent?.nodeObj,\n inquiryParams: selectedNode?.inquiryParams,\n refreshTree: refreshTree,\n requiredFieldsMap: action?.parameters?.requiredFieldMapping || {},\n setSideSheetWidth: setWidth,\n setSideSheetButtonLabel: setButtonLabel,\n setSideSheetOnSubmit: setOnSubmit,\n setSideSheetAdditionalOnClose: setAdditionalOnClose,\n setSideSheetProps: setOtherSideSheetProps,\n closeSideSheet: handleOnClose,\n onCreate: onCreate,\n onUpdate: onUpdate\n }}\n disableMargins={true}\n />\n </DndProvider>\n );\n } else {\n return (\n <ActionForm\n key={action?.actionId}\n entityAttributes={entityAttributes}\n foreignKeyData={foreignKeyData}\n onCreate={handleOnCreate}\n closeSideSheet={handleOnClose}\n onUpdate={handleOnUpdate}\n crudTableEditionData={crudTableEditionData}\n crudTableFormData={crudTableFormData}\n udpFieldInfos={udpFieldInfos}\n />\n );\n }\n }, [\n action,\n crudTableEditionData,\n crudTableFormData,\n entityAttributes,\n foreignKeyData,\n handleOnClose,\n handleOnCreate,\n handleOnUpdate,\n selectedNode,\n selectedNodeParent,\n refreshTree,\n user,\n page,\n onCreate,\n onUpdate,\n udpFieldInfos\n ]);\n\n const sideSheetTitle = useMemo(() => {\n if (action?.parameters?.pageDisplayName) {\n return action.parameters.pageDisplayName;\n } else if (page) {\n return page?.name;\n } else {\n return (\n (action?.actionTypeId === NodeActionEnums.Create\n ? 'Add new '\n : 'Edit ') +\n (action?.parameters?.entityName ?? actionPanel?.entityName)\n );\n }\n }, [action, actionPanel, page]);\n\n return (\n <SideSheet\n open={open}\n title={t(sideSheetTitle)}\n buttonLabel={t(buttonLabel)}\n onSubmit={onSubmit}\n onClose={handleOnCloseSideSheet}\n width={width}\n {...otherSideSheetProps}\n >\n {loadingContent || loadingPage ? (\n <>\n {skeleton.map((sk, index) => (\n <React.Fragment key={index}>{sk}</React.Fragment>\n ))}\n <LayoutUnit unit='md' />\n <Skeleton variant='rect' className={classes.skeletonButton} />\n </>\n ) : (\n content\n )}\n </SideSheet>\n );\n};\n\nActionSideSheet.propTypes = {\n /**\n * User object\n */\n user: PropTypes.object,\n /**\n * boolean to open/close sidesheet\n */\n open: PropTypes.bool,\n /**\n * dispatch function\n */\n dispatch: PropTypes.func,\n /**\n * selected action object\n */\n action: PropTypes.object,\n /**\n * action panels array\n */\n actionPanels: PropTypes.array,\n /**\n * catalog object\n */\n catalog: PropTypes.object,\n /**\n * Selected node object\n */\n selectedNodeObj: PropTypes.object\n};\n","import { makeStyles } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { useSnackbar } from 'notistack';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ActionSplitScreen } from './ActionSplitScreen';\nimport { ActionModal } from './ActionModal';\nimport { ActionPanelPlacement } from './ActionPanelPlacement';\nimport { ActionSideSheet } from './ActionSideSheet';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport {\n getPathObject,\n getPrimaryKeyValues\n} from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { getSuccessAction } from '../UI/SuccessAction';\nimport { LayoutUnit } from '../layout/LayoutUnit';\nimport { toLowerFirstChar } from '../utilities/input/StringUtilities';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { useCrudActions } from '../hooks/crudActions';\nimport { useActionStore } from '../stores/actionStore';\nimport { useShellStore } from '../stores/shellStore';\nimport { usePromotedMethodEntity } from '../hooks/usePromotedMethodEntity';\nimport { getSanitizedName } from '../utilities/entities/entityUtilities';\nimport { getSearchObject } from '../utilities/search/SearchUtilities';\nimport { executeQueryAdHoc } from '../udp/utilities/methodUtils';\nimport { ConfigService } from '../configService';\n\nconst useStyles = makeStyles((theme) => ({}));\n\nconst FIELD_NUMBER = 10;\n\nexport const ActionWrapper = (props) => {\n const {\n actionState,\n actionPanel,\n dispatch,\n catalog,\n executeAction,\n splitScreenBody,\n entityAttributes,\n foreignKeyData,\n setForeignKeyData,\n crudTableEditionData,\n crudTableFormData,\n globalActions\n } = props;\n const classes = useStyles();\n\n const { getFKData } = useCrudActions();\n\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const successAction = getSuccessAction(closeSnackbar);\n const { t } = useTranslation();\n const [fkMethodEntities, setFKMethodEntities] = useState([]);\n const [loadingContent, setLoadingContent] = useState(true);\n const [udpFieldInfos, setUdpFieldInfos] = useState([]);\n\n const selectedNode = useActionStore((state) => state.selectedNode);\n const currentContainerId = useShellStore((state) => state.currentContainerId);\n\n const { data: udpOjectFieldInfo } = usePromotedMethodEntity(\n 'UdpObjectFieldInfo',\n true\n );\n\n const entityName = useMemo(() => {\n return actionPanel\n ? actionPanel.entityName\n : actionState?.inquiryParams[currentContainerId || 0]?.selectedNode\n ?.properties?.catalogReturnObject;\n }, [actionPanel, actionState, currentContainerId]);\n\n const [{ data: selectedEntity }] = useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${catalog?.apiCatalogId}/promotedMethodEntities/${entityName}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!catalog?.apiCatalogId || !!!entityName,\n false\n );\n\n const getMetaDataForUdpField = useCallback(\n async (entityName) => {\n let fieldInfos = [];\n if (udpOjectFieldInfo?.unityBaseSearchMethod?.apiMethodId) {\n const filterElements = [\n {\n searchField: 'ObjectInfo.SanitizedName',\n searchOperator: '=',\n searchValue: getSanitizedName(entityName)\n }\n ];\n const requestObj = getSearchObject(filterElements, 1, 50, true);\n\n await executeQueryAdHoc(\n { data: requestObj },\n udpOjectFieldInfo.unityBaseSearchMethod.apiMethodId\n ).then((resp) => {\n fieldInfos = resp.data?.pageList;\n });\n }\n return fieldInfos;\n },\n [udpOjectFieldInfo]\n );\n\n const fetchEntityData = useCallback(\n async (data) => {\n if (selectedEntity?.unityBaseGetAllMethod)\n return await executeAction(\n data,\n selectedEntity.unityBaseGetAllMethod.apiMethodId\n );\n },\n [executeAction, selectedEntity]\n );\n\n const showError = useCallback(() => {\n enqueueSnackbar(t(`Invalid action value.`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }, [enqueueSnackbar, t]);\n\n const getFKMethodEntities = useCallback(\n async (attributes) => {\n if (!attributes || !catalog) {\n return [];\n }\n let fkData = [];\n\n for (const attr of attributes) {\n // check if there is a property with this childEntity\n if (attr?.extendedProperties?.childEntity) {\n // get the list of child entity field names from the Keys array\n const ceFieldsArr = [];\n Object.keys(attr.extendedProperties.childEntityAssoc || {}).length &&\n !attr.extendedProperties.childEntityAssoc.UdpType &&\n attr.extendedProperties.childEntityAssoc.Keys.forEach(\n (value, i) => {\n const name = value.split(',')[0];\n if (name) {\n // check name string: if 1 word, lowercase. if 2 words, lower first char\n ceFieldsArr.push({\n idx: i,\n name: /^[A-Z]*$/.test(name)\n ? name.toLowerCase()\n : toLowerFirstChar(name)\n });\n }\n }\n );\n\n // find the child entity attribute\n const ceAttr = attributes.find((p) =>\n ceFieldsArr.find(\n (cef) => cef.name === p.name && !p?.extendedProperties?.identifier\n )\n );\n\n if (ceAttr) {\n // get list of entity if ceProp exists\n await apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${catalog.apiCatalogId}/promotedMethodEntities/${attr.reference}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {\n method: 'get'\n },\n {}\n ).then((resp) => {\n if (resp && resp.data) {\n fkData.push({ fkName: ceAttr.name, entity: resp.data });\n }\n });\n }\n }\n }\n setFKMethodEntities(fkData);\n },\n [catalog]\n );\n\n const handleOnClose = useCallback(\n (type, entity) => {\n dispatch({ type: type, entity });\n },\n [dispatch]\n );\n\n const onDelete = useCallback(\n async (data) => {\n if (selectedEntity?.unityBaseDeleteMethod) {\n if (\n selectedEntity.unityBaseDeleteMethod.apiMethodId ===\n actionState?.modal?.action?.value\n ) {\n return await executeAction(data, actionState?.modal?.action?.value);\n } else {\n showError();\n }\n }\n },\n [actionState, executeAction, selectedEntity, showError]\n );\n\n const handleOnDelete = useCallback(\n async (value) => {\n if (selectedEntity) {\n const entityName = selectedEntity?.entityName;\n\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = getPrimaryKeyValues(entityAttributes, value);\n const pathObject = getPathObject(\n selectedEntity?.unityBaseDeleteMethod.pathParameters,\n primaryKeyValues\n );\n\n if (selectedEntity?.unityBaseDeleteMethod) {\n const data = { ...pathObject };\n const response = await onDelete({ data }).catch((res) => {\n enqueueSnackbar(res.message, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n\n if (response?.status === 200) {\n enqueueSnackbar(\n entityName\n ? t(`${entityName} has been deleted`)\n : t(`Entity has been deleted`),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n if (\n actionState?.menuListState &&\n actionState?.menuListState?.menuList.length > 0\n ) {\n const handleRemoveMenuItem =\n actionState?.menuListState?.handleRemoveMenuItem;\n if (handleRemoveMenuItem) {\n handleRemoveMenuItem(actionState?.menuListState?.menuList);\n }\n }\n fetchEntityData({ data: {} });\n }\n }\n }\n },\n [\n actionState,\n enqueueSnackbar,\n entityAttributes,\n fetchEntityData,\n onDelete,\n selectedEntity,\n successAction,\n t\n ]\n );\n\n const skeleton = useMemo(() => {\n const skeletonArr = [];\n for (let i = 0; i < FIELD_NUMBER; i++) {\n skeletonArr.push(\n <>\n <Skeleton key={i} variant='rect' className={classes.skeleton} />\n <LayoutUnit unit='xxs' />\n </>\n );\n }\n return skeletonArr;\n }, [classes]);\n\n useEffect(() => {\n if (entityAttributes) {\n getFKMethodEntities(entityAttributes);\n setLoadingContent(false);\n }\n }, [entityAttributes, getFKMethodEntities]);\n\n useEffect(() => {\n if (entityAttributes && fkMethodEntities && fkMethodEntities.length > 0) {\n getFKData(fkMethodEntities, setForeignKeyData, enqueueSnackbar);\n }\n }, [\n enqueueSnackbar,\n entityAttributes,\n fkMethodEntities,\n getFKData,\n setForeignKeyData\n ]);\n\n useEffect(() => {\n const setFieldInfos = async () => {\n if(!entityName) return;\n let response = await getMetaDataForUdpField(entityName);\n setUdpFieldInfos(response);\n };\n if (udpOjectFieldInfo?.unityBaseSearchMethod?.apiMethodId) {\n setFieldInfos();\n }\n }, [getMetaDataForUdpField, udpOjectFieldInfo, entityName]);\n\n return (\n <>\n <ActionSplitScreen\n body={\n <>\n {splitScreenBody}\n <ActionPanelPlacement\n actionPanels={actionState?.actionPanels[currentContainerId || 0]}\n showInquiryHeaderActions={actionState?.showInquiryHeaderActions}\n selectedNode={\n actionState?.inquiryParams[currentContainerId || 0]\n ?.selectedNode\n }\n globalActions={globalActions}\n />\n </>\n }\n open={actionState?.splitScreen?.open}\n action={actionState?.splitScreen?.action}\n type={actionState?.splitScreen?.type}\n params={actionState?.splitScreen?.params}\n executeAction={executeAction}\n actionPanel={actionPanel}\n selectedNodeObj={selectedNode?.nodeObj}\n menuNodeList={actionState?.menuListState?.menuList}\n sidebarEntity={selectedEntity}\n selectedNode={\n actionState?.inquiryParams[currentContainerId || 0]?.selectedNode\n }\n selectedNodeParent={\n actionState?.inquiryParams[currentContainerId || 0]\n ?.selectedNodeParent\n }\n refreshTree={\n actionState?.inquiryParams[currentContainerId || 0]?.refreshTree\n }\n />\n <ActionSideSheet\n key={actionState?.sideSheet?.action?.actionId}\n open={actionState?.sideSheet?.open}\n dispatch={dispatch}\n action={actionState?.sideSheet?.action}\n actionPanel={actionPanel}\n selectedNodeObj={selectedNode?.nodeObj}\n executeAction={executeAction}\n selectedEntity={selectedEntity}\n handleOnClose={() => {\n const sideSheet = { open: false, action: null };\n handleOnClose('OPEN_SIDESHEET', sideSheet);\n }}\n entityAttributes={entityAttributes}\n foreignKeyData={foreignKeyData}\n loadingContent={loadingContent}\n fetchEntityData={fetchEntityData}\n skeleton={skeleton}\n showError={showError}\n crudTableEditionData={crudTableEditionData}\n crudTableFormData={crudTableFormData}\n selectedNode={\n actionState?.inquiryParams[currentContainerId || 0]?.selectedNode\n }\n selectedNodeParent={\n actionState?.inquiryParams[currentContainerId || 0]\n ?.selectedNodeParent\n }\n refreshTree={\n actionState?.inquiryParams[currentContainerId || 0]?.refreshTree\n }\n udpFieldInfos={udpFieldInfos}\n />\n <ActionModal\n open={actionState?.modal?.open}\n action={actionState?.modal?.action}\n title={actionState?.modal?.title + selectedEntity?.entityName}\n message={t(\n `Are you sure you want to delete this ${selectedEntity?.entityName}?`\n )}\n confirmAction={() => handleOnDelete(selectedNode?.nodeObj)}\n handleOnClose={() => {\n const modal = { open: false, action: null };\n handleOnClose('OPEN_MODAL', modal);\n }}\n showError={showError}\n />\n </>\n );\n};\n\nActionWrapper.propTypes = {\n actionState: PropTypes.object,\n actionPanel: PropTypes.object,\n dispatch: PropTypes.func,\n catalog: PropTypes.object,\n executeAction: PropTypes.func,\n user: PropTypes.object,\n splitScreenBody: PropTypes.object\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"ActionWrapper-d9dIOSYB.js","names":["useStyles","useStyles","useStyles","makeStyles","useStyles","useStyles","entityName"],"sources":["../src/actions/ActionForm.jsx","../src/actions/ActionModal.jsx","../src/actions/ActionSpeedDial.tsx","../src/actions/ActionPanelPlacement.jsx","../src/actions/ActionSideSheet.jsx","../src/actions/ActionWrapper.jsx"],"sourcesContent":["import React, { useMemo } from 'react';\nimport { makeStyles, Typography } from '@material-ui/core';\nimport { Form, FormButtons, SubmitButton } from '../utilities/form';\nimport { getPrimaryKeyValues } from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { useCrudActions } from '../hooks/crudActions';\nimport { CardinalityTypeEnums } from '../enums/unitySystemEnums';\nimport PropTypes from 'prop-types';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginTop: theme.spacing(-2)\n },\n body: {\n marginTop: theme.spacing(2)\n },\n actions: {\n marginTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n display: 'flex',\n flexDirection: 'row'\n },\n title: {\n flexGrow: 1\n },\n divider: {\n marginTop: theme.spacing(2)\n },\n subject: {\n marginLeft: theme.spacing(1),\n display: 'flex',\n flexDirection: 'row',\n flexGrow: 1\n },\n switchRoot: {\n marginLeft: theme.spacing(1)\n },\n input: {\n height: 34,\n padding: 0\n },\n formTextInput: {\n fontSize: 13\n },\n labelRoot: {\n fontSize: 13\n }\n}));\n\nexport const ActionForm = (props) => {\n const {\n entityAttributes,\n foreignKeyData,\n onCreate,\n closeSideSheet,\n onUpdate,\n crudTableEditionData,\n crudTableFormData,\n udpFieldInfos\n } = props;\n const classes = useStyles();\n\n const { renderInputByFieldType } = useCrudActions();\n\n const primaryKeyValues = useMemo(\n () => getPrimaryKeyValues(entityAttributes, crudTableEditionData),\n [entityAttributes, crudTableEditionData]\n );\n\n // we'll need this to determine which property names are used as keys for many-to-many\n const manyToManyPropertyList = useMemo(() => {\n if (!entityAttributes?.length) return [];\n const mtmPropertyList = new Set();\n entityAttributes.forEach((attr) => {\n if (attr?.extendedProperties?.childEntity) {\n Object.keys(attr.extendedProperties.childEntityAssoc || {}).length &&\n attr.extendedProperties.childEntityAssoc.Cardinality ===\n CardinalityTypeEnums.Many_To_Many &&\n attr.extendedProperties.childEntityAssoc.Keys.forEach((value, i) => {\n const name = value.split(',')[0];\n if (name) {\n // check name string: if 1 word, lowercase. if 2 words, lower first char\n mtmPropertyList.add(name.toLowerCase());\n }\n });\n }\n });\n return mtmPropertyList;\n }, [entityAttributes]);\n\n const handleSubmit = async (values) => {\n let newTableData = {\n ...crudTableFormData,\n ...values\n };\n\n // remove identifiers from object\n entityAttributes\n .filter((ea) => ea?.extendedProperties?.identifier)\n .forEach((ea) => {\n delete newTableData[ea.name];\n });\n\n // transform values by fkData before creating/updating\n foreignKeyData.forEach((fkd) => {\n Object.keys(newTableData).forEach((key) => {\n if (key === fkd.fieldName) {\n newTableData[key] = fkd.data.find(\n (d) => d.id === newTableData[key].id\n )?.id;\n }\n });\n });\n\n const isNewRow = !crudTableEditionData;\n\n if (isNewRow) {\n onCreate && (await onCreate(newTableData));\n } else {\n onUpdate && (await onUpdate(newTableData, primaryKeyValues));\n }\n closeSideSheet && closeSideSheet();\n };\n\n const isNewEntry = useMemo(\n () => !crudTableEditionData,\n [crudTableEditionData]\n );\n\n return (\n <Form onSubmit={handleSubmit}>\n <div>\n {entityAttributes?.map((schemaAttribute, index) => {\n const fieldInfo = udpFieldInfos?.find(\n (fi) =>\n fi?.name.toLowerCase() === schemaAttribute?.name?.toLowerCase()\n );\n // If the field is an identity and is Updating form, we will make the field readOnly\n if (fieldInfo?.isPrimaryKey && !isNewEntry) {\n schemaAttribute.disabled = true;\n }\n if (fieldInfo?.isPrimaryKey && isNewEntry && !fieldInfo?.isIdentity) {\n schemaAttribute.disabled = false;\n }\n return (\n !schemaAttribute?.extendedProperties?.identifier && (\n <React.Fragment key={`${schemaAttribute.name}-${index}`}>\n <Typography variant='subtitle2' style={{ marginTop: 8 }}>\n {schemaAttribute.friendlyName}\n </Typography>\n {renderInputByFieldType(\n schemaAttribute,\n index,\n entityAttributes,\n fieldInfo,\n foreignKeyData,\n null,\n crudTableFormData,\n classes,\n false,\n null,\n manyToManyPropertyList\n )}\n </React.Fragment>\n )\n );\n })}\n </div>\n\n <FormButtons>\n <SubmitButton\n variant='contained'\n color='secondary'\n disablePristine={false}\n disabled={false}\n style={{ marginTop: 15 }}\n >\n Save\n </SubmitButton>\n </FormButtons>\n </Form>\n );\n};\n\nActionForm.propTypes = {\n /**\n * Entity attributes for selected entity within catalog\n */\n entityAttributes: PropTypes.array,\n /**\n * Foreign key data for selected entity within catalog\n */\n foreignKeyData: PropTypes.array,\n /**\n * Entity data\n */\n crudTableEditionData: PropTypes.array,\n /**\n * onClick event for closing sidesheet\n */\n closeSideSheet: PropTypes.func,\n /**\n * onClick event for creating\n */\n onCreate: PropTypes.func,\n /**\n * onClick event for updating\n */\n onUpdate: PropTypes.func\n};\n","import {\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n makeStyles\n} from '@material-ui/core';\nimport React from 'react';\nimport { FluentButton } from '../UI/inputs/buttons/FluentButton';\n\nconst useStyles = makeStyles((theme) => ({}));\n\nexport const ActionModal = (props) => {\n const {\n open,\n action,\n title,\n message = 'Are you sure you want to delete this row?',\n confirmAction = () => {},\n handleOnClose\n } = props;\n const classes = useStyles();\n\n return (\n <Dialog\n open={open}\n onClose={handleOnClose}\n aria-labelledby='alert-dialog-title'\n aria-describedby='alert-dialog-description'\n >\n <DialogTitle id='alert-dialog-title'>{title}</DialogTitle>\n <DialogContent>\n <DialogContentText id='alert-dialog-description'>\n {message}\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <FluentButton\n onClick={handleOnClose}\n color='secondary'\n variant='contained'\n >\n Cancel\n </FluentButton>\n <FluentButton\n onClick={action}\n onMouseUp={() => {\n confirmAction();\n handleOnClose();\n }}\n autoFocus\n variant='outlined'\n >\n Confirm\n </FluentButton>\n </DialogActions>\n </Dialog>\n );\n};\n","import React, { useState } from 'react';\nimport SpeedDial, { SpeedDialProps } from '@material-ui/lab/SpeedDial';\nimport SpeedDialIcon from '@material-ui/lab/SpeedDialIcon';\nimport SpeedDialAction from '@material-ui/lab/SpeedDialAction';\nimport AddIcon from '@material-ui/icons/esm/Add';\nimport { makeStyles } from '@material-ui/core/styles';\nimport { UnityFluentIcon } from '../utilities/iconLibrary/UnityFluentIcon';\nimport { getIconFromName } from '../utilities/tree/TreeUtilities';\nimport { getUnityIconFromName } from '../utilities/iconLibrary/UnityIconLibrary';\n\ninterface FluentSpeedDialProps extends SpeedDialProps {\n actions: Array<{\n icon: {\n type?: string;\n name: string;\n };\n name: string;\n onClick: Function;\n }>;\n}\n\nconst useStyles = makeStyles((theme) => {\n return {\n wrapper: {\n position: 'fixed',\n right: theme.spacing(0),\n bottom: theme.spacing(0),\n zIndex: 1200\n },\n speedDial: {\n position: 'absolute',\n '&.MuiSpeedDial-directionUp, &.MuiSpeedDial-directionLeft': {\n bottom: theme.spacing(2),\n right: theme.spacing(2)\n }\n },\n speedDialFab: {\n backgroundColor: 'black',\n borderRadius: 1,\n margin: 0,\n opacity: 0.75,\n '&:hover': {\n backgroundColor: 'black'\n },\n '&:focus': {\n backgroundColor: 'black'\n }\n },\n speadDialFabExpanded: {\n backgroundColor: 'black',\n borderRadius: 1,\n margin: 0,\n '&:hover': {\n backgroundColor: 'black'\n },\n '&:focus': {\n backgroundColor: 'black'\n }\n },\n speedDialActions: {\n '&.MuiSpeedDial-directionUp, &.MuiSpeedDial-actions': {\n paddingBottom: 0,\n marginBottom: 0,\n opacity: 0.75\n },\n '&:hover': {\n opacity: 1\n },\n '&:focus': {\n opacity: 1\n }\n },\n speedDialActionFab: {\n backgroundColor: 'black',\n borderRadius: 1,\n margin: 0,\n color: 'white',\n width: 56,\n height: 56\n }\n };\n});\n\nexport const ActionSpeedDial = (props: FluentSpeedDialProps): JSX.Element | null => {\n const [expanded, setExpanded] = useState(false);\n const classes = useStyles(expanded);\n // @ts-ignore\n const { open, ariaLabel, actions, ...otherProps } = props;\n if (!actions.length) return null;\n return (\n <div className={classes.wrapper}>\n <SpeedDial\n id={'udpRecord-ActionSpeedDial'}\n // @ts-ignore\n udprecordid={'udpRecord-ActionSpeedDial'}\n className={classes.speedDial}\n ariaLabel='Fluent Speed Dial'\n classes={{\n fab: expanded ? classes.speadDialFabExpanded : classes.speedDialFab,\n actions: classes.speedDialActions\n }}\n icon={<SpeedDialIcon\n icon={<AddIcon />}\n />}\n onClose={() => setExpanded(false)}\n onOpen={() => setExpanded(true)}\n open={expanded}\n {...otherProps}\n >\n {actions.map((action) => (\n <SpeedDialAction\n id={'udpRecord-ActionSpeedDial-'+action.name}\n // @ts-ignore\n udprecordid={'udpRecord-ActionSpeedDial-'+action.name}\n key={action.name}\n icon={\n /*<UnityFluentIcon component={Icons[action.icon.name]} {...action.icon}/>*/\n <UnityFluentIcon\n type={action.icon.type}\n icon={\n action.icon.type === 'unity'\n ? getUnityIconFromName(action.icon.name)\n : getIconFromName(action.icon.name)\n }\n />\n }\n open={false}\n onClick={e => action.onClick(e)}\n classes={{\n fab: classes.speedDialActionFab\n }}\n tooltipTitle={action.name}\n />\n ))}\n </SpeedDial>\n </div>\n );\n};\n","import { makeStyles, Typography } from '@material-ui/core';\nimport { cloneDeep } from 'lodash';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useMemo } from 'react';\nimport { ActionSummaryPopover } from './actionSummary';\nimport { getIconFromName } from '../utilities/tree/TreeUtilities';\nimport { getUnityIconFromName } from '../utilities/iconLibrary/UnityIconLibrary';\nimport { PAHAdditionalRightComponent } from '../UI/utilityDisplay/utilityHeader/ui/PAHAdditionalRightComponent';\nimport { PanelPositionEnums } from '../enums/unitySystemEnums';\nimport { PrimaryActionButton } from '../UI/inputs/buttons/PrimaryActionButton';\nimport { SiteHeaderRightComponent } from '../shell/ui/SiteHeaderRightComponent';\nimport { ToolBarButton } from '../UI/inputs/buttons/ToolBarButton';\nimport { useActions } from '../hooks/useActions';\nimport { evaluateRule, mapRule } from '../utilities/rules/RuleUtilities';\nimport { ActionSpeedDial } from './ActionSpeedDial';\nimport { useActionStore } from '../stores/actionStore';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n actionsMenu: {\n color: theme?.palette?.getContrastText(theme?.palette?.primary?.main)\n },\n additionalRightComponent: {\n display: 'flex',\n alignItems: 'center'\n }\n}));\n\nexport const ActionPanelPlacement = (props) => {\n const {\n actionPanels,\n showInquiryHeaderActions,\n selectedNode,\n globalActions\n } = props;\n const classes = useStyles();\n const { triggerAction } = useActions();\n const hideActions = useActionStore((state) => state.hideActions);\n\n const handleTriggerAction = useCallback(\n (actionId) => {\n triggerAction(actionId, selectedNode?.nodeObj);\n },\n [triggerAction, selectedNode]\n );\n\n const panelsMap = useMemo(() => {\n if (!actionPanels || !actionPanels?.length) {\n return {};\n }\n return actionPanels.reduce((panelsObj, panel) => {\n const panelPositionId = panel?.panelPositionId;\n panelsObj[panelPositionId] = panel?.panelActions;\n return panelsObj;\n }, {});\n }, [actionPanels]);\n\n const siteHeaderRightComponent = useMemo(() => {\n const siteHeaderActions = panelsMap[PanelPositionEnums.Site_Header];\n const siteHeaderSummaryActions =\n panelsMap[PanelPositionEnums.Site_Header_Summary];\n let siteHeaderActionsComponent1 = null;\n let siteHeaderActionsComponent2 = null;\n let siteHeaderSummaryComponent = null;\n\n if (siteHeaderActions?.length) {\n siteHeaderActionsComponent1 = siteHeaderActions.map((panelAction) => {\n const passRule =\n panelAction.action.actionRules?.reduce((boolValue, rule) => {\n const ruleExpression = mapRule(rule.mapping, rule.jsonLogic);\n return (\n boolValue &&\n evaluateRule(\n ruleExpression,\n selectedNode?.nodeObj,\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n selectedNode?.wasLazyLoaded\n )\n );\n }, true) ?? true;\n\n if (!passRule && panelAction?.hideAction) {\n return null;\n }\n\n return (\n <ToolBarButton\n key={panelAction?.actionId}\n label={panelAction?.action?.name}\n aria={panelAction?.action?.name}\n icon={false}\n component={\n panelAction?.icon?.type === 'unity'\n ? getUnityIconFromName(panelAction?.icon?.name)\n : getIconFromName(panelAction?.icon?.name)\n }\n click={() => handleTriggerAction(panelAction?.actionId)}\n disabled={!passRule}\n />\n );\n });\n }\n\n if (siteHeaderSummaryActions?.length) {\n if (!siteHeaderActions?.length && siteHeaderSummaryActions?.length <= 2) {\n siteHeaderActionsComponent2 = siteHeaderSummaryActions.map(\n (panelAction) => {\n const passRule =\n panelAction.action.actionRules?.reduce((boolValue, rule) => {\n const ruleExpression = mapRule(rule.mapping, rule.jsonLogic);\n return (\n boolValue &&\n evaluateRule(\n ruleExpression,\n selectedNode?.nodeObj,\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n selectedNode?.wasLazyLoaded\n )\n );\n }, true) ?? true;\n\n if (!passRule && panelAction?.hideAction) {\n return null;\n }\n\n return (\n <ToolBarButton\n key={panelAction?.actionId}\n label={panelAction?.action?.name}\n aria={panelAction?.action?.name}\n icon={false}\n component={\n panelAction?.icon?.type === 'unity'\n ? getUnityIconFromName(panelAction?.icon?.name)\n : getIconFromName(panelAction?.icon?.name)\n }\n click={() => handleTriggerAction(panelAction?.actionId)}\n disabled={!passRule}\n />\n );\n }\n );\n } else {\n siteHeaderSummaryComponent = (\n <ActionSummaryPopover\n panelActions={siteHeaderSummaryActions}\n selectedNode={selectedNode}\n />\n );\n }\n }\n\n return (\n <SiteHeaderRightComponent>\n <div className={classes.additionalRightComponent}>\n {siteHeaderActionsComponent1}\n {siteHeaderActionsComponent2}\n {siteHeaderSummaryComponent}\n </div>\n </SiteHeaderRightComponent>\n );\n }, [panelsMap, handleTriggerAction, classes, selectedNode]);\n\n const inquiryHeaderComponent = useMemo(() => {\n const panelsMapCopy = cloneDeep(panelsMap);\n const inquiryHeaderActions =\n panelsMapCopy[PanelPositionEnums.Inquiry_Header];\n const inquiryHeaderSummaryActions =\n panelsMapCopy[PanelPositionEnums.Inquiry_Header_Summary];\n let inquiryHeaderActionsComponent = null;\n let inquiryHeaderSummaryComponent = null;\n let inquiryHeaderPrimaryAction = null;\n // if inquiry header summary actions length is more than 2, display the Actions as primary and the primary action as secondary.\n // otherwise, display the primary action as primary and Actions as secondary\n const showActionsAsSecondary =\n !inquiryHeaderSummaryActions?.length ||\n (!inquiryHeaderActions?.length &&\n inquiryHeaderSummaryActions?.length <= 2);\n\n if (inquiryHeaderActions?.length) {\n const actionList = [];\n inquiryHeaderActions.forEach((action) => {\n const passRule =\n action.action.actionRules?.reduce((boolValue, rule) => {\n const ruleExpression = mapRule(rule.mapping, rule.jsonLogic);\n return (\n boolValue &&\n evaluateRule(\n ruleExpression,\n selectedNode?.nodeObj,\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n selectedNode?.wasLazyLoaded\n )\n );\n }, true) ?? true;\n\n if (!passRule && !action?.hideAction) {\n actionList.push({ ...action, disabled: true });\n } else if (passRule) {\n actionList.push(action);\n }\n });\n\n inquiryHeaderActionsComponent = actionList\n ?.filter((pa) => {\n return showActionsAsSecondary\n ? !pa.isPrimary && pa.enabled\n : pa.enabled;\n })\n ?.map((panelAction, i) => (\n <div key={i}>\n <ToolBarButton\n // key={panelAction?.actionId}\n label={panelAction?.action?.name}\n aria={panelAction?.action?.name}\n icon={false}\n component={\n panelAction?.icon?.type === 'unity'\n ? getUnityIconFromName(panelAction?.icon?.name)\n : getIconFromName(panelAction?.icon?.name)\n }\n click={() => {\n handleTriggerAction(panelAction?.actionId);\n }}\n disabled={panelAction?.disabled ?? false}\n />\n </div>\n ));\n\n if (showActionsAsSecondary) {\n const primaryAction = actionList?.find(\n (panelAction) => panelAction.isPrimary\n );\n\n inquiryHeaderPrimaryAction = primaryAction ? (\n <PrimaryActionButton\n onClick={() => handleTriggerAction(primaryAction?.actionId)}\n disabled={primaryAction?.disabled ?? false}\n >\n <Typography style={{ marginRight: 5 }}>\n {primaryAction?.action?.name}\n </Typography>\n </PrimaryActionButton>\n ) : null;\n }\n }\n\n if (inquiryHeaderSummaryActions?.length) {\n if (showActionsAsSecondary) {\n inquiryHeaderActionsComponent = inquiryHeaderSummaryActions.map(\n (panelAction) => {\n const passRule =\n panelAction.action.actionRules?.reduce((boolValue, rule) => {\n const ruleExpression = mapRule(rule.mapping, rule.jsonLogic);\n return (\n boolValue &&\n evaluateRule(\n ruleExpression,\n selectedNode?.nodeObj,\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n selectedNode?.wasLazyLoaded\n )\n );\n }, true) ?? true;\n\n if (!passRule && panelAction?.hideAction) {\n return null;\n }\n\n return (\n <ToolBarButton\n key={panelAction?.actionId}\n label={panelAction?.action?.name}\n icon={false}\n component={\n panelAction?.icon?.type === 'unity'\n ? getUnityIconFromName(panelAction?.icon?.name)\n : getIconFromName(panelAction?.icon?.name)\n }\n click={() => handleTriggerAction(panelAction?.actionId)}\n disabled={!passRule}\n />\n );\n }\n );\n } else {\n inquiryHeaderSummaryComponent = (\n <ActionSummaryPopover\n panelActions={inquiryHeaderSummaryActions}\n noContrastColor={true}\n selectedNode={selectedNode}\n />\n );\n }\n }\n\n return (\n <PAHAdditionalRightComponent>\n {showInquiryHeaderActions && !hideActions && (\n <div className={classes.additionalRightComponent}>\n {inquiryHeaderActionsComponent}\n {inquiryHeaderPrimaryAction}\n {inquiryHeaderSummaryComponent}\n </div>\n )}\n </PAHAdditionalRightComponent>\n );\n }, [\n panelsMap,\n handleTriggerAction,\n classes,\n showInquiryHeaderActions,\n selectedNode,\n hideActions\n ]);\n\n const inquirySpeedDialComponent = useMemo(() => {\n const panelsMapCopy = cloneDeep(panelsMap);\n const inquirySpeedDialActions =\n panelsMapCopy[PanelPositionEnums.Speed_Dial];\n const enabledSortedActions =\n inquirySpeedDialActions\n ?.filter(\n (action) =>\n action.enabled &&\n (action.action.actionRules?.reduce((boolValue, rule) => {\n const ruleExpression = mapRule(rule.mapping, rule.jsonLogic);\n return (\n boolValue &&\n evaluateRule(\n ruleExpression,\n selectedNode?.nodeObj,\n selectedNode?.properties?.joiningEntityCatalogObjectKey,\n selectedNode?.wasLazyLoaded\n )\n );\n }, true) ??\n true)\n )\n .sort((a, b) => a.sequence - b.sequence) ?? [];\n let parsedGlobalActions = [];\n if (globalActions?.length) {\n parsedGlobalActions = globalActions.map((action) => {\n const parameters = JSON.parse(action.parameters);\n return {\n icon: { name: parameters.icon, type: 'fluent' },\n action: {\n name: action.name\n },\n ...action\n };\n });\n }\n return (\n (!!enabledSortedActions?.length || !!parsedGlobalActions?.length) &&\n !hideActions && (\n <ActionSpeedDial\n actions={[...enabledSortedActions, ...parsedGlobalActions].map(\n (action) => ({\n icon: action.icon,\n onClick: () => handleTriggerAction(action.actionId),\n name: action.action.name\n })\n )}\n />\n )\n );\n }, [\n panelsMap,\n handleTriggerAction,\n selectedNode,\n globalActions,\n hideActions\n ]);\n\n return (\n <>\n {siteHeaderRightComponent}\n {inquiryHeaderComponent}\n {inquirySpeedDialComponent}\n </>\n );\n};\n\nActionPanelPlacement.propTypes = {\n /**\n * Action Panels\n */\n actionPanels: PropTypes.array,\n /**\n * Boolean to show inquiry header actions\n */\n showInquiryHeaderActions: PropTypes.bool,\n /**\n * Action Panels\n */\n selectedNode: PropTypes.object\n};\n","import { makeStyles } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { useSnackbar } from 'notistack';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from '../configService';\nimport { ActionForm } from './ActionForm';\nimport { getPathObject } from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { getSuccessAction } from '../UI/SuccessAction';\nimport { LayoutUnit } from '../layout/LayoutUnit';\nimport { NodeActionEnums } from '../enums/unitySystemEnums';\nimport { SideSheet } from '../UI/surfaces/SideSheet';\nimport { useActions } from '../hooks/useActions';\nimport { useUser } from '../utilities/auth/useUser';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { PageContainer } from '../page/PageContainer';\nimport { useActionStore } from '../stores/actionStore';\n\nconst useStyles = makeStyles((theme) => ({\n root: {}\n}));\n\nexport const ActionSideSheet = (props) => {\n const {\n open,\n action,\n actionPanel,\n selectedNodeObj,\n executeAction,\n selectedEntity,\n handleOnClose,\n entityAttributes,\n foreignKeyData,\n loadingContent,\n fetchEntityData,\n skeleton,\n showError,\n crudTableEditionData,\n crudTableFormData,\n selectedNode,\n selectedNodeParent,\n refreshTree,\n udpFieldInfos\n } = props;\n const classes = useStyles();\n const [width, setWidth] = useState(600);\n const [buttonLabel, setButtonLabel] = useState('');\n const [onSubmit, setOnSubmit] = useState(\n () => () => console.warn('onSubmit not set')\n );\n const [additionalOnClose, setAdditionalOnClose] = useState();\n const [otherSideSheetProps, setOtherSideSheetProps] = useState({});\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const successAction = getSuccessAction(closeSnackbar);\n const { t } = useTranslation();\n const user = useUser();\n\n const setSelectedNodeForStore = useActionStore(\n (state) => state.setSelectedNode\n );\n const selectedNodeFromStore = useActionStore((state) => state.selectedNode);\n\n const promotedMethodPageId = useMemo(() => {\n if (action?.value) {\n if (selectedEntity?.unityBaseUpdateMethod?.apiMethodId === action.value) {\n return selectedEntity.unityBaseUpdateMethod.pageId;\n } else if (\n selectedEntity?.unityBaseCreateMethod?.apiMethodId === action.value\n ) {\n return selectedEntity.unityBaseCreateMethod.pageId;\n }\n }\n return '';\n }, [selectedEntity, action]);\n\n const [{ data: page, loading: loadingPage }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `page/${action?.parameters?.pageId || promotedMethodPageId}`,\n {},\n !!!action?.parameters?.pageId && !!!promotedMethodPageId,\n false\n );\n\n const onCreate = useCallback(\n async (data) => {\n if (selectedEntity?.unityBaseCreateMethod && action?.value) {\n if (selectedEntity.unityBaseCreateMethod.apiMethodId === action.value) {\n return await executeAction(data, action.value);\n } else {\n showError();\n }\n }\n },\n [action, executeAction, selectedEntity, showError]\n );\n\n const onUpdate = useCallback(\n async (data) => {\n if (selectedEntity?.unityBaseUpdateMethod && action?.value) {\n if (selectedEntity.unityBaseUpdateMethod.apiMethodId === action.value) {\n return await executeAction(data, action.value);\n } else {\n showError();\n }\n }\n },\n [action, executeAction, selectedEntity, showError]\n );\n\n const handleFetchEntityData = useCallback(async () => {\n if (selectedEntity?.unityBaseGetAllMethod) {\n const data = {};\n const response = await fetchEntityData({ data }).catch((res) => {\n enqueueSnackbar(res.message, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n\n if (response?.status === 200 && selectedNodeObj) {\n const updatedNode = response.data.find(\n (d) => d.id === selectedNodeObj.id\n );\n\n const updatedSelectedNode = { ...selectedNodeFromStore };\n updatedSelectedNode.nodeObj = updatedNode;\n setSelectedNodeForStore(updatedSelectedNode);\n }\n }\n }, [\n enqueueSnackbar,\n fetchEntityData,\n selectedEntity,\n selectedNodeObj,\n setSelectedNodeForStore,\n selectedNodeFromStore\n ]);\n\n const handleOnCreate = useCallback(\n async (values) => {\n if (selectedEntity && selectedEntity?.unityBaseCreateMethod) {\n const entityName = selectedEntity?.entityName;\n if (selectedEntity.unityBaseCreateMethod) {\n const data = { requestBody: values };\n const response = await onCreate({ data }).catch((res) => {\n enqueueSnackbar(res.message, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n\n if (response?.status === 200) {\n enqueueSnackbar(\n entityName\n ? t(`${entityName} has been created`)\n : t(`Entity has been created`),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n }\n }\n } else {\n enqueueSnackbar(t(`Unable to retrieve entity methods`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }\n },\n [enqueueSnackbar, onCreate, selectedEntity, successAction, t]\n );\n\n const handleOnUpdate = useCallback(\n async (values, primaryKeyValues) => {\n if (selectedEntity && selectedEntity?.unityBaseUpdateMethod) {\n const entityName = selectedEntity?.entityName;\n\n if (selectedEntity.unityBaseUpdateMethod) {\n // Get primary key value object using path parameters and merge with data\n const pathObject = getPathObject(\n selectedEntity.unityBaseUpdateMethod.pathParameters,\n primaryKeyValues\n );\n const data = { ...pathObject, requestBody: values };\n const response = await onUpdate({ data }).catch((res) => {\n enqueueSnackbar(res.message, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n\n if (response?.status === 200) {\n enqueueSnackbar(\n entityName\n ? t(`${entityName} has been updated`)\n : t(`Entity has been updated`),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n\n handleFetchEntityData();\n }\n }\n } else {\n enqueueSnackbar(t(`Unable to retrieve entity methods`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }\n },\n [\n selectedEntity,\n onUpdate,\n enqueueSnackbar,\n t,\n successAction,\n handleFetchEntityData\n ]\n );\n\n const handleOnCloseSideSheet = useCallback(() => {\n if (additionalOnClose) {\n additionalOnClose();\n }\n handleOnClose();\n }, [additionalOnClose, handleOnClose]);\n\n // const primaryKeyValues = useMemo(\n // () => getPrimaryKeyValues(entityAttributes, null),\n // [entityAttributes]\n // );\n\n // @TODO: Need to add a check if a promoted method for specific Entity has a static page\n // linked to it. It can fall back to it if there is no actions page\n const content = useMemo(() => {\n if (page) {\n return (\n <DndProvider backend={HTML5Backend}>\n <PageContainer\n user={user}\n key={action?.actionId}\n pageData={page}\n widgetParams={{\n pageId: page?.pageId,\n contentId: selectedNode?.properties?.searchValue,\n nodeObj: selectedNode?.nodeObj,\n parentNodeObj: selectedNodeParent?.nodeObj,\n inquiryParams: selectedNode?.inquiryParams,\n refreshTree: refreshTree,\n requiredFieldsMap: action?.parameters?.requiredFieldMapping || {},\n setSideSheetWidth: setWidth,\n setSideSheetButtonLabel: setButtonLabel,\n setSideSheetOnSubmit: setOnSubmit,\n setSideSheetAdditionalOnClose: setAdditionalOnClose,\n setSideSheetProps: setOtherSideSheetProps,\n closeSideSheet: handleOnClose,\n onCreate: onCreate,\n onUpdate: onUpdate\n }}\n disableMargins={true}\n />\n </DndProvider>\n );\n } else {\n return (\n <ActionForm\n key={action?.actionId}\n entityAttributes={entityAttributes}\n foreignKeyData={foreignKeyData}\n onCreate={handleOnCreate}\n closeSideSheet={handleOnClose}\n onUpdate={handleOnUpdate}\n crudTableEditionData={crudTableEditionData}\n crudTableFormData={crudTableFormData}\n udpFieldInfos={udpFieldInfos}\n />\n );\n }\n }, [\n action,\n crudTableEditionData,\n crudTableFormData,\n entityAttributes,\n foreignKeyData,\n handleOnClose,\n handleOnCreate,\n handleOnUpdate,\n selectedNode,\n selectedNodeParent,\n refreshTree,\n user,\n page,\n onCreate,\n onUpdate,\n udpFieldInfos\n ]);\n\n const sideSheetTitle = useMemo(() => {\n if (action?.parameters?.pageDisplayName) {\n return action.parameters.pageDisplayName;\n } else if (page) {\n return page?.name;\n } else {\n return (\n (action?.actionTypeId === NodeActionEnums.Create\n ? 'Add new '\n : 'Edit ') +\n (action?.parameters?.entityName ?? actionPanel?.entityName)\n );\n }\n }, [action, actionPanel, page]);\n\n return (\n <SideSheet\n open={open}\n title={t(sideSheetTitle)}\n buttonLabel={t(buttonLabel)}\n onSubmit={onSubmit}\n onClose={handleOnCloseSideSheet}\n width={width}\n {...otherSideSheetProps}\n >\n {loadingContent || loadingPage ? (\n <>\n {skeleton.map((sk, index) => (\n <React.Fragment key={index}>{sk}</React.Fragment>\n ))}\n <LayoutUnit unit='md' />\n <Skeleton variant='rect' className={classes.skeletonButton} />\n </>\n ) : (\n content\n )}\n </SideSheet>\n );\n};\n\nActionSideSheet.propTypes = {\n /**\n * User object\n */\n user: PropTypes.object,\n /**\n * boolean to open/close sidesheet\n */\n open: PropTypes.bool,\n /**\n * dispatch function\n */\n dispatch: PropTypes.func,\n /**\n * selected action object\n */\n action: PropTypes.object,\n /**\n * action panels array\n */\n actionPanels: PropTypes.array,\n /**\n * catalog object\n */\n catalog: PropTypes.object,\n /**\n * Selected node object\n */\n selectedNodeObj: PropTypes.object\n};\n","import { makeStyles } from '@material-ui/core';\nimport { Skeleton } from '@material-ui/lab';\nimport { useSnackbar } from 'notistack';\nimport PropTypes from 'prop-types';\nimport React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { ActionSplitScreen } from './ActionSplitScreen';\nimport { ActionModal } from './ActionModal';\nimport { ActionPanelPlacement } from './ActionPanelPlacement';\nimport { ActionSideSheet } from './ActionSideSheet';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport {\n getPathObject,\n getPrimaryKeyValues\n} from '../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { getSuccessAction } from '../UI/SuccessAction';\nimport { LayoutUnit } from '../layout/LayoutUnit';\nimport { toLowerFirstChar } from '../utilities/input/StringUtilities';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { useCrudActions } from '../hooks/crudActions';\nimport { useActionStore } from '../stores/actionStore';\nimport { useShellStore } from '../stores/shellStore';\nimport { usePromotedMethodEntity } from '../hooks/usePromotedMethodEntity';\nimport { getSanitizedName } from '../utilities/entities/entityUtilities';\nimport { getSearchObject } from '../utilities/search/SearchUtilities';\nimport { executeQueryAdHoc } from '../udp/utilities/methodUtils';\nimport { ConfigService } from '../configService';\n\nconst useStyles = makeStyles((theme) => ({}));\n\nconst FIELD_NUMBER = 10;\n\nexport const ActionWrapper = (props) => {\n const {\n actionState,\n actionPanel,\n dispatch,\n catalog,\n executeAction,\n splitScreenBody,\n entityAttributes,\n foreignKeyData,\n setForeignKeyData,\n crudTableEditionData,\n crudTableFormData,\n globalActions\n } = props;\n const classes = useStyles();\n\n const { getFKData } = useCrudActions();\n\n const { enqueueSnackbar, closeSnackbar } = useSnackbar();\n const successAction = getSuccessAction(closeSnackbar);\n const { t } = useTranslation();\n const [fkMethodEntities, setFKMethodEntities] = useState([]);\n const [loadingContent, setLoadingContent] = useState(true);\n const [udpFieldInfos, setUdpFieldInfos] = useState([]);\n\n const selectedNode = useActionStore((state) => state.selectedNode);\n const currentContainerId = useShellStore((state) => state.currentContainerId);\n\n const { data: udpOjectFieldInfo } = usePromotedMethodEntity(\n 'UdpObjectFieldInfo',\n true\n );\n\n const entityName = useMemo(() => {\n return actionPanel\n ? actionPanel.entityName\n : actionState?.inquiryParams[currentContainerId || 0]?.selectedNode\n ?.properties?.catalogReturnObject;\n }, [actionPanel, actionState, currentContainerId]);\n\n const [{ data: selectedEntity }] = useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${catalog?.apiCatalogId}/promotedMethodEntities/${entityName}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {},\n !!!catalog?.apiCatalogId || !!!entityName,\n false\n );\n\n const getMetaDataForUdpField = useCallback(\n async (entityName) => {\n let fieldInfos = [];\n if (udpOjectFieldInfo?.unityBaseSearchMethod?.apiMethodId) {\n const filterElements = [\n {\n searchField: 'ObjectInfo.SanitizedName',\n searchOperator: '=',\n searchValue: getSanitizedName(entityName)\n }\n ];\n const requestObj = getSearchObject(filterElements, 1, 50, true);\n\n await executeQueryAdHoc(\n { data: requestObj },\n udpOjectFieldInfo.unityBaseSearchMethod.apiMethodId\n ).then((resp) => {\n fieldInfos = resp.data?.pageList;\n });\n }\n return fieldInfos;\n },\n [udpOjectFieldInfo]\n );\n\n const fetchEntityData = useCallback(\n async (data) => {\n if (selectedEntity?.unityBaseGetAllMethod)\n return await executeAction(\n data,\n selectedEntity.unityBaseGetAllMethod.apiMethodId\n );\n },\n [executeAction, selectedEntity]\n );\n\n const showError = useCallback(() => {\n enqueueSnackbar(t(`Invalid action value.`), {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n }, [enqueueSnackbar, t]);\n\n const getFKMethodEntities = useCallback(\n async (attributes) => {\n if (!attributes || !catalog) {\n return [];\n }\n let fkData = [];\n\n for (const attr of attributes) {\n // check if there is a property with this childEntity\n if (attr?.extendedProperties?.childEntity) {\n // get the list of child entity field names from the Keys array\n const ceFieldsArr = [];\n Object.keys(attr.extendedProperties.childEntityAssoc || {}).length &&\n !attr.extendedProperties.childEntityAssoc.UdpType &&\n attr.extendedProperties.childEntityAssoc.Keys.forEach(\n (value, i) => {\n const name = value.split(',')[0];\n if (name) {\n // check name string: if 1 word, lowercase. if 2 words, lower first char\n ceFieldsArr.push({\n idx: i,\n name: /^[A-Z]*$/.test(name)\n ? name.toLowerCase()\n : toLowerFirstChar(name)\n });\n }\n }\n );\n\n // find the child entity attribute\n const ceAttr = attributes.find((p) =>\n ceFieldsArr.find(\n (cef) => cef.name === p.name && !p?.extendedProperties?.identifier\n )\n );\n\n if (ceAttr) {\n // get list of entity if ceProp exists\n await apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${catalog.apiCatalogId}/promotedMethodEntities/${attr.reference}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {\n method: 'get'\n },\n {}\n ).then((resp) => {\n if (resp && resp.data) {\n fkData.push({ fkName: ceAttr.name, entity: resp.data });\n }\n });\n }\n }\n }\n setFKMethodEntities(fkData);\n },\n [catalog]\n );\n\n const handleOnClose = useCallback(\n (type, entity) => {\n dispatch({ type: type, entity });\n },\n [dispatch]\n );\n\n const onDelete = useCallback(\n async (data) => {\n if (selectedEntity?.unityBaseDeleteMethod) {\n if (\n selectedEntity.unityBaseDeleteMethod.apiMethodId ===\n actionState?.modal?.action?.value\n ) {\n return await executeAction(data, actionState?.modal?.action?.value);\n } else {\n showError();\n }\n }\n },\n [actionState, executeAction, selectedEntity, showError]\n );\n\n const handleOnDelete = useCallback(\n async (value) => {\n if (selectedEntity) {\n const entityName = selectedEntity?.entityName;\n\n // Get primary key value object using path parameters and merge with data\n const primaryKeyValues = getPrimaryKeyValues(entityAttributes, value);\n const pathObject = getPathObject(\n selectedEntity?.unityBaseDeleteMethod.pathParameters,\n primaryKeyValues\n );\n\n if (selectedEntity?.unityBaseDeleteMethod) {\n const data = { ...pathObject };\n const response = await onDelete({ data }).catch((res) => {\n enqueueSnackbar(res.message, {\n variant: 'error',\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n }\n });\n });\n\n if (response?.status === 200) {\n enqueueSnackbar(\n entityName\n ? t(`${entityName} has been deleted`)\n : t(`Entity has been deleted`),\n {\n anchorOrigin: {\n vertical: 'top',\n horizontal: 'center'\n },\n action: successAction\n }\n );\n if (\n actionState?.menuListState &&\n actionState?.menuListState?.menuList.length > 0\n ) {\n const handleRemoveMenuItem =\n actionState?.menuListState?.handleRemoveMenuItem;\n if (handleRemoveMenuItem) {\n handleRemoveMenuItem(actionState?.menuListState?.menuList);\n }\n }\n fetchEntityData({ data: {} });\n }\n }\n }\n },\n [\n actionState,\n enqueueSnackbar,\n entityAttributes,\n fetchEntityData,\n onDelete,\n selectedEntity,\n successAction,\n t\n ]\n );\n\n const skeleton = useMemo(() => {\n const skeletonArr = [];\n for (let i = 0; i < FIELD_NUMBER; i++) {\n skeletonArr.push(\n <>\n <Skeleton key={i} variant='rect' className={classes.skeleton} />\n <LayoutUnit unit='xxs' />\n </>\n );\n }\n return skeletonArr;\n }, [classes]);\n\n useEffect(() => {\n if (entityAttributes) {\n getFKMethodEntities(entityAttributes);\n setLoadingContent(false);\n }\n }, [entityAttributes, getFKMethodEntities]);\n\n useEffect(() => {\n if (entityAttributes && fkMethodEntities && fkMethodEntities.length > 0) {\n getFKData(fkMethodEntities, setForeignKeyData, enqueueSnackbar);\n }\n }, [\n enqueueSnackbar,\n entityAttributes,\n fkMethodEntities,\n getFKData,\n setForeignKeyData\n ]);\n\n useEffect(() => {\n const setFieldInfos = async () => {\n if(!entityName) return;\n let response = await getMetaDataForUdpField(entityName);\n setUdpFieldInfos(response);\n };\n if (udpOjectFieldInfo?.unityBaseSearchMethod?.apiMethodId) {\n setFieldInfos();\n }\n }, [getMetaDataForUdpField, udpOjectFieldInfo, entityName]);\n\n return (\n <>\n <ActionSplitScreen\n body={\n <>\n {splitScreenBody}\n <ActionPanelPlacement\n actionPanels={actionState?.actionPanels[currentContainerId || 0]}\n showInquiryHeaderActions={actionState?.showInquiryHeaderActions}\n selectedNode={\n actionState?.inquiryParams[currentContainerId || 0]\n ?.selectedNode\n }\n globalActions={globalActions}\n />\n </>\n }\n open={actionState?.splitScreen?.open}\n action={actionState?.splitScreen?.action}\n type={actionState?.splitScreen?.type}\n params={actionState?.splitScreen?.params}\n executeAction={executeAction}\n actionPanel={actionPanel}\n selectedNodeObj={selectedNode?.nodeObj}\n menuNodeList={actionState?.menuListState?.menuList}\n sidebarEntity={selectedEntity}\n selectedNode={\n actionState?.inquiryParams[currentContainerId || 0]?.selectedNode\n }\n selectedNodeParent={\n actionState?.inquiryParams[currentContainerId || 0]\n ?.selectedNodeParent\n }\n refreshTree={\n actionState?.inquiryParams[currentContainerId || 0]?.refreshTree\n }\n />\n <ActionSideSheet\n key={actionState?.sideSheet?.action?.actionId}\n open={actionState?.sideSheet?.open}\n dispatch={dispatch}\n action={actionState?.sideSheet?.action}\n actionPanel={actionPanel}\n selectedNodeObj={selectedNode?.nodeObj}\n executeAction={executeAction}\n selectedEntity={selectedEntity}\n handleOnClose={() => {\n const sideSheet = { open: false, action: null };\n handleOnClose('OPEN_SIDESHEET', sideSheet);\n }}\n entityAttributes={entityAttributes}\n foreignKeyData={foreignKeyData}\n loadingContent={loadingContent}\n fetchEntityData={fetchEntityData}\n skeleton={skeleton}\n showError={showError}\n crudTableEditionData={crudTableEditionData}\n crudTableFormData={crudTableFormData}\n selectedNode={\n actionState?.inquiryParams[currentContainerId || 0]?.selectedNode\n }\n selectedNodeParent={\n actionState?.inquiryParams[currentContainerId || 0]\n ?.selectedNodeParent\n }\n refreshTree={\n actionState?.inquiryParams[currentContainerId || 0]?.refreshTree\n }\n udpFieldInfos={udpFieldInfos}\n />\n <ActionModal\n open={actionState?.modal?.open}\n action={actionState?.modal?.action}\n title={actionState?.modal?.title + selectedEntity?.entityName}\n message={t(\n `Are you sure you want to delete this ${selectedEntity?.entityName}?`\n )}\n confirmAction={() => handleOnDelete(selectedNode?.nodeObj)}\n handleOnClose={() => {\n const modal = { open: false, action: null };\n handleOnClose('OPEN_MODAL', modal);\n }}\n showError={showError}\n />\n </>\n );\n};\n\nActionWrapper.propTypes = {\n actionState: PropTypes.object,\n actionPanel: PropTypes.object,\n dispatch: PropTypes.func,\n catalog: PropTypes.object,\n executeAction: PropTypes.func,\n user: PropTypes.object,\n splitScreenBody: PropTypes.object\n};\n"],"mappings":"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"}