@oneuptime/common 11.7.2 → 11.7.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 (414) hide show
  1. package/Models/AnalyticsModels/KubernetesCostAllocation.ts +103 -0
  2. package/Models/DatabaseModels/AlertEpisodeStateTimeline.ts +1 -0
  3. package/Models/DatabaseModels/AlertStateTimeline.ts +1 -0
  4. package/Models/DatabaseModels/IncidentEpisodeStateTimeline.ts +1 -0
  5. package/Models/DatabaseModels/IncidentStateTimeline.ts +1 -0
  6. package/Models/DatabaseModels/Index.ts +5 -0
  7. package/Models/DatabaseModels/LogDropFilter.ts +89 -0
  8. package/Models/DatabaseModels/NetworkDeviceDiscoveryScan.ts +13 -3
  9. package/Models/DatabaseModels/RecommendationDismissal.ts +463 -0
  10. package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +1 -0
  11. package/Models/DatabaseModels/StatusPageGroup.ts +95 -0
  12. package/Models/DatabaseModels/TableView.ts +40 -0
  13. package/Models/DatabaseModels/TraceDropFilter.ts +89 -0
  14. package/Models/DatabaseModels/WorkflowVariable.ts +5 -1
  15. package/Server/API/AlertAPI.ts +32 -17
  16. package/Server/API/BaseAPI.ts +31 -2
  17. package/Server/API/BaseAnalyticsAPI.ts +36 -2
  18. package/Server/API/CommonAPI.ts +57 -0
  19. package/Server/API/IncidentAPI.ts +60 -33
  20. package/Server/API/IncidentEpisodeAPI.ts +31 -16
  21. package/Server/API/MonitorAPI.ts +30 -0
  22. package/Server/API/MonitorTemplateAPI.ts +8 -0
  23. package/Server/API/ProbeAPI.ts +196 -15
  24. package/Server/API/ProjectAPI.ts +79 -1
  25. package/Server/API/ScheduledMaintenanceAPI.ts +33 -18
  26. package/Server/API/StatusPageAPI.ts +74 -37
  27. package/Server/API/WorkspaceNotificationRuleAPI.ts +34 -4
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.ts +13 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1785320000000-RepairCrossProjectIncidentReferences.ts +527 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1785329453269-AddParentGroupToStatusPageGroup.ts +31 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1785397674289-AddRecommendationDismissalTable.ts +55 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/1785405581596-AddDroppedCountersToDropFilters.ts +53 -0
  33. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
  34. package/Server/Services/AlertEpisodeService.ts +47 -0
  35. package/Server/Services/AlertService.ts +125 -0
  36. package/Server/Services/BillingService.ts +98 -0
  37. package/Server/Services/DatabaseService.ts +184 -20
  38. package/Server/Services/IncidentEpisodeService.ts +47 -0
  39. package/Server/Services/IncidentService.ts +123 -0
  40. package/Server/Services/IncidentTemplateService.ts +123 -1
  41. package/Server/Services/Index.ts +2 -0
  42. package/Server/Services/LogDropFilterService.ts +133 -0
  43. package/Server/Services/MonitorProbeService.ts +94 -4
  44. package/Server/Services/MonitorService.ts +48 -43
  45. package/Server/Services/NetworkDeviceDiscoveryScanService.ts +70 -0
  46. package/Server/Services/ProbeService.ts +66 -0
  47. package/Server/Services/ProjectService.ts +131 -7
  48. package/Server/Services/RecommendationDismissalService.ts +52 -0
  49. package/Server/Services/RunbookAgentJobService.ts +68 -7
  50. package/Server/Services/ScheduledMaintenanceService.ts +103 -0
  51. package/Server/Services/ScheduledMaintenanceTemplateService.ts +90 -0
  52. package/Server/Services/StatusPageGroupService.ts +186 -0
  53. package/Server/Services/TraceDropFilterService.ts +133 -0
  54. package/Server/Types/Workflow/Components/API/Delete.ts +12 -0
  55. package/Server/Types/Workflow/Components/API/Get.ts +12 -0
  56. package/Server/Types/Workflow/Components/API/Patch.ts +12 -0
  57. package/Server/Types/Workflow/Components/API/Post.ts +12 -0
  58. package/Server/Types/Workflow/Components/API/Put.ts +13 -0
  59. package/Server/Utils/Database/ProjectScopedReferenceValidator.ts +212 -0
  60. package/Server/Utils/DropFilterValidation.ts +127 -0
  61. package/Server/Utils/Errors.ts +5 -0
  62. package/Server/Utils/Monitor/MonitorAlert.ts +28 -1
  63. package/Server/Utils/Monitor/MonitorIncident.ts +31 -2
  64. package/Server/Utils/Telemetry/AppMetrics.ts +31 -0
  65. package/Tests/Models/AnalyticsModels/KubernetesCostAllocation.test.ts +16 -0
  66. package/Tests/Models/DatabaseModels/MonitorProbeColumnAccessControl.test.ts +196 -0
  67. package/Tests/Models/RecommendationDismissalModel.test.ts +269 -0
  68. package/Tests/Server/API/BaseAPIUpdatePayloadValidation.test.ts +320 -0
  69. package/Tests/Server/API/BaseAnalyticsAPIUpdatePayloadValidation.test.ts +293 -0
  70. package/Tests/Server/API/CommonAPIAuthGuard.test.ts +164 -0
  71. package/Tests/Server/API/ProbeAPI.test.ts +422 -53
  72. package/Tests/Server/API/ProjectAPI.test.ts +180 -0
  73. package/Tests/Server/API/ProjectAPIExtendTrialBillingDisabled.test.ts +138 -0
  74. package/Tests/Server/API/ProjectScopedCustomRouteAuth.test.ts +458 -0
  75. package/Tests/Server/Infrastructure/ContainerBootConfiguration.test.ts +359 -0
  76. package/Tests/Server/Infrastructure/ProcessSignalDelivery.test.ts +427 -0
  77. package/Tests/Server/Services/BillingServiceExtendTrial.test.ts +439 -0
  78. package/Tests/Server/Services/CrossProjectReferenceWriteGuard.test.ts +810 -0
  79. package/Tests/Server/Services/DatabaseServiceAtomicAddToColumns.test.ts +269 -0
  80. package/Tests/Server/Services/DatabaseServiceEmptyUpdate.test.ts +277 -0
  81. package/Tests/Server/Services/DatabaseServiceSortColumnSelect.test.ts +201 -0
  82. package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +81 -23
  83. package/Tests/Server/Services/DropFilterSaveValidation.test.ts +398 -0
  84. package/Tests/Server/Services/MonitorProbeDeleteHooks.test.ts +280 -0
  85. package/Tests/Server/Services/MonitorProbeServiceProbeTenancy.test.ts +304 -0
  86. package/Tests/Server/Services/NetworkDeviceDiscoveryScanService.test.ts +262 -0
  87. package/Tests/Server/Services/ProjectServiceExtendTrial.test.ts +614 -0
  88. package/Tests/Server/Services/RecommendationDismissalService.test.ts +306 -0
  89. package/Tests/Server/Services/RepairCrossProjectIncidentReferencesMigration.test.ts +528 -0
  90. package/Tests/Server/Services/StatusPageGroupNesting.test.ts +395 -0
  91. package/Tests/Server/TestingUtils/Services/BillingServiceHelper.ts +26 -21
  92. package/Tests/Server/Types/Database/Permissions/WorkflowVariableColumnPermission.test.ts +227 -0
  93. package/Tests/Server/Types/Workflow/Components/ApiComponentErrorPort.test.ts +285 -0
  94. package/Tests/Server/Utils/Database/ProjectScopedReferenceValidator.test.ts +463 -0
  95. package/Tests/Server/Utils/DropFilterValidation.test.ts +269 -0
  96. package/Tests/Server/Utils/Telemetry/SpanUtil.test.ts +94 -0
  97. package/Tests/Types/DateUserTimezone.test.ts +52 -0
  98. package/Tests/Types/JSONFunctions.test.ts +103 -1
  99. package/Tests/Types/Monitor/KubernetesAlertTemplates.test.ts +177 -9
  100. package/Tests/Types/Monitor/MonitorStepDnsMonitor.test.ts +105 -0
  101. package/Tests/Types/Monitor/MonitorStepDnssecMonitor.test.ts +131 -0
  102. package/Tests/Types/Monitor/MonitorStepDomainMonitor.test.ts +60 -0
  103. package/Tests/Types/Monitor/MonitorStepExternalStatusPageMonitor.test.ts +82 -0
  104. package/Tests/Types/Monitor/MonitorStepInfrastructureMonitors.test.ts +268 -0
  105. package/Tests/Types/Monitor/MonitorStepMetricMonitor.test.ts +386 -0
  106. package/Tests/Types/Monitor/MonitorStepProfileMonitor.test.ts +185 -0
  107. package/Tests/Types/Monitor/MonitorStepSnmpMonitor.test.ts +156 -0
  108. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +371 -0
  109. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +901 -0
  110. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +607 -0
  111. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.test.ts +754 -0
  112. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationUtil.test.ts +960 -0
  113. package/Tests/Types/RollingTime/RollingTimeUtil.test.ts +186 -0
  114. package/Tests/Types/Runbook/RunbookStepTimeout.test.ts +410 -0
  115. package/Tests/Types/Telemetry/DropFilterSampling.test.ts +241 -0
  116. package/Tests/Types/Workspace/NotificationRuleConditionUtil.test.ts +353 -0
  117. package/Tests/Types/Workspace/NotificationRuleUtil.test.ts +566 -0
  118. package/Tests/UI/Components/CodeEditor.test.tsx +174 -0
  119. package/Tests/UI/Components/ErrorBoundary.test.tsx +555 -24
  120. package/Tests/UI/Components/InfoCard.test.tsx +358 -0
  121. package/Tests/UI/Components/LogTimeRangePicker.test.tsx +138 -0
  122. package/Tests/UI/Components/Modal.test.tsx +43 -5
  123. package/Tests/UI/Components/ModelTable/BaseModelTableColumnCustomization.test.tsx +679 -0
  124. package/Tests/UI/Components/ModelTable/BaseModelTableSearchLabels.test.tsx +397 -0
  125. package/Tests/UI/Components/ModelTable/ColumnCustomizationModal.test.tsx +999 -0
  126. package/Tests/UI/Components/ModelTable/ColumnPreference.test.ts +1678 -0
  127. package/Tests/UI/Components/ModelTable/CustomFieldColumns.test.tsx +1094 -0
  128. package/Tests/UI/Components/Runbook/StepTimeoutInput.test.tsx +386 -0
  129. package/Tests/UI/Components/StatusPage/ResourceGroupSection.test.tsx +671 -0
  130. package/Tests/UI/Components/TelemetryTimeRangePicker.test.tsx +404 -0
  131. package/Tests/UI/Utils/DropdownAlignment.test.ts +306 -0
  132. package/Tests/UI/Utils/TableFilterUrlState.test.ts +292 -0
  133. package/Tests/Utils/Monitor/MonitorSummaryProbeUtil.test.ts +263 -0
  134. package/Tests/Utils/NetworkDiscovery/ScanTargetUtil.test.ts +583 -0
  135. package/Tests/Utils/StatusPage/GroupNestingLayout.test.ts +1072 -0
  136. package/Tests/Utils/StatusPage/GroupTree.test.ts +583 -0
  137. package/Tests/Utils/StatusPage/ResourceUptime.test.ts +411 -0
  138. package/Tests/Utils/UserPreferences.test.ts +563 -0
  139. package/Types/Date.ts +15 -6
  140. package/Types/JSONFunctions.ts +7 -2
  141. package/Types/Kubernetes/KubernetesCostIngest.ts +37 -1
  142. package/Types/Monitor/KubernetesAlertTemplates.ts +205 -0
  143. package/Types/Monitor/MonitorStep.ts +10 -1
  144. package/Types/Monitor/MonitorStepMetricMonitor.ts +46 -1
  145. package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +413 -0
  146. package/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.ts +168 -0
  147. package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +175 -0
  148. package/Types/Monitor/Recommendation/MonitorRecommendationUtil.ts +743 -0
  149. package/Types/Permission.ts +45 -0
  150. package/Types/Recommendation/RecommendationType.ts +20 -0
  151. package/Types/Runbook/RunbookExecutionDeadline.ts +129 -0
  152. package/Types/Runbook/RunbookStepTimeout.ts +202 -0
  153. package/Types/Telemetry/DropFilterSampling.ts +92 -0
  154. package/UI/Components/AI/GenerateFromAIModal.tsx +0 -2
  155. package/UI/Components/Accordion/Accordion.tsx +10 -2
  156. package/UI/Components/BulkUpdate/BulkLabelActions.tsx +0 -1
  157. package/UI/Components/CodeEditor/CodeEditor.tsx +34 -20
  158. package/UI/Components/Date/RangeStartAndEndDateView.tsx +0 -1
  159. package/UI/Components/EditionLabel/EditionLabel.tsx +1 -27
  160. package/UI/Components/Error/PageError.tsx +0 -4
  161. package/UI/Components/ErrorBoundary.tsx +252 -15
  162. package/UI/Components/InfoCard/InfoCard.tsx +58 -1
  163. package/UI/Components/LogsViewer/components/LogTimeRangePicker.tsx +34 -1
  164. package/UI/Components/MasterPage/MasterPage.tsx +65 -0
  165. package/UI/Components/Modal/Modal.tsx +16 -60
  166. package/UI/Components/ModelFormModal/ModelFormModal.tsx +0 -8
  167. package/UI/Components/ModelTable/BaseModelTable.tsx +503 -71
  168. package/UI/Components/ModelTable/Column.ts +17 -0
  169. package/UI/Components/ModelTable/ColumnCustomizationModal.tsx +523 -0
  170. package/UI/Components/ModelTable/ColumnPreference.ts +482 -0
  171. package/UI/Components/ModelTable/CustomFieldColumns.tsx +326 -0
  172. package/UI/Components/ModelTable/TableView.tsx +24 -2
  173. package/UI/Components/ModelTable/useCustomFieldColumns.ts +150 -0
  174. package/UI/Components/Runbook/StepTimeoutInput.tsx +173 -0
  175. package/UI/Components/SideMenu/SideMenu.tsx +24 -4
  176. package/UI/Components/StatusPage/ResourceGroupSection.tsx +231 -0
  177. package/UI/Components/Table/Table.tsx +14 -1
  178. package/UI/Components/Table/TableRow.tsx +180 -175
  179. package/UI/Components/Table/Types/Column.ts +2 -0
  180. package/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.tsx +34 -1
  181. package/UI/Utils/DropdownAlignment.ts +162 -0
  182. package/UI/Utils/TableFilterUrlState.ts +59 -20
  183. package/Utils/API.ts +106 -2
  184. package/Utils/Monitor/MonitorSummaryProbeUtil.ts +130 -0
  185. package/Utils/NetworkDiscovery/ScanTargetUtil.ts +434 -0
  186. package/Utils/StatusPage/GroupNestingLayout.ts +343 -0
  187. package/Utils/StatusPage/GroupTree.ts +307 -0
  188. package/Utils/StatusPage/ResourceUptime.ts +90 -17
  189. package/Utils/UserPreferences.ts +53 -0
  190. package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js +86 -0
  191. package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js.map +1 -1
  192. package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js +1 -0
  193. package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js.map +1 -1
  194. package/build/dist/Models/DatabaseModels/AlertStateTimeline.js +1 -0
  195. package/build/dist/Models/DatabaseModels/AlertStateTimeline.js.map +1 -1
  196. package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js +1 -0
  197. package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js.map +1 -1
  198. package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +1 -0
  199. package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
  200. package/build/dist/Models/DatabaseModels/Index.js +2 -0
  201. package/build/dist/Models/DatabaseModels/Index.js.map +1 -1
  202. package/build/dist/Models/DatabaseModels/LogDropFilter.js +91 -0
  203. package/build/dist/Models/DatabaseModels/LogDropFilter.js.map +1 -1
  204. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js +14 -4
  205. package/build/dist/Models/DatabaseModels/NetworkDeviceDiscoveryScan.js.map +1 -1
  206. package/build/dist/Models/DatabaseModels/RecommendationDismissal.js +484 -0
  207. package/build/dist/Models/DatabaseModels/RecommendationDismissal.js.map +1 -0
  208. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +1 -0
  209. package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -1
  210. package/build/dist/Models/DatabaseModels/StatusPageGroup.js +94 -0
  211. package/build/dist/Models/DatabaseModels/StatusPageGroup.js.map +1 -1
  212. package/build/dist/Models/DatabaseModels/TableView.js +40 -0
  213. package/build/dist/Models/DatabaseModels/TableView.js.map +1 -1
  214. package/build/dist/Models/DatabaseModels/TraceDropFilter.js +91 -0
  215. package/build/dist/Models/DatabaseModels/TraceDropFilter.js.map +1 -1
  216. package/build/dist/Models/DatabaseModels/WorkflowVariable.js +5 -1
  217. package/build/dist/Models/DatabaseModels/WorkflowVariable.js.map +1 -1
  218. package/build/dist/Server/API/AlertAPI.js +22 -13
  219. package/build/dist/Server/API/AlertAPI.js.map +1 -1
  220. package/build/dist/Server/API/BaseAPI.js +22 -1
  221. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  222. package/build/dist/Server/API/BaseAnalyticsAPI.js +24 -1
  223. package/build/dist/Server/API/BaseAnalyticsAPI.js.map +1 -1
  224. package/build/dist/Server/API/CommonAPI.js +42 -0
  225. package/build/dist/Server/API/CommonAPI.js.map +1 -1
  226. package/build/dist/Server/API/IncidentAPI.js +43 -26
  227. package/build/dist/Server/API/IncidentAPI.js.map +1 -1
  228. package/build/dist/Server/API/IncidentEpisodeAPI.js +21 -12
  229. package/build/dist/Server/API/IncidentEpisodeAPI.js.map +1 -1
  230. package/build/dist/Server/API/MonitorAPI.js +23 -0
  231. package/build/dist/Server/API/MonitorAPI.js.map +1 -1
  232. package/build/dist/Server/API/MonitorTemplateAPI.js +4 -0
  233. package/build/dist/Server/API/MonitorTemplateAPI.js.map +1 -1
  234. package/build/dist/Server/API/ProbeAPI.js +131 -15
  235. package/build/dist/Server/API/ProbeAPI.js.map +1 -1
  236. package/build/dist/Server/API/ProjectAPI.js +62 -3
  237. package/build/dist/Server/API/ProjectAPI.js.map +1 -1
  238. package/build/dist/Server/API/ScheduledMaintenanceAPI.js +23 -14
  239. package/build/dist/Server/API/ScheduledMaintenanceAPI.js.map +1 -1
  240. package/build/dist/Server/API/StatusPageAPI.js +61 -33
  241. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  242. package/build/dist/Server/API/WorkspaceNotificationRuleAPI.js +26 -2
  243. package/build/dist/Server/API/WorkspaceNotificationRuleAPI.js.map +1 -1
  244. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.js +12 -0
  245. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.js.map +1 -0
  246. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785320000000-RepairCrossProjectIncidentReferences.js +397 -0
  247. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785320000000-RepairCrossProjectIncidentReferences.js.map +1 -0
  248. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785329453269-AddParentGroupToStatusPageGroup.js +16 -0
  249. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785329453269-AddParentGroupToStatusPageGroup.js.map +1 -0
  250. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785397674289-AddRecommendationDismissalTable.js +30 -0
  251. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785397674289-AddRecommendationDismissalTable.js.map +1 -0
  252. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785405581596-AddDroppedCountersToDropFilters.js +34 -0
  253. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785405581596-AddDroppedCountersToDropFilters.js.map +1 -0
  254. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
  255. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  256. package/build/dist/Server/Services/AlertEpisodeService.js +39 -0
  257. package/build/dist/Server/Services/AlertEpisodeService.js.map +1 -1
  258. package/build/dist/Server/Services/AlertService.js +95 -0
  259. package/build/dist/Server/Services/AlertService.js.map +1 -1
  260. package/build/dist/Server/Services/BillingService.js +71 -0
  261. package/build/dist/Server/Services/BillingService.js.map +1 -1
  262. package/build/dist/Server/Services/DatabaseService.js +140 -17
  263. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  264. package/build/dist/Server/Services/IncidentEpisodeService.js +39 -0
  265. package/build/dist/Server/Services/IncidentEpisodeService.js.map +1 -1
  266. package/build/dist/Server/Services/IncidentService.js +100 -0
  267. package/build/dist/Server/Services/IncidentService.js.map +1 -1
  268. package/build/dist/Server/Services/IncidentTemplateService.js +97 -0
  269. package/build/dist/Server/Services/IncidentTemplateService.js.map +1 -1
  270. package/build/dist/Server/Services/Index.js +2 -0
  271. package/build/dist/Server/Services/Index.js.map +1 -1
  272. package/build/dist/Server/Services/LogDropFilterService.js +93 -0
  273. package/build/dist/Server/Services/LogDropFilterService.js.map +1 -1
  274. package/build/dist/Server/Services/MonitorProbeService.js +73 -5
  275. package/build/dist/Server/Services/MonitorProbeService.js.map +1 -1
  276. package/build/dist/Server/Services/MonitorService.js +34 -39
  277. package/build/dist/Server/Services/MonitorService.js.map +1 -1
  278. package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js +71 -0
  279. package/build/dist/Server/Services/NetworkDeviceDiscoveryScanService.js.map +1 -1
  280. package/build/dist/Server/Services/ProbeService.js +64 -0
  281. package/build/dist/Server/Services/ProbeService.js.map +1 -1
  282. package/build/dist/Server/Services/ProjectService.js +103 -7
  283. package/build/dist/Server/Services/ProjectService.js.map +1 -1
  284. package/build/dist/Server/Services/RecommendationDismissalService.js +50 -0
  285. package/build/dist/Server/Services/RecommendationDismissalService.js.map +1 -0
  286. package/build/dist/Server/Services/RunbookAgentJobService.js +63 -5
  287. package/build/dist/Server/Services/RunbookAgentJobService.js.map +1 -1
  288. package/build/dist/Server/Services/ScheduledMaintenanceService.js +83 -0
  289. package/build/dist/Server/Services/ScheduledMaintenanceService.js.map +1 -1
  290. package/build/dist/Server/Services/ScheduledMaintenanceTemplateService.js +65 -0
  291. package/build/dist/Server/Services/ScheduledMaintenanceTemplateService.js.map +1 -1
  292. package/build/dist/Server/Services/StatusPageGroupService.js +136 -0
  293. package/build/dist/Server/Services/StatusPageGroupService.js.map +1 -1
  294. package/build/dist/Server/Services/TraceDropFilterService.js +93 -0
  295. package/build/dist/Server/Services/TraceDropFilterService.js.map +1 -1
  296. package/build/dist/Server/Types/Workflow/Components/API/Delete.js +11 -0
  297. package/build/dist/Server/Types/Workflow/Components/API/Delete.js.map +1 -1
  298. package/build/dist/Server/Types/Workflow/Components/API/Get.js +11 -0
  299. package/build/dist/Server/Types/Workflow/Components/API/Get.js.map +1 -1
  300. package/build/dist/Server/Types/Workflow/Components/API/Patch.js +11 -0
  301. package/build/dist/Server/Types/Workflow/Components/API/Patch.js.map +1 -1
  302. package/build/dist/Server/Types/Workflow/Components/API/Post.js +11 -0
  303. package/build/dist/Server/Types/Workflow/Components/API/Post.js.map +1 -1
  304. package/build/dist/Server/Types/Workflow/Components/API/Put.js +12 -0
  305. package/build/dist/Server/Types/Workflow/Components/API/Put.js.map +1 -1
  306. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js +132 -0
  307. package/build/dist/Server/Utils/Database/ProjectScopedReferenceValidator.js.map +1 -0
  308. package/build/dist/Server/Utils/DropFilterValidation.js +80 -0
  309. package/build/dist/Server/Utils/DropFilterValidation.js.map +1 -0
  310. package/build/dist/Server/Utils/Errors.js +3 -0
  311. package/build/dist/Server/Utils/Errors.js.map +1 -1
  312. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +30 -12
  313. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  314. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +38 -18
  315. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  316. package/build/dist/Server/Utils/Telemetry/AppMetrics.js +26 -0
  317. package/build/dist/Server/Utils/Telemetry/AppMetrics.js.map +1 -1
  318. package/build/dist/Types/Date.js +14 -4
  319. package/build/dist/Types/Date.js.map +1 -1
  320. package/build/dist/Types/JSONFunctions.js +8 -3
  321. package/build/dist/Types/JSONFunctions.js.map +1 -1
  322. package/build/dist/Types/Kubernetes/KubernetesCostIngest.js.map +1 -1
  323. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js +192 -0
  324. package/build/dist/Types/Monitor/KubernetesAlertTemplates.js.map +1 -1
  325. package/build/dist/Types/Monitor/MonitorStep.js +6 -1
  326. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  327. package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js +32 -1
  328. package/build/dist/Types/Monitor/MonitorStepMetricMonitor.js.map +1 -1
  329. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +294 -0
  330. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -0
  331. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.js +110 -0
  332. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationSeverityMapper.js.map +1 -0
  333. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +58 -0
  334. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -0
  335. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js +451 -0
  336. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationUtil.js.map +1 -0
  337. package/build/dist/Types/Permission.js +40 -0
  338. package/build/dist/Types/Permission.js.map +1 -1
  339. package/build/dist/Types/Recommendation/RecommendationType.js +21 -0
  340. package/build/dist/Types/Recommendation/RecommendationType.js.map +1 -0
  341. package/build/dist/Types/Runbook/RunbookExecutionDeadline.js +93 -0
  342. package/build/dist/Types/Runbook/RunbookExecutionDeadline.js.map +1 -0
  343. package/build/dist/Types/Runbook/RunbookStepTimeout.js +142 -0
  344. package/build/dist/Types/Runbook/RunbookStepTimeout.js.map +1 -0
  345. package/build/dist/Types/Telemetry/DropFilterSampling.js +75 -0
  346. package/build/dist/Types/Telemetry/DropFilterSampling.js.map +1 -0
  347. package/build/dist/UI/Components/AI/GenerateFromAIModal.js +1 -2
  348. package/build/dist/UI/Components/AI/GenerateFromAIModal.js.map +1 -1
  349. package/build/dist/UI/Components/Accordion/Accordion.js +9 -2
  350. package/build/dist/UI/Components/Accordion/Accordion.js.map +1 -1
  351. package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js +1 -1
  352. package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js.map +1 -1
  353. package/build/dist/UI/Components/CodeEditor/CodeEditor.js +27 -14
  354. package/build/dist/UI/Components/CodeEditor/CodeEditor.js.map +1 -1
  355. package/build/dist/UI/Components/Date/RangeStartAndEndDateView.js +1 -1
  356. package/build/dist/UI/Components/Date/RangeStartAndEndDateView.js.map +1 -1
  357. package/build/dist/UI/Components/EditionLabel/EditionLabel.js +2 -20
  358. package/build/dist/UI/Components/EditionLabel/EditionLabel.js.map +1 -1
  359. package/build/dist/UI/Components/Error/PageError.js +1 -3
  360. package/build/dist/UI/Components/Error/PageError.js.map +1 -1
  361. package/build/dist/UI/Components/ErrorBoundary.js +145 -11
  362. package/build/dist/UI/Components/ErrorBoundary.js.map +1 -1
  363. package/build/dist/UI/Components/InfoCard/InfoCard.js +28 -1
  364. package/build/dist/UI/Components/InfoCard/InfoCard.js.map +1 -1
  365. package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js +13 -2
  366. package/build/dist/UI/Components/LogsViewer/components/LogTimeRangePicker.js.map +1 -1
  367. package/build/dist/UI/Components/MasterPage/MasterPage.js +50 -1
  368. package/build/dist/UI/Components/MasterPage/MasterPage.js.map +1 -1
  369. package/build/dist/UI/Components/Modal/Modal.js +4 -32
  370. package/build/dist/UI/Components/Modal/Modal.js.map +1 -1
  371. package/build/dist/UI/Components/ModelFormModal/ModelFormModal.js.map +1 -1
  372. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +308 -40
  373. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  374. package/build/dist/UI/Components/ModelTable/ColumnCustomizationModal.js +230 -0
  375. package/build/dist/UI/Components/ModelTable/ColumnCustomizationModal.js.map +1 -0
  376. package/build/dist/UI/Components/ModelTable/ColumnPreference.js +258 -0
  377. package/build/dist/UI/Components/ModelTable/ColumnPreference.js.map +1 -0
  378. package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js +168 -0
  379. package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js.map +1 -0
  380. package/build/dist/UI/Components/ModelTable/TableView.js +13 -2
  381. package/build/dist/UI/Components/ModelTable/TableView.js.map +1 -1
  382. package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js +84 -0
  383. package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js.map +1 -0
  384. package/build/dist/UI/Components/Runbook/StepTimeoutInput.js +101 -0
  385. package/build/dist/UI/Components/Runbook/StepTimeoutInput.js.map +1 -0
  386. package/build/dist/UI/Components/SideMenu/SideMenu.js +15 -5
  387. package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
  388. package/build/dist/UI/Components/StatusPage/ResourceGroupSection.js +73 -0
  389. package/build/dist/UI/Components/StatusPage/ResourceGroupSection.js.map +1 -0
  390. package/build/dist/UI/Components/Table/Table.js +15 -2
  391. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  392. package/build/dist/UI/Components/Table/TableRow.js +11 -6
  393. package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
  394. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.js +13 -2
  395. package/build/dist/UI/Components/TelemetryViewer/components/TelemetryTimeRangePicker.js.map +1 -1
  396. package/build/dist/UI/Utils/DropdownAlignment.js +98 -0
  397. package/build/dist/UI/Utils/DropdownAlignment.js.map +1 -0
  398. package/build/dist/UI/Utils/TableFilterUrlState.js +48 -15
  399. package/build/dist/UI/Utils/TableFilterUrlState.js.map +1 -1
  400. package/build/dist/Utils/API.js +39 -2
  401. package/build/dist/Utils/API.js.map +1 -1
  402. package/build/dist/Utils/Monitor/MonitorSummaryProbeUtil.js +97 -0
  403. package/build/dist/Utils/Monitor/MonitorSummaryProbeUtil.js.map +1 -0
  404. package/build/dist/Utils/NetworkDiscovery/ScanTargetUtil.js +330 -0
  405. package/build/dist/Utils/NetworkDiscovery/ScanTargetUtil.js.map +1 -0
  406. package/build/dist/Utils/StatusPage/GroupNestingLayout.js +280 -0
  407. package/build/dist/Utils/StatusPage/GroupNestingLayout.js.map +1 -0
  408. package/build/dist/Utils/StatusPage/GroupTree.js +214 -0
  409. package/build/dist/Utils/StatusPage/GroupTree.js.map +1 -0
  410. package/build/dist/Utils/StatusPage/ResourceUptime.js +60 -16
  411. package/build/dist/Utils/StatusPage/ResourceUptime.js.map +1 -1
  412. package/build/dist/Utils/UserPreferences.js +33 -0
  413. package/build/dist/Utils/UserPreferences.js.map +1 -1
  414. package/package.json +1 -1
