@oneuptime/common 12.0.30 → 12.0.32
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.
- package/Models/AnalyticsModels/SecurityEvent.ts +48 -16
- package/Models/AnalyticsModels/ThreatIntelIndicator.ts +10 -5
- package/Models/DatabaseModels/AlertSeverity.ts +44 -0
- package/Models/DatabaseModels/AlertState.ts +0 -2
- package/Models/DatabaseModels/DetectionRule.ts +16 -5
- package/Models/DatabaseModels/Domain.ts +1 -1
- package/Models/DatabaseModels/GoogleSecOpsConnection.ts +14 -5
- package/Models/DatabaseModels/Incident.ts +1 -1
- package/Models/DatabaseModels/IncidentSeverity.ts +44 -0
- package/Models/DatabaseModels/IncidentTemplate.ts +1 -1
- package/Models/DatabaseModels/Index.ts +4 -0
- package/Models/DatabaseModels/MetricType.ts +0 -2
- package/Models/DatabaseModels/MonitorStatusTimeline.ts +0 -2
- package/Models/DatabaseModels/MonitorTest.ts +0 -2
- package/Models/DatabaseModels/NetworkDevice.ts +234 -5
- package/Models/DatabaseModels/NetworkDeviceAutoImportRule.ts +88 -0
- package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +22 -0
- package/Models/DatabaseModels/NetworkDeviceOidTemplate.ts +501 -0
- package/Models/DatabaseModels/NetworkDeviceRole.ts +648 -0
- package/Models/DatabaseModels/ScheduledMaintenance.ts +1 -1
- package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +1 -1
- package/Models/DatabaseModels/StatusPageAnnouncement.ts +0 -2
- package/Models/DatabaseModels/StatusPageAnnouncementTemplate.ts +0 -2
- package/Models/DatabaseModels/StatusPagePrivateUser.ts +0 -2
- package/Models/DatabaseModels/StatusPageResource.ts +0 -2
- package/Models/DatabaseModels/StatusPageSubscriber.ts +0 -2
- package/Models/DatabaseModels/ThreatIntelFeed.ts +16 -5
- package/Server/API/GlobalConfigAPI.ts +362 -183
- package/Server/API/TelemetryAPI.ts +42 -4
- package/Server/EnvironmentConfig.ts +112 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790500000000-AddNetworkDeviceOidTemplate.ts +59 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790600000000-AddAutoImportRuleOidTemplate.ts +25 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1790800000000-AddNetworkDeviceRoleTable.ts +72 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
- package/Server/Middleware/MultipartFormData.ts +118 -32
- package/Server/Services/AlertEpisodeLabelRuleEngineService.ts +9 -1
- package/Server/Services/AlertEpisodeOnCallRuleEngineService.ts +9 -1
- package/Server/Services/AlertEpisodeOwnerRuleEngineService.ts +9 -1
- package/Server/Services/AlertEpisodePrivacyRuleEngineService.ts +9 -1
- package/Server/Services/AlertGroupingEngineService.ts +9 -1
- package/Server/Services/AlertLabelRuleEngineService.ts +9 -1
- package/Server/Services/AlertOnCallRuleEngineService.ts +9 -1
- package/Server/Services/AlertOwnerRuleEngineService.ts +9 -1
- package/Server/Services/AlertPrivacyRuleEngineService.ts +9 -1
- package/Server/Services/AlertReminderRuleService.ts +9 -1
- package/Server/Services/AutoRemediationRuleEngineService.ts +9 -1
- package/Server/Services/CephClusterLabelRuleEngineService.ts +9 -1
- package/Server/Services/CephClusterOwnerRuleEngineService.ts +9 -1
- package/Server/Services/CloudResourceLabelRuleEngineService.ts +9 -1
- package/Server/Services/CloudResourceOwnerRuleEngineService.ts +9 -1
- package/Server/Services/DashboardLabelRuleEngineService.ts +9 -1
- package/Server/Services/DashboardOwnerRuleEngineService.ts +9 -1
- package/Server/Services/DatabaseService.ts +39 -9
- package/Server/Services/DockerHostLabelRuleEngineService.ts +9 -1
- package/Server/Services/DockerHostOwnerRuleEngineService.ts +9 -1
- package/Server/Services/DockerSwarmClusterLabelRuleEngineService.ts +9 -1
- package/Server/Services/DockerSwarmClusterOwnerRuleEngineService.ts +9 -1
- package/Server/Services/HostLabelRuleEngineService.ts +9 -1
- package/Server/Services/HostOwnerRuleEngineService.ts +9 -1
- package/Server/Services/IncidentEpisodeLabelRuleEngineService.ts +9 -1
- package/Server/Services/IncidentEpisodeOnCallRuleEngineService.ts +9 -1
- package/Server/Services/IncidentEpisodeOwnerRuleEngineService.ts +9 -1
- package/Server/Services/IncidentEpisodePrivacyRuleEngineService.ts +9 -1
- package/Server/Services/IncidentGroupingEngineService.ts +9 -1
- package/Server/Services/IncidentLabelRuleEngineService.ts +9 -1
- package/Server/Services/IncidentOnCallRuleEngineService.ts +9 -1
- package/Server/Services/IncidentOwnerRuleEngineService.ts +9 -1
- package/Server/Services/IncidentPrivacyRuleEngineService.ts +9 -1
- package/Server/Services/IncidentReminderRuleService.ts +9 -1
- package/Server/Services/IncidentSlaRuleService.ts +9 -1
- package/Server/Services/IncomingCallPolicyLabelRuleEngineService.ts +9 -1
- package/Server/Services/IncomingCallPolicyOwnerRuleEngineService.ts +9 -1
- package/Server/Services/Index.ts +4 -0
- package/Server/Services/IoTFleetLabelRuleEngineService.ts +9 -1
- package/Server/Services/IoTFleetOwnerRuleEngineService.ts +9 -1
- package/Server/Services/KubernetesClusterLabelRuleEngineService.ts +9 -1
- package/Server/Services/KubernetesClusterOwnerRuleEngineService.ts +9 -1
- package/Server/Services/KubernetesResourceService.ts +5 -1
- package/Server/Services/MonitorLabelRuleEngineService.ts +9 -1
- package/Server/Services/MonitorOwnerRuleEngineService.ts +9 -1
- package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +35 -0
- package/Server/Services/NetworkDeviceAutoImportRuleService.ts +96 -0
- package/Server/Services/NetworkDeviceLabelRuleEngineService.ts +9 -1
- package/Server/Services/NetworkDeviceOidTemplateService.ts +201 -0
- package/Server/Services/NetworkDeviceOwnerRuleEngineService.ts +9 -1
- package/Server/Services/NetworkDeviceRoleService.ts +90 -0
- package/Server/Services/NetworkDeviceService.ts +209 -1
- package/Server/Services/OnCallDutyPolicyLabelRuleEngineService.ts +9 -1
- package/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.ts +9 -1
- package/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.ts +9 -1
- package/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.ts +9 -1
- package/Server/Services/PodmanHostLabelRuleEngineService.ts +9 -1
- package/Server/Services/PodmanHostOwnerRuleEngineService.ts +9 -1
- package/Server/Services/ProjectService.ts +85 -0
- package/Server/Services/ProxmoxClusterLabelRuleEngineService.ts +9 -1
- package/Server/Services/ProxmoxClusterOwnerRuleEngineService.ts +9 -1
- package/Server/Services/RumApplicationLabelRuleEngineService.ts +9 -1
- package/Server/Services/RumApplicationOwnerRuleEngineService.ts +9 -1
- package/Server/Services/RunbookLabelRuleEngineService.ts +9 -1
- package/Server/Services/RunbookOwnerRuleEngineService.ts +9 -1
- package/Server/Services/RunbookRuleEngineService.ts +9 -1
- package/Server/Services/ScheduledMaintenanceLabelRuleEngineService.ts +9 -1
- package/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.ts +9 -1
- package/Server/Services/ScheduledMaintenanceReminderRuleService.ts +9 -1
- package/Server/Services/ServerlessFunctionLabelRuleEngineService.ts +9 -1
- package/Server/Services/ServerlessFunctionOwnerRuleEngineService.ts +9 -1
- package/Server/Services/ServiceLabelRuleEngineService.ts +9 -1
- package/Server/Services/ServiceOwnerRuleEngineService.ts +9 -1
- package/Server/Services/StatusPageLabelRuleEngineService.ts +9 -1
- package/Server/Services/StatusPageMonitorRuleEngineService.ts +7 -0
- package/Server/Services/StatusPageOwnerRuleEngineService.ts +9 -1
- package/Server/Services/TelemetrySourceMapService.ts +266 -23
- package/Server/Services/UserNotificationSettingService.ts +0 -6
- package/Server/Services/UserService.ts +27 -0
- package/Server/Services/WorkflowLabelRuleEngineService.ts +9 -1
- package/Server/Services/WorkflowOwnerRuleEngineService.ts +9 -1
- package/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.ts +186 -0
- package/Server/Utils/Monitor/CapturedMetricAttributeUtil.ts +245 -0
- package/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.ts +21 -2
- package/Server/Utils/Monitor/MonitorMetricUtil.ts +55 -21
- package/Server/Utils/Monitor/MonitorTemplateUtil.ts +32 -0
- package/Server/Utils/Monitor/NetworkDeviceMetricUtil.ts +15 -2
- package/Server/Utils/Monitor/NetworkDeviceWalkUtil.ts +18 -1
- package/Server/Utils/Monitor/NetworkInventoryUtil.ts +10 -0
- package/Server/Utils/Monitor/SeriesResourceLabels.ts +34 -0
- package/Server/Utils/Rules/RuleEngineRuleRead.ts +48 -0
- package/Server/Utils/Telemetry/ExceptionSanitizer.ts +14 -1
- package/Server/Utils/Telemetry/LogExceptionExtractor.ts +14 -2
- package/Server/Utils/Telemetry/SourceMapResolver.ts +16 -5
- package/Server/Utils/Telemetry/StackTraceParser.ts +399 -0
- package/Tests/App/Dashboard/AddNeighborToMonitoringModal.test.tsx +31 -1
- package/Tests/App/Dashboard/DashboardChartWidgetZoom.test.tsx +35 -8
- package/Tests/App/Dashboard/DashboardCommandPalette.test.tsx +107 -3
- package/Tests/App/Dashboard/DashboardWideChartZoom.test.tsx +401 -0
- package/Tests/App/Dashboard/EventOverlayHook.test.tsx +125 -0
- package/Tests/App/Dashboard/HeaderImageAssets.test.tsx +93 -0
- package/Tests/App/Dashboard/MonitorTemplateColumnAndFacet.test.tsx +318 -0
- package/Tests/App/Dashboard/NetworkDeviceBulkDelete.test.tsx +357 -0
- package/Tests/App/Dashboard/NetworkSideMenu.test.tsx +590 -0
- package/Tests/App/Dashboard/OnCallReadinessSurfaces.test.tsx +3 -3
- package/Tests/App/Dashboard/SideMenuHarness.tsx +11 -3
- package/Tests/App/Dashboard/UserElementEmail.test.tsx +12 -4
- package/Tests/App/Dashboard/UserEmailCallSites.test.tsx +1 -1
- package/Tests/Models/DatabaseModels/DomainRoleTierCoverage.test.ts +14 -0
- package/Tests/Models/DatabaseModels/ModelRegistryInvariants.test.ts +543 -0
- package/Tests/Models/SecurityDomainAccessControl.test.ts +429 -0
- package/Tests/Server/API/GlobalConfigLicense.test.ts +657 -0
- package/Tests/Server/API/SecurityEventAttributesAPI.test.ts +84 -6
- package/Tests/Server/API/TelemetryResolveStackTraceAPI.test.ts +805 -0
- package/Tests/Server/Infrastructure/Postgres/AddOnCallCalendarFeedsMigration.test.ts +32 -7
- package/Tests/Server/Infrastructure/Postgres/NetworkDeviceRoleTableMigration.test.ts +476 -0
- package/Tests/Server/Middleware/IdentityRateLimit.test.ts +1144 -0
- package/Tests/Server/Middleware/MultipartFormData.test.ts +618 -3
- package/Tests/Server/Services/DatabaseServiceGenerateSlug.test.ts +215 -0
- package/Tests/Server/Services/MonitorLabelRuleEngineScale.test.ts +520 -0
- package/Tests/Server/Services/NetworkDeviceOidTemplateService.test.ts +332 -0
- package/Tests/Server/Services/NetworkDeviceOidTemplateWriteGuards.test.ts +409 -0
- package/Tests/Server/Services/NetworkDeviceRoleModel.test.ts +672 -0
- package/Tests/Server/Services/NetworkDeviceRuleEngines.test.ts +1 -1
- package/Tests/Server/Services/ProjectServiceCreateSubscriptionStarted.test.ts +67 -4
- package/Tests/Server/Services/RuleEngineRuleFetchLimit.test.ts +239 -0
- package/Tests/Server/Services/ScheduledMaintenanceSubscriberEndTime.test.ts +369 -0
- package/Tests/Server/Services/TelemetrySourceMapService.test.ts +1210 -2
- package/Tests/Server/Services/UserNotificationSettingMonitorDefaults.test.ts +248 -0
- package/Tests/Server/Services/UserNotificationSettingWorkspaceChannels.test.ts +43 -2
- package/Tests/Server/Services/UserServiceSeatLimit.test.ts +182 -0
- package/Tests/Server/Types/AnalyticsDatabase/SecurityEventModelPermission.test.ts +255 -0
- package/Tests/Server/Types/Database/Permissions/ReadBlockPermission.test.ts +212 -0
- package/Tests/Server/Types/Database/Permissions/SecurityRoleAccess.test.ts +413 -0
- package/Tests/Server/Utils/BasicCron.test.ts +283 -0
- package/Tests/Server/Utils/CodeRepository.test.ts +689 -0
- package/Tests/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.test.ts +495 -0
- package/Tests/Server/Utils/ExceptionSanitizer.test.ts +77 -0
- package/Tests/Server/Utils/IncomingCallPhoneNumber.test.ts +174 -0
- package/Tests/Server/Utils/Monitor/CapturedMetricAttributeUtil.test.ts +284 -0
- package/Tests/Server/Utils/Monitor/MonitorCustomMetricAttributes.test.ts +503 -0
- package/Tests/Server/Utils/Monitor/MonitorTemplatePrototypePollution.test.ts +106 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceWalkLogWritePath.test.ts +33 -4
- package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +14 -4
- package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +44 -0
- package/Tests/Server/Utils/OpenAPISpec.test.ts +536 -0
- package/Tests/Server/Utils/Rules/RuleEngineRuleRead.test.ts +115 -0
- package/Tests/Server/Utils/StackTraceParser.test.ts +610 -0
- package/Tests/Server/Utils/Telemetry/LogExceptionExtractor.test.ts +0 -0
- package/Tests/Server/Utils/Telemetry/SourceMapLimits.test.ts +656 -0
- package/Tests/Server/Utils/Telemetry/SourceMapResolver.test.ts +100 -0
- package/Tests/Types/Monitor/SnmpMonitor/SnmpOidListUtil.test.ts +454 -0
- package/Tests/Types/NetworkDevice/DefaultNetworkDeviceRole.test.ts +417 -0
- package/Tests/Types/SecurityRolePermissions.test.ts +193 -0
- package/Tests/UI/Components/Charts/AnnotationLayout.test.ts +773 -0
- package/Tests/UI/Components/Charts/ChartAnnotationRail.test.tsx +789 -0
- package/Tests/UI/Components/Charts/ChartBucketIdentity.test.ts +254 -0
- package/Tests/UI/Components/Charts/ChartClickDoubleClickDisambiguation.test.tsx +221 -0
- package/Tests/UI/Components/Charts/ChartDoubleClickReset.test.tsx +220 -0
- package/Tests/UI/Components/Charts/TimeAnnotation.test.ts +471 -0
- package/Tests/UI/Components/EditionLabelLicenseRefresh.test.tsx +405 -0
- package/Tests/UI/Components/ErrorMessageRefreshControl.test.tsx +83 -0
- package/Tests/UI/Components/MarkdownConverters.test.ts +686 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableBulkDelete.test.tsx +751 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableColumnCustomization.test.tsx +475 -43
- package/Tests/UI/Components/ModelTable/BaseModelTableDeleteAndEmptyStates.test.tsx +341 -0
- package/Tests/UI/Components/ModelTable/ColumnPreference.test.ts +89 -0
- package/Tests/UI/Components/NavBarCommandKGating.test.tsx +103 -8
- package/Tests/UI/Components/OrderedStatesList.test.tsx +5 -5
- package/Tests/UI/Components/PendingProjectInvitations.test.tsx +1 -1
- package/Tests/UI/Components/SideMenuItem.test.tsx +30 -0
- package/Tests/UI/Components/TableSortAndMobileColumns.test.tsx +195 -0
- package/Tests/UI/Components/XAxis.test.ts +270 -5
- package/Tests/UI/Components/XAxisDaylightSaving.test.ts +113 -0
- package/Tests/UI/Styles/ChartFocusRing.test.ts +153 -0
- package/Tests/UI/Styles/ChartFocusRingCoverage.test.tsx +377 -0
- package/Tests/UI/Styles/ThemeStylesheet.ts +162 -0
- package/Tests/UI/Utils/TableColumnsToCsv.test.ts +30 -0
- package/Tests/UI/Utils/UseDashboardTimeRangeZoom.test.tsx +187 -0
- package/Tests/Utils/Dashboard/DashboardResourceListSharedArgs.test.ts +302 -0
- package/Tests/Utils/Dashboard/DashboardTimeRangeZoom.test.ts +242 -0
- package/Tests/Utils/EnterpriseLicenseSeats.test.ts +507 -0
- package/Tests/Utils/Monitor/NetworkDeviceRoleCatalog.test.ts +981 -0
- package/Tests/Utils/Monitor/NetworkTopologyRoleCatalog.test.ts +865 -0
- package/Tests/Utils/NetworkDevice/DeviceRoleKeyUtil.test.ts +538 -0
- package/Tests/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.test.ts +951 -1
- package/Tests/Utils/NetworkDiscovery/DiscoveredHostUtil.test.ts +238 -0
- package/Tests/Utils/NetworkDiscovery/DiscoveryReverseDnsChain.test.ts +1056 -0
- package/Tests/Utils/NetworkDiscovery/ReverseDnsNameUtil.test.ts +882 -0
- package/Tests/Utils/Slo/SloEvaluation.test.ts +171 -0
- package/Tests/Utils/Slug.test.ts +61 -1
- package/Tests/jest.setup.ts +19 -0
- package/Types/Date.ts +39 -0
- package/Types/Monitor/SnmpMonitor/NetworkTopology.ts +61 -0
- package/Types/Monitor/SnmpMonitor/SnmpOidListUtil.ts +333 -0
- package/Types/NetworkDevice/DefaultNetworkDeviceRole.ts +145 -0
- package/Types/Permission.ts +141 -0
- package/Types/Rum/SessionReplay.ts +21 -0
- package/Types/Telemetry/SourceMap.ts +8 -0
- package/UI/Components/Charts/Area/AreaChart.tsx +7 -0
- package/UI/Components/Charts/Bar/BarChart.tsx +6 -0
- package/UI/Components/Charts/ChartGroup/ChartGroup.tsx +9 -1
- package/UI/Components/Charts/ChartLibrary/Annotations/AnnotationHoverCard.tsx +176 -0
- package/UI/Components/Charts/ChartLibrary/Annotations/AnnotationLayout.ts +745 -0
- package/UI/Components/Charts/ChartLibrary/Annotations/ChartAnnotationLayer.tsx +576 -0
- package/UI/Components/Charts/ChartLibrary/Annotations/UseChartAnnotations.tsx +204 -0
- package/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.tsx +554 -545
- package/UI/Components/Charts/ChartLibrary/BarChart/BarChart.tsx +337 -371
- package/UI/Components/Charts/ChartLibrary/LineChart/LineChart.tsx +549 -540
- package/UI/Components/Charts/ChartLibrary/Types/FormattedReferenceRegion.ts +7 -3
- package/UI/Components/Charts/ChartLibrary/Types/FormattedTimeReferenceLine.ts +14 -3
- package/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.ts +13 -0
- package/UI/Components/Charts/Line/LineChart.tsx +7 -0
- package/UI/Components/Charts/Types/ChartEventKind.ts +13 -0
- package/UI/Components/Charts/Types/ReferenceRegionProps.ts +6 -0
- package/UI/Components/Charts/Types/TimeReferenceLineProps.ts +20 -3
- package/UI/Components/Charts/Utils/TimeAnnotation.ts +69 -35
- package/UI/Components/Charts/Utils/XAxis.ts +125 -18
- package/UI/Components/EditionLabel/EditionLabel.tsx +280 -26
- package/UI/Components/ErrorMessage/ErrorMessage.tsx +21 -10
- package/UI/Components/Feed/FeedItem.tsx +4 -5
- package/UI/Components/Header/HeaderIconDropdownButton.tsx +1 -2
- package/UI/Components/Header/UserProfile/UserProfile.tsx +1 -2
- package/UI/Components/Image/Image.tsx +20 -3
- package/UI/Components/Markdown.tsx/MarkdownConverters.ts +0 -0
- package/UI/Components/MemberRoleAssignment/MemberRoleAssignment.tsx +1 -2
- package/UI/Components/ModelTable/BaseModelTable.tsx +200 -39
- package/UI/Components/Navbar/NavBar.tsx +62 -13
- package/UI/Components/Navbar/NavBarMenuModal.tsx +7 -2
- package/UI/Components/SideMenu/CountModelSideMenuItem.tsx +2 -0
- package/UI/Components/SideMenu/SideMenu.tsx +12 -2
- package/UI/Components/SideMenu/SideMenuItem.tsx +4 -1
- package/UI/Components/SideMenu/SideMenuSection.tsx +14 -2
- package/UI/Components/Table/TableHeader.tsx +64 -48
- package/UI/Components/Table/TableRow.tsx +13 -3
- package/UI/Styles/Theme.css +38 -0
- package/UI/Utils/UseDashboardTimeRangeZoom.ts +77 -0
- package/Utils/Dashboard/DashboardTimeRangeZoom.ts +118 -0
- package/Utils/EnterpriseLicense/EnterpriseLicenseSeats.ts +271 -0
- package/Utils/Monitor/NetworkDeviceRoleCatalog.ts +232 -0
- package/Utils/Monitor/NetworkDeviceRoleUtil.ts +2 -1
- package/Utils/Monitor/NetworkTopologyUtil.ts +116 -33
- package/Utils/NetworkDevice/DeviceRoleKeyUtil.ts +137 -0
- package/Utils/NetworkDiscovery/AutoImportRuleMatcher.ts +6 -0
- package/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.ts +141 -10
- package/Utils/NetworkDiscovery/DiscoveredHostUtil.ts +55 -3
- package/Utils/NetworkDiscovery/ReverseDnsNameUtil.ts +151 -0
- package/Utils/Rules/RuleEngineLimits.ts +32 -0
- package/Utils/Rules/RulePatternMatchUtil.ts +1 -1
- package/Utils/Slug.ts +34 -1
- package/build/dist/Models/AnalyticsModels/SecurityEvent.js +48 -16
- package/build/dist/Models/AnalyticsModels/SecurityEvent.js.map +1 -1
- package/build/dist/Models/AnalyticsModels/ThreatIntelIndicator.js +10 -5
- package/build/dist/Models/AnalyticsModels/ThreatIntelIndicator.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertSeverity.js +46 -1
- package/build/dist/Models/DatabaseModels/AlertSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertState.js +0 -2
- package/build/dist/Models/DatabaseModels/AlertState.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DetectionRule.js +16 -5
- package/build/dist/Models/DatabaseModels/DetectionRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Domain.js +1 -1
- package/build/dist/Models/DatabaseModels/Domain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js +14 -5
- package/build/dist/Models/DatabaseModels/GoogleSecOpsConnection.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js +46 -1
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Index.js +4 -0
- package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MetricType.js +0 -2
- package/build/dist/Models/DatabaseModels/MetricType.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js +0 -2
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorTest.js +0 -2
- package/build/dist/Models/DatabaseModels/MonitorTest.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDevice.js +239 -6
- package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js +88 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkDeviceOidTemplate.js +521 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceOidTemplate.js.map +1 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceRole.js +677 -0
- package/build/dist/Models/DatabaseModels/NetworkDeviceRole.js.map +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageResource.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js +0 -2
- package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js +16 -5
- package/build/dist/Models/DatabaseModels/ThreatIntelFeed.js.map +1 -1
- package/build/dist/Server/API/GlobalConfigAPI.js +293 -176
- package/build/dist/Server/API/GlobalConfigAPI.js.map +1 -1
- package/build/dist/Server/API/TelemetryAPI.js +31 -3
- package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
- package/build/dist/Server/EnvironmentConfig.js +83 -0
- package/build/dist/Server/EnvironmentConfig.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790500000000-AddNetworkDeviceOidTemplate.js +26 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790500000000-AddNetworkDeviceOidTemplate.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790600000000-AddAutoImportRuleOidTemplate.js +14 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790600000000-AddAutoImportRuleOidTemplate.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790800000000-AddNetworkDeviceRoleTable.js +39 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1790800000000-AddNetworkDeviceRoleTable.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Middleware/MultipartFormData.js +93 -28
- package/build/dist/Server/Middleware/MultipartFormData.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodeLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertEpisodeLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodeOnCallRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertEpisodeOnCallRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodeOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertEpisodeOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertEpisodePrivacyRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertEpisodePrivacyRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertGroupingEngineService.js +8 -1
- package/build/dist/Server/Services/AlertGroupingEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertOnCallRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertOnCallRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertPrivacyRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AlertPrivacyRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/AlertReminderRuleService.js +8 -1
- package/build/dist/Server/Services/AlertReminderRuleService.js.map +1 -1
- package/build/dist/Server/Services/AutoRemediationRuleEngineService.js +8 -1
- package/build/dist/Server/Services/AutoRemediationRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DashboardLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/DashboardLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DashboardOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/DashboardOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +31 -5
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/HostLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/HostLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/HostOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/HostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentEpisodeLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeOnCallRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentEpisodeOnCallRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodeOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentEpisodeOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentEpisodePrivacyRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentEpisodePrivacyRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentGroupingEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentOnCallRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentOnCallRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentPrivacyRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncidentPrivacyRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncidentReminderRuleService.js +8 -1
- package/build/dist/Server/Services/IncidentReminderRuleService.js.map +1 -1
- package/build/dist/Server/Services/IncidentSlaRuleService.js +8 -1
- package/build/dist/Server/Services/IncidentSlaRuleService.js.map +1 -1
- package/build/dist/Server/Services/IncomingCallPolicyLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncomingCallPolicyLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/Index.js +4 -0
- package/build/dist/Server/Services/Index.js.map +1 -1
- package/build/dist/Server/Services/IoTFleetLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IoTFleetLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/IoTFleetOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/IoTFleetOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/KubernetesResourceService.js +5 -1
- package/build/dist/Server/Services/KubernetesResourceService.js.map +1 -1
- package/build/dist/Server/Services/MonitorLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/MonitorLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/MonitorOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/MonitorOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +30 -21
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +64 -0
- package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceOidTemplateService.js +180 -0
- package/build/dist/Server/Services/NetworkDeviceOidTemplateService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/NetworkDeviceRoleService.js +70 -0
- package/build/dist/Server/Services/NetworkDeviceRoleService.js.map +1 -0
- package/build/dist/Server/Services/NetworkDeviceService.js +154 -1
- package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/OnCallDutyPolicyLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ProjectService.js +65 -0
- package/build/dist/Server/Services/ProjectService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RunbookLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/RunbookLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RunbookOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/RunbookOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/RunbookRuleEngineService.js +8 -1
- package/build/dist/Server/Services/RunbookRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js +8 -1
- package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ServiceLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/StatusPageLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js +6 -0
- package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/StatusPageOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/TelemetrySourceMapService.js +213 -19
- package/build/dist/Server/Services/TelemetrySourceMapService.js.map +1 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js +0 -1
- package/build/dist/Server/Services/UserNotificationSettingService.js.map +1 -1
- package/build/dist/Server/Services/UserService.js +25 -0
- package/build/dist/Server/Services/UserService.js.map +1 -1
- package/build/dist/Server/Services/WorkflowLabelRuleEngineService.js +8 -1
- package/build/dist/Server/Services/WorkflowLabelRuleEngineService.js.map +1 -1
- package/build/dist/Server/Services/WorkflowOwnerRuleEngineService.js +8 -1
- package/build/dist/Server/Services/WorkflowOwnerRuleEngineService.js.map +1 -1
- package/build/dist/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.js +145 -0
- package/build/dist/Server/Utils/EnterpriseLicense/EnterpriseLicenseSeatUtil.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/CapturedMetricAttributeUtil.js +201 -0
- package/build/dist/Server/Utils/Monitor/CapturedMetricAttributeUtil.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js +19 -2
- package/build/dist/Server/Utils/Monitor/Criteria/SnmpMonitorCriteria.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js +42 -23
- package/build/dist/Server/Utils/Monitor/MonitorMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js +29 -0
- package/build/dist/Server/Utils/Monitor/MonitorTemplateUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js +11 -2
- package/build/dist/Server/Utils/Monitor/NetworkDeviceMetricUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js +16 -1
- package/build/dist/Server/Utils/Monitor/NetworkDeviceWalkUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +10 -0
- package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +33 -0
- package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js.map +1 -1
- package/build/dist/Server/Utils/Rules/RuleEngineRuleRead.js +37 -0
- package/build/dist/Server/Utils/Rules/RuleEngineRuleRead.js.map +1 -0
- package/build/dist/Server/Utils/Telemetry/ExceptionSanitizer.js +12 -1
- package/build/dist/Server/Utils/Telemetry/ExceptionSanitizer.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js +14 -2
- package/build/dist/Server/Utils/Telemetry/LogExceptionExtractor.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/SourceMapResolver.js +15 -5
- package/build/dist/Server/Utils/Telemetry/SourceMapResolver.js.map +1 -1
- package/build/dist/Server/Utils/Telemetry/StackTraceParser.js +307 -0
- package/build/dist/Server/Utils/Telemetry/StackTraceParser.js.map +1 -1
- package/build/dist/Types/Date.js +27 -0
- package/build/dist/Types/Date.js.map +1 -1
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpOidListUtil.js +253 -0
- package/build/dist/Types/Monitor/SnmpMonitor/SnmpOidListUtil.js.map +1 -0
- package/build/dist/Types/NetworkDevice/DefaultNetworkDeviceRole.js +105 -0
- package/build/dist/Types/NetworkDevice/DefaultNetworkDeviceRole.js.map +1 -0
- package/build/dist/Types/Permission.js +126 -0
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/Types/Rum/SessionReplay.js +19 -0
- package/build/dist/Types/Rum/SessionReplay.js.map +1 -1
- package/build/dist/UI/Components/Charts/Area/AreaChart.js +1 -1
- package/build/dist/UI/Components/Charts/Area/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js +1 -1
- package/build/dist/UI/Components/Charts/Bar/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js +6 -1
- package/build/dist/UI/Components/Charts/ChartGroup/ChartGroup.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/AnnotationHoverCard.js +83 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/AnnotationHoverCard.js.map +1 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/AnnotationLayout.js +531 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/AnnotationLayout.js.map +1 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/ChartAnnotationLayer.js +264 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/ChartAnnotationLayer.js.map +1 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/UseChartAnnotations.js +122 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Annotations/UseChartAnnotations.js.map +1 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js +262 -234
- package/build/dist/UI/Components/Charts/ChartLibrary/AreaChart/AreaChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js +146 -153
- package/build/dist/UI/Components/Charts/ChartLibrary/BarChart/BarChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js +261 -233
- package/build/dist/UI/Components/Charts/ChartLibrary/LineChart/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.js +14 -0
- package/build/dist/UI/Components/Charts/ChartLibrary/Utils/DoubleClick.js.map +1 -0
- package/build/dist/UI/Components/Charts/Line/LineChart.js +1 -1
- package/build/dist/UI/Components/Charts/Line/LineChart.js.map +1 -1
- package/build/dist/UI/Components/Charts/Types/ChartEventKind.js +14 -0
- package/build/dist/UI/Components/Charts/Types/ChartEventKind.js.map +1 -0
- package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js +57 -28
- package/build/dist/UI/Components/Charts/Utils/TimeAnnotation.js.map +1 -1
- package/build/dist/UI/Components/Charts/Utils/XAxis.js +103 -17
- package/build/dist/UI/Components/Charts/Utils/XAxis.js.map +1 -1
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js +198 -23
- package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
- package/build/dist/UI/Components/ErrorMessage/ErrorMessage.js +15 -5
- package/build/dist/UI/Components/ErrorMessage/ErrorMessage.js.map +1 -1
- package/build/dist/UI/Components/Feed/FeedItem.js +4 -5
- package/build/dist/UI/Components/Feed/FeedItem.js.map +1 -1
- package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js +1 -2
- package/build/dist/UI/Components/Header/HeaderIconDropdownButton.js.map +1 -1
- package/build/dist/UI/Components/Header/UserProfile/UserProfile.js.map +1 -1
- package/build/dist/UI/Components/Image/Image.js +6 -1
- package/build/dist/UI/Components/Image/Image.js.map +1 -1
- package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js +0 -0
- package/build/dist/UI/Components/Markdown.tsx/MarkdownConverters.js.map +1 -1
- package/build/dist/UI/Components/MemberRoleAssignment/MemberRoleAssignment.js +1 -2
- package/build/dist/UI/Components/MemberRoleAssignment/MemberRoleAssignment.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +143 -36
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBar.js +44 -9
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js +2 -2
- package/build/dist/UI/Components/Navbar/NavBarMenuModal.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js +1 -1
- package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenu.js +9 -6
- package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenuItem.js +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenuItem.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenuSection.js +7 -2
- package/build/dist/UI/Components/SideMenu/SideMenuSection.js.map +1 -1
- package/build/dist/UI/Components/Table/TableHeader.js +20 -22
- package/build/dist/UI/Components/Table/TableHeader.js.map +1 -1
- package/build/dist/UI/Components/Table/TableRow.js +13 -4
- package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
- package/build/dist/UI/Utils/UseDashboardTimeRangeZoom.js +42 -0
- package/build/dist/UI/Utils/UseDashboardTimeRangeZoom.js.map +1 -0
- package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js +74 -0
- package/build/dist/Utils/Dashboard/DashboardTimeRangeZoom.js.map +1 -0
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js +153 -0
- package/build/dist/Utils/EnterpriseLicense/EnterpriseLicenseSeats.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkDeviceRoleCatalog.js +126 -0
- package/build/dist/Utils/Monitor/NetworkDeviceRoleCatalog.js.map +1 -0
- package/build/dist/Utils/Monitor/NetworkDeviceRoleUtil.js +2 -1
- package/build/dist/Utils/Monitor/NetworkDeviceRoleUtil.js.map +1 -1
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +67 -32
- package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDevice/DeviceRoleKeyUtil.js +114 -0
- package/build/dist/Utils/NetworkDevice/DeviceRoleKeyUtil.js.map +1 -0
- package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js +127 -7
- package/build/dist/Utils/NetworkDiscovery/DiscoveredDeviceBuilder.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/DiscoveredHostUtil.js +50 -3
- package/build/dist/Utils/NetworkDiscovery/DiscoveredHostUtil.js.map +1 -1
- package/build/dist/Utils/NetworkDiscovery/ReverseDnsNameUtil.js +132 -0
- package/build/dist/Utils/NetworkDiscovery/ReverseDnsNameUtil.js.map +1 -0
- package/build/dist/Utils/Rules/RuleEngineLimits.js +31 -0
- package/build/dist/Utils/Rules/RuleEngineLimits.js.map +1 -0
- package/build/dist/Utils/Rules/RulePatternMatchUtil.js +1 -1
- package/build/dist/Utils/Slug.js +31 -1
- package/build/dist/Utils/Slug.js.map +1 -1
- package/jest.config.json +1 -0
- package/package.json +2 -2
|
@@ -18,19 +18,13 @@ import { CartesianGrid, Dot, Label, Line, Legend as RechartsLegend, LineChart as
|
|
|
18
18
|
import { CHART_DATA_POINT_DATE_KEY } from "../Types/ChartDataPoint";
|
|
19
19
|
import { useOnWindowResize } from "../Utils/UseWindowOnResize";
|
|
20
20
|
import { AvailableChartColors, constructCategoryColors, getColorClassName, getColorHex, isHexColorValue, } from "../Utils/ChartColors";
|
|
21
|
+
import useChartAnnotations from "../Annotations/UseChartAnnotations";
|
|
21
22
|
import { cx } from "../Utils/Cx";
|
|
23
|
+
import { DOUBLE_CLICK_DISAMBIGUATION_MS } from "../Utils/DoubleClick";
|
|
22
24
|
import { getYAxisDomain } from "../Utils/GetYAxisDomain";
|
|
23
25
|
import { hasOnlyOneValueForKey } from "../Utils/HasOnlyOneValueForKey";
|
|
24
26
|
import { prepareTooltipEntries, } from "../Utils/TooltipEntries";
|
|
25
27
|
import ChartCurve from "../../Types/ChartCurve";
|
|
26
|
-
/*
|
|
27
|
-
* Incident/alert time markers each label at the same "insideTop" band, so
|
|
28
|
-
* several events in one window pile their labels into an unreadable stack.
|
|
29
|
-
* A single marker keeps the classic horizontal top label; a handful get
|
|
30
|
-
* rotated to run along their lines; past this cap inline labels are hidden
|
|
31
|
-
* entirely (the dashed lines and their click-through remain).
|
|
32
|
-
*/
|
|
33
|
-
const MAX_LABELED_TIME_REFERENCE_LINES = 6;
|
|
34
28
|
/*
|
|
35
29
|
* recharts invokes child event handlers with varying shapes ((event) for
|
|
36
30
|
* plain SVG passthrough, (data, event) for adapted children) — find the
|
|
@@ -277,7 +271,7 @@ const LineChart = React.forwardRef((props, ref) => {
|
|
|
277
271
|
var _a, _b;
|
|
278
272
|
const { data = [], categories = [], index, colors = AvailableChartColors, valueFormatter = (value) => {
|
|
279
273
|
return value.toString();
|
|
280
|
-
}, startEndOnly = false, showXAxis = true, showYAxis = true, showGridLines = true, yAxisWidth = 56, intervalType = "equidistantPreserveStart", showTooltip = true, showLegend = true, autoMinValue = false, minValue, maxValue, allowDecimals = true, connectNulls = false, className, onValueChange, enableLegendSlider = false, tickGap = 5, xAxisLabel, yAxisLabel, legendPosition = "right", tooltipCallback, customTooltip, formattedTimeReferenceLines, formattedReferenceRegions, onTimeRangeSelect, onBucketClick, ghostCategories } = props, other = __rest(props, ["data", "categories", "index", "colors", "valueFormatter", "startEndOnly", "showXAxis", "showYAxis", "showGridLines", "yAxisWidth", "intervalType", "showTooltip", "showLegend", "autoMinValue", "minValue", "maxValue", "allowDecimals", "connectNulls", "className", "onValueChange", "enableLegendSlider", "tickGap", "xAxisLabel", "yAxisLabel", "legendPosition", "tooltipCallback", "customTooltip", "formattedTimeReferenceLines", "formattedReferenceRegions", "onTimeRangeSelect", "onBucketClick", "ghostCategories"]);
|
|
274
|
+
}, startEndOnly = false, showXAxis = true, showYAxis = true, showGridLines = true, yAxisWidth = 56, intervalType = "equidistantPreserveStart", showTooltip = true, showLegend = true, autoMinValue = false, minValue, maxValue, allowDecimals = true, connectNulls = false, className, onValueChange, enableLegendSlider = false, tickGap = 5, xAxisLabel, yAxisLabel, legendPosition = "right", tooltipCallback, customTooltip, formattedTimeReferenceLines, formattedReferenceRegions, onTimeRangeSelect, onTimeRangeReset, onBucketClick, ghostCategories } = props, other = __rest(props, ["data", "categories", "index", "colors", "valueFormatter", "startEndOnly", "showXAxis", "showYAxis", "showGridLines", "yAxisWidth", "intervalType", "showTooltip", "showLegend", "autoMinValue", "minValue", "maxValue", "allowDecimals", "connectNulls", "className", "onValueChange", "enableLegendSlider", "tickGap", "xAxisLabel", "yAxisLabel", "legendPosition", "tooltipCallback", "customTooltip", "formattedTimeReferenceLines", "formattedReferenceRegions", "onTimeRangeSelect", "onTimeRangeReset", "onBucketClick", "ghostCategories"]);
|
|
281
275
|
const CustomTooltip = customTooltip;
|
|
282
276
|
const paddingValue = (!showXAxis && !showYAxis) || (startEndOnly && !showYAxis) ? 0 : 20;
|
|
283
277
|
const [legendHeight, setLegendHeight] = React.useState(60);
|
|
@@ -290,9 +284,42 @@ const LineChart = React.forwardRef((props, ref) => {
|
|
|
290
284
|
const rangeSelectionStartIndexRef = React.useRef(null);
|
|
291
285
|
const rangeSelectionEndIndexRef = React.useRef(null);
|
|
292
286
|
const suppressNextClickRef = React.useRef(false);
|
|
287
|
+
const hasOnTimeRangeReset = Boolean(onTimeRangeReset);
|
|
288
|
+
/*
|
|
289
|
+
* A pending single-click, held open long enough for a second click to
|
|
290
|
+
* cancel it. Only armed when onTimeRangeReset is supplied.
|
|
291
|
+
*/
|
|
292
|
+
const pendingClickTimeoutRef = React.useRef(null);
|
|
293
293
|
const categoryColors = constructCategoryColors(categories, colors);
|
|
294
|
-
|
|
295
|
-
|
|
294
|
+
React.useEffect(() => {
|
|
295
|
+
return () => {
|
|
296
|
+
if (pendingClickTimeoutRef.current !== null) {
|
|
297
|
+
clearTimeout(pendingClickTimeoutRef.current);
|
|
298
|
+
pendingClickTimeoutRef.current = null;
|
|
299
|
+
}
|
|
300
|
+
};
|
|
301
|
+
}, []);
|
|
302
|
+
/*
|
|
303
|
+
* Annotations are drawn onto the categorical axis, so the layer needs
|
|
304
|
+
* the same x values recharts is drawing — not the source dates.
|
|
305
|
+
*/
|
|
306
|
+
const categoryLabels = React.useMemo(() => {
|
|
307
|
+
return data.map((row) => {
|
|
308
|
+
var _a;
|
|
309
|
+
return String((_a = row[index]) !== null && _a !== void 0 ? _a : "");
|
|
310
|
+
});
|
|
311
|
+
}, [data, index]);
|
|
312
|
+
const annotations = useChartAnnotations({
|
|
313
|
+
formattedTimeReferenceLines,
|
|
314
|
+
formattedReferenceRegions,
|
|
315
|
+
categoryLabels,
|
|
316
|
+
axisPaddingPx: paddingValue,
|
|
317
|
+
scaleKind: "point",
|
|
318
|
+
hasTopLegend: showLegend,
|
|
319
|
+
isClickSuppressed: () => {
|
|
320
|
+
return suppressNextClickRef.current;
|
|
321
|
+
},
|
|
322
|
+
});
|
|
296
323
|
const yAxisDomain = getYAxisDomain(autoMinValue, minValue, maxValue);
|
|
297
324
|
const hasOnValueChange = Boolean(onValueChange);
|
|
298
325
|
const prevActiveRef = React.useRef(undefined);
|
|
@@ -468,240 +495,241 @@ const LineChart = React.forwardRef((props, ref) => {
|
|
|
468
495
|
const endDate = new Date(lastBucketDate.getTime() + bucketWidthInMs);
|
|
469
496
|
onTimeRangeSelect(startDate, endDate);
|
|
470
497
|
}
|
|
498
|
+
/*
|
|
499
|
+
* The plain-click path, split out so it can either run inline (no
|
|
500
|
+
* reset handler) or be deferred behind the double-click window.
|
|
501
|
+
*/
|
|
502
|
+
function handleChartClick(chartState) {
|
|
503
|
+
/*
|
|
504
|
+
* A click while a legend/dot selection is active keeps its
|
|
505
|
+
* long-standing meaning — clear the selection — and never
|
|
506
|
+
* also pins a bucket.
|
|
507
|
+
*/
|
|
508
|
+
if (hasOnValueChange && (activeLegend || activeDot)) {
|
|
509
|
+
setActiveDot(undefined);
|
|
510
|
+
setActiveLegend(undefined);
|
|
511
|
+
onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(null);
|
|
512
|
+
return;
|
|
513
|
+
}
|
|
514
|
+
if (!onBucketClick) {
|
|
515
|
+
return;
|
|
516
|
+
}
|
|
517
|
+
const rowIndex = getRowIndexFromChartState(chartState);
|
|
518
|
+
if (rowIndex === null) {
|
|
519
|
+
return;
|
|
520
|
+
}
|
|
521
|
+
const bucketStart = getBucketDateAtIndex(rowIndex);
|
|
522
|
+
if (!bucketStart) {
|
|
523
|
+
return;
|
|
524
|
+
}
|
|
525
|
+
/*
|
|
526
|
+
* Cover the full bucket: width from adjacent row dates, the
|
|
527
|
+
* same derivation drag-to-select uses.
|
|
528
|
+
*/
|
|
529
|
+
const adjacentBucketDate = rowIndex > 0
|
|
530
|
+
? getBucketDateAtIndex(rowIndex - 1)
|
|
531
|
+
: getBucketDateAtIndex(rowIndex + 1);
|
|
532
|
+
const clickedBucketWidthInMs = adjacentBucketDate
|
|
533
|
+
? Math.abs(bucketStart.getTime() - adjacentBucketDate.getTime())
|
|
534
|
+
: 0;
|
|
535
|
+
onBucketClick(bucketStart, new Date(bucketStart.getTime() + clickedBucketWidthInMs), (data[rowIndex] || {}));
|
|
536
|
+
}
|
|
471
537
|
return (React.createElement("div", Object.assign({ ref: ref, className: cx("flex-1 w-full", hasOnTimeRangeSelect && "cursor-crosshair", className) }, other),
|
|
472
|
-
React.createElement(
|
|
473
|
-
React.createElement(
|
|
474
|
-
? {
|
|
475
|
-
|
|
476
|
-
|
|
477
|
-
|
|
478
|
-
|
|
479
|
-
: {}), { onClick: (chartState) => {
|
|
480
|
-
// Ignore the click that follows a drag-to-select.
|
|
481
|
-
if (suppressNextClickRef.current) {
|
|
482
|
-
return;
|
|
483
|
-
}
|
|
484
|
-
/*
|
|
485
|
-
* A click while a legend/dot selection is active keeps its
|
|
486
|
-
* long-standing meaning — clear the selection — and never
|
|
487
|
-
* also pins a bucket.
|
|
488
|
-
*/
|
|
489
|
-
if (hasOnValueChange && (activeLegend || activeDot)) {
|
|
490
|
-
setActiveDot(undefined);
|
|
491
|
-
setActiveLegend(undefined);
|
|
492
|
-
onValueChange === null || onValueChange === void 0 ? void 0 : onValueChange(null);
|
|
493
|
-
return;
|
|
494
|
-
}
|
|
495
|
-
if (!onBucketClick) {
|
|
496
|
-
return;
|
|
497
|
-
}
|
|
498
|
-
const rowIndex = getRowIndexFromChartState(chartState);
|
|
499
|
-
if (rowIndex === null) {
|
|
500
|
-
return;
|
|
538
|
+
React.createElement("div", { className: cx("relative isolate h-full w-full") },
|
|
539
|
+
React.createElement(ResponsiveContainer, null,
|
|
540
|
+
React.createElement(RechartsLineChart, Object.assign({ data: data }, (props.syncid ? { syncId: props.syncid.toString() } : {}), (hasOnTimeRangeSelect
|
|
541
|
+
? {
|
|
542
|
+
onMouseDown: handleRangeSelectMouseDown,
|
|
543
|
+
onMouseMove: handleRangeSelectMouseMove,
|
|
544
|
+
onMouseUp: handleRangeSelectMouseUp,
|
|
501
545
|
}
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
|
|
506
|
-
|
|
507
|
-
|
|
508
|
-
|
|
509
|
-
|
|
510
|
-
const adjacentDate = rowIndex > 0
|
|
511
|
-
? getBucketDateAtIndex(rowIndex - 1)
|
|
512
|
-
: getBucketDateAtIndex(rowIndex + 1);
|
|
513
|
-
const bucketWidthInMs = adjacentDate
|
|
514
|
-
? Math.abs(bucketStart.getTime() - adjacentDate.getTime())
|
|
515
|
-
: 0;
|
|
516
|
-
onBucketClick(bucketStart, new Date(bucketStart.getTime() + bucketWidthInMs), (data[rowIndex] || {}));
|
|
517
|
-
}, margin: {
|
|
518
|
-
/*
|
|
519
|
-
* Tick labels are 10px font with a translate(0, 6) — they
|
|
520
|
-
* need ~20px of bottom space, plus another ~20px for the
|
|
521
|
-
* optional axis label. 8px (the no-axis case) is only
|
|
522
|
-
* valid when the axis is hidden entirely.
|
|
523
|
-
*/
|
|
524
|
-
bottom: (xAxisLabel
|
|
525
|
-
? 40
|
|
526
|
-
: showXAxis
|
|
527
|
-
? 24
|
|
528
|
-
: 8),
|
|
529
|
-
left: (yAxisLabel ? 20 : 0),
|
|
530
|
-
right: (yAxisLabel ? 5 : 8),
|
|
531
|
-
top: 5,
|
|
532
|
-
} }),
|
|
533
|
-
showGridLines ? (React.createElement(CartesianGrid, { className: cx("stroke-gray-100"), strokeDasharray: "3 3", horizontal: true, vertical: false })) : null,
|
|
534
|
-
React.createElement(XAxis, { padding: { left: paddingValue, right: paddingValue }, hide: !showXAxis, dataKey: index, interval: startEndOnly ? "preserveStartEnd" : intervalType, tick: {
|
|
535
|
-
transform: "translate(0, 6)",
|
|
536
|
-
fontSize: 10,
|
|
537
|
-
fontWeight: 500,
|
|
538
|
-
fill: "var(--ou-chart-tick)",
|
|
539
|
-
}, ticks: startEndOnly
|
|
540
|
-
? [
|
|
541
|
-
data[0][index],
|
|
542
|
-
data[data.length - 1][index],
|
|
543
|
-
]
|
|
544
|
-
: undefined, fill: "", stroke: "", className: cx(
|
|
545
|
-
// base
|
|
546
|
-
"tabular-nums",
|
|
547
|
-
// text fill
|
|
548
|
-
"fill-gray-500"), tickLine: false, axisLine: false, minTickGap: tickGap }, xAxisLabel && (React.createElement(Label, { position: "insideBottom", offset: -20, className: "fill-gray-800 text-sm font-medium" }, xAxisLabel))),
|
|
549
|
-
React.createElement(YAxis, { width: yAxisWidth, hide: !showYAxis, axisLine: false, tickLine: false, type: "number", domain: yAxisDomain, tick: {
|
|
550
|
-
transform: "translate(-4, 0)",
|
|
551
|
-
fontSize: 10,
|
|
552
|
-
fontWeight: 500,
|
|
553
|
-
fill: "var(--ou-chart-tick)",
|
|
554
|
-
}, fill: "", stroke: "", className: cx(
|
|
555
|
-
// base
|
|
556
|
-
"tabular-nums",
|
|
557
|
-
// text fill
|
|
558
|
-
"fill-gray-500"), tickFormatter: valueFormatter, allowDecimals: allowDecimals }, yAxisLabel && (React.createElement(Label, { position: "insideLeft", style: { textAnchor: "middle" }, angle: -90, offset: -15, className: "fill-gray-800 text-sm font-medium" }, yAxisLabel))),
|
|
559
|
-
React.createElement(Tooltip, { wrapperStyle: { outline: "none", zIndex: 10 }, isAnimationActive: true, animationDuration: 100, cursor: {
|
|
560
|
-
stroke: "var(--ou-chart-cursor, #d1d5db)",
|
|
561
|
-
strokeWidth: 1,
|
|
562
|
-
}, offset: 20, position: { y: 0 }, content: ({ active, payload, label }) => {
|
|
563
|
-
const cleanPayload = payload
|
|
564
|
-
? payload.map((item) => {
|
|
565
|
-
return {
|
|
566
|
-
category: item.dataKey,
|
|
567
|
-
value: item.value,
|
|
568
|
-
index: item.payload[index],
|
|
569
|
-
color: categoryColors.get(item.dataKey),
|
|
570
|
-
type: item.type,
|
|
571
|
-
payload: item.payload,
|
|
572
|
-
};
|
|
573
|
-
})
|
|
574
|
-
: [];
|
|
575
|
-
if (tooltipCallback &&
|
|
576
|
-
(active !== prevActiveRef.current ||
|
|
577
|
-
label !== prevLabelRef.current)) {
|
|
578
|
-
tooltipCallback({ active, payload: cleanPayload, label });
|
|
579
|
-
prevActiveRef.current = active;
|
|
580
|
-
prevLabelRef.current = label;
|
|
546
|
+
: {}), { onClick: (chartState) => {
|
|
547
|
+
// Ignore the click that follows a drag-to-select.
|
|
548
|
+
if (suppressNextClickRef.current) {
|
|
549
|
+
return;
|
|
550
|
+
}
|
|
551
|
+
if (!hasOnTimeRangeReset) {
|
|
552
|
+
handleChartClick(chartState);
|
|
553
|
+
return;
|
|
581
554
|
}
|
|
582
|
-
|
|
555
|
+
/*
|
|
556
|
+
* Reset is on, so hold the click open: both clicks of a
|
|
557
|
+
* double-click arrive before dblclick does, and neither
|
|
558
|
+
* may pin a bucket. The second click re-arms the timer,
|
|
559
|
+
* dblclick clears it.
|
|
560
|
+
*/
|
|
561
|
+
if (pendingClickTimeoutRef.current !== null) {
|
|
562
|
+
clearTimeout(pendingClickTimeoutRef.current);
|
|
563
|
+
}
|
|
564
|
+
pendingClickTimeoutRef.current = setTimeout(() => {
|
|
565
|
+
pendingClickTimeoutRef.current = null;
|
|
566
|
+
handleChartClick(chartState);
|
|
567
|
+
}, DOUBLE_CLICK_DISAMBIGUATION_MS);
|
|
568
|
+
} }, (hasOnTimeRangeReset
|
|
569
|
+
? {
|
|
570
|
+
onDoubleClick: () => {
|
|
571
|
+
if (pendingClickTimeoutRef.current !== null) {
|
|
572
|
+
clearTimeout(pendingClickTimeoutRef.current);
|
|
573
|
+
pendingClickTimeoutRef.current = null;
|
|
574
|
+
}
|
|
575
|
+
onTimeRangeReset === null || onTimeRangeReset === void 0 ? void 0 : onTimeRangeReset();
|
|
576
|
+
},
|
|
577
|
+
}
|
|
578
|
+
: {}), { margin: {
|
|
579
|
+
/*
|
|
580
|
+
* Tick labels are 10px font with a translate(0, 6) — they
|
|
581
|
+
* need ~20px of bottom space, plus another ~20px for the
|
|
582
|
+
* optional axis label. 8px (the no-axis case) is only
|
|
583
|
+
* valid when the axis is hidden entirely.
|
|
584
|
+
*/
|
|
585
|
+
bottom: (xAxisLabel
|
|
586
|
+
? 40
|
|
587
|
+
: showXAxis
|
|
588
|
+
? 24
|
|
589
|
+
: 8),
|
|
590
|
+
left: (yAxisLabel ? 20 : 0),
|
|
591
|
+
right: (yAxisLabel ? 5 : 8),
|
|
592
|
+
/*
|
|
593
|
+
* The annotation rail is drawn in the top margin, so the
|
|
594
|
+
* margin has to grow to hold it — otherwise chips render
|
|
595
|
+
* above the SVG's own edge and get clipped.
|
|
596
|
+
*/
|
|
597
|
+
top: annotations.marginTop,
|
|
583
598
|
} }),
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
599
|
+
showGridLines ? (React.createElement(CartesianGrid, { className: cx("stroke-gray-100"), strokeDasharray: "3 3", horizontal: true, vertical: false })) : null,
|
|
600
|
+
React.createElement(XAxis, { padding: { left: paddingValue, right: paddingValue }, hide: !showXAxis, dataKey: index, interval: startEndOnly ? "preserveStartEnd" : intervalType, tick: {
|
|
601
|
+
transform: "translate(0, 6)",
|
|
602
|
+
fontSize: 10,
|
|
603
|
+
fontWeight: 500,
|
|
604
|
+
fill: "var(--ou-chart-tick)",
|
|
605
|
+
}, ticks: startEndOnly
|
|
606
|
+
? [
|
|
607
|
+
data[0][index],
|
|
608
|
+
data[data.length - 1][index],
|
|
609
|
+
]
|
|
610
|
+
: undefined, fill: "", stroke: "", className: cx(
|
|
611
|
+
// base
|
|
612
|
+
"tabular-nums",
|
|
613
|
+
// text fill
|
|
614
|
+
"fill-gray-500"), tickLine: false, axisLine: false, minTickGap: tickGap }, xAxisLabel && (React.createElement(Label, { position: "insideBottom", offset: -20, className: "fill-gray-800 text-sm font-medium" }, xAxisLabel))),
|
|
615
|
+
React.createElement(YAxis, { width: yAxisWidth, hide: !showYAxis, axisLine: false, tickLine: false, type: "number", domain: yAxisDomain, tick: {
|
|
616
|
+
transform: "translate(-4, 0)",
|
|
617
|
+
fontSize: 10,
|
|
618
|
+
fontWeight: 500,
|
|
619
|
+
fill: "var(--ou-chart-tick)",
|
|
620
|
+
}, fill: "", stroke: "", className: cx(
|
|
621
|
+
// base
|
|
622
|
+
"tabular-nums",
|
|
623
|
+
// text fill
|
|
624
|
+
"fill-gray-500"), tickFormatter: valueFormatter, allowDecimals: allowDecimals }, yAxisLabel && (React.createElement(Label, { position: "insideLeft", style: { textAnchor: "middle" }, angle: -90, offset: -15, className: "fill-gray-800 text-sm font-medium" }, yAxisLabel))),
|
|
625
|
+
React.createElement(Tooltip, { wrapperStyle: { outline: "none", zIndex: 10 }, isAnimationActive: true, animationDuration: 100, cursor: {
|
|
626
|
+
stroke: "var(--ou-chart-cursor, #d1d5db)",
|
|
627
|
+
strokeWidth: 1,
|
|
628
|
+
}, offset: 20, position: { y: 0 }, content: ({ active, payload, label }) => {
|
|
629
|
+
const cleanPayload = payload
|
|
630
|
+
? payload.map((item) => {
|
|
631
|
+
return {
|
|
632
|
+
category: item.dataKey,
|
|
633
|
+
value: item.value,
|
|
634
|
+
index: item.payload[index],
|
|
635
|
+
color: categoryColors.get(item.dataKey),
|
|
636
|
+
type: item.type,
|
|
637
|
+
payload: item.payload,
|
|
638
|
+
};
|
|
639
|
+
})
|
|
640
|
+
: [];
|
|
641
|
+
if (tooltipCallback &&
|
|
642
|
+
(active !== prevActiveRef.current ||
|
|
643
|
+
label !== prevLabelRef.current)) {
|
|
644
|
+
tooltipCallback({ active, payload: cleanPayload, label });
|
|
645
|
+
prevActiveRef.current = active;
|
|
646
|
+
prevLabelRef.current = label;
|
|
588
647
|
}
|
|
589
|
-
:
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
const lineColor = categoryColors.get(category);
|
|
593
|
-
const isCustomColor = isHexColorValue(lineColor);
|
|
594
|
-
const lineHex = getColorHex(lineColor);
|
|
595
|
-
const isGhost = (ghostCategories === null || ghostCategories === void 0 ? void 0 : ghostCategories.includes(category)) || false;
|
|
596
|
-
return (React.createElement(Line, Object.assign({ className: cx(getColorClassName(lineColor, "stroke")), strokeOpacity: (activeDot || (activeLegend && activeLegend !== category)
|
|
597
|
-
? 0.3
|
|
598
|
-
: 1) * (isGhost ? 0.45 : 1), activeDot: isGhost
|
|
599
|
-
? false
|
|
600
|
-
: (props) => {
|
|
601
|
-
const { cx: cxCoord, cy: cyCoord, stroke, strokeLinecap, strokeLinejoin, strokeWidth, } = props;
|
|
602
|
-
return (React.createElement(Dot, { className: cx("stroke-white", onValueChange ? "cursor-pointer" : "", getColorClassName(lineColor, "fill")), cx: cxCoord, cy: cyCoord, r: 5, fill: isCustomColor ? lineHex : "", stroke: stroke, strokeLinecap: strokeLinecap, strokeLinejoin: strokeLinejoin, strokeWidth: strokeWidth, onClick: (_, event) => {
|
|
603
|
-
return onDotClick(props, event);
|
|
604
|
-
} }));
|
|
605
|
-
}, dot: isGhost
|
|
606
|
-
? false
|
|
607
|
-
: (props) => {
|
|
608
|
-
const { stroke, strokeLinecap, strokeLinejoin, strokeWidth, cx: cxCoord, cy: cyCoord, index, } = props;
|
|
609
|
-
if ((hasOnlyOneValueForKey(data, category) &&
|
|
610
|
-
!(activeDot ||
|
|
611
|
-
(activeLegend && activeLegend !== category))) ||
|
|
612
|
-
((activeDot === null || activeDot === void 0 ? void 0 : activeDot.index) === index &&
|
|
613
|
-
(activeDot === null || activeDot === void 0 ? void 0 : activeDot.dataKey) === category)) {
|
|
614
|
-
return (React.createElement(Dot, { key: index, cx: cxCoord, cy: cyCoord, r: 5, stroke: stroke, fill: isCustomColor ? lineHex : "", strokeLinecap: strokeLinecap, strokeLinejoin: strokeLinejoin, strokeWidth: strokeWidth, className: cx("stroke-white", onValueChange ? "cursor-pointer" : "", getColorClassName(lineColor, "fill")) }));
|
|
615
|
-
}
|
|
616
|
-
return React.createElement(React.Fragment, { key: index });
|
|
617
|
-
}, key: category, name: category, type: props.curve || ChartCurve.LINEAR, dataKey: category,
|
|
648
|
+
return showTooltip && active ? (CustomTooltip ? (React.createElement(CustomTooltip, { active: active, payload: cleanPayload, label: label })) : (React.createElement(ChartTooltip, { active: active, payload: cleanPayload, label: label, valueFormatter: valueFormatter }))) : null;
|
|
649
|
+
} }),
|
|
650
|
+
showLegend ? (React.createElement(RechartsLegend, { verticalAlign: "top",
|
|
618
651
|
/*
|
|
619
|
-
*
|
|
620
|
-
*
|
|
652
|
+
* Padded so the annotation rail gets a clear strip between
|
|
653
|
+
* the legend and the plot; see UseChartAnnotations.
|
|
621
654
|
*/
|
|
622
|
-
|
|
623
|
-
|
|
624
|
-
|
|
625
|
-
|
|
626
|
-
.filter((category) => {
|
|
627
|
-
// Ghosts are context, not click-selectable series.
|
|
628
|
-
return !((ghostCategories === null || ghostCategories === void 0 ? void 0 : ghostCategories.includes(category)) || false);
|
|
629
|
-
})
|
|
630
|
-
.map((category) => {
|
|
631
|
-
return (React.createElement(Line, { className: cx("cursor-pointer"), strokeOpacity: 0, key: category, name: category, type: props.curve || ChartCurve.LINEAR, dataKey: category, stroke: "transparent", fill: "transparent", legendType: "none", tooltipType: "none", strokeWidth: 12, connectNulls: connectNulls, onClick: (props, event) => {
|
|
632
|
-
event.stopPropagation();
|
|
633
|
-
const { name } = props;
|
|
634
|
-
onCategoryClick(name);
|
|
635
|
-
} }));
|
|
636
|
-
})
|
|
637
|
-
: null, (_a = props.referenceLines) === null || _a === void 0 ? void 0 :
|
|
638
|
-
_a.map((refLine, refIndex) => {
|
|
639
|
-
return (React.createElement(ReferenceLine, { key: `ref-${refIndex}`, y: refLine.value, stroke: refLine.color, strokeDasharray: refLine.strokeDasharray || "4 4", strokeWidth: 1.5 }, refLine.label && (React.createElement(Label, { value: refLine.label, position: "insideTopRight", fill: refLine.color, fontSize: 11, fontWeight: 500 }))));
|
|
640
|
-
}), formattedReferenceRegions === null || formattedReferenceRegions === void 0 ? void 0 :
|
|
641
|
-
formattedReferenceRegions.map((region, regionIndex) => {
|
|
642
|
-
const regionColor = region.original.color || "#6366f1";
|
|
643
|
-
return (React.createElement(ReferenceArea, Object.assign({ key: `ref-region-${regionIndex}`, x1: region.formattedX1, x2: region.formattedX2, fill: regionColor, fillOpacity: 0.12, stroke: regionColor, strokeOpacity: 0.35, strokeWidth: 1 }, (region.original.onClick
|
|
644
|
-
? {
|
|
645
|
-
style: { cursor: "pointer" },
|
|
646
|
-
onClick: (...args) => {
|
|
647
|
-
var _a, _b;
|
|
648
|
-
// Never let an annotation click also pin a bucket.
|
|
649
|
-
stopChartEventPropagation(...args);
|
|
650
|
-
if (suppressNextClickRef.current) {
|
|
651
|
-
return;
|
|
655
|
+
height: legendHeight + annotations.railHeight, content: ({ payload }) => {
|
|
656
|
+
return ChartLegend({ payload }, categoryColors, setLegendHeight, activeLegend, hasOnValueChange
|
|
657
|
+
? (clickedLegendItem) => {
|
|
658
|
+
return onCategoryClick(clickedLegendItem);
|
|
652
659
|
}
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
|
|
657
|
-
|
|
658
|
-
|
|
659
|
-
|
|
660
|
-
|
|
661
|
-
|
|
662
|
-
|
|
663
|
-
|
|
664
|
-
|
|
665
|
-
|
|
660
|
+
: undefined, enableLegendSlider, legendPosition, yAxisWidth);
|
|
661
|
+
} })) : null,
|
|
662
|
+
categories.map((category) => {
|
|
663
|
+
const lineColor = categoryColors.get(category);
|
|
664
|
+
const isCustomColor = isHexColorValue(lineColor);
|
|
665
|
+
const lineHex = getColorHex(lineColor);
|
|
666
|
+
const isGhost = (ghostCategories === null || ghostCategories === void 0 ? void 0 : ghostCategories.includes(category)) || false;
|
|
667
|
+
return (React.createElement(Line, Object.assign({ className: cx(getColorClassName(lineColor, "stroke")), strokeOpacity: (activeDot || (activeLegend && activeLegend !== category)
|
|
668
|
+
? 0.3
|
|
669
|
+
: 1) * (isGhost ? 0.45 : 1), activeDot: isGhost
|
|
670
|
+
? false
|
|
671
|
+
: (props) => {
|
|
672
|
+
const { cx: cxCoord, cy: cyCoord, stroke, strokeLinecap, strokeLinejoin, strokeWidth, } = props;
|
|
673
|
+
return (React.createElement(Dot, { className: cx("stroke-white", onValueChange ? "cursor-pointer" : "", getColorClassName(lineColor, "fill")), cx: cxCoord, cy: cyCoord, r: 5, fill: isCustomColor ? lineHex : "", stroke: stroke, strokeLinecap: strokeLinecap, strokeLinejoin: strokeLinejoin, strokeWidth: strokeWidth, onClick: (_, event) => {
|
|
674
|
+
return onDotClick(props, event);
|
|
675
|
+
} }));
|
|
676
|
+
}, dot: isGhost
|
|
677
|
+
? false
|
|
678
|
+
: (props) => {
|
|
679
|
+
const { stroke, strokeLinecap, strokeLinejoin, strokeWidth, cx: cxCoord, cy: cyCoord, index, } = props;
|
|
680
|
+
if ((hasOnlyOneValueForKey(data, category) &&
|
|
681
|
+
!(activeDot ||
|
|
682
|
+
(activeLegend && activeLegend !== category))) ||
|
|
683
|
+
((activeDot === null || activeDot === void 0 ? void 0 : activeDot.index) === index &&
|
|
684
|
+
(activeDot === null || activeDot === void 0 ? void 0 : activeDot.dataKey) === category)) {
|
|
685
|
+
return (React.createElement(Dot, { key: index, cx: cxCoord, cy: cyCoord, r: 5, stroke: stroke, fill: isCustomColor ? lineHex : "", strokeLinecap: strokeLinecap, strokeLinejoin: strokeLinejoin, strokeWidth: strokeWidth, className: cx("stroke-white", onValueChange ? "cursor-pointer" : "", getColorClassName(lineColor, "fill")) }));
|
|
686
|
+
}
|
|
687
|
+
return (React.createElement(React.Fragment, { key: index }));
|
|
688
|
+
}, key: category, name: category, type: props.curve || ChartCurve.LINEAR, dataKey: category,
|
|
689
|
+
/*
|
|
690
|
+
* Custom hex → set the stroke inline; named palette → keep ""
|
|
691
|
+
* so the `stroke-*` Tailwind class on the Line applies.
|
|
692
|
+
*/
|
|
693
|
+
stroke: isCustomColor ? lineHex : "", strokeWidth: isGhost ? 1.5 : 2, strokeLinejoin: "round", strokeLinecap: "round", isAnimationActive: false, connectNulls: connectNulls }, (isGhost ? { strokeDasharray: "6 4" } : {}))));
|
|
694
|
+
}),
|
|
695
|
+
onValueChange
|
|
696
|
+
? categories
|
|
697
|
+
.filter((category) => {
|
|
698
|
+
// Ghosts are context, not click-selectable series.
|
|
699
|
+
return !((ghostCategories === null || ghostCategories === void 0 ? void 0 : ghostCategories.includes(category)) || false);
|
|
700
|
+
})
|
|
701
|
+
.map((category) => {
|
|
702
|
+
return (React.createElement(Line, { className: cx("cursor-pointer"), strokeOpacity: 0, key: category, name: category, type: props.curve || ChartCurve.LINEAR, dataKey: category, stroke: "transparent", fill: "transparent", legendType: "none", tooltipType: "none", strokeWidth: 12, connectNulls: connectNulls, onClick: (props, event) => {
|
|
703
|
+
event.stopPropagation();
|
|
704
|
+
const { name } = props;
|
|
705
|
+
onCategoryClick(name);
|
|
706
|
+
} }));
|
|
707
|
+
})
|
|
708
|
+
: null, (_a = props.referenceLines) === null || _a === void 0 ? void 0 :
|
|
709
|
+
_a.map((refLine, refIndex) => {
|
|
710
|
+
return (React.createElement(ReferenceLine, { key: `ref-${refIndex}`, y: refLine.value, stroke: refLine.color, strokeDasharray: refLine.strokeDasharray || "4 4", strokeWidth: 1.5 }, refLine.label && (React.createElement(Label, { value: refLine.label, position: "insideTopRight", fill: refLine.color, fontSize: 11, fontWeight: 500 }))));
|
|
711
|
+
}),
|
|
712
|
+
annotations.layer, (_b = props.formattedExemplarPoints) === null || _b === void 0 ? void 0 :
|
|
713
|
+
_b.map((exemplar, exemplarIndex) => {
|
|
714
|
+
return (React.createElement(ReferenceDot, { key: `exemplar-${exemplarIndex}`, x: exemplar.formattedX, y: exemplar.y, r: 5, fill: "#7c3aed", stroke: "var(--ou-chart-marker-ring, #ffffff)", strokeWidth: 2, style: { cursor: "pointer" }, onClick: (...args) => {
|
|
715
|
+
var _a;
|
|
716
|
+
// Never let an exemplar click also pin a bucket.
|
|
666
717
|
stopChartEventPropagation(...args);
|
|
718
|
+
// Ignore the click that follows a drag-to-select.
|
|
667
719
|
if (suppressNextClickRef.current) {
|
|
668
720
|
return;
|
|
669
721
|
}
|
|
670
|
-
(
|
|
671
|
-
},
|
|
672
|
-
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
677
|
-
|
|
678
|
-
|
|
679
|
-
|
|
680
|
-
|
|
681
|
-
position: "insideTopLeft",
|
|
682
|
-
angle: 90,
|
|
683
|
-
}
|
|
684
|
-
: { position: "insideTop" }), { fill: lineColor, fontSize: 10, fontWeight: 500 })))));
|
|
685
|
-
}), (_b = props.formattedExemplarPoints) === null || _b === void 0 ? void 0 :
|
|
686
|
-
_b.map((exemplar, exemplarIndex) => {
|
|
687
|
-
return (React.createElement(ReferenceDot, { key: `exemplar-${exemplarIndex}`, x: exemplar.formattedX, y: exemplar.y, r: 5, fill: "#7c3aed", stroke: "var(--ou-chart-marker-ring, #ffffff)", strokeWidth: 2, style: { cursor: "pointer" }, onClick: (...args) => {
|
|
688
|
-
var _a;
|
|
689
|
-
// Never let an exemplar click also pin a bucket.
|
|
690
|
-
stopChartEventPropagation(...args);
|
|
691
|
-
// Ignore the click that follows a drag-to-select.
|
|
692
|
-
if (suppressNextClickRef.current) {
|
|
693
|
-
return;
|
|
694
|
-
}
|
|
695
|
-
(_a = props.onExemplarClick) === null || _a === void 0 ? void 0 : _a.call(props, exemplar.original);
|
|
696
|
-
} },
|
|
697
|
-
React.createElement(Label, { value: "E", position: "center",
|
|
698
|
-
/*
|
|
699
|
-
* Sits on the dot's purple, not on the surface, so it must
|
|
700
|
-
* not follow the ring token that flips dark with the theme.
|
|
701
|
-
*/
|
|
702
|
-
fill: "#ffffff", fontSize: 8, fontWeight: 700 })));
|
|
703
|
-
}),
|
|
704
|
-
rangeSelectionStart && rangeSelectionEnd ? (React.createElement(ReferenceArea, { x1: rangeSelectionStart, x2: rangeSelectionEnd, fill: "rgba(99,102,241,0.12)", stroke: "rgba(99,102,241,0.5)", strokeWidth: 1, radius: 2 })) : null))));
|
|
722
|
+
(_a = props.onExemplarClick) === null || _a === void 0 ? void 0 : _a.call(props, exemplar.original);
|
|
723
|
+
} },
|
|
724
|
+
React.createElement(Label, { value: "E", position: "center",
|
|
725
|
+
/*
|
|
726
|
+
* Sits on the dot's purple, not on the surface, so it must
|
|
727
|
+
* not follow the ring token that flips dark with the theme.
|
|
728
|
+
*/
|
|
729
|
+
fill: "#ffffff", fontSize: 8, fontWeight: 700 })));
|
|
730
|
+
}),
|
|
731
|
+
rangeSelectionStart && rangeSelectionEnd ? (React.createElement(ReferenceArea, { x1: rangeSelectionStart, x2: rangeSelectionEnd, fill: "rgba(99,102,241,0.12)", stroke: "rgba(99,102,241,0.5)", strokeWidth: 1, radius: 2 })) : null)),
|
|
732
|
+
annotations.overlay)));
|
|
705
733
|
});
|
|
706
734
|
LineChart.displayName = "LineChart";
|
|
707
735
|
export { ChartTooltip, LineChart };
|