quidproquo-web-admin 0.1.0 → 0.1.2

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 (200) hide show
  1. package/lib/commonjs/Auth/Auth.js +5 -6
  2. package/lib/commonjs/Auth/AuthChallengeMfaSetup/AuthChallengeMfaSetup.js +1 -1
  3. package/lib/commonjs/Auth/AuthChallengeNewPasswordRequired/AuthChallengeNewPasswordRequired.js +2 -2
  4. package/lib/commonjs/Auth/AuthChallengeSoftwareTokenMfa/AuthChallengeSoftwareTokenMfa.js +2 -2
  5. package/lib/commonjs/Auth/Login.js +2 -2
  6. package/lib/commonjs/Auth/logic/authRuntime.d.ts +7 -0
  7. package/lib/commonjs/Auth/logic/authRuntime.js +7 -0
  8. package/lib/commonjs/Auth/logic/index.d.ts +1 -0
  9. package/lib/commonjs/Auth/logic/index.js +1 -0
  10. package/lib/commonjs/Auth/logic/runtime/askAuthLogout.d.ts +2 -0
  11. package/lib/commonjs/Auth/logic/runtime/askAuthLogout.js +15 -0
  12. package/lib/commonjs/Auth/logic/runtime/authLogic.d.ts +2 -0
  13. package/lib/commonjs/Auth/logic/runtime/authLogic.js +2 -0
  14. package/lib/commonjs/Config/Config.js +3 -3
  15. package/lib/commonjs/LogViewer/ActionHistoryItem.js +1 -1
  16. package/lib/commonjs/LogViewer/ActionRender/ActionRender.js +3 -3
  17. package/lib/commonjs/LogViewer/AdminLogs/AdminLogGrid/AdminLogGrid.js +3 -3
  18. package/lib/commonjs/LogViewer/AdminLogs/AdminLogSearchBar/AdminLogSearchBar.js +4 -4
  19. package/lib/commonjs/LogViewer/AdminLogs/AdminLogs.js +1 -1
  20. package/lib/commonjs/LogViewer/Dashboard.js +8 -4
  21. package/lib/commonjs/LogViewer/EventTimeline.js +4 -4
  22. package/lib/commonjs/LogViewer/HelpChat/HelpChat.js +8 -7
  23. package/lib/commonjs/LogViewer/LogCorrelationTree.js +27 -24
  24. package/lib/commonjs/LogViewer/LogCorrelations.js +1 -1
  25. package/lib/commonjs/LogViewer/LogDetails.js +1 -1
  26. package/lib/commonjs/LogViewer/LogDialog/LogDialog.js +4 -4
  27. package/lib/commonjs/LogViewer/LogDialog/MovedToColdStorage/MovedToColdStorage.js +1 -1
  28. package/lib/commonjs/LogViewer/LogDialog/tabs/LogDetailsTab/LogDetailsTab.js +1 -1
  29. package/lib/commonjs/LogViewer/LogDialog/tabs/TimelineTab/TimelineTab.js +1 -1
  30. package/lib/commonjs/LogViewer/LogDialog/tabs/TreeTab/TreeTab.js +1 -1
  31. package/lib/commonjs/LogViewer/LogMetadataGrid.js +3 -3
  32. package/lib/commonjs/LogViewer/LogRawJson.js +1 -1
  33. package/lib/commonjs/LogViewer/LogSearch.js +1 -1
  34. package/lib/commonjs/LogViewer/LogSummary.js +2 -2
  35. package/lib/commonjs/LogViewer/LogSummaryDetails.js +5 -2
  36. package/lib/commonjs/LogViewer/LogSummaryReturn.js +1 -1
  37. package/lib/commonjs/LogViewer/TopSection.js +7 -7
  38. package/lib/commonjs/LogViewer/actionComponents/custom/CoreContextListCustomAction.js +1 -1
  39. package/lib/commonjs/LogViewer/actionComponents/custom/CoreLogCreateCustomAction.js +1 -1
  40. package/lib/commonjs/LogViewer/actionComponents/custom/CoreLogDisableEventHistoryCustomAction.js +1 -1
  41. package/lib/commonjs/LogViewer/actionComponents/custom/CoreLogTemplateLiteralCustomAction.js +1 -1
  42. package/lib/commonjs/LogViewer/actionComponents/custom/CoreNetworkRequestCustomAction.js +2 -2
  43. package/lib/commonjs/LogViewer/actionComponents/genericActionRenderer/ActionResultDisplay.js +1 -1
  44. package/lib/commonjs/LogViewer/actionComponents/genericActionRenderer/AnyVariableView/AnyVariableView.js +15 -15
  45. package/lib/commonjs/LogViewer/actionComponents/genericActionRenderer/getGenericActionRenderer.js +7 -4
  46. package/lib/commonjs/LogViewer/charts/CostPerService.js +1 -1
  47. package/lib/commonjs/LogViewer/charts/ErrorsByType.js +1 -1
  48. package/lib/commonjs/LogViewer/charts/ErrorsOverTime.js +1 -1
  49. package/lib/commonjs/LogViewer/charts/RequestsByService.js +2 -2
  50. package/lib/commonjs/LogViewer/hooks/useLogManagement.js +1 -1
  51. package/lib/commonjs/LogViewer/hooks/useLogTreeData.js +14 -11
  52. package/lib/commonjs/LogViewer/hooks/useServiceNames.js +6 -5
  53. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreAiActionComponentMap.d.ts +2 -0
  54. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreAiActionComponentMap.js +8 -0
  55. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreClaudeAiActionComponentMap.d.ts +2 -0
  56. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreClaudeAiActionComponentMap.js +7 -0
  57. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreConfigActionComponentMap.js +1 -0
  58. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreEventActionComponentMap.js +4 -0
  59. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreEventBusActionComponentMap.js +1 -1
  60. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreFileActionComponentMap.js +5 -0
  61. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreGraphDatabaseActionComponentMap.d.ts +2 -0
  62. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreGraphDatabaseActionComponentMap.js +14 -0
  63. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreInlineFunctionActionComponentMap.d.ts +2 -0
  64. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreInlineFunctionActionComponentMap.js +7 -0
  65. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreKeyValueStoreActionComponentMap.js +5 -0
  66. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreStateActionComponentMap.d.ts +2 -0
  67. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreStateActionComponentMap.js +8 -0
  68. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreStreamActionComponentMap.d.ts +2 -0
  69. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreStreamActionComponentMap.js +8 -0
  70. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreSystemActionComponentMap.js +1 -0
  71. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/coreUserDirectoryActionComponentMap.js +12 -2
  72. package/lib/commonjs/LogViewer/logic/actionComponentMap/core/index.js +7 -1
  73. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/index.js +8 -1
  74. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverAdminActionComponentMap.d.ts +2 -0
  75. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverAdminActionComponentMap.js +10 -0
  76. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverApiKeyValidationActionComponentMap.d.ts +2 -0
  77. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverApiKeyValidationActionComponentMap.js +7 -0
  78. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverDnsActionComponentMap.d.ts +2 -0
  79. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverDnsActionComponentMap.js +7 -0
  80. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverGenericDataResourceActionComponentMap.d.ts +2 -0
  81. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverGenericDataResourceActionComponentMap.js +8 -0
  82. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverOpenApiSpecActionComponentMap.d.ts +2 -0
  83. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverOpenApiSpecActionComponentMap.js +7 -0
  84. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverRouteAuthValidationActionComponentMap.d.ts +2 -0
  85. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverRouteAuthValidationActionComponentMap.js +7 -0
  86. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverServiceActionComponentMap.d.ts +2 -0
  87. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverServiceActionComponentMap.js +7 -0
  88. package/lib/commonjs/LogViewer/logic/actionComponentMap/webserver/webserverWebEntryActionComponentMap.js +1 -1
  89. package/lib/commonjs/components/AdminDialog.js +2 -2
  90. package/lib/commonjs/components/AsyncButton.js +1 -1
  91. package/lib/commonjs/components/AutocompleteInput.js +2 -2
  92. package/lib/commonjs/components/DataGrid.js +1 -1
  93. package/lib/commonjs/components/DataGridPagination/DataGridPagination.js +1 -1
  94. package/lib/commonjs/components/DateCell/DateCell.js +1 -1
  95. package/lib/commonjs/components/DateRangePicker.js +2 -2
  96. package/lib/commonjs/components/MainLayout/MainLayout.js +11 -2
  97. package/lib/commonjs/components/TextInput.js +2 -2
  98. package/lib/commonjs/tmp/RandomView.js +1 -1
  99. package/lib/commonjs/useFederatedAddon.js +7 -6
  100. package/lib/esm/Auth/Auth.js +3 -4
  101. package/lib/esm/Auth/AuthChallengeMfaSetup/AuthChallengeMfaSetup.js +1 -1
  102. package/lib/esm/Auth/AuthChallengeMfaSetup/logic/authActionCreator.js +1 -1
  103. package/lib/esm/Auth/AuthChallengeNewPasswordRequired/AuthChallengeNewPasswordRequired.js +1 -1
  104. package/lib/esm/Auth/AuthChallengeSoftwareTokenMfa/AuthChallengeSoftwareTokenMfa.js +1 -1
  105. package/lib/esm/Auth/Login.js +2 -2
  106. package/lib/esm/Auth/logic/authRuntime.d.ts +7 -0
  107. package/lib/esm/Auth/logic/authRuntime.js +4 -0
  108. package/lib/esm/Auth/logic/index.d.ts +1 -0
  109. package/lib/esm/Auth/logic/index.js +1 -0
  110. package/lib/esm/Auth/logic/runtime/askAuthLogout.d.ts +2 -0
  111. package/lib/esm/Auth/logic/runtime/askAuthLogout.js +12 -0
  112. package/lib/esm/Auth/logic/runtime/authLogic.d.ts +2 -0
  113. package/lib/esm/Auth/logic/runtime/authLogic.js +2 -0
  114. package/lib/esm/Config/Config.js +3 -3
  115. package/lib/esm/LogViewer/ActionHistoryItem.js +1 -1
  116. package/lib/esm/LogViewer/ActionRender/ActionRender.js +3 -3
  117. package/lib/esm/LogViewer/AdminLogs/AdminLogGrid/AdminLogGrid.js +3 -3
  118. package/lib/esm/LogViewer/AdminLogs/AdminLogSearchBar/AdminLogSearchBar.js +4 -4
  119. package/lib/esm/LogViewer/AdminLogs/AdminLogs.js +1 -1
  120. package/lib/esm/LogViewer/Dashboard.js +9 -5
  121. package/lib/esm/LogViewer/EventTimeline.js +4 -4
  122. package/lib/esm/LogViewer/HelpChat/HelpChat.js +9 -8
  123. package/lib/esm/LogViewer/LogCorrelationTree.js +27 -24
  124. package/lib/esm/LogViewer/LogCorrelations.js +1 -1
  125. package/lib/esm/LogViewer/LogDetails.js +1 -1
  126. package/lib/esm/LogViewer/LogDialog/LogDialog.js +4 -4
  127. package/lib/esm/LogViewer/LogDialog/MovedToColdStorage/MovedToColdStorage.js +1 -1
  128. package/lib/esm/LogViewer/LogDialog/tabs/LogDetailsTab/LogDetailsTab.js +1 -1
  129. package/lib/esm/LogViewer/LogDialog/tabs/TimelineTab/TimelineTab.js +1 -1
  130. package/lib/esm/LogViewer/LogDialog/tabs/TreeTab/TreeTab.js +1 -1
  131. package/lib/esm/LogViewer/LogMetadataGrid.js +3 -3
  132. package/lib/esm/LogViewer/LogRawJson.js +1 -1
  133. package/lib/esm/LogViewer/LogSearch.js +1 -1
  134. package/lib/esm/LogViewer/LogSummary.js +2 -2
  135. package/lib/esm/LogViewer/LogSummaryDetails.js +5 -2
  136. package/lib/esm/LogViewer/LogSummaryReturn.js +1 -1
  137. package/lib/esm/LogViewer/TopSection.js +7 -7
  138. package/lib/esm/LogViewer/actionComponents/custom/CoreContextListCustomAction.js +1 -1
  139. package/lib/esm/LogViewer/actionComponents/custom/CoreLogCreateCustomAction.js +1 -1
  140. package/lib/esm/LogViewer/actionComponents/custom/CoreLogDisableEventHistoryCustomAction.js +1 -1
  141. package/lib/esm/LogViewer/actionComponents/custom/CoreLogTemplateLiteralCustomAction.js +1 -1
  142. package/lib/esm/LogViewer/actionComponents/custom/CoreNetworkRequestCustomAction.js +2 -2
  143. package/lib/esm/LogViewer/actionComponents/genericActionRenderer/ActionResultDisplay.js +1 -1
  144. package/lib/esm/LogViewer/actionComponents/genericActionRenderer/AnyVariableView/AnyVariableView.js +15 -15
  145. package/lib/esm/LogViewer/actionComponents/genericActionRenderer/getGenericActionRenderer.js +7 -4
  146. package/lib/esm/LogViewer/charts/CostPerService.js +1 -1
  147. package/lib/esm/LogViewer/charts/ErrorsByType.js +1 -1
  148. package/lib/esm/LogViewer/charts/ErrorsOverTime.js +1 -1
  149. package/lib/esm/LogViewer/charts/RequestsByService.js +2 -2
  150. package/lib/esm/LogViewer/hooks/useLogManagement.js +1 -1
  151. package/lib/esm/LogViewer/hooks/useLogTreeData.js +15 -12
  152. package/lib/esm/LogViewer/hooks/useServiceNames.js +7 -6
  153. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreAiActionComponentMap.d.ts +2 -0
  154. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreAiActionComponentMap.js +6 -0
  155. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreClaudeAiActionComponentMap.d.ts +2 -0
  156. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreClaudeAiActionComponentMap.js +5 -0
  157. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreConfigActionComponentMap.js +1 -0
  158. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreEventActionComponentMap.js +4 -0
  159. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreEventBusActionComponentMap.js +1 -1
  160. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreFileActionComponentMap.js +5 -0
  161. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreGraphDatabaseActionComponentMap.d.ts +2 -0
  162. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreGraphDatabaseActionComponentMap.js +12 -0
  163. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreInlineFunctionActionComponentMap.d.ts +2 -0
  164. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreInlineFunctionActionComponentMap.js +5 -0
  165. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreKeyValueStoreActionComponentMap.js +5 -0
  166. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreStateActionComponentMap.d.ts +2 -0
  167. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreStateActionComponentMap.js +6 -0
  168. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreStreamActionComponentMap.d.ts +2 -0
  169. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreStreamActionComponentMap.js +6 -0
  170. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreSystemActionComponentMap.js +1 -0
  171. package/lib/esm/LogViewer/logic/actionComponentMap/core/coreUserDirectoryActionComponentMap.js +12 -2
  172. package/lib/esm/LogViewer/logic/actionComponentMap/core/index.js +12 -0
  173. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/index.js +14 -0
  174. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverAdminActionComponentMap.d.ts +2 -0
  175. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverAdminActionComponentMap.js +8 -0
  176. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverApiKeyValidationActionComponentMap.d.ts +2 -0
  177. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverApiKeyValidationActionComponentMap.js +5 -0
  178. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverDnsActionComponentMap.d.ts +2 -0
  179. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverDnsActionComponentMap.js +5 -0
  180. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverGenericDataResourceActionComponentMap.d.ts +2 -0
  181. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverGenericDataResourceActionComponentMap.js +6 -0
  182. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverOpenApiSpecActionComponentMap.d.ts +2 -0
  183. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverOpenApiSpecActionComponentMap.js +5 -0
  184. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverRouteAuthValidationActionComponentMap.d.ts +2 -0
  185. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverRouteAuthValidationActionComponentMap.js +5 -0
  186. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverServiceActionComponentMap.d.ts +2 -0
  187. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverServiceActionComponentMap.js +5 -0
  188. package/lib/esm/LogViewer/logic/actionComponentMap/webserver/webserverWebEntryActionComponentMap.js +1 -1
  189. package/lib/esm/components/AdminDialog.js +2 -2
  190. package/lib/esm/components/AsyncButton.js +1 -1
  191. package/lib/esm/components/AutocompleteInput.js +2 -2
  192. package/lib/esm/components/DataGrid.js +1 -1
  193. package/lib/esm/components/DataGridPagination/DataGridPagination.js +1 -1
  194. package/lib/esm/components/DateCell/DateCell.js +1 -1
  195. package/lib/esm/components/DateRangePicker.js +2 -2
  196. package/lib/esm/components/MainLayout/MainLayout.js +11 -2
  197. package/lib/esm/components/TextInput.js +2 -2
  198. package/lib/esm/tmp/RandomView.js +1 -1
  199. package/lib/esm/useFederatedAddon.js +8 -7
  200. package/package.json +7 -7
