@spotify/backstage-plugin-soundcheck 0.16.1 → 0.16.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (424) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/dist/alpha/entity-content.esm.js +1 -1
  3. package/dist/alpha/pages.esm.js +1 -1
  4. package/dist/alpha.d.ts +7 -7
  5. package/dist/api.esm.js +1 -1
  6. package/dist/components/AlertPanel/AlertPanel.esm.js +1 -1
  7. package/dist/components/AreaChart/AreaChart.esm.js +1 -1
  8. package/dist/components/AreaChart/ChartTooltip.esm.js +1 -1
  9. package/dist/components/AreaChart/Legend.esm.js +1 -1
  10. package/dist/components/AreaChart/LegendItem.esm.js +1 -1
  11. package/dist/components/Badges/BaseBadge.esm.js +1 -1
  12. package/dist/components/Badges/CampaignBadge.esm.js +1 -1
  13. package/dist/components/Badges/CertificationBadge.esm.js +1 -1
  14. package/dist/components/Badges/LevelBadge.esm.js +1 -1
  15. package/dist/components/Badges/NoLevelBadge.esm.js +2 -2
  16. package/dist/components/Badges/PlaylistBadge.esm.js +1 -1
  17. package/dist/components/Badges/StatusBadge.esm.js +1 -1
  18. package/dist/components/CacheConfig/CacheConfigComponent.esm.js +1 -1
  19. package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +1 -1
  20. package/dist/components/CampaignForm/CampaignForm.esm.js +1 -1
  21. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignDescriptionField.esm.js +1 -1
  22. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignDetailsStep.esm.js +1 -1
  23. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignDraftField.esm.js +2 -0
  24. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignNameField.esm.js +1 -1
  25. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +1 -1
  26. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignScheduleField.esm.js +1 -1
  27. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignSupportChannelField.esm.js +1 -1
  28. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/EndDateChips.esm.js +1 -1
  29. package/dist/components/CampaignForm/Steps/CampaignMilestonesStep.esm.js +1 -1
  30. package/dist/components/CampaignForm/Steps/CampaignTrackStepNew.esm.js +2 -0
  31. package/dist/components/CampaignForm/hooks/useCampaignForm.esm.js +1 -1
  32. package/dist/components/CampaignForm/hooks/utils.esm.js +1 -1
  33. package/dist/components/CampaignForm/utils/campaignFormUtils.esm.js +1 -1
  34. package/dist/components/CampaignForm/utils/validation.esm.js +1 -1
  35. package/dist/components/CampaignInsightsPage/CampaignInsightsPage.esm.js +1 -1
  36. package/dist/components/CampaignInsightsPage/CampaignStatusHistoryTile.esm.js +1 -1
  37. package/dist/components/CampaignInsightsPage/CampaignStatusTile.esm.js +1 -1
  38. package/dist/components/CampaignInsightsPage/DaysRemainingTile.esm.js +1 -1
  39. package/dist/components/CampaignsPage/CampaignEmptyState.esm.js +1 -1
  40. package/dist/components/CampaignsPage/CampaignListPage/CampaignListPage.esm.js +1 -1
  41. package/dist/components/CampaignsPage/CampaignListPage/CampaignMetadata.esm.js +1 -1
  42. package/dist/components/CampaignsPage/CampaignListPage/CampaignSummaryCard.esm.js +1 -1
  43. package/dist/components/CampaignsPage/CampaignListPage/CampaignsOverviewSkeleton.esm.js +1 -1
  44. package/dist/components/CampaignsPage/CampaignListPage/useArchiveConfirmationModal.esm.js +1 -1
  45. package/dist/components/CampaignsPage/CampaignsPage.esm.js +1 -1
  46. package/dist/components/CampaignsPage/EditCampaignView.esm.js +1 -1
  47. package/dist/components/CategoryBar/CategoryBar.esm.js +1 -1
  48. package/dist/components/CertificationAccordion/CertificationAccordion.esm.js +1 -1
  49. package/dist/components/CertificationSidebar/CertificationLevel.esm.js +1 -1
  50. package/dist/components/CertificationSidebar/CertificationSidebar.esm.js +1 -1
  51. package/dist/components/CertificationSidebar/CertificationSummary.esm.js +1 -1
  52. package/dist/components/CertificationSidebar/Check.esm.js +1 -1
  53. package/dist/components/CertificationSidebar/CheckResultInputPopup.esm.js +1 -1
  54. package/dist/components/CertificationSidebar/CheckResultSummaryList.esm.js +1 -1
  55. package/dist/components/CertificationSidebar/ExemptionJustificationDialog.esm.js +1 -1
  56. package/dist/components/CertificationSidebar/LevelSummary.esm.js +1 -1
  57. package/dist/components/CertificationSidebar/StatusDetails.esm.js +1 -1
  58. package/dist/components/CertificationSidebar/skeletons/CertificationSidebarSkeleton.esm.js +1 -1
  59. package/dist/components/CertificationSidebar/skeletons/CertificationSummarySkeleton.esm.js +1 -1
  60. package/dist/components/CertificationSidebar/skeletons/CheckSkeleton.esm.js +1 -1
  61. package/dist/components/CertificationSidebar/skeletons/LevelSummarySkeleton.esm.js +1 -1
  62. package/dist/components/CertificationsPage/CertificationTab.esm.js +1 -1
  63. package/dist/components/CertificationsPage/CertificationTabs.esm.js +1 -1
  64. package/dist/components/CertificationsPage/CertificationsPage.esm.js +1 -1
  65. package/dist/components/CertificationsPage/Playlist/PlaylistComponent.esm.js +1 -1
  66. package/dist/components/CertificationsPage/Playlist/PlaylistContext.esm.js +1 -1
  67. package/dist/components/CertificationsPage/Playlist/PlaylistProgress.esm.js +1 -1
  68. package/dist/components/CertificationsPage/Playlist/PlaylistSummary.esm.js +1 -1
  69. package/dist/components/CertificationsPage/PlaylistCertificationTab.esm.js +1 -1
  70. package/dist/components/CertificationsPage/skeletons/CertificationTabSkeleton.esm.js +1 -1
  71. package/dist/components/CertificationsPage/skeletons/CertificationTabsSkeleton.esm.js +1 -1
  72. package/dist/components/Charts/BarChart/BarChart.esm.js +1 -1
  73. package/dist/components/Charts/BarChart/BarChartPlaceholder.esm.js +1 -1
  74. package/dist/components/Charts/BarChart/GroupPassRateHistoryBarChart.esm.js +1 -1
  75. package/dist/components/Charts/BarChart/TrackSummaryBarChart.esm.js +1 -1
  76. package/dist/components/Charts/ChartWrapper/ChartWrapper.esm.js +1 -1
  77. package/dist/components/Charts/LineChart/EntityPassRateHistoryLineChart.esm.js +1 -1
  78. package/dist/components/Charts/LineChart/LineChart.esm.js +1 -1
  79. package/dist/components/Charts/LineChart/LineChartPlaceholder.esm.js +1 -1
  80. package/dist/components/Charts/LineChart/PassRateHistoryLineChart.esm.js +1 -1
  81. package/dist/components/Charts/LineChart/TableLineChart.esm.js +1 -1
  82. package/dist/components/Charts/LineChart/TrackPassRateHistoryLineChart.esm.js +1 -1
  83. package/dist/components/Charts/LoadingChart.esm.js +2 -0
  84. package/dist/components/Charts/chartUtils.esm.js +1 -1
  85. package/dist/components/CheckCard/CheckCard.esm.js +1 -1
  86. package/dist/components/CheckCard/CheckHistoryChart.esm.js +1 -1
  87. package/dist/components/CheckCreatePage/CheckCreatePage.esm.js +1 -1
  88. package/dist/components/CheckDetails/CheckDetails.esm.js +1 -1
  89. package/dist/components/CheckDetails/CheckResultDetails.esm.js +1 -1
  90. package/dist/components/CheckDetails/CollapseRow.esm.js +1 -1
  91. package/dist/components/CheckDetails/FactTable.esm.js +1 -1
  92. package/dist/components/CheckDetails/FixMeDialog.esm.js +1 -1
  93. package/dist/components/CheckDetails/JustificationDetails.esm.js +1 -1
  94. package/dist/components/CheckDetails/OngoingTaskComponent.esm.js +1 -1
  95. package/dist/components/CheckDetails/ResolvedValueTable.esm.js +1 -1
  96. package/dist/components/CheckDetails/ResultStateBox.esm.js +1 -1
  97. package/dist/components/CheckDetails/ReviewStateComponent.esm.js +1 -1
  98. package/dist/components/CheckDetails/SelectedValueContext.esm.js +1 -1
  99. package/dist/components/CheckDetails/skeletons/CheckDetailsSkeleton.esm.js +1 -1
  100. package/dist/components/CheckDryRun/CheckDryRun.esm.js +1 -1
  101. package/dist/components/CheckDryRun/CheckDryRunContext.esm.js +1 -1
  102. package/dist/components/CheckDryRun/CheckDryRunDetails.esm.js +1 -1
  103. package/dist/components/CheckDryRun/CheckDryRunDialog.esm.js +1 -1
  104. package/dist/components/CheckDryRun/CheckDryRunDialogButton.esm.js +1 -1
  105. package/dist/components/CheckForm/CheckForm.esm.js +1 -1
  106. package/dist/components/CheckForm/FormFields/CheckDescriptionInput/CheckDescriptionInput.esm.js +1 -1
  107. package/dist/components/CheckForm/FormFields/CheckNameInput/CheckNameInput.esm.js +1 -1
  108. package/dist/components/CheckForm/FormFields/CheckPathResolverInput.esm.js +1 -1
  109. package/dist/components/CheckForm/FormFields/CheckScheduleSection/ScheduleSection.esm.js +1 -1
  110. package/dist/components/CheckForm/FormFields/CheckTypeInput/CheckTypeInput.esm.js +1 -1
  111. package/dist/components/CheckForm/FormFields/PassFailMessageInput/PassFailMessageInput.esm.js +1 -1
  112. package/dist/components/CheckForm/FormFields/RuleInput/AddMenuButton.esm.js +1 -1
  113. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ConditionList.esm.js +1 -1
  114. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/FactValueDisplay.esm.js +1 -1
  115. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +1 -1
  116. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ValueListContext.esm.js +1 -1
  117. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ValueListInput.esm.js +1 -1
  118. package/dist/components/CheckForm/FormFields/RuleInput/Expressions/ExpressionBox.esm.js +1 -1
  119. package/dist/components/CheckForm/FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js +1 -1
  120. package/dist/components/CheckForm/FormFields/RuleInput/RuleInputBox.esm.js +1 -1
  121. package/dist/components/CheckForm/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +1 -1
  122. package/dist/components/CheckForm/Steps/CheckApplicabilityStep.esm.js +2 -0
  123. package/dist/components/CheckForm/Steps/CheckDetailsStep.esm.js +1 -1
  124. package/dist/components/CheckForm/Steps/CheckReviewStep.esm.js +1 -1
  125. package/dist/components/CheckForm/Steps/CheckRulesStep.esm.js +1 -1
  126. package/dist/components/CheckForm/useCheckForm.esm.js +1 -1
  127. package/dist/components/CheckForm/utils/checkFormUtils.esm.js +2 -2
  128. package/dist/components/CheckForm/utils/validation.esm.js +1 -1
  129. package/dist/components/CheckHistoryChartCard/CheckHistoryChartCard.esm.js +1 -1
  130. package/dist/components/CheckIcon/CheckIcon.esm.js +1 -1
  131. package/dist/components/CheckPage/CheckEditPage.esm.js +1 -1
  132. package/dist/components/CheckPage/CheckEditView.esm.js +1 -1
  133. package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTable.esm.js +1 -1
  134. package/dist/components/CheckPage/CheckEntitiesTable/columns.esm.js +1 -1
  135. package/dist/components/CheckPage/CheckInsightsPage.esm.js +1 -1
  136. package/dist/components/CheckPage/CheckStatusHistoryChart.esm.js +1 -1
  137. package/dist/components/CheckPage/CheckStatusTable.esm.js +1 -1
  138. package/dist/components/CheckSelection/CheckPreview.esm.js +2 -0
  139. package/dist/components/CheckSelection/CheckPreviewContext.esm.js +2 -0
  140. package/dist/components/CheckSelection/CheckSelection.esm.js +2 -0
  141. package/dist/components/CheckStatusBar/CheckStatusBar.esm.js +2 -0
  142. package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +1 -1
  143. package/dist/components/CheckTemplatesPage/TemplateCategory.esm.js +1 -1
  144. package/dist/components/ChecksPage/CheckListPage/CheckListPage.esm.js +1 -1
  145. package/dist/components/ChecksPage/CheckListPage/CheckMetadata.esm.js +1 -1
  146. package/dist/components/ChecksPage/CheckListPage/CheckSummaryCard.esm.js +1 -1
  147. package/dist/components/ChecksPage/ChecksPage.esm.js +1 -1
  148. package/dist/components/ChecksPage/skeletons/ChecksOverviewSkeleton.esm.js +1 -1
  149. package/dist/components/ChecksTab/ChecksTab.esm.js +1 -1
  150. package/dist/components/CollectorPage/CollectorPage.esm.js +1 -1
  151. package/dist/components/CollectorPage/Configurators/AzureDevOps/AzureDevOpsConfigurator.esm.js +1 -1
  152. package/dist/components/CollectorPage/Configurators/AzureDevOps/NumberOfDaysComponent.esm.js +1 -1
  153. package/dist/components/CollectorPage/Configurators/AzureDevOps/NumberOfWorkItemsComponent.esm.js +1 -1
  154. package/dist/components/CollectorPage/Configurators/AzureDevOps/validation.esm.js +1 -1
  155. package/dist/components/CollectorPage/Configurators/BigQuery/BigQueryConfigurator.esm.js +1 -1
  156. package/dist/components/CollectorPage/Configurators/BigQuery/QueryFactDetailsComponent.esm.js +1 -1
  157. package/dist/components/CollectorPage/Configurators/BigQuery/validation.esm.js +1 -1
  158. package/dist/components/CollectorPage/Configurators/Catalog/CatalogConfigurator.esm.js +1 -1
  159. package/dist/components/CollectorPage/Configurators/Common/CollectorSchedulingOptions.esm.js +1 -1
  160. package/dist/components/CollectorPage/Configurators/Common/FactCollectionConfig.esm.js +1 -1
  161. package/dist/components/CollectorPage/Configurators/Common/utils.esm.js +1 -1
  162. package/dist/components/CollectorPage/Configurators/Configurator.esm.js +1 -1
  163. package/dist/components/CollectorPage/Configurators/DataDog/DataDogConfigurator.esm.js +1 -1
  164. package/dist/components/CollectorPage/Configurators/DataRegistry/DataRegistryConfigurator.esm.js +2 -0
  165. package/dist/components/CollectorPage/Configurators/DataRegistry/utils.esm.js +2 -0
  166. package/dist/components/CollectorPage/Configurators/Github/CodeScanningAlertsFactDetails.esm.js +1 -1
  167. package/dist/components/CollectorPage/Configurators/Github/DependabotAlertsFactDetails.esm.js +1 -1
  168. package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +1 -1
  169. package/dist/components/CollectorPage/Configurators/Github/SecretScanningAlertsFactDetails.esm.js +1 -1
  170. package/dist/components/CollectorPage/Configurators/Github/SecurityAdvisoriesFactDetails.esm.js +1 -1
  171. package/dist/components/CollectorPage/Configurators/Github/validation.esm.js +1 -1
  172. package/dist/components/CollectorPage/Configurators/Gitlab/GitlabConfigurator.esm.js +1 -1
  173. package/dist/components/CollectorPage/Configurators/HTTP/HttpConfigurator.esm.js +1 -1
  174. package/dist/components/CollectorPage/Configurators/HTTP/HttpRequestComponent.esm.js +1 -1
  175. package/dist/components/CollectorPage/Configurators/HTTP/HttpResponseComponent.esm.js +1 -1
  176. package/dist/components/CollectorPage/Configurators/HTTP/HttpRetriesComponent.esm.js +1 -1
  177. package/dist/components/CollectorPage/Configurators/HTTP/HttpStatusesInput.esm.js +1 -1
  178. package/dist/components/CollectorPage/Configurators/HTTP/RequestFactDetailsComponent.esm.js +1 -1
  179. package/dist/components/CollectorPage/Configurators/HTTP/validation.esm.js +1 -1
  180. package/dist/components/CollectorPage/Configurators/Jira/IssuesSearchFactDetailsComponent.esm.js +1 -1
  181. package/dist/components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js +1 -1
  182. package/dist/components/CollectorPage/Configurators/Jira/validation.esm.js +1 -1
  183. package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js +1 -1
  184. package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesFactDetails.esm.js +1 -1
  185. package/dist/components/CollectorPage/Configurators/Kubernetes/validation.esm.js +1 -1
  186. package/dist/components/CollectorPage/Configurators/NewRelic/NewRelicConfigurator.esm.js +1 -1
  187. package/dist/components/CollectorPage/Configurators/PagerDuty/IncidentsFactDetailsComponent.esm.js +1 -1
  188. package/dist/components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js +1 -1
  189. package/dist/components/CollectorPage/Configurators/PagerDuty/StatusesComponent.esm.js +1 -1
  190. package/dist/components/CollectorPage/Configurators/PagerDuty/validation.esm.js +1 -1
  191. package/dist/components/CollectorPage/Configurators/SCM/ExistsFactDetailsComponent.esm.js +1 -1
  192. package/dist/components/CollectorPage/Configurators/SCM/FactDetailsComponent.esm.js +1 -1
  193. package/dist/components/CollectorPage/Configurators/SCM/JsonFactDetailsComponent.esm.js +1 -1
  194. package/dist/components/CollectorPage/Configurators/SCM/RegexFactDetailsComponent.esm.js +1 -1
  195. package/dist/components/CollectorPage/Configurators/SCM/ScmConfigurator.esm.js +1 -1
  196. package/dist/components/CollectorPage/Configurators/SCM/validation.esm.js +1 -1
  197. package/dist/components/CollectorPage/Configurators/SonarQube/IssuesFactDetailsInput.esm.js +2 -0
  198. package/dist/components/CollectorPage/Configurators/SonarQube/MeasuresFactDetailsInput.esm.js +1 -1
  199. package/dist/components/CollectorPage/Configurators/SonarQube/MetricsInput.esm.js +1 -1
  200. package/dist/components/CollectorPage/Configurators/SonarQube/SonarQubeConfigurator.esm.js +1 -1
  201. package/dist/components/CollectorPage/Configurators/SonarQube/utils.esm.js +1 -1
  202. package/dist/components/CollectorPage/Configurators/SonarQube/validation.esm.js +1 -1
  203. package/dist/components/CollectorsPage/CollectorListPage/CollectorListPage.esm.js +1 -1
  204. package/dist/components/CollectorsPage/CollectorListPage/CollectorListSkeleton.esm.js +1 -1
  205. package/dist/components/CollectorsPage/CollectorListPage/CollectorLogo.esm.js +1 -1
  206. package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +1 -1
  207. package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
  208. package/dist/components/EmptyState/EmptyState.esm.js +1 -1
  209. package/dist/components/EntitiesAutocompletePicker/EntitiesAutocompletePicker.esm.js +2 -0
  210. package/dist/components/EntityChip/EntityChip.esm.js +1 -1
  211. package/dist/components/EntityContent/EntityContent.esm.js +1 -1
  212. package/dist/components/EntityPassRateCard/EntityPassRateCard.esm.js +1 -1
  213. package/dist/components/EntitySoundcheckCard/Card.esm.js +1 -1
  214. package/dist/components/EntitySoundcheckCard/EntitySoundcheckCard.esm.js +1 -1
  215. package/dist/components/EntitySoundcheckCard/skeletons/CardSkeleton.esm.js +1 -1
  216. package/dist/components/EntitySoundcheckContent.esm.js +1 -1
  217. package/dist/components/Expand/Expand.esm.js +1 -1
  218. package/dist/components/ExpandableSection/ExpandableSection.esm.js +1 -1
  219. package/dist/components/FactExplorer/FactExplorer.esm.js +1 -1
  220. package/dist/components/FactExplorer/FactExplorerContext.esm.js +1 -1
  221. package/dist/components/FactExplorer/FactExplorerDialog.esm.js +1 -1
  222. package/dist/components/FadeIn/FadeIn.esm.js +1 -1
  223. package/dist/components/Filter/EntityAutocompletePicker.esm.js +1 -1
  224. package/dist/components/Filter/FilterComponent.esm.js +1 -1
  225. package/dist/components/Filter/FilterKeyValueInput.esm.js +1 -1
  226. package/dist/components/Filter/FilterPreviewTable/EntityTableColumns.esm.js +1 -1
  227. package/dist/components/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +1 -1
  228. package/dist/components/Filter/KeyValueInputDialog.esm.js +1 -1
  229. package/dist/components/FilterSidebar/FilterSidebar.esm.js +2 -0
  230. package/dist/components/FilterSidebar/StateFilter.esm.js +2 -0
  231. package/dist/components/FooterButtons/FooterButtons.esm.js +1 -1
  232. package/dist/components/FormControlledAutocomplete/ControlledAutocomplete.esm.js +1 -1
  233. package/dist/components/FormControlledAutocomplete/FormControlledAutocomplete.esm.js +1 -1
  234. package/dist/components/FormControlledAutocomplete/FormControlledMultipleAutocomplete.esm.js +1 -1
  235. package/dist/components/FormControlledSelect/FormControlledSelect.esm.js +1 -1
  236. package/dist/components/FormControlledTextField/FormControlledTextField.esm.js +1 -1
  237. package/dist/components/FormFieldLabel/FormFieldLabel.esm.js +1 -1
  238. package/dist/components/FormFilterSection/FormFilterSection.esm.js +1 -1
  239. package/dist/components/FormMarkdownInput/FormMarkdownInput.esm.js +1 -1
  240. package/dist/components/FormStepper/FormStepper.esm.js +1 -1
  241. package/dist/components/FormTextInput/FormTextInput.esm.js +1 -1
  242. package/dist/components/FormattedPreview/FormattedPreview.esm.js +2 -2
  243. package/dist/components/Frequency/FrequencyComponent.esm.js +1 -1
  244. package/dist/components/GroupPassRateCard/GroupPassRateCard.esm.js +1 -1
  245. package/dist/components/GroupSelector/GroupSelector.esm.js +1 -1
  246. package/dist/components/LevelUpParty/LevelUpParty.esm.js +1 -1
  247. package/dist/components/LevelsTable/CheckRowContent.esm.js +2 -0
  248. package/dist/components/LevelsTable/LevelsTable.esm.js +2 -0
  249. package/dist/components/ListboxVirtualized/ListboxVirtualized.esm.js +1 -1
  250. package/dist/components/LoadingIndicator/LoadingIndicator.esm.js +1 -1
  251. package/dist/components/MultiSelectFilter/MultiSelectFilter.esm.js +1 -1
  252. package/dist/components/NoBorderButton/NoBorderButton.esm.js +1 -1
  253. package/dist/components/OrgHealth/OrgHealthPage.esm.js +1 -1
  254. package/dist/components/OverviewChartCard/OverviewChartCard.esm.js +1 -1
  255. package/dist/components/OverviewPage/FixedGroupOverviewPage.esm.js +1 -1
  256. package/dist/components/OverviewPage/OverviewPage.esm.js +1 -1
  257. package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
  258. package/dist/components/OverviewPage/OverviewPageHeader.esm.js +1 -1
  259. package/dist/components/OverviewTable/Cell/CheckCell.esm.js +1 -1
  260. package/dist/components/OverviewTable/Cell/CheckCellTooltip.esm.js +1 -1
  261. package/dist/components/OverviewTable/Cell/CheckLabelCell.esm.js +1 -1
  262. package/dist/components/OverviewTable/Cell/CheckNameCell.esm.js +1 -1
  263. package/dist/components/OverviewTable/Cell/EntityRefCell.esm.js +1 -1
  264. package/dist/components/OverviewTable/Cell/TrackBadgeCell.esm.js +1 -1
  265. package/dist/components/OverviewTable/Cell/TrackCheckIndicator.esm.js +1 -1
  266. package/dist/components/OverviewTable/Cell/TrackLevelHeaderCell.esm.js +1 -1
  267. package/dist/components/OverviewTable/Cell/TrackTitleCell.esm.js +1 -1
  268. package/dist/components/OverviewTable/Cell/cellRenderer.esm.js +1 -1
  269. package/dist/components/OverviewTable/OverviewTable.esm.js +1 -1
  270. package/dist/components/OverviewTable/OverviewTableContent.esm.js +1 -1
  271. package/dist/components/OverviewTable/OverviewTableSkeleton.esm.js +1 -1
  272. package/dist/components/OverviewTable/ResultsTable.esm.js +1 -1
  273. package/dist/components/OverviewTable/ResultsTableHeader.esm.js +1 -1
  274. package/dist/components/OverviewTable/ResultsTableRow.esm.js +1 -1
  275. package/dist/components/PageWarningMessage/PageWarningMessage.esm.js +1 -1
  276. package/dist/components/Pagination/CursorPagination.esm.js +1 -1
  277. package/dist/components/Pagination/Pagination.esm.js +1 -1
  278. package/dist/components/PassRateGrid/PassRateGrid.esm.js +1 -1
  279. package/dist/components/PassRateGrid/PassRateMetadata.esm.js +1 -1
  280. package/dist/components/PassRateTable/NewPassRateTable.esm.js +1 -1
  281. package/dist/components/PassRateTable/PassRateTable.esm.js +2 -2
  282. package/dist/components/QuickstartPage/HowDoIListItem.esm.js +1 -1
  283. package/dist/components/QuickstartPage/QuickStartChecksCard.esm.js +1 -1
  284. package/dist/components/QuickstartPage/QuickstartCardBase.esm.js +1 -1
  285. package/dist/components/QuickstartPage/QuickstartCollectorConfigurationsCard.esm.js +1 -1
  286. package/dist/components/QuickstartPage/QuickstartPage.esm.js +1 -1
  287. package/dist/components/QuickstartPage/QuickstartTracksCard.esm.js +1 -1
  288. package/dist/components/QuickstartPage/WelcomeHelpSection.esm.js +6 -6
  289. package/dist/components/QuickstartPage/WelcomeModal.esm.js +1 -1
  290. package/dist/components/RefetchingIndicator/RefetchingIndicator.esm.js +1 -1
  291. package/dist/components/RelativeTime/RelativeTime.esm.js +1 -1
  292. package/dist/components/RichTooltip/RichTooltip.esm.js +1 -1
  293. package/dist/components/Router.esm.js +1 -1
  294. package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
  295. package/dist/components/RuleResult/BranchResultComponent.esm.js +1 -1
  296. package/dist/components/RuleResult/ConditionResultComponent.esm.js +1 -1
  297. package/dist/components/RuleResult/RuleResultComponent.esm.js +1 -1
  298. package/dist/components/SearchBar/SearchBar.esm.js +1 -1
  299. package/dist/components/SearchFilters/SearchFilters.esm.js +1 -1
  300. package/dist/components/SoundcheckDialog/SoundcheckDialog.esm.js +1 -1
  301. package/dist/components/SoundcheckHeader/Breadcrumbs.esm.js +1 -1
  302. package/dist/components/SoundcheckHeader/SoundcheckHeader.esm.js +1 -1
  303. package/dist/components/SoundcheckHeader/SoundcheckHeaderContext.esm.js +1 -1
  304. package/dist/components/SoundcheckHeader/headerUtil.esm.js +1 -1
  305. package/dist/components/SoundcheckMarkdownContent/ComponentRenders.esm.js +2 -0
  306. package/dist/components/SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js +2 -0
  307. package/dist/components/SoundcheckQueryClientProvider/SoundcheckQueryClientProvider.esm.js +1 -1
  308. package/dist/components/SummaryCard/SummaryCard.esm.js +1 -1
  309. package/dist/components/SummaryCard/SummaryCardActionsMenu.esm.js +1 -1
  310. package/dist/components/TechHealth/Filters/FacetFilter.esm.js +1 -1
  311. package/dist/components/TechHealth/Filters/FilterProvider.esm.js +1 -1
  312. package/dist/components/TechHealth/Filters/Filters.esm.js +1 -1
  313. package/dist/components/TechHealth/Filters/FiltersHeader.esm.js +1 -1
  314. package/dist/components/TechHealth/Filters/FiltersSection.esm.js +1 -1
  315. package/dist/components/TechHealth/Filters/NumberOfDaysFilter.esm.js +1 -1
  316. package/dist/components/TechHealth/Filters/useFacetOptions.esm.js +1 -1
  317. package/dist/components/TechHealth/Loading/Emoji.esm.js +1 -1
  318. package/dist/components/TechHealth/Loading/EmojiFountain.esm.js +1 -1
  319. package/dist/components/TechHealth/Loading/Loading.esm.js +1 -1
  320. package/dist/components/TechHealth/Loading/TechHealthLoading.esm.js +1 -1
  321. package/dist/components/TechHealth/TechHealth.esm.js +1 -1
  322. package/dist/components/TechHealthSummary/SummaryAggregationsProvider.esm.js +1 -1
  323. package/dist/components/TechHealthSummary/TechHealthSummary.esm.js +1 -1
  324. package/dist/components/TechHealthTabs/ActionColumn.esm.js +1 -1
  325. package/dist/components/TechHealthTabs/CampaignResultsTab/CampaignResultsTab.esm.js +1 -1
  326. package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +1 -1
  327. package/dist/components/TechHealthTabs/CheckResultsTab/CheckTrendColumn.esm.js +1 -1
  328. package/dist/components/TechHealthTabs/EntityResultsTab/EntityResultsTab.esm.js +1 -1
  329. package/dist/components/TechHealthTabs/EntityResultsTab/EntityTrendColumn.esm.js +1 -1
  330. package/dist/components/TechHealthTabs/GroupResultsTab/GroupResultsTab.esm.js +1 -1
  331. package/dist/components/TechHealthTabs/GroupResultsTab/GroupTrendColumn.esm.js +1 -1
  332. package/dist/components/TechHealthTabs/MostRecentColumn.esm.js +1 -1
  333. package/dist/components/TechHealthTabs/NameColumn.esm.js +1 -1
  334. package/dist/components/TechHealthTabs/OwnerColumn.esm.js +1 -1
  335. package/dist/components/TechHealthTabs/PassRateTabHeader.esm.js +1 -1
  336. package/dist/components/TechHealthTabs/TrackResultsTab/TrackLevelTrendColumn.esm.js +1 -1
  337. package/dist/components/TechHealthTabs/TrackResultsTab/TrackResultsTab.esm.js +1 -1
  338. package/dist/components/TechHealthTabs/techHealthTabUtils.esm.js +1 -1
  339. package/dist/components/TopFailingChecksTable/TopFailingChecksTable.esm.js +2 -0
  340. package/dist/components/TrackCreatePage/TrackCreatePage.esm.js +1 -1
  341. package/dist/components/TrackEditPage/TrackEditPage.esm.js +1 -1
  342. package/dist/components/TrackEditPage/TrackEditView.esm.js +1 -1
  343. package/dist/components/TrackForm/Steps/LevelsStep/LevelsStepNew.esm.js +2 -0
  344. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackBadgeTypeSelect/TrackBadgeTypeSelect.esm.js +1 -1
  345. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDescriptionInput/TrackDescriptionInput.esm.js +1 -1
  346. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDetailsStep.esm.js +1 -1
  347. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDocumentationUrlInput/TrackDocumentationUrlInput.esm.js +1 -1
  348. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDraftInput/TrackDraftInput.esm.js +2 -0
  349. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackNameInput/TrackNameInput.esm.js +1 -1
  350. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackOwnerSelect/TrackOwnerSelect.esm.js +1 -1
  351. package/dist/components/TrackForm/TrackForm.esm.js +1 -1
  352. package/dist/components/TrackForm/utils/useTrackForm.esm.js +1 -1
  353. package/dist/components/TrackHistoryChartCard/TrackHistoryChartCard.esm.js +1 -1
  354. package/dist/components/TrackPage/FilterBar/FilterBar.esm.js +1 -1
  355. package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +1 -1
  356. package/dist/components/TrackPage/TrackEntitiesTable/TrackStatusChip.esm.js +1 -1
  357. package/dist/components/TrackPage/TrackEntitiesTable/columns.esm.js +1 -1
  358. package/dist/components/TrackPage/TrackEntitiesTable/utils.esm.js +1 -1
  359. package/dist/components/TrackPage/TrackHistoryChart.esm.js +1 -1
  360. package/dist/components/TrackPage/TrackPage.esm.js +1 -1
  361. package/dist/components/TrackPage/TrackProgressCard.esm.js +1 -1
  362. package/dist/components/TrackPage/TrackStatus.esm.js +2 -0
  363. package/dist/components/TrackPage/TrackStatusBar.esm.js +2 -0
  364. package/dist/components/TrackPage/TrackStatusTable.esm.js +2 -0
  365. package/dist/components/TracksPage/TrackListPage/TrackListPage.esm.js +1 -1
  366. package/dist/components/TracksPage/TrackListPage/TrackMetadata.esm.js +1 -1
  367. package/dist/components/TracksPage/TrackListPage/TrackSummaryCard.esm.js +1 -1
  368. package/dist/components/TracksPage/TrackListPage/TracksOverviewSkeleton.esm.js +1 -1
  369. package/dist/components/TracksPage/TracksPage.esm.js +1 -1
  370. package/dist/components/TracksTab/TracksTab.esm.js +1 -1
  371. package/dist/contexts/GenericFormContext.esm.js +1 -1
  372. package/dist/contexts/UserProvider.esm.js +1 -1
  373. package/dist/graphql/generated/index.esm.js +93 -45
  374. package/dist/hooks/aggregations/useCertificationStatus.esm.js +1 -1
  375. package/dist/hooks/aggregations/useCheckStatus.esm.js +1 -1
  376. package/dist/hooks/aggregations/useCheckStatuses.esm.js +1 -1
  377. package/dist/hooks/catalog/useGetEntityFacets.esm.js +1 -1
  378. package/dist/hooks/catalog/useGetEntityRefs.esm.js +1 -1
  379. package/dist/hooks/certifications/useAllCertifications.esm.js +1 -1
  380. package/dist/hooks/certifications/useCertificationDetails.esm.js +1 -1
  381. package/dist/hooks/certifications/useCertificationDetailsForTrack.esm.js +1 -1
  382. package/dist/hooks/checks/useCheck.esm.js +2 -0
  383. package/dist/hooks/checks/useDeleteCheck.esm.js +1 -1
  384. package/dist/hooks/checks/useGetChecks.esm.js +1 -1
  385. package/dist/hooks/checks/useSetManualResult.esm.js +1 -1
  386. package/dist/hooks/checks/useUpdateCheck.esm.js +1 -1
  387. package/dist/hooks/exemptions/useDeleteExemption.esm.js +1 -1
  388. package/dist/hooks/exemptions/useExemptCheckIds.esm.js +2 -0
  389. package/dist/hooks/exemptions/useSetEntityExempt.esm.js +1 -1
  390. package/dist/hooks/facets/useFacetFilters.esm.js +1 -1
  391. package/dist/hooks/graphqlKeys.esm.js +1 -1
  392. package/dist/hooks/tracks/useGetAllTracks.esm.js +1 -1
  393. package/dist/hooks/tracks/useTrack.esm.js +2 -0
  394. package/dist/hooks/tracks/useUpdateTrack.esm.js +1 -1
  395. package/dist/hooks/useConfirmationModal.esm.js +1 -1
  396. package/dist/hooks/useSoundcheckAlert.esm.js +1 -1
  397. package/dist/images/data-registry-blk.svg +36 -0
  398. package/dist/images/data-registry-wht.svg +36 -0
  399. package/dist/index.d.ts +4 -4
  400. package/dist/index.esm.js +1 -1
  401. package/dist/routes.esm.js +1 -1
  402. package/dist/utils/colors.esm.js +2 -0
  403. package/dist/utils/export.esm.js +3 -3
  404. package/dist/utils/formatters.esm.js +2 -0
  405. package/dist/utils/validation.esm.js +1 -1
  406. package/package.json +25 -21
  407. package/dist/components/Badges/badge.esm.js +0 -2
  408. package/dist/components/CampaignForm/Steps/CampaignTrackStep.esm.js +0 -2
  409. package/dist/components/CheckPage/CheckStatusBar.esm.js +0 -2
  410. package/dist/components/CheckPage/FilterBar/FilterBar.esm.js +0 -2
  411. package/dist/components/CheckPage/StatusRow.esm.js +0 -2
  412. package/dist/components/ChecksErrors/ChecksErrors.esm.js +0 -2
  413. package/dist/components/ContextMenu/ContextMenu.esm.js +0 -2
  414. package/dist/components/DraggableChip/DraggableChip.esm.js +0 -2
  415. package/dist/components/DraggableChip/chipStyles.esm.js +0 -2
  416. package/dist/components/DroppableInput/DroppableInput.esm.js +0 -2
  417. package/dist/components/LevelCard/LevelCard.esm.js +0 -2
  418. package/dist/components/LevelCard/LevelTooltip.esm.js +0 -2
  419. package/dist/components/TrackForm/Steps/LevelsStep/ChecksSection/ChecksSection.esm.js +0 -2
  420. package/dist/components/TrackForm/Steps/LevelsStep/LevelsSection/LevelChipsSection.esm.js +0 -2
  421. package/dist/components/TrackForm/Steps/LevelsStep/LevelsSection/LevelsSection.esm.js +0 -2
  422. package/dist/components/TrackForm/Steps/LevelsStep/LevelsStep.esm.js +0 -2
  423. package/dist/components/TrackPage/TrackLevelsChart.esm.js +0 -2
  424. package/dist/hooks/useContextMenu.esm.js +0 -2
