@oneuptime/common 12.0.12 → 12.0.14

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 (596) hide show
  1. package/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.ts +32 -5
  2. package/Models/DatabaseModels/NetworkDevice.ts +64 -0
  3. package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +14 -0
  4. package/Models/DatabaseModels/StatusPage.ts +59 -0
  5. package/Models/DatabaseModels/StatusPageOidc.ts +2 -0
  6. package/Models/DatabaseModels/UserCall.ts +94 -3
  7. package/Models/DatabaseModels/UserEmail.ts +94 -3
  8. package/Models/DatabaseModels/UserIncomingCallNumber.ts +94 -3
  9. package/Models/DatabaseModels/UserPush.ts +37 -0
  10. package/Models/DatabaseModels/UserSMS.ts +94 -3
  11. package/Models/DatabaseModels/UserWhatsApp.ts +93 -2
  12. package/Models/DatabaseModels/WorkspaceProjectAuthToken.ts +19 -2
  13. package/Server/API/AIChatAPI.ts +55 -56
  14. package/Server/API/BaseAPI.ts +79 -14
  15. package/Server/API/CommonAPI.ts +89 -0
  16. package/Server/API/MicrosoftTeamsAPI.ts +20 -9
  17. package/Server/API/SlackAPI.ts +13 -10
  18. package/Server/API/StatusPageAPI.ts +2197 -2128
  19. package/Server/API/TelemetryAPI.ts +72 -3
  20. package/Server/API/UserCallAPI.ts +53 -45
  21. package/Server/API/UserEmailAPI.ts +53 -44
  22. package/Server/API/UserIncomingCallNumberAPI.ts +48 -38
  23. package/Server/API/UserNotificationMethodAdminAPI.ts +481 -0
  24. package/Server/API/UserPushAPI.ts +126 -2
  25. package/Server/API/UserSmsAPI.ts +53 -44
  26. package/Server/API/UserWhatsAppAPI.ts +53 -50
  27. package/Server/Infrastructure/Postgres/SchemaMigrations/1787142779538-MigrationName.ts +154 -0
  28. package/Server/Infrastructure/Postgres/SchemaMigrations/1787156982416-MigrationName.ts +17 -0
  29. package/Server/Infrastructure/Postgres/SchemaMigrations/1787500000000-AddEnableSearchEngineIndexingToStatusPage.ts +30 -0
  30. package/Server/Infrastructure/Postgres/SchemaMigrations/1787600000000-AddNetworkDeviceReachabilityColumns.ts +47 -0
  31. package/Server/Infrastructure/Postgres/SchemaMigrations/1787700000000-FixTotpOtpUrlAlgorithm.ts +45 -0
  32. package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +10 -0
  33. package/Server/Middleware/UserAuthorization.ts +11 -2
  34. package/Server/Middleware/VerificationCodeRateLimit.ts +586 -0
  35. package/Server/Services/AnalyticsDatabaseService.ts +169 -0
  36. package/Server/Services/ApiKeyPermissionService.ts +116 -2
  37. package/Server/Services/DatabaseService.ts +118 -6
  38. package/Server/Services/LogAggregationService.ts +39 -0
  39. package/Server/Services/LogService.ts +21 -0
  40. package/Server/Services/NetworkSiteService.ts +12 -0
  41. package/Server/Services/PushNotificationService.ts +127 -12
  42. package/Server/Services/SpanService.ts +21 -0
  43. package/Server/Services/TeamMemberService.ts +53 -13
  44. package/Server/Services/TraceAggregationService.ts +15 -0
  45. package/Server/Services/UserCallService.ts +55 -24
  46. package/Server/Services/UserEmailService.ts +83 -17
  47. package/Server/Services/UserIncomingCallNumberService.ts +49 -85
  48. package/Server/Services/UserNotificationMethodAdminService.ts +1527 -0
  49. package/Server/Services/UserNotificationRuleService.ts +26 -0
  50. package/Server/Services/UserPushService.ts +89 -0
  51. package/Server/Services/UserSmsService.ts +50 -17
  52. package/Server/Services/UserWhatsAppService.ts +48 -15
  53. package/Server/Services/WorkspaceNotificationRuleService.ts +172 -220
  54. package/Server/Types/AnalyticsDatabase/ModelPermission.ts +9 -0
  55. package/Server/Types/Database/Permissions/AccessControlPermission.ts +47 -16
  56. package/Server/Types/Database/QueryHelper.ts +30 -0
  57. package/Server/Utils/APIKey/AccessPermission.ts +16 -40
  58. package/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.ts +59 -0
  59. package/Server/Utils/AnalyticsDatabase/StatementGenerator.ts +144 -0
  60. package/Server/Utils/ChannelVerification.ts +510 -0
  61. package/Server/Utils/LogRedaction.ts +576 -0
  62. package/Server/Utils/Logger.ts +123 -46
  63. package/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.ts +13 -16
  64. package/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.ts +94 -23
  65. package/Server/Utils/Monitor/MonitorAlert.ts +24 -21
  66. package/Server/Utils/Monitor/MonitorIncident.ts +21 -18
  67. package/Server/Utils/Monitor/MonitorResource.ts +29 -9
  68. package/Server/Utils/Monitor/MonitorResourceContext.ts +107 -0
  69. package/Server/Utils/Monitor/MonitorStepResourceIdentity.ts +442 -0
  70. package/Server/Utils/Monitor/NetworkInventoryUtil.ts +28 -7
  71. package/Server/Utils/Monitor/SeriesResourceLabels.ts +3 -3
  72. package/Server/Utils/Monitor/SeriesResourceLinker.ts +96 -28
  73. package/Server/Utils/SessionReplay/SessionReplayGateCacheStore.ts +56 -10
  74. package/Server/Utils/StartServer.ts +30 -9
  75. package/Server/Utils/StatusPageSearchEngineIndexing.ts +33 -0
  76. package/Server/Utils/Telemetry/ResourceEntityFilter.ts +441 -0
  77. package/Server/Utils/TotpAuth.ts +137 -9
  78. package/Server/Utils/UserRegistrationToken.ts +182 -0
  79. package/Server/Utils/VerificationCode.ts +134 -0
  80. package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +488 -46
  81. package/Tests/App/Dashboard/AdminNotificationRulesPage.test.tsx +173 -94
  82. package/Tests/App/Dashboard/AdminUserNotificationMethodsPage.test.tsx +1151 -0
  83. package/Tests/App/Dashboard/AdminUserOnCallPages.test.tsx +905 -0
  84. package/Tests/App/Dashboard/DashboardCommandPalette.test.tsx +338 -0
  85. package/Tests/App/Dashboard/InvestigationPanel.test.tsx +1 -1
  86. package/Tests/App/Dashboard/MonitorTypePicker.test.tsx +328 -0
  87. package/Tests/App/StatusPage/StatusPageIndexPageRobotsMeta.test.ts +130 -0
  88. package/Tests/Models/DatabaseModels/DatabaseBaseModelToJSONObjectCache.test.ts +180 -0
  89. package/Tests/Models/StatusPageEnableSearchEngineIndexing.test.ts +157 -0
  90. package/Tests/Models/UserPushCriticalAlertColumn.test.ts +172 -0
  91. package/Tests/Server/API/AIChatCancelAndFeedback.test.ts +23 -1
  92. package/Tests/Server/API/AIChatRouteAuthorization.test.ts +785 -0
  93. package/Tests/Server/API/BaseAPIApiKeyAuth.test.ts +21 -8
  94. package/Tests/Server/API/BaseAPIGetListParallel.test.ts +519 -0
  95. package/Tests/Server/API/CommonAPIAuthGuard.test.ts +290 -0
  96. package/Tests/Server/API/MicrosoftTeamsManifest.test.ts +7 -1
  97. package/Tests/Server/API/NotificationChannelVerificationAPI.test.ts +543 -0
  98. package/Tests/Server/API/StatusPageOverviewCache.test.ts +474 -0
  99. package/Tests/Server/API/StatusPageSeoSearchEngineIndexing.test.ts +189 -0
  100. package/Tests/Server/API/UserIncomingCallNumberApi.test.ts +108 -18
  101. package/Tests/Server/API/UserNotificationMethodAdminAPI.test.ts +963 -0
  102. package/Tests/Server/API/UserPushCriticalAlertsApi.test.ts +114 -0
  103. package/Tests/Server/API/UserSmsApi.test.ts +107 -14
  104. package/Tests/Server/API/UserTotpAuthAPI.test.ts +427 -0
  105. package/Tests/Server/Infrastructure/InMemoryTTLCache.test.ts +158 -0
  106. package/Tests/Server/Infrastructure/Postgres/DeviceRoleAndDeclaredLinkParentMigration.test.ts +9 -60
  107. package/Tests/Server/Infrastructure/Postgres/FixTotpOtpUrlAlgorithmMigration.test.ts +315 -0
  108. package/Tests/Server/Middleware/ProjectAuthorizationApiKeyMiddleware.test.ts +24 -15
  109. package/Tests/Server/Middleware/UserAuthorization.test.ts +79 -0
  110. package/Tests/Server/Middleware/VerificationCodeRateLimit.test.ts +775 -0
  111. package/Tests/Server/Services/AddNetworkDeviceReachabilityColumnsMigration.test.ts +280 -0
  112. package/Tests/Server/Services/AnalyticsDatabasePaginationStability.test.ts +33 -13
  113. package/Tests/Server/Services/AnalyticsDatabaseSortKeyBoundary.test.ts +658 -0
  114. package/Tests/Server/Services/ApiKeyPermissionService.test.ts +347 -0
  115. package/Tests/Server/Services/CriticalOnCallAlertDelivery.test.ts +458 -0
  116. package/Tests/Server/Services/CriticalPushAlertPayload.test.ts +301 -0
  117. package/Tests/Server/Services/DatabaseServiceAtomicIncrement.test.ts +143 -0
  118. package/Tests/Server/Services/DatabaseServiceUpdateDebugLogging.test.ts +282 -0
  119. package/Tests/Server/Services/DeliverNotificationForRuleExtraction.test.ts +1 -0
  120. package/Tests/Server/Services/LogAggregationScanMemory.test.ts +421 -0
  121. package/Tests/Server/Services/LogAggregationService.test.ts +2 -2
  122. package/Tests/Server/Services/NetworkSiteService.test.ts +56 -2
  123. package/Tests/Server/Services/NotificationChannelCodeIssuance.test.ts +401 -0
  124. package/Tests/Server/Services/PushNotificationDeliveryOptions.test.ts +204 -0
  125. package/Tests/Server/Services/TeamMemberAutoAcceptInvitation.test.ts +21 -1
  126. package/Tests/Server/Services/TeamMemberInviteRegistrationToken.test.ts +290 -0
  127. package/Tests/Server/Services/TelemetryResourceFacetFilters.test.ts +267 -0
  128. package/Tests/Server/Services/UserNotificationMethodAdminService.test.ts +948 -0
  129. package/Tests/Server/Services/UserNotificationRuleExecuteItem.test.ts +1 -0
  130. package/Tests/Server/Services/UserPushCriticalAlertToggle.test.ts +255 -0
  131. package/Tests/Server/Services/UserTotpAuthEnrolment.test.ts +218 -0
  132. package/Tests/Server/Services/WorkspaceNotificationRuleTestRuleChannels.test.ts +702 -0
  133. package/Tests/Server/TestingUtils/AuthenticatorApp.ts +248 -0
  134. package/Tests/Server/Types/Database/Permissions/AccessControlPermission.test.ts +165 -0
  135. package/Tests/Server/Types/Database/Permissions/NotificationChannelVerificationColumns.test.ts +135 -0
  136. package/Tests/Server/Types/Database/Permissions/OnCallScheduleRelationSelect.test.ts +504 -0
  137. package/Tests/Server/Types/Database/QueryHelperFindWithSameTextAnyOf.test.ts +91 -0
  138. package/Tests/Server/Types/Workflow/Components/JsonToText.test.ts +384 -0
  139. package/Tests/Server/Types/Workflow/Components/MergeJson.test.ts +403 -0
  140. package/Tests/Server/Utils/APIKey/AccessPermission.test.ts +48 -36
  141. package/Tests/Server/Utils/AnalyticsDatabase/StatementGenerator.test.ts +213 -0
  142. package/Tests/Server/Utils/Browser.test.ts +162 -0
  143. package/Tests/Server/Utils/ChannelVerification.test.ts +689 -0
  144. package/Tests/Server/Utils/Express.test.ts +371 -0
  145. package/Tests/Server/Utils/LogRedaction.test.ts +415 -0
  146. package/Tests/Server/Utils/LoggerCredentialLeak.test.ts +245 -0
  147. package/Tests/Server/Utils/Monitor/Criteria/CustomCodeMonitorCriteria.test.ts +707 -0
  148. package/Tests/Server/Utils/Monitor/Criteria/DnsMonitorCriteria.test.ts +698 -0
  149. package/Tests/Server/Utils/Monitor/Criteria/IncomingEmailBodyCriteria.test.ts +243 -0
  150. package/Tests/Server/Utils/Monitor/Criteria/IncomingRequestBodyCriteria.test.ts +278 -0
  151. package/Tests/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.test.ts +374 -4
  152. package/Tests/Server/Utils/Monitor/MonitorAlertResourceLinking.test.ts +160 -20
  153. package/Tests/Server/Utils/Monitor/MonitorDependencySuppressionCreatorSkip.test.ts +13 -8
  154. package/Tests/Server/Utils/Monitor/MonitorIncidentResourceLinking.test.ts +162 -18
  155. package/Tests/Server/Utils/Monitor/MonitorResourceContext.test.ts +349 -0
  156. package/Tests/Server/Utils/Monitor/MonitorResourceIngestedStepSelection.test.ts +455 -0
  157. package/Tests/Server/Utils/Monitor/MonitorStepResourceIdentity.test.ts +690 -0
  158. package/Tests/Server/Utils/Monitor/MonitorSummaryPersistence.test.ts +7 -2
  159. package/Tests/Server/Utils/Monitor/NetworkDeviceReachabilityRoundTrip.test.ts +369 -0
  160. package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +86 -8
  161. package/Tests/Server/Utils/Monitor/SeriesResourceLinker.test.ts +92 -18
  162. package/Tests/Server/Utils/PrivacyFilterUtil.test.ts +64 -0
  163. package/Tests/Server/Utils/PushNotificationUtilCreators.test.ts +267 -0
  164. package/Tests/Server/Utils/SessionReplay/SessionReplayGateCacheStore.test.ts +207 -0
  165. package/Tests/Server/Utils/StartServerBodyVerify.test.ts +335 -0
  166. package/Tests/Server/Utils/StatusPageSearchEngineIndexing.test.ts +60 -0
  167. package/Tests/Server/Utils/Telemetry/OneuptimeLabel.test.ts +439 -0
  168. package/Tests/Server/Utils/Telemetry/ResourceEntityFilter.test.ts +435 -0
  169. package/Tests/Server/Utils/TotpAuth.test.ts +719 -0
  170. package/Tests/Server/Utils/UserRegistrationToken.test.ts +322 -0
  171. package/Tests/Server/Utils/VerificationCode.test.ts +296 -0
  172. package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelSend.test.ts +607 -62
  173. package/Tests/Server/Utils/Workspace/MicrosoftTeamsInstalledTeamIdSpace.test.ts +778 -0
  174. package/Tests/Server/Utils/Workspace/MicrosoftTeamsTeamInstalls.test.ts +44 -10
  175. package/Tests/Types/API/HostnameFromAuthority.test.ts +164 -0
  176. package/Tests/Types/AutoRemediation/AutoRemediationSuggestionStatus.test.ts +192 -0
  177. package/Tests/Types/Call/CallRequest.test.ts +189 -0
  178. package/Tests/Types/Dashboard/DashboardSize.test.ts +226 -0
  179. package/Tests/Types/Database/AccessControl/ColumnAccessControlCache.test.ts +344 -0
  180. package/Tests/Types/Database/DatabasePropertyFindOperator.test.ts +518 -0
  181. package/Tests/Types/Database/TableColumnMetadataCache.test.ts +286 -0
  182. package/Tests/Types/Incident/IncidentSlaStatus.test.ts +191 -0
  183. package/Tests/Types/Metrics/MetricDashboardMetricType.test.ts +278 -0
  184. package/Tests/Types/Metrics/MetricPipelineRuleType.test.ts +517 -0
  185. package/Tests/Types/Monitor/IncomingMonitorDefaultCriteria.test.ts +470 -0
  186. package/Tests/Types/Monitor/MonitorCriteriaInstance.test.ts +6 -4
  187. package/Tests/Types/Monitor/MonitorStep.test.ts +100 -0
  188. package/Tests/Types/Monitor/MonitorTypeKeywords.test.ts +360 -0
  189. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCatalog.test.ts +262 -5
  190. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationCoverage.test.ts +1 -1
  191. package/Tests/Types/Monitor/Recommendation/MonitorRecommendationNotificationMode.test.ts +1 -1
  192. package/Tests/Types/Monitor/ServiceAlertTemplates.test.ts +905 -0
  193. package/Tests/Types/Service/ServiceLanguage.test.ts +255 -0
  194. package/Tests/Types/StatusPage/SearchEngineIndexing.test.ts +86 -0
  195. package/Tests/Types/Telemetry/ResourceEntityFacet.test.ts +254 -0
  196. package/Tests/Types/TextRandomGeneration.test.ts +211 -0
  197. package/Tests/UI/Components/Button.test.tsx +175 -1
  198. package/Tests/UI/Components/CardSelect.test.tsx +1021 -0
  199. package/Tests/UI/Components/CodeBlockLanguages.test.tsx +236 -0
  200. package/Tests/UI/Components/CommandPalette/CommandPalette.test.tsx +568 -0
  201. package/Tests/UI/Components/CommandPalette/CommandPaletteKeyboard.test.tsx +239 -0
  202. package/Tests/UI/Components/CommandPalette/CommandPaletteProviders.test.tsx +400 -0
  203. package/Tests/UI/Components/CommandPalette/PaletteFilter.test.ts +234 -0
  204. package/Tests/UI/Components/CommandPalette/RecentCommands.test.ts +97 -0
  205. package/Tests/UI/Components/CountModelSideMenuItemGuard.test.tsx +198 -0
  206. package/Tests/UI/Components/FeedItemSafeMode.test.tsx +1 -1
  207. package/Tests/UI/Components/Forms/Utils/FormFieldSchemaTypeUtil.test.ts +267 -0
  208. package/Tests/UI/Components/List.test.tsx +9 -2
  209. package/Tests/UI/Components/ListLoadingStates.test.tsx +173 -0
  210. package/Tests/UI/Components/MarkdownLazy.test.tsx +113 -0
  211. package/Tests/UI/Components/MarkdownMermaidRetry.test.tsx +110 -0
  212. package/Tests/UI/Components/MasterPage.test.tsx +36 -1
  213. package/Tests/UI/Components/ModelTable/useCustomFieldColumns.test.tsx +8 -0
  214. package/Tests/UI/Components/MonitorTemplateVariables/TemplateVariablesCatalog.test.ts +692 -0
  215. package/Tests/UI/Components/MoreMenuMotion.test.tsx +118 -0
  216. package/Tests/UI/Components/NavBarCommandKGating.test.tsx +178 -0
  217. package/Tests/UI/Components/OrderedStatesList.test.tsx +19 -2
  218. package/Tests/UI/Components/SideOverMotion.test.tsx +109 -0
  219. package/Tests/UI/Components/Skeleton.test.tsx +71 -0
  220. package/Tests/UI/Components/TableLoadingStates.test.tsx +279 -0
  221. package/Tests/UI/Components/Tabs.test.tsx +24 -0
  222. package/Tests/UI/Components/Toast.test.tsx +130 -7
  223. package/Tests/UI/Components/ToastStacking.test.tsx +198 -0
  224. package/Tests/UI/Utils/Dropdown.test.ts +423 -0
  225. package/Tests/UI/Utils/ModelAPITenantHeader.test.ts +122 -0
  226. package/Tests/UI/Utils/ModelListCache.test.ts +338 -0
  227. package/Tests/UI/Utils/ProjectListCacheInvalidation.test.ts +225 -0
  228. package/Tests/Utils/API.test.ts +16 -2
  229. package/Tests/Utils/Dashboard/Components/DashboardKubernetesResourceListShared.test.ts +347 -0
  230. package/Tests/Utils/Dashboard/Components/DashboardListSharedArgs.test.ts +259 -0
  231. package/Tests/Utils/Dashboard/Components/DashboardMonitorListComponent.test.ts +466 -0
  232. package/Tests/Utils/Monitor/MonitorMetricType.test.ts +66 -1
  233. package/Tests/Utils/Monitor/NetworkTopologyUtil.test.ts +115 -6
  234. package/Tests/Utils/NetworkDevice/DeviceReachabilityUtil.test.ts +610 -0
  235. package/Tests/Utils/NetworkSite/SiteStatusRollupUtil.test.ts +114 -45
  236. package/Tests/Utils/Rum/UrlScrubberSegments.test.ts +362 -0
  237. package/Types/API/Hostname.ts +79 -0
  238. package/Types/Database/AccessControl/ColumnAccessControl.ts +33 -11
  239. package/Types/Database/AccessControl/ColumnBillingAccessControl.ts +33 -11
  240. package/Types/Database/DatabaseProperty.ts +38 -0
  241. package/Types/Database/TableColumn.ts +34 -7
  242. package/Types/Email/EmailTemplateType.ts +1 -0
  243. package/Types/Events/Recurring.ts +16 -1
  244. package/Types/Monitor/MonitorCriteriaInstance.ts +41 -20
  245. package/Types/Monitor/MonitorStep.ts +13 -1
  246. package/Types/Monitor/MonitorType.ts +345 -40
  247. package/Types/Monitor/Recommendation/MonitorRecommendationCatalog.ts +131 -8
  248. package/Types/Monitor/Recommendation/MonitorRecommendationTypes.ts +48 -8
  249. package/Types/Monitor/SSLMonitor/SslMonitorResponse.ts +43 -0
  250. package/Types/Monitor/ServiceAlertTemplates.ts +1352 -0
  251. package/Types/Permission.ts +35 -0
  252. package/Types/PushNotification/AndroidNotificationChannel.ts +26 -0
  253. package/Types/PushNotification/PushNotificationMessage.ts +15 -0
  254. package/Types/PushNotification/PushNotificationRequest.ts +8 -16
  255. package/Types/Service/ServiceLanguage.ts +144 -0
  256. package/Types/StatusPage/SearchEngineIndexing.ts +61 -0
  257. package/Types/Telemetry/ResourceEntityFacet.ts +211 -0
  258. package/Types/Text.ts +111 -19
  259. package/UI/Components/Button/Button.tsx +27 -14
  260. package/UI/Components/CardSelect/CardSelect.tsx +714 -105
  261. package/UI/Components/CodeBlock/CodeBlock.tsx +54 -7
  262. package/UI/Components/CodeBlock/LanguageRegistry.ts +103 -0
  263. package/UI/Components/CommandPalette/CommandPalette.tsx +790 -0
  264. package/UI/Components/CommandPalette/PaletteFilter.ts +196 -0
  265. package/UI/Components/CommandPalette/PaletteRow.tsx +173 -0
  266. package/UI/Components/CommandPalette/RecentCommands.ts +57 -0
  267. package/UI/Components/CommandPalette/Types.ts +49 -0
  268. package/UI/Components/CommandPalette/UseProviderSearch.ts +129 -0
  269. package/UI/Components/Dropdown/Dropdown.tsx +6 -1
  270. package/UI/Components/EmptyState/EmptyState.tsx +8 -1
  271. package/UI/Components/Feed/FeedItem.tsx +1 -1
  272. package/UI/Components/Footer/Footer.tsx +32 -6
  273. package/UI/Components/Forms/Fields/FormField.tsx +3 -0
  274. package/UI/Components/Forms/Types/Field.ts +8 -0
  275. package/UI/Components/List/List.tsx +37 -5
  276. package/UI/Components/List/ListSkeleton.tsx +54 -0
  277. package/UI/Components/Loader/PageLoader.tsx +29 -8
  278. package/UI/Components/LogsViewer/components/LogsAnalyticsView.tsx +26 -4
  279. package/UI/Components/Markdown.tsx/LazyMarkdownViewer.tsx +23 -2
  280. package/UI/Components/Markdown.tsx/MarkdownViewer.tsx +71 -26
  281. package/UI/Components/MasterPage/MasterPage.tsx +24 -11
  282. package/UI/Components/Modal/Modal.tsx +2 -2
  283. package/UI/Components/ModelTable/BaseModelTable.tsx +1 -1
  284. package/UI/Components/ModelTable/useCustomFieldColumns.ts +11 -5
  285. package/UI/Components/MoreMenu/MoreMenu.tsx +39 -1
  286. package/UI/Components/Navbar/NavBar.tsx +14 -1
  287. package/UI/Components/OrderedStatesList/OrderedStatesList.tsx +50 -5
  288. package/UI/Components/SideMenu/CountModelSideMenuItem.tsx +40 -1
  289. package/UI/Components/SideOver/SideOver.tsx +37 -2
  290. package/UI/Components/Skeleton/Skeleton.tsx +53 -0
  291. package/UI/Components/Table/Table.tsx +74 -44
  292. package/UI/Components/Table/TableSkeletonRows.tsx +141 -0
  293. package/UI/Components/Tabs/Tab.tsx +1 -1
  294. package/UI/Components/Toast/Toast.tsx +118 -53
  295. package/UI/Components/Toast/ToastInit.tsx +82 -32
  296. package/UI/Styles/Theme.css +40 -0
  297. package/UI/Utils/ModelAPI/ModelAPI.ts +20 -10
  298. package/UI/Utils/ModelListCache.ts +188 -0
  299. package/UI/Utils/Project.ts +29 -0
  300. package/Utils/API.ts +6 -1
  301. package/Utils/Monitor/MonitorMetricType.ts +16 -1
  302. package/Utils/Monitor/NetworkTopologyUtil.ts +60 -8
  303. package/Utils/NetworkDevice/DeviceReachabilityUtil.ts +262 -0
  304. package/Utils/NetworkSite/SiteStatusRollupUtil.ts +41 -24
  305. package/Utils/Telemetry/CrossSignalScope.ts +75 -4
  306. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js +20 -4
  307. package/build/dist/Models/DatabaseModels/DatabaseBaseModel/DatabaseBaseModel.js.map +1 -1
  308. package/build/dist/Models/DatabaseModels/NetworkDevice.js +66 -0
  309. package/build/dist/Models/DatabaseModels/NetworkDevice.js.map +1 -1
  310. package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +14 -0
  311. package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
  312. package/build/dist/Models/DatabaseModels/StatusPage.js +60 -0
  313. package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
  314. package/build/dist/Models/DatabaseModels/StatusPageOidc.js +2 -0
  315. package/build/dist/Models/DatabaseModels/StatusPageOidc.js.map +1 -1
  316. package/build/dist/Models/DatabaseModels/UserCall.js +101 -3
  317. package/build/dist/Models/DatabaseModels/UserCall.js.map +1 -1
  318. package/build/dist/Models/DatabaseModels/UserEmail.js +101 -3
  319. package/build/dist/Models/DatabaseModels/UserEmail.js.map +1 -1
  320. package/build/dist/Models/DatabaseModels/UserIncomingCallNumber.js +101 -3
  321. package/build/dist/Models/DatabaseModels/UserIncomingCallNumber.js.map +1 -1
  322. package/build/dist/Models/DatabaseModels/UserPush.js +38 -0
  323. package/build/dist/Models/DatabaseModels/UserPush.js.map +1 -1
  324. package/build/dist/Models/DatabaseModels/UserSMS.js +101 -3
  325. package/build/dist/Models/DatabaseModels/UserSMS.js.map +1 -1
  326. package/build/dist/Models/DatabaseModels/UserWhatsApp.js +100 -2
  327. package/build/dist/Models/DatabaseModels/UserWhatsApp.js.map +1 -1
  328. package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js.map +1 -1
  329. package/build/dist/Server/API/AIChatAPI.js +48 -35
  330. package/build/dist/Server/API/AIChatAPI.js.map +1 -1
  331. package/build/dist/Server/API/BaseAPI.js +69 -13
  332. package/build/dist/Server/API/BaseAPI.js.map +1 -1
  333. package/build/dist/Server/API/CommonAPI.js +59 -0
  334. package/build/dist/Server/API/CommonAPI.js.map +1 -1
  335. package/build/dist/Server/API/MicrosoftTeamsAPI.js +20 -6
  336. package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
  337. package/build/dist/Server/API/SlackAPI.js +13 -10
  338. package/build/dist/Server/API/SlackAPI.js.map +1 -1
  339. package/build/dist/Server/API/StatusPageAPI.js +745 -673
  340. package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
  341. package/build/dist/Server/API/TelemetryAPI.js +34 -3
  342. package/build/dist/Server/API/TelemetryAPI.js.map +1 -1
  343. package/build/dist/Server/API/UserCallAPI.js +42 -38
  344. package/build/dist/Server/API/UserCallAPI.js.map +1 -1
  345. package/build/dist/Server/API/UserEmailAPI.js +42 -38
  346. package/build/dist/Server/API/UserEmailAPI.js.map +1 -1
  347. package/build/dist/Server/API/UserIncomingCallNumberAPI.js +37 -32
  348. package/build/dist/Server/API/UserIncomingCallNumberAPI.js.map +1 -1
  349. package/build/dist/Server/API/UserNotificationMethodAdminAPI.js +341 -0
  350. package/build/dist/Server/API/UserNotificationMethodAdminAPI.js.map +1 -0
  351. package/build/dist/Server/API/UserPushAPI.js +95 -2
  352. package/build/dist/Server/API/UserPushAPI.js.map +1 -1
  353. package/build/dist/Server/API/UserSmsAPI.js +42 -38
  354. package/build/dist/Server/API/UserSmsAPI.js.map +1 -1
  355. package/build/dist/Server/API/UserWhatsAppAPI.js +42 -40
  356. package/build/dist/Server/API/UserWhatsAppAPI.js.map +1 -1
  357. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787142779538-MigrationName.js +89 -0
  358. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787142779538-MigrationName.js.map +1 -0
  359. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787156982416-MigrationName.js +12 -0
  360. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787156982416-MigrationName.js.map +1 -0
  361. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787500000000-AddEnableSearchEngineIndexingToStatusPage.js +23 -0
  362. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787500000000-AddEnableSearchEngineIndexingToStatusPage.js.map +1 -0
  363. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787600000000-AddNetworkDeviceReachabilityColumns.js +34 -0
  364. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787600000000-AddNetworkDeviceReachabilityColumns.js.map +1 -0
  365. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787700000000-FixTotpOtpUrlAlgorithm.js +40 -0
  366. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1787700000000-FixTotpOtpUrlAlgorithm.js.map +1 -0
  367. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +10 -0
  368. package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
  369. package/build/dist/Server/Middleware/UserAuthorization.js +6 -2
  370. package/build/dist/Server/Middleware/UserAuthorization.js.map +1 -1
  371. package/build/dist/Server/Middleware/VerificationCodeRateLimit.js +393 -0
  372. package/build/dist/Server/Middleware/VerificationCodeRateLimit.js.map +1 -0
  373. package/build/dist/Server/Services/AnalyticsDatabaseService.js +136 -0
  374. package/build/dist/Server/Services/AnalyticsDatabaseService.js.map +1 -1
  375. package/build/dist/Server/Services/ApiKeyPermissionService.js +90 -1
  376. package/build/dist/Server/Services/ApiKeyPermissionService.js.map +1 -1
  377. package/build/dist/Server/Services/DatabaseService.js +89 -6
  378. package/build/dist/Server/Services/DatabaseService.js.map +1 -1
  379. package/build/dist/Server/Services/LogAggregationService.js +7 -0
  380. package/build/dist/Server/Services/LogAggregationService.js.map +1 -1
  381. package/build/dist/Server/Services/LogService.js +16 -0
  382. package/build/dist/Server/Services/LogService.js.map +1 -1
  383. package/build/dist/Server/Services/NetworkSiteService.js +12 -0
  384. package/build/dist/Server/Services/NetworkSiteService.js.map +1 -1
  385. package/build/dist/Server/Services/PushNotificationService.js +69 -30
  386. package/build/dist/Server/Services/PushNotificationService.js.map +1 -1
  387. package/build/dist/Server/Services/SpanService.js +16 -0
  388. package/build/dist/Server/Services/SpanService.js.map +1 -1
  389. package/build/dist/Server/Services/TeamMemberService.js +43 -7
  390. package/build/dist/Server/Services/TeamMemberService.js.map +1 -1
  391. package/build/dist/Server/Services/TraceAggregationService.js +2 -0
  392. package/build/dist/Server/Services/TraceAggregationService.js.map +1 -1
  393. package/build/dist/Server/Services/UserCallService.js +54 -22
  394. package/build/dist/Server/Services/UserCallService.js.map +1 -1
  395. package/build/dist/Server/Services/UserEmailService.js +78 -17
  396. package/build/dist/Server/Services/UserEmailService.js.map +1 -1
  397. package/build/dist/Server/Services/UserIncomingCallNumberService.js +45 -74
  398. package/build/dist/Server/Services/UserIncomingCallNumberService.js.map +1 -1
  399. package/build/dist/Server/Services/UserNotificationMethodAdminService.js +1117 -0
  400. package/build/dist/Server/Services/UserNotificationMethodAdminService.js.map +1 -0
  401. package/build/dist/Server/Services/UserNotificationRuleService.js +20 -0
  402. package/build/dist/Server/Services/UserNotificationRuleService.js.map +1 -1
  403. package/build/dist/Server/Services/UserPushService.js +77 -0
  404. package/build/dist/Server/Services/UserPushService.js.map +1 -1
  405. package/build/dist/Server/Services/UserSmsService.js +50 -17
  406. package/build/dist/Server/Services/UserSmsService.js.map +1 -1
  407. package/build/dist/Server/Services/UserWhatsAppService.js +48 -15
  408. package/build/dist/Server/Services/UserWhatsAppService.js.map +1 -1
  409. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +137 -164
  410. package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
  411. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js +9 -0
  412. package/build/dist/Server/Types/AnalyticsDatabase/ModelPermission.js.map +1 -1
  413. package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js +21 -13
  414. package/build/dist/Server/Types/Database/Permissions/AccessControlPermission.js.map +1 -1
  415. package/build/dist/Server/Types/Database/QueryHelper.js +27 -0
  416. package/build/dist/Server/Types/Database/QueryHelper.js.map +1 -1
  417. package/build/dist/Server/Utils/APIKey/AccessPermission.js +9 -32
  418. package/build/dist/Server/Utils/APIKey/AccessPermission.js.map +1 -1
  419. package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js +46 -0
  420. package/build/dist/Server/Utils/AnalyticsDatabase/QuerySettingsHelper.js.map +1 -1
  421. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js +87 -0
  422. package/build/dist/Server/Utils/AnalyticsDatabase/StatementGenerator.js.map +1 -1
  423. package/build/dist/Server/Utils/ChannelVerification.js +348 -0
  424. package/build/dist/Server/Utils/ChannelVerification.js.map +1 -0
  425. package/build/dist/Server/Utils/LogRedaction.js +449 -0
  426. package/build/dist/Server/Utils/LogRedaction.js.map +1 -0
  427. package/build/dist/Server/Utils/Logger.js +98 -45
  428. package/build/dist/Server/Utils/Logger.js.map +1 -1
  429. package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js +13 -12
  430. package/build/dist/Server/Utils/Monitor/Criteria/IncomingRequestCriteria.js.map +1 -1
  431. package/build/dist/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.js +65 -13
  432. package/build/dist/Server/Utils/Monitor/Criteria/SSLMonitorCriteria.js.map +1 -1
  433. package/build/dist/Server/Utils/Monitor/MonitorAlert.js +20 -17
  434. package/build/dist/Server/Utils/Monitor/MonitorAlert.js.map +1 -1
  435. package/build/dist/Server/Utils/Monitor/MonitorIncident.js +17 -14
  436. package/build/dist/Server/Utils/Monitor/MonitorIncident.js.map +1 -1
  437. package/build/dist/Server/Utils/Monitor/MonitorResource.js +20 -3
  438. package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
  439. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js +95 -0
  440. package/build/dist/Server/Utils/Monitor/MonitorResourceContext.js.map +1 -0
  441. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js +313 -0
  442. package/build/dist/Server/Utils/Monitor/MonitorStepResourceIdentity.js.map +1 -0
  443. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js +27 -7
  444. package/build/dist/Server/Utils/Monitor/NetworkInventoryUtil.js.map +1 -1
  445. package/build/dist/Server/Utils/Monitor/SeriesResourceLabels.js +3 -3
  446. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js +67 -26
  447. package/build/dist/Server/Utils/Monitor/SeriesResourceLinker.js.map +1 -1
  448. package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCacheStore.js +29 -10
  449. package/build/dist/Server/Utils/SessionReplay/SessionReplayGateCacheStore.js.map +1 -1
  450. package/build/dist/Server/Utils/StartServer.js +10 -7
  451. package/build/dist/Server/Utils/StartServer.js.map +1 -1
  452. package/build/dist/Server/Utils/StatusPageSearchEngineIndexing.js +24 -0
  453. package/build/dist/Server/Utils/StatusPageSearchEngineIndexing.js.map +1 -0
  454. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js +311 -0
  455. package/build/dist/Server/Utils/Telemetry/ResourceEntityFilter.js.map +1 -0
  456. package/build/dist/Server/Utils/TotpAuth.js +127 -8
  457. package/build/dist/Server/Utils/TotpAuth.js.map +1 -1
  458. package/build/dist/Server/Utils/UserRegistrationToken.js +170 -0
  459. package/build/dist/Server/Utils/UserRegistrationToken.js.map +1 -0
  460. package/build/dist/Server/Utils/VerificationCode.js +120 -0
  461. package/build/dist/Server/Utils/VerificationCode.js.map +1 -0
  462. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +366 -37
  463. package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
  464. package/build/dist/Types/API/Hostname.js +63 -0
  465. package/build/dist/Types/API/Hostname.js.map +1 -1
  466. package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js +20 -6
  467. package/build/dist/Types/Database/AccessControl/ColumnAccessControl.js.map +1 -1
  468. package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js +20 -6
  469. package/build/dist/Types/Database/AccessControl/ColumnBillingAccessControl.js.map +1 -1
  470. package/build/dist/Types/Database/DatabaseProperty.js +38 -0
  471. package/build/dist/Types/Database/DatabaseProperty.js.map +1 -1
  472. package/build/dist/Types/Database/TableColumn.js +24 -6
  473. package/build/dist/Types/Database/TableColumn.js.map +1 -1
  474. package/build/dist/Types/Email/EmailTemplateType.js +1 -0
  475. package/build/dist/Types/Email/EmailTemplateType.js.map +1 -1
  476. package/build/dist/Types/Events/Recurring.js +13 -1
  477. package/build/dist/Types/Events/Recurring.js.map +1 -1
  478. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js +42 -21
  479. package/build/dist/Types/Monitor/MonitorCriteriaInstance.js.map +1 -1
  480. package/build/dist/Types/Monitor/MonitorStep.js +9 -1
  481. package/build/dist/Types/Monitor/MonitorStep.js.map +1 -1
  482. package/build/dist/Types/Monitor/MonitorType.js +330 -31
  483. package/build/dist/Types/Monitor/MonitorType.js.map +1 -1
  484. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js +77 -5
  485. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationCatalog.js.map +1 -1
  486. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js +18 -6
  487. package/build/dist/Types/Monitor/Recommendation/MonitorRecommendationTypes.js.map +1 -1
  488. package/build/dist/Types/Monitor/ServiceAlertTemplates.js +1028 -0
  489. package/build/dist/Types/Monitor/ServiceAlertTemplates.js.map +1 -0
  490. package/build/dist/Types/Permission.js +33 -0
  491. package/build/dist/Types/Permission.js.map +1 -1
  492. package/build/dist/Types/PushNotification/AndroidNotificationChannel.js +27 -0
  493. package/build/dist/Types/PushNotification/AndroidNotificationChannel.js.map +1 -0
  494. package/build/dist/Types/Service/ServiceLanguage.js +96 -0
  495. package/build/dist/Types/Service/ServiceLanguage.js.map +1 -0
  496. package/build/dist/Types/StatusPage/SearchEngineIndexing.js +55 -0
  497. package/build/dist/Types/StatusPage/SearchEngineIndexing.js.map +1 -0
  498. package/build/dist/Types/Telemetry/ResourceEntityFacet.js +156 -0
  499. package/build/dist/Types/Telemetry/ResourceEntityFacet.js.map +1 -0
  500. package/build/dist/Types/Text.js +82 -17
  501. package/build/dist/Types/Text.js.map +1 -1
  502. package/build/dist/UI/Components/Button/Button.js +22 -14
  503. package/build/dist/UI/Components/Button/Button.js.map +1 -1
  504. package/build/dist/UI/Components/CardSelect/CardSelect.js +360 -40
  505. package/build/dist/UI/Components/CardSelect/CardSelect.js.map +1 -1
  506. package/build/dist/UI/Components/CodeBlock/CodeBlock.js +35 -3
  507. package/build/dist/UI/Components/CodeBlock/CodeBlock.js.map +1 -1
  508. package/build/dist/UI/Components/CodeBlock/LanguageRegistry.js +57 -0
  509. package/build/dist/UI/Components/CodeBlock/LanguageRegistry.js.map +1 -0
  510. package/build/dist/UI/Components/CommandPalette/CommandPalette.js +439 -0
  511. package/build/dist/UI/Components/CommandPalette/CommandPalette.js.map +1 -0
  512. package/build/dist/UI/Components/CommandPalette/PaletteFilter.js +135 -0
  513. package/build/dist/UI/Components/CommandPalette/PaletteFilter.js.map +1 -0
  514. package/build/dist/UI/Components/CommandPalette/PaletteRow.js +83 -0
  515. package/build/dist/UI/Components/CommandPalette/PaletteRow.js.map +1 -0
  516. package/build/dist/UI/Components/CommandPalette/RecentCommands.js +47 -0
  517. package/build/dist/UI/Components/CommandPalette/RecentCommands.js.map +1 -0
  518. package/build/dist/UI/Components/CommandPalette/Types.js +2 -0
  519. package/build/dist/UI/Components/CommandPalette/Types.js.map +1 -0
  520. package/build/dist/UI/Components/CommandPalette/UseProviderSearch.js +88 -0
  521. package/build/dist/UI/Components/CommandPalette/UseProviderSearch.js.map +1 -0
  522. package/build/dist/UI/Components/Dropdown/Dropdown.js +6 -1
  523. package/build/dist/UI/Components/Dropdown/Dropdown.js.map +1 -1
  524. package/build/dist/UI/Components/EmptyState/EmptyState.js +1 -1
  525. package/build/dist/UI/Components/EmptyState/EmptyState.js.map +1 -1
  526. package/build/dist/UI/Components/Feed/FeedItem.js +1 -1
  527. package/build/dist/UI/Components/Feed/FeedItem.js.map +1 -1
  528. package/build/dist/UI/Components/Footer/Footer.js +7 -4
  529. package/build/dist/UI/Components/Footer/Footer.js.map +1 -1
  530. package/build/dist/UI/Components/Forms/Fields/FormField.js +1 -1
  531. package/build/dist/UI/Components/Forms/Fields/FormField.js.map +1 -1
  532. package/build/dist/UI/Components/List/List.js +19 -5
  533. package/build/dist/UI/Components/List/List.js.map +1 -1
  534. package/build/dist/UI/Components/List/ListSkeleton.js +21 -0
  535. package/build/dist/UI/Components/List/ListSkeleton.js.map +1 -0
  536. package/build/dist/UI/Components/Loader/PageLoader.js +15 -5
  537. package/build/dist/UI/Components/Loader/PageLoader.js.map +1 -1
  538. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js +16 -3
  539. package/build/dist/UI/Components/LogsViewer/components/LogsAnalyticsView.js.map +1 -1
  540. package/build/dist/UI/Components/Markdown.tsx/LazyMarkdownViewer.js +13 -1
  541. package/build/dist/UI/Components/Markdown.tsx/LazyMarkdownViewer.js.map +1 -1
  542. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js +52 -25
  543. package/build/dist/UI/Components/Markdown.tsx/MarkdownViewer.js.map +1 -1
  544. package/build/dist/UI/Components/MasterPage/MasterPage.js +10 -2
  545. package/build/dist/UI/Components/MasterPage/MasterPage.js.map +1 -1
  546. package/build/dist/UI/Components/Modal/Modal.js +2 -2
  547. package/build/dist/UI/Components/ModelTable/BaseModelTable.js +1 -1
  548. package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
  549. package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js +9 -2
  550. package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js.map +1 -1
  551. package/build/dist/UI/Components/MoreMenu/MoreMenu.js +32 -1
  552. package/build/dist/UI/Components/MoreMenu/MoreMenu.js.map +1 -1
  553. package/build/dist/UI/Components/Navbar/NavBar.js +5 -1
  554. package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
  555. package/build/dist/UI/Components/OrderedStatesList/OrderedStatesList.js +29 -5
  556. package/build/dist/UI/Components/OrderedStatesList/OrderedStatesList.js.map +1 -1
  557. package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js +23 -1
  558. package/build/dist/UI/Components/SideMenu/CountModelSideMenuItem.js.map +1 -1
  559. package/build/dist/UI/Components/SideOver/SideOver.js +23 -2
  560. package/build/dist/UI/Components/SideOver/SideOver.js.map +1 -1
  561. package/build/dist/UI/Components/Skeleton/Skeleton.js +23 -0
  562. package/build/dist/UI/Components/Skeleton/Skeleton.js.map +1 -0
  563. package/build/dist/UI/Components/Table/Table.js +35 -24
  564. package/build/dist/UI/Components/Table/Table.js.map +1 -1
  565. package/build/dist/UI/Components/Table/TableSkeletonRows.js +52 -0
  566. package/build/dist/UI/Components/Table/TableSkeletonRows.js.map +1 -0
  567. package/build/dist/UI/Components/Tabs/Tab.js +1 -1
  568. package/build/dist/UI/Components/Tabs/Tab.js.map +1 -1
  569. package/build/dist/UI/Components/Toast/Toast.js +77 -23
  570. package/build/dist/UI/Components/Toast/Toast.js.map +1 -1
  571. package/build/dist/UI/Components/Toast/ToastInit.js +37 -15
  572. package/build/dist/UI/Components/Toast/ToastInit.js.map +1 -1
  573. package/build/dist/UI/Utils/ModelAPI/ModelAPI.js +18 -9
  574. package/build/dist/UI/Utils/ModelAPI/ModelAPI.js.map +1 -1
  575. package/build/dist/UI/Utils/ModelListCache.js +126 -0
  576. package/build/dist/UI/Utils/ModelListCache.js.map +1 -0
  577. package/build/dist/UI/Utils/Project.js +24 -1
  578. package/build/dist/UI/Utils/Project.js.map +1 -1
  579. package/build/dist/Utils/API.js +6 -1
  580. package/build/dist/Utils/API.js.map +1 -1
  581. package/build/dist/Utils/Monitor/MonitorMetricType.js +13 -1
  582. package/build/dist/Utils/Monitor/MonitorMetricType.js.map +1 -1
  583. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js +34 -7
  584. package/build/dist/Utils/Monitor/NetworkTopologyUtil.js.map +1 -1
  585. package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js +177 -0
  586. package/build/dist/Utils/NetworkDevice/DeviceReachabilityUtil.js.map +1 -0
  587. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js +23 -27
  588. package/build/dist/Utils/NetworkSite/SiteStatusRollupUtil.js.map +1 -1
  589. package/build/dist/Utils/Telemetry/CrossSignalScope.js +44 -4
  590. package/build/dist/Utils/Telemetry/CrossSignalScope.js.map +1 -1
  591. package/jest.config.json +1 -1
  592. package/package.json +2 -3
  593. package/Server/Utils/Monitor/MonitorClusterContext.ts +0 -182
  594. package/Tests/__mocks__/otpauth.js +0 -30
  595. package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js +0 -141
  596. package/build/dist/Server/Utils/Monitor/MonitorClusterContext.js.map +0 -1