@@ -11,21 +11,20 @@ const isLoggedOn_1 = require("./logic/isLoggedOn");
11
11
  const askAuthMain_1 = require("./logic/runtime/askAuthMain");
12
12
  const logic_1 = require("./logic");
13
13
  const Login_1 = require("./Login");
14
- const authRuntime = (0, quidproquo_web_react_1.createQpqRuntimeDefinition)(logic_1.authLogic, logic_1.authInitalState, logic_1.authReducer);
15
14
  function Auth({ children }) {
16
15
  var _a, _b, _c, _d, _e, _f;
17
- const [api, state, dispatch] = (0, quidproquo_web_react_1.useQpqRuntime)(authRuntime, askAuthMain_1.askAuthMain);
16
+ const [api, state, dispatch] = (0, quidproquo_web_react_1.useQpqRuntime)(logic_1.authRuntime, askAuthMain_1.askAuthMain);
18
17
  const isAuthenticated = (0, isLoggedOn_1.isLoggedOn)(state);
19
18
  if (((_a = state.authenticateUserResponse) === null || _a === void 0 ? void 0 : _a.challenge) === quidproquo_core_1.AuthenticateUserChallenge.NEW_PASSWORD_REQUIRED) {
20
- return ((0, jsx_runtime_1.jsx)(quidproquo_web_react_1.QpqRuntimeEffectCatcher, { runtime: authRuntime, children: (0, jsx_runtime_1.jsx)(AuthChallengeNewPasswordRequired_1.AuthChallengeNewPasswordRequired, { authState: state }) }));
19
+ return ((0, jsx_runtime_1.jsx)(quidproquo_web_react_1.QpqRuntimeEffectCatcher, { runtime: logic_1.authRuntime, children: (0, jsx_runtime_1.jsx)(AuthChallengeNewPasswordRequired_1.AuthChallengeNewPasswordRequired, { authState: state }) }));
21
20
  }
22
21
  if (((_b = state.authenticateUserResponse) === null || _b === void 0 ? void 0 : _b.challenge) === quidproquo_core_1.AuthenticateUserChallenge.SOFTWARE_TOKEN_MFA) {
23
- return ((0, jsx_runtime_1.jsx)(quidproquo_web_react_1.QpqRuntimeEffectCatcher, { runtime: authRuntime, children: (0, jsx_runtime_1.jsx)(AuthChallengeSoftwareTokenMfa_1.AuthChallengeSoftwareTokenMfa, { authState: state }) }));
22
+ return ((0, jsx_runtime_1.jsx)(quidproquo_web_react_1.QpqRuntimeEffectCatcher, { runtime: logic_1.authRuntime, children: (0, jsx_runtime_1.jsx)(AuthChallengeSoftwareTokenMfa_1.AuthChallengeSoftwareTokenMfa, { authState: state }) }));
24
23
  }
25
24
  if (((_c = state.authenticateUserResponse) === null || _c === void 0 ? void 0 : _c.challenge) === quidproquo_core_1.AuthenticateUserChallenge.MFA_SETUP) {
26
- return ((0, jsx_runtime_1.jsx)(quidproquo_web_react_1.QpqRuntimeEffectCatcher, { runtime: authRuntime, children: (0, jsx_runtime_1.jsx)(AuthChallengeMfaSetup_1.AuthChallengeMfaSetup, { authState: state }) }));
25
+ return ((0, jsx_runtime_1.jsx)(quidproquo_web_react_1.QpqRuntimeEffectCatcher, { runtime: logic_1.authRuntime, children: (0, jsx_runtime_1.jsx)(AuthChallengeMfaSetup_1.AuthChallengeMfaSetup, { authState: state }) }));
27
26
  }
28
- return ((0, jsx_runtime_1.jsxs)(quidproquo_web_react_1.QpqRuntimeEffectCatcher, { runtime: authRuntime, children: [!isAuthenticated && ((0, jsx_runtime_1.jsx)(Login_1.Login, { setUsername: api.authUISetUsername, setPassword: api.authUISetPassword, username: state.username, password: state.password, onLogin: api.authLogin })), isAuthenticated && ((0, jsx_runtime_1.jsx)(quidproquo_web_react_1.authContext.Provider, { value: {
27
+ return ((0, jsx_runtime_1.jsxs)(quidproquo_web_react_1.QpqRuntimeEffectCatcher, { runtime: logic_1.authRuntime, children: [!isAuthenticated && ((0, jsx_runtime_1.jsx)(Login_1.Login, { onLogin: api.authLogin, password: state.password, setPassword: api.authUISetPassword, setUsername: api.authUISetUsername, username: state.username })), isAuthenticated && ((0, jsx_runtime_1.jsx)(quidproquo_web_react_1.authContext.Provider, { value: {
29
28
  challenge: (_d = state.authenticateUserResponse) === null || _d === void 0 ? void 0 : _d.challenge,
30
29
  session: (_e = state.authenticateUserResponse) === null || _e === void 0 ? void 0 : _e.session,
31
30
  username: state.username,
@@ -46,5 +46,5 @@ function AuthChallengeMfaSetup({ authState }) {
46
46
  flexDirection: 'column',
47
47
  justifyContent: 'center',
48
48
  alignItems: 'center',
49
- }, children: (0, jsx_runtime_1.jsx)(Box_1.default, { component: "form", sx: { width: '100%', maxWidth: 360 }, children: (0, jsx_runtime_1.jsxs)(Grid_1.default, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsxs)(Typography_1.default, { variant: "h5", gutterBottom: true, sx: { display: 'flex', alignItems: 'center' }, children: [(0, jsx_runtime_1.jsx)(Lock_1.default, { sx: { marginRight: 1 } }), "Set Up Authenticator"] }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(Typography_1.default, { variant: "body2", color: "text.secondary", children: "Add this account to your authenticator app, then enter the 6-digit code it generates." }) }), (0, jsx_runtime_1.jsxs)(Grid_1.default, { item: true, xs: 12, children: [(0, jsx_runtime_1.jsx)(Typography_1.default, { variant: "caption", color: "text.secondary", children: "Secret key" }), (0, jsx_runtime_1.jsx)(Typography_1.default, { variant: "body1", sx: { fontFamily: 'monospace', wordBreak: 'break-all' }, children: state.secretCode || 'Loading…' })] }), state.secretCode && ((0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(Typography_1.default, { variant: "caption", color: "text.secondary", sx: { wordBreak: 'break-all' }, children: buildOtpAuthUri(authState.username, state.secretCode) }) })), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { required: true, fullWidth: true, id: "mfaCode", label: "Authentication Code", autoFocus: true, inputProps: { inputMode: 'numeric', pattern: '[0-9]*', maxLength: 6 }, value: state.mfaCode, onChange: (event) => api.authChallengeSetMfaSetupCode(event.target.value.replace(/\D/g, '')) }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(components_1.AsyncButton, { onClick: () => api.authChallengeSendMfaSetupCode(challenge, authState.username), disabled: !isCodeValid || !state.secretCode, children: "Verify" }) })] }) }) }));
49
+ }, children: (0, jsx_runtime_1.jsx)(Box_1.default, { component: "form", sx: { width: '100%', maxWidth: 360 }, children: (0, jsx_runtime_1.jsxs)(Grid_1.default, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsxs)(Typography_1.default, { gutterBottom: true, sx: { display: 'flex', alignItems: 'center' }, variant: "h5", children: [(0, jsx_runtime_1.jsx)(Lock_1.default, { sx: { marginRight: 1 } }), "Set Up Authenticator"] }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(Typography_1.default, { color: "text.secondary", variant: "body2", children: "Add this account to your authenticator app, then enter the 6-digit code it generates." }) }), (0, jsx_runtime_1.jsxs)(Grid_1.default, { item: true, xs: 12, children: [(0, jsx_runtime_1.jsx)(Typography_1.default, { color: "text.secondary", variant: "caption", children: "Secret key" }), (0, jsx_runtime_1.jsx)(Typography_1.default, { sx: { fontFamily: 'monospace', wordBreak: 'break-all' }, variant: "body1", children: state.secretCode || 'Loading…' })] }), state.secretCode && ((0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(Typography_1.default, { color: "text.secondary", sx: { wordBreak: 'break-all' }, variant: "caption", children: buildOtpAuthUri(authState.username, state.secretCode) }) })), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { autoFocus: true, fullWidth: true, id: "mfaCode", inputProps: { inputMode: 'numeric', pattern: '[0-9]*', maxLength: 6 }, label: "Authentication Code", onChange: (event) => api.authChallengeSetMfaSetupCode(event.target.value.replace(/\D/g, '')), required: true, value: state.mfaCode }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(components_1.AsyncButton, { disabled: !isCodeValid || !state.secretCode, onClick: () => api.authChallengeSendMfaSetupCode(challenge, authState.username), children: "Verify" }) })] }) }) }));
50
50
  }