@@ -0,0 +1,258 @@
1
+ export const EmptyColumnPreference = {
2
+ order: [],
3
+ hidden: [],
4
+ };
5
+ const slugify = (value) => {
6
+ return value
7
+ .toLowerCase()
8
+ .replace(/[^a-z0-9]+/g, "-")
9
+ .replace(/^-+|-+$/g, "");
10
+ };
11
+ /*
12
+ * The identity a column would have if no other column competed for it. An
13
+ * explicit `id` always wins; otherwise it is the field the column reads,
14
+ * which is the one thing about a column that survives re-ordering, renaming
15
+ * and re-styling. `selectedProperty` is part of it so that every custom field
16
+ * on one JSON column gets its own id ("customFields.Severity").
17
+ */
18
+ export const getColumnBaseId = (column) => {
19
+ if (column.id) {
20
+ return column.id;
21
+ }
22
+ const fieldKey = column.field
23
+ ? Object.keys(column.field)[0]
24
+ : undefined;
25
+ if (fieldKey) {
26
+ return column.selectedProperty
27
+ ? `${fieldKey}.${column.selectedProperty}`
28
+ : fieldKey;
29
+ }
30
+ return slugify(column.title || "") || "column";
31
+ };
32
+ /*
33
+ * Ids for a whole column set, in declaration order and guaranteed unique.
34
+ *
35
+ * Collisions are real and common: a table often carries several cells that
36
+ * render from `getElement` off the same placeholder `field: { _id: true }`.
37
+ * Those are disambiguated by title first (stable, and what the viewer
38
+ * actually sees in the picker) and only then by position, which is the one
39
+ * part that can shift when a column is inserted. A shifted id is harmless -
40
+ * it simply reads as a new column, so it defaults to visible.
41
+ */
42
+ export const getColumnIds = (columns) => {
43
+ const baseIds = columns.map((column) => {
44
+ return getColumnBaseId(column);
45
+ });
46
+ const baseIdCounts = {};
47
+ for (const baseId of baseIds) {
48
+ baseIdCounts[baseId] = (baseIdCounts[baseId] || 0) + 1;
49
+ }
50
+ const candidateIds = columns.map((column, index) => {
51
+ const baseId = baseIds[index];
52
+ if ((baseIdCounts[baseId] || 0) < 2) {
53
+ return baseId;
54
+ }
55
+ const titleSlug = slugify(column.title || "");
56
+ return titleSlug ? `${baseId}:${titleSlug}` : baseId;
57
+ });
58
+ const usedIds = {};
59
+ const ids = [];
60
+ for (const candidateId of candidateIds) {
61
+ const timesUsed = usedIds[candidateId] || 0;
62
+ usedIds[candidateId] = timesUsed + 1;
63
+ ids.push(timesUsed === 0 ? candidateId : `${candidateId}#${timesUsed + 1}`);
64
+ }
65
+ return ids;
66
+ };
67
+ const isHiddenByDefault = (column) => {
68
+ return Boolean(column.isHiddenByDefault) && !column.isNotCustomizable;
69
+ };
70
+ /*
71
+ * The picker's model: every column the viewer may act on, already in the
72
+ * order they arranged them, each tagged with whether it is currently on.
73
+ *
74
+ * Pinned columns keep their declared position rather than being dragged
75
+ * around by a stale layout - they are not in the picker, so the viewer has no
76
+ * way to put them back if a persisted `order` moved them.
77
+ */
78
+ export const getCustomizableColumns = (data) => {
79
+ const { columns, preference } = data;
80
+ const ids = getColumnIds(columns);
81
+ const entries = columns.map((column, index) => {
82
+ const id = ids[index];
83
+ const isPinned = Boolean(column.isNotCustomizable);
84
+ let isVisible = !isHiddenByDefault(column);
85
+ if (preference && !isPinned) {
86
+ if (preference.hidden.includes(id)) {
87
+ isVisible = false;
88
+ }
89
+ else if (preference.order.includes(id)) {
90
+ /*
91
+ * The viewer has arranged this column at least once and did not
92
+ * put it in `hidden`, so it is on - even if the table now ships it
93
+ * hidden by default.
94
+ */
95
+ isVisible = true;
96
+ }
97
+ }
98
+ return { id, column, isVisible, isPinned };
99
+ });
100
+ if (!preference || preference.order.length === 0) {
101
+ return entries;
102
+ }
103
+ const orderIndexById = {};
104
+ preference.order.forEach((id, index) => {
105
+ if (orderIndexById[id] === undefined) {
106
+ orderIndexById[id] = index;
107
+ }
108
+ });
109
+ /*
110
+ * A column the layout does not mention keeps its declared neighbours: it
111
+ * sorts just after the last arranged column that precedes it in the
112
+ * declaration, so a newly shipped column appears where its author put it
113
+ * rather than being swept to the end.
114
+ */
115
+ const sortKeys = [];
116
+ let lastKnownOrderIndex = -1;
117
+ entries.forEach((entry) => {
118
+ const knownIndex = entry.isPinned
119
+ ? undefined
120
+ : orderIndexById[entry.id];
121
+ if (knownIndex !== undefined) {
122
+ lastKnownOrderIndex = knownIndex;
123
+ sortKeys.push(knownIndex);
124
+ return;
125
+ }
126
+ sortKeys.push(lastKnownOrderIndex + 0.5);
127
+ });
128
+ return entries
129
+ .map((entry, index) => {
130
+ return { entry, key: sortKeys[index], at: index };
131
+ })
132
+ .sort((a, b) => {
133
+ // Stable: equal keys keep declaration order.
134
+ return a.key === b.key ? a.at - b.at : a.key - b.key;
135
+ })
136
+ .map((item) => {
137
+ return item.entry;
138
+ });
139
+ };
140
+ /*
141
+ * The column set the table should actually render. Refuses to return an empty
142
+ * set: a layout that hides everything would replace the table with an empty
143
+ * shell the viewer cannot get out of, so it falls back to showing everything.
144
+ */
145
+ export const applyColumnPreference = (data) => {
146
+ const entries = getCustomizableColumns(data);
147
+ const visible = entries
148
+ .filter((entry) => {
149
+ return entry.isVisible;
150
+ })
151
+ .map((entry) => {
152
+ return entry.column;
153
+ });
154
+ if (visible.length === 0) {
155
+ return entries.map((entry) => {
156
+ return entry.column;
157
+ });
158
+ }
159
+ return visible;
160
+ };
161
+ /*
162
+ * The inverse of getCustomizableColumns: turn what the picker is showing back
163
+ * into something storable. Pinned columns are left out entirely - they are
164
+ * not the viewer's to arrange, so recording them would only create entries
165
+ * that go stale when a table stops pinning a column.
166
+ */
167
+ export const buildColumnPreference = (entries) => {
168
+ const order = [];
169
+ const hidden = [];
170
+ for (const entry of entries) {
171
+ if (entry.isPinned) {
172
+ continue;
173
+ }
174
+ order.push(entry.id);
175
+ if (!entry.isVisible) {
176
+ hidden.push(entry.id);
177
+ }
178
+ }
179
+ return { order, hidden };
180
+ };
181
+ /*
182
+ * Drop everything that no longer names a column on this table. A stored
183
+ * layout outlives the release that produced it, so it routinely mentions
184
+ * columns that have since been renamed, removed, or - for custom fields -
185
+ * deleted from the project.
186
+ */
187
+ export const sanitizeColumnPreference = (data) => {
188
+ const { preference, knownColumnIds } = data;
189
+ if (!preference) {
190
+ return null;
191
+ }
192
+ const known = new Set(knownColumnIds);
193
+ const keep = (ids) => {
194
+ const seen = new Set();
195
+ return ids.filter((id) => {
196
+ if (!known.has(id) || seen.has(id)) {
197
+ return false;
198
+ }
199
+ seen.add(id);
200
+ return true;
201
+ });
202
+ };
203
+ const sanitized = {
204
+ order: keep(preference.order),
205
+ hidden: keep(preference.hidden),
206
+ };
207
+ if (sanitized.order.length === 0 && sanitized.hidden.length === 0) {
208
+ return null;
209
+ }
210
+ return sanitized;
211
+ };
212
+ export const isEmptyColumnPreference = (preference) => {
213
+ return Boolean(!preference ||
214
+ (preference.order.length === 0 && preference.hidden.length === 0));
215
+ };
216
+ // A layout that changes nothing is stored as nothing.
217
+ export const toJSON = (preference) => {
218
+ if (isEmptyColumnPreference(preference)) {
219
+ return null;
220
+ }
221
+ return {
222
+ order: [...preference.order],
223
+ hidden: [...preference.hidden],
224
+ };
225
+ };
226
+ /*
227
+ * Read a stored layout back. Anything on the way in is untrusted - it may
228
+ * have been hand-edited in devtools or written by an older release - so each
229
+ * list is validated on its own and a malformed one degrades to empty instead
230
+ * of taking the other down with it.
231
+ */
232
+ export const fromJSON = (json) => {
233
+ if (!json || typeof json !== "object" || Array.isArray(json)) {
234
+ return null;
235
+ }
236
+ const readIds = (value) => {
237
+ if (!Array.isArray(value)) {
238
+ return [];
239
+ }
240
+ const seen = new Set();
241
+ return value.filter((entry) => {
242
+ if (typeof entry !== "string" || entry.length === 0 || seen.has(entry)) {
243
+ return false;
244
+ }
245
+ seen.add(entry);
246
+ return true;
247
+ });
248
+ };
249
+ const preference = {
250
+ order: readIds(json["order"]),
251
+ hidden: readIds(json["hidden"]),
252
+ };
253
+ if (isEmptyColumnPreference(preference)) {
254
+ return null;
255
+ }
256
+ return preference;
257
+ };
258
+ //# sourceMappingURL=ColumnPreference.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ColumnPreference.js","sourceRoot":"","sources":["../../../../../UI/Components/ModelTable/ColumnPreference.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ import FieldType from "../Types/FieldType";
2
+ import CustomFieldType from "../../../Types/CustomField/CustomFieldType";
3
+ import React from "react";
4
+ export const CustomFieldsColumnKey = "customFields";
5
+ /*
6
+ * Dropdown options are stored as one option per line, the same format the
7
+ * settings page writes.
8
+ */
9
+ export const parseDropdownOptions = (value) => {
10
+ if (typeof value !== "string" || !value) {
11
+ return [];
12
+ }
13
+ return value
14
+ .split("\n")
15
+ .map((line) => {
16
+ return line.trim();
17
+ })
18
+ .filter((line) => {
19
+ return line.length > 0;
20
+ });
21
+ };
22
+ /*
23
+ * Normalise whatever the definition API returned into a plain, sorted list.
24
+ *
25
+ * Sorting matters: the definition models carry no ordering column and the
26
+ * list endpoint is queried with an empty sort, so Postgres is free to hand
27
+ * back a different order on every request. Without a deterministic order
28
+ * here, a viewer's saved column layout would appear to shuffle itself
29
+ * between page loads.
30
+ */
31
+ export const getCustomFieldDefinitions = (items) => {
32
+ const definitions = [];
33
+ const seenNames = new Set();
34
+ for (const item of items || []) {
35
+ const name = item === null || item === void 0 ? void 0 : item["name"];
36
+ if (typeof name !== "string" || name.trim().length === 0) {
37
+ continue;
38
+ }
39
+ const trimmedName = name.trim();
40
+ if (seenNames.has(trimmedName)) {
41
+ continue;
42
+ }
43
+ seenNames.add(trimmedName);
44
+ const description = item["description"];
45
+ const customFieldType = item["customFieldType"];
46
+ const dropdownOptions = item["dropdownOptions"];
47
+ definitions.push({
48
+ name: trimmedName,
49
+ description: typeof description === "string" ? description : undefined,
50
+ customFieldType: typeof customFieldType === "string"
51
+ ? customFieldType
52
+ : undefined,
53
+ dropdownOptions: typeof dropdownOptions === "string" ? dropdownOptions : undefined,
54
+ });
55
+ }
56
+ return definitions.sort((a, b) => {
57
+ return a.name.localeCompare(b.name);
58
+ });
59
+ };
60
+ export const getCustomFieldValue = (item, name) => {
61
+ const customFields = item === null || item === void 0 ? void 0 : item[CustomFieldsColumnKey];
62
+ if (!customFields || typeof customFields !== "object") {
63
+ return undefined;
64
+ }
65
+ return customFields[name];
66
+ };
67
+ const badge = (data) => {
68
+ return (React.createElement("span", { key: data.key, className: "inline-flex items-center gap-x-1.5 px-2 py-1 rounded-md bg-indigo-50 text-indigo-700 text-xs font-medium ring-1 ring-inset ring-indigo-700/10" },
69
+ React.createElement("svg", { className: "h-1.5 w-1.5 fill-indigo-500", viewBox: "0 0 6 6", "aria-hidden": "true" },
70
+ React.createElement("circle", { cx: 3, cy: 3, r: 3 })),
71
+ data.label));
72
+ };
73
+ export const renderCustomFieldValue = (data) => {
74
+ var _a;
75
+ const { value, definition } = data;
76
+ const noValueMessage = (_a = data.noValueMessage) !== null && _a !== void 0 ? _a : "-";
77
+ const empty = (React.createElement("span", { className: "text-gray-400" }, noValueMessage));
78
+ if (value === undefined || value === null || value === "") {
79
+ return empty;
80
+ }
81
+ if (definition.customFieldType === CustomFieldType.Boolean) {
82
+ /*
83
+ * A boolean custom field renders "No" rather than falling into the empty
84
+ * branch above - `false` is a real answer, not a missing one.
85
+ */
86
+ const isTrue = value === true || value === "true";
87
+ return (React.createElement("span", { className: isTrue
88
+ ? "inline-flex items-center px-2 py-1 rounded-md bg-green-50 text-green-700 text-xs font-medium ring-1 ring-inset ring-green-600/20"
89
+ : "inline-flex items-center px-2 py-1 rounded-md bg-gray-50 text-gray-600 text-xs font-medium ring-1 ring-inset ring-gray-500/10" }, isTrue ? "Yes" : "No"));
90
+ }
91
+ if (definition.customFieldType === CustomFieldType.MultiSelectDropdown) {
92
+ /*
93
+ * Tolerant on the way out: an older single-select value that was later
94
+ * switched to multi-select is still a bare string in the JSON.
95
+ */
96
+ const values = Array.isArray(value) ? value : [value];
97
+ const labels = values
98
+ .filter((entry) => {
99
+ return entry !== undefined && entry !== null && entry !== "";
100
+ })
101
+ .map((entry) => {
102
+ return String(entry);
103
+ });
104
+ if (labels.length === 0) {
105
+ return empty;
106
+ }
107
+ return (React.createElement("div", { className: "flex flex-wrap gap-1.5" }, labels.map((label, index) => {
108
+ return badge({ label, key: `${label}-${index}` });
109
+ })));
110
+ }
111
+ if (definition.customFieldType === CustomFieldType.Dropdown) {
112
+ return badge({ label: String(value), key: String(value) });
113
+ }
114
+ if (Array.isArray(value)) {
115
+ return React.createElement("span", null, value.join(", "));
116
+ }
117
+ if (typeof value === "object") {
118
+ return React.createElement("span", null, JSON.stringify(value));
119
+ }
120
+ return React.createElement("span", null, String(value));
121
+ };
122
+ /*
123
+ * Custom field columns default to hidden. A project is free to define a dozen
124
+ * of them, and turning every one on by default would push the columns the
125
+ * table was designed around off the side of the screen the first time anyone
126
+ * opens it. They are all listed in the column picker, one click away.
127
+ */
128
+ export const getCustomFieldColumns = (data) => {
129
+ const isHidden = data.isHiddenByDefault !== false;
130
+ return (data.definitions || []).map((definition) => {
131
+ return {
132
+ id: `${CustomFieldsColumnKey}.${definition.name}`,
133
+ field: {
134
+ [CustomFieldsColumnKey]: true,
135
+ },
136
+ selectedProperty: definition.name,
137
+ title: definition.name,
138
+ description: definition.description,
139
+ type: FieldType.Element,
140
+ /*
141
+ * See the file header: sorting a jsonb key is not something the
142
+ * query path can express.
143
+ */
144
+ disableSort: true,
145
+ isHiddenByDefault: isHidden,
146
+ getExportValue: (item) => {
147
+ const value = getCustomFieldValue(item, definition.name);
148
+ if (value === undefined || value === null) {
149
+ return "";
150
+ }
151
+ if (Array.isArray(value)) {
152
+ return value.join(", ");
153
+ }
154
+ if (typeof value === "object") {
155
+ return JSON.stringify(value);
156
+ }
157
+ return String(value);
158
+ },
159
+ getElement: (item) => {
160
+ return renderCustomFieldValue({
161
+ value: getCustomFieldValue(item, definition.name),
162
+ definition: definition,
163
+ });
164
+ },
165
+ };
166
+ });
167
+ };
168
+ //# sourceMappingURL=CustomFieldColumns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CustomFieldColumns.js","sourceRoot":"","sources":["../../../../../UI/Components/ModelTable/CustomFieldColumns.tsx"],"names":[],"mappings":"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"}
@@ -49,6 +49,7 @@ const TableViewElement = (props) => {
49
49
  query: true,
50
50
  name: true,
51
51
  facets: true,
52
+ columns: true,
52
53
  },
