@spotify/backstage-plugin-soundcheck 0.12.11 → 0.14.0

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 (325) hide show
  1. package/CHANGELOG.md +63 -0
  2. package/alpha/package.json +1 -1
  3. package/dist/alpha/pages.esm.js +1 -1
  4. package/dist/alpha.d.ts +1 -1
  5. package/dist/api.esm.js +1 -1
  6. package/dist/components/Badges/BaseBadge.esm.js +1 -1
  7. package/dist/components/Badges/CampaignBadge.esm.js +1 -1
  8. package/dist/components/Badges/CertificationBadge.esm.js +1 -1
  9. package/dist/components/Badges/NoLevelBadge.esm.js +5 -1
  10. package/dist/components/Badges/PlaylistBadge.esm.js +1 -1
  11. package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +2 -0
  12. package/dist/components/CampaignDetailsPage/CampaignChecks.esm.js +2 -0
  13. package/dist/components/CampaignDetailsPage/CampaignDetailRow.esm.js +2 -0
  14. package/dist/components/CampaignDetailsPage/CampaignDetails.esm.js +2 -0
  15. package/dist/components/CampaignDetailsPage/CampaignDetailsPage.esm.js +2 -0
  16. package/dist/components/CampaignDetailsPage/CampaignMilestones.esm.js +2 -0
  17. package/dist/components/CampaignDetailsPage/CampaignProgress.esm.js +2 -0
  18. package/dist/components/CampaignDetailsPage/CampaignResultsTable.esm.js +2 -0
  19. package/dist/components/CampaignForm/CampaignForm.esm.js +2 -0
  20. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignDescriptionField.esm.js +2 -0
  21. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignDetailsStep.esm.js +2 -0
  22. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignNameField.esm.js +2 -0
  23. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +2 -0
  24. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignScheduleField.esm.js +2 -0
  25. package/dist/components/CampaignForm/Steps/CampaignDetailsStep/CampaignSupportChannelField.esm.js +2 -0
  26. package/dist/components/CampaignForm/Steps/CampaignMilestonesStep.esm.js +2 -0
  27. package/dist/components/CampaignForm/Steps/CampaignTrackStep.esm.js +2 -0
  28. package/dist/components/CampaignForm/hooks/useCampaignForm.esm.js +2 -0
  29. package/dist/components/CampaignForm/hooks/utils.esm.js +2 -0
  30. package/dist/components/CampaignForm/types/CampaignFormTypes.esm.js +2 -0
  31. package/dist/components/CampaignForm/utils/campaignFormUtils.esm.js +2 -0
  32. package/dist/components/CampaignForm/utils/validation.esm.js +2 -0
  33. package/dist/components/CampaignsPage/CampaignEmptyState.esm.js +2 -0
  34. package/dist/components/CampaignsPage/CampaignListPage/CampaignListPage.esm.js +2 -0
  35. package/dist/components/CampaignsPage/CampaignsPage.esm.js +1 -1
  36. package/dist/components/CampaignsPage/EditCampaignView.esm.js +2 -0
  37. package/dist/components/CertificationAccordion/CertificationAccordion.esm.js +1 -1
  38. package/dist/components/CertificationSidebar/CertificationSummary.esm.js +1 -1
  39. package/dist/components/CertificationSidebar/Check.esm.js +1 -1
  40. package/dist/components/CertificationsPage/CertificationsPage.esm.js +1 -1
  41. package/dist/components/CheckCard/CheckCard.esm.js +1 -1
  42. package/dist/components/CheckCreatePage/CheckCreatePage.esm.js +2 -0
  43. package/dist/components/CheckDetails/ResultStateBox.esm.js +1 -1
  44. package/dist/components/CheckDryRun/CheckDryRun.esm.js +2 -0
  45. package/dist/components/CheckDryRun/CheckDryRunContext.esm.js +2 -0
  46. package/dist/components/CheckDryRun/CheckDryRunDetails.esm.js +2 -0
  47. package/dist/components/CheckDryRun/CheckDryRunDialog.esm.js +2 -0
  48. package/dist/components/CheckDryRun/CheckDryRunDialogButton.esm.js +2 -0
  49. package/dist/components/CheckDryRun/checkDryRunUtils.esm.js +2 -0
  50. package/dist/components/CheckForm/CheckForm.esm.js +2 -0
  51. package/dist/components/CheckForm/FormFields/CheckDescriptionInput/CheckDescriptionInput.esm.js +2 -0
  52. package/dist/components/CheckForm/FormFields/CheckNameInput/CheckNameInput.esm.js +2 -0
  53. package/dist/components/CheckForm/FormFields/CheckPathResolverInput.esm.js +2 -0
  54. package/dist/components/CheckForm/FormFields/CheckScheduleSection/ScheduleSection.esm.js +2 -0
  55. package/dist/components/CheckForm/FormFields/PassFailMessageInput/PassFailMessageInput.esm.js +2 -0
  56. package/dist/components/CheckForm/FormFields/RuleInput/AddMenuButton.esm.js +2 -0
  57. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ConditionList.esm.js +2 -0
  58. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/FactValueDisplay.esm.js +2 -0
  59. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +2 -0
  60. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ValueListContext.esm.js +2 -0
  61. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/ValueListInput.esm.js +2 -0
  62. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/styles.esm.js +2 -0
  63. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/useRuleOptions.esm.js +2 -0
  64. package/dist/components/CheckForm/FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js +2 -0
  65. package/dist/components/CheckForm/FormFields/RuleInput/RuleInputBox.esm.js +2 -0
  66. package/dist/components/CheckForm/FormFields/RuleInput/useRuleInputHandlers.esm.js +2 -0
  67. package/dist/components/CheckForm/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +2 -0
  68. package/dist/components/CheckForm/Steps/CheckDetailsStep.esm.js +2 -0
  69. package/dist/components/CheckForm/Steps/CheckReviewStep.esm.js +2 -0
  70. package/dist/components/CheckForm/Steps/CheckRulesStep.esm.js +2 -0
  71. package/dist/components/CheckForm/types/CheckFormTypes.esm.js +2 -0
  72. package/dist/components/CheckForm/types/ExpressionType.esm.js +2 -0
  73. package/dist/components/CheckForm/types/Schedule.esm.js +2 -0
  74. package/dist/components/CheckForm/useCheckForm.esm.js +2 -0
  75. package/dist/components/CheckForm/utils/checkFormUtils.esm.js +2 -0
  76. package/dist/components/CheckForm/utils/validation.esm.js +2 -0
  77. package/dist/components/CheckIcon/CheckIcon.esm.js +1 -1
  78. package/dist/components/CheckPage/CheckDetailsView.esm.js +1 -1
  79. package/dist/components/CheckPage/CheckEditView.esm.js +1 -1
  80. package/dist/components/CheckPage/CheckInsightsPage.esm.js +1 -1
  81. package/dist/components/CheckPage/CheckStatusBar.esm.js +1 -1
  82. package/dist/components/CheckPage/CheckStatusHistoryChart.esm.js +1 -1
  83. package/dist/components/CheckPage/FilterBar/FilterBar.esm.js +1 -1
  84. package/dist/components/CheckTemplatesPage/CheckTemplatesPage.esm.js +2 -0
  85. package/dist/components/CheckTemplatesPage/TemplateCategory.esm.js +2 -0
  86. package/dist/components/ChecksPage/CheckListPage/CheckListPage.esm.js +1 -1
  87. package/dist/components/ChecksPage/ChecksPage.esm.js +1 -1
  88. package/dist/components/ChecksTab/ChecksTab.esm.js +1 -1
  89. package/dist/components/CollectorPage/CollectorPage.esm.js +1 -1
  90. package/dist/components/CollectorPage/Configurators/Common/CollectorOption.esm.js +2 -0
  91. package/dist/components/CollectorPage/Configurators/Common/FactCollectionConfig.esm.js +2 -0
  92. package/dist/components/CollectorPage/Configurators/Common/utils.esm.js +2 -0
  93. package/dist/components/CollectorPage/Configurators/Configurator.esm.js +1 -1
  94. package/dist/components/CollectorPage/Configurators/DataDog/DataDogConfigurator.esm.js +2 -0
  95. package/dist/components/CollectorPage/Configurators/DataDog/utils.esm.js +2 -0
  96. package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +1 -1
  97. package/dist/components/CollectorPage/Configurators/Github/utils.esm.js +1 -1
  98. package/dist/components/CollectorPage/Configurators/Jira/IssuesSearchFactDetailsComponent.esm.js +2 -0
  99. package/dist/components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js +2 -0
  100. package/dist/components/CollectorPage/Configurators/Jira/utils.esm.js +2 -0
  101. package/dist/components/CollectorPage/Configurators/Jira/validation.esm.js +2 -0
  102. package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js +2 -0
  103. package/dist/components/CollectorPage/Configurators/Kubernetes/utils.esm.js +2 -0
  104. package/dist/components/CollectorPage/Configurators/PagerDuty/IncidentsFactDetailsComponent.esm.js +2 -0
  105. package/dist/components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js +2 -0
  106. package/dist/components/CollectorPage/Configurators/PagerDuty/StatusesComponent.esm.js +2 -0
  107. package/dist/components/CollectorPage/Configurators/PagerDuty/utils.esm.js +2 -0
  108. package/dist/components/CollectorPage/Configurators/PagerDuty/validation.esm.js +2 -0
  109. package/dist/components/CollectorPage/Configurators/SCM/ExistsFactDetailsComponent.esm.js +2 -0
  110. package/dist/components/CollectorPage/Configurators/SCM/FactCollectionConfig.esm.js +2 -0
  111. package/dist/components/CollectorPage/Configurators/SCM/FactDetailsComponent.esm.js +2 -0
  112. package/dist/components/CollectorPage/Configurators/SCM/JsonFactDetailsComponent.esm.js +2 -0
  113. package/dist/components/CollectorPage/Configurators/SCM/RegexFactDetailsComponent.esm.js +2 -0
  114. package/dist/components/CollectorPage/Configurators/SCM/ScmConfigurator.esm.js +2 -0
  115. package/dist/components/CollectorPage/Configurators/SCM/utils.esm.js +2 -0
  116. package/dist/components/CollectorPage/Configurators/SCM/validation.esm.js +2 -0
  117. package/dist/components/CollectorPage/Configurators/SonarQube/MeasuresFactDetailsInput.esm.js +2 -0
  118. package/dist/components/CollectorPage/Configurators/SonarQube/MetricsInput.esm.js +2 -0
  119. package/dist/components/CollectorPage/Configurators/SonarQube/SonarQubeConfigurator.esm.js +2 -0
  120. package/dist/components/CollectorPage/Configurators/SonarQube/utils.esm.js +2 -0
  121. package/dist/components/CollectorPage/Configurators/SonarQube/validation.esm.js +2 -0
  122. package/dist/components/CollectorsPage/CollectorListPage/CollectorListPage.esm.js +1 -1
  123. package/dist/components/CollectorsPage/CollectorListPage/CollectorLogo.esm.js +1 -1
  124. package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +1 -1
  125. package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
  126. package/dist/components/DroppableInput/DroppableInput.esm.js +1 -1
  127. package/dist/components/EntitySoundcheckCard/Card.esm.js +1 -1
  128. package/dist/components/ExpandableSection/ExpandableSection.esm.js +2 -0
  129. package/dist/components/FactExplorer/FactExplorer.esm.js +2 -0
  130. package/dist/components/FactExplorer/FactExplorerContext.esm.js +2 -0
  131. package/dist/components/FactExplorer/FactExplorerDialog.esm.js +2 -0
  132. package/dist/components/FactExplorer/useFactOptions.esm.js +2 -0
  133. package/dist/components/Filter/EntityAutocompletePicker.esm.js +1 -1
  134. package/dist/components/Filter/FilterPreviewTable/EntityTableToolbar.esm.js +1 -1
  135. package/dist/components/Filter/FilterPreviewTable/FilterPreviewTable.esm.js +1 -1
  136. package/dist/components/Filter/utils.esm.js +1 -1
  137. package/dist/components/FooterButtons/FooterButtons.esm.js +1 -1
  138. package/dist/components/FormControlledAutocomplete/ControlledAutocomplete.esm.js +2 -0
  139. package/dist/components/FormControlledAutocomplete/FormControlledAutocomplete.esm.js +2 -0
  140. package/dist/components/FormControlledAutocomplete/useLabelOptions.esm.js +2 -0
  141. package/dist/components/FormFieldLabel/FormFieldLabel.esm.js +2 -0
  142. package/dist/components/FormStepper/FormStepper.esm.js +1 -1
  143. package/dist/components/FormattedPreview/FormattedPreview.esm.js +4 -0
  144. package/dist/components/Frequency/FrequencyComponent.esm.js +1 -1
  145. package/dist/components/LevelCard/LevelCard.esm.js +1 -1
  146. package/dist/components/ListboxVirtualized/ListboxVirtualized.esm.js +2 -0
  147. package/dist/components/MultiSelectFilter/MultiSelectFilter.esm.js +1 -1
  148. package/dist/components/OverviewPage/CampaignBanner/CampaignBanner.esm.js +2 -0
  149. package/dist/components/OverviewPage/{CampaignRow/useCampaignRowStyles.esm.js → CampaignBanner/useCampaignBannerStyles.esm.js} +2 -2
  150. package/dist/components/OverviewPage/OverviewPageContent.esm.js +1 -1
  151. package/dist/components/OverviewPage/OverviewTabs.esm.js +1 -1
  152. package/dist/components/OverviewTable/Cell/CheckCell.esm.js +2 -0
  153. package/dist/components/OverviewTable/Cell/CheckNameCell.esm.js +2 -0
  154. package/dist/components/OverviewTable/Cell/EntityRefCell.esm.js +2 -0
  155. package/dist/components/OverviewTable/Cell/HighestLevelBadge.esm.js +2 -0
  156. package/dist/components/OverviewTable/Cell/TrackCheckIndicator.esm.js +2 -0
  157. package/dist/components/OverviewTable/Cell/TrackLevelHeaderCell.esm.js +2 -0
  158. package/dist/components/OverviewTable/Cell/TrackTitleCell.esm.js +2 -0
  159. package/dist/components/OverviewTable/Cell/cellRenderer.esm.js +2 -0
  160. package/dist/components/OverviewTable/OverviewTable.esm.js +2 -0
  161. package/dist/components/OverviewTable/OverviewTableContent.esm.js +2 -0
  162. package/dist/components/OverviewTable/OverviewTableSkeleton.esm.js +2 -0
  163. package/dist/components/OverviewTable/ResultsTable.esm.js +2 -0
  164. package/dist/components/OverviewTable/ResultsTableHeader.esm.js +2 -0
  165. package/dist/components/OverviewTable/ResultsTableRow.esm.js +2 -0
  166. package/dist/components/OverviewTable/resultsTableUtils.esm.js +2 -0
  167. package/dist/components/OverviewTable/useWindowDimensions.esm.js +2 -0
  168. package/dist/components/PassRateTable/PassRateTable.esm.js +3 -1
  169. package/dist/components/QuickstartPage/HowDoIListItem.esm.js +2 -0
  170. package/dist/components/QuickstartPage/QuickStartChecksCard.esm.js +2 -0
  171. package/dist/components/QuickstartPage/QuickstartCardBase.esm.js +2 -0
  172. package/dist/components/QuickstartPage/QuickstartCollectorConfigurationsCard.esm.js +2 -0
  173. package/dist/components/QuickstartPage/QuickstartPage.esm.js +2 -0
  174. package/dist/components/QuickstartPage/QuickstartTracksCard.esm.js +2 -0
  175. package/dist/components/QuickstartPage/WelcomeHelpSection.esm.js +7 -0
  176. package/dist/components/QuickstartPage/WelcomeModal.esm.js +2 -0
  177. package/dist/components/QuickstartPage/styles.esm.js +2 -0
  178. package/dist/components/Router.esm.js +1 -1
  179. package/dist/components/RoutingPage/RoutingPage.esm.js +1 -1
  180. package/dist/components/SearchBar/SearchBar.esm.js +1 -1
  181. package/dist/components/SearchFilters/SearchFilters.esm.js +1 -1
  182. package/dist/components/SoundcheckDialog/SoundcheckDialog.esm.js +2 -0
  183. package/dist/components/SoundcheckHeader/Breadcrumbs.esm.js +2 -0
  184. package/dist/components/SoundcheckHeader/SoundcheckHeader.esm.js +2 -0
  185. package/dist/components/SoundcheckHeader/SoundcheckHeaderContext.esm.js +2 -0
  186. package/dist/components/SoundcheckHeader/headerUtil.esm.js +2 -0
  187. package/dist/components/SoundcheckHeader/useHeader.esm.js +2 -0
  188. package/dist/components/SummaryCard/SummaryCard.esm.js +1 -1
  189. package/dist/components/TechHealth/Filters/FacetFilter.esm.js +1 -1
  190. package/dist/components/TechHealth/Filters/FilterProvider.esm.js +1 -1
  191. package/dist/components/TechHealth/TechHealth.esm.js +1 -1
  192. package/dist/components/TechHealthTabs/ActionColumn.esm.js +1 -1
  193. package/dist/components/TechHealthTabs/CheckResultsTab/CheckResultsTab.esm.js +1 -1
  194. package/dist/components/TrackCreatePage/TrackCreatePage.esm.js +2 -0
  195. package/dist/components/{EditTrackPage/EditTrackPage.esm.js → TrackEditPage/TrackEditPage.esm.js} +2 -2
  196. package/dist/components/TrackEditPage/TrackEditView.esm.js +2 -0
  197. package/dist/components/TrackForm/Steps/LevelsStep/ChecksSection/ChecksSection.esm.js +1 -1
  198. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDescriptionInput/TrackDescriptionInput.esm.js +1 -1
  199. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackDocumentationUrlInput/TrackDocumentationUrlInput.esm.js +1 -1
  200. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackNameInput/TrackNameInput.esm.js +1 -1
  201. package/dist/components/TrackForm/Steps/TrackDetailsStep/TrackOwnerSelect/TrackOwnerSelect.esm.js +1 -1
  202. package/dist/components/TrackForm/TrackForm.esm.js +1 -1
  203. package/dist/components/TrackForm/utils/trackFormUtils.esm.js +1 -1
  204. package/dist/components/TrackForm/utils/validation.esm.js +1 -1
  205. package/dist/components/TrackPage/FilterBar/FilterBar.esm.js +1 -1
  206. package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTable.esm.js +1 -1
  207. package/dist/components/TrackPage/TrackEntitiesTable/TrackStatusChip.esm.js +1 -1
  208. package/dist/components/TrackPage/TrackEntitiesTable/columns.esm.js +1 -1
  209. package/dist/components/TrackPage/TrackEntitiesTable/utils.esm.js +1 -1
  210. package/dist/components/TrackPage/TrackPage.esm.js +1 -1
  211. package/dist/components/TrackPage/TrackProgressCard.esm.js +1 -1
  212. package/dist/components/TrackPage/utils.esm.js +1 -1
  213. package/dist/components/TracksPage/TrackListPage/TrackListPage.esm.js +1 -1
  214. package/dist/components/TracksPage/TracksPage.esm.js +1 -1
  215. package/dist/components/TracksTab/TracksTab.esm.js +1 -1
  216. package/dist/contexts/GenericFormContext.esm.js +1 -1
  217. package/dist/graphql/generated/index.esm.js +99 -33
  218. package/dist/hooks/catalog/useGetEntityFacets.esm.js +1 -1
  219. package/dist/hooks/catalog/useGetEntityRefs.esm.js +2 -0
  220. package/dist/hooks/checks/useCheckTemplates.esm.js +2 -0
  221. package/dist/hooks/checks/useExecuteCheck.esm.js +1 -1
  222. package/dist/hooks/checks/useGetChecks.esm.js +1 -1
  223. package/dist/hooks/collectors/useGetFactSchema.esm.js +1 -1
  224. package/dist/hooks/collectors/useUpdateCollectorConfig.esm.js +1 -1
  225. package/dist/hooks/facets/useFacetFilters.esm.js +1 -1
  226. package/dist/hooks/graphqlKeys.esm.js +1 -1
  227. package/dist/hooks/useGetFact.esm.js +2 -0
  228. package/dist/hooks/useGetPathResolvers.esm.js +2 -0
  229. package/dist/images/gitlab-rgb.svg +1 -0
  230. package/dist/images/gitlab-white.svg +1 -0
  231. package/dist/images/jira-rgb.svg +25 -0
  232. package/dist/images/jira-white.svg +25 -0
  233. package/dist/images/sonarqube-rgb.svg +14 -0
  234. package/dist/images/sonarqube-white.svg +14 -0
  235. package/dist/index.d.ts +1 -1
  236. package/dist/plugin.esm.js +1 -1
  237. package/dist/routes.esm.js +1 -1
  238. package/dist/utils/export.esm.js +3 -3
  239. package/dist/utils/formStyles.esm.js +1 -1
  240. package/dist/utils/validation.esm.js +1 -1
  241. package/package.json +20 -17
  242. package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignChecks.esm.js +0 -2
  243. package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignDetailRow.esm.js +0 -2
  244. package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignDetails.esm.js +0 -2
  245. package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignDetailsPage.esm.js +0 -2
  246. package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignMilestones.esm.js +0 -2
  247. package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignProgress.esm.js +0 -2
  248. package/dist/components/CampaignsTab/CampaignDetailsPage/CampaignResultsTable.esm.js +0 -2
  249. package/dist/components/CampaignsTab/CampaignListPage/CampaignListPage.esm.js +0 -2
  250. package/dist/components/CampaignsTab/MutateCampaignsViews/AddCampaignView.esm.js +0 -2
  251. package/dist/components/CampaignsTab/MutateCampaignsViews/CampaignForm.esm.js +0 -2
  252. package/dist/components/CampaignsTab/MutateCampaignsViews/CampaignFormDescription.esm.js +0 -2
  253. package/dist/components/CampaignsTab/MutateCampaignsViews/EditCampaignView.esm.js +0 -2
  254. package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignDescriptionField.esm.js +0 -2
  255. package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignDetailsStep.esm.js +0 -2
  256. package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignNameField.esm.js +0 -2
  257. package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignOwnerField.esm.js +0 -2
  258. package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignScheduleField/CampaignScheduleField.esm.js +0 -2
  259. package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignSupportChannelField.esm.js +0 -2
  260. package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignMilestonesStep.esm.js +0 -2
  261. package/dist/components/CampaignsTab/MutateCampaignsViews/Steps/CampaignTrackStep.esm.js +0 -2
  262. package/dist/components/CampaignsTab/MutateCampaignsViews/hooks/useCampaignForm.esm.js +0 -2
  263. package/dist/components/CampaignsTab/MutateCampaignsViews/hooks/utils.esm.js +0 -2
  264. package/dist/components/CampaignsTab/MutateCampaignsViews/types/CampaignFormTypes.esm.js +0 -2
  265. package/dist/components/CampaignsTab/MutateCampaignsViews/utils/campaignFormUtils.esm.js +0 -2
  266. package/dist/components/CampaignsTab/MutateCampaignsViews/utils/validation.esm.js +0 -2
  267. package/dist/components/ChecksPage/MutateCheckViews/AddCheckView.esm.js +0 -2
  268. package/dist/components/ChecksPage/MutateCheckViews/CheckForm/CheckForm.esm.js +0 -2
  269. package/dist/components/ChecksPage/MutateCheckViews/CheckForm/CheckFormDescription.esm.js +0 -2
  270. package/dist/components/ChecksPage/MutateCheckViews/CheckForm/Steps/CheckDetailsStep.esm.js +0 -2
  271. package/dist/components/ChecksPage/MutateCheckViews/CheckForm/Steps/CheckRulesStep.esm.js +0 -2
  272. package/dist/components/ChecksPage/MutateCheckViews/FormFields/CheckDescriptionInput/CheckDescriptionInput.esm.js +0 -2
  273. package/dist/components/ChecksPage/MutateCheckViews/FormFields/CheckNameInput/CheckNameInput.esm.js +0 -2
  274. package/dist/components/ChecksPage/MutateCheckViews/FormFields/CheckScheduleSection/ScheduleSection.esm.js +0 -2
  275. package/dist/components/ChecksPage/MutateCheckViews/FormFields/PassFailMessageInput/PassFailMessageInput.esm.js +0 -2
  276. package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/AddMenuButton.esm.js +0 -2
  277. package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/ConditionList.esm.js +0 -2
  278. package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/ControlledAutocomplete.esm.js +0 -2
  279. package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +0 -2
  280. package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/styles.esm.js +0 -2
  281. package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Conditions/useRuleOptions.esm.js +0 -2
  282. package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/Expressions/ExpressionTypeToggle.esm.js +0 -2
  283. package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/RuleInputBox.esm.js +0 -2
  284. package/dist/components/ChecksPage/MutateCheckViews/FormFields/RuleInput/useRuleInputHandlers.esm.js +0 -2
  285. package/dist/components/ChecksPage/MutateCheckViews/FormFields/TeamDetailsInput/TeamDetailsInput.esm.js +0 -2
  286. package/dist/components/ChecksPage/MutateCheckViews/hooks/useCheckForm.esm.js +0 -2
  287. package/dist/components/ChecksPage/MutateCheckViews/types/CheckFormTypes.esm.js +0 -2
  288. package/dist/components/ChecksPage/MutateCheckViews/types/ExpressionType.esm.js +0 -2
  289. package/dist/components/ChecksPage/MutateCheckViews/types/Schedule.esm.js +0 -2
  290. package/dist/components/ChecksPage/MutateCheckViews/utils/checkFormUtils.esm.js +0 -2
  291. package/dist/components/ChecksPage/MutateCheckViews/utils/validation.esm.js +0 -2
  292. package/dist/components/CollectorPage/Configurators/Github/FactCollectionConfig.esm.js +0 -2
  293. package/dist/components/EditTrackPage/EditTrackView.esm.js +0 -2
  294. package/dist/components/EmptyState/CampaignEmptyState.esm.js +0 -2
  295. package/dist/components/FormControlledSelect/FormControlledSelect.esm.js +0 -2
  296. package/dist/components/FullScreenDialog/FullScreenDialog.esm.js +0 -2
  297. package/dist/components/OverviewPage/CampaignRow/CampaignRow.esm.js +0 -2
  298. package/dist/components/OverviewPage/TableContent/TableContent.esm.js +0 -2
  299. package/dist/components/OverviewPage/TableContent/VirtualTableContent.esm.js +0 -2
  300. package/dist/components/ResultsTable/CheckCell/CheckCell.esm.js +0 -2
  301. package/dist/components/ResultsTable/HighestLevelBadge.esm.js +0 -2
  302. package/dist/components/ResultsTable/ProgramCheckIndicator.esm.js +0 -2
  303. package/dist/components/ResultsTable/ProgramCheckRow.esm.js +0 -2
  304. package/dist/components/ResultsTable/ProgramLevelRow.esm.js +0 -2
  305. package/dist/components/ResultsTable/ProgramTitleRow.esm.js +0 -2
  306. package/dist/components/ResultsTable/ResultsTableFooter.esm.js +0 -2
  307. package/dist/components/ResultsTable/skeletons/ResultsTableSkeleton.esm.js +0 -2
  308. package/dist/components/ResultsTable/virtualized/Cell.esm.js +0 -2
  309. package/dist/components/ResultsTable/virtualized/Row.esm.js +0 -2
  310. package/dist/components/ResultsTable/virtualized/VirtualizedResultsTable.esm.js +0 -2
  311. package/dist/components/ResultsTable/virtualized/virtualizedTableUtils.esm.js +0 -2
  312. package/dist/components/RoutingPage/Breadcrumbs.esm.js +0 -2
  313. package/dist/components/RoutingPage/utils.esm.js +0 -2
  314. package/dist/components/TracksPage/AddTrackView.esm.js +0 -2
  315. /package/dist/components/{CampaignsTab/MutateCampaignsViews/Steps/CampaignDetailsStep/CampaignScheduleField → CampaignForm/Steps/CampaignDetailsStep}/EndDateChips.esm.js +0 -0
  316. /package/dist/components/{CampaignsTab → CampaignsPage}/CampaignListPage/CampaignMetadata.esm.js +0 -0
  317. /package/dist/components/{CampaignsTab → CampaignsPage}/CampaignListPage/CampaignSummaryCard.esm.js +0 -0
  318. /package/dist/components/{CampaignsTab → CampaignsPage/CampaignListPage}/CampaignTypes.esm.js +0 -0
  319. /package/dist/components/{CampaignsTab/skeletons → CampaignsPage/CampaignListPage}/CampaignsOverviewSkeleton.esm.js +0 -0
  320. /package/dist/components/{CampaignsTab → CampaignsPage}/CampaignListPage/useArchiveConfirmationModal.esm.js +0 -0
  321. /package/dist/components/{ChecksPage/MutateCheckViews → CheckForm}/FormFields/RuleInput/Expressions/ExpressionBox.esm.js +0 -0
  322. /package/dist/components/{ChecksPage/MutateCheckViews → CheckForm}/types/Path.esm.js +0 -0
  323. /package/dist/components/OverviewPage/{CampaignRow → CampaignBanner}/utils.esm.js +0 -0
  324. /package/dist/components/OverviewPage/{skeletons/OverviewTabsSkeleton.esm.js → OverviewTabsSkeleton.esm.js} +0 -0
  325. /package/dist/components/{ResultsTable/CheckCell → OverviewTable/Cell}/CheckCellTooltip.esm.js +0 -0