@@ -29,8 +29,8 @@ function AuthChallengeNewPasswordRequired({ authState }) {
29
29
  flexDirection: 'column',
30
30
  justifyContent: 'center',
31
31
  alignItems: 'center',
32
- }, children: (0, jsx_runtime_1.jsx)(Box_1.default, { component: "form", sx: { width: '100%', maxWidth: 360 }, children: (0, jsx_runtime_1.jsxs)(Grid_1.default, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsxs)(Typography_1.default, { variant: "h5", gutterBottom: true, sx: { display: 'flex', alignItems: 'center' }, children: [(0, jsx_runtime_1.jsx)(Lock_1.default, { sx: { marginRight: 1 } }), "Password Change Required"] }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { required: true, fullWidth: true, id: "newPassword", label: "New Password", type: "password", autoFocus: true, value: state.passwordA, onChange: (event) => api.authChallengeSetPasswordA(event.target.value) }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { required: true, fullWidth: true, id: "confirmPassword", label: "Confirm Password", type: "password", value: state.passwordB, onChange: (event) => api.authChallengeSetPasswordB(event.target.value) }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(components_1.AsyncButton, { onClick: () => {
32
+ }, children: (0, jsx_runtime_1.jsx)(Box_1.default, { component: "form", sx: { width: '100%', maxWidth: 360 }, children: (0, jsx_runtime_1.jsxs)(Grid_1.default, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsxs)(Typography_1.default, { gutterBottom: true, sx: { display: 'flex', alignItems: 'center' }, variant: "h5", children: [(0, jsx_runtime_1.jsx)(Lock_1.default, { sx: { marginRight: 1 } }), "Password Change Required"] }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { autoFocus: true, fullWidth: true, id: "newPassword", label: "New Password", onChange: (event) => api.authChallengeSetPasswordA(event.target.value), required: true, type: "password", value: state.passwordA }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { fullWidth: true, id: "confirmPassword", label: "Confirm Password", onChange: (event) => api.authChallengeSetPasswordB(event.target.value), required: true, type: "password", value: state.passwordB }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(components_1.AsyncButton, { disabled: !arePasswordsMatching, onClick: () => {
33
33
  var _a, _b;
34
34
  return api.authChallengeSendPasswords((_a = authState.authenticateUserResponse) === null || _a === void 0 ? void 0 : _a.challenge, (_b = authState.authenticateUserResponse) === null || _b === void 0 ? void 0 : _b.session, authState.username);
35
- }, disabled: !arePasswordsMatching, children: "Update Password" }) })] }) }) }));
35
+ }, children: "Update Password" }) })] }) }) }));
36
36
  }
@@ -29,8 +29,8 @@ function AuthChallengeSoftwareTokenMfa({ authState }) {
29
29
  flexDirection: 'column',
30
30
  justifyContent: 'center',
31
31
  alignItems: 'center',
32
- }, children: (0, jsx_runtime_1.jsx)(Box_1.default, { component: "form", sx: { width: '100%', maxWidth: 360 }, children: (0, jsx_runtime_1.jsxs)(Grid_1.default, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsxs)(Typography_1.default, { variant: "h5", gutterBottom: true, sx: { display: 'flex', alignItems: 'center' }, children: [(0, jsx_runtime_1.jsx)(Lock_1.default, { sx: { marginRight: 1 } }), "Verification Code"] }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(Typography_1.default, { variant: "body2", color: "text.secondary", children: "Enter the 6-digit code from your authenticator app." }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { required: true, fullWidth: true, id: "mfaCode", label: "Authentication Code", autoFocus: true, inputProps: { inputMode: 'numeric', pattern: '[0-9]*', maxLength: 6 }, value: state.mfaCode, onChange: (event) => api.authChallengeSetMfaCode(event.target.value.replace(/\D/g, '')) }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(components_1.AsyncButton, { onClick: () => {
32
+ }, children: (0, jsx_runtime_1.jsx)(Box_1.default, { component: "form", sx: { width: '100%', maxWidth: 360 }, children: (0, jsx_runtime_1.jsxs)(Grid_1.default, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsxs)(Typography_1.default, { gutterBottom: true, sx: { display: 'flex', alignItems: 'center' }, variant: "h5", children: [(0, jsx_runtime_1.jsx)(Lock_1.default, { sx: { marginRight: 1 } }), "Verification Code"] }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(Typography_1.default, { color: "text.secondary", variant: "body2", children: "Enter the 6-digit code from your authenticator app." }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { autoFocus: true, fullWidth: true, id: "mfaCode", inputProps: { inputMode: 'numeric', pattern: '[0-9]*', maxLength: 6 }, label: "Authentication Code", onChange: (event) => api.authChallengeSetMfaCode(event.target.value.replace(/\D/g, '')), required: true, value: state.mfaCode }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(components_1.AsyncButton, { disabled: !isCodeValid, onClick: () => {
33
33
  var _a, _b;
34
34
  return api.authChallengeSendMfaCode((_a = authState.authenticateUserResponse) === null || _a === void 0 ? void 0 : _a.challenge, (_b = authState.authenticateUserResponse) === null || _b === void 0 ? void 0 : _b.session, authState.username);
35
- }, disabled: !isCodeValid, children: "Verify" }) })] }) }) }));
35
+ }, children: "Verify" }) })] }) }) }));
36
36
  }
@@ -29,8 +29,8 @@ function Login({ username, password, setUsername, setPassword, onLogin }) {
29
29
  flexDirection: 'column',
30
30
  justifyContent: 'center',
31
31
  alignItems: 'center',
32
- }, children: (0, jsx_runtime_1.jsx)(Box_1.default, { component: "form", action: "#", autoComplete: "on", method: "post", sx: { width: '100%', maxWidth: 360 }, children: (0, jsx_runtime_1.jsxs)(Grid_1.default, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsxs)(material_1.Typography, { variant: "h5", gutterBottom: true, sx: { display: 'flex', alignItems: 'center' }, children: [(0, jsx_runtime_1.jsx)(Lock_1.default, { sx: { marginRight: 1 } }), "QPQ Admin"] }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { required: true, fullWidth: true, id: "username", label: "Username", type: "username", autoComplete: "username", autoFocus: true, value: username, onChange: (event) => setUsername(event.target.value) }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { required: true, fullWidth: true, id: "password", label: "Password", type: "password", autoComplete: "current-password", value: password, onChange: (event) => setPassword(event.target.value) }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(components_1.AsyncButton, { type: "submit", onClick: (event) => __awaiter(this, void 0, void 0, function* () {
32
+ }, children: (0, jsx_runtime_1.jsx)(Box_1.default, { action: "#", autoComplete: "on", component: "form", method: "post", sx: { width: '100%', maxWidth: 360 }, children: (0, jsx_runtime_1.jsxs)(Grid_1.default, { container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsxs)(material_1.Typography, { gutterBottom: true, sx: { display: 'flex', alignItems: 'center' }, variant: "h5", children: [(0, jsx_runtime_1.jsx)(Lock_1.default, { sx: { marginRight: 1 } }), "QPQ Admin"] }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { autoComplete: "username", autoFocus: true, fullWidth: true, id: "username", label: "Username", onChange: (event) => setUsername(event.target.value), required: true, type: "username", value: username }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { autoComplete: "current-password", fullWidth: true, id: "password", label: "Password", onChange: (event) => setPassword(event.target.value), required: true, type: "password", value: password }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 12, children: (0, jsx_runtime_1.jsx)(components_1.AsyncButton, { onClick: (event) => __awaiter(this, void 0, void 0, function* () {
33
33
  event.preventDefault();
34
34
  yield onLogin();
35
- }), children: "Login" }) })] }) }) }));
35
+ }), type: "submit", children: "Login" }) })] }) }) }));
36
36
  }
@@ -0,0 +1,7 @@
1
+ export declare const authRuntime: import("quidproquo-web-react").QpqRuntimeDefinition<import("./authTypes").AuthState, import("./authTypes").AuthEffects, {
2
+ askAuthLogin: typeof import("./runtime/askAuthLogin").askAuthLogin;
3
+ askAuthLogout: typeof import("./runtime/askAuthLogout").askAuthLogout;
4
+ askAuthMain: typeof import("./runtime/askAuthMain").askAuthMain;
5
+ askAuthUISetUsername: typeof import("./authActionCreator").askAuthUISetUsername;
6
+ askAuthUISetPassword: typeof import("./authActionCreator").askAuthUISetPassword;
7
+ }>;
@@ -0,0 +1,7 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.authRuntime = void 0;
4
+ const quidproquo_web_react_1 = require("quidproquo-web-react");
5
+ const authLogic_1 = require("./runtime/authLogic");
6
+ const authReducer_1 = require("./authReducer");
7
+ exports.authRuntime = (0, quidproquo_web_react_1.createQpqRuntimeDefinition)(authLogic_1.authLogic, authReducer_1.authInitalState, authReducer_1.authReducer);
@@ -1,4 +1,5 @@
1
1
  export * from './authActionCreator';
2
2
  export * from './authReducer';
3
+ export * from './authRuntime';
3
4
  export * from './authTypes';
4
5
  export * from './runtime';
@@ -16,5 +16,6 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
16
16
  Object.defineProperty(exports, "__esModule", { value: true });
17
17
  __exportStar(require("./authActionCreator"), exports);
18
18
  __exportStar(require("./authReducer"), exports);
19
+ __exportStar(require("./authRuntime"), exports);
19
20
  __exportStar(require("./authTypes"), exports);
20
21
  __exportStar(require("./runtime"), exports);