@@ -1,14 +1,36 @@
1
- import ComponentLoader from "../ComponentLoader/ComponentLoader";
2
1
  import ErrorMessage from "../ErrorMessage/ErrorMessage";
3
2
  import Icon, { SizeProp } from "../Icon/Icon";
4
3
  import Item from "./Item";
4
+ import Skeleton from "../Skeleton/Skeleton";
5
5
  import IconProp from "../../../Types/Icon/IconProp";
6
6
  import React from "react";
7
7
  const OrderedStatesList = (props) => {
8
- if (props.isLoading) {
9
- return React.createElement(ComponentLoader, null);
8
+ /*
9
+ * A refetch with states already on screen keeps them visible and dims
10
+ * them; the skeleton stack is only for a load with nothing to show yet.
11
+ */
12
+ const isRefetchingWithData = Boolean(props.isLoading) && props.data.length > 0;
13
+ if (props.isLoading && props.data.length === 0) {
14
+ /*
15
+ * Three card-shaped placeholders where the ordered state cards will
16
+ * land (matching Item's rounded bordered card), so the page keeps its
17
+ * shape instead of collapsing to a centered spinner.
18
+ */
19
+ return (React.createElement("div", { "data-testid": "ordered-states-list-skeleton-loader", role: "status", "aria-live": "polite", className: "m-32 text-center" },
20
+ React.createElement("span", { className: "sr-only" }, "Loading..."),
21
+ [0, 1, 2].map((index) => {
22
+ return (React.createElement("div", { key: index, className: "w-fit m-auto" },
23
+ React.createElement(Skeleton, { className: "h-32 w-64 rounded p-10" }),
24
+ index < 2 && (React.createElement("div", { className: "items-center m-10" },
25
+ React.createElement(Skeleton, { className: "m-auto h-5 w-5" })))));
26
+ })));
10
27
  }
11
- if (props.error) {
28
+ /*
29
+ * Loading still wins over error and empty (same priority as before the
30
+ * skeletons): while a refetch is in flight the stale states render, never
31
+ * a stale error or a premature "no items".
32
+ */
33
+ if (!props.isLoading && props.error) {
12
34
  return (React.createElement(ErrorMessage, { message: props.error, onRefreshClick: props.onRefreshClick }));
13
35
  }
14
36
  if (props.data.length === 0) {
@@ -27,7 +49,9 @@ const OrderedStatesList = (props) => {
27
49
  "Add New ",
28
50
  props.singularLabel))))));