@@ -1,2 +1,2 @@
1
- import{makeStyles as g,Grid as i,Typography as m}from"@material-ui/core";import e,{useState as x}from"react";import{DraggableChip as b}from"../../../../DraggableChip/DraggableChip.esm.js";import{LoadingIndicator as C}from"../../../../LoadingIndicator/LoadingIndicator.esm.js";import{SearchBar as E}from"../../../../SearchBar/SearchBar.esm.js";const f=g(t=>({columnHeader:{display:"flex",justifyContent:"space-between",alignItems:"center",paddingTop:0},subtitle:{color:t.palette.text.primary},chipContainer:{display:"flex",flexDirection:"column",alignItems:"flex-start",padding:t.spacing(1),gap:t.spacing(.75)}})),y=({chips:t,disabled:l,onContextMenuAdd:a})=>e.createElement(e.Fragment,null,t.map(n=>e.createElement(b,{disabled:l,key:n.id,chip:n,onContextMenuAdd:a?()=>a(n):void 0}))),S=()=>e.createElement(m,{variant:"body1",color:"textSecondary"},"There are no matches."),T=({isLoading:t,chips:l=[],disabled:a,label:n,onContextMenuAdd:d})=>{const o=f(),[c,p]=x(""),s=l.filter(u=>u.name.toLowerCase().includes(c.toLowerCase())),h=l.length>0||c;let r=null;return t?r=e.createElement(C,null):s.length>0?r=e.createElement(y,{disabled:a??!1,chips:s,onContextMenuAdd:d}):h&&(r=e.createElement(S,null)),e.createElement(i,{container:!0},e.createElement(i,{item:!0,xs:12,className:o.columnHeader},e.createElement(m,{variant:"subtitle1",className:o.subtitle},n??"Checks")),e.createElement(i,{item:!0,xs:12},e.createElement(E,{searchTerm:c,disabled:t||a,setSearchTerm:p,placeholder:"Search Available Checks",variant:"outlined",size:"small"})),e.createElement(i,{item:!0,className:o.chipContainer,xs:12},r))};export{T as ChecksSection};
1
+ import{makeStyles as g,Grid as i,Typography as m}from"@material-ui/core";import e,{useState as x}from"react";import{DraggableChip as b}from"../../../../DraggableChip/DraggableChip.esm.js";import{LoadingIndicator as C}from"../../../../LoadingIndicator/LoadingIndicator.esm.js";import{SearchBar as f}from"../../../../SearchBar/SearchBar.esm.js";const E=g(t=>({columnHeader:{display:"flex",justifyContent:"space-between",alignItems:"center",paddingTop:0},subtitle:{color:t.palette.text.primary},chipContainer:{display:"flex",flexDirection:"column",alignItems:"flex-start",padding:t.spacing(1),gap:t.spacing(.75)}})),y=({chips:t,disabled:l,onContextMenuAdd:a})=>e.createElement(e.Fragment,null,t.map(n=>e.createElement(b,{disabled:l,key:n.id,chip:n,onContextMenuAdd:a?()=>a(n):void 0}))),S=()=>e.createElement(m,{variant:"body1",color:"textSecondary"},"There are no matches."),T=({isLoading:t,chips:l=[],disabled:a,label:n,onContextMenuAdd:d})=>{const o=E(),[c,p]=x(""),s=l.filter(u=>u.name.toLowerCase().includes(c.toLowerCase())),h=l.length>0||c;let r=null;return t?r=e.createElement(C,null):s.length>0?r=e.createElement(y,{disabled:a??!1,chips:s,onContextMenuAdd:d}):h&&(r=e.createElement(S,null)),e.createElement(i,{container:!0},e.createElement(i,{item:!0,xs:12,className:o.columnHeader},e.createElement(m,{variant:"subtitle1",className:o.subtitle},n??"Checks")),e.createElement(i,{item:!0,xs:12},e.createElement(f,{searchTerm:c,disabled:t||a,setSearchTerm:p,placeholder:"Search for Available Checks",variant:"outlined",size:"small"})),e.createElement(i,{item:!0,className:o.chipContainer,xs:12},r))};export{T as ChecksSection};
2
2
  //# sourceMappingURL=ChecksSection.esm.js.map
