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
@@ -1 +1 @@
1
- {"version":3,"file":"MttMainTimeline-DIzQDgmK.js","names":["years","uniqueYears","plots","demoDates","unique","startDate","endDate","item","dates","data","data"],"sources":["../src/componentSystems/multiThreadTimeline/mttMainTimeline/HeightAdjust.jsx","../src/componentSystems/multiThreadTimeline/mttMainTimeline/MttTimeline.jsx","../src/componentSystems/multiThreadTimeline/mttMainTimeline/MttMainTimeline.jsx"],"sourcesContent":["import React from 'react';\nimport { Slider, IconButton } from '@material-ui/core';\nimport { LineSpacingIcon, MinimumValueIcon } from '@fluentui/react-icons';\n\nexport const HeightAdjuster = ({ verticalAdjuster, setVerticalAdjuster }) => {\n const handleAdjusterChange = (event, newValue) => {\n setVerticalAdjuster(newValue);\n };\n const handleDecreaseClick = () => {\n setVerticalAdjuster(verticalAdjuster - 1);\n };\n const handleIncreaseClick = () => {\n setVerticalAdjuster(verticalAdjuster + 1);\n };\n return (\n <div style={{ display: 'flex' }}>\n <IconButton onClick={handleDecreaseClick}>\n <div style={{ fontSize: 18 }}>\n <LineSpacingIcon />\n </div>\n </IconButton>\n <Slider\n value={verticalAdjuster}\n min={0}\n max={10}\n step={0.1}\n onChange={handleAdjusterChange}\n />\n <IconButton onClick={handleIncreaseClick}>\n <div style={{ rotate: '90deg', fontSize: 24 }}>\n <MinimumValueIcon />\n </div>\n </IconButton>\n </div>\n );\n};\n","import React, {\n useState,\n useEffect,\n useRef,\n memo,\n useCallback,\n useMemo\n} from 'react';\nimport {\n makeStyles,\n Typography,\n useTheme,\n Fade,\n lighten,\n Button\n} from '@material-ui/core';\nimport { IconRenderer } from '../../../UI/templates/ui/renderers/IconRenderer';\nimport { TimelineNode } from '../ui/TimelineNode';\nimport { TimelineWrapper } from '../ui/TimelineWrapper';\nimport { MultiDot } from '../ui/MultiDot';\nimport { VisualizationDot } from '../ui/VisualizationDot';\nimport { TimelinePreloaderNode } from '../ui/TimelinePreloaderNode';\nimport 'react-range-slider-input/dist/style.css';\nimport { MttYearTag } from '../ui/MttYearTag';\nimport { DynamicRangeSlider } from '../ui/DynamicRangeSlider';\nimport { HeightAdjuster } from './HeightAdjust';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n horizontalDash: {\n backgroundImage:\n 'linear-gradient(to right, grey 33%, rgba(255,255,255,0) 0%)',\n backgroundPosition: 'bottom',\n backgroundSize: '16px 1px',\n backgroundRepeat: 'repeat-x'\n },\n slider: {\n height: 600\n },\n categoryBar: {\n background: lighten(theme.palette.common.black, 0.5),\n color: theme.palette.common.white,\n display: 'flex',\n alignItems: 'center'\n },\n categoryBarPlacement: {\n position: 'absolute',\n left: 0\n },\n categoryLabel: {\n transform: 'rotate(90deg)',\n width: 28\n },\n button: {\n '&:hover': {\n textDecoration: 'line-through'\n }\n }\n}));\n// eslint-disable-next-line react/display-name\nexport const MttTimeline = memo((props) => {\n const [showAllDetails] = useState(false);\n const [startRange, setStartRange] = useState(10);\n const [endRange, setEndRange] = useState();\n const [startDate, setStartDate] = useState();\n const [endDate, setEndDate] = useState();\n const [displayRangeFilter, setDisplayRangeFilter] = useState(true);\n const [threadHeight, setThreadHeight] = useState(92);\n const [recordLength, setRecordLength] = useState();\n const [containerWidth, setContainerWidth] = useState();\n const [showMonthMarkers, setShowMonthMarkers] = useState(false);\n const [showYearMarkers, setShowYearMarkers] = useState(false);\n const [verticalAdjuster, setVerticalAdjuster] = useState(4.5);\n const [uniqueTimelines, setUniqueTimelines] = useState(0);\n\n const classes = useStyles(props);\n const { data, loading } = props;\n const theme = useTheme();\n\n const visualizationYScale = 40;\n\n useEffect(() => {\n const years = [];\n data &&\n data.map((item) => {\n years.push(item.date.slice(-4));\n });\n\n //unique years\n const uniqueYears = [...new Set(years)].sort();\n\n data && setStartDate(uniqueYears[0] + '-01-01');\n data && setEndDate(uniqueYears[uniqueYears.length - 1] + '-12-31');\n }, [data]);\n\n const mainContainer = useRef(null);\n\n useEffect(() => {\n setContainerWidth(\n mainContainer.current ? mainContainer.current.offsetWidth : 0\n );\n }, []);\n\n let movement_timer = null;\n const RESET_TIMEOUT = 10;\n\n const set_dimensions = () => {\n if (mainContainer.current) {\n setContainerWidth(mainContainer.current.offsetWidth);\n }\n };\n\n window.addEventListener('resize', () => {\n clearInterval(movement_timer);\n movement_timer = setTimeout(set_dimensions, RESET_TIMEOUT);\n });\n\n const years = [];\n data &&\n data.map((item) => {\n years.push(item.date.slice(-4));\n });\n\n //unique years\n const uniqueYears = [...new Set(years)];\n\n let demoApiConfigDate = [];\n\n uniqueYears.map((item) => {\n demoApiConfigDate.push('01/01/' + item);\n });\n\n let yearsInRange = [];\n\n yearsInRange.push(Number(demoApiConfigDate[1]?.slice(-4)) + 1);\n\n let yearsToDisplay = [];\n\n yearsInRange.map((item) => {\n yearsToDisplay.push('01/01/' + item);\n });\n\n demoApiConfigDate.map((item) => {\n yearsToDisplay.unshift(item);\n });\n\n const yearRange = yearsToDisplay.sort();\n\n // could change plotting on range change by switching data with filteredByDate\n\n const getSingleGroupedData = useCallback(() => {\n const flatOne = data && data.map((item) => item.dates).flat();\n const flatTwo =\n data &&\n flatOne &&\n flatOne.map((item) => {\n return item.details;\n });\n return flatTwo;\n }, [data]);\n\n // Sort date\n\n const sortDate =\n data &&\n getSingleGroupedData().sort(function (a, b) {\n const c = new Date(a.date);\n const d = new Date(b.date);\n return c - d;\n });\n\n // Convert date format\n\n let dataConvertedDate =\n data &&\n sortDate.map((item) => ({\n ...item,\n date: new Date(item.date).toLocaleDateString()\n }));\n\n function formatDate(date) {\n return new Date(date).toLocaleDateString('en-US');\n }\n\n const getPositionFromDate = useCallback(\n (initDate) => {\n const start = new Date(yearRange[1]);\n const end = new Date(yearRange[2]);\n\n const rangeStart = [initDate];\n\n const dateList = [new Date(start).toLocaleDateString()];\n\n let loop = new Date(start);\n while (loop <= end) {\n const newDate = loop.setDate(loop.getDate() + 1);\n loop = new Date(newDate);\n dateList.push(loop.toLocaleDateString());\n }\n\n const mappedToObjects = dateList.map(function (value) {\n return { date: value };\n });\n\n const plots = [];\n for (let i = 1; i <= dateList.length; i++) {\n plots.push(i);\n }\n\n let mergePlots = mappedToObjects.map((o, i) => ({\n ...o,\n plots: plots[i] || null\n }));\n\n const startDate = mergePlots\n .filter(({ date }) => rangeStart.includes(date))\n .map(({ plots }) => plots)\n .toString();\n return startDate;\n },\n [yearRange]\n );\n\n let demoDates = [];\n\n dataConvertedDate &&\n dataConvertedDate.map((item) => {\n demoDates.push(item.date);\n });\n\n let unique = [...new Set(demoDates)];\n\n useEffect(() => {\n setEndRange(\n unique && Number(getPositionFromDate(unique.slice(-1).pop())) + 66\n );\n }, []);\n\n const getDatesFromRangeSelectionCompact = useCallback(\n (left, right) => {\n const rangeStart = [Math.round(left)];\n const rangeEnd = [Math.round(right)];\n let demoDates = [];\n\n dataConvertedDate &&\n dataConvertedDate.map((item) => {\n demoDates.push(item.date);\n });\n\n let unique = [...new Set(demoDates)];\n\n const getNextDay = () => {\n const dateString = unique[unique.length - 1];\n const date = new Date(dateString);\n date.setDate(date.getDate() + 1);\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const year = date.getFullYear();\n return `${month}/${day}/${year}`;\n };\n\n const nextDay = getNextDay();\n unique.push(nextDay);\n\n const mappedToObjects = unique.map(function (value) {\n return { date: value };\n });\n\n const plots = [];\n for (let i = 1; i <= unique.length; i++) {\n plots.push(i * 10);\n }\n\n let mergePlots = mappedToObjects.map((o, i) => ({\n ...o,\n plots: plots[i] || null\n }));\n\n const startDate = mergePlots\n .filter(({ plots }) => rangeStart.includes(plots))\n .map(({ date }) => date)\n .toString();\n\n const endDate = mergePlots\n .filter(({ plots }) => rangeEnd.includes(plots))\n .map(({ date }) => date)\n .toString();\n\n setStartDate(startDate);\n setEndDate(endDate);\n },\n [dataConvertedDate]\n );\n\n const getRangeValues = useCallback((rangeValue) => {\n const left = rangeValue[0];\n const right = rangeValue[1];\n setStartRange(Math.round(left));\n setEndRange(Math.round(right));\n }, []);\n\n const processRangeValues = () => {\n endRange && getDatesFromRangeSelectionCompact(startRange, endRange);\n };\n\n // Plot YV\n const plotYV = useCallback(\n (item) => {\n const plotDate = [item];\n let demoDates = [];\n\n dataConvertedDate &&\n dataConvertedDate.map((item) => {\n demoDates.push(item.date);\n });\n\n let demoDatesTwo = [];\n\n data &&\n data.map((item) => {\n demoDatesTwo.push(item.date);\n });\n\n let unique = [...new Set(demoDatesTwo)];\n\n let results = unique.map((date) => new Date(date));\n\n const resultsSorted = results.sort((a, b) => a.getTime() - b.getTime());\n\n const dtest = resultsSorted.map((date) => date.toLocaleDateString());\n\n const mappedToObjects = dtest.map(function (value) {\n return { date: value };\n });\n\n const plots = [];\n for (let i = 1; i <= unique.length; i++) {\n plots.push(i);\n }\n\n let mergePlots = mappedToObjects.map((o, i) => ({\n ...o,\n plots: plots[i] || null\n }));\n\n const res = mergePlots\n .filter(({ date }) => plotDate.includes(date))\n .map(({ plots }) => plots);\n\n const order = res.map((item) => {\n return item;\n });\n\n const plot = order;\n\n return plot;\n },\n [data, dataConvertedDate]\n );\n\n function compareDate(date1, date2, comparison) {\n const date1Month = Number(date1.split('/')[0]);\n const date2Month = Number(date2.split('/')[0]);\n const date1Day = Number(date1.split('/')[1]);\n const date2Day = Number(date2.split('/')[1]);\n const date1Year = Number(date1.split('/')[2]);\n const date2Year = Number(date2.split('/')[2]);\n if (comparison === '>') {\n if (date1Year > date2Year) {\n return true;\n } else if (date1Year === date2Year) {\n if (date1Month > date2Month) {\n return true;\n } else if (date1Month === date2Month) {\n if (date1Day > date2Day) {\n return true;\n }\n }\n }\n return false;\n } else {\n if (date1Year < date2Year) {\n return true;\n } else if (date1Year === date2Year) {\n if (date1Month < date2Month) {\n return true;\n } else if (date1Month === date2Month) {\n if (date1Day < date2Day) {\n return true;\n }\n }\n }\n return false;\n }\n }\n\n function minnifyTimelineObject(object) {\n let cleanObject = [];\n let notUsed = false;\n object.forEach((obj, i) => {\n if (cleanObject.length === 0) {\n cleanObject.push({\n timeline: obj.timeline,\n subThread: obj.subThread,\n firstDate: formatDate(obj.date),\n lastDate: formatDate(obj.date),\n color: obj.color,\n icon: obj.iconID\n });\n } else {\n notUsed = true;\n cleanObject.forEach((clnObj) => {\n if (\n obj.timeline === clnObj.timeline &&\n obj.subThread === clnObj.subThread\n ) {\n if (\n compareDate(\n formatDate(obj.date),\n formatDate(clnObj.firstDate),\n '<'\n )\n ) {\n clnObj.firstDate = formatDate(obj.date);\n } else if (\n compareDate(\n formatDate(obj.date),\n formatDate(clnObj.lastDate),\n '>'\n )\n ) {\n clnObj.lastDate = formatDate(obj.date);\n }\n notUsed = false;\n }\n });\n }\n if (notUsed) {\n cleanObject.push({\n timeline: obj.timeline,\n subThread: obj.subThread,\n firstDate: formatDate(obj.date),\n lastDate: formatDate(obj.date),\n color: obj.color,\n icon: obj.iconID\n });\n }\n });\n return cleanObject;\n }\n\n let dates = [];\n dataConvertedDate &&\n dataConvertedDate.map((item) => {\n dates.push(item.date);\n });\n\n const plots = [];\n for (let i = 1; i <= unique.length; i++) {\n plots.push(i);\n }\n\n const startDateSet = useMemo(() => new Date(startDate), [startDate]);\n const endDateSet = useMemo(() => new Date(endDate), [endDate]);\n\n const filteredByDate =\n data &&\n data.filter((item) => {\n const date = new Date(item.date);\n return date >= startDateSet && date < endDateSet;\n });\n\n const buildCategoryLines = useCallback(() => {\n const xLine =\n data &&\n filteredByDate?.map((item) => {\n return item.timeline.toString() + '.' + item.subThread.toString();\n });\n\n let unique = [...new Set(xLine)];\n return unique;\n }, [filteredByDate, data]);\n\n const minnifiedResult = data && minnifyTimelineObject(filteredByDate);\n\n const detailedComponentSize = 130;\n const summaryComponentSize = 73;\n //const overviewComponentSize = 50;\n\n //const detailBreakpoint = Math.round(containerWidth / detailedComponentSize);\n const summaryBreakpoint = Math.round(containerWidth / detailedComponentSize);\n const overviewBreakpoint = Math.round(containerWidth / summaryComponentSize);\n\n useEffect(() => {\n const filteredByDate =\n data &&\n data.filter((item) => {\n const date = new Date(item.date);\n return date >= startDateSet && date <= endDateSet;\n });\n\n setRecordLength(filteredByDate?.length);\n }, [data, endDateSet, startDateSet]);\n\n const checkLinearLength = [];\n\n filteredByDate?.forEach((item) => {\n checkLinearLength.push(item.date);\n });\n\n let uniqueNodeScaleAmount = [...new Set(checkLinearLength)].length;\n\n const getScale = useCallback(() => {\n if (uniqueNodeScaleAmount > overviewBreakpoint) {\n return 50;\n } else if (uniqueNodeScaleAmount >= summaryBreakpoint) {\n return summaryComponentSize;\n } else {\n return 186;\n }\n }, [uniqueNodeScaleAmount, summaryBreakpoint, overviewBreakpoint]);\n\n const getXScale = useCallback(() => {\n if (uniqueNodeScaleAmount > overviewBreakpoint) {\n return 50;\n } else if (uniqueNodeScaleAmount >= summaryBreakpoint) {\n return summaryComponentSize;\n } else {\n return 186;\n }\n }, [uniqueNodeScaleAmount, summaryBreakpoint, overviewBreakpoint]);\n\n const getYScale = useCallback(() => {\n if (uniqueNodeScaleAmount > overviewBreakpoint) {\n return 50;\n } else if (uniqueNodeScaleAmount >= summaryBreakpoint) {\n return summaryComponentSize;\n } else {\n return 130;\n }\n }, [uniqueNodeScaleAmount, summaryBreakpoint, overviewBreakpoint]);\n\n const topMargin = uniqueNodeScaleAmount >= summaryBreakpoint ? 48 : 0;\n\n // Plot XV\n const plotXV = useCallback(\n (timeline, subThread) => {\n const xLine =\n data &&\n data.map((item) => {\n return item.timeline + '.' + item.subThread;\n });\n\n let unique = [...new Set(xLine)];\n\n const rowIndex = unique.reduce(function (s, a) {\n s.push({ thread: a });\n return s;\n }, []);\n\n const sortedRowIndex = rowIndex.sort((a, b) =>\n a.thread > b.thread ? 1 : -1\n );\n\n const concatIndex = timeline + '.' + subThread;\n const result = sortedRowIndex.map((v, index) => ({\n ...v,\n sortedRowIndex: index\n }));\n const results = result.filter(function (entry) {\n return entry.thread === concatIndex;\n });\n const xplot = results[0] && results[0].sortedRowIndex * 50;\n return xplot - topMargin;\n },\n [data, topMargin]\n );\n\n const plotY = useCallback(\n (item) => {\n const plotDate = [item];\n\n let demoDates = [];\n\n dataConvertedDate &&\n dataConvertedDate.map((item) => {\n demoDates.push(item.date);\n });\n\n let demoDatesTwo = [];\n\n dataConvertedDate &&\n filteredByDate.map((item) => {\n demoDatesTwo.push(item.date);\n });\n\n let unique = [...new Set(demoDatesTwo)];\n\n let results = unique.map((date) => new Date(date));\n\n const resultsSorted = results.sort((a, b) => a.getTime() - b.getTime());\n\n const dtest = resultsSorted.map((date) => date.toLocaleDateString());\n\n const mappedToObjects = dtest.map(function (value) {\n return { date: value };\n });\n\n const plots = [];\n for (let i = 1; i <= unique.length; i++) {\n plots.push(i);\n }\n\n let mergePlots = mappedToObjects.map((o, i) => ({\n ...o,\n plots: plots[i] || null\n }));\n\n const res =\n mergePlots &&\n mergePlots\n .filter(({ date }) => plotDate.includes(date))\n .map(({ plots }) => plots);\n\n const order =\n mergePlots &&\n res.map((item) => {\n return item;\n });\n\n const plot = order * getYScale();\n\n return plot - getYScale() + (getYScale() === 130 ? 32 : 8);\n },\n [dataConvertedDate, getYScale, filteredByDate]\n );\n\n const plotX = useCallback(\n (timeline, subThread) => {\n const xLine =\n data &&\n filteredByDate.map((item) => {\n return item.timeline + '.' + item.subThread;\n });\n\n let unique = [...new Set(xLine)];\n\n const rowIndex = unique.reduce(function (s, a) {\n s.push({ thread: a });\n return s;\n }, []);\n\n // const sortedRowIndex = rowIndex.sort((a, b) =>\n // a.thread > b.thread ? 1 : -1\n // );\n\n const orderByThread = (unordered) => {\n let maxElement = 0;\n unordered.forEach((value) => {\n if (value.thread.split('.')[0] > maxElement) {\n maxElement = value.thread.split('.')[0];\n }\n });\n let sortArray = [...Array(+maxElement)].map((e) => (e = []));\n unordered.forEach((value) => {\n sortArray[+value.thread.split('.')[0] - 1].push(value);\n });\n sortArray.forEach((value) => {\n value.sort((a, b) => {\n return +a.thread.split('.')[1] - +b.thread.split('.')[1];\n });\n });\n return sortArray.flat();\n };\n\n const sortedRowIndex = orderByThread(rowIndex);\n const concatIndex = timeline + '.' + subThread;\n const result = sortedRowIndex.map((v, index) => ({\n ...v,\n sortedRowIndex: index\n }));\n const results = result.filter(function (entry) {\n return entry.thread === concatIndex;\n });\n\n const xplot = results[0] && results[0].sortedRowIndex * getXScale();\n return xplot + topMargin;\n },\n [data, getXScale, topMargin, filteredByDate]\n );\n\n // Map to named months\n const MONTHS = {\n 1: 'Jan',\n 2: 'Feb',\n 3: 'March',\n 4: 'Apr',\n 5: 'May',\n 6: 'June',\n 7: 'July',\n 8: 'Aug',\n 9: 'Sept',\n 10: 'Oct',\n 11: 'Nov',\n 12: 'Dec'\n };\n\n const convertNumberToMonths = (months) => {\n // Convert months to order\n const orderedMonths = months;\n orderedMonths.sort(function (a, b) {\n return a - b;\n });\n\n // Map to named months\n const output = orderedMonths.map(function (i) {\n return MONTHS[i];\n });\n\n return output;\n };\n\n function lastDayOfMonthArray(object) {\n let tempDates = [];\n let dates = [];\n object.forEach((obj) => {\n if (!tempDates.find((date) => date === formatDate(obj.date))) {\n tempDates.push(formatDate(obj.date));\n }\n });\n tempDates.forEach((date) => {\n const dateMonth = Number(date.split('/')[0]);\n const dateYear = Number(date.split('/')[2]);\n let pushDate = '12/31/9999';\n tempDates.forEach((fDate) => {\n const fDateMonth = Number(fDate.split('/')[0]);\n const fDateDay = Number(fDate.split('/')[1]);\n const fDateYear = Number(fDate.split('/')[2]);\n if (\n fDateYear === dateYear &&\n fDateMonth === dateMonth &&\n fDateDay < Number(pushDate.split('/')[1])\n ) {\n pushDate = fDate;\n }\n });\n if (pushDate !== '12/31/9999') {\n dates.push(pushDate);\n }\n });\n dates = [...new Set(dates)];\n const returnObject = dates.map((date) => {\n let timelines = [];\n let subThreads = [];\n object.forEach((obj) => {\n if (formatDate(obj.date) === formatDate(date)) {\n timelines.push(obj.timeline);\n subThreads.push(obj.subThread);\n }\n });\n return {\n date: date,\n timelines: timelines,\n subThread: subThreads\n };\n });\n return returnObject;\n }\n\n useEffect(() => {\n const timelineSet = new Set();\n data &&\n data.forEach((item) => {\n const timelineKey = `${item.timeline}-${item.subThread}`;\n timelineSet.add(timelineKey);\n });\n setUniqueTimelines(timelineSet.size);\n }, [data]);\n\n function lastDayOfYearArray(object) {\n let tempDates = [];\n let dates = [];\n object.forEach((obj) => {\n if (!tempDates.find((date) => date === formatDate(obj.date))) {\n tempDates.push(formatDate(obj.date));\n }\n });\n tempDates.forEach((date) => {\n const dateMonth = Number(date.split('/')[0]);\n const dateYear = Number(date.split('/')[2]);\n let pushDate = '00/00/00';\n tempDates.forEach((fDate) => {\n const fDateMonth = Number(fDate.split('/')[0]);\n const fDateDay = Number(fDate.split('/')[1]);\n const fDateYear = Number(fDate.split('/')[2]);\n if (\n fDateYear === dateYear &&\n fDateMonth === dateMonth &&\n fDateDay > Number(pushDate.split('/')[1])\n ) {\n pushDate = fDate;\n }\n });\n if (pushDate !== '00/00/00') {\n dates.push(pushDate);\n }\n });\n dates = [...new Set(dates)];\n dates.sort((a, b) => new Date(a) - new Date(b));\n let dateArr = [];\n for (let x = 0; x < dates.length; x++) {\n if (\n x === dates.length - 1 ||\n Number(dates[x].split('/')[2]) !== Number(dates[x + 1].split('/')[2])\n ) {\n dateArr.push(dates[x]);\n }\n }\n const returnObject = dateArr.map((date) => {\n let timelines = [];\n let subThreads = [];\n object.forEach((obj) => {\n if (formatDate(obj.date) === formatDate(date)) {\n timelines.push(obj.timeline);\n subThreads.push(obj.subThread);\n }\n });\n return {\n date: date,\n timelines: timelines,\n subThread: subThreads\n };\n });\n return returnObject;\n }\n\n function firstDayOfYearArray(object) {\n let tempDates = [];\n let dates = [];\n object.forEach((obj) => {\n if (!tempDates.find((date) => date === formatDate(obj.date))) {\n tempDates.push(formatDate(obj.date));\n }\n });\n tempDates.forEach((date) => {\n const dateMonth = Number(date.split('/')[0]);\n const dateYear = Number(date.split('/')[2]);\n let pushDate = '12/31/9999';\n tempDates.forEach((fDate) => {\n const fDateMonth = Number(fDate.split('/')[0]);\n const fDateDay = Number(fDate.split('/')[1]);\n const fDateYear = Number(fDate.split('/')[2]);\n if (\n fDateYear === dateYear &&\n fDateMonth === dateMonth &&\n fDateDay < Number(pushDate.split('/')[1])\n ) {\n pushDate = fDate;\n }\n });\n if (pushDate !== '12/31/9999') {\n dates.push(pushDate);\n }\n });\n dates = [...new Set(dates)];\n dates.sort((a, b) => new Date(b) - new Date(a));\n let dateArr = [];\n for (let x = 0; x < dates.length; x++) {\n if (\n x === dates.length - 1 ||\n Number(dates[x].split('/')[2]) !== Number(dates[x + 1].split('/')[2])\n ) {\n dateArr.push(dates[x]);\n }\n }\n dateArr.sort((a, b) => new Date(a) - new Date(b));\n const returnObject = dateArr.map((date) => {\n let timelines = [];\n let subThreads = [];\n object.forEach((obj) => {\n if (formatDate(obj.date) === formatDate(date)) {\n timelines.push(obj.timeline);\n subThreads.push(obj.subThread);\n }\n });\n return {\n date: date,\n timelines: timelines,\n subThread: subThreads\n };\n });\n return returnObject;\n }\n\n const Today = (object) => {\n const dateList = [];\n object &&\n object.map((item) => {\n dateList.push(item.date);\n });\n\n let unique = [...new Set(dateList)];\n\n const today = new Date().toLocaleDateString('en-US');\n\n //const todaysDate = unique.filter(date => date.includes('7/29/2022'));\n const todaysDate = unique.filter((date) => date.includes(today));\n\n return todaysDate;\n };\n\n const getInverseProportionalNumber = (inputNumber) => {\n const reciprocal = 1 / inputNumber;\n const wholeNumber = Math.round(reciprocal * 400);\n return wholeNumber;\n };\n\n const visualizationSmall = 10;\n const visualizationLarge = 30;\n const rangeHandles = 18;\n const adjusterHeight = 100;\n\n // Plot category lines\n const GuideLinesShort = () => {\n const xLines = buildCategoryLines().map((item, index) => {\n return (\n <div\n key={index}\n style={{\n position: 'absolute',\n zIndex: 0,\n top: 186 * index\n }}\n >\n <div\n className={classes.horizontalDash}\n style={{ height: threadHeight }}\n />\n <div\n style={{\n //width: 'calc(100vw * 1.7)',\n width:\n // dataConvertedDate &&\n // mergePlots.slice(-1).pop().plots * nodeWidth,\n filteredByDate &&\n uniqueNodeScaleAmount * getXScale() + getXScale(),\n height: threadHeight,\n borderBottom: `${theme.palette.divider} 1px solid`\n }}\n />\n </div>\n );\n });\n\n return xLines;\n };\n\n const preloadArray = [...Array(7).keys()];\n\n //Format visualization hover card\n const VisualizationCard = ({ title, data, date, user }) => {\n return (\n <div>\n <Typography variant='subtitle2'> {title} </Typography>\n <div>\n <Typography variant='caption'> {data} </Typography>\n </div>\n <div>\n <Typography variant='caption'> {date} </Typography>\n </div>\n <div>\n <Typography variant='caption'> {user} </Typography>\n </div>\n </div>\n );\n };\n\n const VisualizationCardMulti = ({ title, data, date, user }) => {\n return (\n <div\n style={{\n width: 130,\n borderRadius: 4,\n marginBottom: 16,\n padding: 8\n }}\n >\n <div>\n <Typography variant='subtitle2'> {title} </Typography>\n </div>\n <div>\n <Typography variant='caption'> {data} </Typography>\n </div>\n <div>\n <Typography variant='caption'> {date} </Typography>\n </div>\n <div>\n <Typography variant='caption'> {user} </Typography>\n </div>\n </div>\n );\n };\n\n // Plot Legend\n\n const categoryList = [];\n data &&\n filteredByDate.map((item) => {\n categoryList.push({\n label: item.timelineCategoryName,\n color: item.color,\n timeline: item.timeline\n });\n });\n\n const uniqueCategoryLegend = [\n ...new Map(categoryList.map((item) => [item['label'], item])).values()\n ];\n\n const uniqueCategoryLegendSorted = uniqueCategoryLegend.sort((a, b) =>\n a.timeline > b.timeline ? 1 : -1\n );\n\n const LegendDot = ({ background }) => {\n return (\n <div\n style={{\n width: 30,\n height: 15,\n background: lighten(background, 0.5),\n borderRadius: theme.spacing(6)\n }}\n />\n );\n };\n\n const LegendItem = ({ label, color }) => {\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center'\n }}\n >\n <LegendDot background={'#' + color} />\n <div style={{ marginLeft: theme.spacing(1) }}>\n <Typography variant='caption'>{label} </Typography>\n </div>\n </div>\n );\n };\n\n const legend =\n data &&\n uniqueCategoryLegendSorted.map((item, index) => {\n return <LegendItem key={index} color={item.color} label={item.label} />;\n });\n\n // Plot category bar\n const plotCategoryBar = (timelineNumber, subThread) => {\n const xLine =\n data &&\n filteredByDate.map((item) => {\n return item.timeline.toString() + '.' + item.subThread.toString();\n });\n\n let unique = [...new Set(xLine)];\n\n const uniqueSorted = unique.sort(function (a, b) {\n return a.localeCompare(b);\n });\n\n const rowIndex = uniqueSorted.reduce(function (s, a) {\n s.push({ thread: a });\n return s;\n }, []);\n\n const concatIndex = timelineNumber + '.' + subThread;\n\n const result = rowIndex.map((v, index) => ({ ...v, rowIndex: index + 1 }));\n const results = result.filter(function (entry) {\n return entry.thread === concatIndex;\n });\n\n //const xplot = results[0].rowIndex * threadHeight;\n const xplot =\n (results[0] && results[0].rowIndex * getXScale()) - getXScale();\n return xplot;\n\n // const plot = (timelineNumber * threadHeight - threadHeight) * subThread;\n // return plot;\n };\n\n const CategoryBar = ({ label, height }) => {\n return (\n <div className={classes.categoryBar} style={{ height: height }}>\n <div className={classes.categoryLabel}>\n <Typography variant='subtitle2'> {label} </Typography>\n </div>\n </div>\n );\n };\n\n const DateMarkers = (\n <div>\n {filteredByDate &&\n showYearMarkers &&\n uniqueNodeScaleAmount >= summaryBreakpoint &&\n firstDayOfYearArray(filteredByDate).map((item, index) => {\n return (\n <div\n key={index}\n style={{\n position: 'absolute',\n bottom: 0,\n left: plotY(item.date)\n }}\n >\n <MttYearTag year>{item.date.split('/')[2]}</MttYearTag>\n </div>\n );\n })}\n {filteredByDate &&\n uniqueNodeScaleAmount >= summaryBreakpoint &&\n showMonthMarkers &&\n lastDayOfMonthArray(filteredByDate).map((item, index) => {\n return (\n <div\n key={index}\n style={{\n position: 'absolute',\n bottom: 0,\n left: plotY(item.date)\n }}\n >\n <MttYearTag>\n {convertNumberToMonths([item.date.split('/')[0]])}\n </MttYearTag>\n </div>\n );\n })}\n\n {filteredByDate &&\n uniqueNodeScaleAmount >= summaryBreakpoint &&\n Today(filteredByDate).map((item) => {\n return (\n <div\n style={{\n position: 'absolute',\n bottom: 0,\n left: plotY(item)\n }}\n >\n <MttYearTag year today>\n <Typography variant='caption'> TODAY </Typography>\n </MttYearTag>\n </div>\n );\n })}\n </div>\n );\n\n // timeline render\n return (\n <div>\n <div\n ref={mainContainer}\n style={{\n position: 'relative',\n // top: 45,\n height: '75vh',\n overflow: 'scroll'\n }}\n >\n {/* CategoryBar */}\n {!loading && (\n <>\n <div style={{ zIndex: 99999999, position: 'absolute', bottom: 0 }}>\n {DateMarkers}\n </div>\n\n {data &&\n data &&\n uniqueNodeScaleAmount < summaryBreakpoint &&\n filteredByDate.map((item, index) => {\n return (\n <div\n key={index}\n className={classes.categoryBarPlacement}\n style={{\n top:\n plotCategoryBar(\n Number(item.timeline),\n Number(item.subThread)\n ) + 0\n }}\n >\n <CategoryBar\n key={item.id}\n label={item.timelineCategoryName}\n height={data && getXScale()}\n />\n </div>\n );\n })}\n\n {data &&\n filteredByDate.map((item, index) => {\n return item.dates.length === 1 ? (\n <div\n key={index}\n style={{\n position: 'absolute',\n left: plotY(\n new Date(item.date).toLocaleDateString('en-US')\n ),\n top: plotX(item.timeline, item.subThread),\n //top: 0,\n zIndex:\n 999999 -\n plotY(new Date(item.date).toLocaleDateString('en-US')) -\n item.subThread\n //zIndex: 9999999 - index * index,\n }}\n >\n <TimelineNode\n icon={\n <IconRenderer\n noBorder\n value={{\n color: { hex: '#' + item.color },\n name: item.iconID\n }}\n />\n }\n dot={data && uniqueNodeScaleAmount <= overviewBreakpoint}\n dotColor={'#' + item.color}\n data={item.dates}\n details={\n data && uniqueNodeScaleAmount < summaryBreakpoint\n }\n height={\n (data &&\n uniqueNodeScaleAmount <= summaryBreakpoint &&\n 183) ||\n (data &&\n uniqueNodeScaleAmount <= overviewBreakpoint &&\n 30)\n }\n width={\n data && uniqueNodeScaleAmount < summaryBreakpoint && 130\n }\n boxStyle\n show={showAllDetails}\n iconColor={'#' + item.color}\n />\n </div>\n ) : (\n <div key={item.id}>\n <div\n style={{\n position: 'absolute',\n left:\n plotY(\n new Date(item.date).toLocaleDateString('en-US')\n ) + 4,\n top: plotX(item.timeline, item.subThread),\n zIndex:\n 999999 -\n plotY(\n new Date(item.date).toLocaleDateString('en-US')\n ) -\n item.timeline\n }}\n >\n <MultiDot map={item.dates} number={item.dates.length} />\n </div>\n </div>\n );\n })}\n\n <Fade in={data && uniqueNodeScaleAmount >= summaryBreakpoint}>\n <div>\n {data &&\n minnifiedResult.map((item, index) => {\n return (\n <div\n key={index}\n style={{\n position: 'absolute',\n //zIndex: 0,\n left: plotY(item.firstDate) + 2,\n top:\n data && uniqueNodeScaleAmount > overviewBreakpoint\n ? 14 + plotX(item.timeline, item.subThread)\n : 4 + plotX(item.timeline, item.subThread)\n }}\n >\n <TimelineWrapper\n timeline={item.timeline}\n style={{\n width:\n plotY(item.lastDate) - plotY(item.firstDate) + 45,\n height:\n data && uniqueNodeScaleAmount > overviewBreakpoint\n ? 20\n : 40,\n backgroundColor: lighten('#' + item.color, 0.7)\n }}\n />\n </div>\n );\n })}\n </div>\n </Fade>\n {/* <Fade in={data && filteredByDate.length < mttBreakpointMd}> */}\n {data && uniqueNodeScaleAmount < summaryBreakpoint && (\n <div>\n <GuideLinesShort />\n </div>\n )}\n </>\n )}\n {/* </Fade> */}\n </div>\n\n {/* lower Section //////////////////////////////////////////////////////////////////////////////////////////////// */}\n <div style={{ width: 250 }}>\n <HeightAdjuster\n verticalAdjuster={verticalAdjuster}\n setVerticalAdjuster={setVerticalAdjuster}\n />\n </div>\n\n {!loading && (\n <div\n style={{\n position: 'relative',\n borderTop: '1px solid lightgrey',\n overflow: 'scroll'\n }}\n >\n <div>\n {data && displayRangeFilter && (\n <div\n style={{\n overflow: 'scroll'\n }}\n >\n <div key={data}>\n <DynamicRangeSlider\n id='range-slider'\n step={10}\n threads={10 * uniqueTimelines}\n width={containerWidth - rangeHandles}\n margin={\n topMargin +\n getInverseProportionalNumber(verticalAdjuster) * 3\n }\n defaultValue={[10, unique.length * 10]}\n max={unique.length * 10}\n min={10}\n onThumbDragEnd={processRangeValues}\n onRangeDragEnd={processRangeValues}\n onInput={(e) => getRangeValues(e)}\n />\n </div>\n </div>\n )}\n\n <div>\n {data &&\n data.map((item, index) => {\n return item.dates.length === 1 ? (\n <div\n key={index}\n style={{\n position: 'absolute',\n left:\n dataConvertedDate &&\n plotYV(\n new Date(item.date).toLocaleDateString('en-US')\n ) *\n (containerWidth / unique.length) -\n (visualizationSmall + rangeHandles),\n top:\n plotXV(item.timeline, item.subThread) /\n verticalAdjuster +\n visualizationYScale +\n adjusterHeight\n }}\n >\n <VisualizationDot\n type={item.dates[0].details.shortDescription}\n hover={\n <VisualizationCard\n title={item.dates[0].details.shortDescription}\n data={item.dates[0].details.data1}\n date={item.dates[0].details.date}\n //user={item.dates[0].details.data2}\n />\n }\n />\n </div>\n ) : (\n <div key={item.id}>\n <div\n style={{\n position: 'absolute',\n left:\n dataConvertedDate &&\n plotYV(\n new Date(item.date).toLocaleDateString('en-US')\n ) *\n (containerWidth / unique.length) -\n (visualizationSmall + rangeHandles),\n top:\n plotXV(item.timeline, item.subThread) /\n verticalAdjuster +\n visualizationYScale +\n adjusterHeight\n }}\n >\n <VisualizationDot\n hover={\n <div style={{ color: 'black' }}>\n {item.dates.map((item) => {\n return (\n <VisualizationCardMulti\n title={item.details.description}\n date={item.details.date}\n key={item.id}\n />\n );\n })}\n </div>\n }\n multi\n >\n {item.dates.length}\n </VisualizationDot>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n )}\n\n {/* Preloading */}\n <div style={{ position: 'absolute', top: 0, left: 0, zIndex: 10 }}>\n {loading &&\n preloadArray.map((item, index) => {\n return (\n <div\n key={index}\n style={{\n position: 'absolute',\n left: Math.floor(Math.random() * 11) * 60 + 40,\n top: (index + 1) * 80\n }}\n >\n <TimelinePreloaderNode longView loading={loading} />\n </div>\n );\n })}\n </div>\n {/* Preloading End */}\n\n {/* Legend */}\n {uniqueNodeScaleAmount >= summaryBreakpoint && (\n <div\n style={{\n position: 'absolute',\n right: 0,\n top: 0,\n zIndex: 999999999,\n background: 'white',\n borderRadius: 4\n }}\n >\n <div\n style={{\n display: 'flex',\n padding: theme.spacing(1),\n gap: theme.spacing(3)\n }}\n >\n {legend}\n\n <Button\n className={classes.button}\n onClick={() => setShowMonthMarkers(!showMonthMarkers)}\n >\n <span\n style={{ textDecoration: !showMonthMarkers && 'line-through' }}\n >\n M\n </span>\n </Button>\n <Button\n className={classes.button}\n onClick={() => setShowYearMarkers(!showYearMarkers)}\n >\n <span\n style={{ textDecoration: !showYearMarkers && 'line-through' }}\n >\n Y\n </span>\n </Button>\n </div>\n </div>\n )}\n {/* Breakpoint testing */}\n {/* <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n zIndex: 999999999,\n background: 'white',\n borderRadius: 4,\n }}\n >\n <Typography variant=\"caption\">\n Data nodes:\n <span style={{ fontWeight: 700 }}>\n {filteredByDate.length} ::::::::::\n </span>\n <span style={{ fontWeight: 700 }}>\n {uniqueNodeScaleAmount} ::::::::::\n </span>\n Summary Breakpoint:\n <span style={{ fontWeight: 700 }}>\n {summaryBreakpoint} ::::::::::\n </span>\n Overview Breakpoint:\n <span style={{ fontWeight: 700 }}>{overviewBreakpoint} ::::::::</span>\n Container Width:\n <span style={{ fontWeight: 700 }}>{containerWidth} :::::::::</span>\n Summary Width: Circle\n <span style={{ fontWeight: 700 }}>\n {summaryComponentSize} ::::::::\n </span>\n Overview width: Dot\n <span style={{ fontWeight: 700 }}>\n {overviewComponentSize} :::::::\n </span>\n </Typography>\n </div> */}\n </div>\n );\n});\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { formatDataWithTimelineCategoryNameOrderedByDate } from '../functions/mttFunctions';\nimport { MttTimeline } from './MttTimeline';\nimport { ConfigService } from '../../../configService';\n\nexport const MttMainTimeline = (props) => {\n const { timelineApiMethodInstanceId, params = {} } = props;\n const [timelineThreads, setTimelineThreads] = useState(null);\n const [data, setData] = useState();\n const [loading, setLoading] = useState(false);\n\n const executeQueryInstance = useCallback(\n async (apiMethodInstanceId, data = {}) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryInstance/${apiMethodInstanceId}`,\n {\n method: 'post'\n },\n { data: data }\n ),\n []\n );\n\n useEffect(() => {\n const fetchTimelineThreads = async () => {\n const timelineResponse = await executeQueryInstance(\n timelineApiMethodInstanceId\n ).catch((e) => e);\n\n if (timelineResponse?.status === 200) {\n setTimelineThreads(timelineResponse?.data?.pageList || []);\n }\n };\n fetchTimelineThreads();\n }, [executeQueryInstance, timelineApiMethodInstanceId]);\n\n useEffect(() => {\n const fetchThreadEvents = async () => {\n if (!timelineThreads) {\n return null;\n }\n setLoading(true);\n const promises = [];\n const threadList = [];\n timelineThreads.forEach((thread) => {\n promises.push(executeQueryInstance(thread.queryID, { ...params }));\n });\n await Promise.all(\n promises.map((p) =>\n p.catch((e) => {\n setLoading(false);\n return e;\n })\n )\n ).then((responses) => {\n responses.forEach((response, index) => {\n if (response.status === 200) {\n const timelineThread = timelineThreads[index];\n if (response?.data?.pageList) {\n response.data.pageList.forEach(\n (evt) => (evt.threadId = timelineThread.name)\n );\n const thread = {\n ...timelineThread,\n events: response.data.pageList\n };\n threadList.push(thread);\n }\n }\n });\n setLoading(false);\n });\n setData(formatDataWithTimelineCategoryNameOrderedByDate(threadList));\n };\n fetchThreadEvents();\n }, [executeQueryInstance, timelineThreads, params]);\n\n return <MttTimeline data={data} loading={loading} />;\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"MttMainTimeline-nusYDWg_.js","names":["years","uniqueYears","plots","demoDates","unique","startDate","endDate","item","dates","data","data"],"sources":["../src/componentSystems/multiThreadTimeline/mttMainTimeline/HeightAdjust.jsx","../src/componentSystems/multiThreadTimeline/mttMainTimeline/MttTimeline.jsx","../src/componentSystems/multiThreadTimeline/mttMainTimeline/MttMainTimeline.jsx"],"sourcesContent":["import React from 'react';\nimport { Slider, IconButton } from '@material-ui/core';\nimport { LineSpacingIcon, MinimumValueIcon } from '@fluentui/react-icons';\n\nexport const HeightAdjuster = ({ verticalAdjuster, setVerticalAdjuster }) => {\n const handleAdjusterChange = (event, newValue) => {\n setVerticalAdjuster(newValue);\n };\n const handleDecreaseClick = () => {\n setVerticalAdjuster(verticalAdjuster - 1);\n };\n const handleIncreaseClick = () => {\n setVerticalAdjuster(verticalAdjuster + 1);\n };\n return (\n <div style={{ display: 'flex' }}>\n <IconButton onClick={handleDecreaseClick}>\n <div style={{ fontSize: 18 }}>\n <LineSpacingIcon />\n </div>\n </IconButton>\n <Slider\n value={verticalAdjuster}\n min={0}\n max={10}\n step={0.1}\n onChange={handleAdjusterChange}\n />\n <IconButton onClick={handleIncreaseClick}>\n <div style={{ rotate: '90deg', fontSize: 24 }}>\n <MinimumValueIcon />\n </div>\n </IconButton>\n </div>\n );\n};\n","import React, {\n useState,\n useEffect,\n useRef,\n memo,\n useCallback,\n useMemo\n} from 'react';\nimport {\n makeStyles,\n Typography,\n useTheme,\n Fade,\n lighten,\n Button\n} from '@material-ui/core';\nimport { IconRenderer } from '../../../UI/templates/ui/renderers/IconRenderer';\nimport { TimelineNode } from '../ui/TimelineNode';\nimport { TimelineWrapper } from '../ui/TimelineWrapper';\nimport { MultiDot } from '../ui/MultiDot';\nimport { VisualizationDot } from '../ui/VisualizationDot';\nimport { TimelinePreloaderNode } from '../ui/TimelinePreloaderNode';\nimport 'react-range-slider-input/dist/style.css';\nimport { MttYearTag } from '../ui/MttYearTag';\nimport { DynamicRangeSlider } from '../ui/DynamicRangeSlider';\nimport { HeightAdjuster } from './HeightAdjust';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n horizontalDash: {\n backgroundImage:\n 'linear-gradient(to right, grey 33%, rgba(255,255,255,0) 0%)',\n backgroundPosition: 'bottom',\n backgroundSize: '16px 1px',\n backgroundRepeat: 'repeat-x'\n },\n slider: {\n height: 600\n },\n categoryBar: {\n background: lighten(theme.palette.common.black, 0.5),\n color: theme.palette.common.white,\n display: 'flex',\n alignItems: 'center'\n },\n categoryBarPlacement: {\n position: 'absolute',\n left: 0\n },\n categoryLabel: {\n transform: 'rotate(90deg)',\n width: 28\n },\n button: {\n '&:hover': {\n textDecoration: 'line-through'\n }\n }\n}));\n// eslint-disable-next-line react/display-name\nexport const MttTimeline = memo((props) => {\n const [showAllDetails] = useState(false);\n const [startRange, setStartRange] = useState(10);\n const [endRange, setEndRange] = useState();\n const [startDate, setStartDate] = useState();\n const [endDate, setEndDate] = useState();\n const [displayRangeFilter, setDisplayRangeFilter] = useState(true);\n const [threadHeight, setThreadHeight] = useState(92);\n const [recordLength, setRecordLength] = useState();\n const [containerWidth, setContainerWidth] = useState();\n const [showMonthMarkers, setShowMonthMarkers] = useState(false);\n const [showYearMarkers, setShowYearMarkers] = useState(false);\n const [verticalAdjuster, setVerticalAdjuster] = useState(4.5);\n const [uniqueTimelines, setUniqueTimelines] = useState(0);\n\n const classes = useStyles(props);\n const { data, loading } = props;\n const theme = useTheme();\n\n const visualizationYScale = 40;\n\n useEffect(() => {\n const years = [];\n data &&\n data.map((item) => {\n years.push(item.date.slice(-4));\n });\n\n //unique years\n const uniqueYears = [...new Set(years)].sort();\n\n data && setStartDate(uniqueYears[0] + '-01-01');\n data && setEndDate(uniqueYears[uniqueYears.length - 1] + '-12-31');\n }, [data]);\n\n const mainContainer = useRef(null);\n\n useEffect(() => {\n setContainerWidth(\n mainContainer.current ? mainContainer.current.offsetWidth : 0\n );\n }, []);\n\n let movement_timer = null;\n const RESET_TIMEOUT = 10;\n\n const set_dimensions = () => {\n if (mainContainer.current) {\n setContainerWidth(mainContainer.current.offsetWidth);\n }\n };\n\n window.addEventListener('resize', () => {\n clearInterval(movement_timer);\n movement_timer = setTimeout(set_dimensions, RESET_TIMEOUT);\n });\n\n const years = [];\n data &&\n data.map((item) => {\n years.push(item.date.slice(-4));\n });\n\n //unique years\n const uniqueYears = [...new Set(years)];\n\n let demoApiConfigDate = [];\n\n uniqueYears.map((item) => {\n demoApiConfigDate.push('01/01/' + item);\n });\n\n let yearsInRange = [];\n\n yearsInRange.push(Number(demoApiConfigDate[1]?.slice(-4)) + 1);\n\n let yearsToDisplay = [];\n\n yearsInRange.map((item) => {\n yearsToDisplay.push('01/01/' + item);\n });\n\n demoApiConfigDate.map((item) => {\n yearsToDisplay.unshift(item);\n });\n\n const yearRange = yearsToDisplay.sort();\n\n // could change plotting on range change by switching data with filteredByDate\n\n const getSingleGroupedData = useCallback(() => {\n const flatOne = data && data.map((item) => item.dates).flat();\n const flatTwo =\n data &&\n flatOne &&\n flatOne.map((item) => {\n return item.details;\n });\n return flatTwo;\n }, [data]);\n\n // Sort date\n\n const sortDate =\n data &&\n getSingleGroupedData().sort(function (a, b) {\n const c = new Date(a.date);\n const d = new Date(b.date);\n return c - d;\n });\n\n // Convert date format\n\n let dataConvertedDate =\n data &&\n sortDate.map((item) => ({\n ...item,\n date: new Date(item.date).toLocaleDateString()\n }));\n\n function formatDate(date) {\n return new Date(date).toLocaleDateString('en-US');\n }\n\n const getPositionFromDate = useCallback(\n (initDate) => {\n const start = new Date(yearRange[1]);\n const end = new Date(yearRange[2]);\n\n const rangeStart = [initDate];\n\n const dateList = [new Date(start).toLocaleDateString()];\n\n let loop = new Date(start);\n while (loop <= end) {\n const newDate = loop.setDate(loop.getDate() + 1);\n loop = new Date(newDate);\n dateList.push(loop.toLocaleDateString());\n }\n\n const mappedToObjects = dateList.map(function (value) {\n return { date: value };\n });\n\n const plots = [];\n for (let i = 1; i <= dateList.length; i++) {\n plots.push(i);\n }\n\n let mergePlots = mappedToObjects.map((o, i) => ({\n ...o,\n plots: plots[i] || null\n }));\n\n const startDate = mergePlots\n .filter(({ date }) => rangeStart.includes(date))\n .map(({ plots }) => plots)\n .toString();\n return startDate;\n },\n [yearRange]\n );\n\n let demoDates = [];\n\n dataConvertedDate &&\n dataConvertedDate.map((item) => {\n demoDates.push(item.date);\n });\n\n let unique = [...new Set(demoDates)];\n\n useEffect(() => {\n setEndRange(\n unique && Number(getPositionFromDate(unique.slice(-1).pop())) + 66\n );\n }, []);\n\n const getDatesFromRangeSelectionCompact = useCallback(\n (left, right) => {\n const rangeStart = [Math.round(left)];\n const rangeEnd = [Math.round(right)];\n let demoDates = [];\n\n dataConvertedDate &&\n dataConvertedDate.map((item) => {\n demoDates.push(item.date);\n });\n\n let unique = [...new Set(demoDates)];\n\n const getNextDay = () => {\n const dateString = unique[unique.length - 1];\n const date = new Date(dateString);\n date.setDate(date.getDate() + 1);\n const month = date.getMonth() + 1;\n const day = date.getDate();\n const year = date.getFullYear();\n return `${month}/${day}/${year}`;\n };\n\n const nextDay = getNextDay();\n unique.push(nextDay);\n\n const mappedToObjects = unique.map(function (value) {\n return { date: value };\n });\n\n const plots = [];\n for (let i = 1; i <= unique.length; i++) {\n plots.push(i * 10);\n }\n\n let mergePlots = mappedToObjects.map((o, i) => ({\n ...o,\n plots: plots[i] || null\n }));\n\n const startDate = mergePlots\n .filter(({ plots }) => rangeStart.includes(plots))\n .map(({ date }) => date)\n .toString();\n\n const endDate = mergePlots\n .filter(({ plots }) => rangeEnd.includes(plots))\n .map(({ date }) => date)\n .toString();\n\n setStartDate(startDate);\n setEndDate(endDate);\n },\n [dataConvertedDate]\n );\n\n const getRangeValues = useCallback((rangeValue) => {\n const left = rangeValue[0];\n const right = rangeValue[1];\n setStartRange(Math.round(left));\n setEndRange(Math.round(right));\n }, []);\n\n const processRangeValues = () => {\n endRange && getDatesFromRangeSelectionCompact(startRange, endRange);\n };\n\n // Plot YV\n const plotYV = useCallback(\n (item) => {\n const plotDate = [item];\n let demoDates = [];\n\n dataConvertedDate &&\n dataConvertedDate.map((item) => {\n demoDates.push(item.date);\n });\n\n let demoDatesTwo = [];\n\n data &&\n data.map((item) => {\n demoDatesTwo.push(item.date);\n });\n\n let unique = [...new Set(demoDatesTwo)];\n\n let results = unique.map((date) => new Date(date));\n\n const resultsSorted = results.sort((a, b) => a.getTime() - b.getTime());\n\n const dtest = resultsSorted.map((date) => date.toLocaleDateString());\n\n const mappedToObjects = dtest.map(function (value) {\n return { date: value };\n });\n\n const plots = [];\n for (let i = 1; i <= unique.length; i++) {\n plots.push(i);\n }\n\n let mergePlots = mappedToObjects.map((o, i) => ({\n ...o,\n plots: plots[i] || null\n }));\n\n const res = mergePlots\n .filter(({ date }) => plotDate.includes(date))\n .map(({ plots }) => plots);\n\n const order = res.map((item) => {\n return item;\n });\n\n const plot = order;\n\n return plot;\n },\n [data, dataConvertedDate]\n );\n\n function compareDate(date1, date2, comparison) {\n const date1Month = Number(date1.split('/')[0]);\n const date2Month = Number(date2.split('/')[0]);\n const date1Day = Number(date1.split('/')[1]);\n const date2Day = Number(date2.split('/')[1]);\n const date1Year = Number(date1.split('/')[2]);\n const date2Year = Number(date2.split('/')[2]);\n if (comparison === '>') {\n if (date1Year > date2Year) {\n return true;\n } else if (date1Year === date2Year) {\n if (date1Month > date2Month) {\n return true;\n } else if (date1Month === date2Month) {\n if (date1Day > date2Day) {\n return true;\n }\n }\n }\n return false;\n } else {\n if (date1Year < date2Year) {\n return true;\n } else if (date1Year === date2Year) {\n if (date1Month < date2Month) {\n return true;\n } else if (date1Month === date2Month) {\n if (date1Day < date2Day) {\n return true;\n }\n }\n }\n return false;\n }\n }\n\n function minnifyTimelineObject(object) {\n let cleanObject = [];\n let notUsed = false;\n object.forEach((obj, i) => {\n if (cleanObject.length === 0) {\n cleanObject.push({\n timeline: obj.timeline,\n subThread: obj.subThread,\n firstDate: formatDate(obj.date),\n lastDate: formatDate(obj.date),\n color: obj.color,\n icon: obj.iconID\n });\n } else {\n notUsed = true;\n cleanObject.forEach((clnObj) => {\n if (\n obj.timeline === clnObj.timeline &&\n obj.subThread === clnObj.subThread\n ) {\n if (\n compareDate(\n formatDate(obj.date),\n formatDate(clnObj.firstDate),\n '<'\n )\n ) {\n clnObj.firstDate = formatDate(obj.date);\n } else if (\n compareDate(\n formatDate(obj.date),\n formatDate(clnObj.lastDate),\n '>'\n )\n ) {\n clnObj.lastDate = formatDate(obj.date);\n }\n notUsed = false;\n }\n });\n }\n if (notUsed) {\n cleanObject.push({\n timeline: obj.timeline,\n subThread: obj.subThread,\n firstDate: formatDate(obj.date),\n lastDate: formatDate(obj.date),\n color: obj.color,\n icon: obj.iconID\n });\n }\n });\n return cleanObject;\n }\n\n let dates = [];\n dataConvertedDate &&\n dataConvertedDate.map((item) => {\n dates.push(item.date);\n });\n\n const plots = [];\n for (let i = 1; i <= unique.length; i++) {\n plots.push(i);\n }\n\n const startDateSet = useMemo(() => new Date(startDate), [startDate]);\n const endDateSet = useMemo(() => new Date(endDate), [endDate]);\n\n const filteredByDate =\n data &&\n data.filter((item) => {\n const date = new Date(item.date);\n return date >= startDateSet && date < endDateSet;\n });\n\n const buildCategoryLines = useCallback(() => {\n const xLine =\n data &&\n filteredByDate?.map((item) => {\n return item.timeline.toString() + '.' + item.subThread.toString();\n });\n\n let unique = [...new Set(xLine)];\n return unique;\n }, [filteredByDate, data]);\n\n const minnifiedResult = data && minnifyTimelineObject(filteredByDate);\n\n const detailedComponentSize = 130;\n const summaryComponentSize = 73;\n //const overviewComponentSize = 50;\n\n //const detailBreakpoint = Math.round(containerWidth / detailedComponentSize);\n const summaryBreakpoint = Math.round(containerWidth / detailedComponentSize);\n const overviewBreakpoint = Math.round(containerWidth / summaryComponentSize);\n\n useEffect(() => {\n const filteredByDate =\n data &&\n data.filter((item) => {\n const date = new Date(item.date);\n return date >= startDateSet && date <= endDateSet;\n });\n\n setRecordLength(filteredByDate?.length);\n }, [data, endDateSet, startDateSet]);\n\n const checkLinearLength = [];\n\n filteredByDate?.forEach((item) => {\n checkLinearLength.push(item.date);\n });\n\n let uniqueNodeScaleAmount = [...new Set(checkLinearLength)].length;\n\n const getScale = useCallback(() => {\n if (uniqueNodeScaleAmount > overviewBreakpoint) {\n return 50;\n } else if (uniqueNodeScaleAmount >= summaryBreakpoint) {\n return summaryComponentSize;\n } else {\n return 186;\n }\n }, [uniqueNodeScaleAmount, summaryBreakpoint, overviewBreakpoint]);\n\n const getXScale = useCallback(() => {\n if (uniqueNodeScaleAmount > overviewBreakpoint) {\n return 50;\n } else if (uniqueNodeScaleAmount >= summaryBreakpoint) {\n return summaryComponentSize;\n } else {\n return 186;\n }\n }, [uniqueNodeScaleAmount, summaryBreakpoint, overviewBreakpoint]);\n\n const getYScale = useCallback(() => {\n if (uniqueNodeScaleAmount > overviewBreakpoint) {\n return 50;\n } else if (uniqueNodeScaleAmount >= summaryBreakpoint) {\n return summaryComponentSize;\n } else {\n return 130;\n }\n }, [uniqueNodeScaleAmount, summaryBreakpoint, overviewBreakpoint]);\n\n const topMargin = uniqueNodeScaleAmount >= summaryBreakpoint ? 48 : 0;\n\n // Plot XV\n const plotXV = useCallback(\n (timeline, subThread) => {\n const xLine =\n data &&\n data.map((item) => {\n return item.timeline + '.' + item.subThread;\n });\n\n let unique = [...new Set(xLine)];\n\n const rowIndex = unique.reduce(function (s, a) {\n s.push({ thread: a });\n return s;\n }, []);\n\n const sortedRowIndex = rowIndex.sort((a, b) =>\n a.thread > b.thread ? 1 : -1\n );\n\n const concatIndex = timeline + '.' + subThread;\n const result = sortedRowIndex.map((v, index) => ({\n ...v,\n sortedRowIndex: index\n }));\n const results = result.filter(function (entry) {\n return entry.thread === concatIndex;\n });\n const xplot = results[0] && results[0].sortedRowIndex * 50;\n return xplot - topMargin;\n },\n [data, topMargin]\n );\n\n const plotY = useCallback(\n (item) => {\n const plotDate = [item];\n\n let demoDates = [];\n\n dataConvertedDate &&\n dataConvertedDate.map((item) => {\n demoDates.push(item.date);\n });\n\n let demoDatesTwo = [];\n\n dataConvertedDate &&\n filteredByDate.map((item) => {\n demoDatesTwo.push(item.date);\n });\n\n let unique = [...new Set(demoDatesTwo)];\n\n let results = unique.map((date) => new Date(date));\n\n const resultsSorted = results.sort((a, b) => a.getTime() - b.getTime());\n\n const dtest = resultsSorted.map((date) => date.toLocaleDateString());\n\n const mappedToObjects = dtest.map(function (value) {\n return { date: value };\n });\n\n const plots = [];\n for (let i = 1; i <= unique.length; i++) {\n plots.push(i);\n }\n\n let mergePlots = mappedToObjects.map((o, i) => ({\n ...o,\n plots: plots[i] || null\n }));\n\n const res =\n mergePlots &&\n mergePlots\n .filter(({ date }) => plotDate.includes(date))\n .map(({ plots }) => plots);\n\n const order =\n mergePlots &&\n res.map((item) => {\n return item;\n });\n\n const plot = order * getYScale();\n\n return plot - getYScale() + (getYScale() === 130 ? 32 : 8);\n },\n [dataConvertedDate, getYScale, filteredByDate]\n );\n\n const plotX = useCallback(\n (timeline, subThread) => {\n const xLine =\n data &&\n filteredByDate.map((item) => {\n return item.timeline + '.' + item.subThread;\n });\n\n let unique = [...new Set(xLine)];\n\n const rowIndex = unique.reduce(function (s, a) {\n s.push({ thread: a });\n return s;\n }, []);\n\n // const sortedRowIndex = rowIndex.sort((a, b) =>\n // a.thread > b.thread ? 1 : -1\n // );\n\n const orderByThread = (unordered) => {\n let maxElement = 0;\n unordered.forEach((value) => {\n if (value.thread.split('.')[0] > maxElement) {\n maxElement = value.thread.split('.')[0];\n }\n });\n let sortArray = [...Array(+maxElement)].map((e) => (e = []));\n unordered.forEach((value) => {\n sortArray[+value.thread.split('.')[0] - 1].push(value);\n });\n sortArray.forEach((value) => {\n value.sort((a, b) => {\n return +a.thread.split('.')[1] - +b.thread.split('.')[1];\n });\n });\n return sortArray.flat();\n };\n\n const sortedRowIndex = orderByThread(rowIndex);\n const concatIndex = timeline + '.' + subThread;\n const result = sortedRowIndex.map((v, index) => ({\n ...v,\n sortedRowIndex: index\n }));\n const results = result.filter(function (entry) {\n return entry.thread === concatIndex;\n });\n\n const xplot = results[0] && results[0].sortedRowIndex * getXScale();\n return xplot + topMargin;\n },\n [data, getXScale, topMargin, filteredByDate]\n );\n\n // Map to named months\n const MONTHS = {\n 1: 'Jan',\n 2: 'Feb',\n 3: 'March',\n 4: 'Apr',\n 5: 'May',\n 6: 'June',\n 7: 'July',\n 8: 'Aug',\n 9: 'Sept',\n 10: 'Oct',\n 11: 'Nov',\n 12: 'Dec'\n };\n\n const convertNumberToMonths = (months) => {\n // Convert months to order\n const orderedMonths = months;\n orderedMonths.sort(function (a, b) {\n return a - b;\n });\n\n // Map to named months\n const output = orderedMonths.map(function (i) {\n return MONTHS[i];\n });\n\n return output;\n };\n\n function lastDayOfMonthArray(object) {\n let tempDates = [];\n let dates = [];\n object.forEach((obj) => {\n if (!tempDates.find((date) => date === formatDate(obj.date))) {\n tempDates.push(formatDate(obj.date));\n }\n });\n tempDates.forEach((date) => {\n const dateMonth = Number(date.split('/')[0]);\n const dateYear = Number(date.split('/')[2]);\n let pushDate = '12/31/9999';\n tempDates.forEach((fDate) => {\n const fDateMonth = Number(fDate.split('/')[0]);\n const fDateDay = Number(fDate.split('/')[1]);\n const fDateYear = Number(fDate.split('/')[2]);\n if (\n fDateYear === dateYear &&\n fDateMonth === dateMonth &&\n fDateDay < Number(pushDate.split('/')[1])\n ) {\n pushDate = fDate;\n }\n });\n if (pushDate !== '12/31/9999') {\n dates.push(pushDate);\n }\n });\n dates = [...new Set(dates)];\n const returnObject = dates.map((date) => {\n let timelines = [];\n let subThreads = [];\n object.forEach((obj) => {\n if (formatDate(obj.date) === formatDate(date)) {\n timelines.push(obj.timeline);\n subThreads.push(obj.subThread);\n }\n });\n return {\n date: date,\n timelines: timelines,\n subThread: subThreads\n };\n });\n return returnObject;\n }\n\n useEffect(() => {\n const timelineSet = new Set();\n data &&\n data.forEach((item) => {\n const timelineKey = `${item.timeline}-${item.subThread}`;\n timelineSet.add(timelineKey);\n });\n setUniqueTimelines(timelineSet.size);\n }, [data]);\n\n function lastDayOfYearArray(object) {\n let tempDates = [];\n let dates = [];\n object.forEach((obj) => {\n if (!tempDates.find((date) => date === formatDate(obj.date))) {\n tempDates.push(formatDate(obj.date));\n }\n });\n tempDates.forEach((date) => {\n const dateMonth = Number(date.split('/')[0]);\n const dateYear = Number(date.split('/')[2]);\n let pushDate = '00/00/00';\n tempDates.forEach((fDate) => {\n const fDateMonth = Number(fDate.split('/')[0]);\n const fDateDay = Number(fDate.split('/')[1]);\n const fDateYear = Number(fDate.split('/')[2]);\n if (\n fDateYear === dateYear &&\n fDateMonth === dateMonth &&\n fDateDay > Number(pushDate.split('/')[1])\n ) {\n pushDate = fDate;\n }\n });\n if (pushDate !== '00/00/00') {\n dates.push(pushDate);\n }\n });\n dates = [...new Set(dates)];\n dates.sort((a, b) => new Date(a) - new Date(b));\n let dateArr = [];\n for (let x = 0; x < dates.length; x++) {\n if (\n x === dates.length - 1 ||\n Number(dates[x].split('/')[2]) !== Number(dates[x + 1].split('/')[2])\n ) {\n dateArr.push(dates[x]);\n }\n }\n const returnObject = dateArr.map((date) => {\n let timelines = [];\n let subThreads = [];\n object.forEach((obj) => {\n if (formatDate(obj.date) === formatDate(date)) {\n timelines.push(obj.timeline);\n subThreads.push(obj.subThread);\n }\n });\n return {\n date: date,\n timelines: timelines,\n subThread: subThreads\n };\n });\n return returnObject;\n }\n\n function firstDayOfYearArray(object) {\n let tempDates = [];\n let dates = [];\n object.forEach((obj) => {\n if (!tempDates.find((date) => date === formatDate(obj.date))) {\n tempDates.push(formatDate(obj.date));\n }\n });\n tempDates.forEach((date) => {\n const dateMonth = Number(date.split('/')[0]);\n const dateYear = Number(date.split('/')[2]);\n let pushDate = '12/31/9999';\n tempDates.forEach((fDate) => {\n const fDateMonth = Number(fDate.split('/')[0]);\n const fDateDay = Number(fDate.split('/')[1]);\n const fDateYear = Number(fDate.split('/')[2]);\n if (\n fDateYear === dateYear &&\n fDateMonth === dateMonth &&\n fDateDay < Number(pushDate.split('/')[1])\n ) {\n pushDate = fDate;\n }\n });\n if (pushDate !== '12/31/9999') {\n dates.push(pushDate);\n }\n });\n dates = [...new Set(dates)];\n dates.sort((a, b) => new Date(b) - new Date(a));\n let dateArr = [];\n for (let x = 0; x < dates.length; x++) {\n if (\n x === dates.length - 1 ||\n Number(dates[x].split('/')[2]) !== Number(dates[x + 1].split('/')[2])\n ) {\n dateArr.push(dates[x]);\n }\n }\n dateArr.sort((a, b) => new Date(a) - new Date(b));\n const returnObject = dateArr.map((date) => {\n let timelines = [];\n let subThreads = [];\n object.forEach((obj) => {\n if (formatDate(obj.date) === formatDate(date)) {\n timelines.push(obj.timeline);\n subThreads.push(obj.subThread);\n }\n });\n return {\n date: date,\n timelines: timelines,\n subThread: subThreads\n };\n });\n return returnObject;\n }\n\n const Today = (object) => {\n const dateList = [];\n object &&\n object.map((item) => {\n dateList.push(item.date);\n });\n\n let unique = [...new Set(dateList)];\n\n const today = new Date().toLocaleDateString('en-US');\n\n //const todaysDate = unique.filter(date => date.includes('7/29/2022'));\n const todaysDate = unique.filter((date) => date.includes(today));\n\n return todaysDate;\n };\n\n const getInverseProportionalNumber = (inputNumber) => {\n const reciprocal = 1 / inputNumber;\n const wholeNumber = Math.round(reciprocal * 400);\n return wholeNumber;\n };\n\n const visualizationSmall = 10;\n const visualizationLarge = 30;\n const rangeHandles = 18;\n const adjusterHeight = 100;\n\n // Plot category lines\n const GuideLinesShort = () => {\n const xLines = buildCategoryLines().map((item, index) => {\n return (\n <div\n key={index}\n style={{\n position: 'absolute',\n zIndex: 0,\n top: 186 * index\n }}\n >\n <div\n className={classes.horizontalDash}\n style={{ height: threadHeight }}\n />\n <div\n style={{\n //width: 'calc(100vw * 1.7)',\n width:\n // dataConvertedDate &&\n // mergePlots.slice(-1).pop().plots * nodeWidth,\n filteredByDate &&\n uniqueNodeScaleAmount * getXScale() + getXScale(),\n height: threadHeight,\n borderBottom: `${theme.palette.divider} 1px solid`\n }}\n />\n </div>\n );\n });\n\n return xLines;\n };\n\n const preloadArray = [...Array(7).keys()];\n\n //Format visualization hover card\n const VisualizationCard = ({ title, data, date, user }) => {\n return (\n <div>\n <Typography variant='subtitle2'> {title} </Typography>\n <div>\n <Typography variant='caption'> {data} </Typography>\n </div>\n <div>\n <Typography variant='caption'> {date} </Typography>\n </div>\n <div>\n <Typography variant='caption'> {user} </Typography>\n </div>\n </div>\n );\n };\n\n const VisualizationCardMulti = ({ title, data, date, user }) => {\n return (\n <div\n style={{\n width: 130,\n borderRadius: 4,\n marginBottom: 16,\n padding: 8\n }}\n >\n <div>\n <Typography variant='subtitle2'> {title} </Typography>\n </div>\n <div>\n <Typography variant='caption'> {data} </Typography>\n </div>\n <div>\n <Typography variant='caption'> {date} </Typography>\n </div>\n <div>\n <Typography variant='caption'> {user} </Typography>\n </div>\n </div>\n );\n };\n\n // Plot Legend\n\n const categoryList = [];\n data &&\n filteredByDate.map((item) => {\n categoryList.push({\n label: item.timelineCategoryName,\n color: item.color,\n timeline: item.timeline\n });\n });\n\n const uniqueCategoryLegend = [\n ...new Map(categoryList.map((item) => [item['label'], item])).values()\n ];\n\n const uniqueCategoryLegendSorted = uniqueCategoryLegend.sort((a, b) =>\n a.timeline > b.timeline ? 1 : -1\n );\n\n const LegendDot = ({ background }) => {\n return (\n <div\n style={{\n width: 30,\n height: 15,\n background: lighten(background, 0.5),\n borderRadius: theme.spacing(6)\n }}\n />\n );\n };\n\n const LegendItem = ({ label, color }) => {\n return (\n <div\n style={{\n display: 'flex',\n alignItems: 'center'\n }}\n >\n <LegendDot background={'#' + color} />\n <div style={{ marginLeft: theme.spacing(1) }}>\n <Typography variant='caption'>{label} </Typography>\n </div>\n </div>\n );\n };\n\n const legend =\n data &&\n uniqueCategoryLegendSorted.map((item, index) => {\n return <LegendItem key={index} color={item.color} label={item.label} />;\n });\n\n // Plot category bar\n const plotCategoryBar = (timelineNumber, subThread) => {\n const xLine =\n data &&\n filteredByDate.map((item) => {\n return item.timeline.toString() + '.' + item.subThread.toString();\n });\n\n let unique = [...new Set(xLine)];\n\n const uniqueSorted = unique.sort(function (a, b) {\n return a.localeCompare(b);\n });\n\n const rowIndex = uniqueSorted.reduce(function (s, a) {\n s.push({ thread: a });\n return s;\n }, []);\n\n const concatIndex = timelineNumber + '.' + subThread;\n\n const result = rowIndex.map((v, index) => ({ ...v, rowIndex: index + 1 }));\n const results = result.filter(function (entry) {\n return entry.thread === concatIndex;\n });\n\n //const xplot = results[0].rowIndex * threadHeight;\n const xplot =\n (results[0] && results[0].rowIndex * getXScale()) - getXScale();\n return xplot;\n\n // const plot = (timelineNumber * threadHeight - threadHeight) * subThread;\n // return plot;\n };\n\n const CategoryBar = ({ label, height }) => {\n return (\n <div className={classes.categoryBar} style={{ height: height }}>\n <div className={classes.categoryLabel}>\n <Typography variant='subtitle2'> {label} </Typography>\n </div>\n </div>\n );\n };\n\n const DateMarkers = (\n <div>\n {filteredByDate &&\n showYearMarkers &&\n uniqueNodeScaleAmount >= summaryBreakpoint &&\n firstDayOfYearArray(filteredByDate).map((item, index) => {\n return (\n <div\n key={index}\n style={{\n position: 'absolute',\n bottom: 0,\n left: plotY(item.date)\n }}\n >\n <MttYearTag year>{item.date.split('/')[2]}</MttYearTag>\n </div>\n );\n })}\n {filteredByDate &&\n uniqueNodeScaleAmount >= summaryBreakpoint &&\n showMonthMarkers &&\n lastDayOfMonthArray(filteredByDate).map((item, index) => {\n return (\n <div\n key={index}\n style={{\n position: 'absolute',\n bottom: 0,\n left: plotY(item.date)\n }}\n >\n <MttYearTag>\n {convertNumberToMonths([item.date.split('/')[0]])}\n </MttYearTag>\n </div>\n );\n })}\n\n {filteredByDate &&\n uniqueNodeScaleAmount >= summaryBreakpoint &&\n Today(filteredByDate).map((item) => {\n return (\n <div\n style={{\n position: 'absolute',\n bottom: 0,\n left: plotY(item)\n }}\n >\n <MttYearTag year today>\n <Typography variant='caption'> TODAY </Typography>\n </MttYearTag>\n </div>\n );\n })}\n </div>\n );\n\n // timeline render\n return (\n <div>\n <div\n ref={mainContainer}\n style={{\n position: 'relative',\n // top: 45,\n height: '75vh',\n overflow: 'scroll'\n }}\n >\n {/* CategoryBar */}\n {!loading && (\n <>\n <div style={{ zIndex: 99999999, position: 'absolute', bottom: 0 }}>\n {DateMarkers}\n </div>\n\n {data &&\n data &&\n uniqueNodeScaleAmount < summaryBreakpoint &&\n filteredByDate.map((item, index) => {\n return (\n <div\n key={index}\n className={classes.categoryBarPlacement}\n style={{\n top:\n plotCategoryBar(\n Number(item.timeline),\n Number(item.subThread)\n ) + 0\n }}\n >\n <CategoryBar\n key={item.id}\n label={item.timelineCategoryName}\n height={data && getXScale()}\n />\n </div>\n );\n })}\n\n {data &&\n filteredByDate.map((item, index) => {\n return item.dates.length === 1 ? (\n <div\n key={index}\n style={{\n position: 'absolute',\n left: plotY(\n new Date(item.date).toLocaleDateString('en-US')\n ),\n top: plotX(item.timeline, item.subThread),\n //top: 0,\n zIndex:\n 999999 -\n plotY(new Date(item.date).toLocaleDateString('en-US')) -\n item.subThread\n //zIndex: 9999999 - index * index,\n }}\n >\n <TimelineNode\n icon={\n <IconRenderer\n noBorder\n value={{\n color: { hex: '#' + item.color },\n name: item.iconID\n }}\n />\n }\n dot={data && uniqueNodeScaleAmount <= overviewBreakpoint}\n dotColor={'#' + item.color}\n data={item.dates}\n details={\n data && uniqueNodeScaleAmount < summaryBreakpoint\n }\n height={\n (data &&\n uniqueNodeScaleAmount <= summaryBreakpoint &&\n 183) ||\n (data &&\n uniqueNodeScaleAmount <= overviewBreakpoint &&\n 30)\n }\n width={\n data && uniqueNodeScaleAmount < summaryBreakpoint && 130\n }\n boxStyle\n show={showAllDetails}\n iconColor={'#' + item.color}\n />\n </div>\n ) : (\n <div key={item.id}>\n <div\n style={{\n position: 'absolute',\n left:\n plotY(\n new Date(item.date).toLocaleDateString('en-US')\n ) + 4,\n top: plotX(item.timeline, item.subThread),\n zIndex:\n 999999 -\n plotY(\n new Date(item.date).toLocaleDateString('en-US')\n ) -\n item.timeline\n }}\n >\n <MultiDot map={item.dates} number={item.dates.length} />\n </div>\n </div>\n );\n })}\n\n <Fade in={data && uniqueNodeScaleAmount >= summaryBreakpoint}>\n <div>\n {data &&\n minnifiedResult.map((item, index) => {\n return (\n <div\n key={index}\n style={{\n position: 'absolute',\n //zIndex: 0,\n left: plotY(item.firstDate) + 2,\n top:\n data && uniqueNodeScaleAmount > overviewBreakpoint\n ? 14 + plotX(item.timeline, item.subThread)\n : 4 + plotX(item.timeline, item.subThread)\n }}\n >\n <TimelineWrapper\n timeline={item.timeline}\n style={{\n width:\n plotY(item.lastDate) - plotY(item.firstDate) + 45,\n height:\n data && uniqueNodeScaleAmount > overviewBreakpoint\n ? 20\n : 40,\n backgroundColor: lighten('#' + item.color, 0.7)\n }}\n />\n </div>\n );\n })}\n </div>\n </Fade>\n {/* <Fade in={data && filteredByDate.length < mttBreakpointMd}> */}\n {data && uniqueNodeScaleAmount < summaryBreakpoint && (\n <div>\n <GuideLinesShort />\n </div>\n )}\n </>\n )}\n {/* </Fade> */}\n </div>\n\n {/* lower Section //////////////////////////////////////////////////////////////////////////////////////////////// */}\n <div style={{ width: 250 }}>\n <HeightAdjuster\n verticalAdjuster={verticalAdjuster}\n setVerticalAdjuster={setVerticalAdjuster}\n />\n </div>\n\n {!loading && (\n <div\n style={{\n position: 'relative',\n borderTop: '1px solid lightgrey',\n overflow: 'scroll'\n }}\n >\n <div>\n {data && displayRangeFilter && (\n <div\n style={{\n overflow: 'scroll'\n }}\n >\n <div key={data}>\n <DynamicRangeSlider\n id='range-slider'\n step={10}\n threads={10 * uniqueTimelines}\n width={containerWidth - rangeHandles}\n margin={\n topMargin +\n getInverseProportionalNumber(verticalAdjuster) * 3\n }\n defaultValue={[10, unique.length * 10]}\n max={unique.length * 10}\n min={10}\n onThumbDragEnd={processRangeValues}\n onRangeDragEnd={processRangeValues}\n onInput={(e) => getRangeValues(e)}\n />\n </div>\n </div>\n )}\n\n <div>\n {data &&\n data.map((item, index) => {\n return item.dates.length === 1 ? (\n <div\n key={index}\n style={{\n position: 'absolute',\n left:\n dataConvertedDate &&\n plotYV(\n new Date(item.date).toLocaleDateString('en-US')\n ) *\n (containerWidth / unique.length) -\n (visualizationSmall + rangeHandles),\n top:\n plotXV(item.timeline, item.subThread) /\n verticalAdjuster +\n visualizationYScale +\n adjusterHeight\n }}\n >\n <VisualizationDot\n type={item.dates[0].details.shortDescription}\n hover={\n <VisualizationCard\n title={item.dates[0].details.shortDescription}\n data={item.dates[0].details.data1}\n date={item.dates[0].details.date}\n //user={item.dates[0].details.data2}\n />\n }\n />\n </div>\n ) : (\n <div key={item.id}>\n <div\n style={{\n position: 'absolute',\n left:\n dataConvertedDate &&\n plotYV(\n new Date(item.date).toLocaleDateString('en-US')\n ) *\n (containerWidth / unique.length) -\n (visualizationSmall + rangeHandles),\n top:\n plotXV(item.timeline, item.subThread) /\n verticalAdjuster +\n visualizationYScale +\n adjusterHeight\n }}\n >\n <VisualizationDot\n hover={\n <div style={{ color: 'black' }}>\n {item.dates.map((item) => {\n return (\n <VisualizationCardMulti\n title={item.details.description}\n date={item.details.date}\n key={item.id}\n />\n );\n })}\n </div>\n }\n multi\n >\n {item.dates.length}\n </VisualizationDot>\n </div>\n </div>\n );\n })}\n </div>\n </div>\n </div>\n )}\n\n {/* Preloading */}\n <div style={{ position: 'absolute', top: 0, left: 0, zIndex: 10 }}>\n {loading &&\n preloadArray.map((item, index) => {\n return (\n <div\n key={index}\n style={{\n position: 'absolute',\n left: Math.floor(Math.random() * 11) * 60 + 40,\n top: (index + 1) * 80\n }}\n >\n <TimelinePreloaderNode longView loading={loading} />\n </div>\n );\n })}\n </div>\n {/* Preloading End */}\n\n {/* Legend */}\n {uniqueNodeScaleAmount >= summaryBreakpoint && (\n <div\n style={{\n position: 'absolute',\n right: 0,\n top: 0,\n zIndex: 999999999,\n background: 'white',\n borderRadius: 4\n }}\n >\n <div\n style={{\n display: 'flex',\n padding: theme.spacing(1),\n gap: theme.spacing(3)\n }}\n >\n {legend}\n\n <Button\n className={classes.button}\n onClick={() => setShowMonthMarkers(!showMonthMarkers)}\n >\n <span\n style={{ textDecoration: !showMonthMarkers && 'line-through' }}\n >\n M\n </span>\n </Button>\n <Button\n className={classes.button}\n onClick={() => setShowYearMarkers(!showYearMarkers)}\n >\n <span\n style={{ textDecoration: !showYearMarkers && 'line-through' }}\n >\n Y\n </span>\n </Button>\n </div>\n </div>\n )}\n {/* Breakpoint testing */}\n {/* <div\n style={{\n position: 'absolute',\n left: 0,\n top: 0,\n zIndex: 999999999,\n background: 'white',\n borderRadius: 4,\n }}\n >\n <Typography variant=\"caption\">\n Data nodes:\n <span style={{ fontWeight: 700 }}>\n {filteredByDate.length} ::::::::::\n </span>\n <span style={{ fontWeight: 700 }}>\n {uniqueNodeScaleAmount} ::::::::::\n </span>\n Summary Breakpoint:\n <span style={{ fontWeight: 700 }}>\n {summaryBreakpoint} ::::::::::\n </span>\n Overview Breakpoint:\n <span style={{ fontWeight: 700 }}>{overviewBreakpoint} ::::::::</span>\n Container Width:\n <span style={{ fontWeight: 700 }}>{containerWidth} :::::::::</span>\n Summary Width: Circle\n <span style={{ fontWeight: 700 }}>\n {summaryComponentSize} ::::::::\n </span>\n Overview width: Dot\n <span style={{ fontWeight: 700 }}>\n {overviewComponentSize} :::::::\n </span>\n </Typography>\n </div> */}\n </div>\n );\n});\n","import React, { useCallback, useEffect, useState } from 'react';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { formatDataWithTimelineCategoryNameOrderedByDate } from '../functions/mttFunctions';\nimport { MttTimeline } from './MttTimeline';\nimport { ConfigService } from '../../../configService';\n\nexport const MttMainTimeline = (props) => {\n const { timelineApiMethodInstanceId, params = {} } = props;\n const [timelineThreads, setTimelineThreads] = useState(null);\n const [data, setData] = useState();\n const [loading, setLoading] = useState(false);\n\n const executeQueryInstance = useCallback(\n async (apiMethodInstanceId, data = {}) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryInstance/${apiMethodInstanceId}`,\n {\n method: 'post'\n },\n { data: data }\n ),\n []\n );\n\n useEffect(() => {\n const fetchTimelineThreads = async () => {\n const timelineResponse = await executeQueryInstance(\n timelineApiMethodInstanceId\n ).catch((e) => e);\n\n if (timelineResponse?.status === 200) {\n setTimelineThreads(timelineResponse?.data?.pageList || []);\n }\n };\n fetchTimelineThreads();\n }, [executeQueryInstance, timelineApiMethodInstanceId]);\n\n useEffect(() => {\n const fetchThreadEvents = async () => {\n if (!timelineThreads) {\n return null;\n }\n setLoading(true);\n const promises = [];\n const threadList = [];\n timelineThreads.forEach((thread) => {\n promises.push(executeQueryInstance(thread.queryID, { ...params }));\n });\n await Promise.all(\n promises.map((p) =>\n p.catch((e) => {\n setLoading(false);\n return e;\n })\n )\n ).then((responses) => {\n responses.forEach((response, index) => {\n if (response.status === 200) {\n const timelineThread = timelineThreads[index];\n if (response?.data?.pageList) {\n response.data.pageList.forEach(\n (evt) => (evt.threadId = timelineThread.name)\n );\n const thread = {\n ...timelineThread,\n events: response.data.pageList\n };\n threadList.push(thread);\n }\n }\n });\n setLoading(false);\n });\n setData(formatDataWithTimelineCategoryNameOrderedByDate(threadList));\n };\n fetchThreadEvents();\n }, [executeQueryInstance, timelineThreads, params]);\n\n return <MttTimeline data={data} loading={loading} />;\n};\n"],"mappings":"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"}
@@ -2,9 +2,9 @@ import { t as ConfigService } from "./configService-C4uoG3wj.js";
2
2
  import { t as apiMutate } from "./useAxiosMutate-DeqKSi5z.js";
