@oneuptime/common 10.0.62 → 10.0.65
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/DatabaseModels/AIAgent.ts +36 -0
- package/Models/DatabaseModels/AIAgentOwnerTeam.ts +35 -0
- package/Models/DatabaseModels/AIAgentOwnerUser.ts +35 -0
- package/Models/DatabaseModels/AIAgentTask.ts +48 -0
- package/Models/DatabaseModels/AIAgentTaskLog.ts +9 -0
- package/Models/DatabaseModels/AIAgentTaskPullRequest.ts +19 -0
- package/Models/DatabaseModels/AIAgentTaskTelemetryException.ts +11 -0
- package/Models/DatabaseModels/Alert.ts +104 -0
- package/Models/DatabaseModels/AlertCustomField.ts +20 -0
- package/Models/DatabaseModels/AlertEpisode.ts +118 -0
- package/Models/DatabaseModels/AlertEpisodeFeed.ts +42 -0
- package/Models/DatabaseModels/AlertEpisodeInternalNote.ts +36 -0
- package/Models/DatabaseModels/AlertEpisodeMember.ts +51 -0
- package/Models/DatabaseModels/AlertEpisodeOwnerTeam.ts +36 -0
- package/Models/DatabaseModels/AlertEpisodeOwnerUser.ts +36 -0
- package/Models/DatabaseModels/AlertEpisodeStateTimeline.ts +44 -0
- package/Models/DatabaseModels/AlertFeed.ts +42 -0
- package/Models/DatabaseModels/AlertGroupingRule.ts +82 -0
- package/Models/DatabaseModels/AlertInternalNote.ts +36 -0
- package/Models/DatabaseModels/AlertNoteTemplate.ts +29 -0
- package/Models/DatabaseModels/AlertOwnerTeam.ts +36 -0
- package/Models/DatabaseModels/AlertOwnerUser.ts +36 -0
- package/Models/DatabaseModels/AlertSeverity.ts +39 -0
- package/Models/DatabaseModels/AlertState.ts +49 -0
- package/Models/DatabaseModels/AlertStateTimeline.ts +44 -0
- package/Models/DatabaseModels/BillingPaymentMethod.ts +24 -0
- package/Models/DatabaseModels/CallLog.ts +31 -0
- package/Models/DatabaseModels/CodeRepository.ts +50 -0
- package/Models/DatabaseModels/Dashboard.ts +46 -0
- package/Models/DatabaseModels/DashboardDomain.ts +57 -0
- package/Models/DatabaseModels/DataMigration.ts +1 -0
- package/Models/DatabaseModels/DockerHost.ts +53 -0
- package/Models/DatabaseModels/Domain.ts +23 -0
- package/Models/DatabaseModels/EmailLog.ts +32 -0
- package/Models/DatabaseModels/Incident.ts +152 -0
- package/Models/DatabaseModels/IncidentCustomField.ts +20 -0
- package/Models/DatabaseModels/IncidentEpisode.ts +135 -0
- package/Models/DatabaseModels/IncidentEpisodeFeed.ts +42 -0
- package/Models/DatabaseModels/IncidentEpisodeInternalNote.ts +36 -0
- package/Models/DatabaseModels/IncidentEpisodeMember.ts +51 -0
- package/Models/DatabaseModels/IncidentEpisodeOwnerTeam.ts +36 -0
- package/Models/DatabaseModels/IncidentEpisodeOwnerUser.ts +36 -0
- package/Models/DatabaseModels/IncidentEpisodePublicNote.ts +51 -0
- package/Models/DatabaseModels/IncidentEpisodeRoleMember.ts +45 -0
- package/Models/DatabaseModels/IncidentEpisodeStateTimeline.ts +51 -0
- package/Models/DatabaseModels/IncidentFeed.ts +42 -0
- package/Models/DatabaseModels/IncidentGroupingRule.ts +88 -0
- package/Models/DatabaseModels/IncidentInternalNote.ts +36 -0
- package/Models/DatabaseModels/IncidentMember.ts +45 -0
- package/Models/DatabaseModels/IncidentNoteTemplate.ts +29 -0
- package/Models/DatabaseModels/IncidentOwnerTeam.ts +35 -0
- package/Models/DatabaseModels/IncidentOwnerUser.ts +36 -0
- package/Models/DatabaseModels/IncidentPostmortemTemplate.ts +29 -0
- package/Models/DatabaseModels/IncidentPublicNote.ts +51 -0
- package/Models/DatabaseModels/IncidentRole.ts +47 -0
- package/Models/DatabaseModels/IncidentSeverity.ts +39 -0
- package/Models/DatabaseModels/IncidentSla.ts +36 -0
- package/Models/DatabaseModels/IncidentSlaRule.ts +44 -0
- package/Models/DatabaseModels/IncidentState.ts +51 -0
- package/Models/DatabaseModels/IncidentStateTimeline.ts +55 -0
- package/Models/DatabaseModels/IncidentTemplate.ts +73 -0
- package/Models/DatabaseModels/IncidentTemplateOwnerTeam.ts +35 -0
- package/Models/DatabaseModels/IncidentTemplateOwnerUser.ts +59 -0
- package/Models/DatabaseModels/IncomingCallLog.ts +20 -0
- package/Models/DatabaseModels/IncomingCallLogItem.ts +17 -0
- package/Models/DatabaseModels/IncomingCallPolicy.ts +74 -0
- package/Models/DatabaseModels/IncomingCallPolicyEscalationRule.ts +55 -0
- package/Models/DatabaseModels/KubernetesCluster.ts +53 -0
- package/Models/DatabaseModels/Label.ts +22 -0
- package/Models/DatabaseModels/LlmLog.ts +28 -0
- package/Models/DatabaseModels/LlmProvider.ts +23 -0
- package/Models/DatabaseModels/LogDropFilter.ts +28 -0
- package/Models/DatabaseModels/LogPipeline.ts +24 -0
- package/Models/DatabaseModels/LogPipelineProcessor.ts +24 -0
- package/Models/DatabaseModels/LogSavedView.ts +14 -0
- package/Models/DatabaseModels/LogScrubRule.ts +30 -0
- package/Models/DatabaseModels/MetricType.ts +26 -0
- package/Models/DatabaseModels/Monitor.ts +105 -0
- package/Models/DatabaseModels/MonitorCustomField.ts +20 -0
- package/Models/DatabaseModels/MonitorFeed.ts +42 -0
- package/Models/DatabaseModels/MonitorGroup.ts +31 -0
- package/Models/DatabaseModels/MonitorGroupOwnerTeam.ts +35 -0
- package/Models/DatabaseModels/MonitorGroupOwnerUser.ts +35 -0
- package/Models/DatabaseModels/MonitorGroupResource.ts +31 -0
- package/Models/DatabaseModels/MonitorOwnerTeam.ts +36 -0
- package/Models/DatabaseModels/MonitorOwnerUser.ts +36 -0
- package/Models/DatabaseModels/MonitorProbe.ts +33 -0
- package/Models/DatabaseModels/MonitorStatus.ts +47 -0
- package/Models/DatabaseModels/MonitorStatusTimeline.ts +44 -0
- package/Models/DatabaseModels/MonitorTest.ts +50 -0
- package/Models/DatabaseModels/OnCallDutyPolicy.ts +44 -0
- package/Models/DatabaseModels/OnCallDutyPolicyCustomField.ts +20 -0
- package/Models/DatabaseModels/OnCallDutyPolicyEscalationRule.ts +39 -0
- package/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleSchedule.ts +35 -0
- package/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleTeam.ts +35 -0
- package/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleUser.ts +35 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.ts +87 -0
- package/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.ts +62 -0
- package/Models/DatabaseModels/OnCallDutyPolicyFeed.ts +42 -0
- package/Models/DatabaseModels/OnCallDutyPolicyOwnerTeam.ts +35 -0
- package/Models/DatabaseModels/OnCallDutyPolicyOwnerUser.ts +35 -0
- package/Models/DatabaseModels/OnCallDutyPolicySchedule.ts +50 -0
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.ts +51 -0
- package/Models/DatabaseModels/OnCallDutyPolicyScheduleLayerUser.ts +43 -0
- package/Models/DatabaseModels/OnCallDutyPolicyTimeLog.ts +44 -0
- package/Models/DatabaseModels/OnCallDutyPolicyUserOverride.ts +41 -0
- package/Models/DatabaseModels/Probe.ts +38 -0
- package/Models/DatabaseModels/ProbeOwnerTeam.ts +35 -0
- package/Models/DatabaseModels/ProbeOwnerUser.ts +35 -0
- package/Models/DatabaseModels/Project.ts +44 -0
- package/Models/DatabaseModels/ProjectCallSMSConfig.ts +28 -0
- package/Models/DatabaseModels/ProjectSCIM.ts +26 -0
- package/Models/DatabaseModels/ProjectSCIMLog.ts +14 -0
- package/Models/DatabaseModels/ProjectSmtpConfig.ts +42 -0
- package/Models/DatabaseModels/ProjectSso.ts +26 -0
- package/Models/DatabaseModels/ProjectUserProfile.ts +10 -0
- package/Models/DatabaseModels/PromoCode.ts +10 -0
- package/Models/DatabaseModels/PushNotificationLog.ts +31 -0
- package/Models/DatabaseModels/ScheduledMaintenance.ts +103 -0
- package/Models/DatabaseModels/ScheduledMaintenanceCustomField.ts +20 -0
- package/Models/DatabaseModels/ScheduledMaintenanceFeed.ts +42 -0
- package/Models/DatabaseModels/ScheduledMaintenanceInternalNote.ts +36 -0
- package/Models/DatabaseModels/ScheduledMaintenanceNoteTemplate.ts +29 -0
- package/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.ts +35 -0
- package/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.ts +35 -0
- package/Models/DatabaseModels/ScheduledMaintenancePublicNote.ts +51 -0
- package/Models/DatabaseModels/ScheduledMaintenanceState.ts +55 -0
- package/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.ts +50 -0
- package/Models/DatabaseModels/ScheduledMaintenanceTemplate.ts +98 -0
- package/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerTeam.ts +33 -0
- package/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.ts +33 -0
- package/Models/DatabaseModels/Service.ts +75 -0
- package/Models/DatabaseModels/ServiceCodeRepository.ts +49 -0
- package/Models/DatabaseModels/ServiceDependency.ts +55 -0
- package/Models/DatabaseModels/ServiceMonitor.ts +55 -0
- package/Models/DatabaseModels/ServiceOwnerTeam.ts +31 -0
- package/Models/DatabaseModels/ServiceOwnerUser.ts +31 -0
- package/Models/DatabaseModels/SmsLog.ts +31 -0
- package/Models/DatabaseModels/StatusPage.ts +270 -0
- package/Models/DatabaseModels/StatusPageAnnouncement.ts +61 -0
- package/Models/DatabaseModels/StatusPageAnnouncementTemplate.ts +46 -0
- package/Models/DatabaseModels/StatusPageCustomField.ts +20 -0
- package/Models/DatabaseModels/StatusPageDomain.ts +57 -0
- package/Models/DatabaseModels/StatusPageFooterLink.ts +37 -0
- package/Models/DatabaseModels/StatusPageGroup.ts +53 -0
- package/Models/DatabaseModels/StatusPageHeaderLink.ts +37 -0
- package/Models/DatabaseModels/StatusPageHistoryChartBarColorRule.ts +35 -0
- package/Models/DatabaseModels/StatusPageOwnerTeam.ts +33 -0
- package/Models/DatabaseModels/StatusPageOwnerUser.ts +34 -0
- package/Models/DatabaseModels/StatusPagePrivateUser.ts +36 -0
- package/Models/DatabaseModels/StatusPageResource.ts +79 -0
- package/Models/DatabaseModels/StatusPageSCIM.ts +13 -0
- package/Models/DatabaseModels/StatusPageSCIMLog.ts +15 -0
- package/Models/DatabaseModels/StatusPageSso.ts +6 -0
- package/Models/DatabaseModels/StatusPageSubscriber.ts +79 -0
- package/Models/DatabaseModels/StatusPageSubscriberNotificationTemplate.ts +42 -0
- package/Models/DatabaseModels/StatusPageSubscriberNotificationTemplateStatusPage.ts +32 -0
- package/Models/DatabaseModels/TableView.ts +26 -0
- package/Models/DatabaseModels/Team.ts +25 -0
- package/Models/DatabaseModels/TeamComplianceSetting.ts +10 -0
- package/Models/DatabaseModels/TeamMember.ts +16 -0
- package/Models/DatabaseModels/TeamMemberCustomField.ts +20 -0
- package/Models/DatabaseModels/TeamPermission.ts +22 -0
- package/Models/DatabaseModels/TelemetryException.ts +62 -0
- package/Models/DatabaseModels/WhatsAppLog.ts +32 -0
- package/Models/DatabaseModels/Workflow.ts +39 -0
- package/Models/DatabaseModels/WorkflowLog.ts +18 -0
- package/Models/DatabaseModels/WorkflowVariable.ts +24 -0
- package/Models/DatabaseModels/WorkspaceNotificationLog.ts +37 -0
- package/Models/DatabaseModels/WorkspaceNotificationRule.ts +47 -0
- package/Models/DatabaseModels/WorkspaceNotificationSummary.ts +87 -0
- package/Models/DatabaseModels/WorkspaceProjectAuthToken.ts +10 -0
- package/Server/Utils/Monitor/MonitorResource.ts +9 -0
- package/Tests/UI/Components/ProgressBar.test.tsx +1 -6
- package/Types/Permission.ts +802 -23
- package/UI/Components/BulkUpdate/BulkLabelActions.tsx +288 -0
- package/UI/Components/BulkUpdate/BulkUpdateForm.tsx +14 -6
- package/UI/Components/CSVFileUpload/CSVFileUpload.tsx +352 -0
- package/UI/Components/ProgressBar/ProgressBar.tsx +22 -22
- package/build/dist/Models/DatabaseModels/AIAgent.js +36 -0
- package/build/dist/Models/DatabaseModels/AIAgent.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIAgentOwnerTeam.js +35 -0
- package/build/dist/Models/DatabaseModels/AIAgentOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIAgentOwnerUser.js +35 -0
- package/build/dist/Models/DatabaseModels/AIAgentOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIAgentTask.js +48 -0
- package/build/dist/Models/DatabaseModels/AIAgentTask.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js +9 -0
- package/build/dist/Models/DatabaseModels/AIAgentTaskLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js +19 -0
- package/build/dist/Models/DatabaseModels/AIAgentTaskPullRequest.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js +11 -0
- package/build/dist/Models/DatabaseModels/AIAgentTaskTelemetryException.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Alert.js +104 -0
- package/build/dist/Models/DatabaseModels/Alert.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertCustomField.js +20 -0
- package/build/dist/Models/DatabaseModels/AlertCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisode.js +118 -0
- package/build/dist/Models/DatabaseModels/AlertEpisode.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeFeed.js +42 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeInternalNote.js +36 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeMember.js +51 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeMember.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerTeam.js +36 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerUser.js +36 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js +44 -0
- package/build/dist/Models/DatabaseModels/AlertEpisodeStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertFeed.js +42 -0
- package/build/dist/Models/DatabaseModels/AlertFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertGroupingRule.js +82 -0
- package/build/dist/Models/DatabaseModels/AlertGroupingRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertInternalNote.js +36 -0
- package/build/dist/Models/DatabaseModels/AlertInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertNoteTemplate.js +29 -0
- package/build/dist/Models/DatabaseModels/AlertNoteTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerTeam.js +36 -0
- package/build/dist/Models/DatabaseModels/AlertOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertOwnerUser.js +36 -0
- package/build/dist/Models/DatabaseModels/AlertOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertSeverity.js +39 -0
- package/build/dist/Models/DatabaseModels/AlertSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertState.js +49 -0
- package/build/dist/Models/DatabaseModels/AlertState.js.map +1 -1
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js +44 -0
- package/build/dist/Models/DatabaseModels/AlertStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/BillingPaymentMethod.js +24 -0
- package/build/dist/Models/DatabaseModels/BillingPaymentMethod.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CallLog.js +31 -0
- package/build/dist/Models/DatabaseModels/CallLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/CodeRepository.js +50 -0
- package/build/dist/Models/DatabaseModels/CodeRepository.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Dashboard.js +46 -0
- package/build/dist/Models/DatabaseModels/Dashboard.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DashboardDomain.js +57 -0
- package/build/dist/Models/DatabaseModels/DashboardDomain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DataMigration.js +1 -0
- package/build/dist/Models/DatabaseModels/DataMigration.js.map +1 -1
- package/build/dist/Models/DatabaseModels/DockerHost.js +53 -0
- package/build/dist/Models/DatabaseModels/DockerHost.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Domain.js +23 -0
- package/build/dist/Models/DatabaseModels/Domain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/EmailLog.js +32 -0
- package/build/dist/Models/DatabaseModels/EmailLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Incident.js +152 -0
- package/build/dist/Models/DatabaseModels/Incident.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentCustomField.js +20 -0
- package/build/dist/Models/DatabaseModels/IncidentCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisode.js +135 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisode.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeFeed.js +42 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeInternalNote.js +36 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js +51 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeMember.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerTeam.js +36 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerUser.js +36 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.js +51 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodePublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeRoleMember.js +45 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeRoleMember.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js +51 -0
- package/build/dist/Models/DatabaseModels/IncidentEpisodeStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentFeed.js +42 -0
- package/build/dist/Models/DatabaseModels/IncidentFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js +88 -0
- package/build/dist/Models/DatabaseModels/IncidentGroupingRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentInternalNote.js +36 -0
- package/build/dist/Models/DatabaseModels/IncidentInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentMember.js +45 -0
- package/build/dist/Models/DatabaseModels/IncidentMember.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentNoteTemplate.js +29 -0
- package/build/dist/Models/DatabaseModels/IncidentNoteTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerTeam.js +35 -0
- package/build/dist/Models/DatabaseModels/IncidentOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentOwnerUser.js +36 -0
- package/build/dist/Models/DatabaseModels/IncidentOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentPostmortemTemplate.js +29 -0
- package/build/dist/Models/DatabaseModels/IncidentPostmortemTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js +51 -0
- package/build/dist/Models/DatabaseModels/IncidentPublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentRole.js +47 -0
- package/build/dist/Models/DatabaseModels/IncidentRole.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js +39 -0
- package/build/dist/Models/DatabaseModels/IncidentSeverity.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentSla.js +36 -0
- package/build/dist/Models/DatabaseModels/IncidentSla.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentSlaRule.js +44 -0
- package/build/dist/Models/DatabaseModels/IncidentSlaRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentState.js +51 -0
- package/build/dist/Models/DatabaseModels/IncidentState.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js +55 -0
- package/build/dist/Models/DatabaseModels/IncidentStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js +73 -0
- package/build/dist/Models/DatabaseModels/IncidentTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerTeam.js +35 -0
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerUser.js +59 -0
- package/build/dist/Models/DatabaseModels/IncidentTemplateOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncomingCallLog.js +20 -0
- package/build/dist/Models/DatabaseModels/IncomingCallLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncomingCallLogItem.js +17 -0
- package/build/dist/Models/DatabaseModels/IncomingCallLogItem.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncomingCallPolicy.js +74 -0
- package/build/dist/Models/DatabaseModels/IncomingCallPolicy.js.map +1 -1
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyEscalationRule.js +55 -0
- package/build/dist/Models/DatabaseModels/IncomingCallPolicyEscalationRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/KubernetesCluster.js +53 -0
- package/build/dist/Models/DatabaseModels/KubernetesCluster.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Label.js +22 -0
- package/build/dist/Models/DatabaseModels/Label.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LlmLog.js +28 -0
- package/build/dist/Models/DatabaseModels/LlmLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LlmProvider.js +23 -0
- package/build/dist/Models/DatabaseModels/LlmProvider.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LogDropFilter.js +28 -0
- package/build/dist/Models/DatabaseModels/LogDropFilter.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LogPipeline.js +24 -0
- package/build/dist/Models/DatabaseModels/LogPipeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LogPipelineProcessor.js +24 -0
- package/build/dist/Models/DatabaseModels/LogPipelineProcessor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LogSavedView.js +14 -0
- package/build/dist/Models/DatabaseModels/LogSavedView.js.map +1 -1
- package/build/dist/Models/DatabaseModels/LogScrubRule.js +30 -0
- package/build/dist/Models/DatabaseModels/LogScrubRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MetricType.js +26 -0
- package/build/dist/Models/DatabaseModels/MetricType.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Monitor.js +105 -0
- package/build/dist/Models/DatabaseModels/Monitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorCustomField.js +20 -0
- package/build/dist/Models/DatabaseModels/MonitorCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorFeed.js +42 -0
- package/build/dist/Models/DatabaseModels/MonitorFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroup.js +31 -0
- package/build/dist/Models/DatabaseModels/MonitorGroup.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerTeam.js +35 -0
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerUser.js +35 -0
- package/build/dist/Models/DatabaseModels/MonitorGroupOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorGroupResource.js +31 -0
- package/build/dist/Models/DatabaseModels/MonitorGroupResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerTeam.js +36 -0
- package/build/dist/Models/DatabaseModels/MonitorOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorOwnerUser.js +36 -0
- package/build/dist/Models/DatabaseModels/MonitorOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorProbe.js +33 -0
- package/build/dist/Models/DatabaseModels/MonitorProbe.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatus.js +47 -0
- package/build/dist/Models/DatabaseModels/MonitorStatus.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js +44 -0
- package/build/dist/Models/DatabaseModels/MonitorStatusTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/MonitorTest.js +50 -0
- package/build/dist/Models/DatabaseModels/MonitorTest.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicy.js +44 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicy.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js +20 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRule.js +39 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleSchedule.js +35 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleSchedule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleTeam.js +35 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleUser.js +35 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyEscalationRuleUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js +87 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js +62 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyExecutionLogTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyFeed.js +42 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerTeam.js +35 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerUser.js +35 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js +50 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicySchedule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.js +51 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayer.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayerUser.js +43 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyScheduleLayerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js +44 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyTimeLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyUserOverride.js +41 -0
- package/build/dist/Models/DatabaseModels/OnCallDutyPolicyUserOverride.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Probe.js +38 -0
- package/build/dist/Models/DatabaseModels/Probe.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerTeam.js +35 -0
- package/build/dist/Models/DatabaseModels/ProbeOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProbeOwnerUser.js +35 -0
- package/build/dist/Models/DatabaseModels/ProbeOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Project.js +44 -0
- package/build/dist/Models/DatabaseModels/Project.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js +28 -0
- package/build/dist/Models/DatabaseModels/ProjectCallSMSConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectSCIM.js +26 -0
- package/build/dist/Models/DatabaseModels/ProjectSCIM.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectSCIMLog.js +14 -0
- package/build/dist/Models/DatabaseModels/ProjectSCIMLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectSmtpConfig.js +42 -0
- package/build/dist/Models/DatabaseModels/ProjectSmtpConfig.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectSso.js +26 -0
- package/build/dist/Models/DatabaseModels/ProjectSso.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ProjectUserProfile.js +10 -0
- package/build/dist/Models/DatabaseModels/ProjectUserProfile.js.map +1 -1
- package/build/dist/Models/DatabaseModels/PromoCode.js +10 -0
- package/build/dist/Models/DatabaseModels/PromoCode.js.map +1 -1
- package/build/dist/Models/DatabaseModels/PushNotificationLog.js +31 -0
- package/build/dist/Models/DatabaseModels/PushNotificationLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js +103 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenance.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js +20 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceFeed.js +42 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceFeed.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceInternalNote.js +36 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceInternalNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceNoteTemplate.js +29 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceNoteTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.js +35 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.js +35 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js +51 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenancePublicNote.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceState.js +55 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceState.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js +50 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceStateTimeline.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js +98 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerTeam.js +33 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.js +33 -0
- package/build/dist/Models/DatabaseModels/ScheduledMaintenanceTemplateOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Service.js +75 -0
- package/build/dist/Models/DatabaseModels/Service.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceCodeRepository.js +49 -0
- package/build/dist/Models/DatabaseModels/ServiceCodeRepository.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceDependency.js +55 -0
- package/build/dist/Models/DatabaseModels/ServiceDependency.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceMonitor.js +55 -0
- package/build/dist/Models/DatabaseModels/ServiceMonitor.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceOwnerTeam.js +31 -0
- package/build/dist/Models/DatabaseModels/ServiceOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/ServiceOwnerUser.js +31 -0
- package/build/dist/Models/DatabaseModels/ServiceOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/SmsLog.js +31 -0
- package/build/dist/Models/DatabaseModels/SmsLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPage.js +270 -0
- package/build/dist/Models/DatabaseModels/StatusPage.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js +61 -0
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncement.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js +46 -0
- package/build/dist/Models/DatabaseModels/StatusPageAnnouncementTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageCustomField.js +20 -0
- package/build/dist/Models/DatabaseModels/StatusPageCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js +57 -0
- package/build/dist/Models/DatabaseModels/StatusPageDomain.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageFooterLink.js +37 -0
- package/build/dist/Models/DatabaseModels/StatusPageFooterLink.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageGroup.js +53 -0
- package/build/dist/Models/DatabaseModels/StatusPageGroup.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageHeaderLink.js +37 -0
- package/build/dist/Models/DatabaseModels/StatusPageHeaderLink.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageHistoryChartBarColorRule.js +35 -0
- package/build/dist/Models/DatabaseModels/StatusPageHistoryChartBarColorRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerTeam.js +33 -0
- package/build/dist/Models/DatabaseModels/StatusPageOwnerTeam.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageOwnerUser.js +34 -0
- package/build/dist/Models/DatabaseModels/StatusPageOwnerUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js +36 -0
- package/build/dist/Models/DatabaseModels/StatusPagePrivateUser.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageResource.js +79 -0
- package/build/dist/Models/DatabaseModels/StatusPageResource.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSCIM.js +13 -0
- package/build/dist/Models/DatabaseModels/StatusPageSCIM.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSCIMLog.js +15 -0
- package/build/dist/Models/DatabaseModels/StatusPageSCIMLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSso.js +6 -0
- package/build/dist/Models/DatabaseModels/StatusPageSso.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js +79 -0
- package/build/dist/Models/DatabaseModels/StatusPageSubscriber.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSubscriberNotificationTemplate.js +42 -0
- package/build/dist/Models/DatabaseModels/StatusPageSubscriberNotificationTemplate.js.map +1 -1
- package/build/dist/Models/DatabaseModels/StatusPageSubscriberNotificationTemplateStatusPage.js +32 -0
- package/build/dist/Models/DatabaseModels/StatusPageSubscriberNotificationTemplateStatusPage.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TableView.js +26 -0
- package/build/dist/Models/DatabaseModels/TableView.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Team.js +25 -0
- package/build/dist/Models/DatabaseModels/Team.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js +10 -0
- package/build/dist/Models/DatabaseModels/TeamComplianceSetting.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TeamMember.js +16 -0
- package/build/dist/Models/DatabaseModels/TeamMember.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TeamMemberCustomField.js +20 -0
- package/build/dist/Models/DatabaseModels/TeamMemberCustomField.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TeamPermission.js +22 -0
- package/build/dist/Models/DatabaseModels/TeamPermission.js.map +1 -1
- package/build/dist/Models/DatabaseModels/TelemetryException.js +62 -0
- package/build/dist/Models/DatabaseModels/TelemetryException.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WhatsAppLog.js +32 -0
- package/build/dist/Models/DatabaseModels/WhatsAppLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/Workflow.js +39 -0
- package/build/dist/Models/DatabaseModels/Workflow.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkflowLog.js +18 -0
- package/build/dist/Models/DatabaseModels/WorkflowLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkflowVariable.js +24 -0
- package/build/dist/Models/DatabaseModels/WorkflowVariable.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js +37 -0
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationLog.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationRule.js +47 -0
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationRule.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationSummary.js +87 -0
- package/build/dist/Models/DatabaseModels/WorkspaceNotificationSummary.js.map +1 -1
- package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js +10 -0
- package/build/dist/Models/DatabaseModels/WorkspaceProjectAuthToken.js.map +1 -1
- package/build/dist/Server/Utils/Monitor/MonitorResource.js +8 -0
- package/build/dist/Server/Utils/Monitor/MonitorResource.js.map +1 -1
- package/build/dist/Tests/UI/Components/ProgressBar.test.js +1 -4
- package/build/dist/Tests/UI/Components/ProgressBar.test.js.map +1 -1
- package/build/dist/Types/Permission.js +788 -23
- package/build/dist/Types/Permission.js.map +1 -1
- package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js +211 -0
- package/build/dist/UI/Components/BulkUpdate/BulkLabelActions.js.map +1 -0
- package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js +3 -1
- package/build/dist/UI/Components/BulkUpdate/BulkUpdateForm.js.map +1 -1
- package/build/dist/UI/Components/CSVFileUpload/CSVFileUpload.js +210 -0
- package/build/dist/UI/Components/CSVFileUpload/CSVFileUpload.js.map +1 -0
- package/build/dist/UI/Components/ProgressBar/ProgressBar.js +11 -9
- package/build/dist/UI/Components/ProgressBar/ProgressBar.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
import React, { useEffect, useState } from "react";
|
|
2
|
+
import Label from "../../../Models/DatabaseModels/Label";
|
|
3
|
+
import BadDataException from "../../../Types/Exception/BadDataException";
|
|
4
|
+
import IconProp from "../../../Types/Icon/IconProp";
|
|
5
|
+
import { LIMIT_PER_PROJECT } from "../../../Types/Database/LimitMax";
|
|
6
|
+
import SortOrder from "../../../Types/BaseDatabase/SortOrder";
|
|
7
|
+
import API from "../../Utils/API/API";
|
|
8
|
+
import ModelAPI from "../../Utils/ModelAPI/ModelAPI";
|
|
9
|
+
import ProjectUtil from "../../Utils/Project";
|
|
10
|
+
import { ButtonStyleType } from "../Button/Button";
|
|
11
|
+
import BasicFormModal from "../FormModal/BasicFormModal";
|
|
12
|
+
import FormFieldSchemaType from "../Forms/Types/FormFieldSchemaType";
|
|
13
|
+
/**
|
|
14
|
+
* Reusable hook that provides "Add Labels" and "Remove Labels" bulk actions
|
|
15
|
+
* for any ModelTable whose model has a `labels` many-to-many relationship
|
|
16
|
+
* to the Label entity.
|
|
17
|
+
*
|
|
18
|
+
* Usage:
|
|
19
|
+
* const { bulkActions, modals } = useBulkLabelActions({ modelType: Monitor });
|
|
20
|
+
* <ModelTable bulkActions={{ buttons: [...bulkActions, ...] }} />
|
|
21
|
+
* {modals}
|
|
22
|
+
*/
|
|
23
|
+
function useBulkLabelActions(config) {
|
|
24
|
+
const [labels, setLabels] = useState([]);
|
|
25
|
+
const [showAddModal, setShowAddModal] = useState(false);
|
|
26
|
+
const [showRemoveModal, setShowRemoveModal] = useState(false);
|
|
27
|
+
const [bulkActionProps, setBulkActionProps] = useState(null);
|
|
28
|
+
useEffect(() => {
|
|
29
|
+
const fetchLabels = async () => {
|
|
30
|
+
try {
|
|
31
|
+
const result = await ModelAPI.getList({
|
|
32
|
+
modelType: Label,
|
|
33
|
+
query: {
|
|
34
|
+
projectId: ProjectUtil.getCurrentProjectId(),
|
|
35
|
+
},
|
|
36
|
+
limit: LIMIT_PER_PROJECT,
|
|
37
|
+
skip: 0,
|
|
38
|
+
select: {
|
|
39
|
+
_id: true,
|
|
40
|
+
name: true,
|
|
41
|
+
color: true,
|
|
42
|
+
},
|
|
43
|
+
sort: {
|
|
44
|
+
name: SortOrder.Ascending,
|
|
45
|
+
},
|
|
46
|
+
});
|
|
47
|
+
setLabels(result.data);
|
|
48
|
+
}
|
|
49
|
+
catch (_a) {
|
|
50
|
+
// labels will remain empty; modal will show no options
|
|
51
|
+
}
|
|
52
|
+
};
|
|
53
|
+
fetchLabels();
|
|
54
|
+
}, []);
|
|
55
|
+
const applyLabels = async (labelIds, mode) => {
|
|
56
|
+
if (!bulkActionProps) {
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
const { items, onProgressInfo, onBulkActionStart, onBulkActionEnd } = bulkActionProps;
|
|
60
|
+
// Close the form modal first so the progress modal is visible
|
|
61
|
+
setShowAddModal(false);
|
|
62
|
+
setShowRemoveModal(false);
|
|
63
|
+
onBulkActionStart();
|
|
64
|
+
const totalItems = [...items];
|
|
65
|
+
const inProgressItems = [...items];
|
|
66
|
+
const successItems = [];
|
|
67
|
+
const failedItems = [];
|
|
68
|
+
for (const item of totalItems) {
|
|
69
|
+
inProgressItems.splice(inProgressItems.indexOf(item), 1);
|
|
70
|
+
try {
|
|
71
|
+
if (!item.id) {
|
|
72
|
+
throw new BadDataException("Item ID not found");
|
|
73
|
+
}
|
|
74
|
+
/*
|
|
75
|
+
* Fetch current labels for this item so we can merge/subtract
|
|
76
|
+
* the selected label ids and avoid clobbering existing ones.
|
|
77
|
+
*/
|
|
78
|
+
const currentItem = await ModelAPI.getItem({
|
|
79
|
+
modelType: config.modelType,
|
|
80
|
+
id: item.id,
|
|
81
|
+
select: {
|
|
82
|
+
labels: {
|
|
83
|
+
_id: true,
|
|
84
|
+
},
|
|
85
|
+
},
|
|
86
|
+
});
|
|
87
|
+
const existingLabelIds = ((currentItem === null || currentItem === void 0 ? void 0 : currentItem.labels) || [])
|
|
88
|
+
.map((label) => {
|
|
89
|
+
var _a;
|
|
90
|
+
return ((_a = label._id) === null || _a === void 0 ? void 0 : _a.toString()) || "";
|
|
91
|
+
})
|
|
92
|
+
.filter((id) => {
|
|
93
|
+
return id.length > 0;
|
|
94
|
+
});
|
|
95
|
+
let newLabelIds;
|
|
96
|
+
if (mode === "add") {
|
|
97
|
+
newLabelIds = Array.from(new Set([...existingLabelIds, ...labelIds]));
|
|
98
|
+
}
|
|
99
|
+
else {
|
|
100
|
+
newLabelIds = existingLabelIds.filter((id) => {
|
|
101
|
+
return !labelIds.includes(id);
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
/*
|
|
105
|
+
* No-op short-circuit: if nothing changed, still report as success
|
|
106
|
+
* so the user sees the item as processed.
|
|
107
|
+
*/
|
|
108
|
+
if (newLabelIds.length === existingLabelIds.length &&
|
|
109
|
+
newLabelIds.every((id) => {
|
|
110
|
+
return existingLabelIds.includes(id);
|
|
111
|
+
})) {
|
|
112
|
+
successItems.push(item);
|
|
113
|
+
}
|
|
114
|
+
else {
|
|
115
|
+
await ModelAPI.updateById({
|
|
116
|
+
id: item.id,
|
|
117
|
+
modelType: config.modelType,
|
|
118
|
+
data: {
|
|
119
|
+
labels: newLabelIds,
|
|
120
|
+
},
|
|
121
|
+
});
|
|
122
|
+
successItems.push(item);
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
catch (err) {
|
|
126
|
+
failedItems.push({
|
|
127
|
+
item: item,
|
|
128
|
+
failedMessage: API.getFriendlyMessage(err),
|
|
129
|
+
});
|
|
130
|
+
}
|
|
131
|
+
onProgressInfo({
|
|
132
|
+
totalItems: totalItems,
|
|
133
|
+
failed: failedItems,
|
|
134
|
+
successItems: successItems,
|
|
135
|
+
inProgressItems: inProgressItems,
|
|
136
|
+
});
|
|
137
|
+
}
|
|
138
|
+
onBulkActionEnd();
|
|
139
|
+
setBulkActionProps(null);
|
|
140
|
+
};
|
|
141
|
+
const labelDropdownOptions = labels.map((label) => {
|
|
142
|
+
var _a;
|
|
143
|
+
return {
|
|
144
|
+
label: label.name || "",
|
|
145
|
+
value: ((_a = label._id) === null || _a === void 0 ? void 0 : _a.toString()) || "",
|
|
146
|
+
};
|
|
147
|
+
});
|
|
148
|
+
const addLabelsAction = {
|
|
149
|
+
title: "Add Labels",
|
|
150
|
+
buttonStyleType: ButtonStyleType.NORMAL,
|
|
151
|
+
icon: IconProp.Label,
|
|
152
|
+
onClick: async (actionProps) => {
|
|
153
|
+
setBulkActionProps(actionProps);
|
|
154
|
+
setShowAddModal(true);
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
const removeLabelsAction = {
|
|
158
|
+
title: "Remove Labels",
|
|
159
|
+
buttonStyleType: ButtonStyleType.NORMAL,
|
|
160
|
+
icon: IconProp.Close,
|
|
161
|
+
onClick: async (actionProps) => {
|
|
162
|
+
setBulkActionProps(actionProps);
|
|
163
|
+
setShowRemoveModal(true);
|
|
164
|
+
},
|
|
165
|
+
};
|
|
166
|
+
const modals = (React.createElement(React.Fragment, null,
|
|
167
|
+
showAddModal && (React.createElement(BasicFormModal, { title: "Add Labels", description: "Select labels to add to the selected items. Labels already attached to an item will be preserved.", onClose: () => {
|
|
168
|
+
setShowAddModal(false);
|
|
169
|
+
setBulkActionProps(null);
|
|
170
|
+
}, submitButtonText: "Add Labels", onSubmit: async (formData) => {
|
|
171
|
+
await applyLabels(formData.labelIds || [], "add");
|
|
172
|
+
}, formProps: {
|
|
173
|
+
fields: [
|
|
174
|
+
{
|
|
175
|
+
field: {
|
|
176
|
+
labelIds: true,
|
|
177
|
+
},
|
|
178
|
+
title: "Select Labels",
|
|
179
|
+
description: "These labels will be added to each selected item.",
|
|
180
|
+
fieldType: FormFieldSchemaType.MultiSelectDropdown,
|
|
181
|
+
required: true,
|
|
182
|
+
dropdownOptions: labelDropdownOptions,
|
|
183
|
+
},
|
|
184
|
+
],
|
|
185
|
+
} })),
|
|
186
|
+
showRemoveModal && (React.createElement(BasicFormModal, { title: "Remove Labels", description: "Select labels to remove from the selected items. Items that do not have any of these labels will be skipped.", onClose: () => {
|
|
187
|
+
setShowRemoveModal(false);
|
|
188
|
+
setBulkActionProps(null);
|
|
189
|
+
}, submitButtonText: "Remove Labels", onSubmit: async (formData) => {
|
|
190
|
+
await applyLabels(formData.labelIds || [], "remove");
|
|
191
|
+
}, formProps: {
|
|
192
|
+
fields: [
|
|
193
|
+
{
|
|
194
|
+
field: {
|
|
195
|
+
labelIds: true,
|
|
196
|
+
},
|
|
197
|
+
title: "Select Labels",
|
|
198
|
+
description: "These labels will be removed from each selected item.",
|
|
199
|
+
fieldType: FormFieldSchemaType.MultiSelectDropdown,
|
|
200
|
+
required: true,
|
|
201
|
+
dropdownOptions: labelDropdownOptions,
|
|
202
|
+
},
|
|
203
|
+
],
|
|
204
|
+
} }))));
|
|
205
|
+
return {
|
|
206
|
+
bulkActions: [addLabelsAction, removeLabelsAction],
|
|
207
|
+
modals: modals,
|
|
208
|
+
};
|
|
209
|
+
}
|
|
210
|
+
export default useBulkLabelActions;
|
|
211
|
+
//# sourceMappingURL=BulkLabelActions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BulkLabelActions.js","sourceRoot":"","sources":["../../../../../UI/Components/BulkUpdate/BulkLabelActions.tsx"],"names":[],"mappings":"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"}
|
|
@@ -17,7 +17,9 @@ const BulkUpdateForm = (props) => {
|
|
|
17
17
|
}
|
|
18
18
|
const showProgressInfo = () => {
|
|
19
19
|
if (actionInProgress && progressInfo) {
|
|
20
|
-
return (React.createElement(
|
|
20
|
+
return (React.createElement("div", { className: "space-y-4" },
|
|
21
|
+
React.createElement("p", { className: "text-sm text-gray-500" }, "Please wait while the bulk action is being performed. This may take a moment."),
|
|
22
|
+
React.createElement(ProgressBar, { count: progressInfo.successItems.length + progressInfo.failed.length, totalCount: progressInfo.totalItems.length, suffix: props.pluralLabel, size: ProgressBarSize.Small })));
|
|
21
23
|
}
|
|
22
24
|
if (!actionInProgress && progressInfo) {
|
|
23
25
|
const hasFailures = progressInfo.failed.length > 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BulkUpdateForm.js","sourceRoot":"","sources":["../../../../../UI/Components/BulkUpdate/BulkUpdateForm.tsx"],"names":[],"mappings":"AACA,OAAO,MAAM,EAAE,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACvE,OAAO,IAAI,EAAE,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,YAEN,MAAM,uBAAuB,CAAC;AAC/B,OAAO,WAAW,EAAE,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE1E,OAAO,EAAE,KAAK,EAAE,GAAG,EAAE,MAAM,4BAA4B,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,MAAM,kCAAkC,CAAC;AAErE,OAAO,QAAQ,MAAM,8BAA8B,CAAC;AACpD,OAAO,KAAuB,MAAM,OAAO,CAAC;AAwD5C,MAAM,cAAc,GAEA,CAClB,KAAwB,EACV,EAAE;;IAChB,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAC7C,KAAK,CAAC,QAAQ,CAA2B,IAAI,CAAC,CAAC;IAEjD,MAAM,CAAC,YAAY,EAAE,eAAe,CAAC,GACnC,KAAK,CAAC,QAAQ,CAAyB,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,qBAAqB,EAAE,wBAAwB,CAAC,GACrD,KAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,CAAC;IAEjC,MAAM,CAAC,gBAAgB,EAAE,mBAAmB,CAAC,GAC3C,KAAK,CAAC,QAAQ,CAAU,KAAK,CAAC,CAAC;IAEjC,IAAI,KAAK,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACrC,OAAO,yCAAK,CAAC;IACf,CAAC;IAED,MAAM,gBAAgB,GAA4B,GAAiB,EAAE;QACnE,IAAI,gBAAgB,IAAI,YAAY,EAAE,CAAC;YACrC,OAAO,CACL,oBAAC,WAAW,IACV,KAAK,
|
|
1
|
+
{"version":3,"file":"BulkUpdateForm.js","sourceRoot":"","sources":["../../../../../UI/Components/BulkUpdate/BulkUpdateForm.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
import Button, { ButtonStyleType } from "../Button/Button";
|
|
2
|
+
import Color from "../../../Types/Color";
|
|
3
|
+
import Icon from "../Icon/Icon";
|
|
4
|
+
import IconProp from "../../../Types/Icon/IconProp";
|
|
5
|
+
import React, { useRef, useState, } from "react";
|
|
6
|
+
const parseCSV = (text) => {
|
|
7
|
+
const rows = [];
|
|
8
|
+
let current = "";
|
|
9
|
+
let inQuotes = false;
|
|
10
|
+
let row = [];
|
|
11
|
+
for (let i = 0; i < text.length; i++) {
|
|
12
|
+
const char = text[i];
|
|
13
|
+
const nextChar = text[i + 1];
|
|
14
|
+
if (inQuotes) {
|
|
15
|
+
if (char === '"' && nextChar === '"') {
|
|
16
|
+
current += '"';
|
|
17
|
+
i++;
|
|
18
|
+
}
|
|
19
|
+
else if (char === '"') {
|
|
20
|
+
inQuotes = false;
|
|
21
|
+
}
|
|
22
|
+
else {
|
|
23
|
+
current += char;
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
else if (char === '"') {
|
|
27
|
+
inQuotes = true;
|
|
28
|
+
}
|
|
29
|
+
else if (char === ",") {
|
|
30
|
+
row.push(current.trim());
|
|
31
|
+
current = "";
|
|
32
|
+
}
|
|
33
|
+
else if (char === "\n" || (char === "\r" && nextChar === "\n")) {
|
|
34
|
+
row.push(current.trim());
|
|
35
|
+
current = "";
|
|
36
|
+
if (row.some((cell) => {
|
|
37
|
+
return cell.length > 0;
|
|
38
|
+
})) {
|
|
39
|
+
rows.push(row);
|
|
40
|
+
}
|
|
41
|
+
row = [];
|
|
42
|
+
if (char === "\r") {
|
|
43
|
+
i++;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
else {
|
|
47
|
+
current += char;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Push the last row
|
|
51
|
+
row.push(current.trim());
|
|
52
|
+
if (row.some((cell) => {
|
|
53
|
+
return cell.length > 0;
|
|
54
|
+
})) {
|
|
55
|
+
rows.push(row);
|
|
56
|
+
}
|
|
57
|
+
return rows;
|
|
58
|
+
};
|
|
59
|
+
const CSVFileUpload = (props) => {
|
|
60
|
+
const [error, setError] = useState("");
|
|
61
|
+
const [parsedRows, setParsedRows] = useState([]);
|
|
62
|
+
const [fileName, setFileName] = useState("");
|
|
63
|
+
const fileInputRef = useRef(null);
|
|
64
|
+
const downloadTemplate = () => {
|
|
65
|
+
const headerRow = props.columns
|
|
66
|
+
.map((col) => {
|
|
67
|
+
return col.title;
|
|
68
|
+
})
|
|
69
|
+
.join(",");
|
|
70
|
+
const csvContent = headerRow + "\n";
|
|
71
|
+
const blob = new Blob([csvContent], { type: "text/csv" });
|
|
72
|
+
const url = window.URL.createObjectURL(blob);
|
|
73
|
+
const a = document.createElement("a");
|
|
74
|
+
a.href = url;
|
|
75
|
+
a.download = props.templateFileName || "template.csv";
|
|
76
|
+
a.click();
|
|
77
|
+
window.URL.revokeObjectURL(url);
|
|
78
|
+
};
|
|
79
|
+
const handleFileChange = (event) => {
|
|
80
|
+
var _a;
|
|
81
|
+
setError("");
|
|
82
|
+
setParsedRows([]);
|
|
83
|
+
setFileName("");
|
|
84
|
+
const file = (_a = event.target.files) === null || _a === void 0 ? void 0 : _a[0];
|
|
85
|
+
if (!file) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (!file.name.toLowerCase().endsWith(".csv")) {
|
|
89
|
+
setError("Please upload a CSV file.");
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
setFileName(file.name);
|
|
93
|
+
const reader = new FileReader();
|
|
94
|
+
reader.onload = (e) => {
|
|
95
|
+
var _a, _b;
|
|
96
|
+
const text = ((_a = e.target) === null || _a === void 0 ? void 0 : _a.result) || "";
|
|
97
|
+
const rows = parseCSV(text);
|
|
98
|
+
if (rows.length < 2) {
|
|
99
|
+
setError("CSV file must have a header row and at least one data row.");
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
const headerRow = rows[0];
|
|
103
|
+
// Map header titles to column keys
|
|
104
|
+
const columnMap = new Map();
|
|
105
|
+
for (const col of props.columns) {
|
|
106
|
+
const index = headerRow.findIndex((h) => {
|
|
107
|
+
return h.toLowerCase() === col.title.toLowerCase();
|
|
108
|
+
});
|
|
109
|
+
if (index !== -1) {
|
|
110
|
+
columnMap.set(index, col);
|
|
111
|
+
}
|
|
112
|
+
else if (col.required) {
|
|
113
|
+
setError(`Required column "${col.title}" not found in CSV headers. Found: ${headerRow.join(", ")}`);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const dataRows = [];
|
|
118
|
+
const errors = [];
|
|
119
|
+
for (let i = 1; i < rows.length; i++) {
|
|
120
|
+
const row = rows[i];
|
|
121
|
+
const rowData = {};
|
|
122
|
+
let hasRequiredFields = true;
|
|
123
|
+
for (const [colIndex, col] of columnMap.entries()) {
|
|
124
|
+
const value = ((_b = row[colIndex]) === null || _b === void 0 ? void 0 : _b.trim()) || "";
|
|
125
|
+
rowData[col.key] = value;
|
|
126
|
+
if (col.required && !value) {
|
|
127
|
+
hasRequiredFields = false;
|
|
128
|
+
errors.push(`Row ${i}: missing required field "${col.title}"`);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
if (hasRequiredFields) {
|
|
132
|
+
dataRows.push(rowData);
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
if (dataRows.length === 0) {
|
|
136
|
+
setError(errors.length > 0
|
|
137
|
+
? `No valid rows found. ${errors.slice(0, 3).join(". ")}${errors.length > 3 ? ` and ${errors.length - 3} more errors.` : ""}`
|
|
138
|
+
: "No valid data rows found in the CSV file.");
|
|
139
|
+
return;
|
|
140
|
+
}
|
|
141
|
+
if (errors.length > 0 && dataRows.length > 0) {
|
|
142
|
+
// Some rows were skipped but we have valid data
|
|
143
|
+
setError(`${errors.length} row(s) skipped due to missing required fields. ${dataRows.length} valid row(s) found.`);
|
|
144
|
+
}
|
|
145
|
+
setParsedRows(dataRows);
|
|
146
|
+
props.onDataChanged(dataRows);
|
|
147
|
+
};
|
|
148
|
+
reader.onerror = () => {
|
|
149
|
+
setError("Failed to read the CSV file. Please try again.");
|
|
150
|
+
};
|
|
151
|
+
reader.readAsText(file);
|
|
152
|
+
// Reset the input so the same file can be re-uploaded
|
|
153
|
+
event.target.value = "";
|
|
154
|
+
};
|
|
155
|
+
return (React.createElement("div", { className: "space-y-4 w-full" },
|
|
156
|
+
props.description && (React.createElement("p", { className: "text-sm text-gray-500" }, props.description)),
|
|
157
|
+
React.createElement("div", { className: "flex items-center space-x-3" },
|
|
158
|
+
React.createElement(Button, { title: "Download CSV Template", icon: IconProp.Download, buttonStyle: ButtonStyleType.OUTLINE, onClick: downloadTemplate })),
|
|
159
|
+
React.createElement("div", { className: "rounded-lg border border-gray-200 bg-gray-50 p-3" },
|
|
160
|
+
React.createElement("p", { className: "text-xs font-medium text-gray-700 mb-2" }, "Expected columns:"),
|
|
161
|
+
React.createElement("div", { className: "flex flex-wrap gap-2" }, props.columns.map((col) => {
|
|
162
|
+
return (React.createElement("span", { key: col.key, className: `inline-flex items-center rounded px-2 py-1 text-xs font-medium ${col.required
|
|
163
|
+
? "bg-indigo-100 text-indigo-700"
|
|
164
|
+
: "bg-gray-200 text-gray-600"}`, title: col.description },
|
|
165
|
+
col.title,
|
|
166
|
+
col.required && React.createElement("span", { className: "ml-1 text-red-500" }, "*")));
|
|
167
|
+
}))),
|
|
168
|
+
React.createElement("div", { className: "flex w-full justify-center rounded-md border-2 border-dashed border-gray-300 bg-white px-6 py-8 cursor-pointer hover:border-indigo-400 transition", onClick: () => {
|
|
169
|
+
var _a;
|
|
170
|
+
return (_a = fileInputRef.current) === null || _a === void 0 ? void 0 : _a.click();
|
|
171
|
+
} },
|
|
172
|
+
React.createElement("div", { className: "flex flex-col items-center space-y-2 text-center" },
|
|
173
|
+
React.createElement(Icon, { icon: IconProp.File, className: "h-10 w-10 text-gray-400" }),
|
|
174
|
+
React.createElement("div", { className: "text-sm text-gray-600" },
|
|
175
|
+
React.createElement("span", { className: "font-medium text-indigo-600" }, "Click to upload CSV"),
|
|
176
|
+
" ",
|
|
177
|
+
"or drag and drop"),
|
|
178
|
+
React.createElement("p", { className: "text-xs text-gray-500" }, "CSV files only"),
|
|
179
|
+
React.createElement("input", { ref: fileInputRef, type: "file", accept: ".csv", className: "sr-only", onChange: handleFileChange }))),
|
|
180
|
+
fileName && !error && (React.createElement("div", { className: "flex items-center rounded-lg bg-green-50 p-3" },
|
|
181
|
+
React.createElement(Icon, { className: "h-5 w-5 flex-shrink-0", icon: IconProp.CheckCircle, color: new Color("#16a34a") }),
|
|
182
|
+
React.createElement("div", { className: "ml-2 text-sm font-medium text-green-800" },
|
|
183
|
+
fileName,
|
|
184
|
+
" - ",
|
|
185
|
+
parsedRows.length,
|
|
186
|
+
" row(s) ready to import"))),
|
|
187
|
+
error && (React.createElement("div", { className: "rounded-lg bg-red-50 p-3" },
|
|
188
|
+
React.createElement("p", { className: "text-sm text-red-700" }, error))),
|
|
189
|
+
parsedRows.length > 0 && (React.createElement("div", { className: "rounded-lg border border-gray-200 overflow-hidden" },
|
|
190
|
+
React.createElement("div", { className: "bg-gray-50 px-4 py-2 text-xs font-medium text-gray-700" },
|
|
191
|
+
"Preview (first ",
|
|
192
|
+
Math.min(parsedRows.length, 5),
|
|
193
|
+
" of",
|
|
194
|
+
" ",
|
|
195
|
+
parsedRows.length,
|
|
196
|
+
" rows)"),
|
|
197
|
+
React.createElement("div", { className: "overflow-x-auto" },
|
|
198
|
+
React.createElement("table", { className: "min-w-full divide-y divide-gray-200" },
|
|
199
|
+
React.createElement("thead", { className: "bg-gray-50" },
|
|
200
|
+
React.createElement("tr", null, props.columns.map((col) => {
|
|
201
|
+
return (React.createElement("th", { key: col.key, className: "px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase" }, col.title));
|
|
202
|
+
}))),
|
|
203
|
+
React.createElement("tbody", { className: "divide-y divide-gray-200 bg-white" }, parsedRows.slice(0, 5).map((row, i) => {
|
|
204
|
+
return (React.createElement("tr", { key: i }, props.columns.map((col) => {
|
|
205
|
+
return (React.createElement("td", { key: col.key, className: "px-4 py-2 text-sm text-gray-900 truncate max-w-xs" }, row[col.key] || ""));
|
|
206
|
+
})));
|
|
207
|
+
}))))))));
|
|
208
|
+
};
|
|
209
|
+
export default CSVFileUpload;
|
|
210
|
+
//# sourceMappingURL=CSVFileUpload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CSVFileUpload.js","sourceRoot":"","sources":["../../../../../UI/Components/CSVFileUpload/CSVFileUpload.tsx"],"names":[],"mappings":"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"}
|
|
@@ -24,22 +24,24 @@ const ProgressBar = (props) => {
|
|
|
24
24
|
}, [props.count, props.totalCount]);
|
|
25
25
|
let progressBarSize = "h-4";
|
|
26
26
|
if (props.size === ProgressBarSize.Small) {
|
|
27
|
-
progressBarSize = "h-2";
|
|
27
|
+
progressBarSize = "h-2.5";
|
|
28
28
|
}
|
|
29
29
|
else if (props.size === ProgressBarSize.Large) {
|
|
30
30
|
progressBarSize = "h-6";
|
|
31
31
|
}
|
|
32
|
-
return (React.createElement("div",
|
|
33
|
-
React.createElement("div", {
|
|
34
|
-
|
|
35
|
-
React.createElement("div", { "data-testid": "progress-bar-count" },
|
|
32
|
+
return (React.createElement("div", null,
|
|
33
|
+
React.createElement("div", { className: "flex justify-between items-center mb-2" },
|
|
34
|
+
React.createElement("div", { "data-testid": "progress-bar-count", className: "text-sm font-medium text-gray-700" },
|
|
36
35
|
props.count,
|
|
37
|
-
" ",
|
|
38
|
-
props.suffix),
|
|
39
|
-
React.createElement("div", { "data-testid": "progress-bar-total-count" },
|
|
36
|
+
" of ",
|
|
40
37
|
props.totalCount,
|
|
41
38
|
" ",
|
|
42
|
-
props.suffix)
|
|
39
|
+
props.suffix),
|
|
40
|
+
React.createElement("div", { className: "text-sm font-medium text-indigo-600" },
|
|
41
|
+
percent,
|
|
42
|
+
"%")),
|
|
43
|
+
React.createElement("div", { className: `w-full ${progressBarSize} bg-gray-200 rounded-full overflow-hidden`, role: "progressbar", "aria-valuenow": percent, "aria-valuemin": 0, "aria-valuemax": 100, "aria-label": `Progress: ${props.count} of ${props.totalCount} ${props.suffix} (${percent}%)` },
|
|
44
|
+
React.createElement("div", { "data-testid": "progress-bar", className: `${progressBarSize} bg-indigo-600 rounded-full transition-all duration-300 ease-out`, style: { width: percent + "%" } }))));
|
|
43
45
|
};
|
|
44
46
|
export default ProgressBar;
|
|
45
47
|
//# sourceMappingURL=ProgressBar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../../../UI/Components/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,SAAS,EACT,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,kCAAe,CAAA;IACf,oCAAiB,CAAA;IACjB,kCAAe,CAAA;AACjB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AASD,MAAM,WAAW,GAAsC,CACrD,KAAqB,EACP,EAAE;IAChB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,GAAW,CAAC,CAAC;QAExB,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,GAAY,CAAC,CAAC;YAC3B,cAAc;QAChB,CAAC;QAED,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;YAClB,OAAO,GAAG,GAAG,CAAC;QAChB,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAEpC,IAAI,eAAe,GAAW,KAAK,CAAC;IAEpC,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;QACzC,eAAe,GAAG,
|
|
1
|
+
{"version":3,"file":"ProgressBar.js","sourceRoot":"","sources":["../../../../../UI/Components/ProgressBar/ProgressBar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAGZ,SAAS,EACT,QAAQ,GACT,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAE5C,MAAM,CAAN,IAAY,eAIX;AAJD,WAAY,eAAe;IACzB,kCAAe,CAAA;IACf,oCAAiB,CAAA;IACjB,kCAAe,CAAA;AACjB,CAAC,EAJW,eAAe,KAAf,eAAe,QAI1B;AASD,MAAM,WAAW,GAAsC,CACrD,KAAqB,EACP,EAAE;IAChB,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAS,CAAC,CAAC,CAAC;IAElD,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,OAAO,GAAW,CAAC,CAAC;QAExB,IAAI,CAAC;YACH,OAAO,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC,GAAG,KAAK,CAAC,UAAU,CAAC;QACnD,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,KAAK,CAAC,GAAY,CAAC,CAAC;YAC3B,cAAc;QAChB,CAAC;QAED,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;YAClB,OAAO,GAAG,GAAG,CAAC;QAChB,CAAC;QAED,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IACjC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;IAEpC,IAAI,eAAe,GAAW,KAAK,CAAC;IAEpC,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;QACzC,eAAe,GAAG,OAAO,CAAC;IAC5B,CAAC;SAAM,IAAI,KAAK,CAAC,IAAI,KAAK,eAAe,CAAC,KAAK,EAAE,CAAC;QAChD,eAAe,GAAG,KAAK,CAAC;IAC1B,CAAC;IAED,OAAO,CACL;QACE,6BAAK,SAAS,EAAC,wCAAwC;YACrD,4CACc,oBAAoB,EAChC,SAAS,EAAC,mCAAmC;gBAE5C,KAAK,CAAC,KAAK;;gBAAM,KAAK,CAAC,UAAU;;gBAAG,KAAK,CAAC,MAAM,CAC7C;YACN,6BAAK,SAAS,EAAC,qCAAqC;gBAAE,OAAO;oBAAQ,CACjE;QACN,6BACE,SAAS,EAAE,UAAU,eAAe,2CAA2C,EAC/E,IAAI,EAAC,aAAa,mBACH,OAAO,mBACP,CAAC,mBACD,GAAG,gBACN,aAAa,KAAK,CAAC,KAAK,OAAO,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,MAAM,KAAK,OAAO,IAAI;YAE3F,4CACc,cAAc,EAC1B,SAAS,EAAE,GAAG,eAAe,kEAAkE,EAC/F,KAAK,EAAE,EAAE,KAAK,EAAE,OAAO,GAAG,GAAG,EAAE,GAC1B,CACH,CACF,CACP,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,WAAW,CAAC"}
|