@@ -1,2 +1,2 @@
1
- import d from"react";import{useFormContext as m}from"react-hook-form";import{FormMarkdownInput as s}from"../../../../FormMarkdownInput/FormMarkdownInput.esm.js";import"../../../utils/validation.esm.js";import{TRACK_FIELDS as a}from"../../../utils/trackFormUtils.esm.js";const c=({isLoading:e,disabled:r})=>{const{control:o,formState:{errors:t}}=m(),{name:i,description:n,placeholder:p}=a.description;return d.createElement(s,{name:"detailsStep.description",control:o,error:t.detailsStep?.description,label:i,description:n,placeholder:r?void 0:p,disabled:r||e})};export{c as TrackDescriptionInput};
1
+ import p from"react";import{useFormContext as m}from"react-hook-form";import{FormMarkdownInput as a}from"../../../../FormMarkdownInput/FormMarkdownInput.esm.js";import"../../../utils/validation.esm.js";import{TRACK_FIELDS as d}from"../../../utils/trackFormUtils.esm.js";const l=({isLoading:e,disabled:r})=>{const{control:o,formState:{errors:t}}=m(),{name:i,placeholder:n}=d.description;return p.createElement(a,{name:"detailsStep.description",control:o,error:t.detailsStep?.description,label:i,placeholder:r?void 0:n,disabled:r||e})};export{l as TrackDescriptionInput};
2
2
  //# sourceMappingURL=TrackDescriptionInput.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as d,Typography as r}from"@material-ui/core";import e from"react";import{useFormContext as s}from"react-hook-form";import{FormTextInput as p}from"../../../../FormTextInput/FormTextInput.esm.js";import"../../../utils/validation.esm.js";import{TRACK_FIELDS as u}from"../../../utils/trackFormUtils.esm.js";const f=d(t=>({container:{display:"flex",flexDirection:"column"},fieldContainer:{width:"300px",marginTop:t.spacing(1)}})),v=({isLoading:t,disabled:a})=>{const n=f(),{control:i,formState:{errors:o}}=s(),{name:m,description:l,placeholder:c}=u.documentationURL;return e.createElement("div",{className:n.container},e.createElement("div",null,e.createElement(r,{variant:"subtitle2"},m),e.createElement(r,{variant:"caption"},l)),e.createElement("div",{className:n.fieldContainer},e.createElement(p,{name:"detailsStep.documentationURL",control:i,placeholder:c,disabled:a||t,variant:"outlined",margin:"dense",error:o?.detailsStep?.documentationURL,helperText:o?.detailsStep?.documentationURL?.message??void 0})))};export{v as TrackDocumentationUrlInput};
1
+ import{makeStyles as l,Typography as c}from"@material-ui/core";import e from"react";import{useFormContext as d}from"react-hook-form";import{FormTextInput as s}from"../../../../FormTextInput/FormTextInput.esm.js";import"../../../utils/validation.esm.js";import{TRACK_FIELDS as p}from"../../../utils/trackFormUtils.esm.js";const u=l(t=>({container:{display:"flex",flexDirection:"column"},fieldContainer:{width:"300px",marginTop:t.spacing(1)}})),f=({isLoading:t,disabled:r})=>{const o=u(),{control:a,formState:{errors:n}}=d(),{name:i,placeholder:m}=p.documentationURL;return e.createElement("div",{className:o.container},e.createElement("div",null,e.createElement(c,{variant:"subtitle2"},i)),e.createElement("div",{className:o.fieldContainer},e.createElement(s,{name:"detailsStep.documentationURL",control:a,placeholder:m,disabled:r||t,variant:"outlined",margin:"dense",error:n?.detailsStep?.documentationURL,helperText:n?.detailsStep?.documentationURL?.message??void 0})))};export{f as TrackDocumentationUrlInput};
2
2
  //# sourceMappingURL=TrackDocumentationUrlInput.esm.js.map
@@ -1,2 +1,2 @@
1
- import{Typography as l,TextField as d}from"@material-ui/core";import{makeStyles as f}from"@material-ui/core/styles";import e from"react";import{useFormContext as x,Controller as u}from"react-hook-form";import"../../../utils/validation.esm.js";import{TRACK_FIELDS as T}from"../../../utils/trackFormUtils.esm.js";const g=f(t=>({container:{display:"flex",flexDirection:"column",gap:t.spacing(2)},helperText:{marginLeft:0},field:{marginTop:"-10px"}})),h=({disabled:t,isLoading:n})=>{const r=g(),{control:o,formState:{errors:a}}=x(),{placeholder:i,name:m,description:p,helperText:s}=T.name;return e.createElement("div",{className:r.container},e.createElement("div",null,e.createElement(l,{variant:"subtitle2"},m),e.createElement(l,{variant:"caption"},p)),e.createElement(u,{name:"detailsStep.name",control:o,defaultValue:"",render:({field:c})=>e.createElement(d,{...c,FormHelperTextProps:{className:r.helperText},className:r.field,variant:"outlined",margin:"dense",fullWidth:!0,placeholder:i,disabled:n||t,type:"text",error:!!a.detailsStep?.name,helperText:a.detailsStep?.name?.message??s})}))};export{h as TrackNameInput};
1
+ import{Typography as s,TextField as d}from"@material-ui/core";import{makeStyles as c}from"@material-ui/core/styles";import e from"react";import{useFormContext as f,Controller as x}from"react-hook-form";import"../../../utils/validation.esm.js";import{TRACK_FIELDS as u}from"../../../utils/trackFormUtils.esm.js";const T=c(t=>({container:{display:"flex",flexDirection:"column",gap:t.spacing(2)},helperText:{marginLeft:0},field:{marginTop:"-10px"}})),g=({disabled:t,isLoading:l})=>{const r=T(),{control:o,formState:{errors:a}}=f(),{placeholder:n,name:m,helperText:i}=u.name;return e.createElement("div",{className:r.container},e.createElement("div",null,e.createElement(s,{variant:"subtitle2"},m)),e.createElement(x,{name:"detailsStep.name",control:o,defaultValue:"",render:({field:p})=>e.createElement(d,{...p,FormHelperTextProps:{className:r.helperText},className:r.field,variant:"outlined",margin:"dense",fullWidth:!0,placeholder:n,disabled:l||t,type:"text",error:!!a.detailsStep?.name,helperText:a.detailsStep?.name?.message??i})}))};export{g as TrackNameInput};
2
2
  //# sourceMappingURL=TrackNameInput.esm.js.map
