udp-react-enterprise-component-library 25.14.1-beta.7 → 25.14.1-beta.8

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 (164) hide show
  1. package/dist/{Accordion-Cd6gzd60.js → Accordion-DL61AM6M.js} +2 -2
  2. package/dist/{Accordion-Cd6gzd60.js.map → Accordion-DL61AM6M.js.map} +1 -1
  3. package/dist/{ActionProvider-BPuiwxd4.js → ActionProvider-DL5qMp-u.js} +2 -2
  4. package/dist/{ActionProvider-BPuiwxd4.js.map → ActionProvider-DL5qMp-u.js.map} +1 -1
  5. package/dist/{ActionSplitScreen-Cym0gCOb.js → ActionSplitScreen-x0Bh5GEF.js} +3 -3
  6. package/dist/{ActionSplitScreen-Cym0gCOb.js.map → ActionSplitScreen-x0Bh5GEF.js.map} +1 -1
  7. package/dist/{ActionWrapper-CoP91vel.js → ActionWrapper-BRzh3vn0.js} +3 -3
  8. package/dist/{ActionWrapper-CoP91vel.js.map → ActionWrapper-BRzh3vn0.js.map} +1 -1
  9. package/dist/{BaseTreeMenu-DmsrGSdA.js → BaseTreeMenu-DHEMztjA.js} +7 -3
  10. package/dist/BaseTreeMenu-DHEMztjA.js.map +1 -0
  11. package/dist/{CircleButton-BFASpo5t.js → CircleButton-DBPFjNl1.js} +2 -2
  12. package/dist/{CircleButton-BFASpo5t.js.map → CircleButton-DBPFjNl1.js.map} +1 -1
  13. package/dist/{CrudBrowserContainer-Dpgwjt7c.js → CrudBrowserContainer-B8AKH7kQ.js} +9 -4
  14. package/dist/CrudBrowserContainer-B8AKH7kQ.js.map +1 -0
  15. package/dist/{EntityHeader-Buq_r4IE.js → EntityHeader-DOoeCEj3.js} +2 -2
  16. package/dist/{EntityHeader-Buq_r4IE.js.map → EntityHeader-DOoeCEj3.js.map} +1 -1
  17. package/dist/{FileViewer-C1eQoTDj.js → FileViewer-Bhubf4Uv.js} +2 -2
  18. package/dist/{FileViewer-C1eQoTDj.js.map → FileViewer-Bhubf4Uv.js.map} +1 -1
  19. package/dist/{FluentCell-DZ5pFjdC.js → FluentCell-C7lb2y4Z.js} +2 -2
  20. package/dist/{FluentCell-DZ5pFjdC.js.map → FluentCell-C7lb2y4Z.js.map} +1 -1
  21. package/dist/{FluentDataTable-C7Ng6Eh3.js → FluentDataTable-C3A36z2b.js} +2 -2
  22. package/dist/{FluentDataTable-C7Ng6Eh3.js.map → FluentDataTable-C3A36z2b.js.map} +1 -1
  23. package/dist/{FluentTimeline-ChthjfxZ.js → FluentTimeline-B0VjMqsq.js} +2 -2
  24. package/dist/{FluentTimeline-ChthjfxZ.js.map → FluentTimeline-B0VjMqsq.js.map} +1 -1
  25. package/dist/{IconRenderer-8w6JVRET.js → IconRenderer-DiwGfDul.js} +2 -2
  26. package/dist/{IconRenderer-8w6JVRET.js.map → IconRenderer-DiwGfDul.js.map} +1 -1
  27. package/dist/{Inquiry-DJ-yrELW.js → Inquiry-3kldgl4S.js} +5 -5
  28. package/dist/{Inquiry-DJ-yrELW.js.map → Inquiry-3kldgl4S.js.map} +1 -1
  29. package/dist/{MenuPage-0qeyA5lF.js → MenuPage-CJ1JVrk8.js} +10 -5
  30. package/dist/MenuPage-CJ1JVrk8.js.map +1 -0
  31. package/dist/{MenuPage-BJsOWc5e.js → MenuPage-kn130DcT.js} +3 -3
  32. package/dist/{MttMainTimeline-au5xi1SZ.js → MttMainTimeline-Bme6LQZO.js} +2 -2
  33. package/dist/{MttMainTimeline-au5xi1SZ.js.map → MttMainTimeline-Bme6LQZO.js.map} +1 -1
  34. package/dist/{MttSummary-DHB1AW_0.js → MttSummary-CTETqPbU.js} +3 -3
  35. package/dist/{MttSummary-DHB1AW_0.js.map → MttSummary-CTETqPbU.js.map} +1 -1
  36. package/dist/{NotesScreen-moR3WUoq.js → NotesScreen-CmMz3GTR.js} +2 -2
  37. package/dist/{NotesScreen-moR3WUoq.js.map → NotesScreen-CmMz3GTR.js.map} +1 -1
  38. package/dist/{PageActionWrapper-KtNGraWi.js → PageActionWrapper-HgV0I8Km.js} +2 -2
  39. package/dist/{PageActionWrapper-KtNGraWi.js.map → PageActionWrapper-HgV0I8Km.js.map} +1 -1
  40. package/dist/{RecentlyLoadedNodesTable-B5KlS1HR.js → RecentlyLoadedNodesTable-BRxssq07.js} +2 -2
  41. package/dist/{RecentlyLoadedNodesTable-B5KlS1HR.js.map → RecentlyLoadedNodesTable-BRxssq07.js.map} +1 -1
  42. package/dist/{RemindersCard-CRstZlRF.js → RemindersCard-BrjYmZVz.js} +2 -2
  43. package/dist/{RemindersCard-CRstZlRF.js.map → RemindersCard-BrjYmZVz.js.map} +1 -1
  44. package/dist/{RemindersScreen-C2hcBWnk.js → RemindersScreen-CVTHY97W.js} +2 -2
  45. package/dist/{RemindersScreen-C2hcBWnk.js.map → RemindersScreen-CVTHY97W.js.map} +1 -1
  46. package/dist/{Shell-CuYfQQKW.js → Shell-DM4ZssU1.js} +3 -3
  47. package/dist/{Shell-CuYfQQKW.js.map → Shell-DM4ZssU1.js.map} +1 -1
  48. package/dist/{TreeUtilities-DVY-2md6.js → TreeUtilities-XLrXtUeL.js} +9 -8
  49. package/dist/{TreeUtilities-DVY-2md6.js.map → TreeUtilities-XLrXtUeL.js.map} +1 -1
  50. package/dist/UI/accordion/index.js +2 -2
  51. package/dist/UI/dataDisplay/FluentDataTable/FluentCell/index.js +2 -2
  52. package/dist/UI/dataDisplay/FluentDataTable/index.js +3 -3
  53. package/dist/UI/dataDisplay/entityHeader/index.js +3 -3
  54. package/dist/UI/dataDisplay/index.js +5 -5
  55. package/dist/UI/fileViewer/index.js +2 -2
  56. package/dist/UI/index.js +8 -8
  57. package/dist/UI/timeline/fluentTimeline/index.js +2 -2
  58. package/dist/UI/timeline/index.js +2 -2
  59. package/dist/{UdpMaintenanceConfigPage-CC_gwu35.js → UdpMaintenanceConfigPage-DfKk0PmB.js} +1 -1
  60. package/dist/{UdpMaintenanceConfigPage-yuotrI0g.js → UdpMaintenanceConfigPage-mJ4AkDYp.js} +3 -2
  61. package/dist/UdpMaintenanceConfigPage-mJ4AkDYp.js.map +1 -0
  62. package/dist/{UdpMaintenanceEnginePage-o40sezly.js → UdpMaintenanceEnginePage-DAioIeSf.js} +8 -3
  63. package/dist/UdpMaintenanceEnginePage-DAioIeSf.js.map +1 -0
  64. package/dist/{UdpMaintenanceEnginePage-b5cm6uW2.js → UdpMaintenanceEnginePage-M0RbzSTX.js} +2 -2
  65. package/dist/{UdpRoutes-BVVsyngj.js → UdpRoutes-Bmn455yo.js} +5 -5
  66. package/dist/{UdpRoutes-BVVsyngj.js.map → UdpRoutes-Bmn455yo.js.map} +1 -1
  67. package/dist/{WorkflowContainer-C6QfVid-.js → WorkflowContainer-BTwu3z4L.js} +3 -3
  68. package/dist/{WorkflowContainer-DasTFSlY.js → WorkflowContainer-Cq23yESD.js} +2 -2
  69. package/dist/{WorkflowContainer-DasTFSlY.js.map → WorkflowContainer-Cq23yESD.js.map} +1 -1
  70. package/dist/{WorkflowTreeMenu-Dc9l7jEY.js → WorkflowTreeMenu-BtolZKVF.js} +2 -2
  71. package/dist/{WorkflowTreeMenu-Dc9l7jEY.js.map → WorkflowTreeMenu-BtolZKVF.js.map} +1 -1
  72. package/dist/actions/index.js +6 -6
  73. package/dist/componentSystems/multiThreadTimeline/index.js +5 -5
  74. package/dist/componentSystems/multiThreadTimeline/mttMainTimeline/index.js +3 -3
  75. package/dist/componentSystems/multiThreadTimeline/mttSummary/index.js +4 -4
  76. package/dist/componentSystems/multiThreadTimeline/ui/index.js +3 -3
  77. package/dist/index.js +144 -60
  78. package/dist/index.js.map +1 -1
  79. package/dist/inquiry/dashboard/index.js +3 -3
  80. package/dist/inquiry/index.js +9 -9
  81. package/dist/maintenanceEngine/crudBrowser/index.js +1 -1
  82. package/dist/maintenanceEngine/index.js +1 -1
  83. package/dist/menuPage/index.js +3 -3
  84. package/dist/notes/index.js +2 -2
  85. package/dist/reminders/index.js +3 -3
  86. package/dist/routes/index.js +1 -1
  87. package/dist/shell/index.js +11 -11
  88. package/dist/shell/ui/addUser/index.js +1 -1
  89. package/dist/shell/ui/appSwitcher/index.js +1 -1
  90. package/dist/shell/ui/index.js +3 -3
  91. package/dist/treeMenu/index.js +2 -2
  92. package/dist/types/index.d.ts +1 -0
  93. package/dist/types/menuPage/CustomMenuPage.d.ts +22 -0
  94. package/dist/types/tsconfig.tsbuildinfo +1 -1
  95. package/dist/types/utilities/tree/TreeUtilities.d.ts +2 -0
  96. package/dist/udp/pages/index.js +10 -10
  97. package/dist/{udpPages-WbvmyuOa.js → udpPages-D6t7REhp.js} +7 -7
  98. package/dist/{udpPages-WbvmyuOa.js.map → udpPages-D6t7REhp.js.map} +1 -1
  99. package/dist/utilities/DemoJuly/index.js +1 -1
  100. package/dist/utilities/aggrid/index.js +1 -1
  101. package/dist/utilities/auth/index.js +1 -1
  102. package/dist/utilities/catalog/index.js +1 -1
  103. package/dist/utilities/chatBot/index.js +1 -1
  104. package/dist/utilities/crud/index.js +1 -1
  105. package/dist/utilities/customIcons/index.js +1 -1
  106. package/dist/utilities/entities/index.js +1 -1
  107. package/dist/utilities/floorplanFunctions/index.js +1 -1
  108. package/dist/utilities/iconLibrary/index.js +1 -1
  109. package/dist/utilities/index.js +31 -31
  110. package/dist/utilities/input/index.js +1 -1
  111. package/dist/utilities/maintenanceEngine/index.js +1 -1
  112. package/dist/utilities/menus/index.js +1 -1
  113. package/dist/utilities/page/index.js +1 -1
  114. package/dist/utilities/provider/index.js +7 -7
  115. package/dist/utilities/redirect/index.js +1 -1
  116. package/dist/utilities/rules/index.js +1 -1
  117. package/dist/utilities/search/index.js +1 -1
  118. package/dist/utilities/storage/index.js +1 -1
  119. package/dist/utilities/style/index.js +1 -1
  120. package/dist/utilities/tenant/index.js +1 -1
  121. package/dist/utilities/tree/index.js +2 -2
  122. package/dist/utilities/uploader/index.js +1 -1
  123. package/dist/utilities/utilityBar/index.js +1 -1
  124. package/dist/utilities/workflow/index.js +1 -1
  125. package/dist/workflow/components/index.js +1 -1
  126. package/dist/workflow/index.js +5 -5
  127. package/dist/workflow/menus/index.js +3 -3
  128. package/export-map.json +3 -2
  129. package/package.json +1 -1
  130. package/dist/BaseTreeMenu-DmsrGSdA.js.map +0 -1
  131. package/dist/CrudBrowserContainer-Dpgwjt7c.js.map +0 -1
  132. package/dist/MenuPage-0qeyA5lF.js.map +0 -1
  133. package/dist/UdpMaintenanceConfigPage-yuotrI0g.js.map +0 -1
  134. package/dist/UdpMaintenanceEnginePage-o40sezly.js.map +0 -1
  135. /package/dist/{DemoJuly-HEFpRiJ1.js → DemoJuly-D7RhIRiO.js} +0 -0
  136. /package/dist/{addUser-CDUgX71C.js → addUser-CS0LS9_W.js} +0 -0
  137. /package/dist/{aggrid-D_aCbevC.js → aggrid-C3KMLJBL.js} +0 -0
  138. /package/dist/{appSwitcher-BXsn0Y7P.js → appSwitcher-DqliMkfh.js} +0 -0
  139. /package/dist/{auth-DWPlnjpI.js → auth-DLdDsXt6.js} +0 -0
  140. /package/dist/{catalog-DMuLXcCK.js → catalog-DLo7sqLU.js} +0 -0
  141. /package/dist/{chatBot-CESOMewn.js → chatBot-dEV9kiqk.js} +0 -0
  142. /package/dist/{components-DaFrTvLa.js → components-CnnFIob2.js} +0 -0
  143. /package/dist/{crud-tnZ9W8IE.js → crud-C_ERd-Ed.js} +0 -0
  144. /package/dist/{customIcons-DbLvDHvX.js → customIcons-BzKpDhOz.js} +0 -0
  145. /package/dist/{entities-Hs88OmOI.js → entities-Z3wHDYPc.js} +0 -0
  146. /package/dist/{floorplanFunctions-DI9Q0N4y.js → floorplanFunctions-CyG-A6Ho.js} +0 -0
  147. /package/dist/{iconLibrary-BzBDlfKa.js → iconLibrary-DkiwUTn0.js} +0 -0
  148. /package/dist/{input-DVo_b6i8.js → input-Bd3pOKUF.js} +0 -0
  149. /package/dist/{maintenanceEngine-BbFlaLMV.js → maintenanceEngine-BiIXrgHI.js} +0 -0
  150. /package/dist/{menus-BZI70wR2.js → menus-CreZRf8_.js} +0 -0
  151. /package/dist/{menus-DN6GDDqx.js → menus-lneAs-ot.js} +0 -0
  152. /package/dist/{page-BQMQ1JlA.js → page-DF9Cce_a.js} +0 -0
  153. /package/dist/{provider-CwOhsp5M.js → provider-CDMCgVZv.js} +0 -0
  154. /package/dist/{redirect-B0_sESdf.js → redirect-DXdJsOUE.js} +0 -0
  155. /package/dist/{rules-cVxJYdGG.js → rules-vy1m9JZd.js} +0 -0
  156. /package/dist/{search-6zyJ3P-2.js → search-By3X_wDu.js} +0 -0
  157. /package/dist/{storage-ZisRFPrn.js → storage-Dzx9lS99.js} +0 -0
  158. /package/dist/{style-B_j5O3ww.js → style-DCetPHEb.js} +0 -0
  159. /package/dist/{tenant-CMcPr3w4.js → tenant-9yY-GOUj.js} +0 -0
  160. /package/dist/{tree-BLeqwXve.js → tree-n0-Yv6Oq.js} +0 -0
  161. /package/dist/{ui-CQsw5PPh.js → ui-C4SYLrHn.js} +0 -0
  162. /package/dist/{uploader-nV12FZ_U.js → uploader-DSBUHOEF.js} +0 -0
  163. /package/dist/{utilityBar-BCRqW4jk.js → utilityBar-BgOu4S_x.js} +0 -0
  164. /package/dist/{workflow-Cou_j4_8.js → workflow-Cy4leS9X.js} +0 -0