29
51
  }
30
- return (React.createElement("div", { className: "m-32 text-center" },
52
+ return (React.createElement("div", { "data-testid": "ordered-states-list-content", className: `m-32 text-center${isRefetchingWithData
53
+ ? " opacity-60 pointer-events-none transition-opacity duration-150"
54
+ : " transition-opacity duration-150"}` },
31
55
  props.error && React.createElement("p", null, props.error),
32
56
  !props.error &&
33
57
  props.data &&
@@ -1 +1 @@
1
- {"version":3,"file":"OrderedStatesList.js","sourceRoot":"","sources":["../../../../../UI/Components/OrderedStatesList/OrderedStatesList.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"OrderedStatesList.js","sourceRoot":"","sources":["../../../../../UI/Components/OrderedStatesList/OrderedStatesList.tsx"],"names":[],"mappings":"AACA,OAAO,YAAY,MAAM,8BAA8B,CAAC;AACxD,OAAO,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,IAAI,MAAM,QAAQ,CAAC;AAC1B,OAAO,QAAQ,MAAM,sBAAsB,CAAC;AAE5C,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AACpD,OAAO,KAAuB,MAAM,OAAO,CAAC;AAyB5C,MAAM,iBAAiB,GAA8B,CACnD,KAAwB,EACV,EAAE;IAChB;;;OAGG;IACH,MAAM,oBAAoB,GACxB,OAAO,CAAC,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;IAEpD,IAAI,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/C;;;;WAIG;QACH,OAAO,CACL,4CACc,qCAAqC,EACjD,IAAI,EAAC,QAAQ,eACH,QAAQ,EAClB,SAAS,EAAC,kBAAkB;YAE5B,8BAAM,SAAS,EAAC,SAAS,iBAAkB;YAC1C,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAa,EAAE,EAAE;gBAC/B,OAAO,CACL,6BAAK,GAAG,EAAE,KAAK,EAAE,SAAS,EAAC,cAAc;oBACvC,oBAAC,QAAQ,IAAC,SAAS,EAAC,wBAAwB,GAAG;oBAC9C,KAAK,GAAG,CAAC,IAAI,CACZ,6BAAK,SAAS,EAAC,mBAAmB;wBAChC,oBAAC,QAAQ,IAAC,SAAS,EAAC,gBAAgB,GAAG,CACnC,CACP,CACG,CACP,CAAC;YACJ,CAAC,CAAC,CACE,CACP,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,IAAI,CAAC,KAAK,CAAC,SAAS,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QACpC,OAAO,CACL,oBAAC,YAAY,IACX,OAAO,EAAE,KAAK,CAAC,KAAK,EACpB,cAAc,EAAE,KAAK,CAAC,cAAc,GACpC,CACH,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,OAAO,CACL,6BAAK,SAAS,EAAC,aAAa;YAEzB,CAAC,KAAK,CAAC,eAAe,IAAI,CACzB,oBAAC,YAAY,IACX,OAAO,EACL,KAAK,CAAC,cAAc;oBAClB,CAAC,CAAC,KAAK,CAAC,cAAc;oBACtB,CAAC,CAAC,MAAM,KAAK,CAAC,aAAa,CAAC,iBAAiB,EAAE,EAAE,EAErD,cAAc,EAAE,KAAK,CAAC,cAAc,GACpC,CACH;YACA,KAAK,CAAC,eAAe,IAAI,CACxB,6BAAK,SAAS,EAAC,OAAO;gBACpB,6BACE,SAAS,EAAC,2IAA2I,EACrJ,OAAO,EAAE,GAAG,EAAE;wBACZ,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;4BAC1B,KAAK,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;wBAC3B,CAAC;oBACH,CAAC;oBAED,oBAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAC,SAAS,GAAG;oBAChD,8BAAM,SAAS,EAAC,cAAc;;wBACnB,KAAK,CAAC,aAAa,CACvB,CACH,CACF,CACP,CACG,CACP,CAAC;IACJ,CAAC;IAED,OAAO,CACL,4CACc,6BAA6B,EACzC,SAAS,EAAE,mBACT,oBAAoB;YAClB,CAAC,CAAC,iEAAiE;YACnE,CAAC,CAAC,kCACN,EAAE;QAED,KAAK,CAAC,KAAK,IAAI,+BAAI,KAAK,CAAC,KAAK,CAAK;QACnC,CAAC,KAAK,CAAC,KAAK;YACX,KAAK,CAAC,IAAI;YACV,KAAK,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YACrB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAO,EAAE,CAAS,EAAE,EAAE;gBACpC,MAAM,KAAK,GAAY,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBACpD,MAAM,WAAW,GAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC;gBAExC,OAAO,CACL,6BAAK,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,SAAS,EAAC,2BAA2B;oBAC7D,KAAK,CAAC,eAAe;wBACpB,WAAW;wBACX,KAAK,CAAC,2BAA2B,IAAI,CACnC,6BAAK,SAAS,EAAC,aAAa;wBAC1B,6BACE,SAAS,EAAC,kJAAkJ,EAC5J,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;oCAC1B,KAAK,CAAC,eAAe,CACnB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;wCACpB,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAY,GAAG,CAAC;wCACxC,CAAC,CAAC,CAAC,CACN,CAAC;gCACJ,CAAC;4BACH,CAAC;4BAED,6BAAK,SAAS,EAAC,kBAAkB;gCAC/B,oBAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAC,gBAAgB,GAAG;gCAAC,GAAG;gCAC3D,8BAAM,SAAS,EAAC,cAAc,mBAAoB,CAC9C,CACF;wBAEN,6BAAK,SAAS,EAAC,oBAAoB;4BACjC,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,CAAC,WAAW,EAC1B,IAAI,EAAE,QAAQ,CAAC,OAAO,EACtB,SAAS,EAAC,8BAA8B,GACxC,CACE,CACF,CACP;oBACH,oBAAC,IAAI,IACH,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,KAAK,CAAC,UAAU,EAC5B,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,EACxC,aAAa,EAAE,KAAK,CAAC,aAAa,EAClC,eAAe,EAAE,KAAK,CAAC,eAAe,EACtC,qBAAqB,EAAE,KAAK,CAAC,qBAAqB,GAClD;oBACD,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACrD,6BAAK,SAAS,EAAC,kCAAkC;wBAC/C,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,CAAC,WAAW,EAC1B,IAAI,EAAE,QAAQ,CAAC,OAAO,EACtB,SAAS,EAAC,8BAA8B,GACxC,CACE,CACP;oBACA,KAAK,CAAC,eAAe;wBACpB,CAAC,CAAC,KAAK,IAAI,KAAK,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CACpD,6BAAK,SAAS,EAAC,aAAa;wBAC1B,6BACE,SAAS,EAAC,qIAAqI,EAC/I,OAAO,EAAE,GAAG,EAAE;gCACZ,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;oCAC1B,KAAK,CAAC,eAAe,CACnB,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;wCACpB,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,UAAU,CAAY,GAAG,CAAC;wCACxC,CAAC,CAAC,CAAC,CACN,CAAC;gCACJ,CAAC;4BACH,CAAC;4BAED,6BAAK,SAAS,EAAC,oBAAoB;gCACjC,oBAAC,IAAI,IAAC,IAAI,EAAE,QAAQ,CAAC,GAAG,EAAE,SAAS,EAAC,gBAAgB,GAAG;gCAAC,GAAG;gCAC3D,8BAAM,SAAS,EAAC,cAAc,mBAAoB,CAC9C,CACF;wBACL,CAAC,KAAK,IAAI,CACT,6BAAK,SAAS,EAAC,mBAAmB;4BAChC,oBAAC,IAAI,IACH,IAAI,EAAE,QAAQ,CAAC,WAAW,EAC1B,IAAI,EAAE,QAAQ,CAAC,MAAM,EACrB,SAAS,EAAC,8BAA8B,GACxC,CACE,CACP,CACG,CACP,CACC,CACP,CAAC;YACJ,CAAC,CAAC,CACA,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import API from "../../Utils/API/API";
2
2
  import ModelAPI from "../../Utils/ModelAPI/ModelAPI";
3
3
  import SideMenuItem from "./SideMenuItem";
4
- import React, { useEffect, useState, useCallback } from "react";
4
+ import React, { useEffect, useRef, useState, useCallback, } from "react";
5
5
  import GlobalEvents from "../../Utils/GlobalEvents";
6
6
  export const REFRESH_SIDEBAR_COUNT_EVENT = "REFRESH_SIDEBAR_COUNTS";
7
7
  const CountModelSideMenuItem = (props) => {
@@ -39,7 +39,29 @@ const CountModelSideMenuItem = (props) => {
39
39
  props.requestOptions,
40
40
  props.onCountFetchInit,
41
41
  ]);
42
+ /*
43
+ * Side menus rebuild `countQuery` / `requestOptions` as fresh object
44
+ * literals on every render, so their identity changes on every parent
45
+ * re-render (which happens on every in-section navigation). Guard the fetch
46
+ * with a value-level compare - the same JSON.stringify-in-a-ref pattern
47
+ * BaseModelTable uses for its `props.query` - so only a real change
48
+ * re-issues the count request. The global refresh event below still forces
49
+ * a refetch regardless of this guard.
50
+ */
51
+ const lastFetchedModelTypeRef = useRef(undefined);
52
+ const lastFetchedQueryJsonRef = useRef(null);
42
53
  useEffect(() => {
54
+ const queryJson = JSON.stringify({
55
+ countQuery: props.countQuery || null,
56
+ requestOptions: props.requestOptions || null,
57
+ });
58
+ // only fetch if the query has changed by value (or on first mount).
59
+ if (lastFetchedModelTypeRef.current === props.modelType &&
60
+ lastFetchedQueryJsonRef.current === queryJson) {
61
+ return;
62
+ }
63
+ lastFetchedModelTypeRef.current = props.modelType;
64
+ lastFetchedQueryJsonRef.current = queryJson;
43
65
  fetchCount().catch((err) => {
44
66
  setError(API.getFriendlyMessage(err));
45
67
  });
@@ -1 +1 @@
1
- {"version":3,"file":"CountModelSideMenuItem.js","sourceRoot":"","sources":["../../../../../UI/Components/SideMenu/CountModelSideMenuItem.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CountModelSideMenuItem.js","sourceRoot":"","sources":["../../../../../UI/Components/SideMenu/CountModelSideMenuItem.tsx"],"names":[],"mappings":"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"}
@@ -45,6 +45,27 @@ const SideOver = (props) => {
45
45
  }
46
46
  const titleId = useId();
47
47
  const descriptionId = useId();
48
+ /*
49
+ * The panel is mounted parked off the right edge and flipped into place one
50
+ * frame later so the browser has something to transition from — the same
51
+ * pattern Modal uses for its entrance.
52
+ */
53
+ const [hasEntered, setHasEntered] = useState(false);
54
+ useEffect(() => {
55
+ const open = () => {
56
+ setHasEntered(true);
57
+ };
58
+ const frame = requestAnimationFrame(open);
59
+ /*
60
+ * A hidden or throttled tab never runs an animation frame; the timer
61
+ * skips the transition rather than leaving the panel offscreen.
62
+ */
63
+ const fallbackTimer = setTimeout(open, 80);
64
+ return () => {
65
+ cancelAnimationFrame(frame);
66
+ clearTimeout(fallbackTimer);
67
+ };
68
+ }, []);
48
69
  const [portalTarget, setPortalTarget] = useState(getPortalTarget);
49
70
  useEffect(() => {
50
71
  const syncPortalTarget = () => {
@@ -95,7 +116,7 @@ const SideOver = (props) => {
95
116
  */
96
117
  React.createElement("div", { className: "relative z-30", "aria-labelledby": titleId, "aria-describedby": props.description ? descriptionId : undefined, role: "dialog", "data-testid": "side-over" },
97
118
  React.createElement("div", { className: "pointer-events-none fixed inset-0 flex justify-end", "data-testid": "side-over-layer" },
98
- React.createElement("div", { className: `pointer-events-auto w-full ${widthClass}` },
119
+ React.createElement("div", { className: `pointer-events-auto w-full ${widthClass} transition-transform duration-200 ease-out motion-reduce:transition-none ${hasEntered ? "" : "translate-x-full"}` },
99
120
  React.createElement("div", { className: "flex h-full flex-col bg-white shadow-xl" },
100
121
  React.createElement("div", { className: "flex-shrink-0 flex flex-col bg-gray-50 px-4 py-6 sm:px-6" },
101
122
  React.createElement("div", { className: "flex items-start justify-between space-x-3" },
@@ -105,7 +126,7 @@ const SideOver = (props) => {
105
126
  React.createElement("div", { className: "flex h-7 items-center" },
106
127
  React.createElement("button", { onClick: () => {
107
128
  props.onClose();
108
- }, type: "button", title: "Close panel", "data-testid": "close-button", className: "text-gray-400 hover:text-gray-500" },
129
+ }, type: "button", title: "Close panel", "data-testid": "close-button", className: "rounded-md text-gray-400 transition-colors duration-150 ease-out hover:text-gray-500 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500 focus-visible:ring-offset-2" },
109
130
  React.createElement("span", { className: "sr-only" }, "Close panel"),
110
131
  React.createElement(Icon, { className: "h-6 w-6", icon: IconProp.Close }))))),
111
132
  React.createElement("div", { className: "min-h-0 flex-1 overflow-y-auto overscroll-contain", "data-testid": "side-over-content" },
@@ -1 +1 @@
1
- {"version":3,"file":"SideOver.js","sourceRoot":"","sources":["../../../../../UI/Components/SideOver/SideOver.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SideOver.js","sourceRoot":"","sources":["../../../../../UI/Components/SideOver/SideOver.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import React from "react";
2
+ /*
3
+ * Width variants for skeleton lines. Cycled by index (never Math.random) so
4
+ * the shimmer is stable across re-renders - random widths re-roll on every
5
+ * render, which reads as flicker - and so tests can assert exact widths.
6
+ */
7
+ const WIDTH_VARIANTS = ["w-3/4", "w-1/2", "w-2/3"];
8
+ export const getSkeletonWidthClass = (index) => {
9
+ return WIDTH_VARIANTS[Math.abs(index) % WIDTH_VARIANTS.length];
10
+ };
11
+ /*
12
+ * A single pulsing placeholder block. Purely decorative - the wrapper that
13
+ * composes skeletons into a loading state owns the role="status" / sr-only
14
+ * announcement, so each block hides itself from the accessibility tree.
15
+ */
16
+ const Skeleton = (props) => {
17
+ const widthClass = props.widthVariantIndex === undefined
18
+ ? ""
19
+ : ` ${getSkeletonWidthClass(props.widthVariantIndex)}`;
20
+ return (React.createElement("div", { "data-testid": props.dataTestId || "skeleton", "aria-hidden": true, className: `animate-pulse rounded bg-gray-200${props.className ? ` ${props.className}` : ""}${widthClass}` }));
21
+ };
22
+ export default Skeleton;
23
+ //# sourceMappingURL=Skeleton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Skeleton.js","sourceRoot":"","sources":["../../../../../UI/Components/Skeleton/Skeleton.tsx"],"names":[],"mappings":"AAAA,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D;;;;GAIG;AACH,MAAM,cAAc,GAAkB,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;AAIlE,MAAM,CAAC,MAAM,qBAAqB,GAAkC,CAClE,KAAa,EACL,EAAE;IACV,OAAO,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,cAAc,CAAC,MAAM,CAAW,CAAC;AAC3E,CAAC,CAAC;AAaF;;;;GAIG;AACH,MAAM,QAAQ,GAAsC,CAClD,KAAqB,EACP,EAAE;IAChB,MAAM,UAAU,GACd,KAAK,CAAC,iBAAiB,KAAK,SAAS;QACnC,CAAC,CAAC,EAAE;QACJ,CAAC,CAAC,IAAI,qBAAqB,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;IAE3D,OAAO,CACL,4CACe,KAAK,CAAC,UAAU,IAAI,UAAU,iBAC9B,IAAI,EACjB,SAAS,EAAE,oCACT,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAC5C,GAAG,UAAU,EAAE,GACV,CACR,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,QAAQ,CAAC"}
@@ -2,12 +2,12 @@ import useTranslateValue from "../../Utils/Translation";
2
2
  import TableColumnsToCsv from "../../Utils/TableColumnsToCsv";
3
3
  import { ButtonStyleType } from "../Button/Button";
4
4
  import BulkUpdateForm from "../BulkUpdate/BulkUpdateForm";
5
- import ComponentLoader from "../ComponentLoader/ComponentLoader";
6
5
  import ErrorMessage from "../ErrorMessage/ErrorMessage";
7
6
  import FilterViewer from "../Filters/FilterViewer";
8
7
  import Pagination from "../Pagination/Pagination";
9
8
  import TableBody from "./TableBody";
10
9
  import TableHeader from "./TableHeader";
10
+ import TableSkeletonRows from "./TableSkeletonRows";
11
11
  import IconProp from "../../../Types/Icon/IconProp";
12
12
  import React, { useEffect, useState } from "react";
13
13
  import { DragDropContext } from "react-beautiful-dnd";
@@ -88,16 +88,24 @@ const Table = (props) => {
88
88
  if (colspan === 0) {
89
89
  colspan = 1;
90
90
  }
91
+ /*
92
+ * A refetch with rows already on screen (pagination, sort, refresh - the
93
+ * parent never clears `data` while fetching) keeps those rows visible and
94
+ * dims them instead of tearing the layout down to placeholders. Skeletons
95
+ * are only for a load with nothing to show yet.
96
+ */
97
+ const isRefetchingWithData = props.isLoading && props.data.length > 0;
91
98
  const getTablebody = () => {
92
99
  var _a;
93
- if (props.isLoading) {
94
- return (React.createElement("tbody", null,
95
- React.createElement("tr", null,
96
- React.createElement("td", { colSpan: colspan },
97
- React.createElement("div", { className: "flex justify-center w-full" },
98
- React.createElement(ComponentLoader, null))))));
100
+ if (props.isLoading && props.data.length === 0) {
101
+ return (React.createElement(TableSkeletonRows, { columns: props.columns, enableDragAndDrop: props.enableDragAndDrop, isBulkActionsEnabled: isBulkActionsEnabled, itemsOnPage: props.itemsOnPage, isMobile: isMobile }));
99
102
  }
100
- if (props.error) {
103
+ /*
104
+ * Loading still wins over error and empty (same priority as before the
105
+ * skeletons): while a refetch is in flight the stale rows render, never a
106
+ * stale error or a premature "no items".
107
+ */
108
+ if (!props.isLoading && props.error) {
101
109
  return (React.createElement("tbody", null,
102
110
  React.createElement("tr", null,
103
111
  React.createElement("td", { colSpan: colspan, className: "pl-10 pr-10" },
@@ -111,7 +119,7 @@ const Table = (props) => {
111
119
  ? props.noItemsMessage
112
120
  : `${(_a = translateString("No")) !== null && _a !== void 0 ? _a : "No"} ${translatedSingularLabel.toLocaleLowerCase()}`, onRefreshClick: props.onRefreshClick })))));
113
121
  }
114
- if (props.filterError) {
122
+ if (!props.isLoading && props.filterError) {
115
123
  return React.createElement(React.Fragment, null);
116
124
  }
117
125
  return (React.createElement(TableBody, { id: `${props.id}-body`, data: props.data, columns: props.columns, actionButtons: props.actionButtons, enableDragAndDrop: props.enableDragAndDrop, dragAndDropScope: `${props.id}-dnd`, dragDropIdField: props.dragDropIdField, dragDropIndexField: props.dragDropIndexField, isBulkActionsEnabled: isBulkActionsEnabled, onItemSelected: (item) => {
@@ -198,21 +206,24 @@ const Table = (props) => {
198
206
  React.createElement("div", { className: "inline-block min-w-full py-2 align-middle" },
199
207
  React.createElement("div", { className: props.tableContainerClassName
200
208
  ? props.tableContainerClassName
201
- : "overflow-hidden border-t border-gray-200" }, isMobile ? (
202
- // Mobile view: render as list
203
- React.createElement("div", { className: "min-w-full divide-y divide-gray-200" }, getTablebody())) : (
204
- // Desktop view: render as table
205
- React.createElement("table", { className: "min-w-full divide-y divide-gray-200" },
206
- React.createElement(TableHeader, { id: `${props.id}-header`, columns: props.columns, onSortChanged: props.onSortChanged, enableDragAndDrop: props.enableDragAndDrop, sortBy: props.sortBy, sortOrder: props.sortOrder, isBulkActionsEnabled: isBulkActionsEnabled, onAllItemsDeselected: () => {
207
- var _a;
208
- setIsAllItemsSelected(false);
209
- (_a = props.onBulkClearAllItems) === null || _a === void 0 ? void 0 : _a.call(props);
210
- }, onAllItemsOnThePageSelected: () => {
211
- if (props.onBulkSelectItemsOnCurrentPage) {
212
- props.onBulkSelectItemsOnCurrentPage();
213
- }
214
- }, isAllItemsOnThePageSelected: isAllItemsOnThePageSelected, isSomeItemsOnThePageSelected: isSomeItemsOnThePageSelected, hasTableItems: selectableRowsOnThePage.length > 0 }),
215
- getTablebody()))))),
209
+ : "overflow-hidden border-t border-gray-200" },
210
+ React.createElement("div", { "data-testid": "table-content", className: isRefetchingWithData
211
+ ? "opacity-60 pointer-events-none transition-opacity duration-150"
212
+ : "transition-opacity duration-150" }, isMobile ? (
213
+ // Mobile view: render as list
214
+ React.createElement("div", { className: "min-w-full divide-y divide-gray-200" }, getTablebody())) : (
215
+ // Desktop view: render as table
216
+ React.createElement("table", { className: "min-w-full divide-y divide-gray-200" },
217
+ React.createElement(TableHeader, { id: `${props.id}-header`, columns: props.columns, onSortChanged: props.onSortChanged, enableDragAndDrop: props.enableDragAndDrop, sortBy: props.sortBy, sortOrder: props.sortOrder, isBulkActionsEnabled: isBulkActionsEnabled, onAllItemsDeselected: () => {
218
+ var _a;
219
+ setIsAllItemsSelected(false);
220
+ (_a = props.onBulkClearAllItems) === null || _a === void 0 ? void 0 : _a.call(props);
221
+ }, onAllItemsOnThePageSelected: () => {
222
+ if (props.onBulkSelectItemsOnCurrentPage) {
223
+ props.onBulkSelectItemsOnCurrentPage();
224
+ }
225
+ }, isAllItemsOnThePageSelected: isAllItemsOnThePageSelected, isSomeItemsOnThePageSelected: isSomeItemsOnThePageSelected, hasTableItems: selectableRowsOnThePage.length > 0 }),
226
+ getTablebody())))))),
216
227
  React.createElement("div", { className: "bg-gray-50 text-right md:-mx-6 -mb-6 rounded-b-xl" }, !props.disablePagination && (React.createElement(Pagination, { singularLabel: translatedSingularLabel, pluralLabel: translatedPluralLabel, currentPageNumber: props.currentPageNumber, totalItemsCount: props.totalItemsCount, hasMore: props.hasMore, itemsOnCurrentPage: props.data.length, itemsOnPage: props.itemsOnPage, onNavigateToPage: props.onNavigateToPage, isLoading: props.isLoading, isError: Boolean(props.error) }))))));
217
228
  };
218
229
  export default Table;
@@ -1 +1 @@
1
- {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../../../UI/Components/Table/Table.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Table.js","sourceRoot":"","sources":["../../../../../UI/Components/Table/Table.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,52 @@
1
+ import Skeleton from "../Skeleton/Skeleton";
2
+ import React from "react";
3
+ /*
4
+ * Layout-preserving placeholder rows for the table's first load: one pulsing
5
+ * cell per visible column (plus the drag-handle / bulk-select extras) so the
6
+ * page keeps the table's shape instead of collapsing to a centered spinner.
7
+ */
8
+ const TableSkeletonRows = (props) => {
9
+ // Enough rows to look like a page of data without painting offscreen ones.
10
+ const rowCount = Math.max(1, Math.min(props.itemsOnPage || 0, 10));
11
+ const rowIndexes = Array.from(Array(rowCount).keys());
12
+ // Same filter as TableHeader / TableRow so cell counts always agree.
13
+ const visibleColumns = props.columns.filter((column) => {
14
+ return !(column.hideOnMobile && props.isMobile);
15
+ });
16
+ if (props.isMobile) {
17
+ return (React.createElement("div", { "data-testid": "table-skeleton-loader", role: "status", "aria-live": "polite", className: "divide-y divide-gray-200 bg-white" },
18
+ React.createElement("span", { className: "sr-only" }, "Loading..."),
19
+ rowIndexes.map((rowIndex) => {
20
+ return (React.createElement("div", { key: rowIndex, className: "p-4 bg-white border-b border-gray-200" },
21
+ React.createElement("div", { className: "space-y-3" }, visibleColumns.map((_column, columnIndex) => {
22
+ return (React.createElement("div", { key: columnIndex, className: "flex flex-col space-y-1" },
23
+ React.createElement(Skeleton, { className: "h-3 w-24" }),
24
+ React.createElement(Skeleton, { className: "h-4", widthVariantIndex: rowIndex + columnIndex })));
25
+ }))));
26
+ })));
27
+ }
28
+ return (React.createElement("tbody", { "data-testid": "table-skeleton-loader", role: "status", "aria-live": "polite", className: "divide-y divide-gray-200 bg-white" }, rowIndexes.map((rowIndex) => {
29
+ return (React.createElement("tr", { key: rowIndex },
30
+ props.enableDragAndDrop && (React.createElement("td", { className: "ml-5 py-4 w-10 align-top" },
31
+ React.createElement(Skeleton, { className: "ml-6 h-5 w-5" }))),
32
+ props.isBulkActionsEnabled && (React.createElement("td", { className: "w-10 py-3.5 align-top" },
33
+ React.createElement("div", { className: "ml-5" },
34
+ React.createElement(Skeleton, { className: "h-4 w-4" })))),
35
+ visibleColumns.map((_column, columnIndex) => {
36
+ /*
37
+ * Cell classes copied from TableRow's real cells so the
38
+ * skeleton's rhythm and padding match the rows that replace it.
39
+ */
40
+ let className = "whitespace-nowrap py-4 pl-4 pr-3 text-sm font-medium text-gray-500 sm:pl-6 align-top";
41
+ if (columnIndex === visibleColumns.length - 1) {
42
+ className =
43
+ "whitespace-nowrap py-4 pl-4 pr-6 text-sm font-medium text-gray-500 sm:pl-6 align-top";
44
+ }
45
+ return (React.createElement("td", { key: columnIndex, className: className },
46
+ rowIndex === 0 && columnIndex === 0 && (React.createElement("span", { className: "sr-only" }, "Loading...")),
47
+ React.createElement(Skeleton, { className: "h-4", widthVariantIndex: rowIndex + columnIndex })));
48
+ })));
49
+ })));
50
+ };
51
+ export default TableSkeletonRows;
52
+ //# sourceMappingURL=TableSkeletonRows.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TableSkeletonRows.js","sourceRoot":"","sources":["../../../../../UI/Components/Table/TableSkeletonRows.tsx"],"names":[],"mappings":"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"}
@@ -12,7 +12,7 @@ const TabElement = (props) => {
12
12
  const { translateString } = useTranslateValue();
13
13
  const translatedName = (_a = translateString(props.tab.name)) !== null && _a !== void 0 ? _a : props.tab.name;
14
14
  const backgroundColor = "bg-gray-100";
15
- const baseClasses = "rounded-md px-3 py-2 text-sm font-medium cursor-pointer inline-flex whitespace-nowrap flex-shrink-0";
15
+ const baseClasses = "rounded-md px-3 py-2 text-sm font-medium cursor-pointer inline-flex whitespace-nowrap flex-shrink-0 transition-colors duration-150 focus:outline-none focus-visible:ring-2 focus-visible:ring-indigo-500 focus-visible:ring-offset-2";
16
16
  const stateClasses = props.isSelected
17
17
  ? `${backgroundColor} text-gray-700`
18
18
  : "text-gray-500 hover:text-gray-700";
@@ -1 +1 @@
1
- {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../../../UI/Components/Tabs/Tab.tsx"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D,MAAM,CAAN,IAAY,OAKX;AALD,WAAY,OAAO;IACjB,0BAAe,CAAA;IACf,8BAAmB,CAAA;IACnB,wBAAa,CAAA;IACb,8BAAmB,CAAA;AACrB,CAAC,EALW,OAAO,KAAP,OAAO,QAKlB;AAgBD,MAAM,UAAU,GAAsC,CACpD,KAAqB,EACP,EAAE;;IAChB,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAChD,MAAM,cAAc,GAClB,MAAA,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IACpD,MAAM,eAAe,GAAW,aAAa,CAAC;IAE9C,MAAM,WAAW,GACf,qGAAqG,CAAC;IACxG,MAAM,YAAY,GAAW,KAAK,CAAC,UAAU;QAC3C,CAAC,CAAC,GAAG,eAAe,gBAAgB;QACpC,CAAC,CAAC,mCAAmC,CAAC;IAExC,MAAM,aAAa,GAAyC,CAC1D,KAA0B,EACpB,EAAE;;QACR,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YAC/C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,MAAA,KAAK,CAAC,OAAO,qDAAI,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,WAAW;QACxB,6BACE,EAAE,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,iBACd,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EACpC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EACnB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,GAAG,YAAY,IAAI,WAAW,EAAE,EAC3C,IAAI,EAAC,KAAK,EACV,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBACpB,KAAK,CAAC,UAAU,mBAChB,KAAK,CAAC,UAAU;YAE/B,iCAAM,cAAc,CAAO;YAE1B,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAClD,8BACE,SAAS,EAAE,GACT,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK;oBACjC,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;wBACrC,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI;4BAClC,CAAC,CAAC,eAAe;4BACjB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;gCACrC,CAAC,CAAC,cAAc;gCAChB,CAAC,CAAC,aACZ,uEAAuE,IAEtE,KAAK,CAAC,GAAG,CAAC,UAAU,CAChB,CACR,CAAC,CAAC,CAAC,IAAI,CACJ,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
1
+ {"version":3,"file":"Tab.js","sourceRoot":"","sources":["../../../../../UI/Components/Tabs/Tab.tsx"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AACxD,OAAO,KAA0C,MAAM,OAAO,CAAC;AAE/D,MAAM,CAAN,IAAY,OAKX;AALD,WAAY,OAAO;IACjB,0BAAe,CAAA;IACf,8BAAmB,CAAA;IACnB,wBAAa,CAAA;IACb,8BAAmB,CAAA;AACrB,CAAC,EALW,OAAO,KAAP,OAAO,QAKlB;AAgBD,MAAM,UAAU,GAAsC,CACpD,KAAqB,EACP,EAAE;;IAChB,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAChD,MAAM,cAAc,GAClB,MAAA,eAAe,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,mCAAI,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC;IACpD,MAAM,eAAe,GAAW,aAAa,CAAC;IAE9C,MAAM,WAAW,GACf,sOAAsO,CAAC;IACzO,MAAM,YAAY,GAAW,KAAK,CAAC,UAAU;QAC3C,CAAC,CAAC,GAAG,eAAe,gBAAgB;QACpC,CAAC,CAAC,mCAAmC,CAAC;IAExC,MAAM,aAAa,GAAyC,CAC1D,KAA0B,EACpB,EAAE;;QACR,IAAI,KAAK,CAAC,GAAG,KAAK,OAAO,IAAI,KAAK,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;YAC/C,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,MAAA,KAAK,CAAC,OAAO,qDAAI,CAAC;QACpB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,6BAAK,SAAS,EAAC,WAAW;QACxB,6BACE,EAAE,EAAE,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,iBACd,OAAO,KAAK,CAAC,GAAG,CAAC,IAAI,EAAE,EACpC,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,EACnB,OAAO,EAAE,KAAK,CAAC,OAAO,EACtB,SAAS,EAAE,aAAa,EACxB,SAAS,EAAE,GAAG,YAAY,IAAI,WAAW,EAAE,EAC3C,IAAI,EAAC,KAAK,EACV,QAAQ,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,mBACpB,KAAK,CAAC,UAAU,mBAChB,KAAK,CAAC,UAAU;YAE/B,iCAAM,cAAc,CAAO;YAE1B,KAAK,CAAC,GAAG,CAAC,UAAU,IAAI,KAAK,CAAC,GAAG,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,CAAC,CAClD,8BACE,SAAS,EAAE,GACT,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,KAAK;oBACjC,CAAC,CAAC,YAAY;oBACd,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;wBACrC,CAAC,CAAC,eAAe;wBACjB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,IAAI;4BAClC,CAAC,CAAC,eAAe;4BACjB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,KAAK,OAAO,CAAC,OAAO;gCACrC,CAAC,CAAC,cAAc;gCAChB,CAAC,CAAC,aACZ,uEAAuE,IAEtE,KAAK,CAAC,GAAG,CAAC,UAAU,CAChB,CACR,CAAC,CAAC,CAAC,IAAI,CACJ,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC"}
@@ -1,4 +1,4 @@
1
- import React, { useState } from "react";
1
+ import React, { useEffect, useRef, useState, } from "react";
2
2
  import Icon from "../Icon/Icon";
3
3
  import IconProp from "../../../Types/Icon/IconProp";
4
4
  import useTranslateValue from "../../Utils/Translation";
@@ -10,9 +10,60 @@ export var ToastType;
10
10
  ToastType[ToastType["WARNING"] = 3] = "WARNING";
11
11
  ToastType[ToastType["NORMAL"] = 4] = "NORMAL";
12
12
  })(ToastType || (ToastType = {}));
13
+ /* How long the exit fade runs before the toast actually unmounts. */
14
+ const EXIT_DURATION_IN_MS = 150;
13
15
  const Component = (props) => {
14
16
  const { translateString } = useTranslateValue();
15
17
  const [show, setShow] = useState(true);
18
+ /*
19
+ * The toast is mounted in its closed state (faded, nudged down) and flipped
20
+ * open one frame later so the browser has something to transition from —
21
+ * the same pattern Modal uses for its entrance.
22
+ */
23
+ const [hasEntered, setHasEntered] = useState(false);
24
+ /*
25
+ * Dismissal fades the card out first and only unmounts (and notifies the
26
+ * owner) once the fade has finished, so the toast never blinks away.
27
+ */
28
+ const [isLeaving, setIsLeaving] = useState(false);
29
+ useEffect(() => {
30
+ const open = () => {
31
+ setHasEntered(true);
32
+ };
33
+ const frame = requestAnimationFrame(open);
34
+ /*
35
+ * A hidden or throttled tab never runs an animation frame; the timer
36
+ * skips the transition rather than leaving the toast at zero opacity.
37
+ */
38
+ const fallbackTimer = setTimeout(open, 80);
39
+ return () => {
40
+ cancelAnimationFrame(frame);
41
+ clearTimeout(fallbackTimer);
42
+ };
43
+ }, []);
44
+ /*
45
+ * The latest onClose lives in a ref so the exit effect can depend on
46
+ * isLeaving alone. Owners may recreate onClose every render, and a dep on
47
+ * it would restart the unmount timer whenever a sibling toast re-renders
48
+ * the stack mid-exit — leaving an invisible pointer-events-auto card
49
+ * intercepting clicks past its original deadline.
50
+ */
51
+ const onCloseRef = useRef(props.onClose);
52
+ onCloseRef.current = props.onClose;
53
+ useEffect(() => {
54
+ if (!isLeaving) {
55
+ return undefined;
56
+ }
57
+ const exitTimer = setTimeout(() => {
58
+ setShow(false);
59
+ if (onCloseRef.current) {
60
+ onCloseRef.current();
61
+ }
62
+ }, EXIT_DURATION_IN_MS);
63
+ return () => {
64
+ clearTimeout(exitTimer);
65
+ };
66
+ }, [isLeaving]);
16
67
  let typeCssClass = "text-gray-400";
17
68
  let iconType = IconProp.Info;
18
69
  if (props.type === ToastType.NORMAL) {
@@ -38,30 +89,33 @@ const Component = (props) => {
38
89
  if (props.icon) {
39
90
  iconType = props.icon;
40
91
  }
41
- let top = 0;
42
- if (props.index) {
43
- top = props.index * 16; // move the second item lower than the first one. 16 is the height of the toast.
92
+ /*
93
+ * Settled state carries no transform class at all — leaving a translate on
94
+ * the card would make it the containing block for position:fixed
95
+ * descendants (the Modal invariant).
96
+ */
97
+ let motionClassName = "translate-y-2 opacity-0";
98
+ if (isLeaving) {
99
+ motionClassName = "opacity-0";
100
+ }
101
+ else if (hasEntered) {
102
+ motionClassName = "opacity-100";
44
103
  }
45
104
  if (show) {
46
- return (React.createElement("div", { "data-testid": "toast", "aria-live": "assertive", className: `pointer-events-none fixed z-40 top-${top} left-0 right-0 flex items-end px-4 py-6 sm:items-start sm:p-6` },
47
- React.createElement("div", { className: "flex w-full flex-col items-center space-y-4 sm:items-end" },
48
- React.createElement("div", { className: "pointer-events-auto w-full max-w-sm overflow-hidden rounded-lg bg-white shadow-lg ring-1 ring-black ring-opacity-5" },
49
- React.createElement("div", { className: "p-4" },
50
- React.createElement("div", { className: "flex items-start" },
51
- React.createElement("div", { className: "flex-shrink-0" },
52
- React.createElement(Icon, { className: `h-6 w-6 ${typeCssClass}`, "data-testid": "toast-icon", icon: iconType })),
53
- React.createElement("div", { className: "ml-3 w-0 flex-1 pt-0.5" },
54
- React.createElement("p", { "data-testid": "title", className: "text-sm font-medium text-gray-900" }, translateString(props.title)),
55
- React.createElement("p", { "data-testid": "description", className: "mt-1 text-sm text-gray-500" }, translateString(props.description))),
56
- React.createElement("div", { className: "ml-4 flex flex-shrink-0" },
57
- React.createElement("button", { onClick: () => {
58
- setShow(false);
59
- if (props.onClose) {
60
- props.onClose();
61
- }
62
- }, "data-testid": "close-button", type: "button", className: "inline-flex rounded-md bg-white text-gray-400 hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2" },
63
- React.createElement("span", { className: "sr-only" }, "Close"),
64
- React.createElement(Icon, { className: `h-5 w-5`, icon: IconProp.Close })))))))));
105
+ return (React.createElement("div", { "data-testid": "toast", className: `pointer-events-auto w-full max-w-sm overflow-hidden rounded-lg bg-white shadow-lg ring-1 ring-black ring-opacity-5 transition duration-150 ease-out motion-reduce:transition-none ${motionClassName}` },
106
+ React.createElement("div", { className: "p-4" },
107
+ React.createElement("div", { className: "flex items-start" },
108
+ React.createElement("div", { className: "flex-shrink-0" },
109
+ React.createElement(Icon, { className: `h-6 w-6 ${typeCssClass}`, "data-testid": "toast-icon", icon: iconType })),
110
+ React.createElement("div", { className: "ml-3 w-0 flex-1 pt-0.5" },
111
+ React.createElement("p", { "data-testid": "title", className: "text-sm font-medium text-gray-900" }, translateString(props.title)),
112
+ React.createElement("p", { "data-testid": "description", className: "mt-1 text-sm text-gray-500" }, translateString(props.description))),
113
+ React.createElement("div", { className: "ml-4 flex flex-shrink-0" },
114
+ React.createElement("button", { onClick: () => {
115
+ setIsLeaving(true);
116
+ }, "data-testid": "close-button", type: "button", className: "inline-flex rounded-md bg-white text-gray-400 transition-colors duration-150 ease-out hover:text-gray-500 focus:outline-none focus:ring-2 focus:ring-indigo-500 focus:ring-offset-2" },
117
+ React.createElement("span", { className: "sr-only" }, "Close"),
118
+ React.createElement(Icon, { className: `h-5 w-5`, icon: IconProp.Close })))))));
65
119
  }
66
120
  return React.createElement(React.Fragment, null);
67
121
  };
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../../../../UI/Components/Toast/Toast.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Toast.js","sourceRoot":"","sources":["../../../../../UI/Components/Toast/Toast.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,SAAS,EACT,MAAM,EACN,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,IAAI,MAAM,cAAc,CAAC;AAChC,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AACpD,OAAO,iBAAiB,MAAM,yBAAyB,CAAC;AAExD,MAAM,CAAN,IAAY,SAMX;AAND,WAAY,SAAS;IACnB,6CAAM,CAAA;IACN,+CAAO,CAAA;IACP,yCAAI,CAAA;IACJ,+CAAO,CAAA;IACP,6CAAM,CAAA;AACR,CAAC,EANW,SAAS,KAAT,SAAS,QAMpB;AAUD,qEAAqE;AACrE,MAAM,mBAAmB,GAAW,GAAG,CAAC;AAExC,MAAM,SAAS,GAAsC,CACnD,KAAqB,EACP,EAAE;IAChB,MAAM,EAAE,eAAe,EAAE,GAAG,iBAAiB,EAAE,CAAC;IAChD,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAU,IAAI,CAAC,CAAC;IAEhD;;;;OAIG;IACH,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE7D;;;OAGG;IACH,MAAM,CAAC,SAAS,EAAE,YAAY,CAAC,GAAG,QAAQ,CAAU,KAAK,CAAC,CAAC;IAE3D,SAAS,CAAC,GAAG,EAAE;QACb,MAAM,IAAI,GAAe,GAAS,EAAE;YAClC,aAAa,CAAC,IAAI,CAAC,CAAC;QACtB,CAAC,CAAC;QAEF,MAAM,KAAK,GAAW,qBAAqB,CAAC,IAAI,CAAC,CAAC;QAElD;;;WAGG;QACH,MAAM,aAAa,GAAkC,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAE1E,OAAO,GAAG,EAAE;YACV,oBAAoB,CAAC,KAAK,CAAC,CAAC;YAC5B,YAAY,CAAC,aAAa,CAAC,CAAC;QAC9B,CAAC,CAAC;IACJ,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP;;;;;;OAMG;IACH,MAAM,UAAU,GAAqD,MAAM,CAEzE,KAAK,CAAC,OAAO,CAAC,CAAC;IACjB,UAAU,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IAEnC,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,MAAM,SAAS,GAAkC,UAAU,CAAC,GAAG,EAAE;YAC/D,OAAO,CAAC,KAAK,CAAC,CAAC;YACf,IAAI,UAAU,CAAC,OAAO,EAAE,CAAC;gBACvB,UAAU,CAAC,OAAO,EAAE,CAAC;YACvB,CAAC;QACH,CAAC,EAAE,mBAAmB,CAAC,CAAC;QAExB,OAAO,GAAG,EAAE;YACV,YAAY,CAAC,SAAS,CAAC,CAAC;QAC1B,CAAC,CAAC;IACJ,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;IAEhB,IAAI,YAAY,GAAW,eAAe,CAAC;IAC3C,IAAI,QAAQ,GAAa,QAAQ,CAAC,IAAI,CAAC;IAEvC,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QACpC,YAAY,GAAG,eAAe,CAAC;QAC/B,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,MAAM,EAAE,CAAC;QACpC,YAAY,GAAG,cAAc,CAAC;QAC9B,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC5B,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;QACrC,YAAY,GAAG,iBAAiB,CAAC;QACjC,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC5B,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,OAAO,EAAE,CAAC;QACrC,YAAY,GAAG,gBAAgB,CAAC;QAChC,QAAQ,GAAG,QAAQ,CAAC,WAAW,CAAC;IAClC,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,EAAE,CAAC;QAClC,YAAY,GAAG,eAAe,CAAC;QAC/B,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC3B,CAAC;IAED,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;QACf,QAAQ,GAAG,KAAK,CAAC,IAAI,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,IAAI,eAAe,GAAW,yBAAyB,CAAC;IAExD,IAAI,SAAS,EAAE,CAAC;QACd,eAAe,GAAG,WAAW,CAAC;IAChC,CAAC;SAAM,IAAI,UAAU,EAAE,CAAC;QACtB,eAAe,GAAG,aAAa,CAAC;IAClC,CAAC;IAED,IAAI,IAAI,EAAE,CAAC;QACT,OAAO,CACL,4CACc,OAAO,EACnB,SAAS,EAAE,qLAAqL,eAAe,EAAE;YAEjN,6BAAK,SAAS,EAAC,KAAK;gBAClB,6BAAK,SAAS,EAAC,kBAAkB;oBAC/B,6BAAK,SAAS,EAAC,eAAe;wBAC5B,oBAAC,IAAI,IACH,SAAS,EAAE,WAAW,YAAY,EAAE,iBACxB,YAAY,EACxB,IAAI,EAAE,QAAQ,GACd,CACE;oBACN,6BAAK,SAAS,EAAC,wBAAwB;wBACrC,0CACc,OAAO,EACnB,SAAS,EAAC,mCAAmC,IAE5C,eAAe,CAAC,KAAK,CAAC,KAAK,CAAC,CAC3B;wBACJ,0CACc,aAAa,EACzB,SAAS,EAAC,4BAA4B,IAErC,eAAe,CAAC,KAAK,CAAC,WAAW,CAAC,CACjC,CACA;oBACN,6BAAK,SAAS,EAAC,yBAAyB;wBACtC,gCACE,OAAO,EAAE,GAAG,EAAE;gCACZ,YAAY,CAAC,IAAI,CAAC,CAAC;4BACrB,CAAC,iBACW,cAAc,EAC1B,IAAI,EAAC,QAAQ,EACb,SAAS,EAAC,qLAAqL;4BAE/L,8BAAM,SAAS,EAAC,SAAS,YAAa;4BACtC,oBAAC,IAAI,IAAC,SAAS,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,CAAC,KAAK,GAAI,CAC7C,CACL,CACF,CACF,CACF,CACP,CAAC;IACJ,CAAC;IACD,OAAO,yCAAK,CAAC;AACf,CAAC,CAAC;AAEF,eAAe,SAAS,CAAC"}