@@ -1,2 +1,2 @@
1
- import{parseEntityRef as v}from"@backstage/catalog-model";import{Typography as m}from"@material-ui/core";import{makeStyles as E}from"@material-ui/core/styles";import{uniqBy as y}from"lodash";import t from"react";import{useFormContext as g}from"react-hook-form";import"../../../../../contexts/TrackFormContext.esm.js";import"../../../../../contexts/CheckFormContext.esm.js";import"../../../../../contexts/CampaignFormContext.esm.js";import{useLoggedInUser as S}from"../../../../../contexts/UserProvider.esm.js";import{FormControlledSelect as b}from"../../../../FormControlledSelect/FormControlledSelect.esm.js";import{useOptions as R}from"../../../../GroupSelector/useOptions.esm.js";import"../../../utils/validation.esm.js";import{TRACK_FIELDS as w}from"../../../utils/trackFormUtils.esm.js";const x=E(n=>({container:{display:"flex",flexDirection:"column",gap:n.spacing(1)}})),F=({disabled:n,ownerEntityRef:o})=>{const l=x(),{options:p,isLoading:i}=R(),{user:s,userEntityRef:a}=S(),{control:c,formState:{errors:f}}=g();let e=y(p.map(r=>({value:r.ref,label:r.name})),"value");a&&(e=[{value:a,label:s?.metadata.name},...e]),o&&a!==o&&!e.some(r=>r.value===o)&&(e=[{value:o,label:v(o).name},...e]);const{name:d,description:u}=w.owner;return t.createElement("div",{className:l.container},t.createElement("div",null,t.createElement(m,{variant:"subtitle2"},d),t.createElement(m,{variant:"caption"},u)),t.createElement("div",null,t.createElement(b,{name:"detailsStep.ownerEntityRef",control:c,options:i?void 0:e,disabled:n||i,helperText:f?.detailsStep?.ownerEntityRef?.message??void 0})))};export{F as TrackOwnerSelect};
1
+ import{parseEntityRef as E}from"@backstage/catalog-model";import{Typography as i}from"@material-ui/core";import{makeStyles as y}from"@material-ui/core/styles";import{uniqBy as b}from"lodash";import t from"react";import{useFormContext as g}from"react-hook-form";import"../../../../../contexts/TrackFormContext.esm.js";import"../../../../../contexts/CheckFormContext.esm.js";import"../../../../../contexts/CampaignFormContext.esm.js";import{useLoggedInUser as w}from"../../../../../contexts/UserProvider.esm.js";import{FormControlledAutocomplete as S}from"../../../../FormControlledAutocomplete/FormControlledAutocomplete.esm.js";import{useLabelOptions as x}from"../../../../FormControlledAutocomplete/useLabelOptions.esm.js";import"@material-ui/lab";import"../../../../ListboxVirtualized/ListboxVirtualized.esm.js";import{useOptions as R}from"../../../../GroupSelector/useOptions.esm.js";import"../../../utils/validation.esm.js";import{TRACK_FIELDS as h}from"../../../utils/trackFormUtils.esm.js";const L=y(m=>({container:{display:"flex",flexDirection:"column",gap:m.spacing(1)}})),O=({disabled:m,ownerEntityRef:o})=>{const a=L(),{options:l,isLoading:p}=R(),{user:s,userEntityRef:n}=w(),{control:c,formState:{errors:f}}=g();let e=b(l.map(r=>({value:r.ref,label:r.name})),"value");n&&(e=[{value:n,label:s?.metadata.name},...e]),o&&n!==o&&!e.some(r=>r.value===o)&&(e=[{value:o,label:E(o).name},...e]);const d=x(e),{name:u,description:v}=h.owner;return t.createElement("div",{className:a.container},t.createElement("div",null,t.createElement(i,{variant:"subtitle2"},u),t.createElement(i,{variant:"caption"},v)),t.createElement("div",null,t.createElement(S,{name:"detailsStep.ownerEntityRef",control:c,width:300,freeSolo:!1,disabled:m||p,helperText:f?.detailsStep?.ownerEntityRef?.message??void 0,placeholder:"Owner",...d})))};export{O as TrackOwnerSelect};
2
2
  //# sourceMappingURL=TrackOwnerSelect.esm.js.map
@@ -1,2 +1,2 @@
1
- import e from"react";import{DndProvider as S}from"react-dnd";import{HTML5Backend as b}from"react-dnd-html5-backend";import{FormProvider as h}from"react-hook-form";import{useTrackFormContext as u}from"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{FormFilterSection as k}from"../FormFilterSection/FormFilterSection.esm.js";import{FormStepper as g}from"../FormStepper/FormStepper.esm.js";import{FullScreenDialog as E}from"../FullScreenDialog/FullScreenDialog.esm.js";import{LevelsStep as F}from"./Steps/LevelsStep/LevelsStep.esm.js";import{TrackDetailsStep as T}from"./Steps/TrackDetailsStep/TrackDetailsStep.esm.js";import{TrackStepNameMapping as C}from"./utils/types.esm.js";import"./utils/validation.esm.js";import{TRACK_FIELDS as v}from"./utils/trackFormUtils.esm.js";import{useTrackForm as L}from"./utils/useTrackForm.esm.js";const y=({onSave:n,title:l,open:a,handleClose:r})=>{const{selectedItem:c,isLoading:p,isReadOnly:o}=u(),{formMethods:t,onSubmit:i,selectableChips:s,checksLoading:d}=L(n),m=[{label:"Enter track details",content:()=>e.createElement(T,null)},{label:"Add levels",content:()=>e.createElement(F,{selectableChips:s,checksLoading:d})},{label:"Choose the affected entities (Optional)",content:()=>e.createElement(k,{name:"filtersStep.filter",control:t.control,disabled:o,description:v.filter.description})}],f=c?[...Array(m.length).keys()]:[0];return e.createElement(S,{backend:b},e.createElement(E,{handleClose:r,title:l,open:a},e.createElement(h,{...t},e.createElement("form",{onSubmit:t.handleSubmit(i)},e.createElement(g,{onClose:r,handleSubmit:t.handleSubmit,trigger:t.trigger,onSubmit:i,initialVisited:f,stepNameMap:C,steps:m,isLoading:p,isReadOnly:o,saveButtonText:"Save Track"})))))};export{y as TrackForm};
1
+ import{Content as f}from"@backstage/core-components";import e from"react";import{DndProvider as S}from"react-dnd";import{HTML5Backend as b}from"react-dnd-html5-backend";import{FormProvider as h}from"react-hook-form";import{useTrackFormContext as k}from"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{formStyles as u}from"../../utils/formStyles.esm.js";import{FormFilterSection as g}from"../FormFilterSection/FormFilterSection.esm.js";import{FormStepper as E}from"../FormStepper/FormStepper.esm.js";import{LevelsStep as T}from"./Steps/LevelsStep/LevelsStep.esm.js";import{TrackDetailsStep as C}from"./Steps/TrackDetailsStep/TrackDetailsStep.esm.js";import{TrackStepNameMapping as F}from"./utils/types.esm.js";import"./utils/validation.esm.js";import{TRACK_FIELDS as v}from"./utils/trackFormUtils.esm.js";import{useTrackForm as L}from"./utils/useTrackForm.esm.js";const y=({onSave:i,handleClose:n})=>{const{selectedItem:a,isLoading:l,isReadOnly:r}=k(),p=u(),{formMethods:t,onSubmit:o,selectableChips:s,checksLoading:c}=L(i),m=[{label:"Enter track details",content:()=>e.createElement(C,null)},{label:"Add levels",content:()=>e.createElement(T,{selectableChips:s,checksLoading:c})},{label:"Choose the affected entities (Optional)",content:()=>e.createElement(g,{name:"filtersStep.filter",control:t.control,disabled:r,description:v.filter.description})}],d=a?[...Array(m.length).keys()]:[0];return e.createElement(S,{backend:b},e.createElement(f,{className:p.formWrapper},e.createElement(h,{...t},e.createElement("form",{onSubmit:t.handleSubmit(o)},e.createElement(E,{onClose:n,handleSubmit:t.handleSubmit,trigger:t.trigger,onSubmit:o,initialVisited:d,stepNameMap:F,steps:m,isLoading:l,isReadOnly:r,saveButtonText:"Save Track"})))))};export{y as TrackForm};
2
2
  //# sourceMappingURL=TrackForm.esm.js.map
@@ -1,2 +1,2 @@
1
- const e={name:{name:"Track name",description:"Give your track a meaningful name so it's easy to remember",helperText:"Max 100 characters",placeholder:"Example: Golden State for Web"},description:{name:"Track description",description:"Give your track a meaningful description so others know what it's for",placeholder:"Example: Improve quality and reliability of your software component by measuring the use of testing best practices."},documentationURL:{name:"Documentation URL (Optional)",description:"Enter a documentation URL for your track",placeholder:"URL for documentation"},owner:{name:"Track owner",description:"Add yourself, or a team, as the owner of this track. Defaults to current user."},levels:{label:"Track Levels",description:"Add the checks that apply to each level. You can preview the checks to see the rules that apply to each check."},filter:{description:'Setting the filters below will limit the scope of the Track so that only those Entities that match the filter will be monitored by the Track. As an example, choosing a "Kind" of "Component" will make this Check only apply to Entities whose Kind is indeed set to "Component". This would exclude Entities like Groups, Users, APIs, etc. from being impacted by the Track.'}};export{e as TRACK_FIELDS};
1
+ const e={name:{name:"Track name",helperText:"Max 100 characters",placeholder:"Example: Github Best Practices"},description:{name:"Track description",placeholder:"Example: Improve collaboration, maintain high code quality, and streamline development workflows on GitHub"},documentationURL:{name:"Documentation URL (Optional)",placeholder:"Example: https://docs.example.com"},owner:{name:"Track owner",description:"Assign yourself or your team as the owner of this track. Defaults to current user."},levels:{label:"Track Levels",description:"This is where you will add the checks for each level. You can preview the checks to see the rules that apply to each check."},filter:{description:"Use the filters below to narrow the scope of the Track. Only Entities that match the selected filters will be monitored. For example, selecting 'Kind' as 'Component' will ensure that this Check only applies to Entities categorized as 'Component,' excluding others like Groups, Users, and APIs."}};export{e as TRACK_FIELDS};
2
2
  //# sourceMappingURL=trackFormUtils.esm.js.map
@@ -1,2 +1,2 @@
1
- import{LevelDetailsSchema as t,TrackDetailsSchema as r}from"@spotify/backstage-plugin-soundcheck-common";import{z as e}from"zod";import{CHECK_IS_REQUIRED_MSG as s}from"../../../utils/validation.esm.js";const a=e.strictObject({filter:e.strictObject({selectedKinds:e.string().array(),selectedTypes:e.string().array(),selectedLifecycles:e.string().array(),selectedOwners:e.string().array(),selectedSystems:e.string().array(),selectedTags:e.string().array()}).optional()}),c=e.strictObject({levels:e.array(t).min(1,s)}),i=e.strictObject({detailsStep:r,levelsStep:c,filtersStep:a});export{i as trackFormSchema};
1
+ import{LevelDetailsSchema as e,TrackDetailsSchema as r}from"@spotify/backstage-plugin-soundcheck-common";import{z as t}from"zod";import{FiltersSchema as i,CHECK_IS_REQUIRED_MSG as c}from"../../../utils/validation.esm.js";const s=t.strictObject({filter:i.optional()}),a=t.strictObject({levels:t.array(e).min(1,c)}),l=t.strictObject({detailsStep:r,levelsStep:a,filtersStep:s});export{l as trackFormSchema};
2
2
  //# sourceMappingURL=validation.esm.js.map
@@ -1,2 +1,2 @@
1
- import{parseEntityRef as T}from"@backstage/catalog-model";import{EntityDisplayName as I}from"@backstage/plugin-catalog-react";import{makeStyles as $,Typography as B,Checkbox as C}from"@material-ui/core";import D from"@material-ui/icons/Category";import G from"@material-ui/icons/Class";import M from"@material-ui/icons/Group";import N from"@material-ui/icons/Loop";import{toEntityFilterQuery as j}from"@spotify/backstage-plugin-soundcheck-common";import e,{useMemo as P}from"react";import{useGetEntityFacets as l}from"../../../hooks/catalog/useGetEntityFacets.esm.js";import i from"../../MultiSelectFilter/MultiSelectFilter.esm.js";const Q=$(t=>({root:{display:"flex",flexDirection:"row",alignItems:"center",gap:t.spacing(2)}})),c=(t,{selected:n})=>e.createElement(e.Fragment,null,e.createElement(C,{value:t,checked:n,color:"primary"}),e.createElement(I,{entityRef:t,hideIcon:!0})),q=({track:t,label:n,owners:p,setOwners:y,lifecycles:f,setLifecycles:d,types:E,setTypes:u,systems:g,setSystems:b})=>{const h=Q(),r=j(t.filter),{data:w,isLoading:F}=l("relations.ownedBy",r),{data:o,isLoading:L}=l("spec.lifecycle",r),{data:s,isLoading:O}=l("spec.type",r),{data:a,isLoading:k}=l("relations.partOf",r),m=P(()=>a?.filter(S=>{try{return T(S).kind.toLowerCase()==="system"}catch{return!1}}),[a]),v=(o||[]).length<=1,x=(s||[]).length<=1,R=(m||[]).length<=1;return e.createElement("div",{className:h.root},e.createElement(B,{variant:"caption"},`${n}:`),e.createElement(i,{name:"system",label:"System",icon:e.createElement(D,null),filters:g,setFilters:b,options:m??[],disabled:k||R,customRenderOption:c}),e.createElement(i,{name:"owner",label:"Owner",icon:e.createElement(M,null),filters:p,setFilters:y,options:w??[],disabled:F,customRenderOption:c}),e.createElement(i,{name:"type",label:"Type",icon:e.createElement(G,null),filters:E,setFilters:u,options:s??[],disabled:O||x}),e.createElement(i,{name:"lifecycle",label:"Lifecycle",icon:e.createElement(N,null),filters:f,setFilters:d,options:o??[],disabled:L||v}))};export{q as FilterBar};
1
+ import{parseEntityRef as T}from"@backstage/catalog-model";import{EntityDisplayName as $}from"@backstage/plugin-catalog-react";import{makeStyles as I,Typography as j,Checkbox as B}from"@material-ui/core";import C from"@material-ui/icons/Category";import D from"@material-ui/icons/Class";import M from"@material-ui/icons/Group";import N from"@material-ui/icons/Loop";import{toEntityFilterQuery as Q}from"@spotify/backstage-plugin-soundcheck-common";import e,{useMemo as G}from"react";import{useGetEntityFacets as i}from"../../../hooks/catalog/useGetEntityFacets.esm.js";import n from"../../MultiSelectFilter/MultiSelectFilter.esm.js";const q=I(t=>({root:{display:"flex",flexDirection:"row",alignItems:"center",gap:t.spacing(2)}})),c=(t,{selected:r})=>e.createElement(e.Fragment,null,e.createElement(B,{value:t,checked:r,color:"primary"}),e.createElement($,{entityRef:t,hideIcon:!0})),z=({track:t,label:r,owners:p,setOwners:y,lifecycles:f,setLifecycles:d,types:E,setTypes:u,systems:g,setSystems:b})=>{const h=q(),l=Q(t.filter),{data:L,isLoading:w}=i("relations.ownedBy",l),{data:o,isLoading:F}=i("spec.lifecycle",l),{data:s,isLoading:k}=i("spec.type",l),{data:a,isLoading:O}=i("relations.partOf",l),m=G(()=>a?.filter(S=>{try{return T(S).kind.toLowerCase()==="system"}catch{return!1}}),[a]),v=(o||[]).length<=1,x=(s||[]).length<=1,R=(m||[]).length<=1;return e.createElement("div",{className:h.root},r&&e.createElement(j,{variant:"caption"},`${r}:`),e.createElement(n,{name:"system",label:"System",icon:e.createElement(C,null),filters:g,setFilters:b,options:m??[],disabled:O||R,customRenderOption:c}),e.createElement(n,{name:"owner",label:"Owner",icon:e.createElement(M,null),filters:p,setFilters:y,options:L??[],disabled:w,customRenderOption:c}),e.createElement(n,{name:"type",label:"Type",icon:e.createElement(D,null),filters:E,setFilters:u,options:s??[],disabled:k||x}),e.createElement(n,{name:"lifecycle",label:"Lifecycle",icon:e.createElement(N,null),filters:f,setFilters:d,options:o??[],disabled:F||v}))};export{z as FilterBar};
2
2
  //# sourceMappingURL=FilterBar.esm.js.map