package/CHANGELOG.md CHANGED
@@ -1,5 +1,35 @@
1
1
  # @spotify/backstage-plugin-soundcheck
2
2
 
3
+ ## 0.16.2
4
+
5
+ ### Patch Changes
6
+
7
+ - Minor style updates to the filter UI.
8
+ - Support a limited set of html tags for markdown including <details><summary>. <details> supports nested markdown.
9
+ - Minor performance improvement for pages requiring a single track and/or check.
10
+ - - Added possibility to filter SonarQube `issues` by statuses, severities and types.
11
+ - Added default limit of SonarQube `issues` to be collected (1000) to prevent out of memory issues.
12
+ - Added possibility to configure top-level filter, caching and frequency in YAML for SonarQube integration.
13
+ - Fixed the issue when SonarQube integration always used default metric keys if the fact name `measures` is used.
14
+ - Fixed the issue when `project-tags` fact was collected as an empty array.
15
+ - All errors occurred during SonarQube fact collection are surfaced to Soundcheck users.
16
+ - Breaking change: `projects` fact will contain only the details about the project associated with an entity.
17
+ - Removes an outdated banner.
18
+ - Soundcheck - Minor updates to manual checks and executions UI.
19
+ - Adds tooltips to check icons.
20
+ - Updates how checks are determined to be 'exempt' on entities' Soundcheck pages, making the 'show exempt' toggle more accurate.
21
+ - Adds a configuration card for the Data Registry Fact Collector.
22
+ - Fixed validation of fact names (prohibited spaces).
23
+ - Add new check input for Soundcheck Campaign forms.
24
+ - Redesign Track form levels input.
25
+ - Added support for check applicability rule.
26
+ - Update collector UI to make it more clear that configs are removed.
27
+ - Updated dependencies
28
+ - Updated dependencies
29
+ - Updated dependencies
30
+ - Updated dependencies
31
+ - @spotify/backstage-plugin-soundcheck-common@0.16.2
32
+
3
33
  ## 0.16.1
4
34
 
5
35
  ### Patch Changes
