@oneuptime/common 14.0.8 → 14.0.9

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 (639) hide show
  1. package/Models/DatabaseModels/Index.ts +2 -0
  2. package/Models/DatabaseModels/KubernetesAiAgent.ts +364 -0
  3. package/Models/DatabaseModels/KubernetesCluster.ts +3 -3
  4. package/Models/DatabaseModels/Project.ts +55 -5
  5. package/Models/DatabaseModels/ProxmoxResource.ts +49 -1
  6. package/Models/DatabaseModels/RunnerJob.ts +75 -0
  7. package/Models/DatabaseModels/TeamComplianceSetting.ts +143 -2
  8. package/Models/DatabaseModels/WorkspaceProjectAuthToken.ts +17 -0
  9. package/Server/API/AIChatAPI.ts +6 -3
  10. package/Server/API/AIInvestigationAPI.ts +17 -10
  11. package/Server/API/AutoRemediationAPI.ts +207 -25
  12. package/Server/API/KubernetesClusterAiAccessAPI.ts +623 -21
  13. package/Server/API/MicrosoftTeamsAPI.ts +93 -14
  14. package/Server/API/ProxmoxResourceAPI.ts +244 -14
  15. package/Server/Infrastructure/GlobalCache.ts +32 -0
  16. package/Server/Infrastructure/Postgres/SchemaMigrations/1796000000000-AddTeamComplianceRuleScope.ts +99 -0
  17. package/Server/Infrastructure/Postgres/SchemaMigrations/1796100000000-AddKubernetesAiAgentAndAiDefaults.ts +137 -0
  18. package/Server/Infrastructure/Postgres/SchemaMigrations/1796200000000-AddProxmoxResourceNativePushColumns.ts +42 -0
  19. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
  20. package/Server/Middleware/TelemetryIngest.ts +41 -18
  21. package/Server/Services/AIService.ts +70 -1
  22. package/Server/Services/AlertService.ts +352 -11
  23. package/Server/Services/AlertSeverityService.ts +65 -15
  24. package/Server/Services/AutoRemediationRuleService.ts +1 -1
  25. package/Server/Services/IncidentService.ts +280 -104
  26. package/Server/Services/IncidentSeverityService.ts +66 -15
  27. package/Server/Services/KubernetesAiAgentJobService.ts +185 -0
  28. package/Server/Services/KubernetesAiAgentService.ts +1634 -0
  29. package/Server/Services/KubernetesClusterAiAccessService.ts +1118 -451
  30. package/Server/Services/KubernetesClusterService.ts +129 -21
  31. package/Server/Services/ProjectService.ts +32 -0
  32. package/Server/Services/ProxmoxResourceService.ts +322 -5
  33. package/Server/Services/RunnerJobService.ts +241 -104
  34. package/Server/Services/RunnerService.ts +1 -1
  35. package/Server/Services/ScheduledMaintenanceService.ts +737 -1
  36. package/Server/Services/ScheduledMaintenanceStateTimelineService.ts +414 -56
  37. package/Server/Services/TeamComplianceSettingService.ts +1125 -9
  38. package/Server/Utils/AI/ClusterAccess/ClusterAccessContext.ts +67 -9
  39. package/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.ts +39 -10
  40. package/Server/Utils/AI/ClusterAccess/KubectlJobRunner.ts +14 -3
  41. package/Server/Utils/AI/Remediation/RemediationCommandTools.ts +37 -15
  42. package/Server/Utils/AI/Remediation/RemediationExecutionRunner.ts +67 -24
  43. package/Server/Utils/AI/SRE/AIInvestigationEngine.ts +48 -5
  44. package/Server/Utils/AI/SRE/IncidentPostmortemRunner.ts +40 -8
  45. package/Server/Utils/AI/SRE/InvestigationEligibility.ts +13 -2
  46. package/Server/Utils/AI/SRE/InvestigationGrader.ts +1 -1
  47. package/Server/Utils/AutoRemediation/CommandPlanExecutor.ts +6 -1
  48. package/Server/Utils/Telemetry/InventoryEntityRegistry.ts +133 -7
  49. package/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.ts +58 -4
  50. package/Server/Utils/Telemetry/ProxmoxNativeNodeLiveness.ts +447 -0
  51. package/Server/Utils/Telemetry/ProxmoxNativePush.ts +903 -0
  52. package/Server/Utils/Telemetry/TelemetryEntity.ts +87 -27
  53. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +684 -47
  54. package/Tests/App/AdminDashboard/RowActionPlacementOverrides.test.tsx +278 -0
  55. package/Tests/App/Dashboard/AIChatChartWidgetZoom.test.tsx +738 -0
  56. package/Tests/App/Dashboard/AIFeaturesSettingsPointers.test.tsx +147 -0
  57. package/Tests/App/Dashboard/AIInsightsKubernetesClusterPage.test.tsx +1523 -0
  58. package/Tests/App/Dashboard/AdminUserNotificationMethodsPage.test.tsx +463 -3
  59. package/Tests/App/Dashboard/AffectedResourcesPickerDropdownPlacement.test.tsx +958 -0
  60. package/Tests/App/Dashboard/AffectedResourcesPickerFocusLeave.test.tsx +595 -0
  61. package/Tests/App/Dashboard/AskAiAvailability.test.ts +20 -3
  62. package/Tests/App/Dashboard/AskAiDisabled.test.tsx +8 -3
  63. package/Tests/App/Dashboard/CephRateChartReload.test.tsx +1456 -0
  64. package/Tests/App/Dashboard/CephTimeRangeZoom.test.tsx +1229 -0
  65. package/Tests/App/Dashboard/ChartCardTimeRangeZoom.test.tsx +151 -0
  66. package/Tests/App/Dashboard/ChartCardZoomAffordances.test.tsx +257 -0
  67. package/Tests/App/Dashboard/ChartRefetchFrame.test.tsx +141 -0
  68. package/Tests/App/Dashboard/ChartZoomHarness.tsx +249 -0
  69. package/Tests/App/Dashboard/ChartZoomStandIn.tsx +131 -0
  70. package/Tests/App/Dashboard/CloudServerlessSlowLoads.test.tsx +628 -0
  71. package/Tests/App/Dashboard/CloudServerlessTimeRangeZoom.test.tsx +607 -0
  72. package/Tests/App/Dashboard/ClusterAccessNotice.test.tsx +91 -19
  73. package/Tests/App/Dashboard/CompanionMetricsTabZoom.test.tsx +632 -0
  74. package/Tests/App/Dashboard/ContainerChartZoomStandIn.tsx +195 -0
  75. package/Tests/App/Dashboard/ContainerHostOverviewSlowLoads.test.tsx +542 -0
  76. package/Tests/App/Dashboard/ContainerHostOverviewTimeRangeZoom.test.tsx +848 -0
  77. package/Tests/App/Dashboard/ContainerMetricsTimeRangeZoom.test.tsx +561 -0
  78. package/Tests/App/Dashboard/DashboardBoardWideZoomShell.test.tsx +1147 -0
  79. package/Tests/App/Dashboard/DashboardEditPermissions.test.tsx +3 -2
  80. package/Tests/App/Dashboard/DashboardHistogramWidgetDragCursor.test.tsx +399 -0
  81. package/Tests/App/Dashboard/DashboardHistogramWidgetZoom.test.tsx +985 -0
  82. package/Tests/App/Dashboard/DashboardHistogramWidgetZoomHint.test.tsx +803 -0
  83. package/Tests/App/Dashboard/DashboardLazyPages.test.tsx +1 -0
  84. package/Tests/App/Dashboard/DashboardSettingsPreviewZoom.test.tsx +679 -0
  85. package/Tests/App/Dashboard/DashboardSloAndDataSourceChartZoom.test.tsx +881 -0
  86. package/Tests/App/Dashboard/DashboardTraceStatusWidgets.test.tsx +878 -0
  87. package/Tests/App/Dashboard/DatabaseMetricChartModalTimeRangeZoom.test.tsx +442 -0
  88. package/Tests/App/Dashboard/DatabaseOverviewTimeRangeZoom.test.tsx +831 -0
  89. package/Tests/App/Dashboard/DatabaseServerComponents.test.tsx +43 -0
  90. package/Tests/App/Dashboard/DockerSwarmInsightsTimeRangeZoom.test.tsx +524 -0
  91. package/Tests/App/Dashboard/DockerSwarmRateChartRefresh.test.tsx +259 -0
  92. package/Tests/App/Dashboard/EdgeDetailPanelHistory.test.tsx +763 -0
  93. package/Tests/App/Dashboard/EdgeDetailPanelTimeRangeZoom.test.tsx +547 -0
  94. package/Tests/App/Dashboard/EdgeHistoryBucketsCases.tsx +565 -0
  95. package/Tests/App/Dashboard/EdgeHistoryBucketsKathmandu.test.tsx +73 -0
  96. package/Tests/App/Dashboard/EdgeHistoryBucketsKolkata.test.tsx +74 -0
  97. package/Tests/App/Dashboard/EdgeHistoryBucketsNewYork.test.tsx +72 -0
  98. package/Tests/App/Dashboard/EdgeHistoryBucketsUtc.test.tsx +72 -0
  99. package/Tests/App/Dashboard/EmbeddedMetricCardRefresh.test.tsx +310 -0
  100. package/Tests/App/Dashboard/EmbeddedMetricCardTimeRangeZoom.test.tsx +536 -0
  101. package/Tests/App/Dashboard/EscalationRuleReadiness.test.tsx +3 -1
  102. package/Tests/App/Dashboard/EscalationRuleRowActions.test.tsx +660 -0
  103. package/Tests/App/Dashboard/EventNotes.test.tsx +2 -2
  104. package/Tests/App/Dashboard/EventOverviewPages.test.tsx +587 -13
  105. package/Tests/App/Dashboard/EventOverviewSnapshotExplorerZoom.test.tsx +1139 -0
  106. package/Tests/App/Dashboard/EventOverviewSnapshotZoomAcrossTabs.test.tsx +1057 -0
  107. package/Tests/App/Dashboard/EventOverviewTelemetrySnapshotZoom.test.tsx +757 -0
  108. package/Tests/App/Dashboard/ExceptionOccurrenceTrendZoom.test.tsx +675 -0
  109. package/Tests/App/Dashboard/ExceptionOccurrencesZoomSurvivesViewSwitch.test.tsx +405 -0
  110. package/Tests/App/Dashboard/ExceptionSignalPages.test.tsx +67 -3
  111. package/Tests/App/Dashboard/ExceptionTablesSpanStatus.test.tsx +515 -0
  112. package/Tests/App/Dashboard/ExplorerOwnZoomRegression.test.tsx +739 -0
  113. package/Tests/App/Dashboard/FlowBandwidthAxisCases.tsx +461 -0
  114. package/Tests/App/Dashboard/FlowBandwidthAxisKathmandu.test.tsx +25 -0
  115. package/Tests/App/Dashboard/FlowBandwidthAxisKolkata.test.tsx +25 -0
  116. package/Tests/App/Dashboard/FlowBandwidthAxisNewYork.test.tsx +25 -0
  117. package/Tests/App/Dashboard/FlowBandwidthAxisUtc.test.tsx +24 -0
  118. package/Tests/App/Dashboard/FlowTopTalkersZoomRefetch.test.tsx +722 -0
  119. package/Tests/App/Dashboard/FlowViewportGuard.test.tsx +2526 -0
  120. package/Tests/App/Dashboard/HostPagesSlowLoads.test.tsx +872 -0
  121. package/Tests/App/Dashboard/HostPagesTimeRangeZoom.test.tsx +1208 -0
  122. package/Tests/App/Dashboard/IncidentRootCauseTimeRangeZoom.test.tsx +358 -0
  123. package/Tests/App/Dashboard/InfrastructureGraph.test.tsx +100 -9
  124. package/Tests/App/Dashboard/InfrastructureMetricsTabTimeRangeZoom.test.tsx +485 -0
  125. package/Tests/App/Dashboard/InvestigationDrawerCompanionZoom.test.tsx +655 -0
  126. package/Tests/App/Dashboard/InvestigationDrawerZoom.test.tsx +830 -0
  127. package/Tests/App/Dashboard/InvestigationNotStarted.test.tsx +338 -2
  128. package/Tests/App/Dashboard/InvoicesPayInvoice.test.tsx +454 -16
  129. package/Tests/App/Dashboard/KubernetesClusterAiAccessSettings.test.ts +799 -819
  130. package/Tests/App/Dashboard/KubernetesClusterAiAgentOverviewCard.test.tsx +367 -0
  131. package/Tests/App/Dashboard/KubernetesClusterAiAgentStatus.test.ts +1202 -0
  132. package/Tests/App/Dashboard/KubernetesClusterAiDocumentationMarkdown.test.ts +106 -0
  133. package/Tests/App/Dashboard/KubernetesClusterAiNavigation.test.tsx +354 -0
  134. package/Tests/App/Dashboard/KubernetesClusterAiPage.test.tsx +1884 -2054
  135. package/Tests/App/Dashboard/KubernetesClusterAiPageServerParity.test.ts +478 -179
  136. package/Tests/App/Dashboard/KubernetesClusterMetricTooltips.test.ts +50 -0
  137. package/Tests/App/Dashboard/KubernetesClusterOverviewTooltips.test.tsx +2 -1
  138. package/Tests/App/Dashboard/KubernetesClusterOverviewZoom.test.tsx +1217 -0
  139. package/Tests/App/Dashboard/KubernetesClusterPagesZoom.test.tsx +731 -0
  140. package/Tests/App/Dashboard/KubernetesCostsLoadRecovery.test.tsx +869 -0
  141. package/Tests/App/Dashboard/KubernetesCostsZoom.test.tsx +1214 -0
  142. package/Tests/App/Dashboard/KubernetesCostsZoomExactHours.test.tsx +692 -0
  143. package/Tests/App/Dashboard/KubernetesNetworkThroughputReload.test.tsx +902 -0
  144. package/Tests/App/Dashboard/KubernetesNetworkZoomBucketEdges.test.tsx +571 -0
  145. package/Tests/App/Dashboard/KubernetesOverviewZoomBucketEdges.test.tsx +697 -0
  146. package/Tests/App/Dashboard/KubernetesResourceMetricsTabZoom.test.tsx +633 -0
  147. package/Tests/App/Dashboard/LogsExplorerTimeRangeZoom.test.tsx +470 -0
  148. package/Tests/App/Dashboard/LogsInsightsTimeRangeZoom.test.tsx +948 -0
  149. package/Tests/App/Dashboard/LogsViewerPinnedWindowZoom.test.tsx +486 -0
  150. package/Tests/App/Dashboard/MetricChartsBucketInspectorDoubleClick.test.tsx +1001 -0
  151. package/Tests/App/Dashboard/MetricExplorerInvestigationAutoRefresh.test.tsx +514 -0
  152. package/Tests/App/Dashboard/MetricExplorerSavedViewZoomRoundTrip.test.tsx +581 -0
  153. package/Tests/App/Dashboard/MetricExplorerTimeRangeZoom.test.tsx +1162 -0
  154. package/Tests/App/Dashboard/MetricMonitorPreviewZoomLabel.test.ts +72 -0
  155. package/Tests/App/Dashboard/MetricRowSparklineTimeRangeZoom.test.tsx +204 -0
  156. package/Tests/App/Dashboard/MetricViewFirstResultLands.test.tsx +408 -0
  157. package/Tests/App/Dashboard/MetricViewOwnZoomResetPlacement.test.tsx +952 -0
  158. package/Tests/App/Dashboard/MetricViewTimeRange.test.ts +139 -0
  159. package/Tests/App/Dashboard/MetricViewTimeRangeZoom.test.tsx +556 -0
  160. package/Tests/App/Dashboard/MonitorMetricsChartWrappersZoom.test.tsx +552 -0
  161. package/Tests/App/Dashboard/MonitorMetricsTabsTimeRangeZoom.test.tsx +740 -0
  162. package/Tests/App/Dashboard/MonitorOverviewChartsTimeRangeZoom.test.tsx +735 -0
  163. package/Tests/App/Dashboard/MonitorStepPreviewsTimeRangeZoom.test.tsx +835 -0
  164. package/Tests/App/Dashboard/NetworkDeviceTimeRangeZoom.test.tsx +1115 -0
  165. package/Tests/App/Dashboard/OnCallPreventionGuards.test.tsx +186 -17
  166. package/Tests/App/Dashboard/OnCallRulesDeleteGuard.test.tsx +155 -46
  167. package/Tests/App/Dashboard/PasskeySettings.test.tsx +87 -2
  168. package/Tests/App/Dashboard/ProjectAISettingsPages.test.tsx +884 -0
  169. package/Tests/App/Dashboard/ProxmoxNodeRemove.test.tsx +621 -0
  170. package/Tests/App/Dashboard/ProxmoxOverviewSlowLoads.test.tsx +584 -0
  171. package/Tests/App/Dashboard/ProxmoxPagesTimeRangeZoom.test.tsx +823 -0
  172. package/Tests/App/Dashboard/ProxmoxRateChartReload.test.tsx +1253 -0
  173. package/Tests/App/Dashboard/PublicDashboardBoardWideZoom.test.tsx +605 -0
  174. package/Tests/App/Dashboard/RealRowsLineChart.tsx +250 -0
  175. package/Tests/App/Dashboard/RechartsHostsPlotCursor.test.tsx +513 -0
  176. package/Tests/App/Dashboard/RowActionPlacementOverrides.test.tsx +865 -0
  177. package/Tests/App/Dashboard/RumOverviewTimeRangeZoom.test.tsx +877 -0
  178. package/Tests/App/Dashboard/RunnerKubernetesAgentForm.test.tsx +20 -4
  179. package/Tests/App/Dashboard/RunnerSupersededByAiAgentNote.test.tsx +296 -0
  180. package/Tests/App/Dashboard/SecurityEventConnectionsTable.test.tsx +146 -36
  181. package/Tests/App/Dashboard/ServiceDatabaseSlowLoads.test.tsx +1166 -0
  182. package/Tests/App/Dashboard/ServiceMapGraph.test.tsx +1243 -104
  183. package/Tests/App/Dashboard/ServiceOverviewTimeRangeZoom.test.tsx +792 -0
  184. package/Tests/App/Dashboard/SloBudgetBurnDownZoom.test.tsx +771 -0
  185. package/Tests/App/Dashboard/SloBudgetBurnDownZoomAffordances.test.tsx +380 -0
  186. package/Tests/App/Dashboard/SloEventMetricsBarChartZoom.test.tsx +369 -0
  187. package/Tests/App/Dashboard/SloHistoryChartsTimeRangeZoom.test.tsx +694 -0
  188. package/Tests/App/Dashboard/SloHistoryChartsZoomAffordances.test.tsx +497 -0
  189. package/Tests/App/Dashboard/SloMetricsTimeRangeZoom.test.tsx +541 -0
  190. package/Tests/App/Dashboard/SlowLoadHarness.ts +123 -0
  191. package/Tests/App/Dashboard/SnapshotExplorerPrimaryZoom.test.tsx +1194 -0
  192. package/Tests/App/Dashboard/SnapshotViewerPinnedWindow.test.tsx +620 -0
  193. package/Tests/App/Dashboard/TelemetrySnapshotPanelTimeRangeZoom.test.tsx +765 -0
  194. package/Tests/App/Dashboard/TelemetrySnapshotZoom.test.tsx +516 -0
  195. package/Tests/App/Dashboard/TelemetrySnapshotZoomAcrossTabs.test.tsx +827 -0
  196. package/Tests/App/Dashboard/TimeRangeZoomPageHarness.tsx +463 -0
  197. package/Tests/App/Dashboard/TraceChartEditorStatusSplit.test.tsx +543 -0
  198. package/Tests/App/Dashboard/TraceStatusPresentation.test.tsx +967 -0
  199. package/Tests/App/Dashboard/TraceTimelineMinimapZoom.test.tsx +315 -0
  200. package/Tests/App/Dashboard/TracesAnalyticsStatusSplit.test.tsx +778 -0
  201. package/Tests/App/Dashboard/TracesAnalyticsViewZoom.test.tsx +349 -0
  202. package/Tests/App/Dashboard/TracesExplorerTimeRangeZoom.test.tsx +551 -0
  203. package/Tests/App/Dashboard/TracesStatusChartAndFacet.test.tsx +687 -0
  204. package/Tests/App/Dashboard/TracesViewerStaleResponses.test.tsx +458 -0
  205. package/Tests/App/Dashboard/UptimeStripsExcludedFromZoom.test.tsx +406 -0
  206. package/Tests/App/Dashboard/VMwareOverviewSlowLoads.test.tsx +535 -0
  207. package/Tests/App/Dashboard/VMwarePagesTimeRangeZoom.test.tsx +606 -0
  208. package/Tests/App/Dashboard/ValueWidgetSparklineStaleHover.test.tsx +1292 -0
  209. package/Tests/App/Dashboard/ValueWidgetSparklineZoom.test.tsx +765 -0
  210. package/Tests/App/StatusPage/StatusPageResourceExplorer.test.tsx +98 -0
  211. package/Tests/Models/DatabaseModels/KubernetesAiAgentModel.test.ts +295 -0
  212. package/Tests/Models/DatabaseModels/TeamComplianceSettingModel.test.ts +347 -0
  213. package/Tests/Server/API/AIChatRouteAuthorization.test.ts +58 -0
  214. package/Tests/Server/API/AIGenerationProjectAIToggle.test.ts +1 -1
  215. package/Tests/Server/API/AIInvestigationAPI.test.ts +123 -45
  216. package/Tests/Server/API/AutoRemediationApproveClusterRound.test.ts +1329 -0
  217. package/Tests/Server/API/AutoRemediationApproveKubectlRecheck.test.ts +25 -2
  218. package/Tests/Server/API/KubernetesClusterAiAccessAPI.test.ts +2 -0
  219. package/Tests/Server/API/KubernetesClusterAiAccessAPIAgent.test.ts +903 -0
  220. package/Tests/Server/API/MicrosoftTeamsChatsRefreshRoute.test.ts +667 -0
  221. package/Tests/Server/API/MicrosoftTeamsManifest.test.ts +294 -6
  222. package/Tests/Server/API/ProxmoxResourceAPIRemoveNode.test.ts +1932 -0
  223. package/Tests/Server/Infrastructure/GlobalCache.test.ts +195 -0
  224. package/Tests/Server/Infrastructure/Postgres/AddKubernetesAiAgentAndAiDefaultsMigration.test.ts +623 -0
  225. package/Tests/Server/Infrastructure/Postgres/AddKubernetesClusterAiAccessMigration.test.ts +87 -10
  226. package/Tests/Server/Infrastructure/Postgres/AddTeamComplianceRuleScopeMigration.test.ts +622 -0
  227. package/Tests/Server/Middleware/TelemetryIngestBrowserKey.test.ts +61 -4
  228. package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerPinnedKey.test.ts +98 -2
  229. package/Tests/Server/Middleware/TelemetryIngestKubernetesAgentRunnerRateLimit.test.ts +105 -2
  230. package/Tests/Server/Services/AIServiceBalanceBlocker.test.ts +282 -0
  231. package/Tests/Server/Services/AlertMonitorClearWritesNull.test.ts +409 -0
  232. package/Tests/Server/Services/AlertMonitorEditFeed.test.ts +474 -0
  233. package/Tests/Server/Services/AlertMonitorEditGuard.test.ts +610 -0
  234. package/Tests/Server/Services/AutoRemediationClusterRuleEngine.test.ts +2 -0
  235. package/Tests/Server/Services/AutoRemediationRuleCommandRunners.test.ts +2 -1
  236. package/Tests/Server/Services/IncidentAffectedMonitorsEdit.test.ts +1360 -0
  237. package/Tests/Server/Services/IncidentAlertSloLinkSurvivesEdit.test.ts +3 -1
  238. package/Tests/Server/Services/IncidentSeverityDeletePausesComplianceRules.test.ts +488 -0
  239. package/Tests/Server/Services/KubernetesAiAgentJobService.test.ts +329 -0
  240. package/Tests/Server/Services/KubernetesAiAgentServiceHelpers.test.ts +618 -0
  241. package/Tests/Server/Services/KubernetesAiAgentServiceLifecycle.test.ts +1444 -0
  242. package/Tests/Server/Services/KubernetesAiAgentServiceRegister.test.ts +1666 -0
  243. package/Tests/Server/Services/KubernetesClusterAiAccessDeletedRunnerRemedy.test.ts +140 -111
  244. package/Tests/Server/Services/KubernetesClusterAiAccessGapNextSteps.test.ts +267 -105
  245. package/Tests/Server/Services/KubernetesClusterAiAccessLegacySuperseded.test.ts +440 -0
  246. package/Tests/Server/Services/KubernetesClusterAiAccessService.test.ts +567 -411
  247. package/Tests/Server/Services/KubernetesClusterAiAccessTarget.test.ts +1168 -0
  248. package/Tests/Server/Services/KubernetesClusterAiSettingsPermission.test.ts +410 -12
  249. package/Tests/Server/Services/KubernetesClusterServiceAiAccessFeed.test.ts +55 -0
  250. package/Tests/Server/Services/ProjectServiceNewProjectAiDefaults.test.ts +288 -0
  251. package/Tests/Server/Services/ProxmoxResourcePostgres.test.ts +5633 -0
  252. package/Tests/Server/Services/ProxmoxResourceService.test.ts +6458 -5
  253. package/Tests/Server/Services/RunnerJobEnqueueKubectl.test.ts +48 -15
  254. package/Tests/Server/Services/RunnerJobEnqueueKubectlAiAgent.test.ts +620 -0
  255. package/Tests/Server/Services/RunnerJobKubectlWriteScope.test.ts +170 -3
  256. package/Tests/Server/Services/RunnerJobTimeoutReason.test.ts +72 -0
  257. package/Tests/Server/Services/RunnerServiceAgentName.test.ts +6 -4
  258. package/Tests/Server/Services/ScheduledMaintenanceAttachmentEdit.test.ts +2113 -0
  259. package/Tests/Server/Services/ScheduledMaintenanceMonitorRelease.test.ts +972 -0
  260. package/Tests/Server/Services/TeamComplianceSettingPostgres.test.ts +2237 -0
  261. package/Tests/Server/Services/TeamComplianceSettingService.test.ts +3988 -138
  262. package/Tests/Server/Utils/AI/ClusterAccessContext.test.ts +107 -1
  263. package/Tests/Server/Utils/AI/IncidentPostmortemRunner.test.ts +351 -0
  264. package/Tests/Server/Utils/AI/InvestigationClusterAccessWiring.test.ts +2 -0
  265. package/Tests/Server/Utils/AI/InvestigationEligibility.test.ts +310 -0
  266. package/Tests/Server/Utils/AI/KubectlInvestigationToolkit.test.ts +70 -0
  267. package/Tests/Server/Utils/AI/KubectlJobRunnerFinishedJob.test.ts +58 -0
  268. package/Tests/Server/Utils/AI/RemediationCommandToolsKubectl.test.ts +2 -0
  269. package/Tests/Server/Utils/AI/RemediationCommandToolsKubectlOutcome.test.ts +2 -0
  270. package/Tests/Server/Utils/AI/RemediationCommandToolsLiveCluster.test.ts +2 -0
  271. package/Tests/Server/Utils/AI/RemediationCommandToolsRunnerScope.test.ts +125 -1
  272. package/Tests/Server/Utils/AI/RemediationExecutionRunner.test.ts +252 -3
  273. package/Tests/Server/Utils/AI/RemediationExecutionRunnerClusterMode.test.ts +2 -0
  274. package/Tests/Server/Utils/AI/RemediationExecutionRunnerProjectGates.test.ts +240 -0
  275. package/Tests/Server/Utils/AI/RemediationKubectlCopyParity.test.ts +2 -0
  276. package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutor.test.ts +2 -0
  277. package/Tests/Server/Utils/AutoRemediation/CommandPlanExecutorUnknownRun.test.ts +2 -0
  278. package/Tests/Server/Utils/AutoRemediation/CommandPlanVerification.test.ts +2 -0
  279. package/Tests/Server/Utils/Telemetry/HostAssetAttributesFromOtlp.test.ts +68 -0
  280. package/Tests/Server/Utils/Telemetry/InventoryMirrorPostgres.test.ts +370 -0
  281. package/Tests/Server/Utils/Telemetry/NetworkDeviceInventoryAttributes.test.ts +522 -0
  282. package/Tests/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.test.ts +155 -0
  283. package/Tests/Server/Utils/Telemetry/ProxmoxNativeNodeLiveness.test.ts +8631 -0
  284. package/Tests/Server/Utils/Telemetry/ProxmoxNativePush.test.ts +2852 -0
  285. package/Tests/Server/Utils/Telemetry/TelemetryEntity.test.ts +367 -1
  286. package/Tests/Server/Utils/Telemetry/TelemetryIngestionKeyGuard.test.ts +45 -3
  287. package/Tests/Server/Utils/Workspace/MicrosoftTeamsChats.test.ts +25 -0
  288. package/Tests/Server/Utils/Workspace/MicrosoftTeamsGroupChatNames.test.ts +3119 -0
  289. package/Tests/Server/Utils/Workspace/MicrosoftTeamsGroupChatNamesPostgres.test.ts +1721 -0
  290. package/Tests/Types/Kubernetes/KubernetesAgentChartAiAccess.test.ts +581 -113
  291. package/Tests/Types/Kubernetes/KubernetesAiAgentAccessContract.test.ts +510 -0
  292. package/Tests/Types/Team/ComplianceRule.test.ts +1029 -0
  293. package/Tests/Types/Team/TeamComplianceStatus.test.ts +176 -0
  294. package/Tests/UI/Components/ActionButton/RowActions.test.tsx +641 -0
  295. package/Tests/UI/Components/ActionButton/RowActionsAccessibility.test.tsx +414 -0
  296. package/Tests/UI/Components/ActionButton/SplitActionButtons.test.ts +565 -0
  297. package/Tests/UI/Components/Charts/BarChartDragToSelect.test.tsx +386 -0
  298. package/Tests/UI/Components/Charts/ChartDoubleClickResetWithoutDblclick.test.tsx +1025 -0
  299. package/Tests/UI/Components/Charts/ChartGroupPageZoomHint.test.tsx +196 -0
  300. package/Tests/UI/Components/Charts/ChartPlaceholdersTakeDoubleClick.test.tsx +1861 -0
  301. package/Tests/UI/Components/Charts/ChartPlotClicksWhileResetArmed.test.tsx +382 -0
  302. package/Tests/UI/Components/Charts/ChartRangeSelection.test.tsx +704 -0
  303. package/Tests/UI/Components/Charts/ChartRangeSelectionDoubleClickReset.test.tsx +1481 -0
  304. package/Tests/UI/Components/Charts/ChartRangeSelectionRealRecharts.test.tsx +918 -0
  305. package/Tests/UI/Components/Charts/ChartRowBucketStart.test.ts +350 -0
  306. package/Tests/UI/Components/Charts/DoubleClickReset.test.tsx +996 -0
  307. package/Tests/UI/Components/Charts/HistogramDoubleClickResetRealRecharts.test.tsx +965 -0
  308. package/Tests/UI/Components/Charts/HistogramDriftThenRefetch.test.tsx +277 -0
  309. package/Tests/UI/Components/Charts/HistogramRangeSelectionDataChange.test.tsx +1757 -0
  310. package/Tests/UI/Components/Charts/HistogramRangeSelectionRealRecharts.test.tsx +560 -0
  311. package/Tests/UI/Components/Charts/TimeRangeZoom/ChartPageTimeRangeZoom.test.tsx +513 -0
  312. package/Tests/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomContext.test.tsx +845 -0
  313. package/Tests/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHint.test.tsx +119 -0
  314. package/Tests/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHintTailwind.test.tsx +274 -0
  315. package/Tests/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomUtil.test.ts +433 -0
  316. package/Tests/UI/Components/Charts/TimeRangeZoom/UseTimeRangeZoom.test.tsx +863 -0
  317. package/Tests/UI/Components/Charts/TimeRangeZoom/ZoomDocsPromises.test.tsx +1147 -0
  318. package/Tests/UI/Components/DisabledButtonTooltip.test.tsx +14 -3
  319. package/Tests/UI/Components/EntityDropdownEscape.test.tsx +454 -0
  320. package/Tests/UI/Components/EntityDropdownFocusLeave.test.tsx +420 -0
  321. package/Tests/UI/Components/Forms/FormFieldDropdownDisabled.test.tsx +233 -0
  322. package/Tests/UI/Components/Input.test.tsx +80 -1
  323. package/Tests/UI/Components/LogsAnalyticsViewZoom.test.tsx +947 -0
  324. package/Tests/UI/Components/LogsHistogramDragTooltip.test.tsx +17 -5
  325. package/Tests/UI/Components/LogsViewerAnalyticsZoom.test.tsx +501 -0
  326. package/Tests/UI/Components/LogsViewerHistogramZoom.test.tsx +1 -1
  327. package/Tests/UI/Components/ModelTable/BaseModelTableBulkDelete.test.tsx +6 -4
  328. package/Tests/UI/Components/ModelTable/BaseModelTablePermissionGating.test.tsx +60 -8
  329. package/Tests/UI/Components/ModelTable/BaseModelTableRowActions.test.tsx +476 -0
  330. package/Tests/UI/Components/ModelTable/ModelTableWrapContent.test.tsx +7 -5
  331. package/Tests/UI/Components/MoreMenuPortal.test.tsx +623 -0
  332. package/Tests/UI/Components/StatusPage/ResourceGridActions.test.tsx +538 -0
  333. package/Tests/UI/Components/StatusPage/ResourceGridSelection.test.tsx +14 -4
  334. package/Tests/UI/Components/TableCellWrapping.test.tsx +3 -3
  335. package/Tests/UI/Components/TableRowActions.test.tsx +472 -0
  336. package/Tests/UI/Components/TelemetryHistogramDragTooltip.test.tsx +1 -1
  337. package/Tests/UI/Components/TelemetryViewer/TelemetryViewerHistogramClickZoom.test.tsx +1 -1
  338. package/Tests/UI/Components/TelemetryViewer/TelemetryViewerZoomScope.test.tsx +470 -0
  339. package/Tests/UI/Components/TelemetryViewer/UseViewerTimeRangeZoom.test.tsx +571 -0
  340. package/Tests/UI/Components/TelemetryViewer/ViewerDoubleClickResetUnderDataChange.test.tsx +928 -0
  341. package/Tests/UI/Components/TelemetryViewer/ViewerFollowsEnclosingZoom.test.tsx +1569 -0
  342. package/Tests/UI/Components/Toggle.test.tsx +66 -0
  343. package/Tests/UI/MicrosoftTeams/MicrosoftTeamsChatsCardRefreshNames.test.tsx +1023 -0
  344. package/Tests/UI/Rum/ChunkLoader.test.ts +201 -0
  345. package/Tests/UI/Rum/FidelityNotices.test.ts +54 -0
  346. package/Tests/UI/Rum/ReplayCorrelationPanel.test.tsx +72 -0
  347. package/Tests/UI/Rum/ReplayFrameCapture.test.ts +1009 -9
  348. package/Tests/UI/Rum/ReplayRecordedAssets.test.ts +1069 -0
  349. package/Tests/UI/Rum/ReplayStage.test.tsx +913 -2
  350. package/Tests/UI/Rum/SessionReplayTable.test.tsx +443 -8
  351. package/Tests/UI/Rum/SessionReplayUsersTable.test.tsx +439 -9
  352. package/Tests/UI/Rum/UserFlowTablesRowActions.test.tsx +501 -0
  353. package/Tests/Utils/AiRemediation/KubectlPolicyChartRbacParity.test.ts +47 -19
  354. package/Tests/Utils/AiRemediation/KubectlWriteScopeCallerParity.test.ts +2 -0
  355. package/Tests/Utils/AiRemediation/KubernetesAiAgentPolicyCopyParity.test.ts +396 -0
  356. package/Tests/Utils/Dashboard/DashboardTimeRangeZoom.test.ts +104 -1
  357. package/Types/AI/AIRunType.ts +9 -4
  358. package/Types/AI/InvestigationNotStartedReason.ts +6 -0
  359. package/Types/AutoRemediation/AiRemediationCommandPlan.ts +14 -16
  360. package/Types/AutoRemediation/AiRemediationCommandPolicyVerdict.ts +28 -0
  361. package/Types/Dashboard/DashboardComponents/DashboardTraceChartComponent.ts +4 -2
  362. package/Types/Kubernetes/KubernetesClusterAiAccess.ts +263 -32
  363. package/Types/Kubernetes/KubernetesClusterAiAccessPermissions.ts +20 -16
  364. package/Types/Kubernetes/KubernetesClusterAiInsights.ts +81 -0
  365. package/Types/Monitor/ProxmoxAlertTemplates.ts +4 -4
  366. package/Types/Team/ComplianceNotificationChannel.ts +22 -0
  367. package/Types/Team/ComplianceRule.ts +434 -0
  368. package/Types/Team/ComplianceRuleType.ts +21 -0
  369. package/Types/Team/TeamComplianceStatus.ts +81 -0
  370. package/Types/Telemetry/TelemetryIngestSurface.ts +28 -0
  371. package/UI/Components/ActionButton/ActionButtonSchema.ts +21 -0
  372. package/UI/Components/ActionButton/RowActions.tsx +238 -0
  373. package/UI/Components/ActionButton/SplitActionButtons.ts +173 -0
  374. package/UI/Components/Charts/Area/AreaChart.tsx +32 -2
  375. package/UI/Components/Charts/Bar/BarChart.tsx +40 -3
  376. package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +37 -11
  377. package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +80 -243
  378. package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +122 -31
  379. package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +95 -244
  380. package/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.ts +214 -0
  381. package/UI/Components/Charts/ChartLibrary/Utils/UseChartBucketsChange.ts +32 -0
  382. package/UI/Components/Charts/ChartLibrary/Utils/UseChartRangeSelection.ts +599 -0
  383. package/UI/Components/Charts/Line/LineChart.tsx +32 -2
  384. package/UI/Components/Charts/TimeRangeZoom/ResetTimeRangeZoomButton.tsx +70 -0
  385. package/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomContext.tsx +226 -0
  386. package/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHint.tsx +73 -0
  387. package/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomUtil.ts +163 -0
  388. package/UI/Components/Charts/TimeRangeZoom/UseTimeRangeZoom.ts +215 -0
  389. package/UI/Components/Charts/Utils/DataPoint.ts +20 -8
  390. package/UI/Components/Charts/Utils/XAxis.ts +75 -0
  391. package/UI/Components/Charts/Utils/useHistogramRangeSelection.ts +493 -59
  392. package/UI/Components/EntityDropdown/EntityDropdown.tsx +107 -11
  393. package/UI/Components/Forms/Fields/FormField.tsx +10 -0
  394. package/UI/Components/Input/Input.tsx +90 -57
  395. package/UI/Components/List/ListRow.tsx +8 -74
  396. package/UI/Components/LogsViewer/LogsViewer.tsx +40 -11
  397. package/UI/Components/LogsViewer/components/LogTimeRangePicker.tsx +22 -6
  398. package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +209 -6
  399. package/UI/Components/LogsViewer/components/LogsHistogram.tsx +127 -84
  400. package/UI/Components/LogsViewer/components/LogsViewerToolbar.tsx +3 -0
  401. package/UI/Components/ModelTable/BaseModelTable.tsx +12 -1
  402. package/UI/Components/MoreMenu/MoreMenu.tsx +365 -30
  403. package/UI/Components/MoreMenu/MoreMenuItem.tsx +70 -17
  404. package/UI/Components/OrderedStatesList/Item.tsx +7 -72
  405. package/UI/Components/StatusPage/ResourceGrid.tsx +126 -77
  406. package/UI/Components/Table/TableBody.tsx +8 -2
  407. package/UI/Components/Table/TableRow.tsx +20 -140
  408. package/UI/Components/TelemetryViewer/TelemetryViewer.tsx +41 -10
  409. package/UI/Components/TelemetryViewer/components/TelemetryHistogram.tsx +47 -9
  410. package/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.tsx +25 -6
  411. package/UI/Components/TelemetryViewer/types.ts +2 -0
  412. package/UI/Components/TelemetryViewer/useViewerTimeRangeZoom.ts +448 -0
  413. package/UI/Components/Toggle/Toggle.tsx +26 -0
  414. package/UI/Components/Tooltip/Tooltip.tsx +8 -1
  415. package/UI/Styles/Theme.css +14 -2
  416. package/Utils/AiRemediation/CommandPolicy.ts +1 -1
  417. package/Utils/AiRemediation/KubectlPolicy.ts +1 -1
  418. package/Utils/Dashboard/DashboardTimeRangeZoom.ts +46 -2
  419. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  420. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  421. package/build/dist/Models/DatabaseModels/KubernetesAiAgent.js +385 -0
  422. package/build/dist/Models/DatabaseModels/KubernetesAiAgent.js.map +1 -0
  423. package/build/dist/Models/DatabaseModels/KubernetesCluster.js +3 -3
  424. package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
  425. package/build/dist/Models/DatabaseModels/Project.js +56 -5
  426. package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
  427. package/build/dist/Models/DatabaseModels/ProxmoxResource.js +51 -1
  428. package/build/dist/Models/DatabaseModels/ProxmoxResource.js.map +1 -1
  429. package/build/dist/Models/DatabaseModels/RunnerJob.js +74 -0
  430. package/build/dist/Models/DatabaseModels/RunnerJob.js.map +1 -1
  431. package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js +134 -3
  432. package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js.map +1 -1
  433. package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js.map +1 -1
  434. package/build/dist/Server/API/AIChatAPI.js +6 -1
  435. package/build/dist/Server/API/AIChatAPI.js.map +1 -1
  436. package/build/dist/Server/API/AIInvestigationAPI.js +17 -10
  437. package/build/dist/Server/API/AIInvestigationAPI.js.map +1 -1
  438. package/build/dist/Server/API/AutoRemediationAPI.js +144 -24
  439. package/build/dist/Server/API/AutoRemediationAPI.js.map +1 -1
  440. package/build/dist/Server/API/KubernetesClusterAiAccessAPI.js +436 -22
  441. package/build/dist/Server/API/KubernetesClusterAiAccessAPI.js.map +1 -1
  442. package/build/dist/Server/API/MicrosoftTeamsAPI.js +69 -13
  443. package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
  444. package/build/dist/Server/API/ProxmoxResourceAPI.js +187 -14
  445. package/build/dist/Server/API/ProxmoxResourceAPI.js.map +1 -1
  446. package/build/dist/Server/Infrastructure/GlobalCache.js +27 -0
  447. package/build/dist/Server/Infrastructure/GlobalCache.js.map +1 -1
  448. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796000000000-AddTeamComplianceRuleScope.js +50 -0
  449. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796000000000-AddTeamComplianceRuleScope.js.map +1 -0
  450. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796100000000-AddKubernetesAiAgentAndAiDefaults.js +84 -0
  451. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796100000000-AddKubernetesAiAgentAndAiDefaults.js.map +1 -0
  452. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796200000000-AddProxmoxResourceNativePushColumns.js +31 -0
  453. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1796200000000-AddProxmoxResourceNativePushColumns.js.map +1 -0
  454. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
  455. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  456. package/build/dist/Server/Middleware/TelemetryIngest.js +34 -19
  457. package/build/dist/Server/Middleware/TelemetryIngest.js.map +1 -1
  458. package/build/dist/Server/Services/AIService.js +59 -1
  459. package/build/dist/Server/Services/AIService.js.map +1 -1
  460. package/build/dist/Server/Services/AlertService.js +248 -13
  461. package/build/dist/Server/Services/AlertService.js.map +1 -1
  462. package/build/dist/Server/Services/AlertSeverityService.js +51 -15
  463. package/build/dist/Server/Services/AlertSeverityService.js.map +1 -1
  464. package/build/dist/Server/Services/AutoRemediationRuleService.js +1 -1
  465. package/build/dist/Server/Services/AutoRemediationRuleService.js.map +1 -1
  466. package/build/dist/Server/Services/IncidentService.js +199 -72
  467. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  468. package/build/dist/Server/Services/IncidentSeverityService.js +51 -15
  469. package/build/dist/Server/Services/IncidentSeverityService.js.map +1 -1
  470. package/build/dist/Server/Services/KubernetesAiAgentJobService.js +158 -0
  471. package/build/dist/Server/Services/KubernetesAiAgentJobService.js.map +1 -0
  472. package/build/dist/Server/Services/KubernetesAiAgentService.js +1145 -0
  473. package/build/dist/Server/Services/KubernetesAiAgentService.js.map +1 -0
  474. package/build/dist/Server/Services/KubernetesClusterAiAccessService.js +842 -371
  475. package/build/dist/Server/Services/KubernetesClusterAiAccessService.js.map +1 -1
  476. package/build/dist/Server/Services/KubernetesClusterService.js +86 -17
  477. package/build/dist/Server/Services/KubernetesClusterService.js.map +1 -1
  478. package/build/dist/Server/Services/ProjectService.js +22 -0
  479. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  480. package/build/dist/Server/Services/ProxmoxResourceService.js +258 -3
  481. package/build/dist/Server/Services/ProxmoxResourceService.js.map +1 -1
  482. package/build/dist/Server/Services/RunnerJobService.js +178 -92
  483. package/build/dist/Server/Services/RunnerJobService.js.map +1 -1
  484. package/build/dist/Server/Services/RunnerService.js +1 -1
  485. package/build/dist/Server/Services/RunnerService.js.map +1 -1
  486. package/build/dist/Server/Services/ScheduledMaintenanceService.js +535 -3
  487. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  488. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js +316 -46
  489. package/build/dist/Server/Services/ScheduledMaintenanceStateTimelineService.js.map +1 -1
  490. package/build/dist/Server/Services/TeamComplianceSettingService.js +833 -7
  491. package/build/dist/Server/Services/TeamComplianceSettingService.js.map +1 -1
  492. package/build/dist/Server/Utils/AI/ClusterAccess/ClusterAccessContext.js +52 -9
  493. package/build/dist/Server/Utils/AI/ClusterAccess/ClusterAccessContext.js.map +1 -1
  494. package/build/dist/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.js +13 -9
  495. package/build/dist/Server/Utils/AI/ClusterAccess/KubectlInvestigationToolkit.js.map +1 -1
  496. package/build/dist/Server/Utils/AI/ClusterAccess/KubectlJobRunner.js +7 -3
  497. package/build/dist/Server/Utils/AI/ClusterAccess/KubectlJobRunner.js.map +1 -1
  498. package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js +29 -15
  499. package/build/dist/Server/Utils/AI/Remediation/RemediationCommandTools.js.map +1 -1
  500. package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js +56 -20
  501. package/build/dist/Server/Utils/AI/Remediation/RemediationExecutionRunner.js.map +1 -1
  502. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js +39 -5
  503. package/build/dist/Server/Utils/AI/SRE/AIInvestigationEngine.js.map +1 -1
  504. package/build/dist/Server/Utils/AI/SRE/IncidentPostmortemRunner.js +30 -3
  505. package/build/dist/Server/Utils/AI/SRE/IncidentPostmortemRunner.js.map +1 -1
  506. package/build/dist/Server/Utils/AI/SRE/InvestigationEligibility.js +13 -2
  507. package/build/dist/Server/Utils/AI/SRE/InvestigationEligibility.js.map +1 -1
  508. package/build/dist/Server/Utils/AI/SRE/InvestigationGrader.js +1 -1
  509. package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js +4 -2
  510. package/build/dist/Server/Utils/AutoRemediation/CommandPlanExecutor.js.map +1 -1
  511. package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js +111 -6
  512. package/build/dist/Server/Utils/Telemetry/InventoryEntityRegistry.js.map +1 -1
  513. package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js +40 -4
  514. package/build/dist/Server/Utils/Telemetry/ProxmoxCephSnapshotScan.js.map +1 -1
  515. package/build/dist/Server/Utils/Telemetry/ProxmoxNativeNodeLiveness.js +296 -0
  516. package/build/dist/Server/Utils/Telemetry/ProxmoxNativeNodeLiveness.js.map +1 -0
  517. package/build/dist/Server/Utils/Telemetry/ProxmoxNativePush.js +699 -0
  518. package/build/dist/Server/Utils/Telemetry/ProxmoxNativePush.js.map +1 -0
  519. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js +77 -19
  520. package/build/dist/Server/Utils/Telemetry/TelemetryEntity.js.map +1 -1
  521. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +505 -42
  522. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  523. package/build/dist/Types/AI/AIRunType.js +9 -4
  524. package/build/dist/Types/AI/AIRunType.js.map +1 -1
  525. package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js +10 -16
  526. package/build/dist/Types/AutoRemediation/AiRemediationCommandPlan.js.map +1 -1
  527. package/build/dist/Types/AutoRemediation/AiRemediationCommandPolicyVerdict.js +28 -0
  528. package/build/dist/Types/AutoRemediation/AiRemediationCommandPolicyVerdict.js.map +1 -0
  529. package/build/dist/Types/Kubernetes/KubernetesClusterAiAccess.js +72 -16
  530. package/build/dist/Types/Kubernetes/KubernetesClusterAiAccess.js.map +1 -1
  531. package/build/dist/Types/Kubernetes/KubernetesClusterAiAccessPermissions.js +20 -16
  532. package/build/dist/Types/Kubernetes/KubernetesClusterAiAccessPermissions.js.map +1 -1
  533. package/build/dist/Types/Kubernetes/KubernetesClusterAiInsights.js +17 -0
  534. package/build/dist/Types/Kubernetes/KubernetesClusterAiInsights.js.map +1 -0
  535. package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js +4 -4
  536. package/build/dist/Types/Monitor/ProxmoxAlertTemplates.js.map +1 -1
  537. package/build/dist/Types/Team/ComplianceNotificationChannel.js +23 -0
  538. package/build/dist/Types/Team/ComplianceNotificationChannel.js.map +1 -0
  539. package/build/dist/Types/Team/ComplianceRule.js +304 -0
  540. package/build/dist/Types/Team/ComplianceRule.js.map +1 -0
  541. package/build/dist/Types/Team/ComplianceRuleType.js +21 -0
  542. package/build/dist/Types/Team/ComplianceRuleType.js.map +1 -1
  543. package/build/dist/Types/Team/TeamComplianceStatus.js +2 -0
  544. package/build/dist/Types/Team/TeamComplianceStatus.js.map +1 -0
  545. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js +25 -0
  546. package/build/dist/Types/Telemetry/TelemetryIngestSurface.js.map +1 -1
  547. package/build/dist/UI/Components/ActionButton/ActionButtonSchema.js +20 -1
  548. package/build/dist/UI/Components/ActionButton/ActionButtonSchema.js.map +1 -1
  549. package/build/dist/UI/Components/ActionButton/RowActions.js +113 -0
  550. package/build/dist/UI/Components/ActionButton/RowActions.js.map +1 -0
  551. package/build/dist/UI/Components/ActionButton/SplitActionButtons.js +71 -0
  552. package/build/dist/UI/Components/ActionButton/SplitActionButtons.js.map +1 -0
  553. package/build/dist/UI/Components/Charts/Area/AreaChart.js +16 -1
  554. package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
  555. package/build/dist/UI/Components/Charts/Bar/BarChart.js +16 -1
  556. package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
  557. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +27 -5
  558. package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
  559. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +61 -194
  560. package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
  561. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +84 -26
  562. package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
  563. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +75 -196
  564. package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
  565. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.js +133 -0
  566. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.js.map +1 -1
  567. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseChartBucketsChange.js +26 -0
  568. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseChartBucketsChange.js.map +1 -0
  569. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseChartRangeSelection.js +371 -0
  570. package/build/dist/UI/Components/Charts/ChartLibrary/Utils/UseChartRangeSelection.js.map +1 -0
  571. package/build/dist/UI/Components/Charts/Line/LineChart.js +16 -1
  572. package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
  573. package/build/dist/UI/Components/Charts/TimeRangeZoom/ResetTimeRangeZoomButton.js +35 -0
  574. package/build/dist/UI/Components/Charts/TimeRangeZoom/ResetTimeRangeZoomButton.js.map +1 -0
  575. package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomContext.js +107 -0
  576. package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomContext.js.map +1 -0
  577. package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHint.js +41 -0
  578. package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomHint.js.map +1 -0
  579. package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomUtil.js +117 -0
  580. package/build/dist/UI/Components/Charts/TimeRangeZoom/TimeRangeZoomUtil.js.map +1 -0
  581. package/build/dist/UI/Components/Charts/TimeRangeZoom/UseTimeRangeZoom.js +121 -0
  582. package/build/dist/UI/Components/Charts/TimeRangeZoom/UseTimeRangeZoom.js.map +1 -0
  583. package/build/dist/UI/Components/Charts/Utils/DataPoint.js +15 -7
  584. package/build/dist/UI/Components/Charts/Utils/DataPoint.js.map +1 -1
  585. package/build/dist/UI/Components/Charts/Utils/XAxis.js +70 -0
  586. package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
  587. package/build/dist/UI/Components/Charts/Utils/useHistogramRangeSelection.js +305 -38
  588. package/build/dist/UI/Components/Charts/Utils/useHistogramRangeSelection.js.map +1 -1
  589. package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js +89 -14
  590. package/build/dist/UI/Components/EntityDropdown/EntityDropdown.js.map +1 -1
  591. package/build/dist/UI/Components/Forms/Fields/FormField.js +11 -2
  592. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  593. package/build/dist/UI/Components/Input/Input.js +69 -54
  594. package/build/dist/UI/Components/Input/Input.js.map +1 -1
  595. package/build/dist/UI/Components/List/ListRow.js +4 -39
  596. package/build/dist/UI/Components/List/ListRow.js.map +1 -1
  597. package/build/dist/UI/Components/LogsViewer/LogsViewer.js +31 -8
  598. package/build/dist/UI/Components/LogsViewer/LogsViewer.js.map +1 -1
  599. package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js +10 -1
  600. package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js.map +1 -1
  601. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +139 -21
  602. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
  603. package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js +30 -8
  604. package/build/dist/UI/Components/LogsViewer/components/LogsHistogram.js.map +1 -1
  605. package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js +1 -1
  606. package/build/dist/UI/Components/LogsViewer/components/LogsViewerToolbar.js.map +1 -1
  607. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +10 -0
  608. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  609. package/build/dist/UI/Components/MoreMenu/MoreMenu.js +253 -14
  610. package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
  611. package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js +43 -13
  612. package/build/dist/UI/Components/MoreMenu/MoreMenuItem.js.map +1 -1
  613. package/build/dist/UI/Components/OrderedStatesList/Item.js +2 -38
  614. package/build/dist/UI/Components/OrderedStatesList/Item.js.map +1 -1
  615. package/build/dist/UI/Components/StatusPage/ResourceGrid.js +53 -15
  616. package/build/dist/UI/Components/StatusPage/ResourceGrid.js.map +1 -1
  617. package/build/dist/UI/Components/Table/TableBody.js +6 -2
  618. package/build/dist/UI/Components/Table/TableBody.js.map +1 -1
  619. package/build/dist/UI/Components/Table/TableRow.js +12 -75
  620. package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
  621. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js +32 -7
  622. package/build/dist/UI/Components/TelemetryViewer/TelemetryViewer.js.map +1 -1
  623. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js +27 -9
  624. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryHistogram.js.map +1 -1
  625. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.js +11 -1
  626. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.js.map +1 -1
  627. package/build/dist/UI/Components/TelemetryViewer/useViewerTimeRangeZoom.js +272 -0
  628. package/build/dist/UI/Components/TelemetryViewer/useViewerTimeRangeZoom.js.map +1 -0
  629. package/build/dist/UI/Components/Toggle/Toggle.js +14 -1
  630. package/build/dist/UI/Components/Toggle/Toggle.js.map +1 -1
  631. package/build/dist/UI/Components/Tooltip/Tooltip.js +1 -1
  632. package/build/dist/UI/Components/Tooltip/Tooltip.js.map +1 -1
  633. package/build/dist/Utils/AiRemediation/CommandPolicy.js +1 -1
  634. package/build/dist/Utils/AiRemediation/CommandPolicy.js.map +1 -1
  635. package/build/dist/Utils/AiRemediation/KubectlPolicy.js +1 -1
  636. package/build/dist/Utils/AiRemediation/KubectlPolicy.js.map +1 -1
  637. package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js +27 -1
  638. package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js.map +1 -1
  639. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DoubleClick.js","sourceRoot":"","sources":["../../../../../../../UI/Components/Charts/ChartLibrary/Utils/DoubleClick.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAW,GAAG,CAAC"}