@@ -1,2 +1,2 @@
1
- import{stringifyEntityRef as v}from"@backstage/catalog-model";import{Table as B}from"@backstage/core-components";import{makeStyles as R}from"@material-ui/core";import L from"lodash";import m,{useState as z,useEffect as O,useCallback as y}from"react";import{TrackEntityField as n,Direction as u}from"../../../graphql/generated/index.esm.js";import{useEntitiesByRefs as P}from"../../../hooks/catalog/useEntitiesByRefs.esm.js";import{useTrackEntities as x}from"../../../hooks/entities/useTrackEntities.esm.js";import{columnFactories as a}from"./columns.esm.js";import{toTrackEntityRow as D}from"./utils.esm.js";const N=[a.createBadgeColumn(),a.createNameColumn(),a.createStatusColumn(),a.createSystemColumn(),a.createOwnerColumn(),a.createSpecTypeColumn(),a.createSpecLifecycleColumn()],F=[n.CertificationLevel,n.Name,n.CheckPassRate,n.System,n.Owner,n.Type,n.Lifecycle],w=d=>{const{lifecycles:i,owners:s,types:c,systems:l}=d,g=i?.length?{"spec.lifecycle":i}:void 0,e=s?.length?{"relations.ownedBy":s}:void 0,f=c?.length?{"spec.type":c}:void 0,r=l?.length?{"relations.partOf":l}:void 0;return{...g,...e,...f,...r}},A=R({tableContainer:{display:"flex",flexDirection:"column",height:"100%",width:"99%"}}),W=({track:d,lifecycles:i,owners:s,types:c,systems:l})=>{const g=A(),[e,f]=z({orderBy:void 0,filter:w({lifecycles:i,owners:s,types:c,systems:l}),pageInfo:{page:0,pageSize:25,direction:"forward",cursor:null}});O(()=>{f(t=>({...t,pageInfo:{...t.pageInfo,page:0,cursor:null},filter:w({lifecycles:i,owners:s,types:c,systems:l})}))},[i,s,c,l]);const{data:r,isLoading:C}=x({trackId:d.id,orderBy:e.orderBy,filter:e.filter,[e.pageInfo.direction==="forward"?"first":"last"]:e.pageInfo.pageSize,[e.pageInfo.direction==="forward"?"after":"before"]:e.pageInfo.cursor}),k=y((t,p)=>{let o;t===-1?o=void 0:o={field:F[t],direction:p==="asc"?u.Asc:u.Desc},f({...e,orderBy:o,pageInfo:{...e.pageInfo,page:0,cursor:null}})},[e]),h=y((t,p)=>{const o=t>e.pageInfo.page?"forward":"backward",b=o==="forward"?r?.trackEntities.pageInfo.endCursor??null:r?.trackEntities.pageInfo.startCursor??null;f({...e,pageInfo:{page:t,pageSize:p,direction:o,cursor:b}})},[r,e]),I=r?.trackEntities.edges.map(t=>t.node.entityRef)??[],{data:E,isLoading:S}=P({entityRefs:I}),T=L.compact(r?.trackEntities.edges.map(t=>{const p=E?.items.find(o=>!!o&&v(o)===t.node.entityRef);return p?D({trackDetails:t.node,track:d,entity:p}):void 0}))??[];return m.createElement("div",{className:g.tableContainer},m.createElement(B,{columns:N,data:T,options:{paging:!0,showFirstLastPageButtons:!1,paginationPosition:"both",emptyRowsWhenPaging:!1,pageSizeOptions:[10,25,50],pageSize:25,search:!1,showTitle:!1,padding:"dense"},onOrderChange:k,onPageChange:h,page:e.pageInfo.page,totalCount:r?.trackEntities.totalCount??0,isLoading:C||S,components:{Toolbar:()=>null}}))};export{W as TrackEntitiesTable};
1
+ import{stringifyEntityRef as v}from"@backstage/catalog-model";import{Table as B}from"@backstage/core-components";import{makeStyles as R}from"@material-ui/core";import L from"lodash";import d,{useState as z,useEffect as O,useCallback as y}from"react";import{TrackEntityField as n,Direction as u}from"../../../graphql/generated/index.esm.js";import{useEntitiesByRefs as P}from"../../../hooks/catalog/useEntitiesByRefs.esm.js";import{useTrackEntities as x}from"../../../hooks/entities/useTrackEntities.esm.js";import{columnFactories as a}from"./columns.esm.js";import{toTrackEntityRow as D}from"./utils.esm.js";const N=[a.createBadgeColumn(),a.createNameColumn(),a.createStatusColumn(),a.createSystemColumn(),a.createOwnerColumn(),a.createSpecTypeColumn(),a.createSpecLifecycleColumn()],F=[n.CertificationLevel,n.Name,n.CheckPassRate,n.System,n.Owner,n.Type,n.Lifecycle],C=g=>{const{lifecycles:i,owners:s,types:c,systems:l}=g,m=i?.length?{"spec.lifecycle":i}:void 0,e=s?.length?{"relations.ownedBy":s}:void 0,f=c?.length?{"spec.type":c}:void 0,r=l?.length?{"relations.partOf":l}:void 0;return{...m,...e,...f,...r}},A=R({tableContainer:{display:"flex",flexDirection:"column",height:"100%"}}),W=({track:g,lifecycles:i,owners:s,types:c,systems:l})=>{const m=A(),[e,f]=z({orderBy:void 0,filter:C({lifecycles:i,owners:s,types:c,systems:l}),pageInfo:{page:0,pageSize:25,direction:"forward",cursor:null}});O(()=>{f(t=>({...t,pageInfo:{...t.pageInfo,page:0,cursor:null},filter:C({lifecycles:i,owners:s,types:c,systems:l})}))},[i,s,c,l]);const{data:r,isLoading:k}=x({trackId:g.id,orderBy:e.orderBy,filter:e.filter,[e.pageInfo.direction==="forward"?"first":"last"]:e.pageInfo.pageSize,[e.pageInfo.direction==="forward"?"after":"before"]:e.pageInfo.cursor}),w=y((t,p)=>{let o;t===-1?o=void 0:o={field:F[t],direction:p==="asc"?u.Asc:u.Desc},f({...e,orderBy:o,pageInfo:{...e.pageInfo,page:0,cursor:null}})},[e]),I=y((t,p)=>{const o=t>e.pageInfo.page?"forward":"backward",b=o==="forward"?r?.trackEntities.pageInfo.endCursor??null:r?.trackEntities.pageInfo.startCursor??null;f({...e,pageInfo:{page:t,pageSize:p,direction:o,cursor:b}})},[r,e]),h=r?.trackEntities.edges.map(t=>t.node.entityRef)??[],{data:E,isLoading:S}=P({entityRefs:h}),T=L.compact(r?.trackEntities.edges.map(t=>{const p=E?.items.find(o=>!!o&&v(o)===t.node.entityRef);return p?D({trackDetails:t.node,track:g,entity:p}):void 0}))??[];return d.createElement("div",{className:m.tableContainer},d.createElement(B,{columns:N,data:T,options:{paging:!0,showFirstLastPageButtons:!1,paginationPosition:"both",emptyRowsWhenPaging:!1,pageSizeOptions:[10,25,50],pageSize:25,search:!1,showTitle:!1,padding:"dense"},onOrderChange:w,onPageChange:I,page:e.pageInfo.page,totalCount:r?.trackEntities.totalCount??0,isLoading:k||S,components:{Toolbar:()=>null}}))};export{W as TrackEntitiesTable};
2
2
  //# sourceMappingURL=TrackEntitiesTable.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as x,lighten as b,darken as h,Typography as r}from"@material-ui/core";import a,{useState as R,useRef as E}from"react";import S from"../../RichTooltip/RichTooltip.esm.js";import{getProgressColor as i}from"../utils.esm.js";const m=e=>{const t=e.passed+e.failed+e.warning+e.notReported;return t===0?100:Math.round(e.passed/t*100)},C=(e,t)=>e.levels.find(n=>n.ordinal===t),L=x(e=>({cell:{backgroundColor:({passRate:t})=>i(e,t),color:({passRate:t})=>e.palette.getContrastText(i(e,t)),cursor:"default",borderRadius:"4px",textAlign:"center",fontSize:".9rem",width:"50px"},tooltip:{width:"225px"},topLevelStatus:{borderBottom:`1px solid ${e.palette.divider}`,paddingBottom:e.spacing(1)},levelStatus:{borderBottom:`1px solid ${e.palette.divider}`,paddingTop:e.spacing(1),paddingBottom:e.spacing(1)},bottomLevelStatus:{paddingTop:e.spacing(1)},levelPassRate:{backgroundColor:({passRate:t})=>b(i(e,t),.75),color:({passRate:t})=>h(i(e,t),.7),borderRadius:"4px",textAlign:"center",fontSize:".7rem",width:"32px",height:"15px"}})),k=({track:e,status:t})=>{const n=m(t),s=L({passRate:n}),[u,p]=R(!1),d=E(null),g=()=>{d.current=setTimeout(()=>p(!0),500)},v=()=>{clearTimeout(d.current),p(!1)};return a.createElement(S,{content:a.createElement("div",{className:s.tooltip},t.statusByLevel.map((o,c)=>{let l;c===0?l=s.topLevelStatus:c===t.statusByLevel.length-1?l=s.bottomLevelStatus:l=s.levelStatus;const f=o.passed+o.failed+o.warning+o.notReported,y=C(e,o.ordinal);return a.createElement("div",{key:c,className:l,style:{display:"flex",flexDirection:"column",justifyContent:"space-between"}},a.createElement("div",null,a.createElement(r,{variant:"caption",style:{fontWeight:"bold"}},y?.name??`Level ${o.ordinal}`)),a.createElement("div",{style:{display:"flex",justifyContent:"space-between"}},a.createElement(r,{variant:"caption"},`Passing ${o.passed} of ${f} checks`),a.createElement(r,{className:s.levelPassRate},`${m(o)}%`)))})),open:u,placement:"bottom",onClose:()=>p(!1)},a.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"},onMouseEnter:g,onMouseLeave:v},a.createElement(r,{className:s.cell},`${n}%`)))};export{k as TrackStatusChip};