@@ -23,7 +23,7 @@ import "../../colorConverter-sleh0lAZ.js";
23
23
  import { Typography } from "../../Typography-6jelcyoY.js";
24
24
  import "../../SearchUtilities-CzmJ6hI2.js";
25
25
  import "../../GroupNode-Bms_Opmb.js";
26
- import "../../TreeUtilities-DVY-2md6.js";
26
+ import "../../TreeUtilities-XLrXtUeL.js";
27
27
  import "../../UnityIconLibrary-DnCuEr5M.js";
28
28
  import "../../LayoutUnit-fGVQwt6Y.js";
29
29
  import { StandardTitle } from "../../StandardTitle-DkEO3oI5.js";
@@ -35,7 +35,7 @@ import "../../methodUtils-Bgi0VCWP.js";
35
35
  import "../../AmbientCardButton-DGmyyJxn.js";
36
36
  import "../../Adornment-9YJw6GPr.js";
37
37
  import "../../AmbientCard-Cp-eNzrW.js";
38
- import "../../IconRenderer-8w6JVRET.js";
38
+ import "../../IconRenderer-DiwGfDul.js";
39
39
  import "../../Ellipse-q1-sPjh3.js";
40
40
  import "../../Token-DOIAu9p4.js";
41
41
  import { HintPanel } from "../../HintPanel-Bhxty7to.js";
@@ -52,7 +52,7 @@ import "../../FluentDisplayNumbers-BZUCpWE1.js";
52
52
  import { CompactDataListItem } from "../../CompactDataListItem-DMGFdFDP.js";
53
53
  import { AvatarAlphabet } from "../../AvatarAlphabet-BFwr2xyn.js";
54
54
  import { CardList, PaginationPlacement } from "../../CardList-By_GnGmx.js";
55
- import { ChipAlphabet, EntityHeader } from "../../EntityHeader-Buq_r4IE.js";
55
+ import { ChipAlphabet, EntityHeader } from "../../EntityHeader-DOoeCEj3.js";
56
56
  import { CompactDataList } from "../../CompactDataList-drOdcMN5.js";
57
57
  import { FluentActivity, FluentActivityRow } from "../../FluentActivityRow-CmoRw1Lt.js";
58
58
  import { AccountFlags, AmbientList, FluentListElement, GraphCard, TimelineCalendar } from "../../TimelineCalendar-BxjFou_7.js";
@@ -69,10 +69,10 @@ import { NotificationElement, StatusLineItem, TicketCard } from "../../TicketCar
69
69
  import { FormHeader, FormSubHeader, StylizedTitle } from "../../StylizedTitle-Y_hYLsug.js";
70
70
  import { AmbientVisualizer, GaugeGraph, RatioVisulization } from "../../AmbientVisualizer-Burox12C.js";
71
71
  import "../../FluentBody-PdsySA1c.js";
72
- import "../../FluentCell-DZ5pFjdC.js";
72
+ import "../../FluentCell-C7lb2y4Z.js";
73
73
  import "../../FluentHead-BTV-o45z.js";
74
74
  import "../../FluentRow-CVqnk9pB.js";
75
- import { FluentDataTable } from "../../FluentDataTable-C7Ng6Eh3.js";
75
+ import { FluentDataTable } from "../../FluentDataTable-C3A36z2b.js";
76
76
  import "../../cardList-B0bYLPWj.js";
77
77
  import "../../typography-BUD73n7-.js";
78
78
  import "../../FluentDataTable-BwVi4r3o.js";
@@ -10,7 +10,7 @@ import "../../colorConverter-sleh0lAZ.js";
10
10
  import "../../Typography-6jelcyoY.js";
11
11
  import "../../SearchUtilities-CzmJ6hI2.js";
12
12
  import "../../GroupNode-Bms_Opmb.js";
13
- import "../../TreeUtilities-DVY-2md6.js";
13
+ import "../../TreeUtilities-XLrXtUeL.js";
14
14
  import "../../LayoutUnit-fGVQwt6Y.js";
15
15
  import "../../StandardTitle-DkEO3oI5.js";
16
16
  import "../../SideSheetHeader-DomTDjrB.js";
@@ -22,7 +22,7 @@ import "../../AmbientCard-Cp-eNzrW.js";
22
22
  import "../../IconButtonWithToolTip-DQacH9wQ.js";
23
23
  import "../../LinearProgress-CVk0GRO-.js";
24
24
  import "../../AmbientAlert-Daw5MVak.js";
25
- import { FileViewer } from "../../FileViewer-C1eQoTDj.js";
25
+ import { FileViewer } from "../../FileViewer-Bhubf4Uv.js";
26
26
  import "../../fileViewer-DNmXMgEv.js";
27
27
 
28
28
  export { FileViewer };
package/dist/UI/index.js CHANGED
@@ -37,7 +37,7 @@ import "../colorConverter-sleh0lAZ.js";
37
37
  import { Typography } from "../Typography-6jelcyoY.js";
38
38
  import "../SearchUtilities-CzmJ6hI2.js";
39
39
  import "../GroupNode-Bms_Opmb.js";
40
- import "../TreeUtilities-DVY-2md6.js";
40
+ import "../TreeUtilities-XLrXtUeL.js";
41
41
  import "../UnityIconLibrary-DnCuEr5M.js";
42
42
  import "../teleporterStore-hSgRrvso.js";
43
43
  import { PAHAdditionalRightComponent, TeleportSource } from "../PAHAdditionalRightComponent-CvWTgdMd.js";
@@ -67,7 +67,7 @@ import "../useTenant-BGWpH8AX.js";
67
67
  import "../EnvironmentRibbon-CPm8YnJ4.js";
68
68
  import "../usePromotedMethodEntity-B50E6rbB.js";
69
69
  import "../AmbientTextField-BHfLW2L3.js";
70
- import "../IconRenderer-8w6JVRET.js";
70
+ import "../IconRenderer-DiwGfDul.js";
71
71
  import { Ellipse } from "../Ellipse-q1-sPjh3.js";
72
72
  import { FluentMenuListItem } from "../FluentMenuListItem-B_HwFoIS.js";
73
73
  import { GridGroupingHeader, GridGroupingSidebar, GridSidebarContainer } from "../GridGroupingSidebar-nHJQULrr.js";
@@ -129,11 +129,11 @@ import "../FluentDisplayNumbers-BZUCpWE1.js";
129
129
  import { Divider } from "../Divider-BU1-Ll14.js";
130
130
  import { CompactDataListItem } from "../CompactDataListItem-DMGFdFDP.js";
131
131
  import { AlertContainer } from "../AlertContainer-nZR1BsF6.js";
132
- import { Accordion } from "../Accordion-Cd6gzd60.js";
132
+ import { Accordion } from "../Accordion-DL61AM6M.js";
133
133
  import { Sticky } from "../Sticky-BDcWUrzq.js";
134
134
  import { AvatarAlphabet } from "../AvatarAlphabet-BFwr2xyn.js";
135
135
  import { CardList, PaginationPlacement } from "../CardList-By_GnGmx.js";
136
- import { ChipAlphabet, EntityHeader } from "../EntityHeader-Buq_r4IE.js";
136
+ import { ChipAlphabet, EntityHeader } from "../EntityHeader-DOoeCEj3.js";
137
137
  import { CompactDataList } from "../CompactDataList-drOdcMN5.js";
138
138
  import { FluentActivity, FluentActivityRow } from "../FluentActivityRow-CmoRw1Lt.js";
139
139
  import { AccountFlags, AmbientList, FluentListElement, GraphCard, TimelineCalendar } from "../TimelineCalendar-BxjFou_7.js";
@@ -183,14 +183,14 @@ import { PAHAdditionalTitleComponent, UtilityTabHeader } from "../PAHAdditionalT
183
183
  import { ItemsWidgetCard } from "../ItemsWidgetCard-Btb88zwI.js";
184
184
  import { FormControlLabel } from "../FormControlLabel-CwjEQrj8.js";
185
185
  import { InputAdornment } from "../InputAdornment-B1C26m73.js";
186
- import { FluentTimeline, FluentTimelineContent, FluentTimelineHeader } from "../FluentTimeline-ChthjfxZ.js";
186
+ import { FluentTimeline, FluentTimelineContent, FluentTimelineHeader } from "../FluentTimeline-B0VjMqsq.js";
187
187
  import { UdpTabPanel, UdpTabUtility } from "../UdpTabUtility-BFY5dGuO.js";
188
188
  import "../FluentBody-PdsySA1c.js";
189
- import "../FluentCell-DZ5pFjdC.js";
189
+ import "../FluentCell-C7lb2y4Z.js";
190
190
  import "../FluentHead-BTV-o45z.js";
191
191
  import "../FluentRow-CVqnk9pB.js";
192
- import { FluentDataTable } from "../FluentDataTable-C7Ng6Eh3.js";
193
- import { FileViewer } from "../FileViewer-C1eQoTDj.js";
192
+ import { FluentDataTable } from "../FluentDataTable-C3A36z2b.js";
193
+ import { FileViewer } from "../FileViewer-Bhubf4Uv.js";
194
194
  import { UdpCharts } from "../charts-PdiOkLDF.js";
195
195
  import { UdpMap } from "../UdpMap-5NE3rUIS.js";
196
196
  import { InputsExample } from "../InputsExample-BPDEWFXK.js";
