@oneuptime/common 13.0.1 → 13.0.4

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 (781) hide show
  1. package/Models/AnalyticsModels/RumSession.ts +34 -0
  2. package/Models/DatabaseModels/AlertEpisodeLabelRule.ts +2 -2
  3. package/Models/DatabaseModels/AlertEpisodeOnCallRule.ts +2 -2
  4. package/Models/DatabaseModels/AlertEpisodeOwnerRule.ts +2 -2
  5. package/Models/DatabaseModels/AlertEpisodePrivacyRule.ts +2 -2
  6. package/Models/DatabaseModels/AlertGroupingRule.ts +2 -2
  7. package/Models/DatabaseModels/AlertLabelRule.ts +2 -2
  8. package/Models/DatabaseModels/AlertOnCallRule.ts +2 -2
  9. package/Models/DatabaseModels/AlertOwnerRule.ts +2 -2
  10. package/Models/DatabaseModels/AlertPrivacyRule.ts +2 -2
  11. package/Models/DatabaseModels/AlertReminderRule.ts +6 -4
  12. package/Models/DatabaseModels/AutoRemediationRule.ts +2 -2
  13. package/Models/DatabaseModels/CephClusterLabelRule.ts +2 -2
  14. package/Models/DatabaseModels/CephClusterOwnerRule.ts +2 -2
  15. package/Models/DatabaseModels/CloudResourceLabelRule.ts +2 -2
  16. package/Models/DatabaseModels/CloudResourceOwnerRule.ts +2 -2
  17. package/Models/DatabaseModels/DashboardLabelRule.ts +2 -2
  18. package/Models/DatabaseModels/DashboardOwnerRule.ts +2 -2
  19. package/Models/DatabaseModels/DatabaseBaseModel/RelationOnlyRuleBaseModel.ts +11 -0
  20. package/Models/DatabaseModels/DatabaseBaseModel/RuleBaseModel.ts +44 -0
  21. package/Models/DatabaseModels/DockerHostLabelRule.ts +2 -2
  22. package/Models/DatabaseModels/DockerHostOwnerRule.ts +2 -2
  23. package/Models/DatabaseModels/DockerSwarmClusterLabelRule.ts +2 -2
  24. package/Models/DatabaseModels/DockerSwarmClusterOwnerRule.ts +2 -2
  25. package/Models/DatabaseModels/HostLabelRule.ts +2 -2
  26. package/Models/DatabaseModels/HostOwnerRule.ts +2 -2
  27. package/Models/DatabaseModels/IncidentEpisodeLabelRule.ts +2 -2
  28. package/Models/DatabaseModels/IncidentEpisodeOnCallRule.ts +2 -2
  29. package/Models/DatabaseModels/IncidentEpisodeOwnerRule.ts +2 -2
  30. package/Models/DatabaseModels/IncidentEpisodePrivacyRule.ts +2 -2
  31. package/Models/DatabaseModels/IncidentGroupingRule.ts +2 -2
  32. package/Models/DatabaseModels/IncidentLabelRule.ts +2 -2
  33. package/Models/DatabaseModels/IncidentOnCallRule.ts +2 -2
  34. package/Models/DatabaseModels/IncidentOwnerRule.ts +2 -2
  35. package/Models/DatabaseModels/IncidentPrivacyRule.ts +2 -2
  36. package/Models/DatabaseModels/IncidentReminderRule.ts +6 -4
  37. package/Models/DatabaseModels/IncidentSlaRule.ts +2 -2
  38. package/Models/DatabaseModels/IncomingCallPolicy.ts +3 -4
  39. package/Models/DatabaseModels/IncomingCallPolicyLabelRule.ts +2 -2
  40. package/Models/DatabaseModels/IncomingCallPolicyOwnerRule.ts +2 -2
  41. package/Models/DatabaseModels/IncomingCallPolicyPhoneNumber.ts +254 -0
  42. package/Models/DatabaseModels/Index.ts +2 -0
  43. package/Models/DatabaseModels/IoTFleetLabelRule.ts +2 -2
  44. package/Models/DatabaseModels/IoTFleetOwnerRule.ts +2 -2
  45. package/Models/DatabaseModels/KubernetesClusterLabelRule.ts +2 -2
  46. package/Models/DatabaseModels/KubernetesClusterOwnerRule.ts +2 -2
  47. package/Models/DatabaseModels/MonitorLabelRule.ts +2 -2
  48. package/Models/DatabaseModels/MonitorOwnerRule.ts +2 -2
  49. package/Models/DatabaseModels/NetworkDeviceAutoImportRule.ts +2 -2
  50. package/Models/DatabaseModels/NetworkDeviceLabelRule.ts +2 -2
  51. package/Models/DatabaseModels/NetworkDeviceOwnerRule.ts +2 -2
  52. package/Models/DatabaseModels/NetworkSiteAssignmentRule.ts +2 -2
  53. package/Models/DatabaseModels/OnCallDutyPolicyLabelRule.ts +2 -2
  54. package/Models/DatabaseModels/OnCallDutyPolicyOwnerRule.ts +2 -2
  55. package/Models/DatabaseModels/OnCallDutyPolicyScheduleLabelRule.ts +2 -2
  56. package/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerRule.ts +2 -2
  57. package/Models/DatabaseModels/PodmanHostLabelRule.ts +2 -2
  58. package/Models/DatabaseModels/PodmanHostOwnerRule.ts +2 -2
  59. package/Models/DatabaseModels/ProxmoxClusterLabelRule.ts +2 -2
  60. package/Models/DatabaseModels/ProxmoxClusterOwnerRule.ts +2 -2
  61. package/Models/DatabaseModels/RumApplicationLabelRule.ts +2 -2
  62. package/Models/DatabaseModels/RumApplicationOwnerRule.ts +2 -2
  63. package/Models/DatabaseModels/RunbookLabelRule.ts +2 -2
  64. package/Models/DatabaseModels/RunbookOwnerRule.ts +2 -2
  65. package/Models/DatabaseModels/RunbookRule.ts +2 -2
  66. package/Models/DatabaseModels/ScheduledMaintenanceLabelRule.ts +2 -2
  67. package/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.ts +2 -2
  68. package/Models/DatabaseModels/ScheduledMaintenanceReminderRule.ts +6 -4
  69. package/Models/DatabaseModels/ServerlessFunctionLabelRule.ts +2 -2
  70. package/Models/DatabaseModels/ServerlessFunctionOwnerRule.ts +2 -2
  71. package/Models/DatabaseModels/ServiceLabelRule.ts +2 -2
  72. package/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.ts +283 -4
  73. package/Models/DatabaseModels/ServiceOwnerRule.ts +2 -2
  74. package/Models/DatabaseModels/StatusPageLabelRule.ts +2 -2
  75. package/Models/DatabaseModels/StatusPageMonitorRule.ts +2 -2
  76. package/Models/DatabaseModels/StatusPageOwnerRule.ts +2 -2
  77. package/Models/DatabaseModels/VMwareVCenterLabelRule.ts +2 -2
  78. package/Models/DatabaseModels/VMwareVCenterOwnerRule.ts +2 -2
  79. package/Models/DatabaseModels/WorkflowLabelRule.ts +2 -2
  80. package/Models/DatabaseModels/WorkflowOwnerRule.ts +2 -2
  81. package/Server/API/TelemetryAPI.ts +323 -2
  82. package/Server/Infrastructure/Postgres/SchemaMigrations/1792400000000-AddSloBurnRateRuleIncidents.ts +111 -0
  83. package/Server/Infrastructure/Postgres/SchemaMigrations/1792500000000-AddConfigurableRuleCriteria.ts +644 -0
  84. package/Server/Infrastructure/Postgres/SchemaMigrations/1792600000000-AddIncomingCallPolicyPhoneNumbers.ts +72 -0
  85. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +6 -0
  86. package/Server/Middleware/MultipartFormData.ts +46 -21
  87. package/Server/Services/AlertEpisodeLabelRuleEngineService.ts +21 -0
  88. package/Server/Services/AlertEpisodeOnCallRuleEngineService.ts +21 -0
  89. package/Server/Services/AlertEpisodeOwnerRuleEngineService.ts +21 -0
  90. package/Server/Services/AlertEpisodePrivacyRuleEngineService.ts +21 -0
  91. package/Server/Services/AlertGroupingEngineService.ts +27 -0
  92. package/Server/Services/AlertLabelRuleEngineService.ts +27 -0
  93. package/Server/Services/AlertOnCallRuleEngineService.ts +27 -0
  94. package/Server/Services/AlertOwnerRuleEngineService.ts +27 -0
  95. package/Server/Services/AlertPrivacyRuleEngineService.ts +27 -0
  96. package/Server/Services/AlertReminderRuleService.ts +65 -33
  97. package/Server/Services/AutoRemediationRuleEngineService.ts +90 -8
  98. package/Server/Services/CephClusterLabelRuleEngineService.ts +20 -0
  99. package/Server/Services/CephClusterOwnerRuleEngineService.ts +20 -0
  100. package/Server/Services/CloudResourceLabelRuleEngineService.ts +20 -0
  101. package/Server/Services/CloudResourceOwnerRuleEngineService.ts +20 -0
  102. package/Server/Services/DashboardLabelRuleEngineService.ts +20 -0
  103. package/Server/Services/DashboardOwnerRuleEngineService.ts +20 -0
  104. package/Server/Services/DatabaseService.ts +409 -6
  105. package/Server/Services/DockerHostLabelRuleEngineService.ts +20 -0
  106. package/Server/Services/DockerHostOwnerRuleEngineService.ts +20 -0
  107. package/Server/Services/DockerSwarmClusterLabelRuleEngineService.ts +23 -0
  108. package/Server/Services/DockerSwarmClusterOwnerRuleEngineService.ts +23 -0
  109. package/Server/Services/HostLabelRuleEngineService.ts +13 -0
  110. package/Server/Services/HostOwnerRuleEngineService.ts +13 -0
  111. package/Server/Services/IncidentEpisodeLabelRuleEngineService.ts +21 -0
  112. package/Server/Services/IncidentEpisodeOnCallRuleEngineService.ts +21 -0
  113. package/Server/Services/IncidentEpisodeOwnerRuleEngineService.ts +21 -0
  114. package/Server/Services/IncidentEpisodePrivacyRuleEngineService.ts +21 -0
  115. package/Server/Services/IncidentGroupingEngineService.ts +64 -13
  116. package/Server/Services/IncidentLabelRuleEngineService.ts +64 -9
  117. package/Server/Services/IncidentOnCallRuleEngineService.ts +64 -10
  118. package/Server/Services/IncidentOwnerRuleEngineService.ts +64 -10
  119. package/Server/Services/IncidentPrivacyRuleEngineService.ts +64 -10
  120. package/Server/Services/IncidentReminderRuleService.ts +66 -34
  121. package/Server/Services/IncidentSlaRuleService.ts +55 -12
  122. package/Server/Services/IncomingCallPolicyLabelRuleEngineService.ts +20 -0
  123. package/Server/Services/IncomingCallPolicyOwnerRuleEngineService.ts +20 -0
  124. package/Server/Services/IncomingCallPolicyPhoneNumberService.ts +184 -0
  125. package/Server/Services/IncomingCallPolicyService.ts +276 -5
  126. package/Server/Services/Index.ts +2 -0
  127. package/Server/Services/IoTFleetLabelRuleEngineService.ts +20 -0
  128. package/Server/Services/IoTFleetOwnerRuleEngineService.ts +20 -0
  129. package/Server/Services/KubernetesClusterLabelRuleEngineService.ts +23 -0
  130. package/Server/Services/KubernetesClusterOwnerRuleEngineService.ts +23 -0
  131. package/Server/Services/LabelService.ts +50 -7
  132. package/Server/Services/MonitorLabelRuleEngineService.ts +20 -0
  133. package/Server/Services/MonitorOwnerRuleEngineService.ts +20 -0
  134. package/Server/Services/NetworkDeviceAutoImportRuleEngineService.ts +2 -0
  135. package/Server/Services/NetworkDeviceAutoImportRuleService.ts +93 -1
  136. package/Server/Services/NetworkDeviceLabelRuleEngineService.ts +26 -0
  137. package/Server/Services/NetworkDeviceOwnerRuleEngineService.ts +25 -0
  138. package/Server/Services/NetworkDeviceService.ts +2 -0
  139. package/Server/Services/NetworkSiteAssignmentRuleService.ts +90 -1
  140. package/Server/Services/NetworkSiteService.ts +242 -29
  141. package/Server/Services/NetworkSiteTypeService.ts +177 -77
  142. package/Server/Services/OnCallDutyPolicyLabelRuleEngineService.ts +20 -0
  143. package/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.ts +20 -0
  144. package/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.ts +22 -0
  145. package/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.ts +22 -0
  146. package/Server/Services/PodmanHostLabelRuleEngineService.ts +20 -0
  147. package/Server/Services/PodmanHostOwnerRuleEngineService.ts +20 -0
  148. package/Server/Services/ProjectCallSMSConfigService.ts +156 -7
  149. package/Server/Services/ProxmoxClusterLabelRuleEngineService.ts +25 -0
  150. package/Server/Services/ProxmoxClusterOwnerRuleEngineService.ts +25 -0
  151. package/Server/Services/RumApplicationLabelRuleEngineService.ts +22 -0
  152. package/Server/Services/RumApplicationOwnerRuleEngineService.ts +22 -0
  153. package/Server/Services/RunbookLabelRuleEngineService.ts +20 -0
  154. package/Server/Services/RunbookOwnerRuleEngineService.ts +20 -0
  155. package/Server/Services/RunbookRuleEngineService.ts +18 -1
  156. package/Server/Services/ScheduledMaintenanceLabelRuleEngineService.ts +62 -10
  157. package/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.ts +62 -11
  158. package/Server/Services/ScheduledMaintenanceReminderRuleService.ts +48 -18
  159. package/Server/Services/ServerlessFunctionLabelRuleEngineService.ts +25 -0
  160. package/Server/Services/ServerlessFunctionOwnerRuleEngineService.ts +25 -0
  161. package/Server/Services/ServiceLabelRuleEngineService.ts +20 -0
  162. package/Server/Services/ServiceLevelObjectiveBurnRateRuleService.ts +675 -12
  163. package/Server/Services/ServiceLevelObjectiveService.ts +55 -13
  164. package/Server/Services/ServiceOwnerRuleEngineService.ts +20 -0
  165. package/Server/Services/StatusPageLabelRuleEngineService.ts +20 -0
  166. package/Server/Services/StatusPageMonitorRuleEngineService.ts +31 -2
  167. package/Server/Services/StatusPageMonitorRuleService.ts +34 -1
  168. package/Server/Services/StatusPageOwnerRuleEngineService.ts +20 -0
  169. package/Server/Services/UserService.ts +23 -50
  170. package/Server/Services/VMwareVCenterLabelRuleEngineService.ts +25 -0
  171. package/Server/Services/VMwareVCenterOwnerRuleEngineService.ts +25 -0
  172. package/Server/Services/WorkflowLabelRuleEngineService.ts +20 -0
  173. package/Server/Services/WorkflowOwnerRuleEngineService.ts +20 -0
  174. package/Server/Static/Brand/README.md +10 -5
  175. package/Server/Static/Brand/favicons/oneuptime-up-v1.svg +8 -0
  176. package/Server/Types/Database/QueryHelper.ts +88 -0
  177. package/Server/Utils/AI/Toolbox/SloTools.ts +19 -2
  178. package/Server/Utils/IncomingCallPhoneNumber.ts +29 -16
  179. package/Server/Utils/Profiling.ts +13 -1
  180. package/Server/Utils/Rules/MonitorRuleCriteriaCache.ts +38 -0
  181. package/Server/Utils/SessionReplay/SessionReplayReadService.ts +498 -0
  182. package/Server/Utils/Telemetry.ts +3 -1
  183. package/Server/Utils/VendorAssets.ts +3 -0
  184. package/Tests/App/Dashboard/AIInsightViewTriage.test.tsx +348 -0
  185. package/Tests/App/Dashboard/ArchiveResourceCard.test.tsx +476 -0
  186. package/Tests/App/Dashboard/CloudDocumentationCard.test.tsx +25 -0
  187. package/Tests/App/Dashboard/DashboardLazyPages.test.tsx +449 -24
  188. package/Tests/App/Dashboard/DashboardPersistentSideMenuLayouts.test.tsx +702 -0
  189. package/Tests/App/Dashboard/ExceptionsLandingRedirect.test.tsx +63 -0
  190. package/Tests/App/Dashboard/FeedOrdering.test.ts +150 -0
  191. package/Tests/App/Dashboard/GoogleSecOpsConnectionsErrors.test.tsx +279 -100
  192. package/Tests/App/Dashboard/InventoryItemSideMenu.test.tsx +155 -0
  193. package/Tests/App/Dashboard/InvestigationFeedRefresh.test.tsx +11 -0
  194. package/Tests/App/Dashboard/PasskeySettings.test.tsx +215 -71
  195. package/Tests/App/Dashboard/ResourceArchiveSettings.test.tsx +347 -0
  196. package/Tests/App/Dashboard/ResourceAuditLogsSideMenus.test.tsx +263 -0
  197. package/Tests/App/Dashboard/ResourceFeed.test.tsx +413 -17
  198. package/Tests/App/Dashboard/RumSessionReplaySideMenu.test.tsx +138 -0
  199. package/Tests/App/Dashboard/SloDashboardTemplateWidgets.test.tsx +940 -0
  200. package/Tests/App/Dashboard/TelemetryIngestionKeyEdit.test.tsx +378 -0
  201. package/Tests/App/Dashboard/TelemetryIngestionKeyForm.test.tsx +735 -0
  202. package/Tests/App/Dashboard/TwoFactorStatus.test.tsx +275 -108
  203. package/Tests/App/StatusPage/BulkAddStatusPageMonitorsModal.test.tsx +13 -3
  204. package/Tests/Models/AnalyticsModels/RumSessionReplayColumns.test.ts +127 -4
  205. package/Tests/Models/DatabaseModels/DomainRoleTierCoverage.test.ts +5 -4
  206. package/Tests/Models/DatabaseModels/IncomingCallPolicyPhoneNumber.test.ts +362 -0
  207. package/Tests/Models/DatabaseModels/RuleBaseModel.test.ts +69 -0
  208. package/Tests/Models/DatabaseModels/StaticRuleCriteriaInheritance.test.ts +181 -0
  209. package/Tests/Server/API/SessionReplayAPI.test.ts +1303 -145
  210. package/Tests/Server/API/UserTwoFactorSelfService.test.ts +407 -0
  211. package/Tests/Server/Infrastructure/Postgres/AddConfigurableRuleCriteriaMigration.test.ts +611 -0
  212. package/Tests/Server/Middleware/MultipartFormData.test.ts +61 -3
  213. package/Tests/Server/Middleware/TelemetryIngestionDisabled.test.ts +211 -0
  214. package/Tests/Server/Services/AlertIncidentRuleCriteriaEngineServices.test.ts +651 -0
  215. package/Tests/Server/Services/AutoRemediationRuleEngineService.test.ts +79 -0
  216. package/Tests/Server/Services/DatabaseServiceRelationOnlyRuleRollout.test.ts +330 -0
  217. package/Tests/Server/Services/DatabaseServiceRuleCriteriaValidation.test.ts +522 -0
  218. package/Tests/Server/Services/IncidentSlaRuleCriteriaCorrelation.test.ts +99 -0
  219. package/Tests/Server/Services/IncomingCallPolicyPhoneNumberService.test.ts +1540 -0
  220. package/Tests/Server/Services/NetworkDeviceRuleEngines.test.ts +179 -2
  221. package/Tests/Server/Services/NetworkSiteAssignmentRuleService.test.ts +170 -0
  222. package/Tests/Server/Services/NetworkSiteService.test.ts +559 -53
  223. package/Tests/Server/Services/NetworkSiteTypeService.test.ts +122 -55
  224. package/Tests/Server/Services/ReminderRuleCriteria.test.ts +173 -0
  225. package/Tests/Server/Services/ResourceRuleCriteriaEngineServices.test.ts +170 -0
  226. package/Tests/Server/Services/ScheduledMaintenanceRuleCriteriaCorrelation.test.ts +154 -0
  227. package/Tests/Server/Services/ServiceLevelObjectiveBurnRateRuleService.test.ts +2450 -470
  228. package/Tests/Server/Services/ServiceLevelObjectiveService.test.ts +464 -121
  229. package/Tests/Server/Services/StaticRuleCriteriaRuntimeCoverage.test.ts +281 -0
  230. package/Tests/Server/Services/StatusPageMonitorRuleEngineService.test.ts +132 -0
  231. package/Tests/Server/Services/StatusPageMonitorRuleHooks.test.ts +159 -14
  232. package/Tests/Server/Services/UserEmailChangePasswordResetExpiry.test.ts +6 -8
  233. package/Tests/Server/Services/UserTwoFactorAuthAdmin.test.ts +203 -34
  234. package/Tests/Server/Types/Database/QueryHelperJsonArrayObjects.test.ts +128 -0
  235. package/Tests/Server/Utils/AI/SloTools.test.ts +190 -1
  236. package/Tests/Server/Utils/AI/Toolbox/AIToolbox.test.ts +461 -0
  237. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +25 -0
  238. package/Tests/Server/Utils/Billing/BillingFailureNoticeThrottle.test.ts +359 -0
  239. package/Tests/Server/Utils/CodeRepository/GitHub/GitHubWebhookEvents.test.ts +318 -0
  240. package/Tests/Server/Utils/CustomField/CustomFieldDefinitionMappingHooks.test.ts +220 -0
  241. package/Tests/Server/Utils/Dashboard/SloTemplatePublicDashboard.test.ts +1043 -0
  242. package/Tests/Server/Utils/Execute.test.ts +302 -0
  243. package/Tests/Server/Utils/GracefulShutdown.test.ts +565 -0
  244. package/Tests/Server/Utils/IncomingCallPhoneNumber.test.ts +36 -20
  245. package/Tests/Server/Utils/LoggerCore.test.ts +597 -0
  246. package/Tests/Server/Utils/Monitor/MonitorTemplateUtil.test.ts +1109 -0
  247. package/Tests/Server/Utils/Monitor/SloTemplateMetricEmitterContract.test.ts +750 -0
  248. package/Tests/Server/Utils/ProductAnalytics.test.ts +404 -0
  249. package/Tests/Server/Utils/Profiling.test.ts +366 -0
  250. package/Tests/Server/Utils/Rules/MonitorRuleCriteriaCache.test.ts +99 -0
  251. package/Tests/Server/Utils/SessionReplay/SessionReplayReadServiceQueries.test.ts +558 -0
  252. package/Tests/Server/Utils/Telemetry/EntityRegistry.test.ts +711 -0
  253. package/Tests/Server/Utils/Telemetry/ResourceFacetResolver.test.ts +522 -0
  254. package/Tests/Server/Utils/VendorAssets.test.ts +17 -0
  255. package/Tests/Types/Dashboard/DashboardTemplateEditorialInvariants.test.ts +659 -0
  256. package/Tests/Types/Dashboard/DashboardTemplateInvariants.test.ts +97 -0
  257. package/Tests/Types/Dashboard/SloDashboardTemplate.test.ts +1179 -0
  258. package/Tests/Types/Database/AccessControl/OwnedThrough.test.ts +136 -0
  259. package/Tests/Types/OnCallDutyPolicy/LayerUtilCorePaths.test.ts +1014 -0
  260. package/Tests/Types/OnCallDutyPolicy/LayerUtilExhaustiveRotation.test.ts +9 -6
  261. package/Tests/Types/Rules/RuleCriteriaFieldRegistry.test.ts +276 -0
  262. package/Tests/Types/Rum/SessionReplayApiContracts.test.ts +180 -1
  263. package/Tests/Types/Telemetry/LlmConventions.test.ts +495 -0
  264. package/Tests/UI/Components/AiInvestigationSettingsCard.test.tsx +13 -6
  265. package/Tests/UI/Components/Alert.test.tsx +532 -93
  266. package/Tests/UI/Components/Feed.test.tsx +241 -0
  267. package/Tests/UI/Components/Forms/BasicFormStepNavigation.test.tsx +368 -0
  268. package/Tests/UI/Components/Forms/FormSummary.test.tsx +454 -0
  269. package/Tests/UI/Components/Forms/ModelFormJsonColumns.test.tsx +290 -0
  270. package/Tests/UI/Components/Forms/ModelFormRuleCriteria.test.tsx +331 -0
  271. package/Tests/UI/Components/IconOpticalSize.test.tsx +79 -31
  272. package/Tests/UI/Components/ModelTable/ModelTableWrapContent.test.tsx +6 -6
  273. package/Tests/UI/Components/NavBar.test.tsx +91 -2
  274. package/Tests/UI/Components/PencilButton.test.tsx +211 -0
  275. package/Tests/UI/Components/RuleCriteria/RuleCriteriaBuilder.test.tsx +510 -0
  276. package/Tests/UI/Components/RuleCriteria/RuleCriteriaModelTable.test.tsx +350 -0
  277. package/Tests/UI/Components/TableSortAndMobileColumns.test.tsx +50 -0
  278. package/Tests/UI/Components/Telemetry/TelemetryRetentionConfigForm.test.tsx +329 -0
  279. package/Tests/UI/Components/useFeedItems.test.tsx +107 -0
  280. package/Tests/UI/Rum/ChunkLoader.test.ts +401 -0
  281. package/Tests/UI/Rum/RecordingHealthCard.test.tsx +1 -1
  282. package/Tests/UI/Rum/RecordingHealthStrip.test.tsx +7 -1
  283. package/Tests/UI/Rum/ReplayCorrelationPanel.test.tsx +2 -0
  284. package/Tests/UI/Rum/ReplayEngine.test.ts +1069 -5
  285. package/Tests/UI/Rum/ReplayHeader.test.tsx +579 -2
  286. package/Tests/UI/Rum/ReplayPlayerChrome.test.tsx +23 -5
  287. package/Tests/UI/Rum/ReplayRail.test.tsx +143 -1
  288. package/Tests/UI/Rum/ReplayRenderBudget.test.tsx +338 -0
  289. package/Tests/UI/Rum/ReplaySignals.test.ts +179 -0
  290. package/Tests/UI/Rum/ReplayStage.test.tsx +210 -3
  291. package/Tests/UI/Rum/ReplayTimeline.test.tsx +180 -1
  292. package/Tests/UI/Rum/ReplayUserSessionsMenu.test.tsx +405 -0
  293. package/Tests/UI/Rum/SessionReplayEmptyState.test.tsx +13 -16
  294. package/Tests/UI/Rum/SessionReplayFacets.test.tsx +199 -0
  295. package/Tests/UI/Rum/SessionReplaySearchBar.test.tsx +58 -21
  296. package/Tests/UI/Rum/SessionReplaySetupGuide.test.tsx +2 -0
  297. package/Tests/UI/Rum/SessionReplayTable.test.tsx +717 -4
  298. package/Tests/UI/Rum/SessionReplayUsersPage.test.tsx +435 -0
  299. package/Tests/UI/Rum/SessionReplayUsersTable.test.tsx +577 -0
  300. package/Tests/UI/Utils/Breadcrumb/fixtures/RealBreadcrumbTrails.ts +1 -1
  301. package/Tests/UI/Utils/Breadcrumb/fixtures/RealRoutePatterns.ts +1 -1
  302. package/Tests/UI/Utils/LabelRuleImportExport.test.ts +192 -0
  303. package/Tests/UI/Utils/Navigation.test.ts +30 -0
  304. package/Tests/Utils/Dashboard/SloTemplateVariableScoping.test.ts +880 -0
  305. package/Tests/Utils/LabelRuleImportExport.test.ts +158 -0
  306. package/Tests/Utils/NetworkDiscovery/AutoImportRuleMatcher.test.ts +93 -0
  307. package/Tests/Utils/NetworkSite/CidrMatchUtil.test.ts +138 -0
  308. package/Tests/Utils/NetworkSite/TypeHierarchyUtil.test.ts +174 -0
  309. package/Tests/Utils/Rules/RuleCriteriaMatcher.test.ts +1424 -0
  310. package/Tests/Utils/Rum/SessionIdentity.test.ts +72 -0
  311. package/Tests/Utils/Rum/SessionReplayHealth.test.ts +884 -0
  312. package/Tests/Utils/Slo/SloBurnRateRuleState.test.ts +374 -28
  313. package/Tests/Utils/Telemetry/OriginAllowList.test.ts +118 -0
  314. package/Types/Dashboard/DashboardTemplates.ts +465 -0
  315. package/Types/OnCallDutyPolicy/Layer.ts +12 -0
  316. package/Types/Rules/RuleCriteria.ts +51 -0
  317. package/Types/Rules/RuleCriteriaFieldRegistry.ts +449 -0
  318. package/Types/Rum/SessionReplay.ts +75 -0
  319. package/Types/Rum/SessionReplayApi.ts +93 -0
  320. package/UI/Components/Alerts/Alert.tsx +102 -72
  321. package/UI/Components/Button/Button.tsx +4 -1
  322. package/UI/Components/Dropdown/Dropdown.tsx +2 -0
  323. package/UI/Components/Feed/Feed.tsx +15 -0
  324. package/UI/Components/Feed/useFeedItems.ts +227 -0
  325. package/UI/Components/Forms/BasicForm.tsx +42 -21
  326. package/UI/Components/Forms/ModelForm.tsx +80 -1
  327. package/UI/Components/Icon/Icon.tsx +3 -35
  328. package/UI/Components/ModelTable/ModelTable.tsx +19 -0
  329. package/UI/Components/Navbar/NavBar.tsx +1 -0
  330. package/UI/Components/RuleCriteria/RuleCriteriaBuilder.tsx +735 -0
  331. package/UI/Components/RuleCriteria/RuleCriteriaModelForm.tsx +209 -0
  332. package/UI/Components/RuleCriteria/RuleCriteriaModelTable.tsx +205 -0
  333. package/UI/Components/RuleCriteria/RuleCriteriaSummary.tsx +123 -0
  334. package/UI/Components/Table/Table.tsx +3 -0
  335. package/UI/Components/Table/TableBody.tsx +3 -0
  336. package/UI/Components/Table/TableRow.tsx +8 -2
  337. package/UI/Components/Telemetry/TelemetryRetentionConfigForm.tsx +14 -2
  338. package/UI/Styles/Theme.css +1 -0
  339. package/UI/Utils/LabelRuleImportExport.ts +114 -6
  340. package/UI/Utils/Navigation.ts +1 -2
  341. package/UI/esbuild-config.js +46 -0
  342. package/Utils/Faker.ts +93 -6
  343. package/Utils/LabelRuleImportExport.ts +295 -2
  344. package/Utils/NetworkDiscovery/AutoImportRuleMatcher.ts +108 -8
  345. package/Utils/NetworkSite/CidrMatchUtil.ts +102 -0
  346. package/Utils/NetworkSite/TypeHierarchyUtil.ts +152 -2
  347. package/Utils/Rules/RuleCriteriaMatcher.ts +931 -0
  348. package/Utils/Rum/SessionIdentity.ts +16 -0
  349. package/Utils/Slo/SloBurnRateRuleState.ts +87 -33
  350. package/Utils/Telemetry/OriginAllowList.ts +74 -0
  351. package/build/dist/Models/AnalyticsModels/RumSession.js +32 -0
  352. package/build/dist/Models/AnalyticsModels/RumSession.js.map +1 -1
  353. package/build/dist/Models/DatabaseModels/AlertEpisodeLabelRule.js +2 -2
  354. package/build/dist/Models/DatabaseModels/AlertEpisodeLabelRule.js.map +1 -1
  355. package/build/dist/Models/DatabaseModels/AlertEpisodeOnCallRule.js +2 -2
  356. package/build/dist/Models/DatabaseModels/AlertEpisodeOnCallRule.js.map +1 -1
  357. package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerRule.js +2 -2
  358. package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerRule.js.map +1 -1
  359. package/build/dist/Models/DatabaseModels/AlertEpisodePrivacyRule.js +2 -2
  360. package/build/dist/Models/DatabaseModels/AlertEpisodePrivacyRule.js.map +1 -1
  361. package/build/dist/Models/DatabaseModels/AlertGroupingRule.js +2 -2
  362. package/build/dist/Models/DatabaseModels/AlertGroupingRule.js.map +1 -1
  363. package/build/dist/Models/DatabaseModels/AlertLabelRule.js +2 -2
  364. package/build/dist/Models/DatabaseModels/AlertLabelRule.js.map +1 -1
  365. package/build/dist/Models/DatabaseModels/AlertOnCallRule.js +2 -2
  366. package/build/dist/Models/DatabaseModels/AlertOnCallRule.js.map +1 -1
  367. package/build/dist/Models/DatabaseModels/AlertOwnerRule.js +2 -2
  368. package/build/dist/Models/DatabaseModels/AlertOwnerRule.js.map +1 -1
  369. package/build/dist/Models/DatabaseModels/AlertPrivacyRule.js +2 -2
  370. package/build/dist/Models/DatabaseModels/AlertPrivacyRule.js.map +1 -1
  371. package/build/dist/Models/DatabaseModels/AlertReminderRule.js +6 -5
  372. package/build/dist/Models/DatabaseModels/AlertReminderRule.js.map +1 -1
  373. package/build/dist/Models/DatabaseModels/AutoRemediationRule.js +2 -2
  374. package/build/dist/Models/DatabaseModels/AutoRemediationRule.js.map +1 -1
  375. package/build/dist/Models/DatabaseModels/CephClusterLabelRule.js +2 -2
  376. package/build/dist/Models/DatabaseModels/CephClusterLabelRule.js.map +1 -1
  377. package/build/dist/Models/DatabaseModels/CephClusterOwnerRule.js +2 -2
  378. package/build/dist/Models/DatabaseModels/CephClusterOwnerRule.js.map +1 -1
  379. package/build/dist/Models/DatabaseModels/CloudResourceLabelRule.js +2 -2
  380. package/build/dist/Models/DatabaseModels/CloudResourceLabelRule.js.map +1 -1
  381. package/build/dist/Models/DatabaseModels/CloudResourceOwnerRule.js +2 -2
  382. package/build/dist/Models/DatabaseModels/CloudResourceOwnerRule.js.map +1 -1
  383. package/build/dist/Models/DatabaseModels/DashboardLabelRule.js +2 -2
  384. package/build/dist/Models/DatabaseModels/DashboardLabelRule.js.map +1 -1
  385. package/build/dist/Models/DatabaseModels/DashboardOwnerRule.js +2 -2
  386. package/build/dist/Models/DatabaseModels/DashboardOwnerRule.js.map +1 -1
  387. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/RelationOnlyRuleBaseModel.js +12 -0
  388. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/RelationOnlyRuleBaseModel.js.map +1 -0
  389. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/RuleBaseModel.js +50 -0
  390. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/RuleBaseModel.js.map +1 -0
  391. package/build/dist/Models/DatabaseModels/DockerHostLabelRule.js +2 -2
  392. package/build/dist/Models/DatabaseModels/DockerHostLabelRule.js.map +1 -1
  393. package/build/dist/Models/DatabaseModels/DockerHostOwnerRule.js +2 -2
  394. package/build/dist/Models/DatabaseModels/DockerHostOwnerRule.js.map +1 -1
  395. package/build/dist/Models/DatabaseModels/DockerSwarmClusterLabelRule.js +2 -2
  396. package/build/dist/Models/DatabaseModels/DockerSwarmClusterLabelRule.js.map +1 -1
  397. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerRule.js +2 -2
  398. package/build/dist/Models/DatabaseModels/DockerSwarmClusterOwnerRule.js.map +1 -1
  399. package/build/dist/Models/DatabaseModels/HostLabelRule.js +2 -2
  400. package/build/dist/Models/DatabaseModels/HostLabelRule.js.map +1 -1
  401. package/build/dist/Models/DatabaseModels/HostOwnerRule.js +2 -2
  402. package/build/dist/Models/DatabaseModels/HostOwnerRule.js.map +1 -1
  403. package/build/dist/Models/DatabaseModels/IncidentEpisodeLabelRule.js +2 -2
  404. package/build/dist/Models/DatabaseModels/IncidentEpisodeLabelRule.js.map +1 -1
  405. package/build/dist/Models/DatabaseModels/IncidentEpisodeOnCallRule.js +2 -2
  406. package/build/dist/Models/DatabaseModels/IncidentEpisodeOnCallRule.js.map +1 -1
  407. package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerRule.js +2 -2
  408. package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerRule.js.map +1 -1
  409. package/build/dist/Models/DatabaseModels/IncidentEpisodePrivacyRule.js +2 -2
  410. package/build/dist/Models/DatabaseModels/IncidentEpisodePrivacyRule.js.map +1 -1
  411. package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js +2 -2
  412. package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js.map +1 -1
  413. package/build/dist/Models/DatabaseModels/IncidentLabelRule.js +2 -2
  414. package/build/dist/Models/DatabaseModels/IncidentLabelRule.js.map +1 -1
  415. package/build/dist/Models/DatabaseModels/IncidentOnCallRule.js +2 -2
  416. package/build/dist/Models/DatabaseModels/IncidentOnCallRule.js.map +1 -1
  417. package/build/dist/Models/DatabaseModels/IncidentOwnerRule.js +2 -2
  418. package/build/dist/Models/DatabaseModels/IncidentOwnerRule.js.map +1 -1
  419. package/build/dist/Models/DatabaseModels/IncidentPrivacyRule.js +2 -2
  420. package/build/dist/Models/DatabaseModels/IncidentPrivacyRule.js.map +1 -1
  421. package/build/dist/Models/DatabaseModels/IncidentReminderRule.js +6 -5
  422. package/build/dist/Models/DatabaseModels/IncidentReminderRule.js.map +1 -1
  423. package/build/dist/Models/DatabaseModels/IncidentSlaRule.js +2 -2
  424. package/build/dist/Models/DatabaseModels/IncidentSlaRule.js.map +1 -1
  425. package/build/dist/Models/DatabaseModels/IncomingCallPolicy.js +3 -4
  426. package/build/dist/Models/DatabaseModels/IncomingCallPolicy.js.map +1 -1
  427. package/build/dist/Models/DatabaseModels/IncomingCallPolicyLabelRule.js +2 -2
  428. package/build/dist/Models/DatabaseModels/IncomingCallPolicyLabelRule.js.map +1 -1
  429. package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerRule.js +2 -2
  430. package/build/dist/Models/DatabaseModels/IncomingCallPolicyOwnerRule.js.map +1 -1
  431. package/build/dist/Models/DatabaseModels/IncomingCallPolicyPhoneNumber.js +277 -0
  432. package/build/dist/Models/DatabaseModels/IncomingCallPolicyPhoneNumber.js.map +1 -0
  433. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  434. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  435. package/build/dist/Models/DatabaseModels/IoTFleetLabelRule.js +2 -2
  436. package/build/dist/Models/DatabaseModels/IoTFleetLabelRule.js.map +1 -1
  437. package/build/dist/Models/DatabaseModels/IoTFleetOwnerRule.js +2 -2
  438. package/build/dist/Models/DatabaseModels/IoTFleetOwnerRule.js.map +1 -1
  439. package/build/dist/Models/DatabaseModels/KubernetesClusterLabelRule.js +2 -2
  440. package/build/dist/Models/DatabaseModels/KubernetesClusterLabelRule.js.map +1 -1
  441. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerRule.js +2 -2
  442. package/build/dist/Models/DatabaseModels/KubernetesClusterOwnerRule.js.map +1 -1
  443. package/build/dist/Models/DatabaseModels/MonitorLabelRule.js +2 -2
  444. package/build/dist/Models/DatabaseModels/MonitorLabelRule.js.map +1 -1
  445. package/build/dist/Models/DatabaseModels/MonitorOwnerRule.js +2 -2
  446. package/build/dist/Models/DatabaseModels/MonitorOwnerRule.js.map +1 -1
  447. package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js +2 -2
  448. package/build/dist/Models/DatabaseModels/NetworkDeviceAutoImportRule.js.map +1 -1
  449. package/build/dist/Models/DatabaseModels/NetworkDeviceLabelRule.js +2 -2
  450. package/build/dist/Models/DatabaseModels/NetworkDeviceLabelRule.js.map +1 -1
  451. package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerRule.js +2 -2
  452. package/build/dist/Models/DatabaseModels/NetworkDeviceOwnerRule.js.map +1 -1
  453. package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js +2 -2
  454. package/build/dist/Models/DatabaseModels/NetworkSiteAssignmentRule.js.map +1 -1
  455. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyLabelRule.js +2 -2
  456. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyLabelRule.js.map +1 -1
  457. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerRule.js +2 -2
  458. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerRule.js.map +1 -1
  459. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLabelRule.js +2 -2
  460. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLabelRule.js.map +1 -1
  461. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerRule.js +2 -2
  462. package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleOwnerRule.js.map +1 -1
  463. package/build/dist/Models/DatabaseModels/PodmanHostLabelRule.js +2 -2
  464. package/build/dist/Models/DatabaseModels/PodmanHostLabelRule.js.map +1 -1
  465. package/build/dist/Models/DatabaseModels/PodmanHostOwnerRule.js +2 -2
  466. package/build/dist/Models/DatabaseModels/PodmanHostOwnerRule.js.map +1 -1
  467. package/build/dist/Models/DatabaseModels/ProxmoxClusterLabelRule.js +2 -2
  468. package/build/dist/Models/DatabaseModels/ProxmoxClusterLabelRule.js.map +1 -1
  469. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerRule.js +2 -2
  470. package/build/dist/Models/DatabaseModels/ProxmoxClusterOwnerRule.js.map +1 -1
  471. package/build/dist/Models/DatabaseModels/RumApplicationLabelRule.js +2 -2
  472. package/build/dist/Models/DatabaseModels/RumApplicationLabelRule.js.map +1 -1
  473. package/build/dist/Models/DatabaseModels/RumApplicationOwnerRule.js +2 -2
  474. package/build/dist/Models/DatabaseModels/RumApplicationOwnerRule.js.map +1 -1
  475. package/build/dist/Models/DatabaseModels/RunbookLabelRule.js +2 -2
  476. package/build/dist/Models/DatabaseModels/RunbookLabelRule.js.map +1 -1
  477. package/build/dist/Models/DatabaseModels/RunbookOwnerRule.js +2 -2
  478. package/build/dist/Models/DatabaseModels/RunbookOwnerRule.js.map +1 -1
  479. package/build/dist/Models/DatabaseModels/RunbookRule.js +2 -2
  480. package/build/dist/Models/DatabaseModels/RunbookRule.js.map +1 -1
  481. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js +2 -2
  482. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceLabelRule.js.map +1 -1
  483. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js +2 -2
  484. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerRule.js.map +1 -1
  485. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceReminderRule.js +6 -5
  486. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceReminderRule.js.map +1 -1
  487. package/build/dist/Models/DatabaseModels/ServerlessFunctionLabelRule.js +2 -2
  488. package/build/dist/Models/DatabaseModels/ServerlessFunctionLabelRule.js.map +1 -1
  489. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerRule.js +2 -2
  490. package/build/dist/Models/DatabaseModels/ServerlessFunctionOwnerRule.js.map +1 -1
  491. package/build/dist/Models/DatabaseModels/ServiceLabelRule.js +2 -2
  492. package/build/dist/Models/DatabaseModels/ServiceLabelRule.js.map +1 -1
  493. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.js +281 -4
  494. package/build/dist/Models/DatabaseModels/ServiceLevelObjectiveBurnRateRule.js.map +1 -1
  495. package/build/dist/Models/DatabaseModels/ServiceOwnerRule.js +2 -2
  496. package/build/dist/Models/DatabaseModels/ServiceOwnerRule.js.map +1 -1
  497. package/build/dist/Models/DatabaseModels/StatusPageLabelRule.js +2 -2
  498. package/build/dist/Models/DatabaseModels/StatusPageLabelRule.js.map +1 -1
  499. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js +2 -2
  500. package/build/dist/Models/DatabaseModels/StatusPageMonitorRule.js.map +1 -1
  501. package/build/dist/Models/DatabaseModels/StatusPageOwnerRule.js +2 -2
  502. package/build/dist/Models/DatabaseModels/StatusPageOwnerRule.js.map +1 -1
  503. package/build/dist/Models/DatabaseModels/VMwareVCenterLabelRule.js +2 -2
  504. package/build/dist/Models/DatabaseModels/VMwareVCenterLabelRule.js.map +1 -1
  505. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerRule.js +2 -2
  506. package/build/dist/Models/DatabaseModels/VMwareVCenterOwnerRule.js.map +1 -1
  507. package/build/dist/Models/DatabaseModels/WorkflowLabelRule.js +2 -2
  508. package/build/dist/Models/DatabaseModels/WorkflowLabelRule.js.map +1 -1
  509. package/build/dist/Models/DatabaseModels/WorkflowOwnerRule.js +2 -2
  510. package/build/dist/Models/DatabaseModels/WorkflowOwnerRule.js.map +1 -1
  511. package/build/dist/Server/API/TelemetryAPI.js +211 -4
  512. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  513. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792400000000-AddSloBurnRateRuleIncidents.js +60 -0
  514. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792400000000-AddSloBurnRateRuleIncidents.js.map +1 -0
  515. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792500000000-AddConfigurableRuleCriteria.js +301 -0
  516. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792500000000-AddConfigurableRuleCriteria.js.map +1 -0
  517. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792600000000-AddIncomingCallPolicyPhoneNumbers.js +30 -0
  518. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1792600000000-AddIncomingCallPolicyPhoneNumbers.js.map +1 -0
  519. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +6 -0
  520. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  521. package/build/dist/Server/Middleware/MultipartFormData.js +38 -21
  522. package/build/dist/Server/Middleware/MultipartFormData.js.map +1 -1
  523. package/build/dist/Server/Services/AlertEpisodeLabelRuleEngineService.js +17 -0
  524. package/build/dist/Server/Services/AlertEpisodeLabelRuleEngineService.js.map +1 -1
  525. package/build/dist/Server/Services/AlertEpisodeOnCallRuleEngineService.js +17 -0
  526. package/build/dist/Server/Services/AlertEpisodeOnCallRuleEngineService.js.map +1 -1
  527. package/build/dist/Server/Services/AlertEpisodeOwnerRuleEngineService.js +17 -0
  528. package/build/dist/Server/Services/AlertEpisodeOwnerRuleEngineService.js.map +1 -1
  529. package/build/dist/Server/Services/AlertEpisodePrivacyRuleEngineService.js +17 -0
  530. package/build/dist/Server/Services/AlertEpisodePrivacyRuleEngineService.js.map +1 -1
  531. package/build/dist/Server/Services/AlertGroupingEngineService.js +21 -0
  532. package/build/dist/Server/Services/AlertGroupingEngineService.js.map +1 -1
  533. package/build/dist/Server/Services/AlertLabelRuleEngineService.js +21 -0
  534. package/build/dist/Server/Services/AlertLabelRuleEngineService.js.map +1 -1
  535. package/build/dist/Server/Services/AlertOnCallRuleEngineService.js +21 -0
  536. package/build/dist/Server/Services/AlertOnCallRuleEngineService.js.map +1 -1
  537. package/build/dist/Server/Services/AlertOwnerRuleEngineService.js +21 -0
  538. package/build/dist/Server/Services/AlertOwnerRuleEngineService.js.map +1 -1
  539. package/build/dist/Server/Services/AlertPrivacyRuleEngineService.js +21 -0
  540. package/build/dist/Server/Services/AlertPrivacyRuleEngineService.js.map +1 -1
  541. package/build/dist/Server/Services/AlertReminderRuleService.js +44 -26
  542. package/build/dist/Server/Services/AlertReminderRuleService.js.map +1 -1
  543. package/build/dist/Server/Services/AutoRemediationRuleEngineService.js +54 -11
  544. package/build/dist/Server/Services/AutoRemediationRuleEngineService.js.map +1 -1
  545. package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js +16 -0
  546. package/build/dist/Server/Services/CephClusterLabelRuleEngineService.js.map +1 -1
  547. package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js +16 -0
  548. package/build/dist/Server/Services/CephClusterOwnerRuleEngineService.js.map +1 -1
  549. package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js +16 -0
  550. package/build/dist/Server/Services/CloudResourceLabelRuleEngineService.js.map +1 -1
  551. package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js +16 -0
  552. package/build/dist/Server/Services/CloudResourceOwnerRuleEngineService.js.map +1 -1
  553. package/build/dist/Server/Services/DashboardLabelRuleEngineService.js +16 -0
  554. package/build/dist/Server/Services/DashboardLabelRuleEngineService.js.map +1 -1
  555. package/build/dist/Server/Services/DashboardOwnerRuleEngineService.js +16 -0
  556. package/build/dist/Server/Services/DashboardOwnerRuleEngineService.js.map +1 -1
  557. package/build/dist/Server/Services/DatabaseService.js +235 -10
  558. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  559. package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js +16 -0
  560. package/build/dist/Server/Services/DockerHostLabelRuleEngineService.js.map +1 -1
  561. package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js +16 -0
  562. package/build/dist/Server/Services/DockerHostOwnerRuleEngineService.js.map +1 -1
  563. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js +16 -0
  564. package/build/dist/Server/Services/DockerSwarmClusterLabelRuleEngineService.js.map +1 -1
  565. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js +16 -0
  566. package/build/dist/Server/Services/DockerSwarmClusterOwnerRuleEngineService.js.map +1 -1
  567. package/build/dist/Server/Services/HostLabelRuleEngineService.js +12 -0
  568. package/build/dist/Server/Services/HostLabelRuleEngineService.js.map +1 -1
  569. package/build/dist/Server/Services/HostOwnerRuleEngineService.js +12 -0
  570. package/build/dist/Server/Services/HostOwnerRuleEngineService.js.map +1 -1
  571. package/build/dist/Server/Services/IncidentEpisodeLabelRuleEngineService.js +17 -0
  572. package/build/dist/Server/Services/IncidentEpisodeLabelRuleEngineService.js.map +1 -1
  573. package/build/dist/Server/Services/IncidentEpisodeOnCallRuleEngineService.js +17 -0
  574. package/build/dist/Server/Services/IncidentEpisodeOnCallRuleEngineService.js.map +1 -1
  575. package/build/dist/Server/Services/IncidentEpisodeOwnerRuleEngineService.js +17 -0
  576. package/build/dist/Server/Services/IncidentEpisodeOwnerRuleEngineService.js.map +1 -1
  577. package/build/dist/Server/Services/IncidentEpisodePrivacyRuleEngineService.js +17 -0
  578. package/build/dist/Server/Services/IncidentEpisodePrivacyRuleEngineService.js.map +1 -1
  579. package/build/dist/Server/Services/IncidentGroupingEngineService.js +39 -13
  580. package/build/dist/Server/Services/IncidentGroupingEngineService.js.map +1 -1
  581. package/build/dist/Server/Services/IncidentLabelRuleEngineService.js +39 -9
  582. package/build/dist/Server/Services/IncidentLabelRuleEngineService.js.map +1 -1
  583. package/build/dist/Server/Services/IncidentOnCallRuleEngineService.js +39 -10
  584. package/build/dist/Server/Services/IncidentOnCallRuleEngineService.js.map +1 -1
  585. package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js +39 -10
  586. package/build/dist/Server/Services/IncidentOwnerRuleEngineService.js.map +1 -1
  587. package/build/dist/Server/Services/IncidentPrivacyRuleEngineService.js +39 -10
  588. package/build/dist/Server/Services/IncidentPrivacyRuleEngineService.js.map +1 -1
  589. package/build/dist/Server/Services/IncidentReminderRuleService.js +44 -26
  590. package/build/dist/Server/Services/IncidentReminderRuleService.js.map +1 -1
  591. package/build/dist/Server/Services/IncidentSlaRuleService.js +33 -12
  592. package/build/dist/Server/Services/IncidentSlaRuleService.js.map +1 -1
  593. package/build/dist/Server/Services/IncomingCallPolicyLabelRuleEngineService.js +16 -0
  594. package/build/dist/Server/Services/IncomingCallPolicyLabelRuleEngineService.js.map +1 -1
  595. package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleEngineService.js +16 -0
  596. package/build/dist/Server/Services/IncomingCallPolicyOwnerRuleEngineService.js.map +1 -1
  597. package/build/dist/Server/Services/IncomingCallPolicyPhoneNumberService.js +127 -0
  598. package/build/dist/Server/Services/IncomingCallPolicyPhoneNumberService.js.map +1 -0
  599. package/build/dist/Server/Services/IncomingCallPolicyService.js +187 -4
  600. package/build/dist/Server/Services/IncomingCallPolicyService.js.map +1 -1
  601. package/build/dist/Server/Services/Index.js +2 -0
  602. package/build/dist/Server/Services/Index.js.map +1 -1
  603. package/build/dist/Server/Services/IoTFleetLabelRuleEngineService.js +16 -0
  604. package/build/dist/Server/Services/IoTFleetLabelRuleEngineService.js.map +1 -1
  605. package/build/dist/Server/Services/IoTFleetOwnerRuleEngineService.js +16 -0
  606. package/build/dist/Server/Services/IoTFleetOwnerRuleEngineService.js.map +1 -1
  607. package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js +16 -0
  608. package/build/dist/Server/Services/KubernetesClusterLabelRuleEngineService.js.map +1 -1
  609. package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js +16 -0
  610. package/build/dist/Server/Services/KubernetesClusterOwnerRuleEngineService.js.map +1 -1
  611. package/build/dist/Server/Services/LabelService.js +39 -7
  612. package/build/dist/Server/Services/LabelService.js.map +1 -1
  613. package/build/dist/Server/Services/MonitorLabelRuleEngineService.js +16 -0
  614. package/build/dist/Server/Services/MonitorLabelRuleEngineService.js.map +1 -1
  615. package/build/dist/Server/Services/MonitorOwnerRuleEngineService.js +16 -0
  616. package/build/dist/Server/Services/MonitorOwnerRuleEngineService.js.map +1 -1
  617. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js +2 -0
  618. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleEngineService.js.map +1 -1
  619. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js +57 -1
  620. package/build/dist/Server/Services/NetworkDeviceAutoImportRuleService.js.map +1 -1
  621. package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js +17 -0
  622. package/build/dist/Server/Services/NetworkDeviceLabelRuleEngineService.js.map +1 -1
  623. package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js +16 -0
  624. package/build/dist/Server/Services/NetworkDeviceOwnerRuleEngineService.js.map +1 -1
  625. package/build/dist/Server/Services/NetworkDeviceService.js +2 -0
  626. package/build/dist/Server/Services/NetworkDeviceService.js.map +1 -1
  627. package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js +56 -1
  628. package/build/dist/Server/Services/NetworkSiteAssignmentRuleService.js.map +1 -1
  629. package/build/dist/Server/Services/NetworkSiteService.js +187 -22
  630. package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
  631. package/build/dist/Server/Services/NetworkSiteTypeService.js +126 -51
  632. package/build/dist/Server/Services/NetworkSiteTypeService.js.map +1 -1
  633. package/build/dist/Server/Services/OnCallDutyPolicyLabelRuleEngineService.js +16 -0
  634. package/build/dist/Server/Services/OnCallDutyPolicyLabelRuleEngineService.js.map +1 -1
  635. package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.js +16 -0
  636. package/build/dist/Server/Services/OnCallDutyPolicyOwnerRuleEngineService.js.map +1 -1
  637. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.js +16 -0
  638. package/build/dist/Server/Services/OnCallDutyPolicyScheduleLabelRuleEngineService.js.map +1 -1
  639. package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.js +16 -0
  640. package/build/dist/Server/Services/OnCallDutyPolicyScheduleOwnerRuleEngineService.js.map +1 -1
  641. package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js +16 -0
  642. package/build/dist/Server/Services/PodmanHostLabelRuleEngineService.js.map +1 -1
  643. package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js +16 -0
  644. package/build/dist/Server/Services/PodmanHostOwnerRuleEngineService.js.map +1 -1
  645. package/build/dist/Server/Services/ProjectCallSMSConfigService.js +115 -6
  646. package/build/dist/Server/Services/ProjectCallSMSConfigService.js.map +1 -1
  647. package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js +16 -0
  648. package/build/dist/Server/Services/ProxmoxClusterLabelRuleEngineService.js.map +1 -1
  649. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js +16 -0
  650. package/build/dist/Server/Services/ProxmoxClusterOwnerRuleEngineService.js.map +1 -1
  651. package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js +16 -0
  652. package/build/dist/Server/Services/RumApplicationLabelRuleEngineService.js.map +1 -1
  653. package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js +16 -0
  654. package/build/dist/Server/Services/RumApplicationOwnerRuleEngineService.js.map +1 -1
  655. package/build/dist/Server/Services/RunbookLabelRuleEngineService.js +16 -0
  656. package/build/dist/Server/Services/RunbookLabelRuleEngineService.js.map +1 -1
  657. package/build/dist/Server/Services/RunbookOwnerRuleEngineService.js +16 -0
  658. package/build/dist/Server/Services/RunbookOwnerRuleEngineService.js.map +1 -1
  659. package/build/dist/Server/Services/RunbookRuleEngineService.js +12 -0
  660. package/build/dist/Server/Services/RunbookRuleEngineService.js.map +1 -1
  661. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js +38 -9
  662. package/build/dist/Server/Services/ScheduledMaintenanceLabelRuleEngineService.js.map +1 -1
  663. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js +38 -10
  664. package/build/dist/Server/Services/ScheduledMaintenanceOwnerRuleEngineService.js.map +1 -1
  665. package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js +32 -14
  666. package/build/dist/Server/Services/ScheduledMaintenanceReminderRuleService.js.map +1 -1
  667. package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js +16 -0
  668. package/build/dist/Server/Services/ServerlessFunctionLabelRuleEngineService.js.map +1 -1
  669. package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js +16 -0
  670. package/build/dist/Server/Services/ServerlessFunctionOwnerRuleEngineService.js.map +1 -1
  671. package/build/dist/Server/Services/ServiceLabelRuleEngineService.js +16 -0
  672. package/build/dist/Server/Services/ServiceLabelRuleEngineService.js.map +1 -1
  673. package/build/dist/Server/Services/ServiceLevelObjectiveBurnRateRuleService.js +554 -12
  674. package/build/dist/Server/Services/ServiceLevelObjectiveBurnRateRuleService.js.map +1 -1
  675. package/build/dist/Server/Services/ServiceLevelObjectiveService.js +50 -14
  676. package/build/dist/Server/Services/ServiceLevelObjectiveService.js.map +1 -1
  677. package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js +16 -0
  678. package/build/dist/Server/Services/ServiceOwnerRuleEngineService.js.map +1 -1
  679. package/build/dist/Server/Services/StatusPageLabelRuleEngineService.js +16 -0
  680. package/build/dist/Server/Services/StatusPageLabelRuleEngineService.js.map +1 -1
  681. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js +25 -2
  682. package/build/dist/Server/Services/StatusPageMonitorRuleEngineService.js.map +1 -1
  683. package/build/dist/Server/Services/StatusPageMonitorRuleService.js +19 -1
  684. package/build/dist/Server/Services/StatusPageMonitorRuleService.js.map +1 -1
  685. package/build/dist/Server/Services/StatusPageOwnerRuleEngineService.js +16 -0
  686. package/build/dist/Server/Services/StatusPageOwnerRuleEngineService.js.map +1 -1
  687. package/build/dist/Server/Services/UserService.js +14 -49
  688. package/build/dist/Server/Services/UserService.js.map +1 -1
  689. package/build/dist/Server/Services/VMwareVCenterLabelRuleEngineService.js +16 -0
  690. package/build/dist/Server/Services/VMwareVCenterLabelRuleEngineService.js.map +1 -1
  691. package/build/dist/Server/Services/VMwareVCenterOwnerRuleEngineService.js +16 -0
  692. package/build/dist/Server/Services/VMwareVCenterOwnerRuleEngineService.js.map +1 -1
  693. package/build/dist/Server/Services/WorkflowLabelRuleEngineService.js +16 -0
  694. package/build/dist/Server/Services/WorkflowLabelRuleEngineService.js.map +1 -1
  695. package/build/dist/Server/Services/WorkflowOwnerRuleEngineService.js +16 -0
  696. package/build/dist/Server/Services/WorkflowOwnerRuleEngineService.js.map +1 -1
  697. package/build/dist/Server/Types/Database/QueryHelper.js +67 -0
  698. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  699. package/build/dist/Server/Utils/AI/Toolbox/SloTools.js +21 -4
  700. package/build/dist/Server/Utils/AI/Toolbox/SloTools.js.map +1 -1
  701. package/build/dist/Server/Utils/IncomingCallPhoneNumber.js +9 -3
  702. package/build/dist/Server/Utils/IncomingCallPhoneNumber.js.map +1 -1
  703. package/build/dist/Server/Utils/Profiling.js +10 -1
  704. package/build/dist/Server/Utils/Profiling.js.map +1 -1
  705. package/build/dist/Server/Utils/Rules/MonitorRuleCriteriaCache.js +30 -0
  706. package/build/dist/Server/Utils/Rules/MonitorRuleCriteriaCache.js.map +1 -0
  707. package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js +344 -0
  708. package/build/dist/Server/Utils/SessionReplay/SessionReplayReadService.js.map +1 -1
  709. package/build/dist/Server/Utils/Telemetry.js +1 -1
  710. package/build/dist/Server/Utils/Telemetry.js.map +1 -1
  711. package/build/dist/Server/Utils/VendorAssets.js +2 -0
  712. package/build/dist/Server/Utils/VendorAssets.js.map +1 -1
  713. package/build/dist/Types/Dashboard/DashboardTemplates.js +425 -0
  714. package/build/dist/Types/Dashboard/DashboardTemplates.js.map +1 -1
  715. package/build/dist/Types/OnCallDutyPolicy/Layer.js +11 -0
  716. package/build/dist/Types/OnCallDutyPolicy/Layer.js.map +1 -1
  717. package/build/dist/Types/Rules/RuleCriteria.js +18 -0
  718. package/build/dist/Types/Rules/RuleCriteria.js.map +1 -0
  719. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js +435 -0
  720. package/build/dist/Types/Rules/RuleCriteriaFieldRegistry.js.map +1 -0
  721. package/build/dist/Types/Rum/SessionReplay.js +64 -0
  722. package/build/dist/Types/Rum/SessionReplay.js.map +1 -1
  723. package/build/dist/Types/Rum/SessionReplayApi.js.map +1 -1
  724. package/build/dist/UI/Components/Alerts/Alert.js +63 -41
  725. package/build/dist/UI/Components/Alerts/Alert.js.map +1 -1
  726. package/build/dist/UI/Components/Button/Button.js +3 -1
  727. package/build/dist/UI/Components/Button/Button.js.map +1 -1
  728. package/build/dist/UI/Components/Dropdown/Dropdown.js +1 -1
  729. package/build/dist/UI/Components/Dropdown/Dropdown.js.map +1 -1
  730. package/build/dist/UI/Components/Feed/Feed.js +4 -1
  731. package/build/dist/UI/Components/Feed/Feed.js.map +1 -1
  732. package/build/dist/UI/Components/Feed/useFeedItems.js +137 -0
  733. package/build/dist/UI/Components/Feed/useFeedItems.js.map +1 -0
  734. package/build/dist/UI/Components/Forms/BasicForm.js +38 -19
  735. package/build/dist/UI/Components/Forms/BasicForm.js.map +1 -1
  736. package/build/dist/UI/Components/Forms/ModelForm.js +65 -1
  737. package/build/dist/UI/Components/Forms/ModelForm.js.map +1 -1
  738. package/build/dist/UI/Components/Icon/Icon.js +3 -35
  739. package/build/dist/UI/Components/Icon/Icon.js.map +1 -1
  740. package/build/dist/UI/Components/ModelTable/ModelTable.js +12 -1
  741. package/build/dist/UI/Components/ModelTable/ModelTable.js.map +1 -1
  742. package/build/dist/UI/Components/Navbar/NavBar.js +1 -0
  743. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  744. package/build/dist/UI/Components/RuleCriteria/RuleCriteriaBuilder.js +383 -0
  745. package/build/dist/UI/Components/RuleCriteria/RuleCriteriaBuilder.js.map +1 -0
  746. package/build/dist/UI/Components/RuleCriteria/RuleCriteriaModelForm.js +124 -0
  747. package/build/dist/UI/Components/RuleCriteria/RuleCriteriaModelForm.js.map +1 -0
  748. package/build/dist/UI/Components/RuleCriteria/RuleCriteriaModelTable.js +126 -0
  749. package/build/dist/UI/Components/RuleCriteria/RuleCriteriaModelTable.js.map +1 -0
  750. package/build/dist/UI/Components/RuleCriteria/RuleCriteriaSummary.js +63 -0
  751. package/build/dist/UI/Components/RuleCriteria/RuleCriteriaSummary.js.map +1 -0
  752. package/build/dist/UI/Components/Table/Table.js +1 -1
  753. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  754. package/build/dist/UI/Components/Table/TableBody.js +4 -2
  755. package/build/dist/UI/Components/Table/TableBody.js.map +1 -1
  756. package/build/dist/UI/Components/Table/TableRow.js +3 -2
  757. package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
  758. package/build/dist/UI/Components/Telemetry/TelemetryRetentionConfigForm.js +14 -2
  759. package/build/dist/UI/Components/Telemetry/TelemetryRetentionConfigForm.js.map +1 -1
  760. package/build/dist/UI/Utils/LabelRuleImportExport.js +81 -5
  761. package/build/dist/UI/Utils/LabelRuleImportExport.js.map +1 -1
  762. package/build/dist/UI/Utils/Navigation.js.map +1 -1
  763. package/build/dist/Utils/Faker.js +76 -6
  764. package/build/dist/Utils/Faker.js.map +1 -1
  765. package/build/dist/Utils/LabelRuleImportExport.js +157 -3
  766. package/build/dist/Utils/LabelRuleImportExport.js.map +1 -1
  767. package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js +81 -5
  768. package/build/dist/Utils/NetworkDiscovery/AutoImportRuleMatcher.js.map +1 -1
  769. package/build/dist/Utils/NetworkSite/CidrMatchUtil.js +77 -0
  770. package/build/dist/Utils/NetworkSite/CidrMatchUtil.js.map +1 -1
  771. package/build/dist/Utils/NetworkSite/TypeHierarchyUtil.js +109 -2
  772. package/build/dist/Utils/NetworkSite/TypeHierarchyUtil.js.map +1 -1
  773. package/build/dist/Utils/Rules/RuleCriteriaMatcher.js +526 -0
  774. package/build/dist/Utils/Rules/RuleCriteriaMatcher.js.map +1 -0
  775. package/build/dist/Utils/Rum/SessionIdentity.js +13 -1
  776. package/build/dist/Utils/Rum/SessionIdentity.js.map +1 -1
  777. package/build/dist/Utils/Slo/SloBurnRateRuleState.js +28 -15
  778. package/build/dist/Utils/Slo/SloBurnRateRuleState.js.map +1 -1
  779. package/build/dist/Utils/Telemetry/OriginAllowList.js +61 -0
  780. package/build/dist/Utils/Telemetry/OriginAllowList.js.map +1 -1
  781. package/package.json +20 -20