@@ -1,2 +1,2 @@
1
- import{convertLegacyRouteRef as n,compatWrapper as t}from"@backstage/core-compat-api";import{EntityContentBlueprint as a,EntityCardBlueprint as r}from"@backstage/plugin-catalog-react/alpha";import o from"react";import{entityRootRouteRef as c,groupRootRouteRef as u}from"../routes.esm.js";const i=a.make({name:"entity",params:{defaultPath:"soundcheck",defaultTitle:"Soundcheck",routeRef:n(c),loader:()=>import("../components/EntitySoundcheckContent.esm.js").then(e=>t(o.createElement(e.EntitySoundcheckContent,null)))}}),m=r.make({name:"card",params:{loader:()=>import("../components/EntitySoundcheckCard/index.esm.js").then(e=>t(o.createElement(e.EntitySoundcheckCard,null)))}}),d=a.make({name:"group",attachTo:{id:"page:catalog/group-details",input:"contents"},params:{defaultPath:"soundcheck",defaultTitle:"Soundcheck",routeRef:n(u),loader:()=>import("../components/OverviewPage/index.esm.js").then(e=>t(o.createElement(e.FixedGroupOverviewPage,null)))}});export{m as entitySoundcheckCard,i as entitySoundcheckContent,d as groupSoundcheckContent};
1
+ import{jsx as e}from"react/jsx-runtime";import{convertLegacyRouteRef as n,compatWrapper as o}from"@backstage/core-compat-api";import{EntityContentBlueprint as a,EntityCardBlueprint as r}from"@backstage/plugin-catalog-react/alpha";import{entityRootRouteRef as c,groupRootRouteRef as u}from"../routes.esm.js";const i=a.make({name:"entity",params:{defaultPath:"soundcheck",defaultTitle:"Soundcheck",routeRef:n(c),loader:()=>import("../components/EntitySoundcheckContent.esm.js").then(t=>o(e(t.EntitySoundcheckContent,{})))}}),d=r.make({name:"card",params:{loader:()=>import("../components/EntitySoundcheckCard/index.esm.js").then(t=>o(e(t.EntitySoundcheckCard,{})))}}),p=a.make({name:"group",attachTo:{id:"page:catalog/group-details",input:"contents"},params:{defaultPath:"soundcheck",defaultTitle:"Soundcheck",routeRef:n(u),loader:()=>import("../components/OverviewPage/index.esm.js").then(t=>o(e(t.FixedGroupOverviewPage,{})))}});export{d as entitySoundcheckCard,i as entitySoundcheckContent,p as groupSoundcheckContent};
2
2
  //# sourceMappingURL=entity-content.esm.js.map
@@ -1,2 +1,2 @@
1
- import{convertLegacyRouteRef as o,compatWrapper as t}from"@backstage/core-compat-api";import{PageBlueprint as r}from"@backstage/frontend-plugin-api";import a from"react";import{rootRouteRef as m}from"../routes.esm.js";const n=r.make({name:"SoundcheckRoutingPage",params:{routeRef:o(m),defaultPath:"/soundcheck",loader:()=>import("../components/RoutingPage/index.esm.js").then(e=>t(a.createElement(e.RoutingPage,null)))}}),u=r.make({name:"overview",params:{routeRef:o(m),defaultPath:"/soundcheck",loader:()=>import("../components/OverviewPage/index.esm.js").then(e=>t(a.createElement(e.OverviewPage,null)))}});export{u as soundcheckOverviewPage,n as soundcheckRoutingPage};
1
+ import{jsx as o}from"react/jsx-runtime";import{convertLegacyRouteRef as r,compatWrapper as t}from"@backstage/core-compat-api";import{PageBlueprint as a}from"@backstage/frontend-plugin-api";import{rootRouteRef as m}from"../routes.esm.js";const n=a.make({name:"SoundcheckRoutingPage",params:{routeRef:r(m),defaultPath:"/soundcheck",loader:()=>import("../components/RoutingPage/index.esm.js").then(e=>t(o(e.RoutingPage,{})))}}),u=a.make({name:"overview",params:{routeRef:r(m),defaultPath:"/soundcheck",loader:()=>import("../components/OverviewPage/index.esm.js").then(e=>t(o(e.OverviewPage,{})))}});export{u as soundcheckOverviewPage,n as soundcheckRoutingPage};
2
2
  //# sourceMappingURL=pages.esm.js.map
package/dist/alpha.d.ts CHANGED
@@ -1,8 +1,8 @@
1
- import * as _backstage_core_plugin_api__ from '@backstage/core-plugin-api/*';
2
1
  import * as _backstage_catalog_model_index from '@backstage/catalog-model/index';
3
2
  import * as react from 'react';
4
3
  import * as _backstage_plugin_catalog_react_alpha from '@backstage/plugin-catalog-react/alpha';
5
4
  import * as _backstage_frontend_plugin_api from '@backstage/frontend-plugin-api';
5
+ import * as _backstage_core_plugin_api from '@backstage/core-plugin-api';
6
6
 