@@ -0,0 +1,2 @@
1
+ import { AskResponse } from 'quidproquo-core';
2
+ export declare function askAuthLogout(): AskResponse<void>;
@@ -0,0 +1,15 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.askAuthLogout = askAuthLogout;
4
+ const quidproquo_core_1 = require("quidproquo-core");
5
+ const platformLogic_1 = require("../../../platformLogic");
6
+ const authActionCreator_1 = require("../authActionCreator");
7
+ function* askAuthLogout() {
8
+ yield* (0, platformLogic_1.askSaveAuthToken)({
9
+ challenge: quidproquo_core_1.AuthenticateUserChallenge.NONE,
10
+ });
11
+ yield* (0, authActionCreator_1.askAuthUISetPassword)('');
12
+ yield* (0, authActionCreator_1.askAuthUISetAuthInfo)({
13
+ challenge: quidproquo_core_1.AuthenticateUserChallenge.NONE,
14
+ });
15
+ }
@@ -1,8 +1,10 @@
1
1
  import { askAuthUISetPassword, askAuthUISetUsername } from '../authActionCreator';
2
2
  import { askAuthLogin } from './askAuthLogin';
3
+ import { askAuthLogout } from './askAuthLogout';
3
4
  import { askAuthMain } from './askAuthMain';
4
5
  export declare const authLogic: {
5
6
  askAuthLogin: typeof askAuthLogin;
7
+ askAuthLogout: typeof askAuthLogout;
6
8
  askAuthMain: typeof askAuthMain;
7
9
  askAuthUISetUsername: typeof askAuthUISetUsername;
8
10
  askAuthUISetPassword: typeof askAuthUISetPassword;
@@ -3,9 +3,11 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.authLogic = void 0;
4
4
  const authActionCreator_1 = require("../authActionCreator");
5
5
  const askAuthLogin_1 = require("./askAuthLogin");
6
+ const askAuthLogout_1 = require("./askAuthLogout");
6
7
  const askAuthMain_1 = require("./askAuthMain");
7
8
  exports.authLogic = {
8
9
  askAuthLogin: askAuthLogin_1.askAuthLogin,
10
+ askAuthLogout: askAuthLogout_1.askAuthLogout,
9
11
  askAuthMain: askAuthMain_1.askAuthMain,
10
12
  askAuthUISetUsername: authActionCreator_1.askAuthUISetUsername,
11
13
  askAuthUISetPassword: authActionCreator_1.askAuthUISetPassword,
@@ -33,16 +33,16 @@ function Config() {
33
33
  };
34
34
  const filteredServices = services.filter((s) => s.label.toLowerCase().includes(search.toLowerCase()));
35
35
  const selectedService = selectedServiceOverride || ((_a = services[0]) === null || _a === void 0 ? void 0 : _a.label);
36
- return ((0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { display: 'flex' }, children: [(0, jsx_runtime_1.jsx)(material_1.CssBaseline, {}), (0, jsx_runtime_1.jsxs)(material_1.Drawer, { variant: "permanent", sx: {
36
+ return ((0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { display: 'flex' }, children: [(0, jsx_runtime_1.jsx)(material_1.CssBaseline, {}), (0, jsx_runtime_1.jsxs)(material_1.Drawer, { sx: {
37
37
  width: drawerWidth,
38
38
  flexShrink: 0,
39
39
  [`& .MuiDrawer-paper`]: { width: drawerWidth, boxSizing: 'border-box' },
40
- }, children: [(0, jsx_runtime_1.jsx)(material_1.Toolbar, { children: (0, jsx_runtime_1.jsx)(material_1.TextField, { fullWidth: true, size: "small", variant: "outlined", placeholder: "Search services", value: search, onChange: (e) => setSearch(e.target.value), onKeyDown: (e) => {
40
+ }, variant: "permanent", children: [(0, jsx_runtime_1.jsx)(material_1.Toolbar, { children: (0, jsx_runtime_1.jsx)(material_1.TextField, { fullWidth: true, onChange: (e) => setSearch(e.target.value), onKeyDown: (e) => {
41
41
  var _a, _b;
42
42
  if (e.key === 'Enter') {
43
43
  setSearch((_a = filteredServices[0]) === null || _a === void 0 ? void 0 : _a.label);
44
44
  handleServiceClick((_b = filteredServices[0]) === null || _b === void 0 ? void 0 : _b.label);
45
45
  }
46
- }, sx: { mt: 2 } }) }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: { overflow: 'auto', p: 2 }, children: (0, jsx_runtime_1.jsx)(material_1.List, { children: filteredServices.map((service) => ((0, jsx_runtime_1.jsx)(material_1.ListItem, { disablePadding: true, children: (0, jsx_runtime_1.jsx)(material_1.ListItemButton, { selected: service.label === selectedService, onClick: () => handleServiceClick(service.label), children: (0, jsx_runtime_1.jsx)(material_1.ListItemText, { primary: service.label }) }) }, service.value))) }) })] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { component: "main", sx: { flexGrow: 1, p: 3 }, children: [(0, jsx_runtime_1.jsxs)(material_1.Typography, { variant: "h5", gutterBottom: true, children: [selectedService, " Service"] }), (0, jsx_runtime_1.jsx)(material_1.Tabs, { value: tabIndex, onChange: handleTabChange, sx: { borderBottom: 1, borderColor: 'divider' }, children: sections.map((section, index) => ((0, jsx_runtime_1.jsx)(material_1.Tab, { label: section }, index))) }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { mt: 2 }, children: [sections[tabIndex] === 'General' && (0, jsx_runtime_1.jsxs)(material_1.Typography, { children: ["General settings for ", selectedService] }), sections[tabIndex] === 'Settings' && (0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Custom configuration options" }), sections[tabIndex] === 'Advanced' && (0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Advanced tuning and overrides" })] })] })] }));
46
+ }, placeholder: "Search services", size: "small", sx: { mt: 2 }, value: search, variant: "outlined" }) }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: { overflow: 'auto', p: 2 }, children: (0, jsx_runtime_1.jsx)(material_1.List, { children: filteredServices.map((service) => ((0, jsx_runtime_1.jsx)(material_1.ListItem, { disablePadding: true, children: (0, jsx_runtime_1.jsx)(material_1.ListItemButton, { onClick: () => handleServiceClick(service.label), selected: service.label === selectedService, children: (0, jsx_runtime_1.jsx)(material_1.ListItemText, { primary: service.label }) }) }, service.value))) }) })] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { component: "main", sx: { flexGrow: 1, p: 3 }, children: [(0, jsx_runtime_1.jsxs)(material_1.Typography, { gutterBottom: true, variant: "h5", children: [selectedService, " Service"] }), (0, jsx_runtime_1.jsx)(material_1.Tabs, { onChange: handleTabChange, sx: { borderBottom: 1, borderColor: 'divider' }, value: tabIndex, children: sections.map((section, index) => ((0, jsx_runtime_1.jsx)(material_1.Tab, { label: section }, index))) }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { mt: 2 }, children: [sections[tabIndex] === 'General' && (0, jsx_runtime_1.jsxs)(material_1.Typography, { children: ["General settings for ", selectedService] }), sections[tabIndex] === 'Settings' && (0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Custom configuration options" }), sections[tabIndex] === 'Advanced' && (0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Advanced tuning and overrides" })] })] })] }));
47
47
  }
48
48
  exports.default = Config;
@@ -9,6 +9,6 @@ const TruncatedText_1 = __importDefault(require("./TruncatedText"));
9
9
  const ActionHistoryItem = ({ action, result, expanded }) => {
10
10
  const inputText = JSON.stringify(action.payload, null, 2);
11
11
  const outputText = JSON.stringify(result, null, 2);
12
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("pre", { style: { whiteSpace: 'pre-wrap', wordBreak: 'break-word' }, children: (0, jsx_runtime_1.jsx)(TruncatedText_1.default, { title: "Input", text: inputText, expanded: expanded }) }), (0, jsx_runtime_1.jsx)("pre", { style: { whiteSpace: 'pre-wrap', wordBreak: 'break-word' }, children: (0, jsx_runtime_1.jsx)(TruncatedText_1.default, { title: "Output", text: outputText, expanded: expanded }) })] }));
12
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("pre", { style: { whiteSpace: 'pre-wrap', wordBreak: 'break-word' }, children: (0, jsx_runtime_1.jsx)(TruncatedText_1.default, { expanded: expanded, text: inputText, title: "Input" }) }), (0, jsx_runtime_1.jsx)("pre", { style: { whiteSpace: 'pre-wrap', wordBreak: 'break-word' }, children: (0, jsx_runtime_1.jsx)(TruncatedText_1.default, { expanded: expanded, text: outputText, title: "Output" }) })] }));
13
13
  };
14
14
  exports.ActionHistoryItem = ActionHistoryItem;
@@ -32,7 +32,7 @@ exports.AnyCustomAction = AnyCustomAction;
32
32
  const ActionRender = ({ action, result, isLegacy, expanded }) => {
33
33
  const actionComponentConfig = actionComponentMap_1.default[action.type];
34
34
  if (!isLegacy && action.type === quidproquo_core_1.SystemActionType.Batch) {
35
- return (0, jsx_runtime_1.jsx)(exports.CoreBatchCustomAction, { action: action, result: result, expanded: expanded });
35
+ return (0, jsx_runtime_1.jsx)(exports.CoreBatchCustomAction, { action: action, expanded: expanded, result: result });
36
36
  }
37
37
  const ActionComponent = isLegacy
38
38
  ? ActionHistoryItem_1.ActionHistoryItem
@@ -41,7 +41,7 @@ const ActionRender = ({ action, result, isLegacy, expanded }) => {
41
41
  : actionComponentConfig
42
42
  ? (0, actionComponents_1.getGenericActionRenderer)(actionComponentConfig[0], actionComponentConfig.slice(1))
43
43
  : exports.AnyCustomAction;
44
- return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(ActionComponent, { action: action, result: result, expanded: expanded }) }));
44
+ return ((0, jsx_runtime_1.jsx)(jsx_runtime_1.Fragment, { children: (0, jsx_runtime_1.jsx)(ActionComponent, { action: action, expanded: expanded, result: result }) }));
45
45
  };
46
46
  exports.ActionRender = ActionRender;
47
47
  const AnyActionHistoryItem = ({ action, result }) => {
@@ -53,6 +53,6 @@ const AnyActionHistoryItem = ({ action, result }) => {
53
53
  const toggleLegacy = () => {
54
54
  setLegacy(!legacy);
55
55
  };
56
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { display: "flex", alignItems: "center", children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", component: "span", children: action.type.split('/').slice(-2).join('::') }), (0, jsx_runtime_1.jsx)(material_1.Tooltip, { title: expanded ? 'Collapse' : 'Expand', children: (0, jsx_runtime_1.jsx)(material_1.IconButton, { size: "small", onClick: toggleExpanded, children: expanded ? (0, jsx_runtime_1.jsx)(ExpandLess_1.default, {}) : (0, jsx_runtime_1.jsx)(ExpandMore_1.default, {}) }) }), (0, jsx_runtime_1.jsx)(material_1.Tooltip, { title: "Legacy View", children: (0, jsx_runtime_1.jsx)(material_1.IconButton, { size: "small", onClick: toggleLegacy, children: (0, jsx_runtime_1.jsx)(History_1.default, { color: legacy ? 'primary' : 'inherit' }) }) })] }), (0, jsx_runtime_1.jsx)(exports.ActionRender, { action: action, result: result, isLegacy: legacy, expanded: expanded })] }));
56
+ return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { alignItems: "center", display: "flex", children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { component: "span", variant: "h6", children: action.type.split('/').slice(-2).join('::') }), (0, jsx_runtime_1.jsx)(material_1.Tooltip, { title: expanded ? 'Collapse' : 'Expand', children: (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: toggleExpanded, size: "small", children: expanded ? (0, jsx_runtime_1.jsx)(ExpandLess_1.default, {}) : (0, jsx_runtime_1.jsx)(ExpandMore_1.default, {}) }) }), (0, jsx_runtime_1.jsx)(material_1.Tooltip, { title: "Legacy View", children: (0, jsx_runtime_1.jsx)(material_1.IconButton, { onClick: toggleLegacy, size: "small", children: (0, jsx_runtime_1.jsx)(History_1.default, { color: legacy ? 'primary' : 'inherit' }) }) })] }), (0, jsx_runtime_1.jsx)(exports.ActionRender, { action: action, expanded: expanded, isLegacy: legacy, result: result })] }));
57
57
  };