1
+ import{makeStyles as h,lighten as C,darken as E,Typography as r}from"@material-ui/core";import o,{useState as S,useRef as k}from"react";import R from"../../RichTooltip/RichTooltip.esm.js";import{getProgressColor as i}from"../utils.esm.js";import{getApplicableCheckCount as m}from"./utils.esm.js";const g=e=>{const t=m(e);return t===0?-1:Math.round(e.passed/t*100)},L=(e,t)=>e.levels.find(s=>s.ordinal===t),N=h(e=>({cell:{backgroundColor:({passRate:t})=>i(e,t),color:({passRate:t})=>e.palette.getContrastText(i(e,t)),cursor:"default",borderRadius:"4px",textAlign:"center",fontSize:".9rem",width:"50px"},tooltip:{width:"225px"},topLevelStatus:{borderBottom:`1px solid ${e.palette.divider}`,paddingBottom:e.spacing(1)},levelStatus:{borderBottom:`1px solid ${e.palette.divider}`,paddingTop:e.spacing(1),paddingBottom:e.spacing(1)},bottomLevelStatus:{paddingTop:e.spacing(1)},levelPassRate:{backgroundColor:({passRate:t})=>C(i(e,t),.75),color:({passRate:t})=>E(i(e,t),.7),borderRadius:"4px",textAlign:"center",fontSize:".7rem",width:"32px",height:"15px"}})),T=({track:e,status:t})=>{const s=g(t),a=N({passRate:s}),[v,p]=S(!1),u=k(null),f=()=>{u.current=setTimeout(()=>p(!0),500)},y=()=>{clearTimeout(u.current),p(!1)},x=m(t);return o.createElement(R,{content:o.createElement("div",{className:a.tooltip},t.statusByLevel.map((l,c)=>{let n;c===0?n=a.topLevelStatus:c===t.statusByLevel.length-1?n=a.bottomLevelStatus:n=a.levelStatus;const d=m(l),b=L(e,l.ordinal);return o.createElement("div",{key:c,className:n,style:{display:"flex",flexDirection:"column",justifyContent:"space-between"}},o.createElement("div",null,o.createElement(r,{variant:"caption",style:{fontWeight:"bold"}},b?.name??`Level ${l.ordinal}`)),o.createElement("div",{style:{display:"flex",justifyContent:"space-between"}},o.createElement(r,{variant:"caption"},d===0?"No Applicable Checks":`Passing ${l.passed} of ${d} checks`),o.createElement(r,{className:a.levelPassRate},d===0?"N/A":`${g(l)}%`)))})),open:v,placement:"bottom",onClose:()=>p(!1)},o.createElement("div",{style:{display:"flex",justifyContent:"center",alignItems:"center"},onMouseEnter:f,onMouseLeave:y},o.createElement(r,{className:a.cell},x===0?"N/A":`${s}%`)))};export{T as TrackStatusChip};
2
2
  //# sourceMappingURL=TrackStatusChip.esm.js.map
@@ -1,2 +1,2 @@
1
- import{OverflowTooltip as s}from"@backstage/core-components";import{EntityRefLink as d,EntityRefLinks as o}from"@backstage/plugin-catalog-react";import{makeStyles as u,Chip as m}from"@material-ui/core";import r from"react";import{LevelBadge as c}from"../../Badges/LevelBadge.esm.js";import{NoLevelBadge as p}from"../../Badges/NoLevelBadge.esm.js";import"../../Badges/CampaignBadge.esm.js";import{TrackStatusChip as f}from"./TrackStatusChip.esm.js";const i=u(()=>({linkHover:{"& span":{"&:hover":{textDecoration:"underline"}}}})),y=Object.freeze({createBadgeColumn(){return{title:"",field:"badge",render:e=>e.badge?r.createElement(c,{badge:e.badge}):r.createElement(p,null),width:"auto",align:"center",sorting:!1}},createStatusColumn(){return{title:"Checks",field:"status",render:e=>e.status&&r.createElement(f,{track:e.track,status:e.status}),width:"auto",align:"center",sorting:!1}},createNameColumn(e){return{title:"Name",field:"resolved.entityRef",highlight:!0,customSort(t,a){return 0},render:({entity:t})=>{const a=i();return r.createElement(d,{entityRef:t,defaultKind:e?.defaultKind||"Component",className:a.linkHover})}}},createSystemColumn(){return{title:"System",field:"resolved.partOfSystemRelationTitle",customSort(e,t){return 0},render:({resolved:e})=>{const t=i();return r.createElement(o,{entityRefs:e.partOfSystemRelations,defaultKind:"system",className:t.linkHover})}}},createOwnerColumn(){return{title:"Owner",field:"resolved.ownedByRelationsTitle",customSort(e,t){return 0},render:({resolved:e})=>{const t=i();return r.createElement(o,{entityRefs:e.ownedByRelations,defaultKind:"group",className:t.linkHover})}}},createSpecTypeColumn(){return{title:"Type",field:"entity.spec.type",customSort(e,t){return 0}}},createSpecLifecycleColumn(){return{title:"Lifecycle",field:"entity.spec.lifecycle",customSort(e,t){return 0},width:"auto"}},createMetadataDescriptionColumn(){return{title:"Description",field:"entity.metadata.description",customSort(e,t){return 0},render:({entity:e})=>r.createElement(s,{text:e.metadata.description,placement:"bottom-start"}),width:"auto"}},createTagsColumn(){return{title:"Tags",field:"entity.metadata.tags",cellStyle:{padding:"0px 16px 0px 20px"},render:({entity:e})=>r.createElement(r.Fragment,null,e.metadata.tags&&e.metadata.tags.map(t=>r.createElement(m,{key:t,label:t,size:"small",variant:"outlined",style:{marginBottom:"0px"}}))),width:"auto",sorting:!1}},createTitleColumn(e){return{title:"Title",field:"entity.metadata.title",customSort(t,a){return 0},hidden:e?.hidden,searchable:!0}},createLabelColumn(e,t){return{title:t?.title||"Label",field:"entity.metadata.labels",customSort(a,n){return 0},cellStyle:{padding:"0px 16px 0px 20px"},render:({entity:a})=>{const n=a.metadata?.labels,l=n&&n[e]||t?.defaultValue;return r.createElement(r.Fragment,null,l&&r.createElement(m,{key:l,label:l,size:"small",variant:"outlined"}))},width:"auto",sorting:!1}},createNamespaceColumn(){return{title:"Namespace",field:"entity.metadata.namespace",customSort(e,t){return 0},width:"auto"}}});export{y as columnFactories};
1
+ import{OverflowTooltip as s}from"@backstage/core-components";import{EntityRefLink as c,EntityRefLinks as o}from"@backstage/plugin-catalog-react";import{makeStyles as u,withStyles as d,Chip as m}from"@material-ui/core";import p from"@material-ui/icons/RemoveCircleOutline";import r from"react";import{LevelBadge as f}from"../../Badges/LevelBadge.esm.js";import{NoLevelBadge as y}from"../../Badges/NoLevelBadge.esm.js";import"../../Badges/CampaignBadge.esm.js";import{TrackStatusChip as g}from"./TrackStatusChip.esm.js";import{getApplicableCheckCount as S}from"./utils.esm.js";const i=u(()=>({linkHover:{"& span":{"&:hover":{textDecoration:"underline"}}}})),h=d(e=>({root:{color:e.palette.text.disabled}}))(p),C=Object.freeze({createBadgeColumn(){return{title:"",field:"badge",render:e=>S(e.status)===0?r.createElement(h,null):e.badge?r.createElement(f,{badge:e.badge}):r.createElement(y,null),width:"auto",align:"center",sorting:!1}},createStatusColumn(){return{title:"Checks",field:"status",render:e=>e.status&&r.createElement(g,{track:e.track,status:e.status}),width:"auto",align:"center",sorting:!1}},createNameColumn(e){return{title:"Name",field:"resolved.entityRef",highlight:!0,customSort(t,a){return 0},render:({entity:t})=>{const a=i();return r.createElement(c,{entityRef:t,defaultKind:e?.defaultKind||"Component",className:a.linkHover})}}},createSystemColumn(){return{title:"System",field:"resolved.partOfSystemRelationTitle",customSort(e,t){return 0},render:({resolved:e})=>{const t=i();return r.createElement(o,{entityRefs:e.partOfSystemRelations,defaultKind:"system",className:t.linkHover})}}},createOwnerColumn(){return{title:"Owner",field:"resolved.ownedByRelationsTitle",customSort(e,t){return 0},render:({resolved:e})=>{const t=i();return r.createElement(o,{entityRefs:e.ownedByRelations,defaultKind:"group",className:t.linkHover})}}},createSpecTypeColumn(){return{title:"Type",field:"entity.spec.type",customSort(e,t){return 0}}},createSpecLifecycleColumn(){return{title:"Lifecycle",field:"entity.spec.lifecycle",customSort(e,t){return 0},width:"auto"}},createMetadataDescriptionColumn(){return{title:"Description",field:"entity.metadata.description",customSort(e,t){return 0},render:({entity:e})=>r.createElement(s,{text:e.metadata.description,placement:"bottom-start"}),width:"auto"}},createTagsColumn(){return{title:"Tags",field:"entity.metadata.tags",cellStyle:{padding:"0px 16px 0px 20px"},render:({entity:e})=>r.createElement(r.Fragment,null,e.metadata.tags&&e.metadata.tags.map(t=>r.createElement(m,{key:t,label:t,size:"small",variant:"outlined",style:{marginBottom:"0px"}}))),width:"auto",sorting:!1}},createTitleColumn(e){return{title:"Title",field:"entity.metadata.title",customSort(t,a){return 0},hidden:e?.hidden,searchable:!0}},createLabelColumn(e,t){return{title:t?.title||"Label",field:"entity.metadata.labels",customSort(a,n){return 0},cellStyle:{padding:"0px 16px 0px 20px"},render:({entity:a})=>{const n=a.metadata?.labels,l=n&&n[e]||t?.defaultValue;return r.createElement(r.Fragment,null,l&&r.createElement(m,{key:l,label:l,size:"small",variant:"outlined"}))},width:"auto",sorting:!1}},createNamespaceColumn(){return{title:"Namespace",field:"entity.metadata.namespace",customSort(e,t){return 0},width:"auto"}}});export{C as columnFactories};
2
2
  //# sourceMappingURL=columns.esm.js.map
@@ -1,2 +1,2 @@
1
- import{RELATION_PART_OF as y,RELATION_OWNED_BY as f,stringifyEntityRef as l}from"@backstage/catalog-model";import{getEntityRelations as r,humanizeEntityRef as i}from"@backstage/plugin-catalog-react";function R(d){const{trackDetails:n,track:m,entity:t}=d,a=r(t,y,{kind:"system"}),o=r(t,f),s=l(t);return{id:s,entity:t,badge:n.badge??void 0,track:m,status:n.status,resolved:{name:i(t,{defaultKind:"Component"}),entityRef:s,ownedByRelationsTitle:o.map(e=>i(e,{defaultKind:"group"})).join(", "),ownedByRelations:o,partOfSystemRelationTitle:a.map(e=>i(e,{defaultKind:"system"})).join(", "),partOfSystemRelations:a}}}export{R as toTrackEntityRow};
1
+ import{RELATION_PART_OF as m,RELATION_OWNED_BY as u,stringifyEntityRef as y}from"@backstage/catalog-model";import{getEntityRelations as d,humanizeEntityRef as a}from"@backstage/plugin-catalog-react";import f from"lodash";function p(e){return Object.keys(e).filter(t=>!["notApplicable","numberOfEntities","ordinal"].includes(t)&&typeof f.get(e,t,0)=="number").reduce((t,i)=>t+f.get(e,i,0),0)}function c(e){const{trackDetails:t,track:i,entity:n}=e,r=d(n,m,{kind:"system"}),s=d(n,u),l=y(n);return{id:l,entity:n,badge:t.badge??void 0,track:i,status:t.status,resolved:{name:a(n,{defaultKind:"Component"}),entityRef:l,ownedByRelationsTitle:s.map(o=>a(o,{defaultKind:"group"})).join(", "),ownedByRelations:s,partOfSystemRelationTitle:r.map(o=>a(o,{defaultKind:"system"})).join(", "),partOfSystemRelations:r}}}export{p as getApplicableCheckCount,c as toTrackEntityRow};
2
2
  //# sourceMappingURL=utils.esm.js.map