53
54
  sort: {
54
55
  name: SortOrder.Ascending,
@@ -129,6 +130,13 @@ const TableViewElement = (props) => {
129
130
  return false;
130
131
  }));
131
132
  const hasActiveFilters = hasQueryFilters || hasFacetState;
133
+ /*
134
+ * A customized column layout is worth saving on its own - "the columns I
135
+ * care about, in my order" is a view even when nothing is filtered.
136
+ */
137
+ const hasColumnLayout = Boolean(props.currentColumns &&
138
+ Object.keys(props.currentColumns).length > 0);
139
+ const hasSavableState = hasActiveFilters || hasColumnLayout;
132
140
  const getMenuContents = () => {
133
141
  if (isLoading) {
134
142
  return [React.createElement(BarLoader, { key: -1, color: "var(--ou-link, #4f46e5)" })];
@@ -137,7 +145,7 @@ const TableViewElement = (props) => {
137
145
  if (allTableViews.length > 0) {
138
146
  elements.push(React.createElement(MoreMenuSection, { title: "Saved Views" }, getViewItems()));
139
147
  }
140
- if (hasActiveFilters) {
148
+ if (hasSavableState) {
141
149
  elements.push(React.createElement(MoreMenuItem, { key: "save-new-view", text: "Save as New View", className: "bg-gray-50 hover:bg-gray-100 text-gray-700 hover:text-gray-900 font-medium -mt-2", icon: IconProp.Add, iconClassName: "", onClick: () => {
142
150
  setShowCreateNewViewModel(true);
143
151
  } }));
@@ -200,6 +208,9 @@ const TableViewElement = (props) => {
200
208
  if (props.currentFacetState) {
201
209
  tableView.facets = props.currentFacetState;
202
210
  }
211
+ if (props.currentColumns) {
212
+ tableView.columns = props.currentColumns;
213
+ }
203
214
  return Promise.resolve(tableView);
204
215
  }, onSuccess: async (tableView) => {
205
216
  var _a;
@@ -262,7 +273,7 @@ const TableViewElement = (props) => {
262
273
  };
263
274
  if (!isLoading &&
264
275
  allTableViews.length === 0 &&
265
- !hasActiveFilters &&
276
+ !hasSavableState &&
266
277
  !currentlySelectedView) {
267
278
  return React.createElement(React.Fragment, null);
268
279
  }
@@ -1 +1 @@
1
- {"version":3,"file":"TableView.js","sourceRoot":"","sources":["../../../../../UI/Components/ModelTable/TableView.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TableView.js","sourceRoot":"","sources":["../../../../../UI/Components/ModelTable/TableView.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ import { getCustomFieldColumns, getCustomFieldDefinitions, } from "./CustomFieldColumns";
2
+ import ModelAPI from "../../Utils/ModelAPI/ModelAPI";
3
+ import ProjectUtil from "../../Utils/Project";
4
+ import { Logger } from "../../Utils/Logger";
5
+ import { LIMIT_PER_PROJECT } from "../../../Types/Database/LimitMax";
6
+ import { useEffect, useMemo, useState } from "react";
7
+ const useCustomFieldColumns = (data) => {
8
+ var _a;
9
+ const { customFieldsModelType } = data;
10
+ const [definitions, setDefinitions] = useState([]);
11
+ const [isLoading, setIsLoading] = useState(false);
12
+ const [error, setError] = useState("");
13
+ const projectId = (_a = data.projectId) !== null && _a !== void 0 ? _a : ProjectUtil.getCurrentProjectId();
14
+ const projectIdString = (projectId === null || projectId === void 0 ? void 0 : projectId.toString()) || "";
15
+ const modelName = (customFieldsModelType === null || customFieldsModelType === void 0 ? void 0 : customFieldsModelType.name) || "";
16
+ useEffect(() => {
17
+ if (!customFieldsModelType || !projectId) {
18
+ setDefinitions([]);
19
+ return;
20
+ }
21
+ let isCancelled = false;
22
+ const load = async () => {
23
+ setIsLoading(true);
24
+ setError("");
25
+ try {
26
+ const result = await ModelAPI.getList({
27
+ modelType: customFieldsModelType,
28
+ query: {
29
+ projectId: projectId,
30
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+ },
32
+ limit: LIMIT_PER_PROJECT,
33
+ skip: 0,
34
+ select: {
35
+ name: true,
36
+ customFieldType: true,
37
+ description: true,
38
+ dropdownOptions: true,
39
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
40
+ },
41
+ sort: {},
42
+ });
43
+ if (isCancelled) {
44
+ return;
45
+ }
46
+ setDefinitions(getCustomFieldDefinitions(result.data || []));
47
+ }
48
+ catch (err) {
49
+ if (isCancelled) {
50
+ return;
51
+ }
52
+ /*
53
+ * Custom fields are a paid feature and the caller may not have read
54
+ * access to the definition table, so a failure here is expected in
55
+ * normal operation. It costs the viewer some optional columns; it must
56
+ * never take the table down with it.
57
+ */
58
+ Logger.warn(`Could not load custom field definitions for ${modelName}: ${(err === null || err === void 0 ? void 0 : err.message) || String(err)}`);
59
+ setDefinitions([]);
60
+ setError((err === null || err === void 0 ? void 0 : err.message) || "");
61
+ }
62
+ finally {
63
+ if (!isCancelled) {
64
+ setIsLoading(false);
65
+ }
66
+ }
67
+ };
68
+ load().catch(() => {
69
+ // load() already funnels every failure into the catch above.
70
+ });
71
+ return () => {
72
+ isCancelled = true;
73
+ };
74
+ }, [modelName, projectIdString]);
75
+ const columns = useMemo(() => {
76
+ if (definitions.length === 0) {
77
+ return [];
78
+ }
79
+ return getCustomFieldColumns({ definitions });
80
+ }, [definitions]);
81
+ return { columns, definitions, isLoading, error };
82
+ };
83
+ export default useCustomFieldColumns;
84
+ //# sourceMappingURL=useCustomFieldColumns.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useCustomFieldColumns.js","sourceRoot":"","sources":["../../../../../UI/Components/ModelTable/useCustomFieldColumns.ts"],"names":[],"mappings":"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"}