58
58
  exports.AnyActionHistoryItem = AnyActionHistoryItem;
@@ -107,9 +107,9 @@ const AdminLogGrid = ({ logs, isLoading, searchProgress }) => {
107
107
  background-color: #E3E3E3 !important;
108
108
  color: #000;
109
109
  }
110
- ` }), (0, jsx_runtime_1.jsx)(x_data_grid_1.DataGrid, { components: {
110
+ ` }), (0, jsx_runtime_1.jsx)(x_data_grid_1.DataGrid, { autoPageSize: true, columns: columns, components: {
111
111
  Pagination: DataGridPagination_1.DataGridPagination,
112
- LoadingOverlay: () => (0, jsx_runtime_1.jsx)(LinearProgress_1.default, { variant: "determinate", value: searchProgress }),
113
- }, columns: columns, rows: logs.map((log, i) => (Object.assign(Object.assign({}, log), { id: `${i}` }))), autoPageSize: true, loading: isLoading, onRowClick: onRowClick, getRowClassName: getRowClassName }), (0, jsx_runtime_1.jsx)(LogDialog_1.LogDialog, { open: !!selectedLogCorrelation, handleClose: clearSelectedLogCorrelation, logCorrelation: selectedLogCorrelation, storyResultMetadatas: logs, setSelectedLogCorrelation: setSelectedLogCorrelation })] }));
112
+ LoadingOverlay: () => (0, jsx_runtime_1.jsx)(LinearProgress_1.default, { value: searchProgress, variant: "determinate" }),
113
+ }, getRowClassName: getRowClassName, loading: isLoading, onRowClick: onRowClick, rows: logs.map((log, i) => (Object.assign(Object.assign({}, log), { id: `${i}` }))) }), (0, jsx_runtime_1.jsx)(LogDialog_1.LogDialog, { handleClose: clearSelectedLogCorrelation, logCorrelation: selectedLogCorrelation, open: !!selectedLogCorrelation, setSelectedLogCorrelation: setSelectedLogCorrelation, storyResultMetadatas: logs })] }));
114
114
  };
115
115
  exports.AdminLogGrid = AdminLogGrid;
@@ -35,14 +35,14 @@ function AdminLogSearchBar({ onSearch }) {
35
35
  updateStartAndEndTimeSpan(minutes);
36
36
  handleQuickTimeClose();
37
37
  };