@@ -7,8 +7,8 @@ import "../../../UnityFluentIcon-fuqAQh0C.js";
7
7
  import "../../../RuleUtilities-DXVlN84J.js";
8
8
  import "../../../SearchUtilities-CzmJ6hI2.js";
9
9
  import "../../../GroupNode-Bms_Opmb.js";
10
- import "../../../TreeUtilities-DVY-2md6.js";
11
- import { FluentTimeline, FluentTimelineContent, FluentTimelineHeader } from "../../../FluentTimeline-ChthjfxZ.js";
10
+ import "../../../TreeUtilities-XLrXtUeL.js";
11
+ import { FluentTimeline, FluentTimelineContent, FluentTimelineHeader } from "../../../FluentTimeline-B0VjMqsq.js";
12
12
  import "../../../fluentTimeline-Bw3MB61J.js";
13
13
 
14
14
  export { FluentTimeline, FluentTimelineContent, FluentTimelineHeader };
@@ -7,9 +7,9 @@ import "../../UnityFluentIcon-fuqAQh0C.js";
7
7
  import "../../RuleUtilities-DXVlN84J.js";
8
8
  import "../../SearchUtilities-CzmJ6hI2.js";
9
9
  import "../../GroupNode-Bms_Opmb.js";
10
- import "../../TreeUtilities-DVY-2md6.js";
10
+ import "../../TreeUtilities-XLrXtUeL.js";
11
11
  import { TimeEntryStates, TimeLine, UdpTimeline, UdpTimelineConnector, UdpTimelineContent, UdpTimelineDot, UdpTimelineItem, UdpTimelineSeparator } from "../../UdpTimelineItemSeparator-CLmX2L55.js";
12
- import { FluentTimeline, FluentTimelineContent, FluentTimelineHeader } from "../../FluentTimeline-ChthjfxZ.js";
12
+ import { FluentTimeline, FluentTimelineContent, FluentTimelineHeader } from "../../FluentTimeline-B0VjMqsq.js";
13
13
  import "../../fluentTimeline-Bw3MB61J.js";
14
14
  import "../../timeline-CvlnNFik.js";
15
15
 
@@ -10,6 +10,6 @@ import "./useAxiosGet-VY6m2qeW.js";
10
10
  import "./PageLoading-DCoyVjWf.js";
11
11
  import "./useAuthedUser-BbuZ-TTz.js";
12
12
  import "./ClientSideUdpGrid-CDxftJTA.js";
13
- import { UdpMaintenanceConfigPage_default } from "./UdpMaintenanceConfigPage-yuotrI0g.js";
13
+ import { UdpMaintenanceConfigPage_default } from "./UdpMaintenanceConfigPage-mJ4AkDYp.js";
14
14
 
15
15
  export { UdpMaintenanceConfigPage_default as default };