7
7
  /**
8
8
  * @public
@@ -15,10 +15,10 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{}, {}, {
15
15
  name: undefined;
16
16
  config: {};
17
17
  configInput: {};
18
- output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_frontend_plugin_api.AnyApiFactory, "core.api.factory", {}>;
18
+ output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<_backstage_core_plugin_api.AnyApiFactory, "core.api.factory", {}>;
19
19
  inputs: {};
20
20
  params: {
21
- factory: _backstage_frontend_plugin_api.AnyApiFactory;
21
+ factory: _backstage_core_plugin_api.AnyApiFactory;
22
22
  };
23
23
  }>;
24
24
  "entity-card:soundcheck/card": _backstage_frontend_plugin_api.ExtensionDefinition<{
@@ -75,7 +75,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{}, {}, {
75
75
  loader: () => Promise<JSX.Element>;
76
76
  defaultPath: string;
77
77
  defaultTitle: string;
78
- defaultGroup?: ("development" | "documentation" | "deployment" | "observability") | (string & {});
78
+ defaultGroup?: ("operation" | "development" | "documentation" | "deployment" | "overview" | "observability") | (string & {});
79
79
  routeRef?: _backstage_frontend_plugin_api.RouteRef;
80
80
  filter?: string | _backstage_plugin_catalog_react_alpha.EntityPredicate | ((entity: _backstage_catalog_model_index.Entity) => boolean);
81
81
  };
@@ -109,7 +109,7 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{}, {}, {
109
109
  loader: () => Promise<JSX.Element>;
110
110
  defaultPath: string;
111
111
  defaultTitle: string;
112
- defaultGroup?: ("development" | "documentation" | "deployment" | "observability") | (string & {});
112
+ defaultGroup?: ("operation" | "development" | "documentation" | "deployment" | "overview" | "observability") | (string & {});
113
113
  routeRef?: _backstage_frontend_plugin_api.RouteRef;
114
114
  filter?: string | _backstage_plugin_catalog_react_alpha.EntityPredicate | ((entity: _backstage_catalog_model_index.Entity) => boolean);
115
115
  };
@@ -121,13 +121,13 @@ declare const _default: _backstage_frontend_plugin_api.FrontendPlugin<{}, {}, {
121
121
  configInput: {};
122
122
  output: _backstage_frontend_plugin_api.ConfigurableExtensionDataRef<{
123
123
  title: string;
124
- icon: _backstage_core_plugin_api__.IconComponent;
124
+ icon: _backstage_core_plugin_api.IconComponent;
125
125
  routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
126
126
  }, "core.nav-item.target", {}>;
127
127
  inputs: {};
128
128
  params: {
129
129
  title: string;
130
- icon: _backstage_core_plugin_api__.IconComponent;
130
+ icon: _backstage_core_plugin_api.IconComponent;
131
131
  routeRef: _backstage_frontend_plugin_api.RouteRef<undefined>;
132
132
  };
133
133
  }>;
package/dist/api.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import{createApiRef as c}from"@backstage/core-plugin-api";import{GraphQLClient as h}from"graphql-request";import{getSdk as u}from"./graphql/generated/index.esm.js";const y=c({id:"plugin.soundcheck"}),o=n=>"response"in n&&"errors"in n.response,g=n=>"response"in n&&"message"in n.response;class l{#s;#a;#t;constructor(t){this.#s=t.fetchApi,this.#a=t.discoveryApi;const e=new h("/graphql",{fetch:async(s,a)=>{const i=`${await this.#a.getBaseUrl("soundcheck")}${s}`;return this.#s.fetch(i,a)}});this.#t=u(e)}#n=t=>o(t)?t.response?.errors?.[0].message??`${t}`:g(t)?t.response.message:`${t}`;#e=async t=>{try{return await t()}catch(e){throw new Error(`Error from Soundcheck backend: ${this.#n(e)}`)}};async getAllCertifications(t){return this.#e(async()=>{const{certifications:e}=await this.#t.getAllCertifications({entityRef:t});return e})}async getCertificationDetails(t){return this.#e(async()=>{const{certifications:e}=await this.#t.getCertificationDetails({entityRef:t});return e})}async getCertificationDetailsForTrack(t,e,s){return this.#e(async()=>{const{trackCertification:a}=await this.#t.getCertificationDetailsForTrack({entityRef:t,trackId:e,includeFilteredChecks:s});return a})}async getCheckResultDetails(t,e,s){return this.#e(async()=>{const{checkResult:a}=await this.#t.getCheckResultDetails({entityRef:t,trackId:e,checkId:s});return a})}async getFacetsForOwner(t){return this.#e(async()=>{const{facetsForOwner:e}=await this.#t.getFacetsForOwner({ownerEntityRef:t});return e})}async getTrackOverviewForOwner(t,e,s,a,i){return this.#e(async()=>{const{trackOverviewForOwner:r}=await this.#t.getTrackOverviewForOwner({ownerEntityRef:t,facet:e,first:s,after:a,entitySearch:i});return r})}async getTracks(t){return this.#e(async()=>{const{tracks:e}=await this.#t.getTracks({filter:t});return e})}async createTrack(t){return this.#e(async()=>{const{track:e}=await this.#t.createTrack({input:t});return e})}async updateTrack(t){return this.#e(async()=>{const{track:e}=await this.#t.updateTrack({input:t});return e})}async deleteTrack(t){return this.#e(async()=>{const{trackDeleted:e}=await this.#t.deleteTrack({trackId:t});return e})}async getPlaylists(t){return this.#e(async()=>{const{playlists:e}=await this.#t.getPlaylists({entityRef:t});return e})}async getOperators(){return this.#e(async()=>{const{operators:t}=await this.#t.getOperators();return t})}async getCheck(t){return this.#e(async()=>await this.#t.getCheck({id:t}))}async getChecks(t){return this.#e(async()=>{const{checkers:e}=await this.#t.getCheckers({filter:t});return e})}async getExecutableChecks(){return this.#e(async()=>{const{executableChecks:t}=await this.#t.getExecutableChecks();return t})}async createCheck(t){return this.#e(async()=>{const{check:e}=await this.#t.createCheck({input:t});return e})}async updateCheck(t){return this.#e(async()=>{const{check:e}=await this.#t.updateCheck({input:t});return e})}async deleteCheck(t){return this.#e(async()=>await this.#t.deleteChecker({checkerId:t}))}async executeCheck(t){return this.#e(async()=>{const{result:e}=await this.#t.executeCheck({input:t});return e})}async setEntityExempt(t){return this.#e(async()=>{const{setEntityExempt:e}=await this.#t.setEntityExempt({input:t});return e})}async setManualCheckResult(t){return this.#e(async()=>await this.#t.setManualCheckResult({input:t}))}async deleteExemption(t,e){return this.#e(async()=>await this.#t.deleteExemption({checkId:t,entityRef:e}))}async getExemption(t,e){return this.#e(async()=>await this.#t.getExemption({checkId:t,entityRef:e}))}async getCollectors(t){return this.#e(async()=>{const{collectors:e}=await this.#t.getCollectors({ids:t});return e})}async getFactSchema(t,e){if(!(!t||!e))return this.#e(async()=>{const{factSchema:s}=await this.#t.getFactSchemas({collectorId:t,factName:e});return s})}async updateCollectorConfig(t){return this.#e(async()=>{const{collector:e}=await this.#t.updateCollectorConfig({input:t});return e})}async getOverallCheckPassRates(t){return this.#e(async()=>await this.#t.getOverallCheckPassRates({filter:t}))}async getIndividualCheckPassRates(t){return this.#e(async()=>await this.#t.getIndividualCheckPassRates({filter:t}))}async getOverallTrackPassRate(t){return this.#e(async()=>await this.#t.getOverallTrackPassRate({filter:t}))}async getIndividualTrackPassRate(t){return this.#e(async()=>await this.#t.getIndividualTrackPassRate({filter:t}))}async getOverallEntityPassRates(t){return this.#e(async()=>await this.#t.getOverallEntityPassRates({filter:t}))}async getIndividualEntityPassRates(t){return this.#e(async()=>await this.#t.getIndividualEntityPassRates({input:t}))}async getOverallGroupPassRates(t){return this.#e(async()=>await this.#t.getOverallGroupPassRates({input:t}))}async getIndividualGroupPassRates(t){return this.#e(async()=>await this.#t.getIndividualGroupPassRates({input:t}))}async getEntityRefsForTechHealthFilter(t){return this.#e(async()=>await this.#t.getEntityRefsForTechHealthFilter({ownerEntityRef:t}))}async getTrackEntities(t){return this.#e(async()=>await this.#t.getTrackEntities({input:t}))}async getCampaigns(t){return this.#e(async()=>{const{campaigns:e}=await this.#t.getCampaigns({filter:t});return e})}async createCampaign(t){return this.#e(async()=>{const{campaign:e}=await this.#t.createCampaign({input:t});return e})}async updateCampaign(t){return this.#e(async()=>{const{campaign:e}=await this.#t.updateCampaign({input:t});return e})}async deleteCampaign(t){return this.#e(async()=>{const{campaignDeleted:e}=await this.#t.deleteCampaign({campaignId:t});return e})}async archiveCampaign(t){return this.#e(async()=>{const{campaignArchived:e}=await this.#t.archiveCampaign({campaignId:t});return e})}async getCampaignOwners(){return this.#e(async()=>{const{campaignOwners:t}=await this.#t.getCampaignOwners();return t})}async getCheckOwners(){return this.#e(async()=>{const{checkOwners:t}=await this.#t.getCheckOwners();return t})}async getTrackOwners(){return this.#e(async()=>{const{trackOwners:t}=await this.#t.getTrackOwners();return t})}async getCertificationStatus(t){return this.#e(async()=>this.#t.getCertificationStatus({input:t}))}async getCertificationStatusHistory(t){return this.#e(async()=>this.#t.getCertificationStatusHistory({input:t}))}async getCheckStatus(t){return this.#e(async()=>(await this.#t.getCheckStatus({input:t})).checkStatus)}async getCheckStatuses(t){return this.#e(async()=>(await this.#t.getCheckStatuses({input:t})).checkStatuses)}async getCheckStatusHistory(t){return this.#e(async()=>(await this.#t.getCheckStatusHistory({input:t})).checkStatusHistory)}async getCheckStatusHistories(t){return this.#e(async()=>(await this.#t.getCheckStatusHistories({input:t})).checkStatusHistories)}async getCheckEntities(t){return this.#e(async()=>await this.#t.getCheckEntities({input:t}))}async getPathResolvers(){return this.#e(async()=>{const{pathResolvers:t}=await this.#t.getPathResolvers();return t})}async getCheckTemplates(){return this.#e(async()=>{const{checkerTemplates:t}=await this.#t.getCheckTemplates();return t})}async getFact(t){return this.#e(async()=>{const{fact:e}=await this.#t.getFact(t);return e})}}export{l as SoundcheckApi,y as soundcheckApiRef};
1
+ import{createApiRef as c}from"@backstage/core-plugin-api";import{GraphQLClient as h}from"graphql-request";import{getSdk as u}from"./graphql/generated/index.esm.js";const y=c({id:"plugin.soundcheck"}),o=n=>"response"in n&&"errors"in n.response,g=n=>"response"in n&&"message"in n.response;class l{#s;#a;#t;constructor(t){this.#s=t.fetchApi,this.#a=t.discoveryApi;const e=new h("/graphql",{fetch:async(s,a)=>{const i=`${await this.#a.getBaseUrl("soundcheck")}${s}`;return this.#s.fetch(i,a)}});this.#t=u(e)}#n=t=>o(t)?t.response?.errors?.[0].message??`${t}`:g(t)?t.response.message:`${t}`;#e=async t=>{try{return await t()}catch(e){throw new Error(`Error from Soundcheck backend: ${this.#n(e)}`)}};async getAllCertifications(t,e=!1,s=!1){return this.#e(async()=>{const{certifications:a}=await this.#t.getAllCertifications({entityRef:t,includeFilteredChecks:e,includeDraftTracks:s});return a})}async getCertificationDetails(t,e=!1,s=!1){return this.#e(async()=>{const{certifications:a}=await this.#t.getCertificationDetails({entityRef:t,includeFilteredChecks:e,includeDraftTracks:s});return a})}async getCertificationDetailsForTrack(t,e,s){return this.#e(async()=>{const{trackCertification:a}=await this.#t.getCertificationDetailsForTrack({entityRef:t,trackId:e,includeFilteredChecks:s});return a})}async getCheckResultDetails(t,e,s){return this.#e(async()=>{const{checkResult:a}=await this.#t.getCheckResultDetails({entityRef:t,trackId:e,checkId:s});return a})}async getFacetsForOwner(t){return this.#e(async()=>{const{facetsForOwner:e}=await this.#t.getFacetsForOwner({ownerEntityRef:t});return e})}async getTrackOverviewForOwner(t,e,s,a,i){return this.#e(async()=>{const{trackOverviewForOwner:r}=await this.#t.getTrackOverviewForOwner({ownerEntityRef:t,facet:e,first:s,after:a,entitySearch:i});return r})}async getTracks(t){return this.#e(async()=>{const{tracks:e}=await this.#t.getTracks({filter:t});return e})}async getTrack(t){return this.#e(async()=>{const{track:e}=await this.#t.getTrack({id:t});return e})}async createTrack(t){return this.#e(async()=>{const{track:e}=await this.#t.createTrack({input:t});return e})}async updateTrack(t){return this.#e(async()=>{const{track:e}=await this.#t.updateTrack({input:t});return e})}async deleteTrack(t){return this.#e(async()=>{const{trackDeleted:e}=await this.#t.deleteTrack({trackId:t});return e})}async getPlaylists(t){return this.#e(async()=>{const{playlists:e}=await this.#t.getPlaylists({entityRef:t});return e})}async getOperators(){return this.#e(async()=>{const{operators:t}=await this.#t.getOperators();return t})}async getCheck(t){return this.#e(async()=>(await this.#t.getCheck({id:t})).check)}async getChecks(t){return this.#e(async()=>{const{checkers:e}=await this.#t.getCheckers({filter:t});return e})}async getExecutableChecks(){return this.#e(async()=>{const{executableChecks:t}=await this.#t.getExecutableChecks();return t})}async createCheck(t){return this.#e(async()=>{const{check:e}=await this.#t.createCheck({input:t});return e})}async updateCheck(t){return this.#e(async()=>{const{check:e}=await this.#t.updateCheck({input:t});return e})}async deleteCheck(t){return this.#e(async()=>await this.#t.deleteChecker({checkerId:t}))}async executeCheck(t){return this.#e(async()=>{const{result:e}=await this.#t.executeCheck({input:t});return e})}async setEntityExempt(t){return this.#e(async()=>{const{setEntityExempt:e}=await this.#t.setEntityExempt({input:t});return e})}async setManualCheckResult(t){return this.#e(async()=>await this.#t.setManualCheckResult({input:t}))}async deleteExemption(t,e){return this.#e(async()=>await this.#t.deleteExemption({checkId:t,entityRef:e}))}async getExemption(t,e){return this.#e(async()=>await this.#t.getExemption({checkId:t,entityRef:e}))}async getExemptCheckIds(t,e){return this.#e(async()=>await this.#t.getExemptCheckIds({entityRef:t,trackId:e}))}async getCollectors(t){return this.#e(async()=>{const{collectors:e}=await this.#t.getCollectors({ids:t});return e})}async getFactSchema(t,e){if(!(!t||!e))return this.#e(async()=>{const{factSchema:s}=await this.#t.getFactSchemas({collectorId:t,factName:e});return s})}async updateCollectorConfig(t){return this.#e(async()=>{const{collector:e}=await this.#t.updateCollectorConfig({input:t});return e})}async getOverallCheckPassRates(t){return this.#e(async()=>await this.#t.getOverallCheckPassRates({filter:t}))}async getIndividualCheckPassRates(t){return this.#e(async()=>await this.#t.getIndividualCheckPassRates({filter:t}))}async getOverallTrackPassRate(t){return this.#e(async()=>await this.#t.getOverallTrackPassRate({filter:t}))}async getIndividualTrackPassRate(t){return this.#e(async()=>await this.#t.getIndividualTrackPassRate({filter:t}))}async getOverallEntityPassRates(t){return this.#e(async()=>await this.#t.getOverallEntityPassRates({filter:t}))}async getIndividualEntityPassRates(t){return this.#e(async()=>await this.#t.getIndividualEntityPassRates({input:t}))}async getOverallGroupPassRates(t){return this.#e(async()=>await this.#t.getOverallGroupPassRates({input:t}))}async getIndividualGroupPassRates(t){return this.#e(async()=>await this.#t.getIndividualGroupPassRates({input:t}))}async getEntityRefsForTechHealthFilter(t){return this.#e(async()=>await this.#t.getEntityRefsForTechHealthFilter({ownerEntityRef:t}))}async getTrackEntities(t){return this.#e(async()=>await this.#t.getTrackEntities({input:t}))}async getCampaigns(t){return this.#e(async()=>{const{campaigns:e}=await this.#t.getCampaigns({filter:t});return e})}async createCampaign(t){return this.#e(async()=>{const{campaign:e}=await this.#t.createCampaign({input:t});return e})}async updateCampaign(t){return this.#e(async()=>{const{campaign:e}=await this.#t.updateCampaign({input:t});return e})}async deleteCampaign(t){return this.#e(async()=>{const{campaignDeleted:e}=await this.#t.deleteCampaign({campaignId:t});return e})}async archiveCampaign(t){return this.#e(async()=>{const{campaignArchived:e}=await this.#t.archiveCampaign({campaignId:t});return e})}async getCampaignOwners(){return this.#e(async()=>{const{campaignOwners:t}=await this.#t.getCampaignOwners();return t})}async getCheckOwners(){return this.#e(async()=>{const{checkOwners:t}=await this.#t.getCheckOwners();return t})}async getTrackOwners(){return this.#e(async()=>{const{trackOwners:t}=await this.#t.getTrackOwners();return t})}async getCertificationStatus(t){return this.#e(async()=>this.#t.getCertificationStatus({input:t}))}async getCertificationStatusHistory(t){return this.#e(async()=>this.#t.getCertificationStatusHistory({input:t}))}async getCheckStatus(t){return this.#e(async()=>(await this.#t.getCheckStatus({input:t})).checkStatus)}async getCheckStatuses(t){return this.#e(async()=>(await this.#t.getCheckStatuses({input:t})).checkStatuses)}async getCheckStatusHistory(t){return this.#e(async()=>(await this.#t.getCheckStatusHistory({input:t})).checkStatusHistory)}async getCheckStatusHistories(t){return this.#e(async()=>(await this.#t.getCheckStatusHistories({input:t})).checkStatusHistories)}async getCheckEntities(t){return this.#e(async()=>await this.#t.getCheckEntities({input:t}))}async getPathResolvers(){return this.#e(async()=>{const{pathResolvers:t}=await this.#t.getPathResolvers();return t})}async getCheckTemplates(){return this.#e(async()=>{const{checkerTemplates:t}=await this.#t.getCheckTemplates();return t})}async getFact(t){return this.#e(async()=>{const{fact:e}=await this.#t.getFact(t);return e})}}export{l as SoundcheckApi,y as soundcheckApiRef};
2
2
  //# sourceMappingURL=api.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as r}from"@material-ui/core";import{Alert as o,AlertTitle as a}from"@material-ui/lab";import l from"react";const i=r(e=>({root:{alignItems:"flex-start",padding:e.spacing(2)},alertTitle:{marginBottom:0}})),s=e=>{const t=i();return l.createElement(o,{severity:e.severity,elevation:1,classes:{...t},onClose:e.onClose,variant:"filled"},l.createElement(a,{className:t.alertTitle},e.title),e.children)};export{s as AlertPanel};
1
+ import{jsxs as l,jsx as r}from"react/jsx-runtime";import{makeStyles as i}from"@material-ui/core";import{Alert as o,AlertTitle as s}from"@material-ui/lab";const n=i(t=>({root:{alignItems:"flex-start",padding:t.spacing(2)},alertTitle:{marginBottom:0}})),a=t=>{const e=n();return l(o,{severity:t.severity,elevation:1,classes:{...e},onClose:t.onClose,variant:"filled",children:[r(s,{className:e.alertTitle,children:t.title}),t.children]})};export{a as AlertPanel};
2
2
  //# sourceMappingURL=AlertPanel.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as se,useTheme as ce}from"@material-ui/core/styles";import{schemeCategory10 as de}from"d3-scale-chromatic";import t,{useState as L,useRef as V}from"react";import{ResponsiveContainer as pe,AreaChart as me,CartesianGrid as ye,XAxis as ue,Label as D,YAxis as xe,Tooltip as ge,Legend as fe,Area as ve,Dot as G,Line as ke}from"recharts";import{ChartTooltip as he}from"./ChartTooltip.esm.js";import Ee from"./Legend.esm.js";import{yDomain as Ae,hasUniqueValueForKey as z}from"./utils.esm.js";const Le=se(o=>({root:{height:"100%",width:"100%"},gridLine:{stroke:o.palette.divider},xAxis:{fontSize:"0.75rem",fill:o.palette.text.secondary},yAxis:{fontSize:"0.75rem",fill:o.palette.text.secondary},tooltip:{borderRadius:o.shape.borderRadius,border:`1px solid ${o.palette.divider}`,backgroundColor:o.palette.background.paper,color:o.palette.text.primary,boxShadow:o.shadows[1]}})),be=({data:o=[],categories:E=[],index:x,colors:b=de,categoryColors:R={},valueFormatter:C=s=>s.toString(),startEndOnly:K=!1,showXAxis:W=!0,showYAxis:P=!0,showGridLines:q=!0,yAxisWidth:I=56,intervalType:M="equidistantPreserveStart",showTooltip:X=!0,showLegend:Y=!0,autoMinValue:j=!1,minValue:B,maxValue:H,allowDecimals:U=!0,connectNulls:w=!1,className:Z,onValueChange:p,enableLegendSlider:J=!0,tickGap:Q=5,xAxisLabel:A,yAxisLabel:g,type:f="default",legendPosition:Ce="right",fill:_="gradient",tooltipCallback:T,customTooltip:N,...$})=>{const s=Le(),m=ce(),[ee,te]=L(60),[l,v]=L(void 0),[c,u]=L(void 0),y=E.reduce((e,a,i)=>(e[a]=R[a]||b[i%b.length],e),{}),ae=Ae({autoMinValue:j,minValue:B,maxValue:H}),k=!!p,ie=f==="stacked"||f==="percent",S=V(void 0),F=V(void 0),oe=({fillType:e,dot:a,legend:i,category:r})=>{const n=a||i&&i!==r?.1:.3,d=y[r]||m.palette.primary.main;switch(e){case"none":return t.createElement("stop",{stopColor:d,stopOpacity:0});case"gradient":return t.createElement(t.Fragment,null,t.createElement("stop",{offset:"5%",stopColor:d,stopOpacity:n}),t.createElement("stop",{offset:"95%",stopColor:d,stopOpacity:0}));case"solid":default:return t.createElement("stop",{stopColor:d,stopOpacity:n})}};function ne(e){return`${(e*100).toFixed(0)}%`}function re(e,a){a.stopPropagation(),k&&(e.index===l?.index&&e.dataKey===l?.dataKey||z(o,e.dataKey)&&c&&c===e.dataKey?(u(void 0),v(void 0),p?.(null)):(u(e.dataKey),v({index:e.index,dataKey:e.dataKey}),p?.({eventType:"dot",categoryClicked:e.dataKey,...e.payload})))}function O(e){k&&(e===c&&!l||z(o,e)&&l&&l.dataKey===e?(u(void 0),p?.(null)):(u(e),p?.({eventType:"category",categoryClicked:e})),v(void 0))}return t.createElement("div",{className:`${s.root} ${Z}`,...$},t.createElement(pe,null,t.createElement(me,{data:o,onClick:k&&(c||l)?()=>{v(void 0),u(void 0),p?.(null)}:void 0,margin:{bottom:A?30:void 0,left:g?20:void 0,right:g?5:void 0,top:5},stackOffset:f==="percent"?"expand":void 0},q?t.createElement(ye,{className:s.gridLine,horizontal:!0,vertical:!1}):null,t.createElement(ue,{padding:{left:20,right:20},hide:!W,dataKey:x,interval:K?"preserveStartEnd":M,tick:{transform:"translate(0, 6)"},ticks:K?[o[0][x],o[o.length-1][x]]:void 0,className:s.xAxis,tickLine:!1,axisLine:!1,minTickGap:Q},A&&t.createElement(D,{position:"insideBottom",offset:-20,className:s.xAxis},A)),t.createElement(xe,{width:I,hide:!P,axisLine:!1,tickLine:!1,type:"number",domain:ae,tick:{transform:"translate(-3, 0)"},className:s.yAxis,tickFormatter:f==="percent"?ne:C,allowDecimals:U},g&&t.createElement(D,{position:"insideLeft",style:{textAnchor:"middle"},angle:-90,offset:-15,className:s.yAxis},g)),t.createElement(ge,{wrapperStyle:{outline:"none"},isAnimationActive:!0,animationDuration:100,cursor:{stroke:m.palette.divider,strokeWidth:1},offset:20,position:{y:0},content:({active:e,payload:a,label:i})=>{const r=a?a.map(n=>({category:n.dataKey,value:n.value,index:n.payload[x],color:y[n.dataKey]??"#000",type:n.type,payload:n.payload})):[];return T&&(e!==S.current||i!==F.current)&&(T({active:e,payload:r,label:i}),S.current=e,F.current=i),X&&e?N?t.createElement(N,{active:e,payload:r,label:i}):t.createElement(he,{active:e,payload:r,label:i,valueFormatter:C}):null}}),Y?t.createElement(fe,{verticalAlign:"top",height:ee,content:({payload:e})=>t.createElement(Ee,{categories:e?.map(a=>a.value)??[],colors:e?.map(a=>y[a.value]||m.palette.primary.main)??[],onClickLegendItem:k?O:void 0,activeLegend:c,enableLegendSlider:J,setLegendHeight:te})}):null,E.map(e=>{const a=`${e.replace(/[^a-zA-Z0-9]/g,"")}`;return t.createElement(t.Fragment,{key:e},t.createElement("defs",{key:e},t.createElement("linearGradient",{id:a,x1:"0",y1:"0",x2:"0",y2:"1"},oe({fillType:_,dot:l,legend:c,category:e}))),t.createElement(ve,{stroke:y[e]||m.palette.primary.main,strokeOpacity:l||c&&c!==e?.3:1,activeDot:i=>{const{cx:r,cy:n,dataKey:d}=i;return t.createElement(G,{cx:r,cy:n,r:5,fill:y[d]||m.palette.primary.main,onClick:(h,le)=>re(i,le)})},dot:i=>{const{cx:r,cy:n,dataKey:d,index:h}=i;return l?.index===h&&l?.dataKey===e?t.createElement(G,{key:h,cx:r,cy:n,r:5,fill:y[d]||m.palette.primary.main}):t.createElement(t.Fragment,{key:h})},key:e,name:e,type:"linear",dataKey:e,strokeWidth:2,strokeLinejoin:"round",strokeLinecap:"round",isAnimationActive:!1,connectNulls:w,stackId:ie?"stack":void 0,fill:`url(#${a})`}))}),p?E.map(e=>t.createElement(ke,{strokeOpacity:0,key:e,name:e,type:"linear",dataKey:e,stroke:"transparent",fill:"transparent",legendType:"none",tooltipType:"none",strokeWidth:12,connectNulls:w,onClick:(a,i)=>{i.stopPropagation();const{name:r}=a;O(r)}})):null)))};export{be as AreaChart};
1
+ import{jsx as t,jsxs as C,Fragment as ce}from"react/jsx-runtime";import{makeStyles as pe,useTheme as ye}from"@material-ui/core/styles";import{schemeCategory10 as me}from"d3-scale-chromatic";import{useState as b,useRef as D,createElement as ue,Fragment as z}from"react";import{ResponsiveContainer as he,AreaChart as xe,CartesianGrid as fe,XAxis as ge,Label as G,YAxis as ve,Tooltip as ke,Legend as Ae,Area as Le,Dot as E,Line as Ce}from"recharts";import{ChartTooltip as be}from"./ChartTooltip.esm.js";import Ke from"./Legend.esm.js";import{yDomain as we,hasUniqueValueForKey as P}from"./utils.esm.js";const Te=pe(o=>({root:{height:"100%",width:"100%"},gridLine:{stroke:o.palette.divider},xAxis:{fontSize:"0.75rem",fill:o.palette.text.secondary},yAxis:{fontSize:"0.75rem",fill:o.palette.text.secondary},tooltip:{borderRadius:o.shape.borderRadius,border:`1px solid ${o.palette.divider}`,backgroundColor:o.palette.background.paper,color:o.palette.text.primary,boxShadow:o.shadows[1]}})),Se=({data:o=[],categories:A=[],index:h,colors:K=me,categoryColors:W={},valueFormatter:w=s=>s.toString(),startEndOnly:T=!1,showXAxis:j=!0,showYAxis:R=!0,showGridLines:q=!0,yAxisWidth:I=56,intervalType:M="equidistantPreserveStart",showTooltip:X=!0,showLegend:Y=!0,autoMinValue:B=!1,minValue:H,maxValue:U,allowDecimals:Z=!0,connectNulls:S=!1,className:J,onValueChange:p,enableLegendSlider:Q=!0,tickGap:_=5,xAxisLabel:L,yAxisLabel:x,type:f="default",legendPosition:Ne="right",fill:ee="gradient",tooltipCallback:N,customTooltip:O,...te})=>{const s=Te(),y=ye(),[ae,ie]=b(60),[l,g]=b(void 0),[d,u]=b(void 0),m=A.reduce((e,a,i)=>(e[a]=W[a]||K[i%K.length],e),{}),oe=we({autoMinValue:B,minValue:H,maxValue:U}),v=!!p,ne=f==="stacked"||f==="percent",F=D(void 0),V=D(void 0),re=({fillType:e,dot:a,legend:i,category:r})=>{const n=a||i&&i!==r?.1:.3,c=m[r]||y.palette.primary.main;switch(e){case"none":return t("stop",{stopColor:c,stopOpacity:0});case"gradient":return C(ce,{children:[t("stop",{offset:"5%",stopColor:c,stopOpacity:n}),t("stop",{offset:"95%",stopColor:c,stopOpacity:0})]});case"solid":default:return t("stop",{stopColor:c,stopOpacity:n})}};function le(e){return`${(e*100).toFixed(0)}%`}function se(e,a){a.stopPropagation(),v&&(e.index===l?.index&&e.dataKey===l?.dataKey||P(o,e.dataKey)&&d&&d===e.dataKey?(u(void 0),g(void 0),p?.(null)):(u(e.dataKey),g({index:e.index,dataKey:e.dataKey}),p?.({eventType:"dot",categoryClicked:e.dataKey,...e.payload})))}function $(e){v&&(e===d&&!l||P(o,e)&&l&&l.dataKey===e?(u(void 0),p?.(null)):(u(e),p?.({eventType:"category",categoryClicked:e})),g(void 0))}return t("div",{className:`${s.root} ${J}`,...te,children:t(he,{children:C(xe,{data:o,onClick:v&&(d||l)?()=>{g(void 0),u(void 0),p?.(null)}:void 0,margin:{bottom:L?30:void 0,left:x?20:void 0,right:x?5:void 0,top:5},stackOffset:f==="percent"?"expand":void 0,children:[q?t(fe,{className:s.gridLine,horizontal:!0,vertical:!1}):null,t(ge,{padding:{left:20,right:20},hide:!j,dataKey:h,interval:T?"preserveStartEnd":M,tick:{transform:"translate(0, 6)"},ticks:T?[o[0][h],o[o.length-1][h]]:void 0,className:s.xAxis,tickLine:!1,axisLine:!1,minTickGap:_,children:L&&t(G,{position:"insideBottom",offset:-20,className:s.xAxis,children:L})}),t(ve,{width:I,hide:!R,axisLine:!1,tickLine:!1,type:"number",domain:oe,tick:{transform:"translate(-3, 0)"},className:s.yAxis,tickFormatter:f==="percent"?le:w,allowDecimals:Z,children:x&&t(G,{position:"insideLeft",style:{textAnchor:"middle"},angle:-90,offset:-15,className:s.yAxis,children:x})}),t(ke,{wrapperStyle:{outline:"none"},isAnimationActive:!0,animationDuration:100,cursor:{stroke:y.palette.divider,strokeWidth:1},offset:20,position:{y:0},content:({active:e,payload:a,label:i})=>{const r=a?a.map(n=>({category:n.dataKey,value:n.value,index:n.payload[h],color:m[n.dataKey]??"#000",type:n.type,payload:n.payload})):[];return N&&(e!==F.current||i!==V.current)&&(N({active:e,payload:r,label:i}),F.current=e,V.current=i),X&&e?O?ue(O,{active:e,payload:r,label:i}):t(be,{active:e,payload:r,label:i,valueFormatter:w}):null}}),Y?t(Ae,{verticalAlign:"top",height:ae,content:({payload:e})=>t(Ke,{categories:e?.map(a=>a.value)??[],colors:e?.map(a=>m[a.value]||y.palette.primary.main)??[],onClickLegendItem:v?$:void 0,activeLegend:d,enableLegendSlider:Q,setLegendHeight:ie})}):null,A.map(e=>{const a=`${e.replace(/[^a-zA-Z0-9]/g,"")}`;return C(z,{children:[t("defs",{children:t("linearGradient",{id:a,x1:"0",y1:"0",x2:"0",y2:"1",children:re({fillType:ee,dot:l,legend:d,category:e})})},e),t(Le,{stroke:m[e]||y.palette.primary.main,strokeOpacity:l||d&&d!==e?.3:1,activeDot:i=>{const{cx:r,cy:n,dataKey:c}=i;return t(E,{cx:r,cy:n,r:5,fill:m[c]||y.palette.primary.main,onClick:(k,de)=>se(i,de)})},dot:i=>{const{cx:r,cy:n,dataKey:c,index:k}=i;return l?.index===k&&l?.dataKey===e?t(E,{cx:r,cy:n,r:5,fill:m[c]||y.palette.primary.main},k):t(z,{},k)},name:e,type:"linear",dataKey:e,strokeWidth:2,strokeLinejoin:"round",strokeLinecap:"round",isAnimationActive:!1,connectNulls:S,stackId:ne?"stack":void 0,fill:`url(#${a})`},e)]},e)}),p?A.map(e=>t(Ce,{strokeOpacity:0,name:e,type:"linear",dataKey:e,stroke:"transparent",fill:"transparent",legendType:"none",tooltipType:"none",strokeWidth:12,connectNulls:S,onClick:(a,i)=>{i.stopPropagation();const{name:r}=a;$(r)}},e)):null]})})})};export{Se as AreaChart};
2
2
  //# sourceMappingURL=AreaChart.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as p,createStyles as m}from"@material-ui/core/styles";import a from"react";const g=p(e=>m({tooltipContainer:{borderRadius:e.shape.borderRadius,border:`1px solid ${e.palette.divider}`,backgroundColor:e.palette.background.paper,color:e.palette.text.primary,boxShadow:e.shadows[1]},header:{borderBottom:`1px solid ${e.palette.divider}`,paddingLeft:e.spacing(1),paddingRight:e.spacing(1)},title:{fontWeight:e.typography.fontWeightMedium,color:e.palette.text.primary},content:{padding:e.spacing(1)},item:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:e.spacing(.5)},legendDash:{width:e.spacing(2),height:e.spacing(.375),borderRadius:e.spacing(.375),marginRight:e.spacing(1)},category:{display:"flex",alignItems:"center",flex:1,fontSize:"0.875rem",color:e.palette.text.secondary,marginRight:e.spacing(2)},value:{fontWeight:e.typography.fontWeightMedium,fontSize:"0.875rem",color:e.palette.text.primary}}));function o({active:e,payload:i,label:r,valueFormatter:l}){const t=g({color:"#000"});return!e||!i||i.length===0?null:a.createElement("div",{className:t.tooltipContainer},a.createElement("div",{className:t.header},a.createElement("p",{className:t.title},r)),a.createElement("div",{className:t.content},i.map(({value:n,category:c,color:s},d)=>a.createElement("div",{key:`id-${d}`,className:t.item},a.createElement("div",{className:t.category},a.createElement("span",{className:t.legendDash,style:{backgroundColor:s}}),c),a.createElement("div",{className:t.value},l(n))))))}export{o as ChartTooltip,o as default};
1
+ import{jsxs as a,jsx as i}from"react/jsx-runtime";import{makeStyles as g,createStyles as m}from"@material-ui/core/styles";const h=g(e=>m({tooltipContainer:{borderRadius:e.shape.borderRadius,border:`1px solid ${e.palette.divider}`,backgroundColor:e.palette.background.paper,color:e.palette.text.primary,boxShadow:e.shadows[1]},header:{borderBottom:`1px solid ${e.palette.divider}`,paddingLeft:e.spacing(1),paddingRight:e.spacing(1)},title:{fontWeight:e.typography.fontWeightMedium,color:e.palette.text.primary},content:{padding:e.spacing(1)},item:{display:"flex",justifyContent:"space-between",alignItems:"center",marginBottom:e.spacing(.5)},legendDash:{width:e.spacing(2),height:e.spacing(.375),borderRadius:e.spacing(.375),marginRight:e.spacing(1)},category:{display:"flex",alignItems:"center",flex:1,fontSize:"0.875rem",color:e.palette.text.secondary,marginRight:e.spacing(2)},value:{fontWeight:e.typography.fontWeightMedium,fontSize:"0.875rem",color:e.palette.text.primary}}));function r({active:e,payload:o,label:l,valueFormatter:n}){const t=h({color:"#000"});return!e||!o||o.length===0?null:a("div",{className:t.tooltipContainer,children:[i("div",{className:t.header,children:i("p",{className:t.title,children:l})}),i("div",{className:t.content,children:o.map(({value:s,category:d,color:c},p)=>a("div",{className:t.item,children:[a("div",{className:t.category,children:[i("span",{className:t.legendDash,style:{backgroundColor:c}}),d]}),i("div",{className:t.value,children:n(s)})]},`id-${p}`))})]})}export{r as ChartTooltip,r as default};
2
2
  //# sourceMappingURL=ChartTooltip.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as v,IconButton as m}from"@material-ui/core";import b from"@material-ui/icons/ArrowBackIos";import x from"@material-ui/icons/ArrowForwardIos";import l,{useRef as d,useState as E,useCallback as S}from"react";import z from"./LegendItem.esm.js";const I=v(()=>({legendContainer:{display:"flex",alignItems:"center",overflow:"hidden",position:"relative"},legendList:{display:"flex",listStyle:"none",padding:0,margin:0,overflowX:"auto","&::-webkit-scrollbar":{display:"none"}},scrollButton:{position:"absolute",top:"50%",transform:"translateY(-50%)",zIndex:1},scrollButtonLeft:{left:0},scrollButtonRight:{right:0}})),N=({categories:u,colors:g,activeLegend:h,onClickLegendItem:p,enableLegendSlider:a=!1,legendPosition:i="right",yAxisWidth:y=0})=>{const n=I(),s=d(null),L=d(null),[c,B]=E({left:!1,right:!1}),C=S(()=>{const e=s.current;if(!e)return;const t=e.scrollLeft>0,r=e.scrollWidth-e.clientWidth>e.scrollLeft;B({left:t,right:r})},[]),f=e=>{const t=s.current;if(!t)return;const r=t.clientWidth,k=e==="left"?-r:r;t.scrollBy({left:k,behavior:"smooth"}),setTimeout(C,400)};let o;return i==="left"?o="flex-start":i==="center"?o="center":o="flex-end",l.createElement("div",{className:n.legendContainer,ref:L,style:{justifyContent:o,paddingLeft:i==="left"?y:0}},a&&c.left&&l.createElement(m,{className:`${n.scrollButton} ${n.scrollButtonLeft}`,onClick:()=>f("left"),size:"small"},l.createElement(b,{fontSize:"small"})),l.createElement("ul",{className:n.legendList,ref:s},u.map((e,t)=>l.createElement(z,{key:t,name:e,color:g[t],onClick:p,activeLegend:h}))),a&&c.right&&l.createElement(m,{className:`${n.scrollButton} ${n.scrollButtonRight}`,onClick:()=>f("right"),size:"small"},l.createElement(x,{fontSize:"small"})))};export{N as default};
1
+ import{jsxs as v,jsx as o}from"react/jsx-runtime";import{makeStyles as b,IconButton as d}from"@material-ui/core";import k from"@material-ui/icons/ArrowBackIos";import S from"@material-ui/icons/ArrowForwardIos";import{useRef as m,useState as z,useCallback as I}from"react";import N from"./LegendItem.esm.js";const W=b(()=>({legendContainer:{display:"flex",alignItems:"center",overflow:"hidden",position:"relative"},legendList:{display:"flex",listStyle:"none",padding:0,margin:0,overflowX:"auto","&::-webkit-scrollbar":{display:"none"}},scrollButton:{position:"absolute",top:"50%",transform:"translateY(-50%)",zIndex:1},scrollButtonLeft:{left:0},scrollButtonRight:{right:0}})),$=({categories:u,colors:g,activeLegend:h,onClickLegendItem:p,enableLegendSlider:a=!1,legendPosition:r="right",yAxisWidth:L=0})=>{const l=W(),s=m(null),x=m(null),[c,y]=z({left:!1,right:!1}),B=I(()=>{const e=s.current;if(!e)return;const t=e.scrollLeft>0,i=e.scrollWidth-e.clientWidth>e.scrollLeft;y({left:t,right:i})},[]),f=e=>{const t=s.current;if(!t)return;const i=t.clientWidth,C=e==="left"?-i:i;t.scrollBy({left:C,behavior:"smooth"}),setTimeout(B,400)};let n;return r==="left"?n="flex-start":r==="center"?n="center":n="flex-end",v("div",{className:l.legendContainer,ref:x,style:{justifyContent:n,paddingLeft:r==="left"?L:0},children:[a&&c.left&&o(d,{className:`${l.scrollButton} ${l.scrollButtonLeft}`,onClick:()=>f("left"),size:"small",children:o(k,{fontSize:"small"})}),o("ul",{className:l.legendList,ref:s,children:u.map((e,t)=>o(N,{name:e,color:g[t],onClick:p,activeLegend:h},t))}),a&&c.right&&o(d,{className:`${l.scrollButton} ${l.scrollButtonRight}`,onClick:()=>f("right"),size:"small",children:o(S,{fontSize:"small"})})]})};export{$ as default};
2
2
  //# sourceMappingURL=Legend.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as c}from"@material-ui/core/styles";import o from"react";const i=c(e=>({legendItem:{display:"flex",alignItems:"center",marginRight:e.spacing(2),opacity:1,"&:hover":{opacity:.8}},legendButton:{display:"flex",alignItems:"center",background:"none",border:"none",cursor:"pointer",padding:0,opacity:1,"&:hover":{opacity:.8}},legendDash:{width:e.spacing(2),height:e.spacing(.375),borderRadius:e.spacing(.375),backgroundColor:t=>t.color,marginRight:e.spacing(1)},legendText:{fontSize:"0.875rem",color:e.palette.text.primary}}));function s({name:e,color:t,onClick:l,activeLegend:a}){const n=i({color:t}),r=()=>{l&&l(e,t)};return o.createElement("li",{className:n.legendItem},o.createElement("button",{className:n.legendButton,onClick:r,"aria-label":`Legend item for ${e}`},o.createElement("span",{className:n.legendDash,style:{opacity:a&&a!==e?.4:1}}),o.createElement("span",{className:n.legendText,style:{opacity:a&&a!==e?.4:1}},e)))}export{s as default};
1
+ import{jsx as t,jsxs as r}from"react/jsx-runtime";import{makeStyles as c}from"@material-ui/core/styles";const s=c(e=>({legendItem:{display:"flex",alignItems:"center",marginRight:e.spacing(2),opacity:1,"&:hover":{opacity:.8}},legendButton:{display:"flex",alignItems:"center",background:"none",border:"none",cursor:"pointer",padding:0,opacity:1,"&:hover":{opacity:.8}},legendDash:{width:e.spacing(2),height:e.spacing(.375),borderRadius:e.spacing(.375),backgroundColor:n=>n.color,marginRight:e.spacing(1)},legendText:{fontSize:"0.875rem",color:e.palette.text.primary}}));function g({name:e,color:n,onClick:i,activeLegend:a}){const o=s({color:n}),l=()=>{i&&i(e,n)};return t("li",{className:o.legendItem,children:r("button",{className:o.legendButton,onClick:l,"aria-label":`Legend item for ${e}`,children:[t("span",{className:o.legendDash,style:{opacity:a&&a!==e?.4:1}}),t("span",{className:o.legendText,style:{opacity:a&&a!==e?.4:1},children:e})]})})}export{g as default};
2
2
  //# sourceMappingURL=LegendItem.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as m,Box as p,Tooltip as c}from"@material-ui/core";import d from"classnames";import l from"react";const a=24,f=11,t=e=>e==="small"?1:2,g=m({root:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:"50%",borderWidth:"2px",fontWeight:700,cursor:"default",width:({size:e})=>`${a*t(e)}px`,height:({size:e})=>`${a*t(e)}px`,fontSize:({size:e})=>`${f*t(e)}px`}}),x=({className:e,label:i,tooltip:o,size:s="small"})=>{const n=g({size:s}),r=l.createElement(p,{className:d(e,n.root),role:"img","aria-label":`${i} badge`},i);return o?l.createElement(c,{title:o},r):r};export{x as BaseBadge};
1
+ import{jsx as l}from"react/jsx-runtime";import{makeStyles as m,Box as p,Tooltip as d}from"@material-ui/core";import c from"classnames";const s=24,f=11,t=e=>e==="small"?1:2,h=m({root:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:"50%",borderWidth:"2px",fontWeight:700,cursor:"default",width:({size:e})=>`${s*t(e)}px`,height:({size:e})=>`${s*t(e)}px`,fontSize:({size:e})=>`${f*t(e)}px`}}),x=({className:e,label:i,tooltip:o,size:a="small"})=>{const n=h({size:a}),r=l(p,{className:c(e,n.root),role:"img","aria-label":`${i} badge`,children:i});return o?l(d,{title:o,children:r}):r};export{x as BaseBadge};
2
2
  //# sourceMappingURL=BaseBadge.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as t}from"@material-ui/core";import m from"classnames";import a from"react";import{BaseBadge as s}from"./BaseBadge.esm.js";const l=t({root:{borderColor:"currentColor",borderStyle:"solid"}}),c=({className:o,size:r="small"})=>{const e=l();return a.createElement(s,{className:m(o,e.root),size:r,label:"C"})};export{c as CampaignBadge};
1
+ import{jsx as s}from"react/jsx-runtime";import{makeStyles as t}from"@material-ui/core";import m from"classnames";import{BaseBadge as a}from"./BaseBadge.esm.js";const l=t({root:{borderColor:"currentColor",borderStyle:"solid"}}),i=({className:o,size:r="small"})=>{const e=l();return s(a,{className:m(o,e.root),size:r,label:"C"})};export{i as CampaignBadge};
2
2
  //# sourceMappingURL=CampaignBadge.esm.js.map
@@ -1,2 +1,2 @@
1
- import t from"react";import{CampaignBadge as l}from"./CampaignBadge.esm.js";import{LevelBadge as c}from"./LevelBadge.esm.js";import{NoLevelBadge as p}from"./NoLevelBadge.esm.js";const n=({badge:m,className:s,size:e="small",trackType:i,showTooltip:r})=>{const a=s||"";let o=t.createElement(p,{className:a,size:e,showTooltip:r});return i==="campaign"?o=t.createElement(l,{className:a,size:e}):m&&(o=t.createElement(c,{className:a,size:e,badge:m})),o};export{n as CertificationBadge};
1
+ import{jsx as s}from"react/jsx-runtime";import{CampaignBadge as l}from"./CampaignBadge.esm.js";import{LevelBadge as p}from"./LevelBadge.esm.js";import{NoLevelBadge as c}from"./NoLevelBadge.esm.js";const g=({badge:i,className:m,size:a="small",trackType:t,showTooltip:r})=>{const e=m||"";let o=s(c,{className:e,size:a,showTooltip:r});return t==="campaign"?o=s(l,{className:e,size:a}):i&&(o=s(p,{className:e,size:a,badge:i})),o};export{g as CertificationBadge};
2
2
  //# sourceMappingURL=CertificationBadge.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as i,alpha as p}from"@material-ui/core";import m from"classnames";import r from"react";import{BadgeVariant as s}from"../../graphql/generated/index.esm.js";import{BaseBadge as n}from"./BaseBadge.esm.js";import{StatusBadge as c}from"./StatusBadge.esm.js";const d=i(t=>({root:{background:({color:e})=>e,color:({color:e})=>e?t.palette.getContrastText(e):t.palette.text.primary,border:({size:e})=>t.palette.type==="dark"?void 0:`${e==="small"?"1px":"2px"} solid ${p(t.palette.text.primary,.8)}`,"&::after":{position:"absolute",display:"block",content:'""',top:0,left:0,width:"100%",height:"100%",borderRadius:"50%",boxShadow:["inset 0 -0.10em 0 0 rgba(0, 0, 0, 0.15)","inset 0px 0.10em 0px 0px rgba(255, 255, 255, 0.4)","inset 0px 0.9em 0px -0.4em rgba(255, 255, 255, 0.1)"].join(",")}},borderTheme:{borderColor:t.palette.text.primary,borderStyle:"solid",color:t.palette.text.primary}})),b=({className:t,badge:e,size:a="small"})=>{const l=d({color:"color"in e.options?e.options.color:void 0,size:a});if(e.variant===s.Status){const o=e.options;return r.createElement(c,{className:t,size:a,status:o.status})}if(e.variant===s.Medal){const o=e.options;return r.createElement(n,{className:m(t,o.color?l.root:l.borderTheme),size:a,label:`L${o.level}`})}return r.createElement(r.Fragment,null)};export{b as LevelBadge};
1
+ import{jsx as a,Fragment as l}from"react/jsx-runtime";import{makeStyles as p,alpha as m}from"@material-ui/core";import n from"classnames";import{BadgeVariant as i}from"../../graphql/generated/index.esm.js";import{BaseBadge as d}from"./BaseBadge.esm.js";import{StatusBadge as c}from"./StatusBadge.esm.js";const b=p(t=>({root:{background:({color:o})=>o,color:({color:o})=>o?t.palette.getContrastText(o):t.palette.text.primary,border:({size:o})=>t.palette.type==="dark"?void 0:`${o==="small"?"1px":"2px"} solid ${m(t.palette.text.primary,.8)}`,"&::after":{position:"absolute",display:"block",content:'""',top:0,left:0,width:"100%",height:"100%",borderRadius:"50%",boxShadow:["inset 0 -0.10em 0 0 rgba(0, 0, 0, 0.15)","inset 0px 0.10em 0px 0px rgba(255, 255, 255, 0.4)","inset 0px 0.9em 0px -0.4em rgba(255, 255, 255, 0.1)"].join(",")}},borderTheme:{borderColor:t.palette.text.primary,borderStyle:"solid",color:t.palette.text.primary}})),x=({className:t,badge:o,size:r="small"})=>{const s=b({color:"color"in o.options?o.options.color:void 0,size:r});if(o.variant===i.Status){const e=o.options;return a(c,{className:t,size:r,status:e.status})}if(o.variant===i.Medal){const e=o.options;return a(d,{className:n(t,e.color?s.root:s.borderTheme),size:r,label:`L${e.level}`})}return a(l,{})};export{x as LevelBadge};
2
2
  //# sourceMappingURL=LevelBadge.esm.js.map
@@ -1,6 +1,6 @@
1
- import{MarkdownContent as a}from"@backstage/core-components";import{makeStyles as s}from"@material-ui/core";import i from"classnames";import t from"react";import{BaseBadge as m}from"./BaseBadge.esm.js";const n=`
1
+ import{jsx as t}from"react/jsx-runtime";import{makeStyles as a}from"@material-ui/core";import i from"classnames";import{SoundcheckMarkdownContent as s}from"../SoundcheckMarkdownContent/SoundcheckMarkdownContent.esm.js";import"@backstage/core-components";import"react";import"react-markdown";import"rehype-raw";import"remark-gfm";import{BaseBadge as m}from"./BaseBadge.esm.js";const d=`
2
2
  **No Level / Not Certified**
3
3
 
4
4
  Pass all checks within a level to earn a certification badge.
5
- `,c=s(e=>({root:{borderColor:e.palette.text.disabled,borderStyle:"dashed",color:e.palette.text.disabled}})),d=({className:e,showTooltip:o,size:l="small"})=>{const r=c();return t.createElement(m,{className:i(e,r.root),size:l,label:"NL",tooltip:o?t.createElement(a,{content:n}):null})};export{d as NoLevelBadge};
5
+ `,p=a(o=>({root:{borderColor:o.palette.text.disabled,borderStyle:"dashed",color:o.palette.text.disabled}})),c=({className:o,showTooltip:e,size:r="small"})=>{const l=p();return t(m,{className:i(o,l.root),size:r,label:"NL",tooltip:e?t(s,{content:d}):null})};export{c as NoLevelBadge};
6
6
  //# sourceMappingURL=NoLevelBadge.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as t}from"@material-ui/core";import s from"classnames";import l from"react";import{BaseBadge as m}from"./BaseBadge.esm.js";const a=t({root:{borderColor:"currentColor",borderStyle:"solid"}}),c=({className:o,size:r="small"})=>{const e=a();return l.createElement(m,{className:s(o,e.root),size:r,label:"\u25BA"})};export{c as PlaylistBadge};
1
+ import{jsx as t}from"react/jsx-runtime";import{makeStyles as s}from"@material-ui/core";import l from"classnames";import{BaseBadge as m}from"./BaseBadge.esm.js";const a=s({root:{borderColor:"currentColor",borderStyle:"solid"}}),i=({className:o,size:r="small"})=>{const e=a();return t(m,{className:l(o,e.root),size:r,label:"\u25BA"})};export{i as PlaylistBadge};
2
2
  //# sourceMappingURL=PlaylistBadge.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as g,useTheme as k,Box as C,Tooltip as E}from"@material-ui/core";import b from"@material-ui/icons/Check";import y from"@material-ui/icons/Close";import N from"@material-ui/icons/PriorityHigh";import v from"@mui/icons-material/QuestionMark";import z from"classnames";import e from"react";import{CircularProgressbarWithChildren as m,buildStyles as c}from"react-circular-progressbar";import"react-circular-progressbar/dist/styles.css";const u=24,W=15,d=i=>i==="small"?1:2,w=g(i=>({root:{position:"relative",display:"inline-block",alignItems:"center",justifyContent:"center",cursor:"default",lineHeight:0,width:({size:t})=>`${u*d(t)}px`,height:({size:t})=>`${u*d(t)}px`},icon:{color:i.palette.background.default,fontSize:({size:t})=>W*d(t)}})),x=({className:i,status:t,size:h="small"})=>{const s=w({size:h}),n=k();if(!t)return e.createElement(e.Fragment,null);const a=t.passed+t.failed+t.warning+t.error+t.notReported,r=a?t.passed/a*100:0,o=a?t.warning/a*100:0,l=a?(t.failed+t.error)/a*100:0,p=100-r-o-l,f=e.createElement(C,{className:z(i,s.root),role:"img","aria-label":`${r} badge`},e.createElement(m,{value:r,strokeWidth:r<100?15:50,styles:c({pathColor:n.palette.success.main,trailColor:"transparent",strokeLinecap:"butt",rotation:0})},r===100&&e.createElement(b,{className:s.icon}),r<100&&e.createElement(m,{value:o,strokeWidth:o<100?15:50,styles:c({pathColor:n.palette.warning.main,trailColor:"transparent",strokeLinecap:"butt",rotation:r/100})},o===100&&e.createElement(N,{className:s.icon}),o<100&&e.createElement(m,{value:l,strokeWidth:l<100?15:50,styles:c({pathColor:n.palette.error.main,trailColor:"transparent",strokeLinecap:"butt",rotation:(r+o)/100})},l===100&&e.createElement(y,{className:s.icon}),l<100&&e.createElement(m,{value:p,strokeWidth:p<100?15:50,styles:c({pathColor:n.palette.divider,trailColor:"transparent",strokeLinecap:"butt",rotation:(r+o+l)/100})},p===100&&e.createElement(v,{className:s.icon}))))));return e.createElement(E,{title:`${t.passed}/${a} checks passed (${Math.round(r)}%)`},f)};export{x as StatusBadge};
1
+ import{jsx as e,Fragment as k,jsxs as d}from"react/jsx-runtime";import{makeStyles as C,useTheme as b,Box as y,Tooltip as $}from"@material-ui/core";import z from"@material-ui/icons/Check";import N from"@material-ui/icons/Close";import v from"@material-ui/icons/PriorityHigh";import x from"@mui/icons-material/QuestionMark";import W from"classnames";import{CircularProgressbarWithChildren as p,buildStyles as c}from"react-circular-progressbar";import"react-circular-progressbar/dist/styles.css";const u=24,w=15,h=s=>s==="small"?1:2,L=C(s=>({root:{position:"relative",display:"inline-block",alignItems:"center",justifyContent:"center",cursor:"default",lineHeight:0,width:({size:t})=>`${u*h(t)}px`,height:({size:t})=>`${u*h(t)}px`},icon:{color:s.palette.background.default,fontSize:({size:t})=>w*h(t)}})),S=({className:s,status:t,size:f="small"})=>{const l=L({size:f}),n=b();if(!t)return e(k,{});const o=t.passed+t.failed+t.warning+t.error+t.notReported,r=o?t.passed/o*100:0,a=o?t.warning/o*100:0,i=o?(t.failed+t.error)/o*100:0,m=100-r-a-i,g=e(y,{className:W(s,l.root),role:"img","aria-label":`${r} badge`,children:d(p,{value:r,strokeWidth:r<100?15:50,styles:c({pathColor:n.palette.success.main,trailColor:"transparent",strokeLinecap:"butt",rotation:0}),children:[r===100&&e(z,{className:l.icon}),r<100&&d(p,{value:a,strokeWidth:a<100?15:50,styles:c({pathColor:n.palette.warning.main,trailColor:"transparent",strokeLinecap:"butt",rotation:r/100}),children:[a===100&&e(v,{className:l.icon}),a<100&&d(p,{value:i,strokeWidth:i<100?15:50,styles:c({pathColor:n.palette.error.main,trailColor:"transparent",strokeLinecap:"butt",rotation:(r+a)/100}),children:[i===100&&e(N,{className:l.icon}),i<100&&e(p,{value:m,strokeWidth:m<100?15:50,styles:c({pathColor:n.palette.divider,trailColor:"transparent",strokeLinecap:"butt",rotation:(r+a+i)/100}),children:m===100&&e(x,{className:l.icon})})]})]})]})});return e($,{title:`${t.passed}/${o} checks passed (${Math.round(r)}%)`,children:g})};export{S as StatusBadge};
2
2
  //# sourceMappingURL=StatusBadge.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as D,Grid as n,Checkbox as u,Typography as d,TextField as C,FormControl as N,InputLabel as T,Select as v,MenuItem as y}from"@material-ui/core";import e,{useState as p,useEffect as L}from"react";import{MIN_TIME_UNIT_VALUE as x,MAX_TIME_UNIT_VALUE as k}from"../../utils/time.esm.js";import{TimeUnit as M}from"../Frequency/types.esm.js";import{VALID_TIME_UNITS as S,toTimeUnit as U}from"../Frequency/util.esm.js";import"../Frequency/FrequencyComponent.esm.js";const _=D(l=>({duration:{display:"flex",gap:l.spacing(2),alignItems:"flex-start",marginTop:l.spacing(1)},durationInput:{paddingLeft:0},label:{cursor:"pointer"},font:{fontSize:l.typography.body1.fontSize},inputLabel:{color:`${l.palette.text.primary} !important`},inputLabelDisabled:{color:l.palette.action.disabled},unitInput:{minWidth:100},unitMenu:{backgroundColor:l.palette.background.paper}})),F=({value:l,onChange:m,disabled:r,errors:c})=>{const i=_(),[t,o]=p(l),[b,h]=p(`${l.value}`);L(()=>{m&&m(t)},[t,m]);const g=a=>{o({...t,enabled:a.target.checked,hasDuration:a.target.checked&&t.hasDuration})},E=a=>{o({...t,hasDuration:a.target.checked})},f=a=>{h(a.target.value);const s=parseInt(a.target.value,10);o({...t,value:isNaN(s)?0:s})},I=a=>{o({...t,unit:U(a.target.value)??M.Hours})};return e.createElement(n,{container:!0,direction:"column",className:i.font},e.createElement(n,{item:!0},e.createElement(n,{container:!0,alignItems:"center"},e.createElement(n,{item:!0},e.createElement(u,{id:"enableCaching",disabled:r,checked:t.enabled,onChange:g,"data-testid":"enableCaching"})),e.createElement(n,{item:!0},e.createElement("label",{htmlFor:"enableCaching",className:i.label},"Enable caching")))),e.createElement(n,{item:!0},e.createElement(n,{container:!0,alignItems:"flex-start"},e.createElement(n,{item:!0},e.createElement(u,{id:"hasDuration",disabled:r||!t.enabled,checked:t.enabled&&t.hasDuration,onChange:E,"data-testid":"hasDuration"})),e.createElement(n,{item:!0,className:i.durationInput},e.createElement(d,{variant:"body1"},e.createElement("label",{htmlFor:"hasDuration",className:t.enabled?i.label:""},"Duration")),e.createElement(d,{variant:"caption"},"Set the maximum length that fact data is cached for"),e.createElement(n,{className:i.duration},e.createElement(n,{item:!0},e.createElement(C,{id:"every",type:"number",label:"For",name:"for",disabled:r||!t.hasDuration,value:b,onChange:f,error:!!c?.message,helperText:c?.message,inputProps:{min:x,max:k},"data-testid":"forTextField",InputLabelProps:{className:r||!t.hasDuration?i.inputLabelDisabled:i.inputLabel}})),e.createElement(n,{item:!0},e.createElement(N,null,e.createElement(T,{className:r||!t.hasDuration?i.inputLabelDisabled:i.inputLabel,id:"duration-unit"},"Unit"),e.createElement(v,{labelId:"duration-unit",disabled:r||!t.hasDuration,value:t.unit,onChange:I,"data-testid":"unitSelect",inputProps:{className:i.unitInput},MenuProps:{classes:{list:i.unitMenu}}},S.map(a=>e.createElement(y,{key:a,value:a},a))))))))))};export{F as CacheConfigComponent};
1
+ import{jsxs as o,jsx as a}from"react/jsx-runtime";import{makeStyles as N,Grid as n,Checkbox as h,Typography as m,TextField as x,FormControl as T,InputLabel as v,Select as L,MenuItem as y}from"@material-ui/core";import{useState as p,useEffect as k}from"react";import{MIN_TIME_UNIT_VALUE as M,MAX_TIME_UNIT_VALUE as U}from"../../utils/time.esm.js";import{TimeUnit as S}from"../Frequency/types.esm.js";import{VALID_TIME_UNITS as _,toTimeUnit as E}from"../Frequency/util.esm.js";import"../Frequency/FrequencyComponent.esm.js";const F=N(l=>({duration:{display:"flex",gap:l.spacing(2),alignItems:"flex-start",marginTop:l.spacing(1)},durationInput:{paddingLeft:0},label:{cursor:"pointer"},font:{fontSize:l.typography.body1.fontSize},inputLabel:{color:`${l.palette.text.primary} !important`},inputLabelDisabled:{color:l.palette.action.disabled},unitInput:{minWidth:100},unitMenu:{backgroundColor:l.palette.background.paper}})),A=({value:l,onChange:s,disabled:r,errors:c})=>{const i=F(),[e,d]=p(l),[b,g]=p(`${l.value}`);k(()=>{s&&s(e)},[e,s]);const f=t=>{d({...e,enabled:t.target.checked,hasDuration:t.target.checked&&e.hasDuration})},I=t=>{d({...e,hasDuration:t.target.checked})},D=t=>{g(t.target.value);const u=parseInt(t.target.value,10);d({...e,value:isNaN(u)?0:u})},C=t=>{d({...e,unit:E(t.target.value)??S.Hours})};return o(n,{container:!0,direction:"column",className:i.font,children:[a(n,{item:!0,children:o(n,{container:!0,alignItems:"center",children:[a(n,{item:!0,children:a(h,{id:"enableCaching",disabled:r,checked:e.enabled,onChange:f,"data-testid":"enableCaching"})}),a(n,{item:!0,children:a("label",{htmlFor:"enableCaching",className:i.label,children:"Enable caching"})})]})}),a(n,{item:!0,children:o(n,{container:!0,alignItems:"flex-start",children:[a(n,{item:!0,children:a(h,{id:"hasDuration",disabled:r||!e.enabled,checked:e.enabled&&e.hasDuration,onChange:I,"data-testid":"hasDuration"})}),o(n,{item:!0,className:i.durationInput,children:[a(m,{variant:"body1",children:a("label",{htmlFor:"hasDuration",className:e.enabled?i.label:"",children:"Duration"})}),a(m,{variant:"caption",children:"Set the maximum length that fact data is cached for"}),o(n,{className:i.duration,children:[a(n,{item:!0,children:a(x,{id:"every",type:"number",label:"For",name:"for",disabled:r||!e.hasDuration,value:b,onChange:D,error:!!c?.message,helperText:c?.message,inputProps:{min:M,max:U},"data-testid":"forTextField",InputLabelProps:{className:r||!e.hasDuration?i.inputLabelDisabled:i.inputLabel}})}),a(n,{item:!0,children:o(T,{children:[a(v,{className:r||!e.hasDuration?i.inputLabelDisabled:i.inputLabel,id:"duration-unit",children:"Unit"}),a(L,{labelId:"duration-unit",disabled:r||!e.hasDuration,value:e.unit,onChange:C,"data-testid":"unitSelect",inputProps:{className:i.unitInput},MenuProps:{classes:{list:i.unitMenu}},children:_.map(t=>a(y,{value:t,children:t},t))})]})})]})]})]})})]})};export{A as CacheConfigComponent};
2
2
  //# sourceMappingURL=CacheConfigComponent.esm.js.map
@@ -1,2 +1,2 @@
1
- import t,{useEffect as s}from"react";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import{CampaignFormProvider as r,useCampaignFormContext as c}from"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import{useCreateCampaign as g}from"../../hooks/campaigns/useCreateCampaign.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as u}from"../../hooks/useNavigateBack.esm.js";import{campaignsPageRouteRef as l}from"../../routes.esm.js";import{CampaignForm as f}from"../CampaignForm/CampaignForm.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as C}from"../SoundcheckHeader/useHeader.esm.js";const d=()=>{const{setIsLoading:e}=c(),{mutateAsync:m,isLoading:o}=g();s(()=>{e(o)},[e,o]);const[a,i]=u(l),n=async p=>{await m(p,{onSuccess:i})};return C({title:"Create a Campaign",description:"Create, monitor, and manage software updates or system transitions.",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/campaigns"}),t.createElement(r,null,t.createElement(f,{onSave:n,onCancel:a}))},E=()=>t.createElement(r,null,t.createElement(d,null));export{E as CampaignCreatePage};
1
+ import{jsx as o}from"react/jsx-runtime";import{useEffect as s}from"react";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import{CampaignFormProvider as i,useCampaignFormContext as c}from"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import{useCreateCampaign as g}from"../../hooks/campaigns/useCreateCampaign.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as f}from"../../hooks/useNavigateBack.esm.js";import{campaignsPageRouteRef as d}from"../../routes.esm.js";import{CampaignForm as u}from"../CampaignForm/CampaignForm.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as C}from"../SoundcheckHeader/useHeader.esm.js";const l=()=>{const{setIsLoading:t}=c(),{mutateAsync:m,isLoading:r}=g();s(()=>{t(r)},[t,r]);const[a,e]=f(d),p=async n=>{await m(n,{onSuccess:e})};return C({title:"Create a Campaign",description:"Create, monitor, and manage software updates or system transitions.",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/campaigns"}),o(i,{children:o(u,{onSave:p,onCancel:a})})},h=()=>o(i,{children:o(l,{})});export{h as CampaignCreatePage};
2
2
  //# sourceMappingURL=CampaignCreatePage.esm.js.map
@@ -1,2 +1,2 @@
1
- import{Content as E}from"@backstage/core-components";import e from"react";import{FormProvider as k}from"react-hook-form";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import{useCampaignFormContext as y}from"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import L from"../../hooks/useFeatureFlag.esm.js";import{formStyles as x}from"../../utils/formStyles.esm.js";import{FormFilterSection as M}from"../FormFilterSection/FormFilterSection.esm.js";import{FormStepper as N}from"../FormStepper/FormStepper.esm.js";import{useCampaignForm as V}from"./hooks/useCampaignForm.esm.js";import{CampaignDetailsStep as v}from"./Steps/CampaignDetailsStep/CampaignDetailsStep.esm.js";import{CampaignTrackStep as A}from"./Steps/CampaignTrackStep.esm.js";import{CampaignMilestonesStep as D}from"./Steps/CampaignMilestonesStep.esm.js";import{StepNameMapping as O}from"./types/CampaignFormTypes.esm.js";import{CAMPAIGN_FIELDS as I}from"./utils/campaignFormUtils.esm.js";var c=(t=>(t.Details="Enter campaign details",t.Checks="Add checks",t.Entities="Choose the affected entities (Optional)",t.Milestones="Set campaign milestones",t))(c||{});const K=({onSave:t,onCancel:d,selectedCampaign:a})=>{const f=x(),{isLoading:r,isReadOnly:g}=y(),{formMethods:n,onSubmit:m,checkChips:S,checksLoading:u}=V(t,a),{getValues:C,control:i,formState:{errors:o},handleSubmit:l,trigger:h}=n,s=C(),F=s.detailsStep.startDate;L("debugMode")&&console.log(s);const p=[{label:"Enter campaign details",content:()=>e.createElement(v,{control:i,isLoading:r,disabled:!1,errors:o.detailsStep,startDate:F})},{label:"Add checks",content:()=>e.createElement(A,{control:i,isLoading:r||u,disabled:!1,errors:o.tracksStep,checkChips:S})},{label:"Choose the affected entities (Optional)",content:()=>e.createElement(M,{name:"filtersStep.filter",keyValueFilterName:"filtersStep.keyValueFilter",description:I.filter.description,excludeFilterName:"filtersStep.excludeFilter",excludeKeyValueFilterName:"filtersStep.excludeKeyValueFilter"})},{label:"Set campaign milestones",content:()=>e.createElement(D,{control:i,isLoading:r,disabled:!1,errors:o.milestonesStep})}],b=a?[...Array(p.length).keys()]:[0];return e.createElement(e.Fragment,null,e.createElement(E,{className:f.formWrapper},e.createElement(k,{...n},e.createElement("form",{onSubmit:l(m)},e.createElement(N,{onClose:d,handleSubmit:l,trigger:h,onSubmit:m,initialVisited:b,stepNameMap:O,steps:p,isLoading:r,isReadOnly:g,saveButtonText:"Save Campaign"})))))};export{K as CampaignForm,c as CampaignStepLabel};
1
+ import{jsx as e,Fragment as d}from"react/jsx-runtime";import{Content as b}from"@backstage/core-components";import{FormProvider as y}from"react-hook-form";import"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import{useCampaignFormContext as x}from"../../contexts/CampaignFormContext.esm.js";import"react";import"../../contexts/UserProvider.esm.js";import N from"../../hooks/useFeatureFlag.esm.js";import{formStyles as k}from"../../utils/formStyles.esm.js";import{FormFilterSection as M}from"../FormFilterSection/FormFilterSection.esm.js";import{FormStepper as L}from"../FormStepper/FormStepper.esm.js";import{useCampaignForm as V}from"./hooks/useCampaignForm.esm.js";import{CampaignDetailsStep as v}from"./Steps/CampaignDetailsStep/CampaignDetailsStep.esm.js";import{CampaignTrackStepNew as A}from"./Steps/CampaignTrackStepNew.esm.js";import{CampaignMilestonesStep as D}from"./Steps/CampaignMilestonesStep.esm.js";import{StepNameMapping as E}from"./types/CampaignFormTypes.esm.js";import{CAMPAIGN_FIELDS as O}from"./utils/campaignFormUtils.esm.js";var c=(t=>(t.Details="Enter campaign details",t.Checks="Add checks",t.Entities="Choose the affected entities (Optional)",t.Milestones="Set campaign milestones",t))(c||{});const I=({onSave:t,onCancel:f,selectedCampaign:r})=>{const g=k(),{isLoading:i,isReadOnly:S}=x(),{formMethods:o,onSubmit:a}=V(t,r),{getValues:u,control:n,formState:{errors:m},handleSubmit:l,trigger:C}=o,s=u(),h=s.detailsStep.startDate;N("debugMode")&&console.log(s);const p=[{label:"Enter campaign details",content:()=>e(v,{control:n,isLoading:i,disabled:!1,errors:m.detailsStep,startDate:h})},{label:"Add checks",content:()=>e(d,{children:e(A,{})})},{label:"Choose the affected entities (Optional)",content:()=>e(M,{name:"filtersStep.filter",keyValueFilterName:"filtersStep.keyValueFilter",description:O.filter.description,excludeFilterName:"filtersStep.excludeFilter",excludeKeyValueFilterName:"filtersStep.excludeKeyValueFilter"})},{label:"Set campaign milestones",content:()=>e(D,{control:n,isLoading:i,disabled:!1,errors:m.milestonesStep})}],F=r?[...Array(p.length).keys()]:[0];return e(d,{children:e(b,{className:g.formWrapper,children:e(y,{...o,children:e("form",{onSubmit:l(a),children:e(L,{onClose:f,handleSubmit:l,trigger:C,onSubmit:a,initialVisited:F,stepNameMap:E,steps:p,isLoading:i,isReadOnly:S,saveButtonText:"Save Campaign"})})})})})};export{I as CampaignForm,c as CampaignStepLabel};
2
2
  //# sourceMappingURL=CampaignForm.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as m,Typography as s,TextField as p}from"@material-ui/core";import e from"react";import{Controller as d}from"react-hook-form";import{CAMPAIGN_FIELDS as c}from"../../utils/campaignFormUtils.esm.js";const g=m(t=>({helperText:{marginLeft:0},container:{marginBottom:t.spacing(2)}})),f=({control:t,errors:r,isLoading:n,disabled:a})=>{const i=g(),{description:o}=c.details;return e.createElement("div",{className:i.container},e.createElement(s,{variant:"subtitle2"},o.name),e.createElement(d,{name:"detailsStep.description",control:t,defaultValue:"",render:({field:l})=>e.createElement(p,{...l,FormHelperTextProps:{className:i.helperText},variant:"outlined",multiline:!0,minRows:4,fullWidth:!0,placeholder:o.placeholder,disabled:n||a,type:"text",margin:"dense",error:!!r?.description,helperText:r?.description?.message})}))};export{f as CampaignDescriptionField};
1
+ import{jsxs as s,jsx as r}from"react/jsx-runtime";import{makeStyles as d,Typography as p,TextField as m}from"@material-ui/core";import{Controller as c}from"react-hook-form";import{CAMPAIGN_FIELDS as g}from"../../utils/campaignFormUtils.esm.js";const h=d(e=>({helperText:{marginLeft:0},container:{marginBottom:e.spacing(2)}})),x=({control:e,errors:t,isLoading:n,disabled:l})=>{const i=h(),{description:o}=g.details;return s("div",{className:i.container,children:[r(p,{variant:"subtitle2",children:o.name}),r(c,{name:"detailsStep.description",control:e,defaultValue:"",render:({field:a})=>r(m,{...a,FormHelperTextProps:{className:i.helperText},variant:"outlined",multiline:!0,minRows:4,fullWidth:!0,placeholder:o.placeholder,disabled:n||l,type:"text",margin:"dense",error:!!t?.description,helperText:t?.description?.message})})]})};export{x as CampaignDescriptionField};
2
2
  //# sourceMappingURL=CampaignDescriptionField.esm.js.map
@@ -1,2 +1,2 @@
1
- import e from"react";import{CampaignDescriptionField as n}from"./CampaignDescriptionField.esm.js";import{CampaignNameField as l}from"./CampaignNameField.esm.js";import{CampaignOwnerField as m}from"./CampaignOwnerField.esm.js";import{CampaignScheduleField as d}from"./CampaignScheduleField.esm.js";import{CampaignSupportChannelField as s}from"./CampaignSupportChannelField.esm.js";const p=({control:r,errors:o,isLoading:i,disabled:a,startDate:t})=>e.createElement(e.Fragment,null,e.createElement(l,{control:r,errors:o,isLoading:i,disabled:a}),e.createElement(n,{control:r,errors:o,isLoading:i,disabled:a}),e.createElement(m,{control:r,errors:o,isLoading:i,disabled:a}),e.createElement(s,{control:r,errors:o,isLoading:i,disabled:a}),e.createElement(d,{control:r,errors:o,isLoading:i,disabled:a,startDate:t}));export{p as CampaignDetailsStep};
1
+ import{jsxs as s,Fragment as e,jsx as a}from"react/jsx-runtime";import{CampaignDescriptionField as l}from"./CampaignDescriptionField.esm.js";import{CampaignDraftField as t}from"./CampaignDraftField.esm.js";import{CampaignNameField as m}from"./CampaignNameField.esm.js";import{CampaignOwnerField as p}from"./CampaignOwnerField.esm.js";import{CampaignScheduleField as g}from"./CampaignScheduleField.esm.js";import{CampaignSupportChannelField as c}from"./CampaignSupportChannelField.esm.js";const f=({control:r,errors:d,isLoading:o,disabled:i,startDate:n})=>s(e,{children:[a(m,{control:r,errors:d,isLoading:o,disabled:i}),a(l,{control:r,errors:d,isLoading:o,disabled:i}),a(p,{control:r,errors:d,isLoading:o,disabled:i}),a(c,{control:r,errors:d,isLoading:o,disabled:i}),a(g,{control:r,errors:d,isLoading:o,disabled:i,startDate:n}),a(t,{control:r,isLoading:o,disabled:i})]});export{f as CampaignDetailsStep};
2
2
  //# sourceMappingURL=CampaignDetailsStep.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsxs as t,jsx as e}from"react/jsx-runtime";import{Typography as l,FormControlLabel as d,Checkbox as c}from"@material-ui/core";import{makeStyles as s}from"@material-ui/core/styles";import{Controller as m}from"react-hook-form";import{FormFieldLabel as f}from"../../../FormFieldLabel/FormFieldLabel.esm.js";const p=s(r=>({container:{display:"flex",flexDirection:"column"},draftInput:{display:"flex",flexDirection:"row",gap:r.spacing(1)}})),h=({control:r,isLoading:i,disabled:n})=>{const o=p();return t("div",{className:o.container,children:[t("div",{children:[e(f,{title:"Mark as draft"}),e(l,{variant:"caption",children:"Enable to hide this campaign from Soundcheck entity views."})]}),e("div",{className:o.draftInput,children:e(m,{name:"detailsStep.draft",control:r,render:({field:a})=>e(d,{label:"Draft",disabled:i||n,control:e(c,{checked:a.value,onChange:a.onChange})})})})]})};export{h as CampaignDraftField};
2
+ //# sourceMappingURL=CampaignDraftField.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as i,Typography as s,TextField as p}from"@material-ui/core";import e from"react";import{Controller as d}from"react-hook-form";import{CAMPAIGN_FIELDS as c}from"../../utils/campaignFormUtils.esm.js";const g=i(t=>({helperText:{marginLeft:0},container:{marginBottom:t.spacing(2)}})),f=({control:t,errors:a,isLoading:n,disabled:o})=>{const l=g(),{name:r}=c.details;return e.createElement("div",{className:l.container},e.createElement(s,{variant:"subtitle2"},r.name),e.createElement(d,{name:"detailsStep.name",control:t,defaultValue:"",render:({field:m})=>e.createElement(p,{...m,FormHelperTextProps:{className:l.helperText},variant:"outlined",fullWidth:!0,placeholder:r.placeholder,disabled:n||o,type:"text",margin:"dense",error:!!a?.name,helperText:a?.name?.message??r.helperText})}))};export{f as CampaignNameField};
1
+ import{jsxs as m,jsx as t}from"react/jsx-runtime";import{makeStyles as s,Typography as d,TextField as p}from"@material-ui/core";import{Controller as c}from"react-hook-form";import{CAMPAIGN_FIELDS as h}from"../../utils/campaignFormUtils.esm.js";const x=s(e=>({helperText:{marginLeft:0},container:{marginBottom:e.spacing(2)}})),g=({control:e,errors:a,isLoading:l,disabled:n})=>{const o=x(),{name:r}=h.details;return m("div",{className:o.container,children:[t(d,{variant:"subtitle2",children:r.name}),t(c,{name:"detailsStep.name",control:e,defaultValue:"",render:({field:i})=>t(p,{...i,FormHelperTextProps:{className:o.helperText},variant:"outlined",fullWidth:!0,placeholder:r.placeholder,disabled:l||n,type:"text",margin:"dense",error:!!a?.name,helperText:a?.name?.message??r.helperText})})]})};export{g as CampaignNameField};
2
2
  //# sourceMappingURL=CampaignNameField.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as u,Typography as n}from"@material-ui/core";import{uniqBy as g}from"lodash";import e from"react";import"../../../../contexts/TrackFormContext.esm.js";import"../../../../contexts/CheckFormContext.esm.js";import"../../../../contexts/CampaignFormContext.esm.js";import{useLoggedInUser as E}from"../../../../contexts/UserProvider.esm.js";import{useGroupOptions as v}from"../../../../hooks/groups/useGroupOptions.esm.js";import{FormControlledAutocomplete as y}from"../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"react-hook-form";import"../../../ListboxVirtualized/ListboxVirtualized.esm.js";import{useLabelOptions as b}from"../../../FormControlledAutocomplete/useLabelOptions.esm.js";import{CAMPAIGN_FIELDS as h}from"../../utils/campaignFormUtils.esm.js";const w=u(t=>({helperText:{marginLeft:0},selectField:{display:"flex",flexDirection:"column",gap:t.spacing(1),marginBottom:t.spacing(2)},fieldContainer:{width:"250px"}})),x=({control:t,errors:l,isLoading:p,disabled:s})=>{const o=w(),{owner:i}=h.details,{options:c}=v(),{user:d,userEntityRef:a}=E();let r=g(c?.map(m=>({value:m.ref,label:m.name})),"value");const f=b(r);return a&&(r=[{value:a,label:d?.metadata.name},...r]),e.createElement("div",{className:o.selectField},e.createElement("header",null,e.createElement(n,{variant:"subtitle2"},i.name),e.createElement(n,{variant:"caption"},i.description)),e.createElement("div",{className:o.fieldContainer},e.createElement(y,{name:"detailsStep.ownerEntityRef",control:t,placeholder:"Owner",freeSolo:!1,disabled:s||p,helperText:l?.ownerEntityRef?.message??void 0,...f})))};export{x as CampaignOwnerField};
1
+ import{jsxs as l,jsx as o}from"react/jsx-runtime";import{makeStyles as g,Typography as m}from"@material-ui/core";import{uniqBy as h}from"lodash";import"../../../../contexts/TrackFormContext.esm.js";import"../../../../contexts/CheckFormContext.esm.js";import"../../../../contexts/CampaignFormContext.esm.js";import"react";import{useLoggedInUser as v}from"../../../../contexts/UserProvider.esm.js";import{useGroupOptions as x}from"../../../../hooks/groups/useGroupOptions.esm.js";import{FormControlledAutocomplete as y}from"../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import"@material-ui/icons/CheckBox";import"@material-ui/icons/CheckBoxOutlineBlank";import"@material-ui/lab";import"react-hook-form";import"../../../ListboxVirtualized/ListboxVirtualized.esm.js";import{useLabelOptions as w}from"../../../FormControlledAutocomplete/useLabelOptions.esm.js";import{CAMPAIGN_FIELDS as b}from"../../utils/campaignFormUtils.esm.js";const C=g(e=>({helperText:{marginLeft:0},selectField:{display:"flex",flexDirection:"column",gap:e.spacing(1),marginBottom:e.spacing(2)},fieldContainer:{width:"250px"}})),F=({control:e,errors:p,isLoading:s,disabled:d})=>{const i=C(),{owner:t}=b.details,{options:c}=x(),{user:f,userEntityRef:n}=v();let r=h(c?.map(a=>({value:a.ref,label:a.name})),"value");const u=w(r);return n&&(r=[{value:n,label:f?.metadata.name},...r]),l("div",{className:i.selectField,children:[l("header",{children:[o(m,{variant:"subtitle2",children:t.name}),o(m,{variant:"caption",children:t.description})]}),o("div",{className:i.fieldContainer,children:o(y,{name:"detailsStep.ownerEntityRef",control:e,placeholder:"Owner",freeSolo:!1,disabled:d||s,helperText:p?.ownerEntityRef?.message??void 0,...u})})]})};export{F as CampaignOwnerField};
2
2
  //# sourceMappingURL=CampaignOwnerField.esm.js.map
@@ -1,2 +1,2 @@
1
- import h from"@date-io/luxon";import{makeStyles as N,Typography as m}from"@material-ui/core";import{KeyboardDatePicker as C}from"@material-ui/pickers/DatePicker";import{MuiPickersUtilsProvider as b}from"@material-ui/pickers/MuiPickersUtilsProvider";import e,{useState as i}from"react";import{Controller as D}from"react-hook-form";import{CAMPAIGN_FIELDS as k}from"../../utils/campaignFormUtils.esm.js";import{EndDateChips as F}from"./EndDateChips.esm.js";const S=N(t=>({helperText:{margin:t.spacing(.5,0)},selectFieldGroup:{display:"flex",flexDirection:"column",gap:t.spacing(2),marginBottom:t.spacing(2)},selectField:{display:"flex",flexDirection:"column",gap:t.spacing(1),padding:0},scheduleTitle:{fontWeight:"bold"},fieldContainer:{width:"250px"},select:{width:"100%",height:"100%",paddingRight:t.spacing(.5),"& button":{paddingTop:0,paddingBottom:0,"&:hover":{backgroundColor:"transparent"}}},dialog:{padding:0,"& [class*=MuiToolbar-root]":{backgroundColor:t.palette.background.paper,borderBottom:`1px solid ${t.palette.divider}`,"& [class*=MuiPickersToolbarText]":{color:t.palette.text.primary}},"& [class*=MuiDialogActions-root]":{borderTop:`1px solid ${t.palette.divider}`,padding:t.spacing(1),"& [class*=MuiButton-label]":{color:t.palette.text.primary}}}})),O=({control:t,errors:o,isLoading:n,disabled:s,startDate:x})=>{const a=S(),[v,d]=i(!1),[y,p]=i(!1),[E,T]=i(x),[P,g]=i(void 0),{startingDate:u,endingDate:f}=k.details;return e.createElement("div",{className:a.selectFieldGroup},e.createElement(m,{variant:"subtitle1",className:a.scheduleTitle},"Campaign schedule"),e.createElement("div",{className:a.selectField},e.createElement(m,{variant:"subtitle2"},u.name),e.createElement("div",{className:a.fieldContainer},e.createElement(D,{control:t,name:"detailsStep.startDate",render:({field:r})=>{const{ref:M,...c}=r;return e.createElement(b,{utils:h},e.createElement(C,{inputRef:r.ref,...c,format:"MMMM dd, yyyy",autoOk:!0,FormHelperTextProps:{className:a.helperText},inputVariant:"outlined",className:a.select,error:!!o?.startDate,helperText:o?.startDate?.message??void 0,onChange:l=>{T(l),r.onChange(l)},open:v,disabled:n||s,DialogProps:{PaperProps:{className:a.dialog}},margin:"dense",size:"small",InputProps:{readOnly:!0,placeholder:u.placeholder,onClick:()=>d(!0),className:a.select},onOpen:()=>d(!0),onClose:()=>d(!1)}))}}))),e.createElement("div",{className:a.selectField},e.createElement(m,{variant:"subtitle2"},f.name),e.createElement("div",{className:a.fieldContainer},e.createElement(D,{name:"detailsStep.targetCompletionDate",control:t,render:({field:r})=>{const{ref:M,...c}=r;return e.createElement(b,{utils:h},e.createElement(C,{inputRef:r.ref,...c,disablePast:!0,format:"MMMM dd, yyyy",autoOk:!0,FormHelperTextProps:{className:a.helperText},inputVariant:"outlined",className:a.select,error:!!o?.targetCompletionDate,helperText:o?.targetCompletionDate?.message??void 0,onChange:l=>{r.onChange(l)},open:y,disabled:n||s,DialogProps:{PaperProps:{className:a.dialog}},InputProps:{readOnly:!0,placeholder:f.placeholder,onClick:()=>p(!0),className:a.select,margin:"dense"},margin:"dense",onOpen:()=>{g(void 0),p(!0)},onClose:()=>p(!1),ToolbarComponent:l=>e.createElement(F,{props:l,isLoading:n,disabled:!!s,startDate:E,selectedDuration:P,setSelectedDuration:g})}))}}))))};export{O as CampaignScheduleField};
1
+ import{jsxs as m,jsx as a}from"react/jsx-runtime";import C from"@date-io/luxon";import{makeStyles as F,Typography as g}from"@material-ui/core";import{KeyboardDatePicker as x}from"@material-ui/pickers/DatePicker";import{MuiPickersUtilsProvider as D}from"@material-ui/pickers/MuiPickersUtilsProvider";import{useState as l}from"react";import{Controller as b}from"react-hook-form";import{CAMPAIGN_FIELDS as S}from"../../utils/campaignFormUtils.esm.js";import{EndDateChips as O}from"./EndDateChips.esm.js";const B=F(e=>({helperText:{margin:e.spacing(.5,0)},selectFieldGroup:{display:"flex",flexDirection:"column",gap:e.spacing(2),marginBottom:e.spacing(2)},selectField:{display:"flex",flexDirection:"column",gap:e.spacing(1),padding:0},scheduleTitle:{fontWeight:"bold"},fieldContainer:{width:"250px"},select:{width:"100%",height:"100%",paddingRight:e.spacing(.5),"& button":{paddingTop:0,paddingBottom:0,"&:hover":{backgroundColor:"transparent"}}},dialog:{padding:0,"& [class*=MuiToolbar-root]":{backgroundColor:e.palette.background.paper,borderBottom:`1px solid ${e.palette.divider}`,"& [class*=MuiPickersToolbarText]":{color:e.palette.text.primary}},"& [class*=MuiDialogActions-root]":{borderTop:`1px solid ${e.palette.divider}`,padding:e.spacing(1),"& [class*=MuiButton-label]":{color:e.palette.text.primary}}}})),I=({control:e,errors:i,isLoading:s,disabled:n,startDate:y})=>{const t=B(),[v,d]=l(!1),[T,p]=l(!1),[P,M]=l(y),[N,u]=l(void 0),{startingDate:h,endingDate:f}=S.details;return m("div",{className:t.selectFieldGroup,children:[a(g,{variant:"subtitle1",className:t.scheduleTitle,children:"Campaign schedule"}),m("div",{className:t.selectField,children:[a(g,{variant:"subtitle2",children:h.name}),a("div",{className:t.fieldContainer,children:a(b,{control:e,name:"detailsStep.startDate",render:({field:o})=>{const{ref:k,...c}=o;return a(D,{utils:C,children:a(x,{inputRef:o.ref,...c,format:"MMMM dd, yyyy",autoOk:!0,FormHelperTextProps:{className:t.helperText},inputVariant:"outlined",className:t.select,error:!!i?.startDate,helperText:i?.startDate?.message??void 0,onChange:r=>{M(r),o.onChange(r)},open:v,disabled:s||n,DialogProps:{PaperProps:{className:t.dialog}},margin:"dense",size:"small",InputProps:{readOnly:!0,placeholder:h.placeholder,onClick:()=>d(!0),className:t.select},onOpen:()=>d(!0),onClose:()=>d(!1)})})}})})]}),m("div",{className:t.selectField,children:[a(g,{variant:"subtitle2",children:f.name}),a("div",{className:t.fieldContainer,children:a(b,{name:"detailsStep.targetCompletionDate",control:e,render:({field:o})=>{const{ref:k,...c}=o;return a(D,{utils:C,children:a(x,{inputRef:o.ref,...c,disablePast:!0,format:"MMMM dd, yyyy",autoOk:!0,FormHelperTextProps:{className:t.helperText},inputVariant:"outlined",className:t.select,error:!!i?.targetCompletionDate,helperText:i?.targetCompletionDate?.message??void 0,onChange:r=>{o.onChange(r)},open:T,disabled:s||n,DialogProps:{PaperProps:{className:t.dialog}},InputProps:{readOnly:!0,placeholder:f.placeholder,onClick:()=>p(!0),className:t.select,margin:"dense"},margin:"dense",onOpen:()=>{u(void 0),p(!0)},onClose:()=>p(!1),ToolbarComponent:r=>a(O,{props:r,isLoading:s,disabled:!!n,startDate:P,selectedDuration:N,setSelectedDuration:u})})})}})})]})]})};export{I as CampaignScheduleField};
2
2
  //# sourceMappingURL=CampaignScheduleField.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as p,Typography as o}from"@material-ui/core";import e from"react";import{FormTextInput as m}from"../../../FormTextInput/FormTextInput.esm.js";import{CAMPAIGN_FIELDS as s}from"../../utils/campaignFormUtils.esm.js";const d=p(t=>({fieldContainer:{width:"250px"},container:{marginBottom:t.spacing(2)}})),c=({control:t,errors:a,isLoading:i,disabled:l})=>{const n=d(),{support:r}=s.details;return e.createElement("div",{className:n.container},e.createElement(o,{variant:"subtitle2"},r.name),e.createElement(o,{variant:"caption"},r.description),e.createElement("div",{className:n.fieldContainer},e.createElement(m,{name:"detailsStep.supportChannel",control:t,placeholder:r.placeholder,disabled:l||i,variant:"outlined",margin:"dense",error:a?.supportChannel,helperText:a?.supportChannel?.message??void 0})))};export{c as CampaignSupportChannelField};
1
+ import{jsxs as l,jsx as e}from"react/jsx-runtime";import{makeStyles as s,Typography as i}from"@material-ui/core";import{FormTextInput as d}from"../../../FormTextInput/FormTextInput.esm.js";import{CAMPAIGN_FIELDS as m}from"../../utils/campaignFormUtils.esm.js";const c=s(r=>({fieldContainer:{width:"250px"},container:{marginBottom:r.spacing(2)}})),h=({control:r,errors:t,isLoading:a,disabled:p})=>{const o=c(),{support:n}=m.details;return l("div",{className:o.container,children:[e(i,{variant:"subtitle2",children:n.name}),e(i,{variant:"caption",children:n.description}),e("div",{className:o.fieldContainer,children:e(d,{name:"detailsStep.supportChannel",control:r,placeholder:n.placeholder,disabled:p||a,variant:"outlined",margin:"dense",error:t?.supportChannel,helperText:t?.supportChannel?.message??void 0})})]})};export{h as CampaignSupportChannelField};
2
2
  //# sourceMappingURL=CampaignSupportChannelField.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as d,Grid as n,Chip as h}from"@material-ui/core";import{DatePickerToolbar as g}from"@material-ui/pickers/DatePicker/DatePickerToolbar";import{DateTime as b}from"luxon";import a from"react";const u=d(e=>({chip:{backgroundColor:e.palette.primary.main,color:e.palette.primary.contrastText},chips:{width:"310px",marginLeft:e.spacing(1)},chipContainer:{paddingBottom:"0 !important",paddingTop:"0 !important",marginBottom:e.spacing(.75)},noPadding:{padding:e.spacing(0)}})),v=[{value:{days:7},label:"1 week"},{value:{days:14},label:"2 weeks"},{value:{month:1},label:"1 month"},{value:{months:3},label:"3 months"},{value:{months:6},label:"6 months"},{value:{year:1},label:"1 year"}],y=({props:e,startDate:l,selectedDuration:i,setSelectedDuration:m,isLoading:s,disabled:c})=>{const t=u();return a.createElement(n,{container:!0,direction:"column"},a.createElement(n,{item:!0,className:t.noPadding},a.createElement(g,{...e})),a.createElement(n,{container:!0,item:!0,className:t.chips},v.map(({value:o,label:r})=>a.createElement(n,{key:r,item:!0,className:t.chipContainer},a.createElement(h,{label:r,className:i===o?t.chip:void 0,color:i===o?"primary":void 0,size:"small",onClick:()=>{if(l){m(o);const p=b.fromISO(l.toString()).plus(o);e.onChange(p,!1)}},disabled:s||c})))))};export{y as EndDateChips};
1
+ import{jsxs as d,jsx as e}from"react/jsx-runtime";import{makeStyles as h,Grid as t,Chip as g}from"@material-ui/core";import{DatePickerToolbar as b}from"@material-ui/pickers/DatePicker/DatePickerToolbar";import{DateTime as u}from"luxon";const v=h(a=>({chip:{backgroundColor:a.palette.primary.main,color:a.palette.primary.contrastText},chips:{width:"310px",marginLeft:a.spacing(1)},chipContainer:{paddingBottom:"0 !important",paddingTop:"0 !important",marginBottom:a.spacing(.75)},noPadding:{padding:a.spacing(0)}})),y=[{value:{days:7},label:"1 week"},{value:{days:14},label:"2 weeks"},{value:{month:1},label:"1 month"},{value:{months:3},label:"3 months"},{value:{months:6},label:"6 months"},{value:{year:1},label:"1 year"}],f=({props:a,startDate:n,selectedDuration:l,setSelectedDuration:s,isLoading:m,disabled:c})=>{const i=v();return d(t,{container:!0,direction:"column",children:[e(t,{item:!0,className:i.noPadding,children:e(b,{...a})}),e(t,{container:!0,item:!0,className:i.chips,children:y.map(({value:o,label:r})=>e(t,{item:!0,className:i.chipContainer,children:e(g,{label:r,className:l===o?i.chip:void 0,color:l===o?"primary":void 0,size:"small",onClick:()=>{if(n){s(o);const p=u.fromISO(n.toString()).plus(o);a.onChange(p,!1)}},disabled:m||c})},r))})]})};export{f as EndDateChips};
2
2
  //# sourceMappingURL=EndDateChips.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as b,Divider as y,Grid as p,Typography as m,TextField as E}from"@material-ui/core";import N from"@material-ui/icons/Remove";import e from"react";import{useFieldArray as C,Controller as u}from"react-hook-form";import{NoBorderButton as x}from"../../NoBorderButton/NoBorderButton.esm.js";import{CAMPAIGN_FIELDS as F}from"../utils/campaignFormUtils.esm.js";const S=b(a=>({milestoneHeader:{display:"flex",alignItems:"center",marginBottom:a.spacing(1)},divider:{margin:"20px 0"},helperText:{marginLeft:0},selectContainer:{width:"250px"},section:{marginBottom:a.spacing(2)}})),R=({control:a,errors:n,isLoading:s,disabled:l})=>{const r=S(),{name:o,description:d,passrate:c}=F.milestones,{fields:f,append:g,remove:h}=C({control:a,name:"milestonesStep.milestones"}),v=()=>g({name:"",description:"",passRate:"0"});return e.createElement(e.Fragment,null,f.map((T,t)=>e.createElement("div",{key:T.id},t!==0&&e.createElement(y,{className:r.divider}),e.createElement(p,{container:!0,spacing:1,className:r.milestoneHeader},e.createElement(p,{item:!0,xs:!0},e.createElement(m,{variant:"subtitle2"},o.name),e.createElement(u,{name:`milestonesStep.milestones.${t}.name`,control:a,defaultValue:"",render:({field:i})=>e.createElement(E,{...i,FormHelperTextProps:{className:r.helperText},variant:"outlined",fullWidth:!0,placeholder:o.placeholder,disabled:s||l,type:"text",margin:"dense",error:!!n?.milestones?.[t]?.name,helperText:n?.milestones?.[t]?.name?.message??o.helperText})})),t!==0&&!l&&e.createElement(p,{item:!0},e.createElement(x,{label:"Remove Milestone",startIcon:e.createElement(N,null),onClick:()=>h(t),disabled:l}))),e.createElement("div",{className:r.section},e.createElement(m,{variant:"subtitle2"},d.name),e.createElement(m,{variant:"caption"},d.description),e.createElement(u,{name:`milestonesStep.milestones.${t}.description`,control:a,defaultValue:"",render:({field:i})=>e.createElement(E,{...i,FormHelperTextProps:{className:r.helperText},variant:"outlined",multiline:!0,minRows:4,fullWidth:!0,placeholder:d.placeholder,disabled:s||l,type:"text",margin:"dense",error:!!n?.milestones?.[t]?.description,helperText:n?.milestones?.[t]?.description?.message})})),e.createElement("div",{className:r.section},e.createElement(m,{variant:"subtitle2"},c.name),e.createElement(m,{variant:"caption"},c.description),e.createElement("div",{className:r.selectContainer},e.createElement(u,{name:`milestonesStep.milestones.${t}.passRate`,control:a,defaultValue:"",render:({field:i})=>e.createElement(E,{...i,FormHelperTextProps:{className:r.helperText},variant:"outlined",fullWidth:!0,placeholder:c.placeholder,disabled:s||l,type:"number",margin:"dense",error:!!n?.milestones?.[t]?.passRate,helperText:n?.milestones?.[t]?.passRate?.message??void 0})}))))),e.createElement(x,{label:"Add Milestone",onClick:()=>v(),disabled:l}))};export{R as CampaignMilestonesStep};
1
+ import{jsxs as l,Fragment as y,jsx as e}from"react/jsx-runtime";import{makeStyles as S,Divider as C,Grid as h,Typography as o,TextField as x}from"@material-ui/core";import F from"@material-ui/icons/Remove";import{useFieldArray as R,Controller as u}from"react-hook-form";import{NoBorderButton as f}from"../../NoBorderButton/NoBorderButton.esm.js";import{CAMPAIGN_FIELDS as H}from"../utils/campaignFormUtils.esm.js";const A=S(s=>({milestoneHeader:{display:"flex",alignItems:"center",marginBottom:s.spacing(1)},divider:{margin:"20px 0"},helperText:{marginLeft:0},selectContainer:{width:"250px"},section:{marginBottom:s.spacing(2)}})),B=({control:s,errors:n,isLoading:d,disabled:t})=>{const r=A(),{name:m,description:p,passrate:c}=H.milestones,{fields:g,append:v,remove:T}=R({control:s,name:"milestonesStep.milestones"}),b=()=>v({name:"",description:"",passRate:"0"});return l(y,{children:[g.map((N,i)=>l("div",{children:[i!==0&&e(C,{className:r.divider}),l(h,{container:!0,spacing:1,className:r.milestoneHeader,children:[l(h,{item:!0,xs:!0,children:[e(o,{variant:"subtitle2",children:m.name}),e(u,{name:`milestonesStep.milestones.${i}.name`,control:s,defaultValue:"",render:({field:a})=>e(x,{...a,FormHelperTextProps:{className:r.helperText},variant:"outlined",fullWidth:!0,placeholder:m.placeholder,disabled:d||t,type:"text",margin:"dense",error:!!n?.milestones?.[i]?.name,helperText:n?.milestones?.[i]?.name?.message??m.helperText})})]}),i!==0&&!t&&e(h,{item:!0,children:e(f,{label:"Remove Milestone",startIcon:e(F,{}),onClick:()=>T(i),disabled:t})})]}),l("div",{className:r.section,children:[e(o,{variant:"subtitle2",children:p.name}),e(o,{variant:"caption",children:p.description}),e(u,{name:`milestonesStep.milestones.${i}.description`,control:s,defaultValue:"",render:({field:a})=>e(x,{...a,FormHelperTextProps:{className:r.helperText},variant:"outlined",multiline:!0,minRows:4,fullWidth:!0,placeholder:p.placeholder,disabled:d||t,type:"text",margin:"dense",error:!!n?.milestones?.[i]?.description,helperText:n?.milestones?.[i]?.description?.message})})]}),l("div",{className:r.section,children:[e(o,{variant:"subtitle2",children:c.name}),e(o,{variant:"caption",children:c.description}),e("div",{className:r.selectContainer,children:e(u,{name:`milestonesStep.milestones.${i}.passRate`,control:s,defaultValue:"",render:({field:a})=>e(x,{...a,FormHelperTextProps:{className:r.helperText},variant:"outlined",fullWidth:!0,placeholder:c.placeholder,disabled:d||t,type:"number",margin:"dense",error:!!n?.milestones?.[i]?.passRate,helperText:n?.milestones?.[i]?.passRate?.message??void 0})})})]})]},N.id)),e(f,{label:"Add Milestone",onClick:()=>b(),disabled:t})]})};export{B as CampaignMilestonesStep};
2
2
  //# sourceMappingURL=CampaignMilestonesStep.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{jsxs as t,jsx as r}from"react/jsx-runtime";import{Box as i,Typography as C}from"@material-ui/core";import{get as x}from"lodash";import{useCallback as l}from"react";import{useFormContext as g,useFieldArray as v}from"react-hook-form";import{CheckSelection as S}from"../../CheckSelection/CheckSelection.esm.js";import{CheckPreview as u}from"../../CheckSelection/CheckPreview.esm.js";import{CheckPreviewProvider as w}from"../../CheckSelection/CheckPreviewContext.esm.js";import{FormFieldLabel as p}from"../../FormFieldLabel/FormFieldLabel.esm.js";const y=()=>{const{control:s,formState:{errors:d},watch:h}=g(),{append:c,remove:m}=v({control:s,name:"tracksStep.checks"}),n=x(d,"tracksStep.checks"),o=h("tracksStep.checks").map(e=>e.id),k=l(e=>{e&&!o.includes(e.id)&&c({id:e.id,name:e.name??"",description:e.description??""})},[c,o]),f=l(e=>{const a=o.indexOf(e);a>-1&&m(a)},[m,o]);return t(i,{children:[r(C,{variant:"body2",children:"Select relevant checks for your campaign below."}),r(w,{children:t(i,{display:"flex",alignItems:"top",gridGap:16,marginTop:1,maxHeight:"75vh",minHeight:300,children:[t(i,{flex:1,children:[r(p,{title:"Checks"}),r(S,{currentSectionCheckIds:o,addCheckToSelection:k,removeCheck:f,error:!!n,helperText:n?.message})]}),t(i,{flex:1,children:[r(p,{title:"Check Preview"}),r(u,{})]})]})})]})};export{y as CampaignTrackStepNew};
2
+ //# sourceMappingURL=CampaignTrackStepNew.esm.js.map
@@ -1,2 +1,2 @@
1
- import{zodResolver as c}from"@hookform/resolvers/zod";import{useMemo as u}from"react";import{useForm as f}from"react-hook-form";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as h}from"../../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{useGetChecksMap as g}from"../../../hooks/tracks/useGetChecksMap.esm.js";import{DEFAULT_FORM_VALUES as C}from"../utils/campaignFormUtils.esm.js";import{campaignFormSchema as d}from"../utils/validation.esm.js";import{mapCampaignToFormValues as l,mapCampaignFormDataToCampaignInput as F}from"./utils.esm.js";const M=(r,o)=>{const a=u(()=>o?l(o):C,[o]),e=f({defaultValues:a,mode:"onChange",resolver:c(d)}),{showModal:t}=h(),{checksMap:i,checkChips:p,checksLoading:s}=g();return{formMethods:e,onSubmit:async m=>{if(!await t({title:"Save Campaign",message:`Are you sure you want to save campaign: ${m.detailsStep.name}?`,error:!1}))return;const n=F(m,o,i);r(n)},checkChips:p,checksLoading:s}};export{M as useCampaignForm};
1
+ import{zodResolver as s}from"@hookform/resolvers/zod";import{useMemo as n}from"react";import{useForm as u}from"react-hook-form";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as f}from"../../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{useGetChecksMap as c}from"../../../hooks/tracks/useGetChecksMap.esm.js";import{DEFAULT_FORM_VALUES as g}from"../utils/campaignFormUtils.esm.js";import{campaignFormSchema as l}from"../utils/validation.esm.js";import{mapCampaignToFormValues as C,mapCampaignFormDataToCampaignInput as d}from"./utils.esm.js";const F=(r,o)=>{const a=n(()=>o?C(o):g,[o]),t=u({defaultValues:a,mode:"onChange",resolver:s(l)}),{showModal:e}=f(),{checksMap:i}=c();return{formMethods:t,onSubmit:async m=>{if(!await e({title:"Save Campaign",message:`Are you sure you want to save campaign: ${m.detailsStep.name}?`,error:!1}))return;const p=d(m,o,i);r(p)}}};export{F as useCampaignForm};
2
2
  //# sourceMappingURL=useCampaignForm.esm.js.map
@@ -1,2 +1,2 @@
1
- import{v4 as C}from"uuid";import{mapInputFilterToFormFilters as d,mapCatalogFilterToFormKeyValueFilters as u}from"../../Filter/utils.esm.js";import"../../Filter/FilterComponent.esm.js";import{mapTrackFormToInput as S}from"../../TrackForm/utils/useTrackForm.esm.js";const h=({name:l,ownerEntityRef:a,description:p,targetCompletionDate:o,supportChannel:i,milestones:s,startDate:r,track:t})=>({detailsStep:{name:l,description:p,ownerEntityRef:a,supportChannel:i,startDate:r,targetCompletionDate:o},tracksStep:{checks:t?.levels?.[0].checks.map(e=>({id:e.id,name:e.name??e.id,description:e.description}))},filtersStep:{filter:d(t.filter),keyValueFilter:u(t.filter),excludeFilter:d(t.exclude),excludeKeyValueFilter:u(t.exclude)},milestonesStep:{milestones:s.map(e=>({id:Number(e.id),name:e.name,description:e.description,passRate:e.targetPercent.toString()}))}}),D=(l,a,p)=>{const{tracksStep:{checks:o},detailsStep:{name:i,description:s,ownerEntityRef:r,supportChannel:t,startDate:e,targetCompletionDate:m},filtersStep:n,milestonesStep:{milestones:F}}=l,c=S({detailsStep:{name:`${i}`,description:`The checks for the ${i} campaign.`,ownerEntityRef:r},levelsStep:{levels:[{name:"Level 1",checks:o,description:""}]},filtersStep:{filter:n.filter,keyValueFilter:n.keyValueFilter,excludeFilter:n.excludeFilter,excludeKeyValueFilter:n.excludeKeyValueFilter}},p??{},a?.track);return{id:a?.id??C(),track:{...c,type:"campaign"},name:i,description:s,ownerEntityRef:r,supportChannel:t,startDate:e,targetCompletionDate:m,milestones:F.map(({id:f,name:k,description:g,passRate:y})=>({id:f,trackId:c.id,name:k,description:g,targetPercent:parseInt(y,10),targetCompletionDate:m}))}};export{D as mapCampaignFormDataToCampaignInput,h as mapCampaignToFormValues};
1
+ import{v4 as S}from"uuid";import{mapInputFilterToFormFilters as d,mapCatalogFilterToFormKeyValueFilters as u}from"../../Filter/utils.esm.js";import"../../Filter/FilterComponent.esm.js";import{mapTrackFormToInput as h}from"../../TrackForm/utils/useTrackForm.esm.js";const D=({name:l,ownerEntityRef:r,description:p,targetCompletionDate:o,supportChannel:a,milestones:s,startDate:i,track:t})=>({detailsStep:{name:l,description:p,ownerEntityRef:r,supportChannel:a,startDate:i,targetCompletionDate:o,draft:t.draft??!1},tracksStep:{checks:t?.levels?.[0].checks.map(e=>({id:e.id,name:e.name??e.id,description:e.description}))},filtersStep:{filter:d(t.filter),keyValueFilter:u(t.filter),excludeFilter:d(t.exclude),excludeKeyValueFilter:u(t.exclude)},milestonesStep:{milestones:s.map(e=>({id:Number(e.id),name:e.name,description:e.description,passRate:e.targetPercent.toString()}))}}),x=(l,r,p)=>{const{tracksStep:{checks:o},detailsStep:{name:a,description:s,ownerEntityRef:i,supportChannel:t,startDate:e,targetCompletionDate:m,draft:f},filtersStep:n,milestonesStep:{milestones:F}}=l,c=h({detailsStep:{name:`${a}`,description:`The checks for the ${a} campaign.`,ownerEntityRef:i,draft:f},levelsStep:{levels:[{name:"Level 1",checks:o,description:""}]},filtersStep:{filter:n.filter,keyValueFilter:n.keyValueFilter,excludeFilter:n.excludeFilter,excludeKeyValueFilter:n.excludeKeyValueFilter}},p??{},r?.track);return{id:r?.id??S(),track:{...c,type:"campaign"},name:a,description:s,ownerEntityRef:i,supportChannel:t,startDate:e,targetCompletionDate:m,milestones:F.map(({id:k,name:g,description:y,passRate:C})=>({id:k,trackId:c.id,name:g,description:y,targetPercent:parseInt(C,10),targetCompletionDate:m}))}};export{x as mapCampaignFormDataToCampaignInput,D as mapCampaignToFormValues};
2
2
  //# sourceMappingURL=utils.esm.js.map
@@ -1,3 +1,3 @@
1
- import{emptyFilters as e,emptyKeyValueFilters as t}from"../../Filter/types.esm.js";import{CAMPAIGN_NAME_MAX_LENGTH as a,MILESTONE_NAME_MAX_LENGTH as i}from"./validation.esm.js";const n={detailsStep:{name:"",description:"",ownerEntityRef:"",supportChannel:"",startDate:null,targetCompletionDate:null},tracksStep:{checks:[]},filtersStep:{filter:e(),keyValueFilter:t(),excludeFilter:e(),excludeKeyValueFilter:t()},milestonesStep:{milestones:[{name:"",description:"",passRate:"0"}]}},l={details:{name:{name:"Campaign name",helperText:`Max ${a} characters`,placeholder:"Example: Check for latest version of javascript and Readme files"},description:{name:"Campaign description",placeholder:"Example: Check for the latest versions of JavaScript and README files to meet this quarter's quality standards."},owner:{name:"Campaign owner",description:"Add a team as the owner of this Campaign."},support:{name:"Support channel (Optional)",description:"Set up a Slack channel for notifications.",placeholder:"Channel name"},startingDate:{name:"Starting date",placeholder:"Starting date"},endingDate:{name:"Ending date",placeholder:"Ending date"}},milestones:{name:{name:"Milestone name",helperText:`Max ${i} characters`,placeholder:"Example: 80% pass rate"},description:{name:"Milestone description",description:"Provide a detailed description of this milestone, outlining its objectives.",placeholder:"Example: The track in my campaign expects a pass rate of 80% or above"},passrate:{name:"Milestone pass rate",description:"Enter the pass rate that your tracks have to meet.",placeholder:"Example: 80%"}},filter:{description:`Use the filters below to narrow the scope of the Campaign. Only Entities that match the selected include and exclude filters will be monitored. Exclude filters must be used with with an include filter.
1
+ import{emptyFilters as e,emptyKeyValueFilters as t}from"../../Filter/types.esm.js";import{CAMPAIGN_NAME_MAX_LENGTH as a,MILESTONE_NAME_MAX_LENGTH as i}from"./validation.esm.js";const n={detailsStep:{name:"",description:"",ownerEntityRef:"",supportChannel:"",startDate:null,targetCompletionDate:null,draft:!1},tracksStep:{checks:[]},filtersStep:{filter:e(),keyValueFilter:t(),excludeFilter:e(),excludeKeyValueFilter:t()},milestonesStep:{milestones:[{name:"",description:"",passRate:"0"}]}},l={details:{name:{name:"Campaign name",helperText:`Max ${a} characters`,placeholder:"Example: Check for latest version of javascript and Readme files"},description:{name:"Campaign description",placeholder:"Example: Check for the latest versions of JavaScript and README files to meet this quarter's quality standards."},owner:{name:"Campaign owner",description:"Add a team as the owner of this Campaign."},support:{name:"Support channel (Optional)",description:"Set up a Slack channel for notifications.",placeholder:"Channel name"},startingDate:{name:"Starting date",placeholder:"Starting date"},endingDate:{name:"Ending date",placeholder:"Ending date"}},milestones:{name:{name:"Milestone name",helperText:`Max ${i} characters`,placeholder:"Example: 80% pass rate"},description:{name:"Milestone description",description:"Provide a detailed description of this milestone, outlining its objectives.",placeholder:"Example: The track in my campaign expects a pass rate of 80% or above"},passrate:{name:"Milestone pass rate",description:"Enter the pass rate that your tracks have to meet.",placeholder:"Example: 80%"}},filter:{description:`Use the filters below to narrow the scope of the Campaign. Only Entities that match the selected include and exclude filters will be monitored. Exclude filters must be used with with an include filter.
2
2
  For example, selecting an include filter of 'Kind' as 'Component' and an exclude filter of 'Type' as 'Service' will select all entities with kind Component where type is NOT Service.`}};export{l as CAMPAIGN_FIELDS,n as DEFAULT_FORM_VALUES};
3
3
  //# sourceMappingURL=campaignFormUtils.esm.js.map