38
- return ((0, jsx_runtime_1.jsxs)(x_date_pickers_1.LocalizationProvider, { dateAdapter: AdapterDateFns_1.AdapterDateFns, children: [(0, jsx_runtime_1.jsxs)(Grid_1.default, { container: true, columns: 12, spacing: 2, children: [(0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 3, children: (0, jsx_runtime_1.jsxs)(FormControl_1.default, { fullWidth: true, children: [(0, jsx_runtime_1.jsx)(InputLabel_1.default, { id: "runtime-select-label", children: "Log Level" }), (0, jsx_runtime_1.jsx)(Select_1.default, { labelId: "runtime-select-label", id: "demo-simple-select", value: logLevel, label: "Log Level", onChange: handleLogLevelOnChange, children: quidproquo_core_1.logLevelEnumLookups.map((key) => ((0, jsx_runtime_1.jsx)(MenuItem_1.default, { value: key, children: key }, key))) })] }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 3, children: (0, jsx_runtime_1.jsx)(FormControl_1.default, { fullWidth: true, children: (0, jsx_runtime_1.jsx)(material_1.Autocomplete, { getOptionLabel: (option) => option.label, options: serviceOptions, value: serviceOptions.find((o) => o.value === service) || null, onChange: handleServiceOnChange, renderInput: (params) => ((0, jsx_runtime_1.jsx)(TextField_1.default, Object.assign({}, params, { label: "Service Name", InputLabelProps: {
38
+ return ((0, jsx_runtime_1.jsxs)(x_date_pickers_1.LocalizationProvider, { dateAdapter: AdapterDateFns_1.AdapterDateFns, children: [(0, jsx_runtime_1.jsxs)(Grid_1.default, { columns: 12, container: true, spacing: 2, children: [(0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 3, children: (0, jsx_runtime_1.jsxs)(FormControl_1.default, { fullWidth: true, children: [(0, jsx_runtime_1.jsx)(InputLabel_1.default, { id: "runtime-select-label", children: "Log Level" }), (0, jsx_runtime_1.jsx)(Select_1.default, { id: "demo-simple-select", label: "Log Level", labelId: "runtime-select-label", onChange: handleLogLevelOnChange, value: logLevel, children: quidproquo_core_1.logLevelEnumLookups.map((key) => ((0, jsx_runtime_1.jsx)(MenuItem_1.default, { value: key, children: key }, key))) })] }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 3, children: (0, jsx_runtime_1.jsx)(FormControl_1.default, { fullWidth: true, children: (0, jsx_runtime_1.jsx)(material_1.Autocomplete, { getOptionLabel: (option) => option.label, onChange: handleServiceOnChange, options: serviceOptions, renderInput: (params) => ((0, jsx_runtime_1.jsx)(TextField_1.default, Object.assign({}, params, { InputLabelProps: {
39
39
  shrink: true,
40
- } }))) }) }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 3, children: (0, jsx_runtime_1.jsxs)(system_1.Box, { position: "relative", children: [(0, jsx_runtime_1.jsx)(FormControl_1.default, { fullWidth: true, children: (0, jsx_runtime_1.jsx)(x_date_pickers_1.DateTimePicker, { label: "Start DateTime", value: startDate, onChange: handleStartDateChange }) }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { "aria-label": "quick time select", "aria-controls": "quick-time-menu", "aria-haspopup": "true", onClick: handleQuickTimeClick, sx: {
40
+ }, label: "Service Name" }))), value: serviceOptions.find((o) => o.value === service) || null }) }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 3, children: (0, jsx_runtime_1.jsxs)(system_1.Box, { position: "relative", children: [(0, jsx_runtime_1.jsx)(FormControl_1.default, { fullWidth: true, children: (0, jsx_runtime_1.jsx)(x_date_pickers_1.DateTimePicker, { label: "Start DateTime", onChange: handleStartDateChange, value: startDate }) }), (0, jsx_runtime_1.jsx)(material_1.IconButton, { "aria-controls": "quick-time-menu", "aria-haspopup": "true", "aria-label": "quick time select", onClick: handleQuickTimeClick, sx: {
41
41
  position: 'absolute',
42
42
  right: '-28px',
43
43
  top: '50%',
44
44
  transform: 'translateY(-50%)',
45
- }, children: (0, jsx_runtime_1.jsx)(ExpandMore_1.default, {}) })] }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 3, children: (0, jsx_runtime_1.jsx)(FormControl_1.default, { fullWidth: true, children: (0, jsx_runtime_1.jsx)(x_date_pickers_1.DateTimePicker, { label: "End DateTime", value: endDate, onChange: handleEndDateChange }) }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 10, children: (0, jsx_runtime_1.jsx)(FormControl_1.default, { fullWidth: true, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { label: "Message", value: msg, onChange: handleMsgOnChange, InputLabelProps: {
45
+ }, children: (0, jsx_runtime_1.jsx)(ExpandMore_1.default, {}) })] }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 3, children: (0, jsx_runtime_1.jsx)(FormControl_1.default, { fullWidth: true, children: (0, jsx_runtime_1.jsx)(x_date_pickers_1.DateTimePicker, { label: "End DateTime", onChange: handleEndDateChange, value: endDate }) }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 10, children: (0, jsx_runtime_1.jsx)(FormControl_1.default, { fullWidth: true, children: (0, jsx_runtime_1.jsx)(TextField_1.default, { InputLabelProps: {
46
46
  shrink: true,
47
- } }) }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 2, children: (0, jsx_runtime_1.jsx)(AsyncButton_1.AsyncButton, { onClick: () => onSearch(), children: "Search" }) })] }), (0, jsx_runtime_1.jsxs)(material_1.Menu, { id: "quick-time-menu", anchorEl: anchorEl, keepMounted: true, open: Boolean(anchorEl), onClose: handleQuickTimeClose, children: [(0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(5), children: "Last 5 minutes" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(30), children: "Last 30 minutes" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(1 * 60), children: "Last hour" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(3 * 60), children: "Last 3 hours" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(8 * 60), children: "Last 8 hours" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(16 * 60), children: "Last 16 hours" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(24 * 60), children: "Last 24 hours" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(7 * 24 * 60), children: "Last 7 days" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(30 * 24 * 60), children: "Last month" })] })] }));
47
+ }, label: "Message", onChange: handleMsgOnChange, value: msg }) }) }), (0, jsx_runtime_1.jsx)(Grid_1.default, { item: true, xs: 2, children: (0, jsx_runtime_1.jsx)(AsyncButton_1.AsyncButton, { onClick: () => onSearch(), children: "Search" }) })] }), (0, jsx_runtime_1.jsxs)(material_1.Menu, { anchorEl: anchorEl, id: "quick-time-menu", keepMounted: true, onClose: handleQuickTimeClose, open: Boolean(anchorEl), children: [(0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(5), children: "Last 5 minutes" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(30), children: "Last 30 minutes" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(1 * 60), children: "Last hour" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(3 * 60), children: "Last 3 hours" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(8 * 60), children: "Last 8 hours" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(16 * 60), children: "Last 16 hours" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(24 * 60), children: "Last 24 hours" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(7 * 24 * 60), children: "Last 7 days" }), (0, jsx_runtime_1.jsx)(MenuItem_1.default, { onClick: () => handleQuickTimeSelect(30 * 24 * 60), children: "Last month" })] })] }));
48
48
  }
@@ -10,6 +10,6 @@ const hooks_1 = require("./hooks");
10
10
  const AdminLogs = () => {
11
11
  const { logLogs, searchProgress, onSearch } = (0, hooks_1.useLogLogSearch)();
12
12
  const isLoading = (0, useIsLoading_1.useIsLoading)();
13
- return ((0, jsx_runtime_1.jsx)(TabViewBox_1.TabViewBox, { header: () => (0, jsx_runtime_1.jsx)(AdminLogSearchBar_1.AdminLogSearchBar, { onSearch: onSearch }), body: () => (0, jsx_runtime_1.jsx)(AdminLogGrid_1.AdminLogGrid, { logs: logLogs, isLoading: isLoading, searchProgress: searchProgress }) }));
13
+ return ((0, jsx_runtime_1.jsx)(TabViewBox_1.TabViewBox, { body: () => (0, jsx_runtime_1.jsx)(AdminLogGrid_1.AdminLogGrid, { isLoading: isLoading, logs: logLogs, searchProgress: searchProgress }), header: () => (0, jsx_runtime_1.jsx)(AdminLogSearchBar_1.AdminLogSearchBar, { onSearch: onSearch }) }));
14
14
  };
15
15
  exports.AdminLogs = AdminLogs;
@@ -60,7 +60,8 @@ const Dashboard = () => {
60
60
  const [realtimeLogs, setRealtimeLogs] = react_1.default.useState([]);
61
61
  const { onSearch, logs: weeklyLogs } = (0, hooks_1.useLogSearch)();
62
62
  const isLoading = (0, useIsLoading_1.useIsLoading)();
63
- (0, react_1.useEffect)(() => {
63
+ // Stable identity so the mount-only effect below can list it as a dependency.
64
+ const runInitialSearch = (0, quidproquo_web_react_1.useEffectCallback)(() => {
64
65
  const currentDate = new Date();
65
66
  const sevenDaysAgo = new Date(currentDate.getTime() - 7 * 24 * 60 * 60 * 1000);
66
67
  const isoDateSevenDaysAgo = sevenDaysAgo.toISOString();
@@ -78,7 +79,10 @@ const Dashboard = () => {
78
79
  onlyErrors: true,
79
80
  };
80
81
  onSearch(searchParams);
81
- }, []);
82
+ });
83
+ (0, react_1.useEffect)(() => {
84
+ runInitialSearch();
85
+ }, [runInitialSearch]);
82
86
  (0, quidproquo_web_react_2.useSubscribeToWebSocketEvent)(quidproquo_webserver_1.WebSocketQueueQpqAdminServerMessageEventType.LogMetadata, (webSocketService, message) => {
83
87
  // Add the log to the list if its an error
84
88
  if (message.payload.log.error) {
@@ -90,8 +94,8 @@ const Dashboard = () => {
90
94
  const uniqueLogs = (0, quidproquo_web_1.uniqueBy)([...realtimeLogs, ...weeklyLogs], (log) => log.correlation);
91
95
  return uniqueLogs.sort((a, b) => new Date(b.startedAt).getTime() - new Date(a.startedAt).getTime());
92
96
  }, [realtimeLogs, weeklyLogs]);
93
- const dailyErrorCount = (0, react_1.useMemo)(() => getLogCountForSinceXDaysAgo(allLogs, hoursPassedToday / 24), [allLogs, getHoursSinceStartOfDay]);
97
+ const dailyErrorCount = (0, react_1.useMemo)(() => getLogCountForSinceXDaysAgo(allLogs, hoursPassedToday / 24), [allLogs, hoursPassedToday]);
94
98
  const weeklyErrorCount = (0, react_1.useMemo)(() => getLogCountForSinceXDaysAgo(allLogs, 7), [allLogs]);
95
- return ((0, jsx_runtime_1.jsxs)(TabViewBox_1.TabViewBox, { children: [(0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 2, sx: { mb: 2 }, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsxs)(material_1.Paper, { sx: { p: 2, textAlign: 'center' }, children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Daily Errors" }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h4", children: dailyErrorCount })] }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsxs)(material_1.Paper, { sx: { p: 2, textAlign: 'center' }, children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Weekly Errors" }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h4", children: weeklyErrorCount })] }) })] }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: { flex: 1, overflow: 'auto' }, children: (0, jsx_runtime_1.jsx)(LogMetadataGrid_1.LogMetadataGrid, { logs: allLogs, isLoading: isLoading }) })] }));
99
+ return ((0, jsx_runtime_1.jsxs)(TabViewBox_1.TabViewBox, { children: [(0, jsx_runtime_1.jsxs)(material_1.Grid, { container: true, spacing: 2, sx: { mb: 2 }, children: [(0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsxs)(material_1.Paper, { sx: { p: 2, textAlign: 'center' }, children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Daily Errors" }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h4", children: dailyErrorCount })] }) }), (0, jsx_runtime_1.jsx)(material_1.Grid, { item: true, xs: 6, children: (0, jsx_runtime_1.jsxs)(material_1.Paper, { sx: { p: 2, textAlign: 'center' }, children: [(0, jsx_runtime_1.jsx)(material_1.Typography, { children: "Weekly Errors" }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h4", children: weeklyErrorCount })] }) })] }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: { flex: 1, overflow: 'auto' }, children: (0, jsx_runtime_1.jsx)(LogMetadataGrid_1.LogMetadataGrid, { isLoading: isLoading, logs: allLogs }) })] }));
96
100
  };
97
101
  exports.Dashboard = Dashboard;
@@ -16,7 +16,7 @@ const TimelineEvent = ({ event, level, setSelectedLogCorrelation, scale, parrent
16
16
  height: EVENT_HEIGHT,
17
17
  textAlign: 'right',
18
18
  display: totalTimeOffset ? 'inline-block' : 'none',
19
- } }), (0, jsx_runtime_1.jsxs)("div", { style: {
19
+ } }), (0, jsx_runtime_1.jsxs)("div", { onClick: () => setSelectedLogCorrelation(event.correlation), style: {
20
20
  whiteSpace: 'nowrap',
21
21
  width: `${eventWidth}px`,
22
22
  height: EVENT_HEIGHT,
@@ -25,12 +25,12 @@ const TimelineEvent = ({ event, level, setSelectedLogCorrelation, scale, parrent
25
25
  padding: 3,
26
26
  borderRadius: 4,
27
27
  display: 'inline-block',
28
- }, onClick: () => setSelectedLogCorrelation(event.correlation), children: [event.moduleName, "::", event.generic.split('::').pop(), " - @", parrentTimeOffsetMs, "ms - ", event.executionTimeMs, "ms"] }), event.children.map((child) => {
28
+ }, children: [event.moduleName, "::", event.generic.split('::').pop(), " - @", parrentTimeOffsetMs, "ms - ", event.executionTimeMs, "ms"] }), event.children.map((child) => {
29
29
  const childDate = new Date(child.startedAt);
30
30
  const eventDate = new Date(event.startedAt);
31
31
  const offsetMs = childDate.getTime() - eventDate.getTime();
32
32
  const totalOffset = totalParrentTimeOffsetMs + offsetMs;
33
- return ((0, jsx_runtime_1.jsx)(TimelineEvent, { event: child, setSelectedLogCorrelation: setSelectedLogCorrelation, level: level + 1, scale: scale, parrentTimeOffsetMs: offsetMs, totalParrentTimeOffsetMs: totalOffset }, child.correlation));
33
+ return ((0, jsx_runtime_1.jsx)(TimelineEvent, { event: child, level: level + 1, parrentTimeOffsetMs: offsetMs, scale: scale, setSelectedLogCorrelation: setSelectedLogCorrelation, totalParrentTimeOffsetMs: totalOffset }, child.correlation));
34
34
  })] }));
35
35
  };
36
36
  const EventTimeline = ({ logCorrelation, setSelectedLogCorrelation, isVisible, treeApi }) => {
@@ -73,6 +73,6 @@ const EventTimeline = ({ logCorrelation, setSelectedLogCorrelation, isVisible, t
73
73
  const endDate = new Date(latestFinishedAt);
74
74
  const offsetMs = endDate.getTime() - startDate.getTime();
75
75
  const scale = 1100 / offsetMs + scaleOffset;
76
- return ((0, jsx_runtime_1.jsxs)("div", { style: { position: 'relative', width: '100%', height: '100%' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { height: 24 }, children: [(0, jsx_runtime_1.jsx)("b", { children: (0, quidproquo_core_1.formatDuration)(totalExecutionTime) }), (0, jsx_runtime_1.jsx)("i", { children: " of compute over " }), (0, jsx_runtime_1.jsx)("b", { children: (0, quidproquo_core_1.formatDuration)(offsetMs) })] }), (0, jsx_runtime_1.jsx)("div", { ref: setTimelineRef, onWheel: handleOnWheel, style: { width: '100%', height: 'calc(100% - 24px)' }, children: treeApi.treeDataWithNoQpqActions[0] && ((0, jsx_runtime_1.jsx)(TimelineEvent, { event: treeApi.treeDataWithNoQpqActions[0], level: 0, setSelectedLogCorrelation: setSelectedLogCorrelation, scale: scale, parrentTimeOffsetMs: 0, totalParrentTimeOffsetMs: 0 })) })] }));
76
+ return ((0, jsx_runtime_1.jsxs)("div", { style: { position: 'relative', width: '100%', height: '100%' }, children: [(0, jsx_runtime_1.jsxs)("div", { style: { height: 24 }, children: [(0, jsx_runtime_1.jsx)("b", { children: (0, quidproquo_core_1.formatDuration)(totalExecutionTime) }), (0, jsx_runtime_1.jsx)("i", { children: " of compute over " }), (0, jsx_runtime_1.jsx)("b", { children: (0, quidproquo_core_1.formatDuration)(offsetMs) })] }), (0, jsx_runtime_1.jsx)("div", { ref: setTimelineRef, onWheel: handleOnWheel, style: { width: '100%', height: 'calc(100% - 24px)' }, children: treeApi.treeDataWithNoQpqActions[0] && ((0, jsx_runtime_1.jsx)(TimelineEvent, { event: treeApi.treeDataWithNoQpqActions[0], level: 0, parrentTimeOffsetMs: 0, scale: scale, setSelectedLogCorrelation: setSelectedLogCorrelation, totalParrentTimeOffsetMs: 0 })) })] }));
77
77
  };
78
78
  exports.EventTimeline = EventTimeline;
@@ -28,10 +28,8 @@ const HelpChat = ({ logCorrelation }) => {
28
28
  const chatContainerRef = (0, react_1.useRef)(null);
29
29
  const accessToken = (0, quidproquo_web_react_1.useAuthAccessToken)();
30
30
  const baseUrlResolvers = (0, quidproquo_web_react_1.useBaseUrlResolvers)();
31
- (0, react_1.useEffect)(() => {
32
- fetchChatMessages();
33
- }, []);
34
- const fetchChatMessages = () => __awaiter(void 0, void 0, void 0, function* () {
31
+ // Stable identity so the mount-only effect below can list it as a dependency.
32
+ const fetchChatMessages = (0, quidproquo_web_react_1.useEffectCallback)(() => __awaiter(void 0, void 0, void 0, function* () {
35
33
  const listLogChatMessages = {
36
34
  correlationId: logCorrelation,
37
35
  nextPageKey: nextPageKey,
@@ -44,7 +42,10 @@ const HelpChat = ({ logCorrelation }) => {
44
42
  finally {
45
43
  // Do nothing
46
44
  }
47
- });
45
+ }));
46
+ (0, react_1.useEffect)(() => {
47
+ fetchChatMessages();
48
+ }, [fetchChatMessages]);
48
49
  const handleSendMessage = () => __awaiter(void 0, void 0, void 0, function* () {
49
50
  if (inputMessage.trim() !== '') {
50
51
  const newMessage = {
@@ -79,7 +80,7 @@ const HelpChat = ({ logCorrelation }) => {
79
80
  chatContainerRef.current.scrollTop = chatContainerRef.current.scrollHeight;
80
81
  }
81
82
  }, [chatMessages]);
82
- return ((0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { display: 'flex', flexDirection: 'column', height: '100%' }, children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { flexGrow: 1, overflowY: 'auto', p: 2 }, ref: chatContainerRef, children: [chatMessages.map((message, index) => ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
83
+ return ((0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { display: 'flex', flexDirection: 'column', height: '100%' }, children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { ref: chatContainerRef, sx: { flexGrow: 1, overflowY: 'auto', p: 2 }, children: [chatMessages.map((message, index) => ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: {
83
84
  display: 'flex',
84
85
  alignItems: 'flex-start',
85
86
  mb: 2,
@@ -104,6 +105,6 @@ const HelpChat = ({ logCorrelation }) => {
104
105
  backgroundColor: 'grey.300',
105
106
  color: 'black',
106
107
  maxWidth: '70%',
107
- }, children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { display: 'flex', alignItems: 'center', mb: 1 }, children: [(0, jsx_runtime_1.jsx)(material_1.Avatar, { sx: { mr: 1, bgcolor: 'grey.500' }, children: (0, jsx_runtime_1.jsx)(icons_material_1.Android, {}) }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "subtitle2", children: "AI Assistant" })] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { display: 'flex', alignItems: 'center' }, children: [(0, jsx_runtime_1.jsx)(material_1.CircularProgress, { size: 20, sx: { mr: 1 } }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "body1", children: "Thinking..." })] })] }) }))] }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: { p: 2, borderTop: '1px solid #ccc' }, children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { display: 'flex' }, children: [(0, jsx_runtime_1.jsx)(material_1.TextField, { fullWidth: true, variant: "outlined", placeholder: "Type your message...", value: inputMessage, onChange: (e) => setInputMessage(e.target.value), onKeyDown: handleKeyPress, sx: { mr: 2 } }), (0, jsx_runtime_1.jsx)(material_1.Button, { variant: "contained", onClick: handleSendMessage, children: "Send" })] }) })] }));
108
+ }, children: [(0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { display: 'flex', alignItems: 'center', mb: 1 }, children: [(0, jsx_runtime_1.jsx)(material_1.Avatar, { sx: { mr: 1, bgcolor: 'grey.500' }, children: (0, jsx_runtime_1.jsx)(icons_material_1.Android, {}) }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "subtitle2", children: "AI Assistant" })] }), (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { display: 'flex', alignItems: 'center' }, children: [(0, jsx_runtime_1.jsx)(material_1.CircularProgress, { size: 20, sx: { mr: 1 } }), (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "body1", children: "Thinking..." })] })] }) }))] }), (0, jsx_runtime_1.jsx)(material_1.Box, { sx: { p: 2, borderTop: '1px solid #ccc' }, children: (0, jsx_runtime_1.jsxs)(material_1.Box, { sx: { display: 'flex' }, children: [(0, jsx_runtime_1.jsx)(material_1.TextField, { fullWidth: true, onChange: (e) => setInputMessage(e.target.value), onKeyDown: handleKeyPress, placeholder: "Type your message...", sx: { mr: 2 }, value: inputMessage, variant: "outlined" }), (0, jsx_runtime_1.jsx)(material_1.Button, { onClick: handleSendMessage, variant: "contained", children: "Send" })] }) })] }));
108
109
  };