@@ -1,2 +1,2 @@
1
- import{MarkdownContent as M}from"@backstage/core-components";import{useRouteRef as U}from"@backstage/core-plugin-api";import{EntityRefLink as V}from"@backstage/plugin-catalog-react";import{usePermission as v}from"@backstage/plugin-permission-react";import{makeStyles as A,Paper as G,Typography as W,Button as j,Divider as q,Tabs as z,Tab as C}from"@material-ui/core";import{soundcheckTrackReadPermission as J,soundcheckTrackUpdatePermission as K}from"@spotify/backstage-plugin-soundcheck-common";import e,{useState as Q}from"react";import{useParams as X,useNavigate as Y}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetAllTracks as Z}from"../../hooks/tracks/useGetAllTracks.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as _}from"../../hooks/aggregations/useCertificationStatus.esm.js";import{useCertificationStatusHistory as $}from"../../hooks/aggregations/useCertificationStatusHistory.esm.js";import{useSearchParam as g}from"../../hooks/useSearchParam.esm.js";import{trackEditRouteRef as ee}from"../../routes.esm.js";import{LevelCard as te}from"../LevelCard/LevelCard.esm.js";import{LoadingIndicator as re}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as ae}from"../PageWarningMessage/PageWarningMessage.esm.js";import{FilterBar as ie}from"./FilterBar/FilterBar.esm.js";import{TrackEntitiesTable as ne}from"./TrackEntitiesTable/TrackEntitiesTable.esm.js";import{TrackProgressCard as se}from"./TrackProgressCard.esm.js";const h=t=>{const{lifecycles:a,owners:l,types:i,systems:m}=t,n=a?.length?{"spec.lifecycle":a}:void 0,d=l?.length?{"relations.ownedBy":l}:void 0,s=i?.length?{"spec.type":i}:void 0,p=m?.length?{"relations.partOf":m}:void 0;if(n||d||s||p)return{...n,...d,...s,...p}},oe=A(t=>({root:{height:"100%",background:t.palette.background.default},header:{backgroundColor:t.palette.background.paper,borderRadius:0},trackProgressContainer:{margin:t.spacing(2,0,2,2)},trackContainerContent:{padding:t.spacing(2,2,1),backgroundColor:t.palette.background.paper},levelCard:{margin:t.spacing(1,0,2)},editButton:{marginLeft:"auto"},tabsContainer:{margin:t.spacing(1,0,1,2)},filterBar:{marginTop:t.spacing(1)},trackEntitiesContainer:{marginTop:t.spacing(1)}}));function b({children:t,value:a,index:l}){return e.createElement("div",{hidden:a!==l},a===l&&t)}const le=()=>{const t=oe(),[a,l]=Q(0),[i,m]=g("owners"),[n,d]=g("lifecycles"),[s,p]=g("types"),[c,w]=g("systems"),T=(u,y)=>{l(y)},{trackId:o}=X(),{data:N,isLoading:f,isError:L}=Z({ids:[o??""],first:1}),r=N?.edges?.[0]?.node,{data:E,isLoading:k,isError:P}=_({trackId:o,filter:h({lifecycles:n,owners:i,types:s,systems:c})},!!o),{data:R,isLoading:B,isError:I}=$({trackId:o,filter:h({lifecycles:n,owners:i,types:s,systems:c}),numberOfDays:30},!!o),{loading:x,allowed:S}=v({permission:J,resourceRef:o}),{loading:F,allowed:O}=v({permission:K,resourceRef:o}),D=Y(),H=U(ee);return e.createElement("div",null,e.createElement(ae,{entityName:"track",entityId:o,showNotFound:!f&&!r,showCannotView:!x&&!S}),f&&e.createElement(re,null),r&&e.createElement("div",{className:t.root},e.createElement(G,{elevation:3,className:t.header},e.createElement("div",{className:t.trackContainerContent},e.createElement("div",{style:{display:"flex",alignItems:"center"}},e.createElement("div",null,e.createElement(W,{variant:"h5"},r.name),e.createElement(V,{entityRef:r.ownerEntityRef})),!F&&O&&r.isEditable&&e.createElement(j,{className:t.editButton,variant:"contained",color:"primary",onClick:()=>{D(H({trackId:r.id}))}},"Edit Track")),e.createElement(M,{content:r.description??""}),e.createElement(q,null),e.createElement("div",{className:t.filterBar},e.createElement(ie,{label:"Filter",track:r,owners:i,setOwners:m,lifecycles:n,setLifecycles:d,types:s,setTypes:p,systems:c,setSystems:w})))),e.createElement("div",{className:t.trackProgressContainer},e.createElement(se,{track:r,status:E,history:R,isLoading:f||k||B,isError:L||P||I})),e.createElement("div",{className:t.tabsContainer},e.createElement(z,{value:a,onChange:T},e.createElement(C,{label:"Levels"}),e.createElement(C,{label:"Entities"})),e.createElement(b,{value:a,index:0},r&&r.levels?.map((u,y)=>e.createElement("div",{className:t.levelCard,key:u.ordinal},e.createElement(te,{track:r,level:u,index:y,data:E,isLoading:f||k,lifecycles:n,owners:i,types:s,systems:c})))),e.createElement(b,{value:a,index:1},r&&e.createElement("div",{className:t.trackEntitiesContainer},e.createElement(ne,{track:r,lifecycles:n,owners:i,types:s,systems:c}))))))};export{le as TrackPage};
1
+ import{MarkdownContent as G,Content as T}from"@backstage/core-components";import{useRouteRef as Q}from"@backstage/core-plugin-api";import{EntityRefLink as W}from"@backstage/plugin-catalog-react";import{usePermission as R}from"@backstage/plugin-permission-react";import{makeStyles as _,Button as $,Paper as j,Tabs as q,Tab as N}from"@material-ui/core";import{soundcheckTrackReadPermission as J,soundcheckTrackUpdatePermission as K}from"@spotify/backstage-plugin-soundcheck-common";import t,{useState as X,useMemo as E}from"react";import{useParams as Y,useNavigate as Z}from"react-router-dom";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetAllTracks as ee}from"../../hooks/tracks/useGetAllTracks.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as te}from"../../hooks/aggregations/useCertificationStatus.esm.js";import{useCertificationStatusHistory as re}from"../../hooks/aggregations/useCertificationStatusHistory.esm.js";import{useSearchParam as u}from"../../hooks/useSearchParam.esm.js";import{trackEditRouteRef as ae}from"../../routes.esm.js";import{LevelCard as ie}from"../LevelCard/LevelCard.esm.js";import{LoadingIndicator as ne}from"../LoadingIndicator/LoadingIndicator.esm.js";import{PageWarningMessage as oe}from"../PageWarningMessage/PageWarningMessage.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as se,DEFAULT_HEADER as ce}from"../SoundcheckHeader/useHeader.esm.js";import{FilterBar as me}from"./FilterBar/FilterBar.esm.js";import{TrackEntitiesTable as le}from"./TrackEntitiesTable/TrackEntitiesTable.esm.js";import{TrackProgressCard as de}from"./TrackProgressCard.esm.js";const L=e=>{const{lifecycles:a,owners:c,types:i,systems:l}=e,n=a?.length?{"spec.lifecycle":a}:void 0,d=c?.length?{"relations.ownedBy":c}:void 0,o=i?.length?{"spec.type":i}:void 0,p=l?.length?{"relations.partOf":l}:void 0;if(n||d||o||p)return{...n,...d,...o,...p}},pe=_(e=>({root:{height:"100%",background:e.palette.background.default},header:{backgroundColor:e.palette.background.paper,borderRadius:0,marginBottom:e.spacing(2)},trackProgressContainer:{marginBottom:e.spacing(3)},trackContainerContent:{paddingTop:e.spacing(1),paddingBottom:e.spacing(1),backgroundColor:e.palette.background.paper},levelCard:{margin:e.spacing(1,0,2)},editButton:{marginLeft:"auto"},tabsContainer:{margin:e.spacing(3,0)},trackEntitiesContainer:{marginTop:e.spacing(1)},headerDescription:{fontSize:e.typography.body2.fontSize,margin:e.spacing(.5,0,0),"& p":{margin:0}},content:{paddingTop:0}}));function P({children:e,value:a,index:c}){return t.createElement("div",{hidden:a!==c},a===c&&e)}const fe=()=>{const e=pe(),[a,c]=X(0),[i,l]=u("owners"),[n,d]=u("lifecycles"),[o,p]=u("types"),[m,B]=u("systems"),S=(g,y)=>{c(y)},{trackId:s}=Y(),{data:D,isLoading:f,isError:I}=ee({ids:[s??""],first:1}),r=D?.edges?.[0]?.node,{data:k,isLoading:v,isError:x}=te({trackId:s,filter:L({lifecycles:n,owners:i,types:o,systems:m})},!!s),{data:A,isLoading:F,isError:H}=re({trackId:s,filter:L({lifecycles:n,owners:i,types:o,systems:m}),numberOfDays:30},!!s),{loading:M,allowed:O}=R({permission:J,resourceRef:s}),{loading:C,allowed:h}=R({permission:K,resourceRef:s}),b=Z(),w=Q(ae),z=E(()=>r?.ownerEntityRef?t.createElement(W,{color:"inherit",entityRef:r.ownerEntityRef}):null,[r?.ownerEntityRef]),U=E(()=>!C&&h&&r?.isEditable?t.createElement($,{className:e.editButton,variant:"contained",color:"primary",onClick:()=>{b(w({trackId:r.id}))}},"Edit Track"):null,[h,e.editButton,w,C,b,r]),V=E(()=>r?.description?t.createElement(G,{className:e.headerDescription,content:r.description}):null,[e.headerDescription,r?.description]);return se({title:r?.name??ce.title,description:V,customSubtitle:z,sectionRight:U}),t.createElement("div",null,t.createElement(oe,{entityName:"track",entityId:s,showNotFound:!f&&!r,showCannotView:!M&&!O}),f&&t.createElement(ne,null),r&&t.createElement("div",{className:e.root},t.createElement(j,{elevation:1,className:e.header},t.createElement(T,{className:e.trackContainerContent},t.createElement(me,{track:r,owners:i,setOwners:l,lifecycles:n,setLifecycles:d,types:o,setTypes:p,systems:m,setSystems:B}))),t.createElement(T,{className:e.content},t.createElement("div",{className:e.trackProgressContainer},t.createElement(de,{track:r,status:k,history:A,isLoading:f||v||F,isError:I||x||H})),t.createElement("div",{className:e.tabsContainer},t.createElement(q,{value:a,onChange:S},t.createElement(N,{label:"Levels"}),t.createElement(N,{label:"Entities"})),t.createElement(P,{value:a,index:0},r&&r.levels?.map((g,y)=>t.createElement("div",{className:e.levelCard,key:g.ordinal},t.createElement(ie,{track:r,level:g,index:y,data:k,isLoading:f||v,lifecycles:n,owners:i,types:o,systems:m})))),t.createElement(P,{value:a,index:1},r&&t.createElement("div",{className:e.trackEntitiesContainer},t.createElement(le,{track:r,lifecycles:n,owners:i,types:o,systems:m})))))))};export{fe as TrackPage};
2
2
  //# sourceMappingURL=TrackPage.esm.js.map
@@ -1,2 +1,2 @@
1
- import{makeStyles as o,Paper as l,Box as r,Typography as m}from"@material-ui/core";import t from"react";import{TrackHistoryChart as d}from"./TrackHistoryChart.esm.js";import{TrackLevelsChart as p}from"./TrackLevelsChart.esm.js";const f=o(e=>({card:{display:"flex",flexDirection:"column",border:`1px solid ${e.palette.divider}`,width:"99%"},title:{fontWeight:"bold",fontSize:"1.1rem",lineHeight:`${e.typography.h5.fontSize}px`,cursor:"default"},header:{display:"flex",padding:e.spacing(1,1),borderBottom:`1px solid ${e.palette.divider}`,flexDirection:"column",gap:e.spacing(.5)},content:{padding:e.spacing(1,1,0),display:"flex",margin:e.spacing(1),gap:e.spacing(1)},leftSection:{width:"225px",minWidth:"225px"},summaryCard:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"space-between"},chartSection:{flex:1,width:"100%",minWidth:"150px"}})),g=({track:e,status:c,history:s,isLoading:i,isError:n})=>{const a=f();return t.createElement(l,{className:a.card},t.createElement(r,{className:a.header},!i&&e&&t.createElement(m,{className:a.title},"Track Progress")),t.createElement(r,{className:a.content},t.createElement(r,{className:a.leftSection},t.createElement(r,{className:a.summaryCard},t.createElement(p,{data:c,isLoading:i}))),t.createElement(r,{className:a.chartSection},t.createElement(d,{track:e,data:s,isError:n}))))};export{g as TrackProgressCard};
1
+ import{makeStyles as o,Paper as l,Box as r,Typography as m}from"@material-ui/core";import t from"react";import{TrackHistoryChart as d}from"./TrackHistoryChart.esm.js";import{TrackLevelsChart as p}from"./TrackLevelsChart.esm.js";const f=o(e=>({card:{display:"flex",flexDirection:"column",border:`1px solid ${e.palette.divider}`},title:{fontWeight:"bold",fontSize:"1.1rem",lineHeight:`${e.typography.h5.fontSize}px`,cursor:"default"},header:{display:"flex",padding:e.spacing(1,1),borderBottom:`1px solid ${e.palette.divider}`,flexDirection:"column",gap:e.spacing(.5)},content:{padding:e.spacing(1,1,0),display:"flex",margin:e.spacing(1),gap:e.spacing(1)},leftSection:{width:"225px",minWidth:"225px"},summaryCard:{height:"100%",display:"flex",flexDirection:"column",justifyContent:"space-between"},chartSection:{flex:1,width:"100%",minWidth:"150px"}})),g=({track:e,status:c,history:s,isLoading:i,isError:n})=>{const a=f();return t.createElement(l,{className:a.card},t.createElement(r,{className:a.header},!i&&e&&t.createElement(m,{className:a.title},"Track Progress")),t.createElement(r,{className:a.content},t.createElement(r,{className:a.leftSection},t.createElement(r,{className:a.summaryCard},t.createElement(p,{data:c,isLoading:i}))),t.createElement(r,{className:a.chartSection},t.createElement(d,{track:e,data:s,isError:n}))))};export{g as TrackProgressCard};
2
2
  //# sourceMappingURL=TrackProgressCard.esm.js.map
@@ -1,2 +1,2 @@
1
- import{getTrendLineColor as e,TrendLineColor as n}from"../Charts/chartUtils.esm.js";const s=(o,r)=>{if(isNaN(r))return"#ddd";const t=100;return r<t/3?e(o,n.RED):r<t*(2/3)?o.palette.status.warning:e(o,n.GREEN)};export{s as getProgressColor};
1
+ import{getTrendLineColor as o,TrendLineColor as n}from"../Charts/chartUtils.esm.js";const s=(e,r)=>{if(isNaN(r))return"#ddd";if(r<0)return e.palette.status.aborted;const t=100;return r<t/3?o(e,n.RED):r<t*(2/3)?e.palette.status.warning:o(e,n.GREEN)};export{s as getProgressColor};
2
2
  //# sourceMappingURL=utils.esm.js.map
