@oneuptime/common 11.7.1 → 11.7.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/Models/AnalyticsModels/KubernetesCostAllocation.ts +103 -0
- package/Models/DatabaseModels/DashboardDomain.ts +1 -0
- package/Models/DatabaseModels/Incident.ts +2 -0
- package/Models/DatabaseModels/IncidentEpisode.ts +1 -0
- package/Models/DatabaseModels/IncidentEpisodePublicNote.ts +1 -0
- package/Models/DatabaseModels/IncidentEpisodeStateTimeline.ts +1 -0
- package/Models/DatabaseModels/IncidentPublicNote.ts +1 -0
- package/Models/DatabaseModels/IncidentStateTimeline.ts +1 -0
- package/Models/DatabaseModels/Monitor.ts +1 -0
- package/Models/DatabaseModels/MonitorStatusTimeline.ts +1 -0
- package/Models/DatabaseModels/NetworkSite.ts +1 -0
- package/Models/DatabaseModels/NetworkSiteStatusTimeline.ts +1 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +1 -0
- package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +2 -0
- package/Models/DatabaseModels/Probe.ts +13 -13
- package/Models/DatabaseModels/ScheduledMaintenance.ts +1 -0
- package/Models/DatabaseModels/ScheduledMaintenancePublicNote.ts +1 -0
- package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +1 -0
- package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +1 -0
- package/Models/DatabaseModels/StatusPage.ts +1 -0
- package/Models/DatabaseModels/StatusPageAnnouncement.ts +1 -0
- package/Models/DatabaseModels/StatusPageDomain.ts +1 -0
- package/Models/DatabaseModels/TableView.ts +40 -0
- package/Models/DatabaseModels/WorkspaceNotificationSummary.ts +1 -0
- package/Models/DatabaseModels/WorkspaceProjectAuthToken.ts +11 -0
- package/Server/API/BaseAPI.ts +17 -1
- package/Server/API/CommonAPI.ts +32 -0
- package/Server/API/MicrosoftTeamsAPI.ts +99 -2
- package/Server/API/ProbeAPI.ts +2 -0
- package/Server/API/SlackAPI.ts +62 -0
- package/Server/API/StatusPageAPI.ts +157 -192
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785140242697-AddHotQueryIndexes.ts +89 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785148065137-AddHotQueryIndexesSecondPass.ts +61 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785240000000-RepairCrossProjectMonitorStatusReferences.ts +280 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.ts +13 -0
- package/Server/Infrastructure/Postgres/SchemaMigrations/Index.ts +8 -0
- package/Server/Services/DatabaseService.ts +11 -3
- package/Server/Services/MonitorGroupService.ts +145 -0
- package/Server/Services/MonitorService.ts +231 -30
- package/Server/Services/ProbeService.ts +319 -16
- package/Server/Services/StatusPageService.ts +72 -42
- package/Server/Services/WorkspaceNotificationRuleService.ts +232 -2
- package/Server/Utils/Database/PostgresErrorTranslator.ts +131 -0
- package/Server/Utils/Monitor/MonitorResource.ts +88 -35
- package/Server/Utils/Monitor/MonitorStatusTimeline.ts +21 -1
- package/Server/Utils/Monitor/MonitorStepsProjectValidator.ts +158 -0
- package/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.ts +706 -6
- package/Tests/Models/AnalyticsModels/KubernetesCostAllocation.test.ts +16 -0
- package/Tests/Models/DatabaseModels/ProbeColumnAccessControl.test.ts +103 -0
- package/Tests/Server/API/BaseAPIUpdateNoOp.test.ts +135 -0
- package/Tests/Server/API/CommonAPIAuthGuard.test.ts +317 -0
- package/Tests/Server/API/MicrosoftTeamsManifest.test.ts +228 -0
- package/Tests/Server/API/ProbeAPI.test.ts +6 -0
- package/Tests/Server/API/ZZVerifyChatsAuth.test.ts +167 -0
- package/Tests/Server/Services/AddHotQueryIndexesMigration.test.ts +255 -0
- package/Tests/Server/Services/AddHotQueryIndexesSecondPassMigration.test.ts +258 -0
- package/Tests/Server/Services/DatabaseServiceSanitizeUpdateData.test.ts +1 -1
- package/Tests/Server/Services/DiscoveryScanClaimHookFreeSafety.test.ts +121 -0
- package/Tests/Server/Services/HeartbeatWriteFastPathSafety.test.ts +200 -0
- package/Tests/Server/Services/HookFreeWriteSafetySecondPass.test.ts +181 -0
- package/Tests/Server/Services/MonitorGroupServiceBatchedStatuses.test.ts +513 -0
- package/Tests/Server/Services/MonitorResourceProbeAgreementReuse.test.ts +492 -0
- package/Tests/Server/Services/MonitorServiceProbeSelection.test.ts +401 -0
- package/Tests/Server/Services/MonitorStatusTimelineFastPath.test.ts +453 -0
- package/Tests/Server/Services/ProbeAuthKeyCacheAndHeartbeat.test.ts +679 -0
- package/Tests/Server/Services/ServiceLevelObjectiveService.test.ts +3 -3
- package/Tests/Server/Services/StatusPageDomainResolutionCache.test.ts +245 -0
- package/Tests/Server/Services/StatusPageOverviewTimelineWindow.test.ts +283 -0
- package/Tests/Server/Services/StatusPageServiceMcp.test.ts +17 -1
- package/Tests/Server/Services/StatusPageServiceMonitorGroupBatching.test.ts +331 -0
- package/Tests/Server/Services/UserOnCallLogClaimNotificationRule.test.ts +12 -12
- package/Tests/Server/Services/WorkspaceNotificationRuleChats.test.ts +1390 -0
- package/Tests/Server/Utils/AI/Insights/InsightFixRouting.test.ts +4 -4
- package/Tests/Server/Utils/AI/Insights/InsightScanner.test.ts +2 -2
- package/Tests/Server/Utils/AI/Insights/InsightStore.test.ts +1 -3
- package/Tests/Server/Utils/AI/Insights/InsightStoreHardening.test.ts +1 -3
- package/Tests/Server/Utils/AI/Insights/InsightTriage.test.ts +1 -1
- package/Tests/Server/Utils/AI/Insights/InsightTriageRunner.test.ts +5 -5
- package/Tests/Server/Utils/Alert/AlertPrivacyFilter.test.ts +187 -0
- package/Tests/Server/Utils/AlertEpisode/AlertEpisodePrivacyFilter.test.ts +170 -0
- package/Tests/Server/Utils/Database/PostgresErrorTranslator.test.ts +125 -0
- package/Tests/Server/Utils/Incident/IncidentPrivacyFilter.test.ts +264 -0
- package/Tests/Server/Utils/IncidentEpisode/IncidentEpisodePrivacyFilter.test.ts +175 -0
- package/Tests/Server/Utils/Monitor/MonitorStepsProjectValidator.test.ts +181 -0
- package/Tests/Server/Utils/Monitor/NetworkDeviceWalkUtil.test.ts +1 -1
- package/Tests/Server/Utils/Monitor/NetworkInventoryUtil.test.ts +2 -2
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChannelsList.test.ts +341 -0
- package/Tests/Server/Utils/Workspace/MicrosoftTeamsChats.test.ts +2175 -0
- package/Tests/Server/Utils/Workspace/SlackChannelsList.test.ts +585 -0
- package/Tests/Types/Billing/MeteredPlan.test.ts +46 -0
- package/Tests/Types/JSONFunctions.test.ts +103 -1
- package/Tests/Types/Workspace/NotificationRules/NotificationRuleCondition.test.ts +219 -1
- package/Tests/UI/Components/BulkUpdateForm.test.tsx +174 -0
- package/Tests/UI/Components/CardModelDetailEdit.test.tsx +315 -0
- package/Tests/UI/Components/ModelDetailSelect.test.tsx +229 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableBulkSelectAll.test.tsx +1258 -0
- package/Tests/UI/Components/ModelTable/BaseModelTableColumnCustomization.test.tsx +679 -0
- package/Tests/UI/Components/ModelTable/ColumnCustomizationModal.test.tsx +572 -0
- package/Tests/UI/Components/ModelTable/ColumnPreference.test.ts +1678 -0
- package/Tests/UI/Components/ModelTable/CustomFieldColumns.test.tsx +1094 -0
- package/Tests/UI/Components/ModelTableExportFromColumns.test.ts +153 -0
- package/Tests/UI/Components/MonacoLoader.test.ts +67 -0
- package/Tests/UI/Components/MonacoRuntime.test.ts +121 -0
- package/Tests/UI/Components/TableBulkCsvExport.test.tsx +212 -3
- package/Tests/UI/Utils/Project.test.ts +809 -0
- package/Tests/UI/Utils/TableColumnsToCsv.test.ts +360 -0
- package/Tests/Utils/Alerts/AlertMetricType.test.ts +143 -0
- package/Tests/Utils/Dashboard/VariableUrlState.test.ts +219 -0
- package/Tests/Utils/Incident/IncidentMetricType.test.ts +174 -0
- package/Tests/Utils/Monitor/MonitorProbeSelectionUtil.test.ts +145 -0
- package/Tests/Utils/StatusPage/ResourceUptime.test.ts +263 -0
- package/Tests/Utils/UserPreferences.test.ts +563 -0
- package/Types/JSONFunctions.ts +7 -2
- package/Types/Kubernetes/KubernetesCostIngest.ts +37 -1
- package/Types/Workspace/NotificationRules/BaseNotificationRule.ts +4 -0
- package/Types/Workspace/NotificationRules/NotificationRuleCondition.ts +25 -10
- package/Types/Workspace/WorkspaceMessagePayload.ts +1 -0
- package/UI/Components/BulkUpdate/BulkUpdateForm.tsx +63 -8
- package/UI/Components/CodeEditor/CodeEditor.tsx +3 -0
- package/UI/Components/CodeEditor/MonacoLoader.ts +36 -0
- package/UI/Components/Forms/ModelForm.tsx +41 -18
- package/UI/Components/MasterPage/MasterPage.tsx +65 -0
- package/UI/Components/ModelDetail/CardModelDetail.tsx +23 -1
- package/UI/Components/ModelDetail/ModelDetail.tsx +46 -1
- package/UI/Components/ModelTable/BaseModelTable.tsx +687 -34
- package/UI/Components/ModelTable/Column.ts +29 -0
- package/UI/Components/ModelTable/ColumnCustomizationModal.tsx +420 -0
- package/UI/Components/ModelTable/ColumnPreference.ts +482 -0
- package/UI/Components/ModelTable/CustomFieldColumns.tsx +326 -0
- package/UI/Components/ModelTable/ExportFromColumns.ts +57 -0
- package/UI/Components/ModelTable/TableView.tsx +24 -2
- package/UI/Components/ModelTable/useCustomFieldColumns.ts +150 -0
- package/UI/Components/Navbar/NavBar.tsx +66 -1
- package/UI/Components/SideMenu/SideMenu.tsx +24 -4
- package/UI/Components/Table/Table.tsx +66 -14
- package/UI/Components/Table/TableRow.tsx +180 -175
- package/UI/Components/Table/Types/Column.ts +20 -0
- package/UI/Utils/Project.ts +214 -18
- package/UI/Utils/TableColumnsToCsv.ts +86 -6
- package/UI/esbuild-config.js +34 -0
- package/Utils/Monitor/MonitorProbeSelectionUtil.ts +72 -0
- package/Utils/UserPreferences.ts +53 -0
- package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js +86 -0
- package/build/dist/Models/AnalyticsModels/KubernetesCostAllocation.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DashboardDomain.js +1 -0
- package/build/dist/Models/DatabaseModels/DashboardDomain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +2 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisode.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisode.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Monitor.js +1 -0
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkSite.js +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSite.js.map +1 -1
- package/build/dist/Models/DatabaseModels/NetworkSiteStatusTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/NetworkSiteStatusTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +1 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +2 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Probe.js +13 -13
- package/build/dist/Models/DatabaseModels/Probe.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +1 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPage.js +1 -0
- package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +1 -0
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js +1 -0
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TableView.js +40 -0
- package/build/dist/Models/DatabaseModels/TableView.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationSummary.js +1 -0
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationSummary.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js.map +1 -1
- package/build/dist/Server/API/BaseAPI.js +12 -1
- package/build/dist/Server/API/BaseAPI.js.map +1 -1
- package/build/dist/Server/API/CommonAPI.js +21 -0
- package/build/dist/Server/API/CommonAPI.js.map +1 -1
- package/build/dist/Server/API/MicrosoftTeamsAPI.js +72 -2
- package/build/dist/Server/API/MicrosoftTeamsAPI.js.map +1 -1
- package/build/dist/Server/API/ProbeAPI.js +2 -0
- package/build/dist/Server/API/ProbeAPI.js.map +1 -1
- package/build/dist/Server/API/SlackAPI.js +44 -0
- package/build/dist/Server/API/SlackAPI.js.map +1 -1
- package/build/dist/Server/API/StatusPageAPI.js +98 -152
- package/build/dist/Server/API/StatusPageAPI.js.map +1 -1
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785140242697-AddHotQueryIndexes.js +36 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785140242697-AddHotQueryIndexes.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785148065137-AddHotQueryIndexesSecondPass.js +26 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785148065137-AddHotQueryIndexesSecondPass.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785240000000-RepairCrossProjectMonitorStatusReferences.js +254 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785240000000-RepairCrossProjectMonitorStatusReferences.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.js +12 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/1785241000000-AddColumnsToTableView.js.map +1 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js +8 -0
- package/build/dist/Server/Infrastructure/Postgres/SchemaMigrations/Index.js.map +1 -1
- package/build/dist/Server/Services/DatabaseService.js +10 -2
- package/build/dist/Server/Services/DatabaseService.js.map +1 -1
- package/build/dist/Server/Services/MonitorGroupService.js +118 -0
- package/build/dist/Server/Services/MonitorGroupService.js.map +1 -1
- package/build/dist/Server/Services/MonitorService.js +198 -24
- package/build/dist/Server/Services/MonitorService.js.map +1 -1
- package/build/dist/Server/Services/ProbeService.js +238 -9
- package/build/dist/Server/Services/ProbeService.js.map +1 -1
- package/build/dist/Server/Services/StatusPageService.js +46 -39
- package/build/dist/Server/Services/StatusPageService.js.map +1 -1
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js +178 -3
- package/build/dist/Server/Services/WorkspaceNotificationRuleService.js.map +1 -1
- package/build/dist/Server/Utils/Database/PostgresErrorTranslator.js +80 -0
- package/build/dist/Server/Utils/Database/PostgresErrorTranslator.js.map +1 -0
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +67 -29
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js +31 -14
- package/build/dist/Server/Utils/Monitor/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js +117 -0
- package/build/dist/Server/Utils/Monitor/MonitorStepsProjectValidator.js.map +1 -0
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js +549 -7
- package/build/dist/Server/Utils/Workspace/MicrosoftTeams/MicrosoftTeams.js.map +1 -1
- package/build/dist/Types/JSONFunctions.js +8 -3
- package/build/dist/Types/JSONFunctions.js.map +1 -1
- package/build/dist/Types/Kubernetes/KubernetesCostIngest.js.map +1 -1
- package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js +17 -7
- package/build/dist/Types/Workspace/NotificationRules/NotificationRuleCondition.js.map +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js +37 -11
- package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js.map +1 -1
- package/build/dist/UI/Components/CodeEditor/CodeEditor.js +2 -0
- package/build/dist/UI/Components/CodeEditor/CodeEditor.js.map +1 -1
- package/build/dist/UI/Components/CodeEditor/MonacoLoader.js +34 -0
- package/build/dist/UI/Components/CodeEditor/MonacoLoader.js.map +1 -0
- package/build/dist/UI/Components/Forms/ModelForm.js +37 -17
- package/build/dist/UI/Components/Forms/ModelForm.js.map +1 -1
- package/build/dist/UI/Components/MasterPage/MasterPage.js +50 -1
- package/build/dist/UI/Components/MasterPage/MasterPage.js.map +1 -1
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js +22 -1
- package/build/dist/UI/Components/ModelDetail/CardModelDetail.js.map +1 -1
- package/build/dist/UI/Components/ModelDetail/ModelDetail.js +31 -1
- package/build/dist/UI/Components/ModelDetail/ModelDetail.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js +472 -27
- package/build/dist/UI/Components/ModelTable/BaseModelTable.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/ColumnCustomizationModal.js +189 -0
- package/build/dist/UI/Components/ModelTable/ColumnCustomizationModal.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/ColumnPreference.js +258 -0
- package/build/dist/UI/Components/ModelTable/ColumnPreference.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js +168 -0
- package/build/dist/UI/Components/ModelTable/CustomFieldColumns.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/ExportFromColumns.js +30 -0
- package/build/dist/UI/Components/ModelTable/ExportFromColumns.js.map +1 -0
- package/build/dist/UI/Components/ModelTable/TableView.js +13 -2
- package/build/dist/UI/Components/ModelTable/TableView.js.map +1 -1
- package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js +84 -0
- package/build/dist/UI/Components/ModelTable/useCustomFieldColumns.js.map +1 -0
- package/build/dist/UI/Components/Navbar/NavBar.js +39 -1
- package/build/dist/UI/Components/Navbar/NavBar.js.map +1 -1
- package/build/dist/UI/Components/SideMenu/SideMenu.js +15 -5
- package/build/dist/UI/Components/SideMenu/SideMenu.js.map +1 -1
- package/build/dist/UI/Components/Table/Table.js +46 -13
- package/build/dist/UI/Components/Table/Table.js.map +1 -1
- package/build/dist/UI/Components/Table/TableRow.js +11 -6
- package/build/dist/UI/Components/Table/TableRow.js.map +1 -1
- package/build/dist/UI/Utils/Project.js +161 -15
- package/build/dist/UI/Utils/Project.js.map +1 -1
- package/build/dist/UI/Utils/TableColumnsToCsv.js +67 -6
- package/build/dist/UI/Utils/TableColumnsToCsv.js.map +1 -1
- package/build/dist/Utils/Monitor/MonitorProbeSelectionUtil.js +52 -0
- package/build/dist/Utils/Monitor/MonitorProbeSelectionUtil.js.map +1 -0
- package/build/dist/Utils/UserPreferences.js +33 -0
- package/build/dist/Utils/UserPreferences.js.map +1 -1
- package/package.json +4 -3
|
@@ -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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"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
/*
|
|
2
|
+
* Derives the fields a ModelTable column contributes to a CSV export from its
|
|
3
|
+
* column definition, and mirrors getSelectFromColumns: a column may declare
|
|
4
|
+
* MORE THAN ONE field when its cell is composed from several of them, and all
|
|
5
|
+
* of them are fetched. The Table column's `key` only ever holds the first, so
|
|
6
|
+
* an exporter reading `key` alone drops the rest - the alert "Affected
|
|
7
|
+
* Resources" cell spans hosts / kubernetesClusters / dockerHosts /
|
|
8
|
+
* podmanHosts / services, and only the hosts made it into the file.
|
|
9
|
+
*/
|
|
10
|
+
export function getExportKeysFromColumn(data) {
|
|
11
|
+
const exportKeys = [];
|
|
12
|
+
if (data.columnKey) {
|
|
13
|
+
exportKeys.push(data.columnKey);
|
|
14
|
+
}
|
|
15
|
+
if (!data.column.field) {
|
|
16
|
+
return exportKeys;
|
|
17
|
+
}
|
|
18
|
+
const declaredKeys = Object.keys(data.column.field);
|
|
19
|
+
// The primary field is already covered by columnKey.
|
|
20
|
+
for (const key of declaredKeys.slice(1)) {
|
|
21
|
+
if (data.hasPermissionToReadField && !data.hasPermissionToReadField(key)) {
|
|
22
|
+
continue;
|
|
23
|
+
}
|
|
24
|
+
if (!exportKeys.includes(key)) {
|
|
25
|
+
exportKeys.push(key);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return exportKeys;
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=ExportFromColumns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ExportFromColumns.js","sourceRoot":"","sources":["../../../../../UI/Components/ModelTable/ExportFromColumns.ts"],"names":[],"mappings":"AAIA;;;;;;;;GAQG;AAEH,MAAM,UAAU,uBAAuB,CAErC,IAeD;IACC,MAAM,UAAU,GAAkB,EAAE,CAAC;IAErC,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnB,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClC,CAAC;IAED,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QACvB,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,YAAY,GAAkB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAEnE,qDAAqD;IACrD,KAAK,MAAM,GAAG,IAAI,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,wBAAwB,IAAI,CAAC,IAAI,CAAC,wBAAwB,CAAC,GAAG,CAAC,EAAE,CAAC;YACzE,SAAS;QACX,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YAC9B,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;QACvB,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC"}
|
|
@@ -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 (
|
|
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
|
-
!
|
|
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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"}
|