109
110
  exports.HelpChat = HelpChat;
@@ -9,30 +9,33 @@ const material_1 = require("@mui/material");
9
9
  const BACKGROUND_COLOR = '#c1c1c1';
10
10
  // Here we're using `renderCustomNodeElement` to represent each node
11
11
  // as an SVG `rect` instead of the default `circle`.
12
- const renderRectSvgNode = (setSelectedLogCorrelation, highlightCorrelationId) => ({ nodeDatum }) => {
13
- // TODO: Workout the nodeDateum type
14
- const color = nodeDatum.correlation === highlightCorrelationId
15
- ? nodeDatum.error
16
- ? '#8B0000'
17
- : '#00008B' // Very dark red for selected errors, dark blue for selected non-errors
18
- : nodeDatum.error
19
- ? 'red'
20
- : 'white'; // Bright red for non-selected errors, white for non-selected non-errors
21
- // For story runtime types, collapse the runtimeType line away so the generic
22
- // info takes its place other runtime types keep their full label stack.
23
- const isStoryRuntimeType = nodeDatum.runtimeType === quidproquo_core_1.QpqRuntimeType.EXECUTE_STORY || nodeDatum.runtimeType === quidproquo_core_1.QpqRuntimeType.EXECUTE_IMPLEMENTATION_STORY;
24
- const displayText = (nodeDatum.generic || '').split('::').pop();
25
- const textLines = isStoryRuntimeType
26
- ? [nodeDatum.moduleName, displayText, nodeDatum.error || '']
27
- : [nodeDatum.moduleName, nodeDatum.runtimeType, displayText, nodeDatum.error || ''];
28
- return ((0, jsx_runtime_1.jsxs)("g", { children: [(0, jsx_runtime_1.jsx)("circle", { r: 10, fill: color, x: "10", y: "10", onClick: () => setSelectedLogCorrelation(nodeDatum.correlation) }), textLines
29
- .filter((t) => !!t)
30
- .map((text, i) => {
31
- const x = 0;
32
- const y = i === 0 ? -20 : 10 + i * 20;
33
- const fontSize = i === 0 ? 30 : 15;
34
- return ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("rect", { x: x - 50, y: y - fontSize / 2 - 8, width: "100", height: fontSize, fill: BACKGROUND_COLOR, strokeWidth: "0" }), (0, jsx_runtime_1.jsx)("text", { textAnchor: "middle", fontSize: fontSize, fill: nodeDatum.error ? 'red' : 'black', strokeWidth: 0, y: y, children: text })] }, `${i}`));
35
- })] }));
12
+ const renderRectSvgNode = (setSelectedLogCorrelation, highlightCorrelationId) => {
13
+ const RectSvgNode = ({ nodeDatum }) => {
14
+ // TODO: Workout the nodeDateum type
15
+ const color = nodeDatum.correlation === highlightCorrelationId
16
+ ? nodeDatum.error
17
+ ? '#8B0000'
18
+ : '#00008B' // Very dark red for selected errors, dark blue for selected non-errors
19
+ : nodeDatum.error
20
+ ? 'red'
21
+ : 'white'; // Bright red for non-selected errors, white for non-selected non-errors
22
+ // For story runtime types, collapse the runtimeType line away so the generic
23
+ // info takes its place other runtime types keep their full label stack.
24
+ const isStoryRuntimeType = nodeDatum.runtimeType === quidproquo_core_1.QpqRuntimeType.EXECUTE_STORY || nodeDatum.runtimeType === quidproquo_core_1.QpqRuntimeType.EXECUTE_IMPLEMENTATION_STORY;
25
+ const displayText = (nodeDatum.generic || '').split('::').pop();
26
+ const textLines = isStoryRuntimeType
27
+ ? [nodeDatum.moduleName, displayText, nodeDatum.error || '']
28
+ : [nodeDatum.moduleName, nodeDatum.runtimeType, displayText, nodeDatum.error || ''];
29
+ return ((0, jsx_runtime_1.jsxs)("g", { children: [(0, jsx_runtime_1.jsx)("circle", { fill: color, onClick: () => setSelectedLogCorrelation(nodeDatum.correlation), r: 10, x: "10", y: "10" }), textLines
30
+ .filter((t) => !!t)
31
+ .map((text, i) => {
32
+ const x = 0;
33
+ const y = i === 0 ? -20 : 10 + i * 20;
34
+ const fontSize = i === 0 ? 30 : 15;
35
+ return ((0, jsx_runtime_1.jsxs)(react_1.Fragment, { children: [(0, jsx_runtime_1.jsx)("rect", { fill: BACKGROUND_COLOR, height: fontSize, strokeWidth: "0", width: "100", x: x - 50, y: y - fontSize / 2 - 8 }), (0, jsx_runtime_1.jsx)("text", { fill: nodeDatum.error ? 'red' : 'black', fontSize: fontSize, strokeWidth: 0, textAnchor: "middle", y: y, children: text })] }, `${i}`));
36
+ })] }));
37
+ };
38
+ return RectSvgNode;
36
39
  };
37
40
  const LogCorrelationTreeComponent = ({ correlationId, highlightCorrelationId, setSelectedLogCorrelation, isVisible, treeApi, }) => {
38
41
  const treeContainer = (0, react_1.useRef)(null);
@@ -12,6 +12,6 @@ const LogCorrelations = ({ logCorrelation, setSelectedLogCorrelation, isVisible,
12
12
  alignItems: 'center',
13
13
  justifyContent: 'center',
14
14
  height: '100%',
15
- }, children: (0, jsx_runtime_1.jsx)(LogCorrelationTree_1.LogCorrelationTree, { correlationId: logCorrelation, highlightCorrelationId: logCorrelation, setSelectedLogCorrelation: setSelectedLogCorrelation, isVisible: isVisible, treeApi: treeApi }) }));
15
+ }, children: (0, jsx_runtime_1.jsx)(LogCorrelationTree_1.LogCorrelationTree, { correlationId: logCorrelation, highlightCorrelationId: logCorrelation, isVisible: isVisible, setSelectedLogCorrelation: setSelectedLogCorrelation, treeApi: treeApi }) }));
16
16
  };
17
17
  exports.LogCorrelations = LogCorrelations;
@@ -40,6 +40,6 @@ const LogDetails = ({ log, hideFastActions, orderByDuration, }) => {
40
40
  return durationB - durationA;
41
41
  });
42
42
  }
43
- return ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: { width: 1 }, children: (0, jsx_runtime_1.jsx)(material_1.Table, { sx: { tableLayout: 'fixed' }, children: (0, jsx_runtime_1.jsxs)(material_1.TableBody, { children: [(0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, { sx: leftTableCell, children: (0, jsx_runtime_1.jsx)(ActionHistoryItemTimeStamp_1.ActionHistoryItemTimeStamp, { startedAt: log.startedAt, finishedAt: log.startedAt }) }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { sx: rightTableCell, children: (0, jsx_runtime_1.jsx)(LogSummaryDetails_1.LogSummaryDetails, { log: log }) })] }), history.map((historyItem, index) => ((0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, { sx: leftTableCell, children: (0, jsx_runtime_1.jsx)(ActionHistoryItemTimeStamp_1.ActionHistoryItemTimeStamp, { startedAt: historyItem.startedAt, finishedAt: historyItem.finishedAt }) }), (0, jsx_runtime_1.jsxs)(material_1.TableCell, { sx: rightTableCell, children: [historyItem.act && (0, jsx_runtime_1.jsx)(ActionRender_1.AnyActionHistoryItem, { action: historyItem.act, result: historyItem.res }), !historyItem.act && (0, jsx_runtime_1.jsx)("div", { children: "No Action" })] })] }, `${index}`))), (0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, { sx: leftTableCell, children: (0, jsx_runtime_1.jsx)(ActionHistoryItemTimeStamp_1.ActionHistoryItemTimeStamp, { startedAt: log.finishedAt, finishedAt: log.finishedAt }) }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { sx: rightTableCell, children: (0, jsx_runtime_1.jsx)(LogSummaryReturn_1.LogSummaryReturn, { log: log }) })] }), (log === null || log === void 0 ? void 0 : log.logs) && ((0, jsx_runtime_1.jsx)(material_1.TableRow, { children: (0, jsx_runtime_1.jsxs)(material_1.TableCell, { colSpan: 2, style: { width: '100%' }, children: [(0, jsx_runtime_1.jsx)("div", { style: { paddingBottom: '10px' }, children: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "h6", component: "span", children: "Caught console.log events" }) }), (0, jsx_runtime_1.jsx)(ConsoleLogViewer_1.default, { logs: log === null || log === void 0 ? void 0 : log.logs })] }) }))] }) }) }));
43
+ return ((0, jsx_runtime_1.jsx)(material_1.Box, { sx: { width: 1 }, children: (0, jsx_runtime_1.jsx)(material_1.Table, { sx: { tableLayout: 'fixed' }, children: (0, jsx_runtime_1.jsxs)(material_1.TableBody, { children: [(0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, { sx: leftTableCell, children: (0, jsx_runtime_1.jsx)(ActionHistoryItemTimeStamp_1.ActionHistoryItemTimeStamp, { finishedAt: log.startedAt, startedAt: log.startedAt }) }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { sx: rightTableCell, children: (0, jsx_runtime_1.jsx)(LogSummaryDetails_1.LogSummaryDetails, { log: log }) })] }), history.map((historyItem, index) => ((0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, { sx: leftTableCell, children: (0, jsx_runtime_1.jsx)(ActionHistoryItemTimeStamp_1.ActionHistoryItemTimeStamp, { finishedAt: historyItem.finishedAt, startedAt: historyItem.startedAt }) }), (0, jsx_runtime_1.jsxs)(material_1.TableCell, { sx: rightTableCell, children: [historyItem.act && (0, jsx_runtime_1.jsx)(ActionRender_1.AnyActionHistoryItem, { action: historyItem.act, result: historyItem.res }), !historyItem.act && (0, jsx_runtime_1.jsx)("div", { children: "No Action" })] })] }, `${index}`))), (0, jsx_runtime_1.jsxs)(material_1.TableRow, { children: [(0, jsx_runtime_1.jsx)(material_1.TableCell, { sx: leftTableCell, children: (0, jsx_runtime_1.jsx)(ActionHistoryItemTimeStamp_1.ActionHistoryItemTimeStamp, { finishedAt: log.finishedAt, startedAt: log.finishedAt }) }), (0, jsx_runtime_1.jsx)(material_1.TableCell, { sx: rightTableCell, children: (0, jsx_runtime_1.jsx)(LogSummaryReturn_1.LogSummaryReturn, { log: log }) })] }), (log === null || log === void 0 ? void 0 : log.logs) && ((0, jsx_runtime_1.jsx)(material_1.TableRow, { children: (0, jsx_runtime_1.jsxs)(material_1.TableCell, { colSpan: 2, style: { width: '100%' }, children: [(0, jsx_runtime_1.jsx)("div", { style: { paddingBottom: '10px' }, children: (0, jsx_runtime_1.jsx)(material_1.Typography, { component: "span", variant: "h6", children: "Caught console.log events" }) }), (0, jsx_runtime_1.jsx)(ConsoleLogViewer_1.default, { logs: log === null || log === void 0 ? void 0 : log.logs })] }) }))] }) }) }));
44
44
  };