1
+ {"version":3,"file":"DoubleClick.js","sourceRoot":"","sources":["../../../../../../../UI/Components/Charts/ChartLibrary/Utils/DoubleClick.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;GAWG;AACH,MAAM,CAAC,MAAM,8BAA8B,GAAW,GAAG,CAAC;AAa1D;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,qBAAqB,CAAC,OAAgB;IACpD,MAAM,eAAe,GAET,KAAK,CAAC,MAAM,CAAuC,IAAI,CAAC,CAAC;IAErE,MAAM,MAAM,GAAe,KAAK,CAAC,WAAW,CAAC,GAAS,EAAE;QACtD,IAAI,eAAe,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACrC,YAAY,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YACtC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;QACjC,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,MAAM,CAAC;IAChB,CAAC,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAEb,MAAM,GAAG,GAAiC,KAAK,CAAC,WAAW,CACzD,CAAC,MAAkB,EAAQ,EAAE;QAC3B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,EAAE,CAAC;YACT,OAAO;QACT,CAAC;QACD,MAAM,EAAE,CAAC;QACT,eAAe,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YACxC,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;YAC/B,MAAM,EAAE,CAAC;QACX,CAAC,EAAE,8BAA8B,CAAC,CAAC;IACrC,CAAC,EACD,CAAC,OAAO,EAAE,MAAM,CAAC,CAClB,CAAC;IAEF,OAAO,KAAK,CAAC,OAAO,CAAC,GAAuB,EAAE;QAC5C,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IACtC,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;AACpB,CAAC;AAaD;;;;;GAKG;AACH,MAAM,UAAU,0BAA0B,CACxC,KAAgC;IAEhC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACjC,OAAO,KAAK,CAAC;IACf,CAAC;IAED,4DAA4D;IAC5D,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC;AACvB,CAAC;AAyBD;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,UAAU,mBAAmB,CACjC,KAA+B;IAE/B,MAAM,QAAQ,GACZ,KAAK,CAAC,MAAM,CAA2B,KAAK,CAAC,CAAC;IAChD,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;IAEzB,iEAAiE;IACjE,MAAM,eAAe,GACnB,KAAK,CAAC,MAAM,CAAU,KAAK,CAAC,CAAC;IAC/B,MAAM,WAAW,GAEL,KAAK,CAAC,MAAM,CAAuC,IAAI,CAAC,CAAC;IAErE,MAAM,SAAS,GAAe,KAAK,CAAC,WAAW,CAAC,GAAS,EAAE;QACzD,IAAI,WAAW,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YACjC,YAAY,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YAClC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;QAC7B,CAAC;IACH,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,KAAK,CAAC,SAAS,CAAC,GAAG,EAAE;QACnB,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,MAAM,OAAO,GACX,KAAK,CAAC,WAAW,CAAC,CAAC,KAAgC,EAAW,EAAE;QAC9D,eAAe,CAAC,OAAO;YACrB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,0BAA0B,CAAC,KAAK,CAAC,CAAC;QACjE,OAAO,eAAe,CAAC,OAAO,CAAC;IACjC,CAAC,EAAE,EAAE,CAAC,CAAC;IAET,MAAM,SAAS,GACb,KAAK,CAAC,WAAW,CACf,CAAC,KAAgC,EAAW,EAAE;QAC5C,IAAI,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC;YAC7B,OAAO,KAAK,CAAC;QACf,CAAC;QAED,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;QAEhC;;;;;WAKG;QACH,IAAI,KAAK,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,SAAS,EAAE,CAAC;QACZ,WAAW,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;;YACpC,WAAW,CAAC,OAAO,GAAG,IAAI,CAAC;YAC3B,MAAA,QAAQ,CAAC,OAAO,wDAAI,CAAC;QACvB,CAAC,EAAE,CAAC,CAAC,CAAC;QACN,OAAO,IAAI,CAAC;IACd,CAAC,EACD,CAAC,SAAS,CAAC,CACZ,CAAC;IAEJ,MAAM,SAAS,GAAkB,KAAK,CAAC,WAAW,CAAC,GAAY,EAAE;QAC/D,OAAO,WAAW,CAAC,OAAO,KAAK,IAAI,CAAC;IACtC,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,aAAa,GAAe,KAAK,CAAC,WAAW,CAAC,GAAS,EAAE;;QAC7D,SAAS,EAAE,CAAC;QACZ,MAAA,QAAQ,CAAC,OAAO,wDAAI,CAAC;IACvB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,OAAO,KAAK,CAAC,OAAO,CAAC,GAAqB,EAAE;QAC1C,OAAO;YACL,OAAO,EAAE,OAAO;YAChB,SAAS,EAAE,SAAS;YACpB,SAAS,EAAE,SAAS;YACpB,aAAa,EAAE,aAAa;SAC7B,CAAC;IACJ,CAAC,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,CAAC,CAAC,CAAC;AACrD,CAAC"}
@@ -0,0 +1,26 @@
1
+ import React from "react";
2
+ /**
3
+ * Calls `onChange` when a chart is redrawn over other buckets (a zoom, a
4
+ * reset, a new range), before the browser paints, and never on the first
5
+ * render. The buckets are the labels the chart draws on its x-axis.
6
+ *
7
+ * A chart's click selections (a dot, a bar) point at the buckets they were
8
+ * made on; once those are gone the selection matches nothing, and a
9
+ * selection that dims the rest of the chart would dim all of it.
10
+ */
11
+ export default function useChartBucketsChange(categoryLabels, onChange) {
12
+ const bucketKey = React.useMemo(() => {
13
+ return categoryLabels.join("\u0000");
14
+ }, [categoryLabels]);
15
+ const lastBucketKeyRef = React.useRef(bucketKey);
16
+ const onChangeRef = React.useRef(onChange);
17
+ onChangeRef.current = onChange;
18
+ React.useLayoutEffect(() => {
19
+ if (lastBucketKeyRef.current === bucketKey) {
20
+ return;
21
+ }
22
+ lastBucketKeyRef.current = bucketKey;
23
+ onChangeRef.current();
24
+ }, [bucketKey]);
25
+ }
26
+ //# sourceMappingURL=UseChartBucketsChange.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UseChartBucketsChange.js","sourceRoot":"","sources":["../../../../../../../UI/Components/Charts/ChartLibrary/Utils/UseChartBucketsChange.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;GAQG;AACH,MAAM,CAAC,OAAO,UAAU,qBAAqB,CAC3C,cAA6B,EAC7B,QAAoB;IAEpB,MAAM,SAAS,GAAW,KAAK,CAAC,OAAO,CAAC,GAAW,EAAE;QACnD,OAAO,cAAc,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC;IACrB,MAAM,gBAAgB,GACpB,KAAK,CAAC,MAAM,CAAS,SAAS,CAAC,CAAC;IAClC,MAAM,WAAW,GACf,KAAK,CAAC,MAAM,CAAa,QAAQ,CAAC,CAAC;IACrC,WAAW,CAAC,OAAO,GAAG,QAAQ,CAAC;IAE/B,KAAK,CAAC,eAAe,CAAC,GAAG,EAAE;QACzB,IAAI,gBAAgB,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC3C,OAAO;QACT,CAAC;QACD,gBAAgB,CAAC,OAAO,GAAG,SAAS,CAAC;QACrC,WAAW,CAAC,OAAO,EAAE,CAAC;IACxB,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AAClB,CAAC"}
@@ -0,0 +1,371 @@
1
+ import React from "react";
2
+ import { CHART_DATA_POINT_DATE_KEY } from "../Types/ChartDataPoint";
3
+ import { useDoubleClickReset, } from "./DoubleClick";
4
+ /*
5
+ * How far the pointer may wander from where it was pressed and still be a
6
+ * pointer that has not moved: a hand on a mouse or a trackpad is never
7
+ * quite still, and a press that drifts a pixel or two across the edge of a
8
+ * bucket is still a click.
9
+ */
10
+ export const CHART_PRESS_STILLNESS_PX = 3;
11
+ /**
12
+ * The row under the pointer: recharts' active tooltip index when it is a
13
+ * valid row, else the row whose label matches recharts' active label.
14
+ */
15
+ export function getChartRowIndex(data, index, chartState) {
16
+ const activeTooltipIndex = chartState === null || chartState === void 0 ? void 0 : chartState.activeTooltipIndex;
17
+ const numericIndex = typeof activeTooltipIndex === "number"
18
+ ? activeTooltipIndex
19
+ : Number(activeTooltipIndex);
20
+ if (activeTooltipIndex !== undefined &&
21
+ activeTooltipIndex !== null &&
22
+ activeTooltipIndex !== "" &&
23
+ Number.isInteger(numericIndex) &&
24
+ numericIndex >= 0 &&
25
+ numericIndex < data.length) {
26
+ return numericIndex;
27
+ }
28
+ // Fall back to matching activeLabel against the row labels.
29
+ if ((chartState === null || chartState === void 0 ? void 0 : chartState.activeLabel) !== undefined) {
30
+ const rowIndex = data.findIndex((row) => {
31
+ return row[index] === chartState.activeLabel;
32
+ });
33
+ return rowIndex >= 0 ? rowIndex : null;
34
+ }
35
+ return null;
36
+ }
37
+ /** When a row's bucket starts, from the epoch ms every row carries. */
38
+ export function getChartBucketStart(data, rowIndex) {
39
+ var _a;
40
+ const rawDate = (_a = data[rowIndex]) === null || _a === void 0 ? void 0 : _a[CHART_DATA_POINT_DATE_KEY];
41
+ return typeof rawDate === "number" ? new Date(rawDate) : null;
42
+ }
43
+ /**
44
+ * The time rows lowerIndex..upperIndex cover: from the start of the first
45
+ * bucket to the END of the last one. Its end is its start plus one bucket
46
+ * width, derived from the adjacent row (the rows are an evenly spaced
47
+ * grid). A single row with no neighbour has no known width.
48
+ */
49
+ export function getChartBucketWindow(data, lowerIndex, upperIndex) {
50
+ const start = getChartBucketStart(data, lowerIndex);
51
+ const lastBucketStart = getChartBucketStart(data, upperIndex);
52
+ if (!start || !lastBucketStart) {
53
+ return null;
54
+ }
55
+ const adjacentDate = upperIndex > 0
56
+ ? getChartBucketStart(data, upperIndex - 1)
57
+ : getChartBucketStart(data, upperIndex + 1);
58
+ const bucketWidthInMs = adjacentDate
59
+ ? Math.abs(lastBucketStart.getTime() - adjacentDate.getTime())
60
+ : 0;
61
+ return {
62
+ start: start,
63
+ end: new Date(lastBucketStart.getTime() + bucketWidthInMs),
64
+ };
65
+ }
66
+ /*
67
+ * The events recharts may hold for the next animation frame on a chart that
68
+ * offers a drag: its defaults, less "mousemove".
69
+ *
70
+ * recharts works out the bucket under the pointer a frame after each
71
+ * mousemove, but hands mousedown and mouseup to the chart at once, with
72
+ * the bucket it last worked out. So a drag released in the frame of its
73
+ * last move lost the buckets that move crossed, and a press in the frame
74
+ * the pointer arrived started one bucket early, or was dropped outright
75
+ * when the move queued before it (no button held yet) landed after it.
76
+ * Browsers already coalesce mousemove to about one a frame, so taking it
77
+ * at once costs no extra renders.
78
+ */
79
+ export const RANGE_SELECTION_THROTTLED_EVENTS = ["touchmove", "pointermove", "scroll", "wheel"];
80
+ const RANGE_SELECTION_ROOT_STYLE = {
81
+ cursor: "crosshair",
82
+ };
83
+ /**
84
+ * Drag-to-select a time window on the line, area and bar charts.
85
+ *
86
+ * - A drag across buckets selects from the start of the first to the END
87
+ * of the last, as soon as the button is released.
88
+ * - A press and release on one bucket is a plain click and keeps its
89
+ * meaning (a bucket click, a legend toggle); only a real drag selects.
90
+ * A drag needs the pointer itself to move, by more than
91
+ * CHART_PRESS_STILLNESS_PX: a press whose bucket changes under a still
92
+ * pointer (new rows landing mid-press, a hand's drift across a bucket's
93
+ * edge) is still a plain click.
94
+ * - Nothing re-renders until the pointer leaves the bucket it pressed. A
95
+ * render under a press can replace the node it landed on (recharts
96
+ * re-keys a line's dots when it redraws them), and a press whose node
97
+ * is gone by the release gets no click and no dblclick - so a
98
+ * double-click on a line never reached the chart's zoom reset.
99
+ * - The release is resolved from the bucket recharts reports under the
100
+ * pointer at mouseup, falling back to the last move. The chart takes
101
+ * mousemove unthrottled (RANGE_SELECTION_THROTTLED_EVENTS), so that
102
+ * bucket is the one under the pointer now, not a frame ago.
103
+ * - A drag released outside the chart still selects: readers overshoot a
104
+ * 180px-tall chart all the time, and the chart's own mouseup never fires
105
+ * there. Before, the drag was abandoned and its band stayed painted until
106
+ * the pointer came back.
107
+ * - The click the browser fires after a drag is reported as suppressed.
108
+ * - With onTimeRangeReset, the second press of a double-click is the reset
109
+ * and never a selection, and it resets even when the browser drops the
110
+ * `dblclick` because the chart's new data re-keyed the node under the
111
+ * press (see useDoubleClickReset).
112
+ */
113
+ const useChartRangeSelection = (options) => {
114
+ const canSelect = Boolean(options.onTimeRangeSelect) && options.enabled !== false;
115
+ const canReset = Boolean(options.onTimeRangeReset);
116
+ const doubleClickReset = useDoubleClickReset(options.onTimeRangeReset);
117
+ const [selectionStartLabel, setSelectionStartLabel] = React.useState(null);
118
+ const [selectionEndLabel, setSelectionEndLabel] = React.useState(null);
119
+ /*
120
+ * The refs, not render state, are the authority on a selection in
121
+ * progress: a release can be seen twice (the chart's own mouseup and the
122
+ * page-wide listener below) and must only commit once.
123
+ */
124
+ const isSelecting = React.useRef(false);
125
+ const startIndexRef = React.useRef(null);
126
+ const endIndexRef = React.useRef(null);
127
+ const suppressNextClickRef = React.useRef(false);
128
+ // Whether the band is painted, i.e. the selection is in render state.
129
+ const isBandShownRef = React.useRef(false);
130
+ // Where the press in progress went down, when recharts said.
131
+ const pressClientXRef = React.useRef(null);
132
+ // The page-wide mouseup listener of the press in progress, if any.
133
+ const releaseListenerRef = React.useRef(null);
134
+ /*
135
+ * A release outside the chart is handled by a window listener installed
136
+ * a render earlier, so it reads the latest rows and handler from here.
137
+ */
138
+ const latest = React.useRef({
139
+ data: options.data,
140
+ index: options.index,
141
+ onTimeRangeSelect: options.onTimeRangeSelect,
142
+ canSelect: canSelect,
143
+ });
144
+ latest.current = {
145
+ data: options.data,
146
+ index: options.index,
147
+ onTimeRangeSelect: options.onTimeRangeSelect,
148
+ canSelect: canSelect,
149
+ };
150
+ const stopListeningForRelease = React.useCallback(() => {
151
+ if (releaseListenerRef.current) {
152
+ window.removeEventListener("mouseup", releaseListenerRef.current);
153
+ releaseListenerRef.current = null;
154
+ }
155
+ }, []);
156
+ const clearSelection = React.useCallback(() => {
157
+ isSelecting.current = false;
158
+ startIndexRef.current = null;
159
+ endIndexRef.current = null;
160
+ stopListeningForRelease();
161
+ // A press that never became a drag painted nothing: leave render alone.
162
+ if (isBandShownRef.current) {
163
+ isBandShownRef.current = false;
164
+ setSelectionStartLabel(null);
165
+ setSelectionEndLabel(null);
166
+ }
167
+ }, [stopListeningForRelease]);
168
+ /*
169
+ * Whether the pointer has left the spot the press went down on. Without
170
+ * positions to go by (a caller that hands no event), it has: any change
171
+ * of bucket counts, as it always did.
172
+ */
173
+ const hasPointerMoved = React.useCallback((event) => {
174
+ const clientX = event === null || event === void 0 ? void 0 : event.clientX;
175
+ if (pressClientXRef.current === null || typeof clientX !== "number") {
176
+ return true;
177
+ }
178
+ return (Math.abs(clientX - pressClientXRef.current) > CHART_PRESS_STILLNESS_PX);
179
+ }, []);
180
+ const getLabel = React.useCallback((rowIndex) => {
181
+ var _a;
182
+ const label = (_a = latest.current.data[rowIndex]) === null || _a === void 0 ? void 0 : _a[latest.current.index];
183
+ return typeof label === "string" ? label : null;
184
+ }, []);
185
+ const onMouseMove = React.useCallback((chartState, mouseEvent) => {
186
+ if (!isSelecting.current) {
187
+ return;
188
+ }
189
+ /*
190
+ * No button held: it came up somewhere no mouseup could be heard
191
+ * (outside the browser window, say). Abandon the selection.
192
+ */
193
+ if (mouseEvent && mouseEvent.buttons === 0) {
194
+ clearSelection();
195
+ return;
196
+ }
197
+ const rowIndex = getChartRowIndex(latest.current.data, latest.current.index, chartState);
198
+ if (rowIndex === null) {
199
+ return;
200
+ }
201
+ const startIndex = startIndexRef.current;
202
+ if (startIndex === null || getLabel(rowIndex) === null) {
203
+ return;
204
+ }
205
+ if (!isBandShownRef.current) {
206
+ // Still on the pressed bucket: a click so far, so paint nothing.
207
+ if (rowIndex === startIndex) {
208
+ endIndexRef.current = rowIndex;
209
+ return;
210
+ }
211
+ /*
212
+ * Another bucket under a pointer that has not really moved: new
213
+ * rows landed under the press, or a hand's drift crossed the edge
214
+ * of the bucket it pressed. Not a drag.
215
+ */
216
+ if (!hasPointerMoved(mouseEvent)) {
217
+ return;
218
+ }
219
+ }
220
+ endIndexRef.current = rowIndex;
221
+ /*
222
+ * The band runs between its buckets in row order, whichever way the
223
+ * drag goes: a bar chart draws x1 from the left edge of its bar and
224
+ * x2 to the right edge of its own, so a right-to-left drag in drag
225
+ * order left both end bars unshaded (and two neighbours none).
226
+ */
227
+ const lowerLabel = getLabel(Math.min(startIndex, rowIndex));
228
+ const upperLabel = getLabel(Math.max(startIndex, rowIndex));
229
+ if (lowerLabel === null || upperLabel === null) {
230
+ return;
231
+ }
232
+ isBandShownRef.current = true;
233
+ setSelectionStartLabel(lowerLabel);
234
+ setSelectionEndLabel(upperLabel);
235
+ }, [clearSelection, getLabel, hasPointerMoved]);
236
+ const onMouseUp = React.useCallback((chartState, mouseEvent) => {
237
+ var _a, _b;
238
+ // The end of a double-click's second press: the reset, nothing else.
239
+ if (doubleClickReset.onRelease(mouseEvent)) {
240
+ stopListeningForRelease();
241
+ return;
242
+ }
243
+ if (!isSelecting.current) {
244
+ return;
245
+ }
246
+ const releaseIndex = chartState
247
+ ? getChartRowIndex(latest.current.data, latest.current.index, chartState)
248
+ : null;
249
+ const startIndex = startIndexRef.current;
250
+ const endIndex = releaseIndex !== null ? releaseIndex : endIndexRef.current;
251
+ const wasDragging = isBandShownRef.current;
252
+ clearSelection();
253
+ /*
254
+ * A press whose pointer stayed put is a plain click, whatever bucket
255
+ * recharts reports under it by now: new rows can land during the
256
+ * press, and a hand drifts across a bucket's edge.
257
+ */
258
+ if (!wasDragging && !hasPointerMoved(mouseEvent)) {
259
+ return;
260
+ }
261
+ /*
262
+ * A plain click (the pointer never left the starting bucket) must
263
+ * keep behaving exactly as before — only a real drag selects.
264
+ */
265
+ if (startIndex === null || endIndex === null || startIndex === endIndex) {
266
+ return;
267
+ }
268
+ /*
269
+ * The browser fires a click right after mouseup; swallow it so a
270
+ * drag doesn't also toggle a legend, dot or bar selection. Cleared
271
+ * on a timeout so a never-delivered click can't suppress a later
272
+ * one.
273
+ */
274
+ suppressNextClickRef.current = true;
275
+ setTimeout(() => {
276
+ suppressNextClickRef.current = false;
277
+ }, 0);
278
+ const selectedWindow = getChartBucketWindow(latest.current.data, Math.min(startIndex, endIndex), Math.max(startIndex, endIndex));
279
+ if (!selectedWindow) {
280
+ return;
281
+ }
282
+ (_b = (_a = latest.current).onTimeRangeSelect) === null || _b === void 0 ? void 0 : _b.call(_a, selectedWindow.start, selectedWindow.end);
283
+ }, [clearSelection, doubleClickReset, stopListeningForRelease]);
284
+ /*
285
+ * A press released outside the chart: the chart's own mouseup never
286
+ * fires, so listen on the window until the press ends. A release over
287
+ * the chart reaches the chart's handler first (React listens below the
288
+ * window), which ends the press and removes this listener before the
289
+ * window hears it. Added by the press rather than from render state so
290
+ * the press itself renders nothing (see above).
291
+ */
292
+ const listenForReleaseOffChart = React.useCallback(() => {
293
+ stopListeningForRelease();
294
+ // No bucket off the chart, but the pointer's place and the click count.
295
+ const finishPressOutsideChart = (event) => {
296
+ onMouseUp(null, event);
297
+ };
298
+ releaseListenerRef.current = finishPressOutsideChart;
299
+ window.addEventListener("mouseup", finishPressOutsideChart);
300
+ }, [onMouseUp, stopListeningForRelease]);
301
+ const onMouseDown = React.useCallback((chartState, mouseEvent) => {
302
+ /*
303
+ * The second press of a double-click is the reset, on its release,
304
+ * wherever that is: the window hears a release off the chart, as for
305
+ * a drag below.
306
+ */
307
+ if (doubleClickReset.onPress(mouseEvent)) {
308
+ clearSelection();
309
+ listenForReleaseOffChart();
310
+ return;
311
+ }
312
+ /*
313
+ * Also on a chart that only resets: it takes presses to spot that
314
+ * second one, and selects nothing.
315
+ */
316
+ if (!latest.current.canSelect) {
317
+ return;
318
+ }
319
+ // Only the main button drags; a right-click opens a context menu.
320
+ if (mouseEvent && mouseEvent.button > 0) {
321
+ return;
322
+ }
323
+ const rowIndex = getChartRowIndex(latest.current.data, latest.current.index, chartState);
324
+ if (rowIndex === null || getLabel(rowIndex) === null) {
325
+ return;
326
+ }
327
+ clearSelection();
328
+ isSelecting.current = true;
329
+ startIndexRef.current = rowIndex;
330
+ endIndexRef.current = rowIndex;
331
+ pressClientXRef.current =
332
+ typeof (mouseEvent === null || mouseEvent === void 0 ? void 0 : mouseEvent.clientX) === "number" ? mouseEvent.clientX : null;
333
+ listenForReleaseOffChart();
334
+ }, [clearSelection, doubleClickReset, getLabel, listenForReleaseOffChart]);
335
+ // A chart unmounted mid-press stops listening for its release.
336
+ React.useEffect(() => {
337
+ return () => {
338
+ stopListeningForRelease();
339
+ };
340
+ }, [stopListeningForRelease]);
341
+ const isClickSuppressed = React.useCallback(() => {
342
+ return suppressNextClickRef.current;
343
+ }, []);
344
+ const resetEventProps = canReset
345
+ ? { onDoubleClick: doubleClickReset.onDoubleClick }
346
+ : {};
347
+ let chartEventProps = {};
348
+ if (canSelect) {
349
+ chartEventProps = Object.assign({ onMouseDown: onMouseDown, onMouseMove: onMouseMove, onMouseUp: onMouseUp, throttledEvents: RANGE_SELECTION_THROTTLED_EVENTS,
350
+ /*
351
+ * The crosshair that says the plot can be dragged. It has to be on
352
+ * the chart root: recharts gives its wrapper, which fills the plot,
353
+ * an inline cursor: default that a class outside can't beat. Left
354
+ * off entirely otherwise - an explicit undefined would drop
355
+ * recharts' default too.
356
+ */
357
+ style: RANGE_SELECTION_ROOT_STYLE }, resetEventProps);
358
+ }
359
+ else if (canReset) {
360
+ chartEventProps = Object.assign({ onMouseDown: onMouseDown, onMouseUp: onMouseUp }, resetEventProps);
361
+ }
362
+ return {
363
+ canSelect: canSelect,
364
+ selectionStartLabel: selectionStartLabel,
365
+ selectionEndLabel: selectionEndLabel,
366
+ isClickSuppressed: isClickSuppressed,
367
+ chartEventProps: chartEventProps,
368
+ };
369
+ };
370
+ export default useChartRangeSelection;
371
+ //# sourceMappingURL=UseChartRangeSelection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"UseChartRangeSelection.js","sourceRoot":"","sources":["../../../../../../../UI/Components/Charts/ChartLibrary/Utils/UseChartRangeSelection.ts"],"names":[],"mappings":"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"}
@@ -4,7 +4,9 @@ import { CHART_DATA_POINT_X_AXIS_KEY, } from "../ChartLibrary/Types/ChartDataPoi
4
4
  import DataPointUtil from "../Utils/DataPoint";
5
5
  import TimeAnnotationUtil from "../Utils/TimeAnnotation";
6
6
  import XAxisUtil from "../Utils/XAxis";
7
+ import XAxisType from "../Types/XAxis/XAxisType";
7
8
  import NoDataMessage from "../ChartGroup/NoDataMessage";
9
+ import { resolveChartTimeRangeZoom, useChartTimeRangeZoom, } from "../TimeRangeZoom/TimeRangeZoomContext";
8
10
  export const LineChartPalette = [
9
11
  "indigo",
10
12
  "rose",
@@ -18,6 +20,19 @@ export const LineChartPalette = [
18
20
  ];
19
21
  const LineChartElement = (props) => {
20
22
  const [records, setRecords] = React.useState([]);
23
+ /*
24
+ * Drag-to-zoom: the host's own handlers, or else the enclosing page's
25
+ * (TimeRangeZoomScope), so a drag here retimes every chart on the page.
26
+ */
27
+ const pageZoom = useChartTimeRangeZoom();
28
+ const timeRangeZoom = resolveChartTimeRangeZoom({
29
+ onTimeRangeSelect: props.onTimeRangeSelect,
30
+ onTimeRangeReset: props.onTimeRangeReset,
31
+ isTimeAxis: props.xAxis.options.type === XAxisType.Time ||
32
+ props.xAxis.options.type === XAxisType.Date,
33
+ disableTimeRangeZoom: props.disableTimeRangeZoom,
34
+ pageZoom: pageZoom,
35
+ });
21
36
  const categories = props.data.map((item) => {
22
37
  return item.seriesName;
23
38
  });
@@ -108,7 +123,7 @@ const LineChartElement = (props) => {
108
123
  ? formattedTimeReferenceLines
109
124
  : undefined, formattedReferenceRegions: formattedReferenceRegions.length > 0
110
125
  ? formattedReferenceRegions
111
- : undefined, formattedExemplarPoints: formattedExemplars.length > 0 ? formattedExemplars : undefined, onExemplarClick: props.onExemplarClick, onTimeRangeSelect: props.onTimeRangeSelect, onTimeRangeReset: props.onTimeRangeReset, onBucketClick: props.onBucketClick, ghostCategories: props.ghostSeriesNames })),
126
+ : undefined, formattedExemplarPoints: formattedExemplars.length > 0 ? formattedExemplars : undefined, onExemplarClick: props.onExemplarClick, onTimeRangeSelect: timeRangeZoom.onTimeRangeSelect, onTimeRangeReset: timeRangeZoom.onTimeRangeReset, onBucketClick: props.onBucketClick, ghostCategories: props.ghostSeriesNames })),
112
127
  hasNoData && React.createElement(NoDataMessage, null)));