3
3
  import { t as LayoutUnit } from "./LayoutUnit-D4jJvonh.js";
4
4
  import { t as formatDataWithTimelineCategoryName } from "./mttFunctions-ioZ0_5JX.js";
5
- import { t as IconRenderer } from "./IconRenderer-B6ZoqrTX.js";
5
+ import { t as IconRenderer } from "./IconRenderer-JdCm70xC.js";
6
6
  import { t as MttYearTag } from "./MttYearTag-Cw8OyKTy.js";
7
- import { n as DateWrapper, o as SummaryToken, r as TimelineTopRowFilter, t as CircleButton } from "./CircleButton-cl6mmDmn.js";
7
+ import { n as DateWrapper, o as SummaryToken, r as TimelineTopRowFilter, t as CircleButton } from "./CircleButton-B9JAMG53.js";
8
8
  import React, { useCallback, useEffect, useMemo, useState } from "react";
9
9
  import { CardContent, LinearProgress, Typography, makeStyles } from "@material-ui/core";
10
10
  import { Link as Link$1 } from "react-router-dom";
@@ -253,4 +253,4 @@ MttSummary.propTypes = { timelineApiMethodInstanceId: PropTypes.string.isRequire
253
253
 
254
254
  //#endregion
255
255
  export { createTimeline as n, MttSummary as t };
256
- //# sourceMappingURL=MttSummary-Ctibq7Eu.js.map
256
+ //# sourceMappingURL=MttSummary-DWESRW7k.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MttSummary-Ctibq7Eu.js","names":["uuid","data","filterListGroup","Link","item"],"sources":["../src/componentSystems/multiThreadTimeline/timeline.ts","../src/componentSystems/multiThreadTimeline/mttSummary/MttSummary.jsx"],"sourcesContent":["interface Event {\n id: string | undefined;\n eventTypeID: string | undefined;\n primaryContextID: string | undefined;\n secondaryContextID: string | undefined;\n date: string | undefined;\n transactionType: string | undefined;\n description: string | undefined;\n shortDescription: string | undefined;\n status: number | undefined;\n data1: '';\n}\n\ninterface Thread {\n id: string | undefined;\n name: string | undefined;\n inSummary: boolean;\n queryID: string | undefined;\n iconID: string | undefined;\n mttConfigID: string | undefined;\n events: Array<Event> | undefined;\n}\n\nexport interface Timeline {\n threads: Array<Thread> | undefined;\n}\n\nexport const createTimeline = (threads: Array<any>): Timeline => {\n return { threads };\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { IconRenderer } from '../../../UI/templates/ui/renderers/IconRenderer';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport { createTimeline } from '../timeline.ts';\nimport { SummaryToken } from '../ui/SummaryToken';\nimport {\n CardContent,\n LinearProgress,\n Typography,\n makeStyles\n} from '@material-ui/core';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport { TimelineTopRowFilter } from '../ui/TimelineTopRowFilter';\nimport { DateWrapper } from '../ui/DateWrapper';\nimport { CircleButton } from '../ui/CircleButton';\nimport { RedEyeIcon } from '@fluentui/react-icons';\nimport { Link } from 'react-router-dom';\nimport { formatDataWithTimelineCategoryName } from '../functions/mttFunctions';\nimport { MttYearTag } from '../ui/MttYearTag';\nimport PropTypes from 'prop-types';\nimport { v4 as uuid } from 'uuid';\nimport { ConfigService } from '../../../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n wrapper: {\n background: theme.palette.common.white,\n borderRadius: theme.spacing(0.5),\n overflow: 'hidden'\n },\n launch: {\n marginLeft: theme.spacing(8)\n }\n}));\n\nexport const MttSummary = (props) => {\n const {\n timelineApiMethodInstanceId,\n insightPath = '/mtt-main',\n params\n } = props;\n const [data, setData] = useState([]);\n const [timelineThreads, setTimelineThreads] = useState(null);\n const [timeline, setTimeline] = useState(null);\n const [loading, setLoading] = useState(false);\n const [filters, setFilters] = useState([]);\n const [allFilters, setAllFilters] = useState([]);\n const [compact, setCompact] = useState(true);\n const [filterListGroup, setFilterListGroup] = useState();\n const [filterKey, setFilterKey] = useState(uuid());\n\n const classes = useStyles();\n const preloadLength = 11;\n\n const executeQueryInstance = useCallback(\n async (apiMethodInstanceId, data = {}) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryInstance/${apiMethodInstanceId}`,\n {\n method: 'post'\n },\n { data: data }\n ),\n []\n );\n\n const summaryThreads = useMemo(() => {\n if (!timeline?.threads?.length) {\n return [];\n }\n\n setData(\n formatDataWithTimelineCategoryName(\n timeline.threads.filter((thread) => thread.inSummary)\n )\n );\n return timeline.threads.filter((thread) => thread.inSummary);\n }, [timeline]);\n\n const summaryEvents = useMemo(() => {\n if (!summaryThreads.length) {\n return [];\n }\n return summaryThreads.map((st) => st.events).flat();\n }, [summaryThreads]);\n\n // Get Filter Array\n let filterItems = [];\n summaryThreads &&\n summaryThreads.map((item) => {\n filterItems.push(item.name);\n });\n\n const addFilter = (filter) => {\n if (filters.includes(filter)) {\n const updatedFilter = filters.filter((e) => e !== filter);\n setFilters(updatedFilter);\n } else {\n setFilters([...filters, filter]);\n }\n };\n\n const clearFilters = useCallback(() => {\n setFilters([]);\n }, []);\n\n useEffect(() => {\n const fetchTimelineThreads = async () => {\n const timelineResponse = await executeQueryInstance(\n timelineApiMethodInstanceId\n );\n\n if (timelineResponse?.status === 200) {\n setTimelineThreads(timelineResponse?.data?.pageList || []);\n }\n };\n fetchTimelineThreads();\n }, [executeQueryInstance, timelineApiMethodInstanceId]);\n\n useEffect(() => {\n const fetchThreadEvents = async () => {\n if (!timelineThreads) {\n return null;\n }\n setLoading(true);\n const promises = [];\n const threadList = [];\n timelineThreads.forEach((thread) => {\n promises.push(executeQueryInstance(thread.queryID, { ...params }));\n });\n await Promise.all(\n promises.map((p) =>\n p.catch((e) => {\n setLoading(false);\n return e;\n })\n )\n ).then((responses) => {\n responses.forEach((response, index) => {\n if (response.status === 200) {\n const timelineThread = timelineThreads[index];\n if (response?.data?.pageList) {\n response.data.pageList.forEach(\n (evt) => (evt.threadId = timelineThread.name)\n );\n const thread = {\n ...timelineThread,\n events: response.data.pageList\n };\n threadList.push(thread);\n }\n }\n });\n setLoading(false);\n });\n setTimeline(createTimeline(threadList));\n // setData(formatDataWithTimelineCategoryName(threadList))\n };\n fetchThreadEvents();\n }, [executeQueryInstance, timelineThreads, params]);\n\n useEffect(() => {\n const filterList =\n summaryEvents &&\n summaryEvents.map((item) => {\n return item.threadId;\n });\n setAllFilters(filterList);\n setFilters(filterList);\n }, [summaryEvents]);\n\n useEffect(() => {\n const filterListGroup = [];\n summaryEvents &&\n summaryEvents.map((item) => {\n filterListGroup.push({\n name: item.threadId,\n icon: item.icon,\n color: item.color\n });\n });\n\n const key = 'name';\n\n const arrayUniqueByKey = [\n ...new Map(filterListGroup.map((item) => [item[key], item])).values()\n ];\n\n setFilterKey(uuid());\n setFilterListGroup(arrayUniqueByKey);\n }, [summaryEvents]);\n\n const mappedToDetails =\n data &&\n data\n .map((item) => item.dates)\n .flat()\n .map((item) => item.details)\n .flat();\n\n // for Skeleton preloading\n const summaryLength = summaryThreads.length || preloadLength;\n\n const getMembers = (members) => {\n let events = [];\n\n return members\n .map((mem) => {\n const m = { ...mem };\n if (m.events && m.events.length) {\n events = [...events, ...m.events];\n }\n delete m.events;\n return m;\n })\n .concat(events.length ? getMembers(events) : events);\n };\n\n getMembers(summaryThreads);\n\n const dataConvertedFilter =\n mappedToDetails &&\n mappedToDetails.filter((item) => filters?.includes(item.threadId));\n\n // Feed dataConvertedFilter into the grouping function (this should filter the array of objects before they are grouped)\n\n function groupByMonth(object) {\n let finalObject = [];\n object.forEach((el) => {\n let foundFlag = false;\n finalObject.forEach((foEl) => {\n if (\n foEl.month === el.date.split('/')[0] &&\n foEl.year === el.date.split('/')[2]\n ) {\n foEl.details.push(el);\n foundFlag = true;\n }\n });\n if (!foundFlag) {\n finalObject.push({\n month: el.date.split('/')[0],\n year: el.date.split('/')[2],\n details: [el]\n });\n }\n });\n\n return finalObject;\n }\n\n const SkeletonLoading = () => {\n return (\n <div style={{ marginRight: 48 }}>\n <LayoutUnit unit='nudge' />\n <div style={{ display: 'flex', justifyContent: 'center' }}>\n <Skeleton variant='circle' width={30} height={30} />\n </div>\n <LayoutUnit unit='nudge' />\n <div style={{ display: 'flex', justifyContent: 'center' }}>\n <Skeleton variant='rect' width={1} height={25} />\n </div>\n <Skeleton variant='text' />\n <Skeleton variant='text' />\n <LayoutUnit unit='sm' />\n <Skeleton variant='rect' width={80} height={6} />\n </div>\n );\n };\n\n const preLoading = [...Array(summaryLength).keys()].slice(1);\n\n const dataToSort = data && groupByMonth(dataConvertedFilter);\n\n const sorted = dataToSort.sort(\n (a, b) => a.year - b.year || a.month - b.month\n );\n\n const getYears = [];\n data &&\n dataToSort.map((item) => {\n getYears.push({ year: item.year });\n });\n\n const uniqueYears = [...new Set(getYears.map((item) => item.year))];\n\n return (\n <div>\n <div className={classes.wrapper}>\n {loading && <LinearProgress color='secondary' />}\n <CardContent>\n <div\n style={{\n display: 'flex',\n position: 'relative'\n }}\n >\n <div style={{ flex: 1 }}>\n <Typography variant='h6'>Timeline Summary</Typography>\n <LayoutUnit unit='md' />\n </div>\n\n <div style={{ display: 'flex' }}>\n <div key={filterKey}>\n <TimelineTopRowFilter\n compact={compact}\n setCompact={setCompact}\n onClose={() => setCompact(!compact)}\n filterCall={(type) => addFilter(type)}\n clear={clearFilters}\n filterList={filterItems && filterItems}\n filterListGroup={filterListGroup && filterListGroup}\n />\n </div>\n <div className={classes.launch}>\n <CircleButton\n component={Link}\n to={{\n pathname: insightPath,\n state: {\n timelineApiMethodInstanceId: timelineApiMethodInstanceId\n }\n }}\n >\n <RedEyeIcon />\n </CircleButton>\n </div>\n </div>\n </div>\n <div\n style={{ display: 'flex', overflow: 'scroll', direction: 'rtl' }}\n >\n <div style={{ direction: 'ltr', display: 'flex' }}>\n {loading &&\n preLoading.map((item) => {\n return <SkeletonLoading key={item} />;\n })}\n\n {uniqueYears.map((uniqueYear, index) => (\n <div style={{ display: 'flex' }}>\n {!loading && (\n <MttYearTag year count={12}>\n {uniqueYear}\n </MttYearTag>\n )}\n {summaryEvents &&\n data &&\n sorted.map((item) => {\n if (item.year === uniqueYears[index]) {\n return (\n <DateWrapper\n months={Number(item.month)}\n count={item.details.length}\n >\n {item.details.map((item) => {\n return (\n <div key={item.id}>\n <SummaryToken\n showMonth\n months={[item.date]}\n summary\n icon={\n <IconRenderer\n //noBorder\n removeMargin\n value={{\n color: { hex: '#' + item.color },\n //name: item.icon ? item.icon : 'MessageIcon',\n name: item.icon\n }}\n />\n }\n showToken\n status={\n item.data1 &&\n item.data1.toString().trim() !== ''\n ? null\n : Number(item.data2)\n }\n timelineItem={item.transactionType}\n title={item.shortDescription}\n date={item.date}\n dot={false}\n relative\n amount={item.data1}\n month={Number(item.date.charAt(0))}\n user={item.data3}\n balance={item.data4}\n hidebackground\n />\n </div>\n );\n })}\n </DateWrapper>\n );\n } else return null;\n })}\n </div>\n ))}\n </div>\n </div>\n </CardContent>\n </div>\n </div>\n );\n};\n\nMttSummary.propTypes = {\n timelineApiMethodInstanceId: PropTypes.string.isRequired\n};\n"],"mappings":"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"}
1
+ {"version":3,"file":"MttSummary-DWESRW7k.js","names":["uuid","data","filterListGroup","Link","item"],"sources":["../src/componentSystems/multiThreadTimeline/timeline.ts","../src/componentSystems/multiThreadTimeline/mttSummary/MttSummary.jsx"],"sourcesContent":["interface Event {\n id: string | undefined;\n eventTypeID: string | undefined;\n primaryContextID: string | undefined;\n secondaryContextID: string | undefined;\n date: string | undefined;\n transactionType: string | undefined;\n description: string | undefined;\n shortDescription: string | undefined;\n status: number | undefined;\n data1: '';\n}\n\ninterface Thread {\n id: string | undefined;\n name: string | undefined;\n inSummary: boolean;\n queryID: string | undefined;\n iconID: string | undefined;\n mttConfigID: string | undefined;\n events: Array<Event> | undefined;\n}\n\nexport interface Timeline {\n threads: Array<Thread> | undefined;\n}\n\nexport const createTimeline = (threads: Array<any>): Timeline => {\n return { threads };\n};\n","import React, { useCallback, useEffect, useMemo, useState } from 'react';\nimport { apiMutate } from '../../../utilities/useAxiosMutate';\nimport { IconRenderer } from '../../../UI/templates/ui/renderers/IconRenderer';\nimport { LayoutUnit } from '../../../layout/LayoutUnit';\nimport { createTimeline } from '../timeline.ts';\nimport { SummaryToken } from '../ui/SummaryToken';\nimport {\n CardContent,\n LinearProgress,\n Typography,\n makeStyles\n} from '@material-ui/core';\nimport Skeleton from '@material-ui/lab/Skeleton';\nimport { TimelineTopRowFilter } from '../ui/TimelineTopRowFilter';\nimport { DateWrapper } from '../ui/DateWrapper';\nimport { CircleButton } from '../ui/CircleButton';\nimport { RedEyeIcon } from '@fluentui/react-icons';\nimport { Link } from 'react-router-dom';\nimport { formatDataWithTimelineCategoryName } from '../functions/mttFunctions';\nimport { MttYearTag } from '../ui/MttYearTag';\nimport PropTypes from 'prop-types';\nimport { v4 as uuid } from 'uuid';\nimport { ConfigService } from '../../../configService';\n\nconst useStyles = makeStyles((theme) => ({\n root: {},\n wrapper: {\n background: theme.palette.common.white,\n borderRadius: theme.spacing(0.5),\n overflow: 'hidden'\n },\n launch: {\n marginLeft: theme.spacing(8)\n }\n}));\n\nexport const MttSummary = (props) => {\n const {\n timelineApiMethodInstanceId,\n insightPath = '/mtt-main',\n params\n } = props;\n const [data, setData] = useState([]);\n const [timelineThreads, setTimelineThreads] = useState(null);\n const [timeline, setTimeline] = useState(null);\n const [loading, setLoading] = useState(false);\n const [filters, setFilters] = useState([]);\n const [allFilters, setAllFilters] = useState([]);\n const [compact, setCompact] = useState(true);\n const [filterListGroup, setFilterListGroup] = useState();\n const [filterKey, setFilterKey] = useState(uuid());\n\n const classes = useStyles();\n const preloadLength = 11;\n\n const executeQueryInstance = useCallback(\n async (apiMethodInstanceId, data = {}) =>\n apiMutate(\n ConfigService.integrationV1ApiUrl,\n `apimethod/executeQueryInstance/${apiMethodInstanceId}`,\n {\n method: 'post'\n },\n { data: data }\n ),\n []\n );\n\n const summaryThreads = useMemo(() => {\n if (!timeline?.threads?.length) {\n return [];\n }\n\n setData(\n formatDataWithTimelineCategoryName(\n timeline.threads.filter((thread) => thread.inSummary)\n )\n );\n return timeline.threads.filter((thread) => thread.inSummary);\n }, [timeline]);\n\n const summaryEvents = useMemo(() => {\n if (!summaryThreads.length) {\n return [];\n }\n return summaryThreads.map((st) => st.events).flat();\n }, [summaryThreads]);\n\n // Get Filter Array\n let filterItems = [];\n summaryThreads &&\n summaryThreads.map((item) => {\n filterItems.push(item.name);\n });\n\n const addFilter = (filter) => {\n if (filters.includes(filter)) {\n const updatedFilter = filters.filter((e) => e !== filter);\n setFilters(updatedFilter);\n } else {\n setFilters([...filters, filter]);\n }\n };\n\n const clearFilters = useCallback(() => {\n setFilters([]);\n }, []);\n\n useEffect(() => {\n const fetchTimelineThreads = async () => {\n const timelineResponse = await executeQueryInstance(\n timelineApiMethodInstanceId\n );\n\n if (timelineResponse?.status === 200) {\n setTimelineThreads(timelineResponse?.data?.pageList || []);\n }\n };\n fetchTimelineThreads();\n }, [executeQueryInstance, timelineApiMethodInstanceId]);\n\n useEffect(() => {\n const fetchThreadEvents = async () => {\n if (!timelineThreads) {\n return null;\n }\n setLoading(true);\n const promises = [];\n const threadList = [];\n timelineThreads.forEach((thread) => {\n promises.push(executeQueryInstance(thread.queryID, { ...params }));\n });\n await Promise.all(\n promises.map((p) =>\n p.catch((e) => {\n setLoading(false);\n return e;\n })\n )\n ).then((responses) => {\n responses.forEach((response, index) => {\n if (response.status === 200) {\n const timelineThread = timelineThreads[index];\n if (response?.data?.pageList) {\n response.data.pageList.forEach(\n (evt) => (evt.threadId = timelineThread.name)\n );\n const thread = {\n ...timelineThread,\n events: response.data.pageList\n };\n threadList.push(thread);\n }\n }\n });\n setLoading(false);\n });\n setTimeline(createTimeline(threadList));\n // setData(formatDataWithTimelineCategoryName(threadList))\n };\n fetchThreadEvents();\n }, [executeQueryInstance, timelineThreads, params]);\n\n useEffect(() => {\n const filterList =\n summaryEvents &&\n summaryEvents.map((item) => {\n return item.threadId;\n });\n setAllFilters(filterList);\n setFilters(filterList);\n }, [summaryEvents]);\n\n useEffect(() => {\n const filterListGroup = [];\n summaryEvents &&\n summaryEvents.map((item) => {\n filterListGroup.push({\n name: item.threadId,\n icon: item.icon,\n color: item.color\n });\n });\n\n const key = 'name';\n\n const arrayUniqueByKey = [\n ...new Map(filterListGroup.map((item) => [item[key], item])).values()\n ];\n\n setFilterKey(uuid());\n setFilterListGroup(arrayUniqueByKey);\n }, [summaryEvents]);\n\n const mappedToDetails =\n data &&\n data\n .map((item) => item.dates)\n .flat()\n .map((item) => item.details)\n .flat();\n\n // for Skeleton preloading\n const summaryLength = summaryThreads.length || preloadLength;\n\n const getMembers = (members) => {\n let events = [];\n\n return members\n .map((mem) => {\n const m = { ...mem };\n if (m.events && m.events.length) {\n events = [...events, ...m.events];\n }\n delete m.events;\n return m;\n })\n .concat(events.length ? getMembers(events) : events);\n };\n\n getMembers(summaryThreads);\n\n const dataConvertedFilter =\n mappedToDetails &&\n mappedToDetails.filter((item) => filters?.includes(item.threadId));\n\n // Feed dataConvertedFilter into the grouping function (this should filter the array of objects before they are grouped)\n\n function groupByMonth(object) {\n let finalObject = [];\n object.forEach((el) => {\n let foundFlag = false;\n finalObject.forEach((foEl) => {\n if (\n foEl.month === el.date.split('/')[0] &&\n foEl.year === el.date.split('/')[2]\n ) {\n foEl.details.push(el);\n foundFlag = true;\n }\n });\n if (!foundFlag) {\n finalObject.push({\n month: el.date.split('/')[0],\n year: el.date.split('/')[2],\n details: [el]\n });\n }\n });\n\n return finalObject;\n }\n\n const SkeletonLoading = () => {\n return (\n <div style={{ marginRight: 48 }}>\n <LayoutUnit unit='nudge' />\n <div style={{ display: 'flex', justifyContent: 'center' }}>\n <Skeleton variant='circle' width={30} height={30} />\n </div>\n <LayoutUnit unit='nudge' />\n <div style={{ display: 'flex', justifyContent: 'center' }}>\n <Skeleton variant='rect' width={1} height={25} />\n </div>\n <Skeleton variant='text' />\n <Skeleton variant='text' />\n <LayoutUnit unit='sm' />\n <Skeleton variant='rect' width={80} height={6} />\n </div>\n );\n };\n\n const preLoading = [...Array(summaryLength).keys()].slice(1);\n\n const dataToSort = data && groupByMonth(dataConvertedFilter);\n\n const sorted = dataToSort.sort(\n (a, b) => a.year - b.year || a.month - b.month\n );\n\n const getYears = [];\n data &&\n dataToSort.map((item) => {\n getYears.push({ year: item.year });\n });\n\n const uniqueYears = [...new Set(getYears.map((item) => item.year))];\n\n return (\n <div>\n <div className={classes.wrapper}>\n {loading && <LinearProgress color='secondary' />}\n <CardContent>\n <div\n style={{\n display: 'flex',\n position: 'relative'\n }}\n >\n <div style={{ flex: 1 }}>\n <Typography variant='h6'>Timeline Summary</Typography>\n <LayoutUnit unit='md' />\n </div>\n\n <div style={{ display: 'flex' }}>\n <div key={filterKey}>\n <TimelineTopRowFilter\n compact={compact}\n setCompact={setCompact}\n onClose={() => setCompact(!compact)}\n filterCall={(type) => addFilter(type)}\n clear={clearFilters}\n filterList={filterItems && filterItems}\n filterListGroup={filterListGroup && filterListGroup}\n />\n </div>\n <div className={classes.launch}>\n <CircleButton\n component={Link}\n to={{\n pathname: insightPath,\n state: {\n timelineApiMethodInstanceId: timelineApiMethodInstanceId\n }\n }}\n >\n <RedEyeIcon />\n </CircleButton>\n </div>\n </div>\n </div>\n <div\n style={{ display: 'flex', overflow: 'scroll', direction: 'rtl' }}\n >\n <div style={{ direction: 'ltr', display: 'flex' }}>\n {loading &&\n preLoading.map((item) => {\n return <SkeletonLoading key={item} />;\n })}\n\n {uniqueYears.map((uniqueYear, index) => (\n <div style={{ display: 'flex' }}>\n {!loading && (\n <MttYearTag year count={12}>\n {uniqueYear}\n </MttYearTag>\n )}\n {summaryEvents &&\n data &&\n sorted.map((item) => {\n if (item.year === uniqueYears[index]) {\n return (\n <DateWrapper\n months={Number(item.month)}\n count={item.details.length}\n >\n {item.details.map((item) => {\n return (\n <div key={item.id}>\n <SummaryToken\n showMonth\n months={[item.date]}\n summary\n icon={\n <IconRenderer\n //noBorder\n removeMargin\n value={{\n color: { hex: '#' + item.color },\n //name: item.icon ? item.icon : 'MessageIcon',\n name: item.icon\n }}\n />\n }\n showToken\n status={\n item.data1 &&\n item.data1.toString().trim() !== ''\n ? null\n : Number(item.data2)\n }\n timelineItem={item.transactionType}\n title={item.shortDescription}\n date={item.date}\n dot={false}\n relative\n amount={item.data1}\n month={Number(item.date.charAt(0))}\n user={item.data3}\n balance={item.data4}\n hidebackground\n />\n </div>\n );\n })}\n </DateWrapper>\n );\n } else return null;\n })}\n </div>\n ))}\n </div>\n </div>\n </CardContent>\n </div>\n </div>\n );\n};\n\nMttSummary.propTypes = {\n timelineApiMethodInstanceId: PropTypes.string.isRequired\n};\n"],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { n as MyExportsPage_default, t as MyExportsPage } from "./MyExportsPage-BwcVZASe.js";
2
+
3
+ export { MyExportsPage, MyExportsPage_default as default };
@@ -6,11 +6,11 @@ import { t as useAxiosGet } from "./useAxiosGet-CYnt6Hd0.js";
6
6
  import { i as executeQueryWithParameters } from "./methodUtils-CDx9usdO.js";
7
7
  import { t as FluentDialog } from "./FluentDialog-B5ZxvX1E.js";
8
8
  import { t as ActionsRenderer } from "./ActionsRenderer-DbrPKZ1o.js";
9
- import { t as TableContainer } from "./TableContainer-CcBkqd33.js";
9
+ import { t as TableContainer } from "./TableContainer-CcHjtMCa.js";
10
10
  import { t as AmbientAutoComplete } from "./AmbientAutoComplete-TYJ_JlO5.js";
11
11
  import { t as AmbientAlert } from "./AmbientAlert-DcYkGCUm.js";
12
12
  import { t as EmptyStateDisplay } from "./EmptyStateDisplay-YOwCw38_.js";
13
- import { t as StatusCellRenderer } from "./StatusCellRenderer-CVOARrth.js";
13
+ import { t as StatusCellRenderer } from "./StatusCellRenderer-BuPuvngw.js";
14
14
  import React, { useCallback, useEffect, useMemo, useState } from "react";
15
15
  import { DownloadIcon, ErrorIcon, StatusCircleCheckmarkIcon } from "@fluentui/react-icons";
16
16
 
@@ -213,4 +213,4 @@ var MyExportsPage_default = MyExportsPage;
213
213
 
214
214
  //#endregion
215
215
  export { MyExportsPage_default as n, MyExportsPage as t };
216
- //# sourceMappingURL=MyExportsPage-DAYh16lE.js.map
216
+ //# sourceMappingURL=MyExportsPage-BwcVZASe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"MyExportsPage-DAYh16lE.js","names":[],"sources":["../src/udp/export/MyExportsPage.jsx"],"sourcesContent":["import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport {\n StatusCircleCheckmarkIcon,\n ErrorIcon,\n DownloadIcon\n} from '@fluentui/react-icons';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { FluentDialog } from '../../UI/feedback/FluentDialog';\nimport { EmptyStateDisplay } from '../../UI/dataDisplay/EmptyStateDisplay';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { ActionsRenderer } from '../../UI/templates/ui/renderers/ActionsRenderer';\nimport { AmbientAlert } from '../../UI/feedback/AmbientAlert';\nimport { TableContainer } from '../../maintenanceEngine/tableBrowser/TableContainer';\nimport { StatusCellRenderer } from '../../UI/templates/ui/renderers/StatusCellRenderer';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { AmbientAutoComplete } from '../../UI/inputs/textField/AmbientAutoComplete';\nimport { executeQueryWithParameters } from '../utilities/methodUtils';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { ConfigService } from '../../configService';\n\nexport const MyExportsPage = (props) => {\n const { productId } = props;\n const user = useUser();\n const [product, setProduct] = useState();\n const [downloadLinkLoading, setDownloadLinkLoading] = useState(false);\n const [fileResultData, setFileResultData] = useState();\n const [downloadOpen, setDownloadOpen] = useState(false);\n const [noDownloadMethod, setNoDownloadMethod] = useState(false);\n\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const [{ data: products, loading: productsLoading }] = useAxiosGet(\n ConfigService.tenantV2ApiUrl,\n `tenant/products?tenantId=${user?.currentTenantId}&isSubscribable=${!user\n ?.can?.CAN_MANAGE_CATALOGS_FOR_UNSUBSCRIBABLE_PRODUCTS}`,\n {},\n !user\n );\n\n const [{ data: apiCatalog, loading: catalogLoading, error: catalogError }] =\n useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${\n productId ? productId : product?.productId\n }`,\n {},\n !(product || productId),\n false\n );\n\n const [{ data: udpJobEntity, loading: jobEntityLoading }] = useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${apiCatalog?.apiCatalogId}/promotedMethodEntities/udpJob/product/${apiCatalog?.productId}?compareSanitizedName=true`,\n {},\n !apiCatalog?.productId || !apiCatalog?.apiCatalogId,\n false\n );\n\n const refetchfileResultData = useCallback(\n async (selectedRecord) => {\n if (udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId) {\n setDownloadLinkLoading(true);\n await executeQueryWithParameters(\n {\n data: { JobId: selectedRecord?.id }\n },\n udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId\n )\n .then((res) => {\n setFileResultData(res.data);\n })\n .catch((err) => {});\n setDownloadLinkLoading(false);\n } else {\n setNoDownloadMethod(true);\n }\n },\n [udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId]\n );\n\n const handleSelectRecord = useCallback(\n (data) => {\n refetchfileResultData(data);\n setDownloadOpen(true);\n },\n [refetchfileResultData]\n );\n\n const getOptionLabel = (val) => {\n return val?.name;\n };\n\n const handleProductChange = useCallback((val) => {\n setProduct(val);\n }, []);\n\n const handleFileDownload = useCallback(() => {\n if (fileResultData?.link) {\n const link = document.createElement('a');\n link.href = fileResultData?.link;\n link.download = '';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n setDownloadOpen(false);\n handleSuccessSnackbar('File successfully downloaded');\n }\n }, [fileResultData?.link, handleSuccessSnackbar]);\n\n const getJobStatus = (value) => {\n if (value === 1) {\n return null;\n } else if (value === 2) {\n return 'info';\n } else if (value === 3) {\n return 'success';\n } else if (value === 4) {\n return 'error';\n }\n };\n\n const getJobLabel = (value) => {\n if (value === 1) {\n return 'Pending';\n } else if (value === 2) {\n return 'Running';\n } else if (value === 3) {\n return 'Completed';\n } else if (value === 4) {\n return 'Failed';\n }\n };\n\n useEffect(() => {\n if (catalogError) {\n handleErrorSnackbar(\n '',\n 'Error fetching catalog for the selected product'\n );\n }\n }, [catalogError, handleErrorSnackbar]);\n\n const filterElements = useMemo(() => {\n return [\n {\n searchField: 'jobTypeId',\n searchOperator: '=',\n searchValue: 2\n }\n ];\n }, []);\n\n const actionList = useMemo(() => {\n return [\n {\n id: 1,\n title: 'Download',\n icon: DownloadIcon,\n onClick: handleSelectRecord,\n disabled: false,\n checkDisabled: (value) => value?.statusId !== 3\n }\n ];\n }, [handleSelectRecord]);\n\n const columnDefs = useMemo(\n () => [\n {\n headerName: 'Id',\n sortable: true,\n field: 'id',\n suppressMenu: true\n },\n {\n headerName: 'Name',\n sortable: false,\n field: 'name',\n minWidth: 140,\n suppressMenu: true,\n valueFormatter: (data) => getSanitizedName(data.data.name)\n },\n {\n headerName: 'Date',\n sortable: false,\n valueFormatter: (data) =>\n new Date(data.data.startTime).toLocaleString(),\n minWidth: 130,\n suppressMenu: true\n //sort: 'desc',\n },\n {\n headerName: 'Status',\n field: 'statusId',\n wrapText: true,\n autoHeight: true,\n sortable: false,\n cellRenderer: 'statusCellRenderer',\n cellRendererParams: { getStatus: getJobStatus, getLabel: getJobLabel },\n minWidth: 130,\n maxWidth: 130,\n suppressMenu: true\n },\n\n {\n headerName: 'Actions',\n filter: false,\n pinned: 'right',\n cellRenderer: 'actionsRenderer',\n width: 120,\n maxWidth: 120,\n cellRendererParams: {\n actionList: actionList,\n value: (data) => data\n },\n suppressMenu: true,\n sortable: false,\n cellStyle: { display: 'flex', alignItems: 'center' }\n }\n ],\n [actionList]\n );\n\n return (\n <div>\n {udpJobEntity && !udpJobEntity?.unityBaseSearchMethod?.apiMethodId && (\n <AmbientAlert\n alertMessage={\"UdpJob's search method must be promoted\"}\n showAlert={true}\n alertSeverity={'error'}\n />\n )}\n\n {!productId && (\n <div style={{ margin: '0px 5px 5px 5px' }}>\n <AmbientAutoComplete\n isMultiple={false}\n id={'product'}\n name={'product'}\n label='Product'\n onChange={handleProductChange}\n options={products}\n size='small'\n getOptionLabelFunction={getOptionLabel}\n value={product}\n required\n />\n </div>\n )}\n <TableContainer\n loading={productsLoading || catalogLoading || jobEntityLoading}\n title={`Exports`}\n isServerSide={true}\n eagerLoad={false}\n logicalSearchOperator={2}\n promotedEntity={udpJobEntity}\n filterElements={filterElements}\n actionList={actionList}\n customColumnDefs={columnDefs}\n frameworkComponents={{\n statusCellRenderer: StatusCellRenderer,\n actionsRenderer: ActionsRenderer\n }}\n hideSearchBar\n hiddenActionButtons={[\n 'saveView',\n 'views',\n 'insights',\n 'importExport',\n 'group',\n 'filter',\n 'columns',\n 'clearFilters',\n 'fitGrid',\n 'expandGrid'\n ]}\n height={'calc(100vh - 167px)'}\n dynamicSizing\n />\n <FluentDialog\n actionOne={handleFileDownload}\n actionTwo={() => setDownloadOpen(false)}\n labelOne='Download'\n labelTwo='Cancel'\n open={downloadOpen}\n handleClose={() => setDownloadOpen(false)}\n disableOne={noDownloadMethod || downloadLinkLoading}\n progress={downloadLinkLoading}\n fullWidth\n >\n {noDownloadMethod ? (\n <AmbientAlert\n alertMessage={\"UdpJob's get file result method must be promoted\"}\n showAlert={true}\n alertSeverity={'error'}\n />\n ) : downloadLinkLoading ? (\n <EmptyStateDisplay primaryText={'Fetching download link...'} />\n ) : (\n <EmptyStateDisplay\n icon={noDownloadMethod ? ErrorIcon : StatusCircleCheckmarkIcon}\n primaryText={!noDownloadMethod && 'File is ready to download!'}\n />\n )}\n </FluentDialog>\n </div>\n );\n};\n\nexport default MyExportsPage;\n"],"mappings":"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"}
1
+ {"version":3,"file":"MyExportsPage-BwcVZASe.js","names":[],"sources":["../src/udp/export/MyExportsPage.jsx"],"sourcesContent":["import React, { useMemo, useState, useCallback, useEffect } from 'react';\nimport {\n StatusCircleCheckmarkIcon,\n ErrorIcon,\n DownloadIcon\n} from '@fluentui/react-icons';\nimport { getSanitizedName } from '../../utilities/entities/entityUtilities';\nimport { FluentDialog } from '../../UI/feedback/FluentDialog';\nimport { EmptyStateDisplay } from '../../UI/dataDisplay/EmptyStateDisplay';\nimport { useAxiosGet } from '../../utilities/useAxiosGet';\nimport { ActionsRenderer } from '../../UI/templates/ui/renderers/ActionsRenderer';\nimport { AmbientAlert } from '../../UI/feedback/AmbientAlert';\nimport { TableContainer } from '../../maintenanceEngine/tableBrowser/TableContainer';\nimport { StatusCellRenderer } from '../../UI/templates/ui/renderers/StatusCellRenderer';\nimport { useUser } from '../../utilities/auth/useUser';\nimport { AmbientAutoComplete } from '../../UI/inputs/textField/AmbientAutoComplete';\nimport { executeQueryWithParameters } from '../utilities/methodUtils';\nimport { useHandleAxiosSnackbar } from '../../utilities/apiHelpers';\nimport { ConfigService } from '../../configService';\n\nexport const MyExportsPage = (props) => {\n const { productId } = props;\n const user = useUser();\n const [product, setProduct] = useState();\n const [downloadLinkLoading, setDownloadLinkLoading] = useState(false);\n const [fileResultData, setFileResultData] = useState();\n const [downloadOpen, setDownloadOpen] = useState(false);\n const [noDownloadMethod, setNoDownloadMethod] = useState(false);\n\n const { handleErrorSnackbar, handleSuccessSnackbar } =\n useHandleAxiosSnackbar();\n\n const [{ data: products, loading: productsLoading }] = useAxiosGet(\n ConfigService.tenantV2ApiUrl,\n `tenant/products?tenantId=${user?.currentTenantId}&isSubscribable=${!user\n ?.can?.CAN_MANAGE_CATALOGS_FOR_UNSUBSCRIBABLE_PRODUCTS}`,\n {},\n !user\n );\n\n const [{ data: apiCatalog, loading: catalogLoading, error: catalogError }] =\n useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `tenantProductApiCatalogBase/tenant/${user?.currentTenantId}/product/${\n productId ? productId : product?.productId\n }`,\n {},\n !(product || productId),\n false\n );\n\n const [{ data: udpJobEntity, loading: jobEntityLoading }] = useAxiosGet(\n ConfigService.integrationV1ApiUrl,\n `apicatalog/${apiCatalog?.apiCatalogId}/promotedMethodEntities/udpJob/product/${apiCatalog?.productId}?compareSanitizedName=true`,\n {},\n !apiCatalog?.productId || !apiCatalog?.apiCatalogId,\n false\n );\n\n const refetchfileResultData = useCallback(\n async (selectedRecord) => {\n if (udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId) {\n setDownloadLinkLoading(true);\n await executeQueryWithParameters(\n {\n data: { JobId: selectedRecord?.id }\n },\n udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId\n )\n .then((res) => {\n setFileResultData(res.data);\n })\n .catch((err) => {});\n setDownloadLinkLoading(false);\n } else {\n setNoDownloadMethod(true);\n }\n },\n [udpJobEntity?.unityBaseGetFileResultMethod?.apiMethodId]\n );\n\n const handleSelectRecord = useCallback(\n (data) => {\n refetchfileResultData(data);\n setDownloadOpen(true);\n },\n [refetchfileResultData]\n );\n\n const getOptionLabel = (val) => {\n return val?.name;\n };\n\n const handleProductChange = useCallback((val) => {\n setProduct(val);\n }, []);\n\n const handleFileDownload = useCallback(() => {\n if (fileResultData?.link) {\n const link = document.createElement('a');\n link.href = fileResultData?.link;\n link.download = '';\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n setDownloadOpen(false);\n handleSuccessSnackbar('File successfully downloaded');\n }\n }, [fileResultData?.link, handleSuccessSnackbar]);\n\n const getJobStatus = (value) => {\n if (value === 1) {\n return null;\n } else if (value === 2) {\n return 'info';\n } else if (value === 3) {\n return 'success';\n } else if (value === 4) {\n return 'error';\n }\n };\n\n const getJobLabel = (value) => {\n if (value === 1) {\n return 'Pending';\n } else if (value === 2) {\n return 'Running';\n } else if (value === 3) {\n return 'Completed';\n } else if (value === 4) {\n return 'Failed';\n }\n };\n\n useEffect(() => {\n if (catalogError) {\n handleErrorSnackbar(\n '',\n 'Error fetching catalog for the selected product'\n );\n }\n }, [catalogError, handleErrorSnackbar]);\n\n const filterElements = useMemo(() => {\n return [\n {\n searchField: 'jobTypeId',\n searchOperator: '=',\n searchValue: 2\n }\n ];\n }, []);\n\n const actionList = useMemo(() => {\n return [\n {\n id: 1,\n title: 'Download',\n icon: DownloadIcon,\n onClick: handleSelectRecord,\n disabled: false,\n checkDisabled: (value) => value?.statusId !== 3\n }\n ];\n }, [handleSelectRecord]);\n\n const columnDefs = useMemo(\n () => [\n {\n headerName: 'Id',\n sortable: true,\n field: 'id',\n suppressMenu: true\n },\n {\n headerName: 'Name',\n sortable: false,\n field: 'name',\n minWidth: 140,\n suppressMenu: true,\n valueFormatter: (data) => getSanitizedName(data.data.name)\n },\n {\n headerName: 'Date',\n sortable: false,\n valueFormatter: (data) =>\n new Date(data.data.startTime).toLocaleString(),\n minWidth: 130,\n suppressMenu: true\n //sort: 'desc',\n },\n {\n headerName: 'Status',\n field: 'statusId',\n wrapText: true,\n autoHeight: true,\n sortable: false,\n cellRenderer: 'statusCellRenderer',\n cellRendererParams: { getStatus: getJobStatus, getLabel: getJobLabel },\n minWidth: 130,\n maxWidth: 130,\n suppressMenu: true\n },\n\n {\n headerName: 'Actions',\n filter: false,\n pinned: 'right',\n cellRenderer: 'actionsRenderer',\n width: 120,\n maxWidth: 120,\n cellRendererParams: {\n actionList: actionList,\n value: (data) => data\n },\n suppressMenu: true,\n sortable: false,\n cellStyle: { display: 'flex', alignItems: 'center' }\n }\n ],\n [actionList]\n );\n\n return (\n <div>\n {udpJobEntity && !udpJobEntity?.unityBaseSearchMethod?.apiMethodId && (\n <AmbientAlert\n alertMessage={\"UdpJob's search method must be promoted\"}\n showAlert={true}\n alertSeverity={'error'}\n />\n )}\n\n {!productId && (\n <div style={{ margin: '0px 5px 5px 5px' }}>\n <AmbientAutoComplete\n isMultiple={false}\n id={'product'}\n name={'product'}\n label='Product'\n onChange={handleProductChange}\n options={products}\n size='small'\n getOptionLabelFunction={getOptionLabel}\n value={product}\n required\n />\n </div>\n )}\n <TableContainer\n loading={productsLoading || catalogLoading || jobEntityLoading}\n title={`Exports`}\n isServerSide={true}\n eagerLoad={false}\n logicalSearchOperator={2}\n promotedEntity={udpJobEntity}\n filterElements={filterElements}\n actionList={actionList}\n customColumnDefs={columnDefs}\n frameworkComponents={{\n statusCellRenderer: StatusCellRenderer,\n actionsRenderer: ActionsRenderer\n }}\n hideSearchBar\n hiddenActionButtons={[\n 'saveView',\n 'views',\n 'insights',\n 'importExport',\n 'group',\n 'filter',\n 'columns',\n 'clearFilters',\n 'fitGrid',\n 'expandGrid'\n ]}\n height={'calc(100vh - 167px)'}\n dynamicSizing\n />\n <FluentDialog\n actionOne={handleFileDownload}\n actionTwo={() => setDownloadOpen(false)}\n labelOne='Download'\n labelTwo='Cancel'\n open={downloadOpen}\n handleClose={() => setDownloadOpen(false)}\n disableOne={noDownloadMethod || downloadLinkLoading}\n progress={downloadLinkLoading}\n fullWidth\n >\n {noDownloadMethod ? (\n <AmbientAlert\n alertMessage={\"UdpJob's get file result method must be promoted\"}\n showAlert={true}\n alertSeverity={'error'}\n />\n ) : downloadLinkLoading ? (\n <EmptyStateDisplay primaryText={'Fetching download link...'} />\n ) : (\n <EmptyStateDisplay\n icon={noDownloadMethod ? ErrorIcon : StatusCircleCheckmarkIcon}\n primaryText={!noDownloadMethod && 'File is ready to download!'}\n />\n )}\n </FluentDialog>\n </div>\n );\n};\n\nexport default MyExportsPage;\n"],"mappings":"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"}
@@ -54,4 +54,4 @@ NewsCard.defaultProps = { component: "h2" };
54
54
 
55
55
  //#endregion
56
56
  export { NewsCard as t };
57
- //# sourceMappingURL=NewsCard-C3y9a_OJ.js.map
57
+ //# sourceMappingURL=NewsCard-Y-exMCuK.js.map