45
45
  exports.LogDetails = LogDetails;
@@ -44,21 +44,21 @@ const LogDialog = ({ logCorrelation, open, handleClose, setSelectedLogCorrelatio
44
44
  logDialogStateApi.setSelectedTab(newValue);
45
45
  };
46
46
  const treeApi = (0, hooks_1.useLogTreeData)(logCorrelation, false);
47
- return ((0, jsx_runtime_1.jsxs)(material_1.Dialog, { open: open, scroll: 'paper', "aria-labelledby": "scroll-dialog-title", "aria-describedby": "scroll-dialog-description", onClose: handleClose, maxWidth: false, fullWidth: true, PaperProps: {
47
+ return ((0, jsx_runtime_1.jsxs)(material_1.Dialog, { "aria-describedby": "scroll-dialog-description", "aria-labelledby": "scroll-dialog-title", fullWidth: true, maxWidth: false, onClose: handleClose, open: open, PaperProps: {
48
48
  style: {
49
49
  width: '90%',
50
50
  height: '90%',
51
51
  maxHeight: '90%',
52
52
  maxWidth: '90%',
53
53
  },
54
- }, children: [(0, jsx_runtime_1.jsxs)(material_1.DialogTitle, { id: "scroll-dialog-title", children: ["Log Details - ", logCorrelation] }), (0, jsx_runtime_1.jsx)(material_1.AppBar, { position: "sticky", color: "primary", children: (0, jsx_runtime_1.jsxs)(material_1.Tabs, { value: logDialogState.selectedTab, onChange: handleTabChange, textColor: "inherit", indicatorColor: "secondary", children: [(0, jsx_runtime_1.jsx)(material_1.Tab, { label: "Log Details" }), (0, jsx_runtime_1.jsx)(material_1.Tab, { label: "Tree" }), (0, jsx_runtime_1.jsx)(material_1.Tab, { label: "Timeline" }), (0, jsx_runtime_1.jsx)(material_1.Tab, { label: "Notes" }), (0, jsx_runtime_1.jsx)(material_1.Tab, { label: "Raw JSON" }), (0, jsx_runtime_1.jsx)(material_1.Tab, { label: "Help" })] }) }), (0, jsx_runtime_1.jsxs)(material_1.DialogContent, { dividers: true, sx: {
54
+ }, scroll: 'paper', children: [(0, jsx_runtime_1.jsxs)(material_1.DialogTitle, { id: "scroll-dialog-title", children: ["Log Details - ", logCorrelation] }), (0, jsx_runtime_1.jsx)(material_1.AppBar, { color: "primary", position: "sticky", children: (0, jsx_runtime_1.jsxs)(material_1.Tabs, { indicatorColor: "secondary", onChange: handleTabChange, textColor: "inherit", value: logDialogState.selectedTab, children: [(0, jsx_runtime_1.jsx)(material_1.Tab, { label: "Log Details" }), (0, jsx_runtime_1.jsx)(material_1.Tab, { label: "Tree" }), (0, jsx_runtime_1.jsx)(material_1.Tab, { label: "Timeline" }), (0, jsx_runtime_1.jsx)(material_1.Tab, { label: "Notes" }), (0, jsx_runtime_1.jsx)(material_1.Tab, { label: "Raw JSON" }), (0, jsx_runtime_1.jsx)(material_1.Tab, { label: "Help" })] }) }), (0, jsx_runtime_1.jsxs)(material_1.DialogContent, { dividers: true, sx: {
55
55
  minHeight: '150px',
56
56
  overflowY: 'scroll',
57
- }, children: [asyncLog.isLoading && (0, jsx_runtime_1.jsx)(material_1.LinearProgress, {}), (0, jsx_runtime_1.jsx)("div", { style: getTabStyle(logDialogState.selectedTab, 0), children: (0, jsx_runtime_1.jsx)(tabs_1.LogDetailsTab, { log: asyncLog, logDialogState: logDialogState, logDialogStateApi: logDialogStateApi }) }), (0, jsx_runtime_1.jsx)("div", { style: getTabStyle(logDialogState.selectedTab, 1), children: (0, jsx_runtime_1.jsx)(tabs_1.TreeTab, { log: asyncLog, isVisible: logDialogState.selectedTab === 1, treeApi: treeApi, setSelectedLogCorrelation: setSelectedLogCorrelation }) }), (0, jsx_runtime_1.jsx)("div", { style: getTabStyle(logDialogState.selectedTab, 2), children: (0, jsx_runtime_1.jsx)(tabs_1.TimelineTab, { log: asyncLog, setSelectedLogCorrelation: setSelectedLogCorrelation, isVisible: logDialogState.selectedTab === 2, treeApi: treeApi }) }), (0, jsx_runtime_1.jsx)("div", { style: getTabStyle(logDialogState.selectedTab, 3), children: (0, jsx_runtime_1.jsx)(tabs_1.NotesTab, { log: asyncLog }) }), (0, jsx_runtime_1.jsx)("div", { style: getTabStyle(logDialogState.selectedTab, 4), children: (0, jsx_runtime_1.jsx)(tabs_1.RawTab, { log: asyncLog }) }), (0, jsx_runtime_1.jsx)("div", { style: getTabStyle(logDialogState.selectedTab, 5), children: (0, jsx_runtime_1.jsx)(tabs_1.HelpTab, { log: asyncLog }) })] }), (0, jsx_runtime_1.jsxs)(material_1.DialogActions, { children: [(0, jsx_runtime_1.jsx)(material_1.Button, { style: getTabStyle(logDialogState.selectedTab, 1), onClick: (event) => treeApi.refreshTreeData(), disabled: asyncLog.isLoading, children: "Refresh Tree" }), (0, jsx_runtime_1.jsx)(material_1.Button, { style: getTabStyle(logDialogState.selectedTab, 2), onClick: (event) => treeApi.refreshTreeData(), disabled: asyncLog.isLoading, children: "Refresh Timeline" }), (0, jsx_runtime_1.jsx)(material_1.Button, { onClick: (event) => {
57
+ }, children: [asyncLog.isLoading && (0, jsx_runtime_1.jsx)(material_1.LinearProgress, {}), (0, jsx_runtime_1.jsx)("div", { style: getTabStyle(logDialogState.selectedTab, 0), children: (0, jsx_runtime_1.jsx)(tabs_1.LogDetailsTab, { log: asyncLog, logDialogState: logDialogState, logDialogStateApi: logDialogStateApi }) }), (0, jsx_runtime_1.jsx)("div", { style: getTabStyle(logDialogState.selectedTab, 1), children: (0, jsx_runtime_1.jsx)(tabs_1.TreeTab, { isVisible: logDialogState.selectedTab === 1, log: asyncLog, setSelectedLogCorrelation: setSelectedLogCorrelation, treeApi: treeApi }) }), (0, jsx_runtime_1.jsx)("div", { style: getTabStyle(logDialogState.selectedTab, 2), children: (0, jsx_runtime_1.jsx)(tabs_1.TimelineTab, { isVisible: logDialogState.selectedTab === 2, log: asyncLog, setSelectedLogCorrelation: setSelectedLogCorrelation, treeApi: treeApi }) }), (0, jsx_runtime_1.jsx)("div", { style: getTabStyle(logDialogState.selectedTab, 3), children: (0, jsx_runtime_1.jsx)(tabs_1.NotesTab, { log: asyncLog }) }), (0, jsx_runtime_1.jsx)("div", { style: getTabStyle(logDialogState.selectedTab, 4), children: (0, jsx_runtime_1.jsx)(tabs_1.RawTab, { log: asyncLog }) }), (0, jsx_runtime_1.jsx)("div", { style: getTabStyle(logDialogState.selectedTab, 5), children: (0, jsx_runtime_1.jsx)(tabs_1.HelpTab, { log: asyncLog }) })] }), (0, jsx_runtime_1.jsxs)(material_1.DialogActions, { children: [(0, jsx_runtime_1.jsx)(material_1.Button, { disabled: asyncLog.isLoading, onClick: (event) => treeApi.refreshTreeData(), style: getTabStyle(logDialogState.selectedTab, 1), children: "Refresh Tree" }), (0, jsx_runtime_1.jsx)(material_1.Button, { disabled: asyncLog.isLoading, onClick: (event) => treeApi.refreshTreeData(), style: getTabStyle(logDialogState.selectedTab, 2), children: "Refresh Timeline" }), (0, jsx_runtime_1.jsx)(material_1.Button, { disabled: asyncLog.isLoading, onClick: (event) => {
58
58
  if (asyncLog.log) {
59
59
  downloadJson(JSON.stringify(asyncLog.log, null, 2), `${asyncLog.log.correlation}.json`);
60
60
  }
61
61
  event.stopPropagation();
62
- }, disabled: asyncLog.isLoading, children: "Download" }), asyncLog.log && ((0, jsx_runtime_1.jsx)(material_1.Button, { onClick: handleExecute, disabled: asyncLog.isLoading, children: "Execute" })), (0, jsx_runtime_1.jsx)(material_1.Button, { onClick: handleClose, children: "Close" })] })] }));
62
+ }, children: "Download" }), asyncLog.log && ((0, jsx_runtime_1.jsx)(material_1.Button, { disabled: asyncLog.isLoading, onClick: handleExecute, children: "Execute" })), (0, jsx_runtime_1.jsx)(material_1.Button, { onClick: handleClose, children: "Close" })] })] }));
63
63
  };
64
64
  exports.LogDialog = LogDialog;
@@ -4,6 +4,6 @@ exports.MovedToColdStorage = void 0;
4
4
  const jsx_runtime_1 = require("react/jsx-runtime");
5
5
  const material_1 = require("@mui/material");
6
6
  const MovedToColdStorage = ({ guid }) => {
7
- return ((0, jsx_runtime_1.jsxs)(material_1.Paper, { elevation: 3, sx: { padding: 2, borderRadius: 2 }, children: [(0, jsx_runtime_1.jsxs)(material_1.Typography, { variant: "body1", color: "textSecondary", children: ["The log you are requesting has been moved to ", (0, jsx_runtime_1.jsx)("b", { children: "cold storage" }), ". Please provide the following Correlation to an administrator if you would like it to be moved back to standard storage."] }), (0, jsx_runtime_1.jsx)(material_1.Box, { mt: 1, children: (0, jsx_runtime_1.jsx)(material_1.Typography, { variant: "subtitle1", color: "primary", fontWeight: "bold", children: guid }) })] }));
7
+ return ((0, jsx_runtime_1.jsxs)(material_1.Paper, { elevation: 3, sx: { padding: 2, borderRadius: 2 }, children: [(0, jsx_runtime_1.jsxs)(material_1.Typography, { color: "textSecondary", variant: "body1", children: ["The log you are requesting has been moved to ", (0, jsx_runtime_1.jsx)("b", { children: "cold storage" }), ". Please provide the following Correlation to an administrator if you would like it to be moved back to standard storage."] }), (0, jsx_runtime_1.jsx)(material_1.Box, { mt: 1, children: (0, jsx_runtime_1.jsx)(material_1.Typography, { color: "primary", fontWeight: "bold", variant: "subtitle1", children: guid }) })] }));
8
8
  };
9
9
  exports.MovedToColdStorage = MovedToColdStorage;