113
128
  };
114
129
  export default LineChartElement;
@@ -1 +1 @@
1
- {"version":3,"file":"LineChart.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/Line/LineChart.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LineChart.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/Line/LineChart.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ import React from "react";
2
+ import IconProp from "../../../../Types/Icon/IconProp";
3
+ import TimeRange from "../../../../Types/Time/TimeRange";
4
+ import Icon from "../../Icon/Icon";
5
+ import { isTimeRangeZoomFor, useChartTimeRangeZoom, } from "./TimeRangeZoomContext";
6
+ export const RESET_TIME_RANGE_ZOOM_BUTTON_TEST_ID = "reset-time-range-zoom";
7
+ /**
8
+ * "Reset zoom", shown only while the enclosing page is zoomed. The same
9
+ * thing a double-click on any chart does, for readers who do not know that
10
+ * gesture and for keyboard users, who cannot perform it.
11
+ *
12
+ * Renders nothing outside a zoomable page or while the page is not zoomed.
13
+ */
14
+ const ResetTimeRangeZoomButton = (props) => {
15
+ var _a;
16
+ const zoom = useChartTimeRangeZoom();
17
+ if (!zoom || !zoom.isZoomed || !zoom.onTimeRangeReset) {
18
+ return null;
19
+ }
20
+ if (props.forTimeRange && !isTimeRangeZoomFor(zoom, props.forTimeRange)) {
21
+ return null;
22
+ }
23
+ const onTimeRangeReset = zoom.onTimeRangeReset;
24
+ const previousRange = (_a = zoom.rangeBeforeZoom) === null || _a === void 0 ? void 0 : _a.range;
25
+ const title = previousRange && previousRange !== TimeRange.CUSTOM
26
+ ? `Go back to ${previousRange}, the time range before the zoom`
27
+ : "Go back to the time range before the zoom";
28
+ return (React.createElement("button", { type: "button", "data-testid": RESET_TIME_RANGE_ZOOM_BUTTON_TEST_ID, className: `inline-flex shrink-0 items-center gap-1 whitespace-nowrap rounded-md px-1.5 py-1 text-xs font-medium text-indigo-600 transition-colors hover:bg-indigo-50 hover:text-indigo-700 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-400 ${props.className || ""}`, title: title, "aria-label": "Reset zoom", onClick: () => {
29
+ onTimeRangeReset();
30
+ } },
31
+ React.createElement(Icon, { icon: IconProp.MagnifyingGlassMinus, className: "h-3.5 w-3.5" }),
32
+ "Reset zoom"));
33
+ };
34
+ export default ResetTimeRangeZoomButton;
35
+ //# sourceMappingURL=ResetTimeRangeZoomButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResetTimeRangeZoomButton.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/TimeRangeZoom/ResetTimeRangeZoomButton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAC/D,OAAO,QAAQ,MAAM,iCAAiC,CAAC;AAEvD,OAAO,SAAS,MAAM,kCAAkC,CAAC;AACzD,OAAO,IAAI,MAAM,iBAAiB,CAAC;AACnC,OAAO,EAEL,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,wBAAwB,CAAC;AAEhC,MAAM,CAAC,MAAM,oCAAoC,GAC/C,uBAAuB,CAAC;AAa1B;;;;;;GAMG;AACH,MAAM,wBAAwB,GAAsC,CAClE,KAAqB,EACA,EAAE;;IACvB,MAAM,IAAI,GAA0C,qBAAqB,EAAE,CAAC;IAE5E,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACtD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,IAAI,KAAK,CAAC,YAAY,IAAI,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,CAAC,YAAY,CAAC,EAAE,CAAC;QACxE,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,gBAAgB,GAAe,IAAI,CAAC,gBAAgB,CAAC;IAC3D,MAAM,aAAa,GAA0B,MAAA,IAAI,CAAC,eAAe,0CAAE,KAAK,CAAC;IACzE,MAAM,KAAK,GACT,aAAa,IAAI,aAAa,KAAK,SAAS,CAAC,MAAM;QACjD,CAAC,CAAC,cAAc,aAAa,kCAAkC;QAC/D,CAAC,CAAC,2CAA2C,CAAC;IAElD,OAAO,CACL,gCACE,IAAI,EAAC,QAAQ,iBACA,oCAAoC,EACjD,SAAS,EAAE,yPAAyP,KAAK,CAAC,SAAS,IAAI,EAAE,EAAE,EAC3R,KAAK,EAAE,KAAK,gBACD,YAAY,EACvB,OAAO,EAAE,GAAG,EAAE;YACZ,gBAAgB,EAAE,CAAC;QACrB,CAAC;QAED,oBAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,CAAC,oBAAoB,EAAE,SAAS,EAAC,aAAa,GAAG;qBAE9D,CACV,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,wBAAwB,CAAC"}
@@ -0,0 +1,107 @@
1
+ import React, { useContext, useMemo, useRef, } from "react";
2
+ import useTimeRangeZoom from "./UseTimeRangeZoom";
3
+ import TimeRangeZoomUtil from "./TimeRangeZoomUtil";
4
+ const ChartTimeRangeZoomContext = React.createContext(null);
5
+ /** The zoom the nearest page (or panel) offers, or null when none does. */
6
+ export const useChartTimeRangeZoom = () => {
7
+ return useContext(ChartTimeRangeZoomContext);
8
+ };
9
+ /**
10
+ * Offers a zoom (from useTimeRangeZoom) to every chart below. Use it when
11
+ * the page needs the zoom itself too, e.g. to show a reset button of its
12
+ * own; otherwise TimeRangeZoomScope is the one-liner.
13
+ */
14
+ export const TimeRangeZoomProvider = (props) => {
15
+ const zoom = props.zoom;
16
+ const onTimeRangeSelect = zoom ? zoom.zoomToTimeRange : null;
17
+ const resetZoom = zoom ? zoom.resetZoom : null;
18
+ const isZoomed = Boolean(zoom === null || zoom === void 0 ? void 0 : zoom.isZoomed);
19
+ const rangeBeforeZoom = (zoom === null || zoom === void 0 ? void 0 : zoom.rangeBeforeZoom) || null;
20
+ /*
21
+ * Kept by value: a page that builds its range inline would otherwise
22
+ * hand every chart a new context on every render.
23
+ */
24
+ const stableTimeRange = useRef((zoom === null || zoom === void 0 ? void 0 : zoom.timeRange) || null);
25
+ if (!TimeRangeZoomUtil.isSameRange(stableTimeRange.current, (zoom === null || zoom === void 0 ? void 0 : zoom.timeRange) || null)) {
26
+ stableTimeRange.current = (zoom === null || zoom === void 0 ? void 0 : zoom.timeRange) || null;
27
+ }
28
+ const timeRange = stableTimeRange.current;
29
+ const value = useMemo(() => {
30
+ if (!onTimeRangeSelect || !resetZoom) {
31
+ return null;
32
+ }
33
+ return {
34
+ onTimeRangeSelect: onTimeRangeSelect,
35
+ onTimeRangeReset: isZoomed ? resetZoom : undefined,
36
+ isZoomed: isZoomed,
37
+ rangeBeforeZoom: rangeBeforeZoom,
38
+ timeRange: timeRange,
39
+ };
40
+ }, [onTimeRangeSelect, resetZoom, isZoomed, rangeBeforeZoom, timeRange]);
41
+ return (React.createElement(ChartTimeRangeZoomContext.Provider, { value: value }, props.children));
42
+ };
43
+ /**
44
+ * Makes every time-series chart inside it zoom the page: a drag on any of
45
+ * them sets the page's range to the window dragged out, a double-click on
46
+ * any of them puts the previous range back, and the page's time picker
47
+ * offers a "Reset zoom" button while it is zoomed.
48
+ *
49
+ * <TimeRangeZoomScope timeRange={timeRange} onTimeRangeChange={setTimeRange}>
50
+ * ...the page...
51
+ * </TimeRangeZoomScope>
52
+ *
53
+ * Wrap the page's picker too, so it can show the reset button.
54
+ */
55
+ export const TimeRangeZoomScope = (props) => {
56
+ const zoom = useTimeRangeZoom({
57
+ timeRange: props.timeRange,
58
+ onTimeRangeChange: props.onTimeRangeChange,
59
+ });
60
+ return (React.createElement(TimeRangeZoomProvider, { zoom: zoom }, props.children));
61
+ };
62
+ /**
63
+ * Whether a zoom is over the given range. A zoom that did not say which
64
+ * range it works over is taken to be over any; see
65
+ * ChartTimeRangeZoomContextValue.timeRange.
66
+ */
67
+ export const isTimeRangeZoomFor = (zoom, timeRange) => {
68
+ if (!zoom) {
69
+ return false;
70
+ }
71
+ if (!zoom.timeRange) {
72
+ return true;
73
+ }
74
+ return TimeRangeZoomUtil.isSameRange(zoom.timeRange, timeRange);
75
+ };
76
+ /**
77
+ * Which zoom handlers a chart ends up with.
78
+ *
79
+ * - disableTimeRangeZoom: none at all.
80
+ * - A host that passes either handler owns zooming for that chart: it gets
81
+ * exactly what the host passed. A host that zooms its own way also resets
82
+ * its own way; borrowing the page's reset would undo a zoom the chart did
83
+ * not make, and borrowing the page's zoom would make a reset-only chart
84
+ * (a dashboard bar panel) retime something its host does not know about.
85
+ * - Otherwise a time-axis chart takes the page's zoom, if the page offers
86
+ * one.
87
+ */
88
+ export const resolveChartTimeRangeZoom = (input) => {
89
+ if (input.disableTimeRangeZoom) {
90
+ return { onTimeRangeSelect: undefined, onTimeRangeReset: undefined };
91
+ }
92
+ if (input.onTimeRangeSelect || input.onTimeRangeReset) {
93
+ return {
94
+ onTimeRangeSelect: input.onTimeRangeSelect,
95
+ onTimeRangeReset: input.onTimeRangeReset,
96
+ };
97
+ }
98
+ if (input.isTimeAxis && input.pageZoom) {
99
+ return {
100
+ onTimeRangeSelect: input.pageZoom.onTimeRangeSelect,
101
+ onTimeRangeReset: input.pageZoom.onTimeRangeReset,
102
+ };
103
+ }
104
+ return { onTimeRangeSelect: undefined, onTimeRangeReset: undefined };
105
+ };
106
+ export default ChartTimeRangeZoomContext;
107
+ //# sourceMappingURL=TimeRangeZoomContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TimeRangeZoomContext.js","sourceRoot":"","sources":["../../../../../../UI/Components/Charts/TimeRangeZoom/TimeRangeZoomContext.tsx"],"names":[],"mappings":"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"}