@@ -44,7 +44,8 @@ const UdpMaintenanceConfigPage = (props) => {
44
44
  const handleOpenEntityMaintenancePage = useCallback((selectedEntity) => {
45
45
  history.push(`/crudbrowser`, {
46
46
  entityName: getSanitizedName(selectedEntity?.entityName),
47
- apiCatalogId
47
+ apiCatalogId,
48
+ from: "tablebrowser"
48
49
  });
49
50
  }, [history, apiCatalogId]);
50
51
  const actionList = useMemo(() => [{
@@ -86,4 +87,4 @@ var UdpMaintenanceConfigPage_default = UdpMaintenanceConfigPage;
86
87
 
87
88
  //#endregion
88
89
  export { UdpMaintenanceConfigPage_default };
89
- //# sourceMappingURL=UdpMaintenanceConfigPage-yuotrI0g.js.map
90
+ //# sourceMappingURL=UdpMaintenanceConfigPage-mJ4AkDYp.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UdpMaintenanceConfigPage-mJ4AkDYp.js","names":[],"sources":["../src/udp/pages/UdpMaintenanceConfigPage.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState, useMemo } from 'react';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { useAxiosMutate } from '../../utilities/useAxiosMutate';\nimport { useAuthedUser } from '../../utilities/auth/useAuthedUser';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { useHistory } from 'react-router-dom';\nimport { PageLoading } from '../../UI/feedback/PageLoading';\nimport { useTranslation } from 'react-i18next';\nimport { ClientSideUdpGrid } from '../../UI/templates/newGrid/ClientSideUdpGrid';\n\nconst UdpMaintenanceConfigPage = (props) => {\n const [apiCatalogId, setApiCatalogId] = useState(null);\n const user = useAuthedUser();\n const history = useHistory();\n const { t } = useTranslation();\n\n /* #region API Methods */\n\n const [{ data: tpacb, loading: loadingTpacb, error: tpacbError }] =\n useAxiosGet(\n process.env.REACT_APP_INTEGRATION_API_BASE,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${process.env.REACT_APP_UNITY_PRODUCT_ID}`,\n {},\n !!!user,\n false\n );\n\n const [\n {\n data: promotedGetConfigApi,\n loading: loadingPromotedGetConfigApi,\n error: promotedGetConfigApiError\n }\n ] = useAxiosGet(\n process.env.REACT_APP_INTEGRATION_API_BASE,\n `apicatalog/${apiCatalogId}/promotedConfigEntity/product/${process.env.REACT_APP_UNITY_PRODUCT_ID}`,\n {},\n !!!apiCatalogId,\n false\n );\n\n const [\n {\n data: tableConfigList,\n loading: tableConfigListLoading,\n error: tableConfigListError\n },\n fetchTableConfigList\n ] = useAxiosMutate(\n process.env.REACT_APP_INTEGRATION_API_BASE,\n `apimethod/executeQueryWithParameters/${promotedGetConfigApi?.apiMethodId}`,\n {\n method: 'post'\n }\n );\n\n const [{ data: promotedMethods, loading, error }] = useAxiosGet(\n process.env.REACT_APP_INTEGRATION_API_BASE,\n `apicatalog/${apiCatalogId}/promotedMethodEntities?productId=${process.env.REACT_APP_UNITY_PRODUCT_ID}`,\n {},\n !!!apiCatalogId,\n false\n );\n\n /* #endregion */\n\n const rowData = useMemo(() => {\n if (!promotedMethods || !tableConfigList) {\n return [];\n }\n let tmp = [];\n if (Array.isArray(tableConfigList)) {\n tmp = tableConfigList;\n } else {\n // eslint-disable-next-line no-unused-vars\n for (const [key, value] of Object.entries(tableConfigList)) {\n tmp.push(`${key}`);\n }\n }\n\n const result = tmp.reduce((mergedData, tableConfig) => {\n const matchingEntityRow = promotedMethods.find(\n (promotedEntity) =>\n promotedEntity.entityName === getSanitizedName(tableConfig)\n );\n if (matchingEntityRow) {\n mergedData.push(matchingEntityRow);\n } else {\n const placeholderData = {\n entityName: tableConfig,\n productId: process.env.REACT_APP_UNITY_PRODUCT_ID,\n unityBaseGetAllMethod: null,\n unityBaseGetMethod: null,\n unityBaseCreateMethod: null,\n unityBaseUpdateMethod: null,\n unityBaseDeleteMethod: null\n };\n mergedData.push(placeholderData);\n }\n return mergedData;\n }, []);\n return result;\n }, [promotedMethods, tableConfigList]);\n\n const handleOpenEntityMaintenancePage = useCallback(\n (selectedEntity) => {\n history.push(`/crudbrowser`, {\n entityName: getSanitizedName(selectedEntity?.entityName),\n apiCatalogId: apiCatalogId,\n from: 'tablebrowser'\n });\n },\n [history, apiCatalogId]\n );\n\n const actionList = useMemo(\n () => [\n {\n id: 0,\n title: t('View table data'),\n iconName: 'arrowRight16',\n handleOnClick: (e, params) => handleOpenEntityMaintenancePage(params?.data),\n disabled: false\n }\n ],\n [handleOpenEntityMaintenancePage, t]\n );\n\n const columnDefs = useMemo(() => {\n return [\n {\n headerName: 'Entity Name',\n field: 'entityName',\n valueGetter: (params) =>\n params.data?.properties?.displayName ||\n params.data?.sanitizedName ||\n getSanitizedName(params.data?.entityName),\n },\n {\n headerName: 'Actions',\n field: 'actions',\n cellRenderer: 'actionsRenderer',\n cellRendererParams: {\n actionList: actionList\n }\n }\n ];\n }, [actionList]);\n\n useEffect(() => {\n if (tpacb) {\n setApiCatalogId(tpacb.apiCatalogId);\n }\n }, [tpacb]);\n\n useEffect(() => {\n if (promotedGetConfigApi?.apiMethodId) {\n fetchTableConfigList({ data: {} });\n }\n }, [fetchTableConfigList, promotedGetConfigApi]);\n\n if (loadingTpacb || loadingPromotedGetConfigApi || tableConfigListLoading) {\n return <PageLoading />;\n }\n\n if (tpacbError) {\n return (\n <div>\n {t('There is no Api Catalog associated with your tenant and product')}\n </div>\n );\n }\n\n if (promotedGetConfigApiError) {\n return (\n <div>\n {t(\n 'Please promote your get configuration tables method before proceeding'\n )}\n </div>\n );\n }\n\n if (tableConfigListError) {\n return <div>{t('No configuration tables could be found')}</div>;\n }\n\n return (\n <ClientSideUdpGrid\n rowData={rowData}\n columnDefs={columnDefs}\n gridHeaderConfig={{ title: 'Table Browser' }}\n />\n );\n};\n\nexport default UdpMaintenanceConfigPage;\n"],"mappings":"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"}
@@ -12,7 +12,7 @@ import { executeQueryAdHoc } from "./methodUtils-Bgi0VCWP.js";
12
12
  import { usePromotedMethodEntity } from "./usePromotedMethodEntity-B50E6rbB.js";
13
13
  import { FluentDialog } from "./FluentDialog-DU5BAKwU.js";
14
14
  import { useApiCatalog } from "./useApiCatalog-Cz8Sz4-r.js";
15
- import { CrudBrowserContainer } from "./CrudBrowserContainer-Dpgwjt7c.js";
15
+ import { CrudBrowserContainer } from "./CrudBrowserContainer-B8AKH7kQ.js";
16
16
  import { TagEnums } from "./tagEnums-BD6xUu3X.js";
17
17
  import { CrudTableSidePanel } from "./CrudTableSidePanel-1A8qrCCX.js";
18
18
  import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
@@ -32,6 +32,7 @@ const UdpMaintenanceEnginePage = (props) => {
32
32
  const { t } = useTranslation();
33
33
  const [udpFieldInfos, setUdpFieldInfos] = useState([]);
34
34
  const [alertWarnings, setAlertWarnings] = useState([]);
35
+ const [showBackToTableBrowser, setShowBackToTableBrowser] = useState(false);
35
36
  const gridApiRef = useRef(null);
36
37
  const [modalConfig, setModalConfig] = useState({
37
38
  type: null,
@@ -387,6 +388,9 @@ const UdpMaintenanceEnginePage = (props) => {
387
388
  udpFieldSearchApiId,
388
389
  entityName
389
390
  ]);
391
+ useEffect(() => {
392
+ if (location.state?.from === "tablebrowser") setShowBackToTableBrowser(true);
393
+ }, [location.state]);
390
394
  const handleGridApiCallback = (api) => {
391
395
  gridApiRef.current = api;
392
396
  };
@@ -406,7 +410,8 @@ const UdpMaintenanceEnginePage = (props) => {
406
410
  },
407
411
  filterElements: searchFilterElements,
408
412
  setAlertWarnings,
409
- gridApiCallback: handleGridApiCallback
413
+ gridApiCallback: handleGridApiCallback,
414
+ showBackToTableBrowser
410
415
  }), /* @__PURE__ */ React.createElement(SideSheet, {
411
416
  open: modalConfig.type === "create" || modalConfig.type === "edit",
412
417
  onClose: closeModal,
@@ -438,4 +443,4 @@ var UdpMaintenanceEnginePage_default = UdpMaintenanceEnginePage;
438
443
 
439
444
  //#endregion
440
445
  export { UdpMaintenanceEnginePage, UdpMaintenanceEnginePage_default, UdpMaintenanceEnginePage_exports };
441
- //# sourceMappingURL=UdpMaintenanceEnginePage-o40sezly.js.map
446
+ //# sourceMappingURL=UdpMaintenanceEnginePage-DAioIeSf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UdpMaintenanceEnginePage-DAioIeSf.js","names":["apiMutate","entityName","uuid","params"],"sources":["../src/udp/pages/UdpMaintenanceEnginePage.jsx"],"sourcesContent":["import React, { useEffect, useState, useMemo, useCallback, useRef } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { CrudBrowserContainer } from '../../maintenanceEngine/crudBrowser/CrudBrowserContainer';\nimport { CrudTableSidePanel } from '../../maintenanceEngine/crudBrowser/CrudTableSidePanel';\nimport {\n getEntityAttributes,\n getPathObject,\n getPrimaryKeyValues\n} from '../../utilities/maintenanceEngine/CrudBrowserUtilities';\nimport { apiMutate } from '../../utilities/useAxiosMutate';\nimport {\n toLowerFirstChar,\n toUpperFirstChar\n} from '../../utilities/input/StringUtilities';\nimport {\n CardinalityTypeEnums,\n EntityAttributeEnums,\n UdpEnums\n} from '../../enums/unitySystemEnums';\nimport { executeQueryAdHoc } from '../utilities/methodUtils';\nimport { getSearchObject } from '../../utilities/search/SearchUtilities';\nimport { useApiCatalog } from '../../hooks/useApiCatalog';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { usePromotedMethodEntity } from '../../hooks/usePromotedMethodEntity';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { Alert } from '@material-ui/lab';\nimport { v4 as uuid } from 'uuid';\nimport { useLocation } from 'react-router-dom';\nimport { TagEnums } from '../../enums/tagEnums';\nimport { ConfigService } from 'udp-react-stencil-component-library';\nimport { SideSheet } from '../../UI/surfaces/SideSheet';\nimport { FluentDialog } from '../../UI/feedback/FluentDialog';\nimport { useCatalogStore } from '../../stores/catalogStore';\nimport { useHistory } from 'react-router-dom';\n\nexport const UdpMaintenanceEnginePage = (props) => {\n const { catalogKey, params } = props;\n const { t } = useTranslation();\n const [udpFieldInfos, setUdpFieldInfos] = useState([]);\n const [alertWarnings, setAlertWarnings] = useState([]);\n const [showBackToTableBrowser, setShowBackToTableBrowser] = useState(false);\n const gridApiRef = useRef(null);\n const [modalConfig, setModalConfig] = useState({ type: null, data: null });\n const location = useLocation();\n const state = location.state;\n const history = useHistory();\n let searchParamStr = location.search;\n let searchParams = new URLSearchParams(searchParamStr);\n const searchParamsEntityName = state?.entityName\n ? state.entityName\n : searchParams.has('entityName') === true\n ? toUpperFirstChar(searchParams.get('entityName'))\n : '';\n\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const handleGoToTableBrowser = useCallback(() => {\n history.push({\n pathname: `/tableBrowser`\n });\n }, [history]);\n\n const udpCatalogKey = useMemo(() => {\n if (params?.entityName || catalogKey || searchParamsEntityName) {\n return params?.entityName || catalogKey || searchParamsEntityName;\n } else {\n handleGoToTableBrowser();\n }\n }, [\n params?.entityName,\n catalogKey,\n searchParamsEntityName,\n handleGoToTableBrowser\n ]);\n const udpTagId = params?.udpTagId || '';\n\n const [selectedEntity, setSelectedEntity] = useState(null);\n const [foreignKeyData, setForeignKeyData] = useState(null);\n const [udpFieldSearchApiId, setUdpFieldSearchApiId] = useState(null);\n\n const [entityName, setEntityName] = useState(null);\n\n const { currentApiCatalogId } = useCatalogStore();\n\n const { data: catalog } = useApiCatalog(currentApiCatalogId);\n\n const { data: udpObjectFieldInfo } = usePromotedMethodEntity(\n 'UdpObjectFieldInfo',\n true\n );\n\n const { data: promotedMethodEntities } = usePromotedMethodEntity(\n udpCatalogKey,\n true\n );\n\n // 2. MODAL HANDLERS: Callbacks to open and close modals/sheets.\n const openModal = useCallback((type, data = null) => {\n setModalConfig({ type, data });\n }, []);\n\n const closeModal = useCallback(() => {\n setModalConfig({ type: null, data: null });\n }, []);\n\n //------- CRUD operations--------\n const executeCreate = useCallback(\n async (data) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseCreateMethod?.apiMethodId}`,\n {\n method: 'post'\n },\n data\n ),\n [selectedEntity]\n );\n\n const executeUpdate = useCallback(\n async (data) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseUpdateMethod?.apiMethodId}`,\n {\n method: 'post'\n },\n data\n ),\n [selectedEntity]\n );\n\n const executeDelete = useCallback(\n async (data) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${selectedEntity?.unityBaseDeleteMethod?.apiMethodId}`,\n {\n method: 'post'\n },\n data\n ),\n [selectedEntity]\n );\n\n const onCreate = useCallback(\n async (data) => {\n return await executeCreate(data);\n },\n [executeCreate]\n );\n\n const onUpdate = useCallback(\n async (data) => {\n return await executeUpdate(data);\n },\n [executeUpdate]\n );\n\n const onDelete = useCallback(\n async (data) => {\n return await executeDelete(data);\n },\n [executeDelete]\n );\n\n const searchFilterElements = useMemo(() => {\n const filterElements = [];\n if (udpTagId) {\n filterElements.push({\n searchField: 'UdpTags.UdpTagAssociationUdpTag.Id',\n searchOperator: '=',\n searchValue: udpTagId\n });\n }\n return filterElements;\n }, [udpTagId]);\n\n const entityAttributes = useMemo(() => {\n if (udpFieldInfos?.length > 0 && catalog && entityName) {\n // 1. Get original attributes from catalog\n const originalAttributes = getEntityAttributes(catalog, entityName);\n const attributeMap = new Map(\n originalAttributes.map((attr) => [attr.name.toLowerCase(), attr])\n );\n\n // 2. Create the sorted list by iterating through udpFieldInfos\n const sortedPart = udpFieldInfos\n .map((field) => {\n const match = attributeMap.get(field.name.toLowerCase());\n if (match) {\n // Merge properties as we build the sorted list\n return {\n ...match,\n extendedProperties: {\n ...match.extendedProperties,\n udpFieldProperties: field.properties\n }\n };\n }\n return null;\n })\n .filter(Boolean);\n\n // 3. Find unmatched items in a single pass\n const udpFieldNames = new Set(\n udpFieldInfos.map((f) => f.name.toLowerCase())\n );\n const unmatchedPart = originalAttributes.filter(\n (attr) => !udpFieldNames.has(attr.name.toLowerCase())\n );\n\n // 4. Combine the sorted, merged part with the original unmatched part\n return [...sortedPart, ...unmatchedPart];\n }\n }, [catalog, entityName, udpFieldInfos]);\n\n const getMetaDataForUdpField = useCallback(\n async (entityName) => {\n let fieldInfos = [];\n if (udpFieldSearchApiId) {\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({ data: requestObj }, udpFieldSearchApiId).then(\n (resp) => {\n fieldInfos = resp.data?.pageList;\n }\n );\n }\n return fieldInfos;\n },\n [udpFieldSearchApiId]\n );\n\n const getFKMethodEntities = useCallback(\n async (attributes) => {\n if (!attributes) {\n return [];\n }\n let fkMethods = [];\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.Cardinality ===\n CardinalityTypeEnums.Many_To_Many ||\n attr.extendedProperties.childEntityAssoc.Cardinality ===\n CardinalityTypeEnums.One_To_Many) &&\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((cef) => cef.name === p.name)\n );\n\n if (ceAttr) {\n // get list of entity if ceProp exists\n await apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${currentApiCatalogId}/promotedMethodEntities/${attr.reference}/product/${ConfigService.config.UNITY_PRODUCT_ID}`,\n {\n method: 'get'\n },\n {}\n ).then((resp) => {\n if (resp && resp.data) {\n fkMethods.push({\n entityAttribute: ceAttr,\n entity: resp.data\n });\n }\n });\n }\n }\n }\n return fkMethods;\n },\n [currentApiCatalogId]\n );\n\n const getFKAssociationLabel = useCallback(\n async (entityName) => {\n let fieldsInfo = [];\n fieldsInfo = await getMetaDataForUdpField(entityName);\n if (fieldsInfo?.length <= 0) {\n return '';\n }\n const associationLabelInfo = fieldsInfo?.find(\n (fi) => fi.properties?.maintainenceConfig?.associationLabel === 'true'\n );\n return associationLabelInfo?.name;\n },\n [getMetaDataForUdpField]\n );\n\n const getDataByKey = (obj, k) => {\n if (!obj) return null;\n let val = obj[k] ?? null;\n if (!val) {\n const key = Object.keys(obj).find((objKey) =>\n objKey.toLowerCase().includes(k)\n );\n if (key) {\n val = obj[key];\n }\n }\n return val;\n };\n\n const getFKData = useCallback(async () => {\n if (!entityAttributes?.length) {\n return null;\n }\n const fkMethods = await getFKMethodEntities(entityAttributes);\n if (!fkMethods?.length) {\n setForeignKeyData([]);\n return [];\n }\n let fkData = [];\n let promises = [];\n let promiseDetails = [];\n const warnings = [];\n for (const method of fkMethods) {\n if (method && method?.entity?.unityBaseGetAllMethod) {\n const associationLabel = await getFKAssociationLabel(\n method.entity.entityName\n );\n promiseDetails.push({\n url:\n ConfigService.integrationV1ApiUrl +\n `/apimethod/executeQueryWithParameters/${method?.entity?.unityBaseGetAllMethod?.apiMethodId}`,\n fieldName: method.entityAttribute.name,\n name: method.entity.entityName,\n associationLabel: associationLabel\n });\n\n promises.push(\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryWithParameters/${method?.entity?.unityBaseGetAllMethod?.apiMethodId}`,\n {\n method: 'post'\n },\n { data: {} }\n )\n );\n } else {\n warnings.push({\n id: uuid(),\n message: `${method.entity.entityName}'s Get-All method needs to be promoted`\n });\n }\n }\n setAlertWarnings((existingWarnings) => [...existingWarnings, ...warnings]);\n\n Promise.all(promises).then((resp) => {\n resp.forEach((response, index) => {\n if (response.status === 200) {\n if (response?.data) {\n let respData = [];\n const promiseDetail = promiseDetails.find(\n (p) =>\n p.url === response?.config?.url &&\n !fkData.find(\n (fd) =>\n fd.entityName === p.name && fd.fieldName === p.fieldName\n )\n );\n\n response.data.forEach((d) => {\n const idName =\n promiseDetail?.fieldName && d[promiseDetail.fieldName]\n ? promiseDetail.fieldName\n : 'id';\n const id = getDataByKey(d, idName);\n const name = getDataByKey(\n d,\n promiseDetail?.associationLabel\n ? toLowerFirstChar(promiseDetail.associationLabel)\n : 'name'\n );\n\n respData.push({ id: id, name: name ?? id });\n });\n\n if (!!promiseDetail) {\n fkData.push({\n fieldName: promiseDetail.fieldName,\n entityName: promiseDetail.name,\n name: promiseDetail.fieldName,\n data: respData\n });\n }\n }\n }\n });\n setForeignKeyData(fkData);\n });\n }, [entityAttributes, getFKMethodEntities, getFKAssociationLabel]);\n\n const handleOnCreate = useCallback(\n async (values) => {\n if (selectedEntity) {\n const entityName = selectedEntity?.entityName;\n if (selectedEntity?.unityBaseCreateMethod) {\n const data = { requestBody: values };\n const response = await onCreate({ data }).catch((res) => {\n handleErrorSnackbar(res);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(\n entityName\n ? t(`${entityName} has been created`)\n : t(`Entity has been created`)\n );\n gridApiRef.current.refreshServerSide();\n closeModal('create');\n return response;\n }\n } else {\n handleErrorSnackbar(\n null,\n selectedEntity.entityName + \"'s create method must be promoted\"\n );\n }\n }\n },\n [selectedEntity, onCreate, handleErrorSnackbar, handleSuccessSnackbar, t, closeModal]\n );\n\n const handleOnUpdate = useCallback(\n async (values, primaryKeyValues) => {\n if (selectedEntity) {\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 let data = { requestBody: values };\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject, requestBody: values };\n }\n\n const response = await onUpdate({ data }).catch((res) => {\n handleErrorSnackbar(res);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(\n entityName\n ? t(`${entityName} has been updated`)\n : t(`Entity has been updated`)\n );\n\n gridApiRef.current.refreshServerSide();\n closeModal('edit');\n }\n }\n }\n },\n [selectedEntity, onUpdate, handleErrorSnackbar, handleSuccessSnackbar, t, closeModal]\n );\n\n const handleOnDelete = useCallback(\n async (value) => {\n if (selectedEntity) {\n const entityName = selectedEntity?.entityName;\n\n if (selectedEntity?.unityBaseDeleteMethod) {\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 let data = {};\n if (Array.isArray(pathObject)) {\n pathObject.forEach((po) => {\n data[Object.keys(po)[0]] = po[Object.keys(po)[0]];\n });\n } else {\n data = { ...pathObject };\n }\n\n const response = await onDelete({ data }).catch((res) => {\n handleErrorSnackbar(res);\n });\n\n if (response?.status === 200) {\n handleSuccessSnackbar(\n entityName\n ? t(`${entityName} has been deleted`)\n : t(`Entity has been deleted`)\n );\n gridApiRef.current.refreshServerSide();\n closeModal('delete');\n }\n }\n }\n },\n [selectedEntity, entityAttributes, onDelete, handleErrorSnackbar, handleSuccessSnackbar, t, closeModal]\n );\n\n const removeWarning = useCallback(\n (id) => {\n const updatedWarnings = alertWarnings.filter(\n (warning) => warning.id !== id\n );\n setAlertWarnings(updatedWarnings);\n },\n [alertWarnings]\n );\n\n const shouldDisableAction = useCallback(\n (value) => {\n const sanitizedEntityName = getSanitizedName(entityName);\n const tagTypeShouldDisableEdit =\n [TagEnums.TagTypeSanitizedName.toLowerCase()].includes(\n sanitizedEntityName?.toLowerCase()\n ) && !value?.[toLowerFirstChar(EntityAttributeEnums.User_Defined)];\n\n const shortCutContentShouldDisableEdit =\n [UdpEnums.Udp_Shortcut_Content.toLowerCase()].includes(\n sanitizedEntityName?.toLowerCase()\n ) &&\n value?.[\n toLowerFirstChar(EntityAttributeEnums.Is_Product_ShortcutContent)\n ];\n\n const lookupShouldDisableEdit =\n [UdpEnums.Udp_Lookup.toLowerCase()].includes(\n sanitizedEntityName?.toLowerCase()\n ) && value?.[toLowerFirstChar(EntityAttributeEnums.Is_Product_Lookup)];\n return (\n tagTypeShouldDisableEdit ||\n shortCutContentShouldDisableEdit ||\n lookupShouldDisableEdit\n );\n },\n [entityName]\n );\n\n const actionList = useMemo(() => {\n if (!selectedEntity) {\n return [];\n }\n\n return [\n {\n id: 'edit',\n iconName: 'edit', // Pass string name for the icon\n getTitle: () =>\n // Use getTitle for dynamic text\n selectedEntity?.unityBaseUpdateMethod\n ? t('Edit')\n : t('Edit Method Not Accessible'),\n handleOnClick: (e, params) => {\n openModal('edit', params.data); // Calls parent state handler\n },\n checkDisabled: (params) =>\n !!!selectedEntity?.unityBaseUpdateMethod ||\n shouldDisableAction(params.data)\n },\n {\n id: 'delete',\n iconName: 'trashCan', // Pass string name for the icon\n getTitle: () =>\n selectedEntity?.unityBaseDeleteMethod\n ? t('Delete')\n : t('Delete Method Not Accessible'),\n handleOnClick: (e, params) => {\n openModal('delete', params.data); // Calls parent state handler\n },\n checkDisabled: (params) =>\n !!!selectedEntity?.unityBaseDeleteMethod ||\n shouldDisableAction(params.data)\n }\n ];\n }, [selectedEntity, t, shouldDisableAction, openModal]);\n\n useEffect(() => {\n const setFrKeyData = async () => {\n await getFKData();\n };\n if (entityAttributes && udpFieldSearchApiId !== null) {\n setFrKeyData();\n }\n }, [entityAttributes, getFKData, udpFieldSearchApiId]);\n\n useEffect(() => {\n if (promotedMethodEntities) {\n setSelectedEntity(promotedMethodEntities);\n setEntityName(promotedMethodEntities?.entityName);\n }\n }, [promotedMethodEntities]);\n\n useEffect(() => {\n if (udpObjectFieldInfo) {\n if (udpObjectFieldInfo?.unityBaseSearchMethod?.apiMethodId) {\n setUdpFieldSearchApiId(\n udpObjectFieldInfo?.unityBaseSearchMethod?.apiMethodId\n );\n } else {\n setUdpFieldSearchApiId('');\n const udpFieldWarning = {\n id: uuid(),\n message: `UdpObjectFieldInfo method needs to be promoted`\n };\n setAlertWarnings((prevState) => [...prevState, udpFieldWarning]);\n }\n }\n }, [udpObjectFieldInfo]);\n\n useEffect(() => {\n const setFieldInfos = async () => {\n let temp = await getMetaDataForUdpField(entityName);\n setUdpFieldInfos(temp);\n };\n if (udpFieldSearchApiId) {\n setFieldInfos();\n }\n }, [\n udpObjectFieldInfo,\n getMetaDataForUdpField,\n udpFieldSearchApiId,\n entityName\n ]);\n\n useEffect(() => {\n if (location.state?.from === 'tablebrowser') {\n setShowBackToTableBrowser(true);\n }\n }, [location.state]);\n\n const handleGridApiCallback = (api) => {\n gridApiRef.current = api;\n };\n\n return (\n <>\n {alertWarnings.map((warning) => (\n <Alert\n key={warning.id}\n onClose={() => removeWarning(warning.id)}\n severity='warning'\n >\n {warning.message || ''}\n </Alert>\n ))}\n <CrudBrowserContainer\n actionList={actionList}\n onCreate={() => openModal('create')}\n entityAttributes={entityAttributes}\n foreignKeyData={foreignKeyData}\n promotedEntity={selectedEntity}\n apiMethod={{ currentApiCatalogId, entityName }}\n filterElements={searchFilterElements}\n setAlertWarnings={setAlertWarnings}\n gridApiCallback={handleGridApiCallback}\n showBackToTableBrowser={showBackToTableBrowser}\n />\n <SideSheet\n open={modalConfig.type === 'create' || modalConfig.type === 'edit'}\n onClose={closeModal}\n title={\n modalConfig.type === 'create'\n ? `Add New ${entityName}`\n : `Edit ${entityName}`\n }\n width={600}\n >\n {(modalConfig.type === 'create' || modalConfig.type === 'edit') && (\n <CrudTableSidePanel\n entityAttributes={entityAttributes}\n udpFieldInfos={udpFieldInfos}\n foreignKeyData={foreignKeyData}\n closeSideSheet={closeModal}\n isNewEntry={modalConfig.type === 'create'}\n entityName={entityName}\n onCreate={\n modalConfig.type === 'create' ? handleOnCreate : undefined\n }\n onUpdate={modalConfig.type === 'edit' ? handleOnUpdate : undefined}\n crudTableEditionData={\n modalConfig.type === 'edit' ? modalConfig.data : null\n }\n pageId={\n modalConfig.type === 'edit'\n ? selectedEntity?.unityBaseUpdateMethod?.pageId\n : selectedEntity?.unityBaseCreateMethod?.pageId\n }\n />\n )}\n </SideSheet>\n <FluentDialog\n open={modalConfig.type === 'delete'}\n handleClose={closeModal}\n title={t('Delete')}\n message={t('Are you sure you want to delete this row?')}\n actionOne={closeModal}\n labelOne={t('Cancel')}\n actionTwo={() => handleOnDelete(modalConfig.data)}\n labelTwo={t('Confirm')}\n />\n </>\n );\n};\n\nexport default UdpMaintenanceEnginePage;\n"],"mappings":"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"}
@@ -49,11 +49,11 @@ import "./usePromotedMethodEntity-B50E6rbB.js";
49
49
  import "./FluentDialog-DU5BAKwU.js";
50
50
  import "./useApiCatalog-Cz8Sz4-r.js";
51
51
  import "./useDefaultFormValues-DvWSqhBl.js";
52
- import "./CrudBrowserContainer-Dpgwjt7c.js";
52
+ import "./CrudBrowserContainer-B8AKH7kQ.js";
53
53
  import "./SearchMethodUdpGrid-Ua0Kj84J.js";
54
54
  import "./tagEnums-BD6xUu3X.js";
55
55
  import "./CrudForm-DIlveZRg.js";
56
56
  import "./CrudTableSidePanel-1A8qrCCX.js";
57
- import { UdpMaintenanceEnginePage, UdpMaintenanceEnginePage_default } from "./UdpMaintenanceEnginePage-o40sezly.js";
57
+ import { UdpMaintenanceEnginePage, UdpMaintenanceEnginePage_default } from "./UdpMaintenanceEnginePage-DAioIeSf.js";
58
58
 
59
59
  export { UdpMaintenanceEnginePage, UdpMaintenanceEnginePage_default as default };
@@ -49,14 +49,14 @@ const PrivateRoute = ({ ...otherProps }) => {
49
49
  //#endregion
50
50
  //#region src/routes/UdpRoutes.jsx
51
51
  const VirtualBrowser = lazy(() => import("./VirtualBrowser-B66Iyn4h.js"));
52
- const MenuPage = lazy(() => import("./MenuPage-BJsOWc5e.js"));
52
+ const MenuPage = lazy(() => import("./MenuPage-kn130DcT.js"));
53
53
  const UdpPublicForm = lazy(() => import("./UdpPublicForm-DnPkG5dr.js"));
54
- const WorkflowContainer = lazy(() => import("./WorkflowContainer-C6QfVid-.js"));
54
+ const WorkflowContainer = lazy(() => import("./WorkflowContainer-BTwu3z4L.js"));
55
55
  const PasswordResetRedirect = lazy(() => import("./PasswordResetRedirect-BMDMHdhE.js"));
56
56
  const MyExportsPage = lazy(() => import("./MyExportsPage-ZP2V0i5h.js"));
57
57
  const PageNotFoundRoute = lazy(() => import("./PageNotFoundRoute-CTaRcNjL.js"));
58
- const UdpMaintenanceConfigPage = lazy(() => import("./UdpMaintenanceConfigPage-CC_gwu35.js"));
59
- const UdpMaintenanceEnginePage = lazy(() => import("./UdpMaintenanceEnginePage-b5cm6uW2.js"));
58
+ const UdpMaintenanceConfigPage = lazy(() => import("./UdpMaintenanceConfigPage-DfKk0PmB.js"));
59
+ const UdpMaintenanceEnginePage = lazy(() => import("./UdpMaintenanceEnginePage-M0RbzSTX.js"));
60
60
  const UdpRoutes = (props) => {
61
61
  const { ...other } = props;
62
62
  return /* @__PURE__ */ React.createElement(Suspense, { fallback: /* @__PURE__ */ React.createElement(PageLoading, null) }, /* @__PURE__ */ React.createElement(Switch$1, null, /* @__PURE__ */ React.createElement(PrivateRoute, {
@@ -107,4 +107,4 @@ const UdpRoutes = (props) => {
107
107
 
108
108
  //#endregion
109
109
  export { PrivateRoute, UdpRoutes };
110
- //# sourceMappingURL=UdpRoutes-BVVsyngj.js.map
110
+ //# sourceMappingURL=UdpRoutes-Bmn455yo.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"UdpRoutes-BVVsyngj.js","names":["Switch","props"],"sources":["../src/routes/components/PageForbiddenRoute.jsx","../src/routes/PrivateRoute.jsx","../src/routes/UdpRoutes.jsx"],"sourcesContent":["import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { PageStatus } from './PageStatus';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginTop: theme.spacing(4)\n }\n}));\n\nexport const PageForbiddenRoute = (props) => {\n const { title, statusCode, subheader, message, showButton } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n\n return (\n <div className={classes.root}>\n <PageStatus\n title={title ?? t('Page Forbidden')}\n statusCode={statusCode ?? '403'}\n subheader={\n subheader ?? t('Sorry, you do not have permission to view this page.')\n }\n message={message ?? t('Please contact an administrator to get access.')}\n to='/'\n buttonLabel={t('Back to Home Page')}\n showButton={showButton}\n />\n </div>\n );\n};\n","import React, { useMemo } from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useIsUnityAuthenticated } from '../utilities/auth/useIsUnityAuthenticated';\nimport { useUser } from '../utilities/auth/useUser';\nimport { PageForbiddenRoute } from './components/PageForbiddenRoute';\n\nexport const PrivateRoute = ({ ...otherProps }) => {\n const isAuthenticated = useIsUnityAuthenticated();\n const user = useUser();\n const { t } = useTranslation();\n \n const userHasAccessToTenant = useMemo(() => {\n if (user?.tenantIds?.includes(user.currentTenantId)) {\n return true;\n }\n return false;\n }, [user]);\n\n if (!userHasAccessToTenant && isAuthenticated && user?.statusCode === 200) {\n return (\n <Route\n path='*'\n render={(props) => (\n <PageForbiddenRoute\n message={t('You do not have access to this tenant. Please select a different Tenant.')}\n showButton={false}\n />\n )}\n />\n );\n }\n\n if (isAuthenticated && user?.statusCode === 200) {\n return <Route {...otherProps} />;\n }\n\n return null;\n};\n","import React, { Suspense, lazy } from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport { PrivateRoute } from './PrivateRoute';\nimport { UdpPageEnums } from '../enums/pageEnums';\nimport { ConfigService } from 'udp-react-stencil-component-library';\nimport { PageLoading } from '../UI/feedback/PageLoading';\n\n// Lazy load route components\nconst VirtualBrowser = lazy(() =>\n import('../maintenanceEngine/virtualBrowser/VirtualBrowser')\n);\nconst MenuPage = lazy(() => import('../menuPage/MenuPage'));\nconst UdpPublicForm = lazy(() => import('../udp/pages/UdpPublicForm'));\nconst WorkflowContainer = lazy(() => import('../workflow/WorkflowContainer'));\nconst PasswordResetRedirect = lazy(() =>\n import('./components/PasswordResetRedirect')\n);\nconst MyExportsPage = lazy(() => import('../udp/export/MyExportsPage'));\nconst PageNotFoundRoute = lazy(() => import('./components/PageNotFoundRoute'));\nconst UdpMaintenanceConfigPage = lazy(() =>\n import('../udp/pages/UdpMaintenanceConfigPage')\n);\nconst UdpMaintenanceEnginePage = lazy(() =>\n import('../udp/pages/UdpMaintenanceEnginePage')\n);\n\nexport const UdpRoutes = (props) => {\n const { ...other } = props;\n return (\n <Suspense fallback={<PageLoading />}>\n <Switch>\n <PrivateRoute\n path='/virtual/:id'\n render={(props) => <VirtualBrowser {...props} {...other} />}\n />\n <PrivateRoute\n path='/menupage/:id'\n render={(props) => <MenuPage {...props} {...other} />}\n />\n\n <Route\n path={`/page/${UdpPageEnums.Udp_Public_Forms_Page}`}\n render={(props) => <UdpPublicForm {...props} {...other} />}\n />\n <Route\n path={`/passwordresetsuccess`}\n render={(props) => <PasswordResetRedirect props={props} />}\n />\n <PrivateRoute\n path='/workflowtask/:id'\n render={(props) => <WorkflowContainer {...props} {...other} />}\n />\n <PrivateRoute\n path='/myexports'\n render={(props) => (\n <MyExportsPage\n productId={ConfigService.config.UNITY_PRODUCT_ID}\n {...props}\n {...other}\n />\n )}\n />\n <PrivateRoute\n path='/crudbrowser'\n render={(props) => <UdpMaintenanceEnginePage {...props} />}\n />\n <PrivateRoute\n path='/tablebrowser'\n render={(props) => <UdpMaintenanceConfigPage {...props} />}\n />\n <PrivateRoute path='*' component={PageNotFoundRoute} />\n </Switch>\n </Suspense>\n );\n};\n"],"mappings":";;;;;;;;;;;;AAKA,MAAM,YAAY,YAAY,WAAW,EACvC,MAAM,EACJ,WAAW,MAAM,QAAQ,EAAE,EAC5B,EACF,EAAE;AAEH,MAAa,sBAAsB,UAAU;CAC3C,MAAM,EAAE,OAAO,YAAY,WAAW,SAAS,eAAe;CAC9D,MAAM,UAAU,WAAW;CAC3B,MAAM,EAAE,MAAM,gBAAgB;AAE9B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC;EACC,OAAO,SAAS,EAAE,iBAAiB;EACnC,YAAY,cAAc;EAC1B,WACE,aAAa,EAAE,uDAAuD;EAExE,SAAS,WAAW,EAAE,iDAAiD;EACvE,IAAG;EACH,aAAa,EAAE,oBAAoB;EACvB;GACZ,CACE;;;;;ACtBV,MAAa,gBAAgB,EAAE,GAAG,iBAAiB;CACjD,MAAM,kBAAkB,yBAAyB;CACjD,MAAM,OAAO,SAAS;CACtB,MAAM,EAAE,MAAM,gBAAgB;AAS9B,KAAI,CAP0B,cAAc;AAC1C,MAAI,MAAM,WAAW,SAAS,KAAK,gBAAgB,CACjD,QAAO;AAET,SAAO;IACN,CAAC,KAAK,CAAC,IAEoB,mBAAmB,MAAM,eAAe,IACpE,QACE,oCAAC;EACC,MAAK;EACL,SAAS,UACP,oCAAC;GACC,SAAS,EAAE,2EAA2E;GACtF,YAAY;IACZ;GAEJ;AAIN,KAAI,mBAAmB,MAAM,eAAe,IAC1C,QAAO,oCAAC,OAAU,WAAc;AAGlC,QAAO;;;;;AC7BT,MAAM,iBAAiB,WACrB,OAAO,gCACR;AACD,MAAM,WAAW,WAAW,OAAO,0BAAwB;AAC3D,MAAM,gBAAgB,WAAW,OAAO,+BAA8B;AACtE,MAAM,oBAAoB,WAAW,OAAO,mCAAiC;AAC7E,MAAM,wBAAwB,WAC5B,OAAO,uCACR;AACD,MAAM,gBAAgB,WAAW,OAAO,+BAA+B;AACvE,MAAM,oBAAoB,WAAW,OAAO,mCAAkC;AAC9E,MAAM,2BAA2B,WAC/B,OAAO,0CACR;AACD,MAAM,2BAA2B,WAC/B,OAAO,0CACR;AAED,MAAa,aAAa,UAAU;CAClC,MAAM,EAAE,GAAG,UAAU;AACrB,QACE,oCAAC,YAAS,UAAU,oCAAC,kBAAc,IACjC,oCAACA,gBACC,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC;GAAe,GAAIC;GAAO,GAAI;IAAS;GAC3D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC;GAAS,GAAIA;GAAO,GAAI;IAAS;GACrD,EAEF,oCAAC;EACC,MAAM,SAAS,aAAa;EAC5B,SAAS,YAAU,oCAAC;GAAc,GAAIA;GAAO,GAAI;IAAS;GAC1D,EACF,oCAAC;EACC,MAAM;EACN,SAAS,YAAU,oCAAC,yBAAsB,OAAOA,UAAS;GAC1D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC;GAAkB,GAAIA;GAAO,GAAI;IAAS;GAC9D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YACP,oCAAC;GACC,WAAW,cAAc,OAAO;GAChC,GAAIA;GACJ,GAAI;IACJ;GAEJ,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC,0BAA6BA,QAAS;GAC1D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC,0BAA6BA,QAAS;GAC1D,EACF,oCAAC;EAAa,MAAK;EAAI,WAAW;GAAqB,CAChD,CACA"}
1
+ {"version":3,"file":"UdpRoutes-Bmn455yo.js","names":["Switch","props"],"sources":["../src/routes/components/PageForbiddenRoute.jsx","../src/routes/PrivateRoute.jsx","../src/routes/UdpRoutes.jsx"],"sourcesContent":["import React from 'react';\nimport { makeStyles } from '@material-ui/core';\nimport { PageStatus } from './PageStatus';\nimport { useTranslation } from 'react-i18next';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n marginTop: theme.spacing(4)\n }\n}));\n\nexport const PageForbiddenRoute = (props) => {\n const { title, statusCode, subheader, message, showButton } = props;\n const classes = useStyles();\n const { t } = useTranslation();\n\n return (\n <div className={classes.root}>\n <PageStatus\n title={title ?? t('Page Forbidden')}\n statusCode={statusCode ?? '403'}\n subheader={\n subheader ?? t('Sorry, you do not have permission to view this page.')\n }\n message={message ?? t('Please contact an administrator to get access.')}\n to='/'\n buttonLabel={t('Back to Home Page')}\n showButton={showButton}\n />\n </div>\n );\n};\n","import React, { useMemo } from 'react';\nimport { Route, Redirect } from 'react-router-dom';\nimport { useTranslation } from 'react-i18next';\nimport { useIsUnityAuthenticated } from '../utilities/auth/useIsUnityAuthenticated';\nimport { useUser } from '../utilities/auth/useUser';\nimport { PageForbiddenRoute } from './components/PageForbiddenRoute';\n\nexport const PrivateRoute = ({ ...otherProps }) => {\n const isAuthenticated = useIsUnityAuthenticated();\n const user = useUser();\n const { t } = useTranslation();\n \n const userHasAccessToTenant = useMemo(() => {\n if (user?.tenantIds?.includes(user.currentTenantId)) {\n return true;\n }\n return false;\n }, [user]);\n\n if (!userHasAccessToTenant && isAuthenticated && user?.statusCode === 200) {\n return (\n <Route\n path='*'\n render={(props) => (\n <PageForbiddenRoute\n message={t('You do not have access to this tenant. Please select a different Tenant.')}\n showButton={false}\n />\n )}\n />\n );\n }\n\n if (isAuthenticated && user?.statusCode === 200) {\n return <Route {...otherProps} />;\n }\n\n return null;\n};\n","import React, { Suspense, lazy } from 'react';\nimport { Route, Switch } from 'react-router-dom';\nimport { PrivateRoute } from './PrivateRoute';\nimport { UdpPageEnums } from '../enums/pageEnums';\nimport { ConfigService } from 'udp-react-stencil-component-library';\nimport { PageLoading } from '../UI/feedback/PageLoading';\n\n// Lazy load route components\nconst VirtualBrowser = lazy(() =>\n import('../maintenanceEngine/virtualBrowser/VirtualBrowser')\n);\nconst MenuPage = lazy(() => import('../menuPage/MenuPage'));\nconst UdpPublicForm = lazy(() => import('../udp/pages/UdpPublicForm'));\nconst WorkflowContainer = lazy(() => import('../workflow/WorkflowContainer'));\nconst PasswordResetRedirect = lazy(() =>\n import('./components/PasswordResetRedirect')\n);\nconst MyExportsPage = lazy(() => import('../udp/export/MyExportsPage'));\nconst PageNotFoundRoute = lazy(() => import('./components/PageNotFoundRoute'));\nconst UdpMaintenanceConfigPage = lazy(() =>\n import('../udp/pages/UdpMaintenanceConfigPage')\n);\nconst UdpMaintenanceEnginePage = lazy(() =>\n import('../udp/pages/UdpMaintenanceEnginePage')\n);\n\nexport const UdpRoutes = (props) => {\n const { ...other } = props;\n return (\n <Suspense fallback={<PageLoading />}>\n <Switch>\n <PrivateRoute\n path='/virtual/:id'\n render={(props) => <VirtualBrowser {...props} {...other} />}\n />\n <PrivateRoute\n path='/menupage/:id'\n render={(props) => <MenuPage {...props} {...other} />}\n />\n\n <Route\n path={`/page/${UdpPageEnums.Udp_Public_Forms_Page}`}\n render={(props) => <UdpPublicForm {...props} {...other} />}\n />\n <Route\n path={`/passwordresetsuccess`}\n render={(props) => <PasswordResetRedirect props={props} />}\n />\n <PrivateRoute\n path='/workflowtask/:id'\n render={(props) => <WorkflowContainer {...props} {...other} />}\n />\n <PrivateRoute\n path='/myexports'\n render={(props) => (\n <MyExportsPage\n productId={ConfigService.config.UNITY_PRODUCT_ID}\n {...props}\n {...other}\n />\n )}\n />\n <PrivateRoute\n path='/crudbrowser'\n render={(props) => <UdpMaintenanceEnginePage {...props} />}\n />\n <PrivateRoute\n path='/tablebrowser'\n render={(props) => <UdpMaintenanceConfigPage {...props} />}\n />\n <PrivateRoute path='*' component={PageNotFoundRoute} />\n </Switch>\n </Suspense>\n );\n};\n"],"mappings":";;;;;;;;;;;;AAKA,MAAM,YAAY,YAAY,WAAW,EACvC,MAAM,EACJ,WAAW,MAAM,QAAQ,EAAE,EAC5B,EACF,EAAE;AAEH,MAAa,sBAAsB,UAAU;CAC3C,MAAM,EAAE,OAAO,YAAY,WAAW,SAAS,eAAe;CAC9D,MAAM,UAAU,WAAW;CAC3B,MAAM,EAAE,MAAM,gBAAgB;AAE9B,QACE,oCAAC,SAAI,WAAW,QAAQ,QACtB,oCAAC;EACC,OAAO,SAAS,EAAE,iBAAiB;EACnC,YAAY,cAAc;EAC1B,WACE,aAAa,EAAE,uDAAuD;EAExE,SAAS,WAAW,EAAE,iDAAiD;EACvE,IAAG;EACH,aAAa,EAAE,oBAAoB;EACvB;GACZ,CACE;;;;;ACtBV,MAAa,gBAAgB,EAAE,GAAG,iBAAiB;CACjD,MAAM,kBAAkB,yBAAyB;CACjD,MAAM,OAAO,SAAS;CACtB,MAAM,EAAE,MAAM,gBAAgB;AAS9B,KAAI,CAP0B,cAAc;AAC1C,MAAI,MAAM,WAAW,SAAS,KAAK,gBAAgB,CACjD,QAAO;AAET,SAAO;IACN,CAAC,KAAK,CAAC,IAEoB,mBAAmB,MAAM,eAAe,IACpE,QACE,oCAAC;EACC,MAAK;EACL,SAAS,UACP,oCAAC;GACC,SAAS,EAAE,2EAA2E;GACtF,YAAY;IACZ;GAEJ;AAIN,KAAI,mBAAmB,MAAM,eAAe,IAC1C,QAAO,oCAAC,OAAU,WAAc;AAGlC,QAAO;;;;;AC7BT,MAAM,iBAAiB,WACrB,OAAO,gCACR;AACD,MAAM,WAAW,WAAW,OAAO,0BAAwB;AAC3D,MAAM,gBAAgB,WAAW,OAAO,+BAA8B;AACtE,MAAM,oBAAoB,WAAW,OAAO,mCAAiC;AAC7E,MAAM,wBAAwB,WAC5B,OAAO,uCACR;AACD,MAAM,gBAAgB,WAAW,OAAO,+BAA+B;AACvE,MAAM,oBAAoB,WAAW,OAAO,mCAAkC;AAC9E,MAAM,2BAA2B,WAC/B,OAAO,0CACR;AACD,MAAM,2BAA2B,WAC/B,OAAO,0CACR;AAED,MAAa,aAAa,UAAU;CAClC,MAAM,EAAE,GAAG,UAAU;AACrB,QACE,oCAAC,YAAS,UAAU,oCAAC,kBAAc,IACjC,oCAACA,gBACC,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC;GAAe,GAAIC;GAAO,GAAI;IAAS;GAC3D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC;GAAS,GAAIA;GAAO,GAAI;IAAS;GACrD,EAEF,oCAAC;EACC,MAAM,SAAS,aAAa;EAC5B,SAAS,YAAU,oCAAC;GAAc,GAAIA;GAAO,GAAI;IAAS;GAC1D,EACF,oCAAC;EACC,MAAM;EACN,SAAS,YAAU,oCAAC,yBAAsB,OAAOA,UAAS;GAC1D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC;GAAkB,GAAIA;GAAO,GAAI;IAAS;GAC9D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YACP,oCAAC;GACC,WAAW,cAAc,OAAO;GAChC,GAAIA;GACJ,GAAI;IACJ;GAEJ,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC,0BAA6BA,QAAS;GAC1D,EACF,oCAAC;EACC,MAAK;EACL,SAAS,YAAU,oCAAC,0BAA6BA,QAAS;GAC1D,EACF,oCAAC;EAAa,MAAK;EAAI,WAAW;GAAqB,CAChD,CACA"}
@@ -22,7 +22,7 @@ import "./colorConverter-sleh0lAZ.js";
22
22
  import "./Typography-6jelcyoY.js";
23
23
  import "./SearchUtilities-CzmJ6hI2.js";
24
24
  import "./GroupNode-Bms_Opmb.js";
25
- import "./TreeUtilities-DVY-2md6.js";
25
+ import "./TreeUtilities-XLrXtUeL.js";
26
26
  import "./UnityIconLibrary-DnCuEr5M.js";
27
27
  import "./teleporterStore-hSgRrvso.js";
28
28
  import "./AmbientPopoverMenuItem-Dy3rQ7sp.js";
@@ -58,7 +58,7 @@ import "./AggregateChip-EN9-abal.js";
58
58
  import "./DateUtilities-DHTEYbE8.js";
59
59
  import "./UtilityBarInport-BZbPE650.js";
60
60
  import "./UtilitySideBar-DlCvljVV.js";
61
- import "./WorkflowTreeMenu-Dc9l7jEY.js";
61
+ import "./WorkflowTreeMenu-BtolZKVF.js";
62
62
  import "./workflowEnums-xHM1JN6x.js";
63
63
  import "./workflowUtilities-DpW6oHRe.js";
64
64
  import "./workflowStore-PaHzw4YO.js";
@@ -68,6 +68,6 @@ import "./CircularProgress-BNz8u0DY.js";
68
68
  import "./WorkflowContent-B7_Czp9q.js";
69
69
  import "./EmailDisplay-Bglp_poX.js";
70
70
  import "./useUpdateSearchParams-CKTTs6Zx.js";
71
- import { WorkflowContainer, WorkflowContainer_default } from "./WorkflowContainer-DasTFSlY.js";
71
+ import { WorkflowContainer, WorkflowContainer_default } from "./WorkflowContainer-Cq23yESD.js";
72
72
 
73
73
  export { WorkflowContainer, WorkflowContainer_default as default };
@@ -6,7 +6,7 @@ import { useSetLocationState } from "./useSetLocationState-BGgFvNVh.js";
6
6
  import { APP_RIBBON_SPACE, useBuildEnvironment } from "./EnvironmentRibbon-CPm8YnJ4.js";
7
7
  import { NodeLoader } from "./NodeLoader-DRIIc46w.js";
8
8
  import { UtilitySideBar } from "./UtilitySideBar-DlCvljVV.js";
9
- import { WorkflowTreeMenu } from "./WorkflowTreeMenu-Dc9l7jEY.js";
9
+ import { WorkflowTreeMenu } from "./WorkflowTreeMenu-BtolZKVF.js";
10
10
  import { transformWorkflowPlayTree } from "./workflowUtilities-DpW6oHRe.js";
11
11
  import { WorkflowContent } from "./WorkflowContent-B7_Czp9q.js";
12
12
  import { useUpdateSearchParams } from "./useUpdateSearchParams-CKTTs6Zx.js";
@@ -186,4 +186,4 @@ var WorkflowContainer_default = WorkflowContainer;
186
186
 
187
187
  //#endregion
188
188
  export { WorkflowContainer, WorkflowContainer_default };
189
- //# sourceMappingURL=WorkflowContainer-DasTFSlY.js.map
189
+ //# sourceMappingURL=WorkflowContainer-Cq23yESD.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"WorkflowContainer-DasTFSlY.js","names":[],"sources":["../src/workflow/WorkflowContainer.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { makeStyles } from '@material-ui/core';\nimport { WorkflowTreeMenu } from './menus/WorkflowTreeMenu';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useShellStore } from '../stores/shellStore';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/EnvironmentRibbon';\nimport { WorkflowContent } from './WorkflowContent';\nimport {\n transformWorkflowPlayTree,\n updateWorkflowPlayNodeState\n} from '../utilities/workflow/workflowUtilities';\nimport { useUpdateSearchParams } from '../hooks/useUpdateSearchParams';\nimport { useUser } from '../utilities/auth/useUser';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flex: 1,\n minHeight: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n display: 'grid',\n gridTemplateAreas: ['sidebar content'].map((line) => `\"${line}\"`).join(' '),\n gridTemplateColumns: 'auto 1fr',\n gridTemplateRows: 'auto 1fr'\n },\n sidebar: {\n gridArea: 'sidebar',\n marginRight: theme.spacing(1)\n },\n content: {\n gridArea: 'content',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n zIndex: 1,\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n overflowY: 'auto'\n },\n menuContent: {\n marginTop: theme.spacing(1),\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 116}px)`,\n overflowX: 'hidden'\n },\n loader: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n }\n}));\n\nexport const WorkflowContainer = (props) => {\n const { playId, taskId, autoCollapseNav = true } = props;\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const location = useLocation();\n const updateSearchParams = useUpdateSearchParams();\n const user = useUser();\n const setLocationState = useSetLocationState();\n const { t } = useTranslation();\n\n const [menuItemsList, setMenuItemsList] = useState([]); // holds a list of trees\n const [selectedNode, setSelectedNode] = useState(null);\n const [sidebarExpanded, setSidebarExpanded] = useState(true);\n const [reloadFromPage, setReloadFromPage] = useState(false);\n const [workflow, setWorkflow] = useState(false);\n\n const state = location.state;\n let searchParamStr = location.search;\n let searchParams = new URLSearchParams(searchParamStr);\n const urlPlayId = location.pathname.replace('/workflowtask/', '');\n const udpPlayId =\n playId ||\n urlPlayId ||\n (state\n ? state.playId\n : searchParams.has('playId') === true\n ? searchParams.get('playId')\n : '');\n\n const udpTaskId =\n taskId ||\n (state\n ? state.taskId\n : searchParams.has('taskId') === true\n ? searchParams.get('taskId')\n : '');\n\n const [{ data: workflowPlay, loading: workflowPlayLoading }, reloadWorkflow] =\n useAxiosGet(\n ConfigService.builderV1ApiUrl,\n `workflow/play/${udpPlayId}`,\n {},\n !!!udpPlayId,\n false\n );\n\n const [{ data: users }] = useAxiosGet(\n ConfigService.securityV1ApiUrl,\n `users?tenantId=${user?.currentTenantId || ''}`,\n {},\n !!!user?.currentTenantId\n );\n\n const [{ data: groups }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `groups?tenantId=${user?.currentTenantId || ''}&productId=${\n ConfigService.config.UNITY_PRODUCT_ID\n }`,\n {},\n !!!user?.currentTenantId\n );\n\n // const getNodeState = useCallback(\n // async (nodeId) =>\n // apiMutate(\n // ConfigService.builderV1ApiUrl,\n // `workflow/play/${udpPlayId}/node/${nodeId}/state`,\n // {\n // method: 'get'\n // }\n // ),\n // [udpPlayId]\n // );\n\n const { setSubHeaderActionHasChildren, setNavigationExpanded } =\n useShellStore();\n\n const handleReloadWorkflow = useCallback(async () => {\n setReloadFromPage(true);\n await reloadWorkflow();\n setReloadFromPage(false);\n }, [reloadWorkflow]);\n\n const handleSelectedNode = useCallback(\n async (node, menuIndex) => {\n if (node.isSelectable) {\n setSelectedNode(node);\n await handleReloadWorkflow();\n if (node?.properties?.playSceneId) {\n updateSearchParams({ taskId: node.properties.playSceneId });\n }\n }\n },\n [updateSearchParams, handleReloadWorkflow]\n );\n\n const handleDropNode = useCallback(\n (sourceNode, targetNode, sourceNodeMenuIndex, targetNodeMenuIndex) => {\n // TODO: Implement if we need to for next Phase\n },\n []\n );\n\n const handleSidebarExpandClick = useCallback(() => {\n setSidebarExpanded((expanded) => !expanded);\n }, []);\n\n useEffect(() => {\n if (workflowPlay) {\n setWorkflow(workflowPlay);\n }\n }, [workflowPlay]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n setLocationState({ label: t('Workflow') });\n }, [setLocationState, t]);\n\n // this is used for updating the state node for page use\n useEffect(() => {\n if (workflow) {\n setSelectedNode((prevNode) => {\n if (!!prevNode) {\n const foundNode = workflow.workflowPlayNode?.children?.find(\n (child) => child.id === prevNode.id\n );\n if (!!foundNode) {\n const updatedNode = { ...prevNode };\n // TODO: using this to update state for now but may need to update\n // other properties of the selected node when we pull workflow tree\n updatedNode.properties.state = foundNode.state;\n return updatedNode;\n } else {\n return prevNode;\n }\n }\n });\n }\n }, [workflow]);\n\n useEffect(() => {\n if (workflow) {\n const list = [];\n const updatedMenu = transformWorkflowPlayTree(workflow.workflowPlayNode);\n if (updatedMenu) {\n list.push(updatedMenu);\n }\n setMenuItemsList(list);\n }\n }, [workflow]);\n\n useEffect(() => {\n if (!selectedNode) {\n const menu = menuItemsList[0];\n // Use Task Id to find the first matching node in tree\n if (menu) {\n if (!!udpTaskId) {\n const matchingTaskNode = menu.children.find(\n (child) => child?.properties?.playSceneId === udpTaskId\n );\n setSelectedNode(matchingTaskNode || menu.children[0] || null);\n } else {\n const firstSelectableMenuItem = menu?.children?.find(\n (item) => item.isSelectable\n );\n setSelectedNode(firstSelectableMenuItem || null);\n }\n if (autoCollapseNav) {\n setNavigationExpanded(false);\n }\n }\n }\n }, [\n udpTaskId,\n menuItemsList,\n selectedNode,\n setNavigationExpanded,\n autoCollapseNav\n ]);\n\n useEffect(() => {\n setSubHeaderActionHasChildren(false);\n }, [setSubHeaderActionHasChildren]);\n\n // useEffect(() => {\n // if (selectedNode) {\n // const getState = async () => {\n // const response = await getNodeState(selectedNode.id);\n // if (response.status === 200) {\n // setMenuItemsList((prevMenuList) => {\n // let updatedList = [];\n // prevMenuList.forEach((menu) => {\n // const updatedMenu = updateWorkflowPlayNodeState(\n // menu,\n // selectedNode.id,\n // response.data\n // );\n // updatedList.push(updatedMenu);\n // });\n // return updatedList;\n // });\n // }\n // };\n // getState();\n // }\n // }, [selectedNode, getNodeState]);\n\n return (\n <DndProvider backend={HTML5Backend}>\n <div className={classes.root}>\n <div className={classes.sidebar}>\n <UtilitySideBar\n title={'Workflow'}\n isUsingChildren={true}\n resizable={true}\n removePadding={true}\n removeTopLayoutUnit={true}\n onUtilitySidebarToggleExpandClick={handleSidebarExpandClick}\n collapsedWidth={64}\n >\n <div className={classes.menuContent} key={playId}>\n {menuItemsList?.length > 0 &&\n (!workflowPlayLoading || reloadFromPage) &&\n menuItemsList.map((menuItems, index) => (\n <div key={menuItems.id} className={classes.nodeContainer}>\n <WorkflowTreeMenu\n menuItems={menuItems}\n onSelectNode={handleSelectedNode}\n onDropNode={handleDropNode}\n menuIndex={index}\n selectedNodeId={selectedNode?.id}\n selectedNodeParentId={selectedNode?.parentId}\n sidebarExpanded={sidebarExpanded}\n treeViewMode={TreeViewModeEnums.Classic}\n />\n </div>\n ))}\n {workflowPlayLoading && !reloadFromPage && (\n <div className={classes.loader}>\n <NodeLoader loading={workflowPlayLoading} />\n </div>\n )}\n </div>\n </UtilitySideBar>\n </div>\n <div className={classes.content}>\n <WorkflowContent\n selectedNode={selectedNode}\n workflow={workflow}\n reloadWorkflow={handleReloadWorkflow}\n users={users}\n groups={groups}\n />\n </div>\n </div>\n </DndProvider>\n );\n};\n\nexport default WorkflowContainer;\n"],"mappings":"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"}
1
+ {"version":3,"file":"WorkflowContainer-Cq23yESD.js","names":[],"sources":["../src/workflow/WorkflowContainer.jsx"],"sourcesContent":["import React, { useCallback, useEffect, useState } from 'react';\nimport { useLocation } from 'react-router-dom';\nimport { useAxiosGet } from '../utilities/useAxiosGet';\nimport { UtilitySideBar } from '../UI/utilityDisplay/UtilitySideBar';\nimport { makeStyles } from '@material-ui/core';\nimport { WorkflowTreeMenu } from './menus/WorkflowTreeMenu';\nimport { TreeViewModeEnums } from '../enums/unitySystemEnums';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\nimport { useShellStore } from '../stores/shellStore';\nimport { NodeLoader } from '../UI/feedback/NodeLoader';\nimport {\n APP_RIBBON_SPACE,\n useBuildEnvironment\n} from '../shell/ui/EnvironmentRibbon';\nimport { WorkflowContent } from './WorkflowContent';\nimport {\n transformWorkflowPlayTree,\n updateWorkflowPlayNodeState\n} from '../utilities/workflow/workflowUtilities';\nimport { useUpdateSearchParams } from '../hooks/useUpdateSearchParams';\nimport { useUser } from '../utilities/auth/useUser';\nimport { apiMutate } from '../utilities/useAxiosMutate';\nimport { useSetLocationState } from '../hooks/useSetLocationState';\nimport { useTranslation } from 'react-i18next';\nimport { ConfigService } from 'udp-react-stencil-component-library';\n\nconst useStyles = makeStyles((theme) => ({\n root: {\n flex: 1,\n minHeight: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n display: 'grid',\n gridTemplateAreas: ['sidebar content'].map((line) => `\"${line}\"`).join(' '),\n gridTemplateColumns: 'auto 1fr',\n gridTemplateRows: 'auto 1fr'\n },\n sidebar: {\n gridArea: 'sidebar',\n marginRight: theme.spacing(1)\n },\n content: {\n gridArea: 'content',\n display: 'flex',\n flexDirection: 'column',\n position: 'relative',\n zIndex: 1,\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 56}px)`,\n overflowY: 'auto'\n },\n menuContent: {\n marginTop: theme.spacing(1),\n height: ({ appRibbonSpace }) => `calc(100vh - ${appRibbonSpace + 116}px)`,\n overflowX: 'hidden'\n },\n loader: {\n marginRight: theme.spacing(1),\n marginLeft: theme.spacing(1)\n },\n loadingContent: {\n flex: 1,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n justifyContent: 'center'\n }\n}));\n\nexport const WorkflowContainer = (props) => {\n const { playId, taskId, autoCollapseNav = true } = props;\n const buildEnv = useBuildEnvironment();\n const classes = useStyles({\n ...props,\n appRibbonSpace: buildEnv ? APP_RIBBON_SPACE : 0\n });\n const location = useLocation();\n const updateSearchParams = useUpdateSearchParams();\n const user = useUser();\n const setLocationState = useSetLocationState();\n const { t } = useTranslation();\n\n const [menuItemsList, setMenuItemsList] = useState([]); // holds a list of trees\n const [selectedNode, setSelectedNode] = useState(null);\n const [sidebarExpanded, setSidebarExpanded] = useState(true);\n const [reloadFromPage, setReloadFromPage] = useState(false);\n const [workflow, setWorkflow] = useState(false);\n\n const state = location.state;\n let searchParamStr = location.search;\n let searchParams = new URLSearchParams(searchParamStr);\n const urlPlayId = location.pathname.replace('/workflowtask/', '');\n const udpPlayId =\n playId ||\n urlPlayId ||\n (state\n ? state.playId\n : searchParams.has('playId') === true\n ? searchParams.get('playId')\n : '');\n\n const udpTaskId =\n taskId ||\n (state\n ? state.taskId\n : searchParams.has('taskId') === true\n ? searchParams.get('taskId')\n : '');\n\n const [{ data: workflowPlay, loading: workflowPlayLoading }, reloadWorkflow] =\n useAxiosGet(\n ConfigService.builderV1ApiUrl,\n `workflow/play/${udpPlayId}`,\n {},\n !!!udpPlayId,\n false\n );\n\n const [{ data: users }] = useAxiosGet(\n ConfigService.securityV1ApiUrl,\n `users?tenantId=${user?.currentTenantId || ''}`,\n {},\n !!!user?.currentTenantId\n );\n\n const [{ data: groups }] = useAxiosGet(\n ConfigService.tenantV1ApiUrl,\n `groups?tenantId=${user?.currentTenantId || ''}&productId=${\n ConfigService.config.UNITY_PRODUCT_ID\n }`,\n {},\n !!!user?.currentTenantId\n );\n\n // const getNodeState = useCallback(\n // async (nodeId) =>\n // apiMutate(\n // ConfigService.builderV1ApiUrl,\n // `workflow/play/${udpPlayId}/node/${nodeId}/state`,\n // {\n // method: 'get'\n // }\n // ),\n // [udpPlayId]\n // );\n\n const { setSubHeaderActionHasChildren, setNavigationExpanded } =\n useShellStore();\n\n const handleReloadWorkflow = useCallback(async () => {\n setReloadFromPage(true);\n await reloadWorkflow();\n setReloadFromPage(false);\n }, [reloadWorkflow]);\n\n const handleSelectedNode = useCallback(\n async (node, menuIndex) => {\n if (node.isSelectable) {\n setSelectedNode(node);\n await handleReloadWorkflow();\n if (node?.properties?.playSceneId) {\n updateSearchParams({ taskId: node.properties.playSceneId });\n }\n }\n },\n [updateSearchParams, handleReloadWorkflow]\n );\n\n const handleDropNode = useCallback(\n (sourceNode, targetNode, sourceNodeMenuIndex, targetNodeMenuIndex) => {\n // TODO: Implement if we need to for next Phase\n },\n []\n );\n\n const handleSidebarExpandClick = useCallback(() => {\n setSidebarExpanded((expanded) => !expanded);\n }, []);\n\n useEffect(() => {\n if (workflowPlay) {\n setWorkflow(workflowPlay);\n }\n }, [workflowPlay]);\n\n // Setting location state label so that if this page was saved to favorites\n // we can determine the bread crumb\n useEffect(() => {\n setLocationState({ label: t('Workflow') });\n }, [setLocationState, t]);\n\n // this is used for updating the state node for page use\n useEffect(() => {\n if (workflow) {\n setSelectedNode((prevNode) => {\n if (!!prevNode) {\n const foundNode = workflow.workflowPlayNode?.children?.find(\n (child) => child.id === prevNode.id\n );\n if (!!foundNode) {\n const updatedNode = { ...prevNode };\n // TODO: using this to update state for now but may need to update\n // other properties of the selected node when we pull workflow tree\n updatedNode.properties.state = foundNode.state;\n return updatedNode;\n } else {\n return prevNode;\n }\n }\n });\n }\n }, [workflow]);\n\n useEffect(() => {\n if (workflow) {\n const list = [];\n const updatedMenu = transformWorkflowPlayTree(workflow.workflowPlayNode);\n if (updatedMenu) {\n list.push(updatedMenu);\n }\n setMenuItemsList(list);\n }\n }, [workflow]);\n\n useEffect(() => {\n if (!selectedNode) {\n const menu = menuItemsList[0];\n // Use Task Id to find the first matching node in tree\n if (menu) {\n if (!!udpTaskId) {\n const matchingTaskNode = menu.children.find(\n (child) => child?.properties?.playSceneId === udpTaskId\n );\n setSelectedNode(matchingTaskNode || menu.children[0] || null);\n } else {\n const firstSelectableMenuItem = menu?.children?.find(\n (item) => item.isSelectable\n );\n setSelectedNode(firstSelectableMenuItem || null);\n }\n if (autoCollapseNav) {\n setNavigationExpanded(false);\n }\n }\n }\n }, [\n udpTaskId,\n menuItemsList,\n selectedNode,\n setNavigationExpanded,\n autoCollapseNav\n ]);\n\n useEffect(() => {\n setSubHeaderActionHasChildren(false);\n }, [setSubHeaderActionHasChildren]);\n\n // useEffect(() => {\n // if (selectedNode) {\n // const getState = async () => {\n // const response = await getNodeState(selectedNode.id);\n // if (response.status === 200) {\n // setMenuItemsList((prevMenuList) => {\n // let updatedList = [];\n // prevMenuList.forEach((menu) => {\n // const updatedMenu = updateWorkflowPlayNodeState(\n // menu,\n // selectedNode.id,\n // response.data\n // );\n // updatedList.push(updatedMenu);\n // });\n // return updatedList;\n // });\n // }\n // };\n // getState();\n // }\n // }, [selectedNode, getNodeState]);\n\n return (\n <DndProvider backend={HTML5Backend}>\n <div className={classes.root}>\n <div className={classes.sidebar}>\n <UtilitySideBar\n title={'Workflow'}\n isUsingChildren={true}\n resizable={true}\n removePadding={true}\n removeTopLayoutUnit={true}\n onUtilitySidebarToggleExpandClick={handleSidebarExpandClick}\n collapsedWidth={64}\n >\n <div className={classes.menuContent} key={playId}>\n {menuItemsList?.length > 0 &&\n (!workflowPlayLoading || reloadFromPage) &&\n menuItemsList.map((menuItems, index) => (\n <div key={menuItems.id} className={classes.nodeContainer}>\n <WorkflowTreeMenu\n menuItems={menuItems}\n onSelectNode={handleSelectedNode}\n onDropNode={handleDropNode}\n menuIndex={index}\n selectedNodeId={selectedNode?.id}\n selectedNodeParentId={selectedNode?.parentId}\n sidebarExpanded={sidebarExpanded}\n treeViewMode={TreeViewModeEnums.Classic}\n />\n </div>\n ))}\n {workflowPlayLoading && !reloadFromPage && (\n <div className={classes.loader}>\n <NodeLoader loading={workflowPlayLoading} />\n </div>\n )}\n </div>\n </UtilitySideBar>\n </div>\n <div className={classes.content}>\n <WorkflowContent\n selectedNode={selectedNode}\n workflow={workflow}\n reloadWorkflow={handleReloadWorkflow}\n users={users}\n groups={groups}\n />\n </div>\n </div>\n </DndProvider>\n );\n};\n\nexport default WorkflowContainer;\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { FluentIcon } from "./FluentIcon-CB-ANF6C.js";
2
2
  import { NodeActionTriggerEnums, TreeViewModeEnums } from "./unitySystemEnums-BIMR5AWe.js";
3
3
  import { UnityFluentIcon } from "./UnityFluentIcon-fuqAQh0C.js";
4
- import { findAllParentIds, getIconFromName, getNodeIdForRightBorder, searchTree } from "./TreeUtilities-DVY-2md6.js";
4
+ import { findAllParentIds, getIconFromName, getNodeIdForRightBorder, searchTree } from "./TreeUtilities-XLrXtUeL.js";
5
5
  import { getUnityIconFromName } from "./UnityIconLibrary-DnCuEr5M.js";
6
6
  import { AggregateChip } from "./AggregateChip-EN9-abal.js";
7
7
  import React, { useCallback, useEffect, useState } from "react";
@@ -344,4 +344,4 @@ const WorkflowTreeMenu = (props) => {
344
344
 
345
345
  //#endregion
346
346
  export { WorkflowTreeMenu, WorkflowTreeMenuItem };
347
- //# sourceMappingURL=WorkflowTreeMenu-Dc9l7jEY.js.map
347
+ //# sourceMappingURL=WorkflowTreeMenu-BtolZKVF.js.map