@@ -0,0 +1,383 @@
1
+ import { RULE_CRITERIA_SCHEMA_VERSION, RuleCriteriaOperator, } from "../../../Types/Rules/RuleCriteria";
2
+ import FilterCondition from "../../../Types/Filter/FilterCondition";
3
+ import IconProp from "../../../Types/Icon/IconProp";
4
+ import React, { useEffect } from "react";
5
+ import Button, { ButtonSize, ButtonStyleType } from "../Button/Button";
6
+ import Dropdown from "../Dropdown/Dropdown";
7
+ import EntityDropdown from "../EntityDropdown/EntityDropdown";
8
+ import FormFieldSchemaType from "../Forms/Types/FormFieldSchemaType";
9
+ import Input, { InputType } from "../Input/Input";
10
+ const ARRAY_OPERATORS = [
11
+ RuleCriteriaOperator.HasAnyOf,
12
+ RuleCriteriaOperator.HasAllOf,
13
+ RuleCriteriaOperator.HasNoneOf,
14
+ ];
15
+ const TEXT_OPERATORS = [
16
+ RuleCriteriaOperator.Equals,
17
+ RuleCriteriaOperator.NotEquals,
18
+ RuleCriteriaOperator.Contains,
19
+ RuleCriteriaOperator.DoesNotContain,
20
+ RuleCriteriaOperator.StartsWith,
21
+ RuleCriteriaOperator.EndsWith,
22
+ RuleCriteriaOperator.MatchesPattern,
23
+ RuleCriteriaOperator.DoesNotMatchPattern,
24
+ ];
25
+ const SCALAR_OPERATORS = [
26
+ RuleCriteriaOperator.Equals,
27
+ RuleCriteriaOperator.NotEquals,
28
+ ];
29
+ const TEXT_FIELD_TYPES = [
30
+ FormFieldSchemaType.Text,
31
+ FormFieldSchemaType.LongText,
32
+ FormFieldSchemaType.Name,
33
+ FormFieldSchemaType.Hostname,
34
+ FormFieldSchemaType.Domain,
35
+ FormFieldSchemaType.Email,
36
+ FormFieldSchemaType.URL,
37
+ FormFieldSchemaType.Route,
38
+ ];
39
+ const NUMBER_FIELD_TYPES = [
40
+ FormFieldSchemaType.Number,
41
+ FormFieldSchemaType.PositiveNumber,
42
+ FormFieldSchemaType.Port,
43
+ ];
44
+ export const RULE_CRITERIA_OPERATOR_LABELS = {
45
+ [RuleCriteriaOperator.Equals]: "Equals",
46
+ [RuleCriteriaOperator.NotEquals]: "Does not equal",
47
+ [RuleCriteriaOperator.Contains]: "Contains",
48
+ [RuleCriteriaOperator.DoesNotContain]: "Does not contain",
49
+ [RuleCriteriaOperator.StartsWith]: "Starts with",
50
+ [RuleCriteriaOperator.EndsWith]: "Ends with",
51
+ [RuleCriteriaOperator.MatchesPattern]: "Matches pattern",
52
+ [RuleCriteriaOperator.DoesNotMatchPattern]: "Does not match pattern",
53
+ [RuleCriteriaOperator.HasAnyOf]: "Has any of",
54
+ [RuleCriteriaOperator.HasAllOf]: "Has all of",
55
+ [RuleCriteriaOperator.HasNoneOf]: "Has none of",
56
+ };
57
+ export function getRuleCriteriaFieldName(field) {
58
+ if (field.overrideFieldKey) {
59
+ return field.overrideFieldKey;
60
+ }
61
+ const names = Object.keys(field.field || {});
62
+ return names[0] || null;
63
+ }
64
+ function titleFromFieldName(fieldName) {
65
+ return fieldName
66
+ .replace(/([a-z0-9])([A-Z])/g, "$1 $2")
67
+ .replace(/[_-]+/g, " ")
68
+ .replace(/^./, (character) => {
69
+ return character.toUpperCase();
70
+ });
71
+ }
72
+ function isTextField(field) {
73
+ return TEXT_FIELD_TYPES.includes(field.fieldType || FormFieldSchemaType.Text);
74
+ }
75
+ function isNumberField(field) {
76
+ return NUMBER_FIELD_TYPES.includes(field.fieldType || FormFieldSchemaType.Text);
77
+ }
78
+ function isBooleanField(field) {
79
+ return (field.fieldType === FormFieldSchemaType.Toggle ||
80
+ field.fieldType === FormFieldSchemaType.Checkbox);
81
+ }
82
+ function isArrayOperator(operator) {
83
+ return ARRAY_OPERATORS.includes(operator);
84
+ }
85
+ export function getRuleCriteriaOperatorsForField(field) {
86
+ const fieldName = getRuleCriteriaFieldName(field) || "";
87
+ if (fieldName === "ipMatchTarget" ||
88
+ fieldName === "sysObjectIdPattern" ||
89
+ fieldName === "subnetCidr") {
90
+ return [
91
+ RuleCriteriaOperator.MatchesPattern,
92
+ RuleCriteriaOperator.DoesNotMatchPattern,
93
+ ];
94
+ }
95
+ if (field.fieldType === FormFieldSchemaType.MultiSelectDropdown) {
96
+ return ARRAY_OPERATORS;
97
+ }
98
+ if (isTextField(field)) {
99
+ return TEXT_OPERATORS;
100
+ }
101
+ return SCALAR_OPERATORS;
102
+ }
103
+ export function getDefaultRuleCriteriaOperator(field) {
104
+ const fieldName = getRuleCriteriaFieldName(field) || "";
105
+ if (field.fieldType === FormFieldSchemaType.MultiSelectDropdown) {
106
+ return RuleCriteriaOperator.HasAnyOf;
107
+ }
108
+ if (isTextField(field) && fieldName.toLocaleLowerCase().includes("pattern")) {
109
+ return RuleCriteriaOperator.MatchesPattern;
110
+ }
111
+ return getRuleCriteriaOperatorsForField(field)[0];
112
+ }
113
+ function normalizeScalarValue(value) {
114
+ if (typeof value === "string" ||
115
+ typeof value === "number" ||
116
+ typeof value === "boolean") {
117
+ return value;
118
+ }
119
+ if (value && typeof value === "object") {
120
+ const objectValue = value;
121
+ for (const key of ["value", "_id", "id"]) {
122
+ const candidate = objectValue[key];
123
+ if (typeof candidate === "string" ||
124
+ typeof candidate === "number" ||
125
+ typeof candidate === "boolean") {
126
+ return candidate;
127
+ }
128
+ if (candidate &&
129
+ typeof candidate === "object" &&
130
+ typeof candidate.toString ===
131
+ "function") {
132
+ const stringValue = candidate.toString();
133
+ if (stringValue !== "[object Object]") {
134
+ return stringValue;
135
+ }
136
+ }
137
+ }
138
+ }
139
+ return "";
140
+ }
141
+ function normalizeValue(value, operator) {
142
+ if (isArrayOperator(operator)) {
143
+ const values = Array.isArray(value) ? value : [value];
144
+ return values
145
+ .map((item) => {
146
+ return normalizeScalarValue(item).toString();
147
+ })
148
+ .filter((item) => {
149
+ return item.length > 0;
150
+ });
151
+ }
152
+ return normalizeScalarValue(value);
153
+ }
154
+ function hasLegacyValue(value) {
155
+ if (value === undefined || value === null) {
156
+ return false;
157
+ }
158
+ if (Array.isArray(value)) {
159
+ return value.length > 0;
160
+ }
161
+ if (typeof value === "string") {
162
+ return value.trim().length > 0;
163
+ }
164
+ return true;
165
+ }
166
+ export function convertLegacyValuesToRuleCriteria(data) {
167
+ var _a;
168
+ const filters = [];
169
+ for (const field of data.fields) {
170
+ const fieldName = getRuleCriteriaFieldName(field);
171
+ if (!fieldName) {
172
+ continue;
173
+ }
174
+ const legacyValue = (_a = data.values) === null || _a === void 0 ? void 0 : _a[fieldName];
175
+ if (!hasLegacyValue(legacyValue)) {
176
+ continue;
177
+ }
178
+ const operator = getDefaultRuleCriteriaOperator(field);
179
+ filters.push({
180
+ field: fieldName,
181
+ operator: operator,
182
+ value: normalizeValue(legacyValue, operator),
183
+ });
184
+ }
185
+ return {
186
+ schemaVersion: RULE_CRITERIA_SCHEMA_VERSION,
187
+ filterCondition: FilterCondition.All,
188
+ filters: filters,
189
+ };
190
+ }
191
+ function emptyValueForField(field, operator) {
192
+ if (isArrayOperator(operator)) {
193
+ return [];
194
+ }
195
+ if (isBooleanField(field)) {
196
+ return true;
197
+ }
198
+ if (isNumberField(field)) {
199
+ return 0;
200
+ }
201
+ return "";
202
+ }
203
+ function flattenOptions(options) {
204
+ return options.flatMap((option) => {
205
+ if ("options" in option) {
206
+ return option.options;
207
+ }
208
+ return [option];
209
+ });
210
+ }
211
+ function selectedDropdownValue(options, value) {
212
+ const values = Array.isArray(value)
213
+ ? value
214
+ : [value];
215
+ const selected = flattenOptions(options).filter((option) => {
216
+ return values.includes(option.value);
217
+ });
218
+ if (Array.isArray(value)) {
219
+ return selected;
220
+ }
221
+ return selected[0];
222
+ }
223
+ const RuleCriteriaBuilder = (props) => {
224
+ const availableFields = props.fields.filter((field) => {
225
+ return (!field.showIf ||
226
+ field.showIf((props.legacyValues || {})));
227
+ });
228
+ const legacyCriteria = convertLegacyValuesToRuleCriteria({
229
+ fields: availableFields,
230
+ values: props.legacyValues,
231
+ });
232
+ const criteria = props.value || legacyCriteria;
233
+ useEffect(() => {
234
+ if (!props.value) {
235
+ props.onChange(legacyCriteria);
236
+ }
237
+ }, [props.value, JSON.stringify(legacyCriteria)]);
238
+ const updateCriteria = (next) => {
239
+ props.onChange({
240
+ schemaVersion: RULE_CRITERIA_SCHEMA_VERSION,
241
+ filterCondition: next.filterCondition || criteria.filterCondition || FilterCondition.All,
242
+ filters: next.filters || criteria.filters || [],
243
+ });
244
+ };
245
+ const fieldOptions = availableFields
246
+ .map((field) => {
247
+ const fieldName = getRuleCriteriaFieldName(field);
248
+ if (!fieldName) {
249
+ return null;
250
+ }
251
+ return {
252
+ value: fieldName,
253
+ label: field.title || titleFromFieldName(fieldName),
254
+ };
255
+ })
256
+ .filter((option) => {
257
+ return option !== null;
258
+ });
259
+ const getField = (fieldName) => {
260
+ return availableFields.find((field) => {
261
+ return getRuleCriteriaFieldName(field) === fieldName;
262
+ });
263
+ };
264
+ const changeFilter = (index, filter) => {
265
+ const filters = [...criteria.filters];
266
+ filters[index] = filter;
267
+ updateCriteria({ filters: filters });
268
+ };
269
+ const renderValue = (filter, field, index) => {
270
+ const isMultiSelect = isArrayOperator(filter.operator);
271
+ const commonProps = {
272
+ id: `rule-criteria-value-${index}`,
273
+ dataTestId: `rule-criteria-value-${index}`,
274
+ ariaLabel: `Value for condition ${index + 1}`,
275
+ };
276
+ if (field.dropdownModal) {
277
+ return (React.createElement(EntityDropdown, Object.assign({}, commonProps, { disabled: props.disabled, options: field.dropdownOptions, modelType: field.dropdownModal.type, labelField: field.dropdownModal.labelField, valueField: field.dropdownModal.valueField, isMultiSelect: isMultiSelect, value: filter.value, placeholder: field.placeholder || "Select a value", onChange: (value) => {
278
+ changeFilter(index, Object.assign(Object.assign({}, filter), { value: normalizeValue(value, filter.operator) }));
279
+ } })));
280
+ }
281
+ if (field.dropdownOptions || isBooleanField(field)) {
282
+ const options = field.dropdownOptions || [
283
+ { label: "True", value: true },
284
+ { label: "False", value: false },
285
+ ];
286
+ return (React.createElement(Dropdown, Object.assign({}, commonProps, { disabled: props.disabled, options: options, value: selectedDropdownValue(options, filter.value), isMultiSelect: isMultiSelect, placeholder: field.placeholder || "Select a value", onChange: (value) => {
287
+ changeFilter(index, Object.assign(Object.assign({}, filter), { value: normalizeValue(value, filter.operator) }));
288
+ } })));
289
+ }
290
+ return (React.createElement(Input, Object.assign({}, commonProps, { disabled: props.disabled, type: isNumberField(field) ? InputType.NUMBER : InputType.TEXT, value: filter.value.toString(), placeholder: field.placeholder || "Enter a value", onChange: (value) => {
291
+ changeFilter(index, Object.assign(Object.assign({}, filter), { value: isNumberField(field) && value.length > 0 ? Number(value) : value }));
292
+ } })));
293
+ };
294
+ return (React.createElement("div", { "data-testid": "rule-criteria-builder", className: "space-y-4" },
295
+ React.createElement("fieldset", null,
296
+ React.createElement("legend", { className: "text-sm font-medium text-gray-700" }, "How should conditions be combined?"),
297
+ React.createElement("div", { className: "mt-2 flex flex-wrap gap-4" },
298
+ React.createElement("label", { className: "inline-flex items-center gap-2 text-sm text-gray-700" },
299
+ React.createElement("input", { type: "radio", name: "rule-criteria-filter-condition", value: FilterCondition.All, checked: criteria.filterCondition === FilterCondition.All, disabled: props.disabled, "data-testid": "rule-criteria-match-all", onChange: () => {
300
+ updateCriteria({ filterCondition: FilterCondition.All });
301
+ } }),
302
+ "Match all"),
303
+ React.createElement("label", { className: "inline-flex items-center gap-2 text-sm text-gray-700" },
304
+ React.createElement("input", { type: "radio", name: "rule-criteria-filter-condition", value: FilterCondition.Any, checked: criteria.filterCondition === FilterCondition.Any, disabled: props.disabled, "data-testid": "rule-criteria-match-any", onChange: () => {
305
+ updateCriteria({ filterCondition: FilterCondition.Any });
306
+ } }),
307
+ "Match any"))),
308
+ criteria.filters.length === 0 && (React.createElement("p", { className: "rounded-md bg-gray-50 p-3 text-sm text-gray-600", "data-testid": "rule-criteria-empty" }, "No conditions have been added. Add a condition to control which resources this rule matches.")),
309
+ criteria.filters.map((filter, index) => {
310
+ const field = getField(filter.field);
311
+ const operatorOptions = (field ? getRuleCriteriaOperatorsForField(field) : SCALAR_OPERATORS).map((operator) => {
312
+ return {
313
+ value: operator,
314
+ label: RULE_CRITERIA_OPERATOR_LABELS[operator],
315
+ };
316
+ });
317
+ return (React.createElement("div", { key: `${filter.field}-${index}`, className: "rounded-md border border-gray-200 bg-gray-50 p-4", "data-testid": `rule-criteria-row-${index}` },
318
+ React.createElement("div", { className: "grid grid-cols-1 gap-3 lg:grid-cols-3" },
319
+ React.createElement("div", null,
320
+ React.createElement("label", { htmlFor: `rule-criteria-field-${index}`, className: "text-sm font-medium text-gray-700" }, "Criteria"),
321
+ React.createElement(Dropdown, { id: `rule-criteria-field-${index}`, ariaLabel: `Criteria for condition ${index + 1}`, dataTestId: `rule-criteria-field-${index}`, disabled: props.disabled, options: fieldOptions, value: fieldOptions.find((option) => {
322
+ return option.value === filter.field;
323
+ }), onChange: (value) => {
324
+ const fieldName = (value === null || value === void 0 ? void 0 : value.toString()) || "";
325
+ const nextField = getField(fieldName);
326
+ if (!nextField) {
327
+ return;
328
+ }
329
+ const operator = getDefaultRuleCriteriaOperator(nextField);
330
+ changeFilter(index, {
331
+ field: fieldName,
332
+ operator: operator,
333
+ value: emptyValueForField(nextField, operator),
334
+ });
335
+ } })),
336
+ React.createElement("div", null,
337
+ React.createElement("label", { htmlFor: `rule-criteria-operator-${index}`, className: "text-sm font-medium text-gray-700" }, "Operator"),
338
+ React.createElement(Dropdown, { id: `rule-criteria-operator-${index}`, ariaLabel: `Operator for condition ${index + 1}`, dataTestId: `rule-criteria-operator-${index}`, disabled: props.disabled, options: operatorOptions, value: operatorOptions.find((option) => {
339
+ return option.value === filter.operator;
340
+ }), onChange: (value) => {
341
+ if (!field || !value) {
342
+ return;
343
+ }
344
+ const operator = value.toString();
345
+ changeFilter(index, Object.assign(Object.assign({}, filter), { operator: operator, value: emptyValueForField(field, operator) }));
346
+ } })),
347
+ React.createElement("div", null,
348
+ React.createElement("label", { htmlFor: `rule-criteria-value-${index}`, className: "text-sm font-medium text-gray-700" }, "Value"),
349
+ field ? (renderValue(filter, field, index)) : (React.createElement("p", { className: "mt-2 text-sm text-red-600" }, "This criteria field is no longer available.")))),
350
+ React.createElement("div", { className: "mt-3 flex justify-end" },
351
+ React.createElement(Button, { title: "Delete", ariaLabel: `Delete condition ${index + 1}`, dataTestId: `rule-criteria-delete-${index}`, icon: IconProp.Trash, buttonSize: ButtonSize.Small, buttonStyle: ButtonStyleType.DANGER_OUTLINE, disabled: props.disabled, onClick: () => {
352
+ updateCriteria({
353
+ filters: criteria.filters.filter((_item, itemIndex) => {
354
+ return itemIndex !== index;
355
+ }),
356
+ });
357
+ } }))));
358
+ }),
359
+ props.error && (React.createElement("p", { className: "text-sm text-red-600", "data-testid": "rule-criteria-error" }, props.error)),
360
+ React.createElement(Button, { title: "Add Condition", ariaLabel: "Add condition", dataTestId: "rule-criteria-add", icon: IconProp.Add, buttonSize: ButtonSize.Small, buttonStyle: ButtonStyleType.OUTLINE, disabled: props.disabled || availableFields.length === 0, onClick: () => {
361
+ const field = availableFields[0];
362
+ if (!field) {
363
+ return;
364
+ }
365
+ const fieldName = getRuleCriteriaFieldName(field);
366
+ if (!fieldName) {
367
+ return;
368
+ }
369
+ const operator = getDefaultRuleCriteriaOperator(field);
370
+ updateCriteria({
371
+ filters: [
372
+ ...criteria.filters,
373
+ {
374
+ field: fieldName,
375
+ operator: operator,
376
+ value: emptyValueForField(field, operator),
377
+ },
378
+ ],
379
+ });
380
+ } })));
381
+ };
382
+ export default RuleCriteriaBuilder;
383
+ //# sourceMappingURL=RuleCriteriaBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuleCriteriaBuilder.js","sourceRoot":"","sources":["../../../../../UI/Components/RuleCriteria/RuleCriteriaBuilder.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,124 @@
1
+ import RuleBaseModel from "../../../Models/DatabaseModels/DatabaseBaseModel/RuleBaseModel";
2
+ import RelationOnlyRuleBaseModel from "../../../Models/DatabaseModels/DatabaseBaseModel/RelationOnlyRuleBaseModel";
3
+ import TableColumnType from "../../../Types/Database/TableColumnType";
4
+ import { RULE_CRITERIA_LEGACY_NEVER_MATCH_PATTERN, } from "../../../Types/Rules/RuleCriteria";
5
+ import { getRuleCriteriaValidationError } from "../../../Utils/Rules/RuleCriteriaMatcher";
6
+ import React from "react";
7
+ import FormFieldSchemaType from "../Forms/Types/FormFieldSchemaType";
8
+ import RuleCriteriaBuilder, { getRuleCriteriaFieldName, } from "./RuleCriteriaBuilder";
9
+ export const MATCH_CRITERIA_STEP_ID = "match-criteria";
10
+ export const RULE_CRITERIA_FIELD_NAME = "criteria";
11
+ export function getLegacyRuleCriteriaFields(fields) {
12
+ return fields.filter((field) => {
13
+ return (field.stepId === MATCH_CRITERIA_STEP_ID &&
14
+ getRuleCriteriaFieldName(field) !== RULE_CRITERIA_FIELD_NAME);
15
+ });
16
+ }
17
+ export function shouldUseRuleCriteriaBuilder(model, fields) {
18
+ return (model instanceof RuleBaseModel &&
19
+ getLegacyRuleCriteriaFields(fields).length > 0);
20
+ }
21
+ export function addRuleCriteriaToSelect(data) {
22
+ if (!shouldUseRuleCriteriaBuilder(data.model, data.fields)) {
23
+ return data.select;
24
+ }
25
+ return Object.assign(Object.assign({}, data.select), { [RULE_CRITERIA_FIELD_NAME]: true });
26
+ }
27
+ /**
28
+ * Keep requests fail-closed when a new dashboard is briefly routed to an old
29
+ * API pod during a rolling deployment. The old API drops the unknown criteria
30
+ * column, but it still understands these legacy fields.
31
+ */
32
+ export function applyRuleCriteriaLegacySafetyShadow(data) {
33
+ var _a;
34
+ if (!shouldUseRuleCriteriaBuilder(data.model, data.fields)) {
35
+ return;
36
+ }
37
+ const criteria = data.values[RULE_CRITERIA_FIELD_NAME];
38
+ if (typeof criteria !== "object" ||
39
+ criteria === null ||
40
+ Array.isArray(criteria)) {
41
+ return;
42
+ }
43
+ const relationOnlyRule = data.model instanceof RelationOnlyRuleBaseModel;
44
+ let safetyPatternField;
45
+ for (const field of getLegacyRuleCriteriaFields(data.fields)) {
46
+ const fieldName = getRuleCriteriaFieldName(field);
47
+ if (!fieldName) {
48
+ continue;
49
+ }
50
+ const fieldType = (_a = data.model.getTableColumnMetadata(fieldName)) === null || _a === void 0 ? void 0 : _a.type;
51
+ data.values[fieldName] =
52
+ fieldType === TableColumnType.EntityArray ? [] : null;
53
+ if (!relationOnlyRule &&
54
+ !safetyPatternField &&
55
+ fieldType !== TableColumnType.EntityArray &&
56
+ fieldName.match(/(pattern|regex)/i) !== null) {
57
+ safetyPatternField = fieldName;
58
+ }
59
+ }
60
+ if (relationOnlyRule) {
61
+ const logicalEnabled = typeof data.values["isEnabled"] === "boolean"
62
+ ? data.values["isEnabled"]
63
+ : true;
64
+ data.values[RULE_CRITERIA_FIELD_NAME] = Object.assign(Object.assign({}, criteria), { isEnabled: logicalEnabled });
65
+ data.values["isEnabled"] = false;
66
+ return;
67
+ }
68
+ if (!safetyPatternField) {
69
+ throw new Error(`A legacy safety pattern is required for ${data.model.tableName}.`);
70
+ }
71
+ data.values[safetyPatternField] = RULE_CRITERIA_LEGACY_NEVER_MATCH_PATTERN;
72
+ }
73
+ export function replaceLegacyRuleCriteriaFields(model, fields) {
74
+ if (!shouldUseRuleCriteriaBuilder(model, fields)) {
75
+ return fields;
76
+ }
77
+ const legacyFields = getLegacyRuleCriteriaFields(fields);
78
+ const fieldsToReplace = new Set([
79
+ ...legacyFields,
80
+ ...fields.filter((field) => {
81
+ return getRuleCriteriaFieldName(field) === RULE_CRITERIA_FIELD_NAME;
82
+ }),
83
+ ]);
84
+ const firstFieldIndex = fields.findIndex((field) => {
85
+ return fieldsToReplace.has(field);
86
+ });
87
+ const criteriaField = {
88
+ field: {
89
+ [RULE_CRITERIA_FIELD_NAME]: true,
90
+ },
91
+ title: "Conditions",
92
+ description: "Add one or more conditions and choose whether every condition or any condition must match.",
93
+ stepId: MATCH_CRITERIA_STEP_ID,
94
+ fieldType: FormFieldSchemaType.CustomComponent,
95
+ required: false,
96
+ spanFullRow: true,
97
+ dataTestId: "rule-criteria-field",
98
+ customValidation: (values) => {
99
+ const criteria = values.criteria;
100
+ if (criteria === undefined || criteria === null) {
101
+ return null;
102
+ }
103
+ return getRuleCriteriaValidationError(criteria);
104
+ },
105
+ getCustomElement: (values, customElementProps) => {
106
+ return (React.createElement(RuleCriteriaBuilder, { fields: legacyFields, legacyValues: values, value: values.criteria, error: customElementProps.error, onChange: (criteria) => {
107
+ var _a;
108
+ (_a = customElementProps.onChange) === null || _a === void 0 ? void 0 : _a.call(customElementProps, criteria);
109
+ } }));
110
+ },
111
+ };
112
+ const result = [];
113
+ for (let index = 0; index < fields.length; index++) {
114
+ if (index === firstFieldIndex) {
115
+ result.push(criteriaField);
116
+ }
117
+ const field = fields[index];
118
+ if (!fieldsToReplace.has(field)) {
119
+ result.push(field);
120
+ }
121
+ }
122
+ return result;
123
+ }
124
+ //# sourceMappingURL=RuleCriteriaModelForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"RuleCriteriaModelForm.js","sourceRoot":"","sources":["../../../../../UI/Components/RuleCriteria/RuleCriteriaModelForm.tsx"],"names":[],"mappings":"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"}