@@ -1,2 +1,2 @@
1
- import{useApi as Q,featureFlagsApiRef as U}from"@backstage/core-plugin-api";import{usePermission as W}from"@backstage/plugin-permission-react";import{makeStyles as Z,Button as T,Grid as o}from"@material-ui/core";import{soundcheckTrackCreatePermission as $}from"@spotify/backstage-plugin-soundcheck-common";import e,{useState as i,useEffect as q}from"react";import z from"react-use/lib/useDebounce";import{useTrackFormContext as J}from"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"../../../contexts/UserProvider.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../../hooks/useSoundcheckAlert.esm.js";import{useGetAllTracks as K}from"../../../hooks/tracks/useGetAllTracks.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import{useGetTrackOwners as V}from"../../../hooks/tracks/useGetTrackOwners.esm.js";import X from"../../../images/no-results.svg";import{FilterDefault as y}from"../../../utils/filters.esm.js";import{EmptyState as v}from"../../EmptyState/EmptyState.esm.js";import{Pagination as Y}from"../../Pagination/Pagination.esm.js";import{SearchFilters as _}from"../../SearchFilters/SearchFilters.esm.js";import{TrackEmptyState as d,TrackNoResults as x}from"./TrackEmptyState.esm.js";import{TracksOverviewSkeleton as ee}from"./TracksOverviewSkeleton.esm.js";import{TrackSummaryCard as re}from"./TrackSummaryCard.esm.js";const te=Z(t=>({headerButtons:{display:"flex",gap:t.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},header:{padding:t.spacing(0,0,1)},container:{padding:t.spacing(3),gap:t.spacing(3)},createButton:{lineHeight:"1.25rem",paddingTop:t.spacing(1.5),paddingBottom:t.spacing(1.5)}})),ae=({tracksPerPage:t,currentCursor:w})=>{const n=te(),[g,A]=i(w),[l,b]=i(""),[u,S]=i(y.Alpha),[f,N]=i(y.Owner),[B,F]=i(""),{data:I,isLoading:O}=V();z(()=>{F(l)},500,[l]);const{setShowAddModal:h}=J(),{loading:k,allowed:L}=W({permission:$}),{data:a,isLoading:c}=K({ids:void 0,types:["standard","playlist"],first:t,after:g,orderAlphabetical:u,searchByOwner:f,searchByName:B}),[m,G]=i(a),p=m?.edges?.map(r=>r.node),[P,R]=i([]),C=Q(U),D=!C.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-track-creation")||C.isActive("soundcheck-enable-track-creation"),E=!L||!D,j=r=>{S(r.target.value)},H=r=>{N(r.target.value)};if(q(()=>{a&&G(()=>({totalCount:a.totalCount,edges:a.edges,pageInfo:{startCursor:a.pageInfo.startCursor,endCursor:a.pageInfo.endCursor,hasNextPage:a?.pageInfo.hasNextPage??!1,hasPreviousPage:a?.pageInfo.hasPreviousPage??!1}}))},[a]),!c&&!p)return e.createElement(v,{title:d.title,description:d.description,imgSrc:X,action:!k&&e.createElement(T,{disabled:E,variant:"contained",color:"primary",onClick:()=>h(!0)},d.callToAction)});let s;c?s=e.createElement(ee,null):p?.length?s=p?.map(r=>e.createElement(o,{key:r.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":`track card ${r.id}`},e.createElement(re,{summary:r}))):s=e.createElement(o,{xs:12,item:!0,role:"listitem","aria-label":"result"},e.createElement(v,{title:x.title,description:x.description}));const M=m?.pageInfo.hasNextPage||P?.length>0;return e.createElement(o,{container:!0,direction:"row",className:n.container},e.createElement(o,{container:!0,className:n.header},e.createElement(_,{searchPlaceholder:"Search Available Tracks",isLoading:c||O,searchTerm:l,setSearchTerm:b,filterAlpha:u,handleAlphabeticalFilterChange:j,filterOwner:f,handleOwnerFilterChange:H,owners:I}),e.createElement(o,{item:!0,xs:2,className:n.headerButtons},!k&&e.createElement(T,{disabled:E,variant:"contained",color:"primary",onClick:()=>h(!0),className:n.createButton},"Create Track"))),e.createElement(o,{container:!0,spacing:4,role:"list","aria-label":"tracks"},s),M&&e.createElement(o,{item:!0,xs:12},e.createElement(Y,{response:m,listingsPerPage:t,cursor:g,setCursor:A,prevCursors:P,setPrevCursors:R,labelPerPageDropdown:"Tracks Per Page:",urlRoute:"tracks?tracksPerPage="})))};export{ae as TrackListPage};
1
+ import{useRouteRef as Q,useApi as Y,featureFlagsApiRef as q}from"@backstage/core-plugin-api";import{usePermission as z}from"@backstage/plugin-permission-react";import{makeStyles as J,Button as T,Grid as o}from"@material-ui/core";import{soundcheckTrackCreatePermission as K}from"@spotify/backstage-plugin-soundcheck-common";import e,{useState as i,useEffect as U}from"react";import{useNavigate as V}from"react-router-dom";import X from"react-use/lib/useDebounce";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../../hooks/useSoundcheckAlert.esm.js";import{useGetAllTracks as Z}from"../../../hooks/tracks/useGetAllTracks.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{useGetTrackOwners as _}from"../../../hooks/tracks/useGetTrackOwners.esm.js";import ee from"../../../images/no-results.svg";import{trackCreateRouteRef as re}from"../../../routes.esm.js";import{FilterDefault as v}from"../../../utils/filters.esm.js";import{EmptyState as y}from"../../EmptyState/EmptyState.esm.js";import{Pagination as te}from"../../Pagination/Pagination.esm.js";import{SearchFilters as ae}from"../../SearchFilters/SearchFilters.esm.js";import{TrackEmptyState as d,TrackNoResults as x}from"./TrackEmptyState.esm.js";import{TracksOverviewSkeleton as oe}from"./TracksOverviewSkeleton.esm.js";import{TrackSummaryCard as ie}from"./TrackSummaryCard.esm.js";const se=J(t=>({headerButtons:{display:"flex",gap:t.spacing(1),flexWrap:"nowrap",justifyContent:"end",alignItems:"end"},header:{padding:t.spacing(0,0,1)},container:{padding:t.spacing(3),gap:t.spacing(3)},createButton:{lineHeight:"1.25rem",paddingTop:t.spacing(1.5),paddingBottom:t.spacing(1.5)}})),ne=({tracksPerPage:t,currentCursor:b})=>{const s=se(),[g,w]=i(b),[l,A]=i(""),[u,N]=i(v.Alpha),[f,S]=i(v.Owner),[B,R]=i(""),{data:I,isLoading:F}=_();X(()=>{R(l)},500,[l]);const{loading:h,allowed:O}=z({permission:K}),L=V(),G=Q(re),k=()=>L(G()),{data:a,isLoading:c}=Z({ids:void 0,types:["standard","playlist"],first:t,after:g,orderAlphabetical:u,searchByOwner:f,searchByName:B}),[m,D]=i(a),p=m?.edges?.map(r=>r.node),[P,j]=i([]),C=Y(q),H=!C.getRegisteredFlags().find(r=>r.name==="soundcheck-enable-track-creation")||C.isActive("soundcheck-enable-track-creation"),E=!O||!H,W=r=>{N(r.target.value)},$=r=>{S(r.target.value)};if(U(()=>{a&&D(()=>({totalCount:a.totalCount,edges:a.edges,pageInfo:{startCursor:a.pageInfo.startCursor,endCursor:a.pageInfo.endCursor,hasNextPage:a?.pageInfo.hasNextPage??!1,hasPreviousPage:a?.pageInfo.hasPreviousPage??!1}}))},[a]),!c&&!p)return e.createElement(y,{title:d.title,description:d.description,imgSrc:ee,action:!h&&e.createElement(T,{disabled:E,variant:"contained",color:"primary",onClick:k},d.callToAction)});let n;c?n=e.createElement(oe,null):p?.length?n=p?.map(r=>e.createElement(o,{key:r.id,xs:12,sm:12,md:6,lg:4,xl:3,item:!0,role:"listitem","aria-label":`track card ${r.id}`},e.createElement(ie,{summary:r}))):n=e.createElement(o,{xs:12,item:!0,role:"listitem","aria-label":"result"},e.createElement(y,{title:x.title,description:x.description}));const M=m?.pageInfo.hasNextPage||P?.length>0;return e.createElement(o,{container:!0,direction:"row",className:s.container},e.createElement(o,{container:!0,className:s.header},e.createElement(ae,{searchPlaceholder:"Search Available Tracks",isLoading:c||F,searchTerm:l,setSearchTerm:A,filterAlpha:u,handleAlphabeticalFilterChange:W,filterOwner:f,handleOwnerFilterChange:$,owners:I}),e.createElement(o,{item:!0,xs:2,className:s.headerButtons},!h&&e.createElement(T,{disabled:E,variant:"contained",color:"primary",onClick:k,className:s.createButton},"Create Track"))),e.createElement(o,{container:!0,spacing:4,role:"list","aria-label":"tracks"},n),M&&e.createElement(o,{item:!0,xs:12},e.createElement(te,{response:m,listingsPerPage:t,cursor:g,setCursor:w,prevCursors:P,setPrevCursors:j,labelPerPageDropdown:"Tracks Per Page:",urlRoute:"tracks?tracksPerPage="})))};export{ne as TrackListPage};
2
2
  //# sourceMappingURL=TrackListPage.esm.js.map
@@ -1,2 +1,2 @@
1
- import{DismissableBanner as i}from"@backstage/core-components";import r from"react";import{useSearchParams as a}from"react-router-dom";import{useTrackFormContext as p}from"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{RESULTS_PER_PAGE as s}from"../../utils/filters.esm.js";import{AddTrackView as n}from"./AddTrackView.esm.js";import{TrackListPage as c}from"./TrackListPage/TrackListPage.esm.js";import"@backstage/core-plugin-api";import"@backstage/plugin-permission-react";import"@spotify/backstage-plugin-soundcheck-common";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"../../routes.esm.js";import"js-yaml";import"../SummaryCard/SummaryCard.esm.js";import"./TrackListPage/TrackMetadata.esm.js";const l=()=>{const{showAddModal:o}=p(),[e]=a(),t=e.get("tracksPerPage"),m=t?parseInt(t,10):s;return r.createElement("div",null,r.createElement(i,{variant:"info",message:"Programs will now be referred to as Tracks throughout the Soundcheck UI.",id:"programTrackBanner"}),r.createElement(c,{tracksPerPage:m}),o&&r.createElement(n,null))};export{l as TracksPage};
1
+ import{DismissableBanner as m}from"@backstage/core-components";import r from"react";import{useSearchParams as a}from"react-router-dom";import{RESULTS_PER_PAGE as i}from"../../utils/filters.esm.js";import{TrackListPage as p}from"./TrackListPage/TrackListPage.esm.js";import"@backstage/core-plugin-api";import"@backstage/plugin-permission-react";import"@spotify/backstage-plugin-soundcheck-common";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"../../routes.esm.js";import"js-yaml";import"../SummaryCard/SummaryCard.esm.js";import"./TrackListPage/TrackMetadata.esm.js";const s=()=>{const[e]=a(),t=e.get("tracksPerPage"),o=t?parseInt(t,10):i;return r.createElement("div",null,r.createElement(m,{variant:"info",message:"Programs will now be referred to as Tracks throughout the Soundcheck UI.",id:"programTrackBanner"}),r.createElement(p,{tracksPerPage:o}))};export{s as TracksPage};
2
2
  //# sourceMappingURL=TracksPage.esm.js.map
@@ -1,2 +1,2 @@
1
- import r from"react";import{TrackFormProvider as o}from"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import{TracksPage as e}from"../TracksPage/TracksPage.esm.js";const m=()=>r.createElement(o,null,r.createElement(e,null));export{m as TracksTab};
1
+ import r from"react";import{TrackFormProvider as e}from"../../contexts/TrackFormContext.esm.js";import"../../contexts/CheckFormContext.esm.js";import"../../contexts/CampaignFormContext.esm.js";import"../../contexts/UserProvider.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useSetHeaderDefault as o}from"../SoundcheckHeader/useHeader.esm.js";import{TracksPage as t}from"../TracksPage/TracksPage.esm.js";const m=()=>(o(),r.createElement(e,null,r.createElement(t,null)));export{m as TracksTab};
2
2
  //# sourceMappingURL=TracksTab.esm.js.map
@@ -1,2 +1,2 @@
1
- import M,{createContext as w,useState as e,useContext as x}from"react";const I=()=>w({selectedItem:null,setSelectedItem:()=>{},isLoading:!1,setIsLoading:()=>{},showAddModal:!1,setShowAddModal:()=>{},isReadOnly:!1,showReadOnlyModal:()=>{},hideModal:()=>{}}),S=d=>({children:s})=>{const[a,t]=e(null),[n,o]=e(!1),[r,i]=e(!1),[c,l]=e(!1),m=u=>{o(!0),t(u)},h=()=>{t(null),o(!1),l(!1)};return M.createElement(d.Provider,{value:{selectedItem:a,setSelectedItem:t,isLoading:r,setIsLoading:i,showAddModal:c,setShowAddModal:l,isReadOnly:n,showReadOnlyModal:m,hideModal:h}},s)},g=d=>x(d);export{I as createFormContext,S as createFormProvider,g as useGenericFormContext};
1
+ import m,{createContext as u,useState as t,useContext as I}from"react";const x=()=>u({selectedItem:null,setSelectedItem:()=>{},isLoading:!1,setIsLoading:()=>{},isReadOnly:!1,showReadOnly:()=>{}}),g=e=>({children:o})=>{const[s,n]=t(null),[r,d]=t(!1),[l,a]=t(!1),i=c=>{d(!0),n(c)};return m.createElement(e.Provider,{value:{selectedItem:s,setSelectedItem:n,isLoading:l,setIsLoading:a,isReadOnly:r,showReadOnly:i}},o)},y=e=>I(e);export{x as createFormContext,g as createFormProvider,y as useGenericFormContext};
2
2
  //# sourceMappingURL=GenericFormContext.esm.js.map