@spotify/backstage-plugin-soundcheck 0.22.4 → 0.23.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 (227) hide show
  1. package/CHANGELOG.md +47 -0
  2. package/dist/alpha/CampaignsRouterPage.esm.js +2 -0
  3. package/dist/alpha/ChecksRouterPage.esm.js +2 -0
  4. package/dist/alpha/IntegrationsRouterPage.esm.js +2 -0
  5. package/dist/alpha/OverviewPageWrapper.esm.js +2 -0
  6. package/dist/alpha/TracksRouterPage.esm.js +2 -0
  7. package/dist/alpha/plugin.esm.js +1 -1
  8. package/dist/alpha.d.ts +155 -59
  9. package/dist/blueprints/IntegrationPageBlueprint.esm.js +1 -1
  10. package/dist/components/Badge/Badge.esm.js +2 -0
  11. package/dist/components/Badges/LevelBadge.esm.js +1 -1
  12. package/dist/components/Badges/StatusBadge.esm.js +1 -1
  13. package/dist/components/CampaignCreatePage/CampaignCreatePage.esm.js +1 -1
  14. package/dist/components/CampaignForm/hooks/useCampaignForm.esm.js +1 -1
  15. package/dist/components/CampaignForm/utils/validation.esm.js +1 -1
  16. package/dist/components/CampaignPage/CampaignPageBUI.esm.js +1 -1
  17. package/dist/components/CampaignPage/CampaignStatusBarBUI.esm.js +1 -1
  18. package/dist/components/CampaignPage/CampaignTechInsightsExplorerPage.esm.js +1 -1
  19. package/dist/components/CampaignsPage/CampaignListPageBUI.esm.js +1 -1
  20. package/dist/components/CampaignsPage/CampaignsPage.esm.js +1 -1
  21. package/dist/components/CampaignsPage/EditCampaignView.esm.js +1 -1
  22. package/dist/components/Cards/CheckStatusCard/CheckStatusCard.esm.js +1 -1
  23. package/dist/components/CertificationAccordion/CertificationAccordion.esm.js +1 -1
  24. package/dist/components/CertificationSidebar/CertificationSidebar.esm.js +1 -1
  25. package/dist/components/CertificationSidebar/Check.esm.js +1 -1
  26. package/dist/components/CertificationSidebar/ExemptionJustificationDialog.esm.js +1 -1
  27. package/dist/components/CertificationsPage/CertificationTab.esm.js +1 -1
  28. package/dist/components/CertificationsPage/CertificationTabs.esm.js +1 -1
  29. package/dist/components/CertificationsPage/CertificationsPage.esm.js +1 -1
  30. package/dist/components/CertificationsPage/Playlist/PlaylistContext.esm.js +1 -1
  31. package/dist/components/CheckCreatePage/CheckCreatePage.esm.js +1 -1
  32. package/dist/components/CheckDetails/CheckDetails.esm.js +1 -1
  33. package/dist/components/CheckDetails/CheckPullRequest.esm.js +1 -1
  34. package/dist/components/CheckDetails/FixMeDialog.esm.js +1 -1
  35. package/dist/components/CheckForm/CheckForm.esm.js +1 -1
  36. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/RuleConditionInput.esm.js +1 -1
  37. package/dist/components/CheckForm/FormFields/RuleInput/Conditions/useRuleOptions.esm.js +1 -1
  38. package/dist/components/CheckForm/FormFields/RuleInput/RuleInputBox.esm.js +1 -1
  39. package/dist/components/CheckForm/Steps/CheckApplicabilityStep.esm.js +1 -1
  40. package/dist/components/CheckForm/Steps/CheckDetailsStep.esm.js +1 -1
  41. package/dist/components/CheckForm/Steps/CheckRulesStep.esm.js +1 -1
  42. package/dist/components/CheckForm/useCheckForm.esm.js +1 -1
  43. package/dist/components/CheckForm/utils/validation.esm.js +1 -1
  44. package/dist/components/CheckIcon/CheckIcon.esm.js +1 -1
  45. package/dist/components/CheckPage/CheckEditPage.esm.js +1 -1
  46. package/dist/components/CheckPage/CheckEditView.esm.js +1 -1
  47. package/dist/components/CheckPage/CheckEntitiesTable/CheckEntitiesTableBUI.esm.js +1 -1
  48. package/dist/components/CheckPage/CheckPageBUI.esm.js +1 -1
  49. package/dist/components/CheckPage/ExemptionsTableBUI.esm.js +1 -1
  50. package/dist/components/CheckPage/utils.esm.js +1 -1
  51. package/dist/components/CheckSelection/CheckSelection.esm.js +1 -1
  52. package/dist/components/CheckStatusBar/CheckStatusBarBUI.esm.js +1 -1
  53. package/dist/components/CheckTemplatesPage/CheckTemplatesPageBUI.esm.js +1 -1
  54. package/dist/components/ChecksPage/ChecksListPageBUI.esm.js +1 -1
  55. package/dist/components/ChecksTable/ChecksTable.esm.js +1 -1
  56. package/dist/components/ChecksTable/FixMeCell.esm.js +1 -1
  57. package/dist/components/ChecksTable/PullRequestsTable.esm.js +1 -1
  58. package/dist/components/ChecksTable/utils.esm.js +2 -0
  59. package/dist/components/CollectorPage/CollectorDetailsPageBUI.esm.js +1 -1
  60. package/dist/components/CollectorPage/CollectorPage.esm.js +1 -1
  61. package/dist/components/CollectorPage/CollectorStatus.esm.js +2 -0
  62. package/dist/components/CollectorPage/Configurators/AzureDevOps/AzureDevOpsConfigurator.esm.js +1 -1
  63. package/dist/components/CollectorPage/Configurators/AzureDevOps/validation.esm.js +1 -1
  64. package/dist/components/CollectorPage/Configurators/BigQuery/BigQueryConfigurator.esm.js +1 -1
  65. package/dist/components/CollectorPage/Configurators/BigQuery/validation.esm.js +1 -1
  66. package/dist/components/CollectorPage/Configurators/Catalog/CatalogConfigurator.esm.js +1 -1
  67. package/dist/components/CollectorPage/Configurators/Common/CollectorOption.esm.js +1 -1
  68. package/dist/components/CollectorPage/Configurators/Common/utils.esm.js +1 -1
  69. package/dist/components/CollectorPage/Configurators/Configurator.esm.js +1 -1
  70. package/dist/components/CollectorPage/Configurators/DataDog/DataDogConfigurator.esm.js +1 -1
  71. package/dist/components/CollectorPage/Configurators/DataRegistry/DataRegistryConfigurator.esm.js +1 -1
  72. package/dist/components/CollectorPage/Configurators/Github/GithubConfigurator.esm.js +1 -1
  73. package/dist/components/CollectorPage/Configurators/Github/validation.esm.js +1 -1
  74. package/dist/components/CollectorPage/Configurators/Gitlab/GitlabConfigurator.esm.js +1 -1
  75. package/dist/components/CollectorPage/Configurators/HTTP/HttpConfigurator.esm.js +1 -1
  76. package/dist/components/CollectorPage/Configurators/HTTP/validation.esm.js +1 -1
  77. package/dist/components/CollectorPage/Configurators/Jira/JiraConfigurator.esm.js +1 -1
  78. package/dist/components/CollectorPage/Configurators/Jira/validation.esm.js +1 -1
  79. package/dist/components/CollectorPage/Configurators/Kubernetes/KubernetesConfigurator.esm.js +1 -1
  80. package/dist/components/CollectorPage/Configurators/Kubernetes/validation.esm.js +1 -1
  81. package/dist/components/CollectorPage/Configurators/NewRelic/NewRelicConfigurator.esm.js +1 -1
  82. package/dist/components/CollectorPage/Configurators/PagerDuty/PagerDutyConfigurator.esm.js +1 -1
  83. package/dist/components/CollectorPage/Configurators/PagerDuty/validation.esm.js +1 -1
  84. package/dist/components/CollectorPage/Configurators/SCM/RegexFactDetailsComponent.esm.js +1 -1
  85. package/dist/components/CollectorPage/Configurators/SCM/ScmConfigurator.esm.js +1 -1
  86. package/dist/components/CollectorPage/Configurators/SCM/utils.esm.js +1 -1
  87. package/dist/components/CollectorPage/Configurators/SCM/validation.esm.js +1 -1
  88. package/dist/components/CollectorPage/Configurators/SchemaBased/SchemaBasedConfigurator.esm.js +2 -0
  89. package/dist/components/CollectorPage/Configurators/SchemaBased/SchemaField.esm.js +2 -0
  90. package/dist/components/CollectorPage/Configurators/SchemaBased/utils.esm.js +2 -0
  91. package/dist/components/CollectorPage/Configurators/SonarQube/SonarQubeConfigurator.esm.js +1 -1
  92. package/dist/components/CollectorPage/Configurators/SonarQube/validation.esm.js +1 -1
  93. package/dist/components/CollectorPage/utils.esm.js +2 -0
  94. package/dist/components/CollectorsPage/CollectorsPage.esm.js +1 -1
  95. package/dist/components/CollectorsPage/IntegrationLogoBUI.esm.js +1 -1
  96. package/dist/components/CollectorsPage/IntegrationsListPageBUI.esm.js +1 -1
  97. package/dist/components/CreateNewTrackPage/CreateNewTrackPage.esm.js +1 -1
  98. package/dist/components/DescriptionCell/DescriptionCell.esm.js +1 -1
  99. package/dist/components/EntityChip/EntityChip.esm.js +1 -1
  100. package/dist/components/EntitySoundcheckCard/Card.esm.js +1 -1
  101. package/dist/components/FactExplorer/FactExplorer.esm.js +1 -1
  102. package/dist/components/FactExplorer/useFactOptions.esm.js +1 -1
  103. package/dist/components/Filter/FilterComponent.esm.js +1 -1
  104. package/dist/components/Filter/FilterPreviewDisplay.esm.js +2 -0
  105. package/dist/components/FilterSidebar/useTrackFilterSidebar.esm.js +1 -1
  106. package/dist/components/FilterSidebar/util.esm.js +1 -1
  107. package/dist/components/FixMeBetaBadge/FixMeBetaBadge.esm.js +2 -0
  108. package/dist/components/FixMeButton/FixMeButton.esm.js +1 -1
  109. package/dist/components/FormControlledAutocomplete/ControlledAutocomplete.esm.js +1 -1
  110. package/dist/components/FormattedPreview/FormattedPreview.esm.js +3 -3
  111. package/dist/components/GroupSelectorBUI/GroupSelectList.esm.js +1 -1
  112. package/dist/components/GroupSelectorBUI/GroupSelectionHistory.esm.js +1 -1
  113. package/dist/components/GroupSelectorBUI/GroupSelectorBUI.esm.js +1 -1
  114. package/dist/components/GroupSelectorBUI/GroupTagsDisplay.esm.js +2 -0
  115. package/dist/components/GroupSelectorBUI/ListViewMode.esm.js +2 -0
  116. package/dist/components/LevelUpParty/LevelUpParty.esm.js +1 -1
  117. package/dist/components/ListPageCustomActions/ListPageCustomActions.esm.js +1 -1
  118. package/dist/components/Menus/useCampaignActions.esm.js +1 -1
  119. package/dist/components/Menus/useCheckActions.esm.js +1 -1
  120. package/dist/components/Menus/useTrackActions.esm.js +1 -1
  121. package/dist/components/OverviewTable/ResultsTable.esm.js +1 -1
  122. package/dist/components/RefetchingIndicator/RefetchingIndicator.esm.js +1 -1
  123. package/dist/components/Router.esm.js +1 -1
  124. package/dist/components/RoutingPage/RoutingPageBUI.esm.js +1 -1
  125. package/dist/components/RoutingPage/RoutingPageWrapperBUI.esm.js +1 -1
  126. package/dist/components/SendCampaignNotificationDialog/SendCampaignNotificationDialogBUI.esm.js +1 -1
  127. package/dist/components/StatusBar/StatusBar.esm.js +1 -1
  128. package/dist/components/Stepper/Stepper.esm.js +1 -1
  129. package/dist/components/TableRowWithOwner/TableRowWithOwner.esm.js +1 -1
  130. package/dist/components/TechInsights/TechInsightsPageBUI.esm.js +1 -1
  131. package/dist/components/TechInsights/TechInsightsTableBUI.esm.js +1 -1
  132. package/dist/components/TechInsights/hierarchyToNivo.esm.js +2 -0
  133. package/dist/components/TechInsightsExplorerTable/TechInsightsExplorerTable.esm.js +1 -1
  134. package/dist/components/TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js +1 -1
  135. package/dist/components/TimePeriodBar/TimePeriodBarBUI.esm.js +1 -1
  136. package/dist/components/TopAndBottomPerformingTeams/TopAndBottomPerformingTeams.esm.js +1 -1
  137. package/dist/components/TopFailingChecksTable/TopFailingChecksTableBUI.esm.js +1 -1
  138. package/dist/components/TrackBuilderPage/components/SelectProviderStep/SelectProviderStep.esm.js +1 -1
  139. package/dist/components/TrackCreatePage/TrackCreatePage.esm.js +1 -1
  140. package/dist/components/TrackEditPage/TrackEditPage.esm.js +1 -1
  141. package/dist/components/TrackEditPage/TrackEditView.esm.js +1 -1
  142. package/dist/components/TrackForm/utils/useTrackForm.esm.js +1 -1
  143. package/dist/components/TrackForm/utils/validation.esm.js +1 -1
  144. package/dist/components/TrackPage/TrackEntitiesTable/TrackEntitiesTableBUI.esm.js +1 -1
  145. package/dist/components/TrackPage/TrackPageBUI.esm.js +1 -1
  146. package/dist/components/TrackPage/TrackStatusBarBUI.esm.js +1 -1
  147. package/dist/components/TrackPage/TrackStatusTableBUI.esm.js +1 -1
  148. package/dist/components/TrackPage/TrackTechInsightsExplorerPage.esm.js +1 -1
  149. package/dist/components/TracksPage/TracksListPageBUI.esm.js +1 -1
  150. package/dist/contexts/UserProvider.esm.js +1 -1
  151. package/dist/graphql/generated/index.esm.js +22 -13
  152. package/dist/hooks/catalog/useEntityPresentation.esm.js +2 -0
  153. package/dist/hooks/catalog/useEntityPrimaryTitle.esm.js +2 -0
  154. package/dist/hooks/catalog/useGetEntityRefs.esm.js +1 -1
  155. package/dist/hooks/checks/useChecks.esm.js +2 -0
  156. package/dist/hooks/checks/useDeleteCheck.esm.js +1 -1
  157. package/dist/hooks/collectors/useGetCollectors.esm.js +1 -1
  158. package/dist/hooks/filters/useFilters.esm.js +1 -1
  159. package/dist/hooks/filters/useListPageFilters.esm.js +2 -0
  160. package/dist/hooks/fixMe/useFixMe.esm.js +1 -1
  161. package/dist/hooks/fixWithAika/useFixWithAika.esm.js +1 -1
  162. package/dist/hooks/groups/useGroupOptions.esm.js +1 -1
  163. package/dist/hooks/useChipScopedUrlState.esm.js +2 -0
  164. package/dist/hooks/usePagination.esm.js +1 -1
  165. package/dist/index.d.ts +130 -4
  166. package/dist/index.esm.js +1 -1
  167. package/dist/plugins/soundcheck/package.json.esm.js +2 -0
  168. package/dist/utils/charts.esm.js +1 -1
  169. package/dist/utils/facetFilters/utils.esm.js +1 -1
  170. package/dist/utils/filters.esm.js +1 -1
  171. package/dist/utils/validation.esm.js +1 -1
  172. package/package.json +24 -22
  173. package/dist/alpha/pages.esm.js +0 -2
  174. package/dist/components/CategoryBar/CategoryBar.esm.js +0 -2
  175. package/dist/components/CheckStatusBar/CheckStatusBar.esm.js +0 -2
  176. package/dist/components/CheckTemplatesPage/CheckTemplatesPageDeprecated.esm.js +0 -2
  177. package/dist/components/CheckTemplatesPage/TemplateCategory.esm.js +0 -2
  178. package/dist/components/CollectorPage/CollectorDetailsPageDeprecated.esm.js +0 -2
  179. package/dist/components/CollectorPage/CollectorFactTable.esm.js +0 -2
  180. package/dist/components/CollectorsPage/CollectorListPage/CollectorListPageDeprecated.esm.js +0 -2
  181. package/dist/components/CollectorsPage/CollectorListPage/CollectorLogo.esm.js +0 -2
  182. package/dist/components/CollectorsPage/CollectorListPage/CollectorSummaryCard.esm.js +0 -2
  183. package/dist/components/HierarchicalTechInsightsPage/getLeafNodes.esm.js +0 -2
  184. package/dist/components/HierarchicalTechInsightsPage/visualizations/LoadingOverlay.esm.js +0 -2
  185. package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoCirclePacking.esm.js +0 -2
  186. package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoHeatmap.esm.js +0 -2
  187. package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoIcicle.esm.js +0 -2
  188. package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoSunburst.esm.js +0 -2
  189. package/dist/components/HierarchicalTechInsightsPage/visualizations/NivoTreemap.esm.js +0 -2
  190. package/dist/components/HierarchicalTechInsightsPage/visualizations/VisualizationBreadcrumb.esm.js +0 -2
  191. package/dist/components/HierarchicalTechInsightsPage/visualizations/hierarchyToNivo.esm.js +0 -2
  192. package/dist/components/ImportExportPanel/ImportExportPanelDeprecated.esm.js +0 -2
  193. package/dist/components/SummaryCard/SummaryCard.esm.js +0 -2
  194. package/dist/components/SummaryCard/SummaryCardActionsMenu.esm.js +0 -2
  195. package/dist/images/GitHub_Logo.svg +0 -9
  196. package/dist/images/GitHub_Logo_White.svg +0 -9
  197. package/dist/images/SCM_DARK.svg +0 -10
  198. package/dist/images/SCM_LIGHT.svg +0 -10
  199. package/dist/images/azure-devops-rgb.svg +0 -13
  200. package/dist/images/azure-devops-white.svg +0 -13
  201. package/dist/images/bigquery-rgb.svg +0 -15
  202. package/dist/images/bigquery-white.svg +0 -15
  203. package/dist/images/cat-blk.svg +0 -12
  204. package/dist/images/cat-wht.svg +0 -12
  205. package/dist/images/data-registry-blk.svg +0 -36
  206. package/dist/images/data-registry-wht.svg +0 -36
  207. package/dist/images/dd_logo_h_rgb.svg +0 -17
  208. package/dist/images/dd_logo_h_white.svg +0 -17
  209. package/dist/images/gitlab-rgb.svg +0 -1
  210. package/dist/images/gitlab-white.svg +0 -1
  211. package/dist/images/http-rgb.svg +0 -11
  212. package/dist/images/http-white.svg +0 -11
  213. package/dist/images/jira-rgb.svg +0 -25
  214. package/dist/images/jira-white.svg +0 -25
  215. package/dist/images/k8s_blue.svg +0 -108
  216. package/dist/images/k8s_white.svg +0 -108
  217. package/dist/images/new-relic-rgb.svg +0 -1
  218. package/dist/images/new-relic-white.svg +0 -1
  219. package/dist/images/pd-black.svg +0 -9
  220. package/dist/images/pd-white.svg +0 -9
  221. package/dist/images/sonarqube-rgb.svg +0 -14
  222. package/dist/images/sonarqube-white.svg +0 -14
  223. package/dist/images/soundcheck-black.svg +0 -13
  224. package/dist/images/soundcheck-white.svg +0 -13
  225. package/dist/images/tech-black.svg +0 -11
  226. package/dist/images/tech-white.svg +0 -11
  227. /package/dist/components/CampaignsPage/{CampaignListPage/useArchiveConfirmationModal.esm.js → useArchiveConfirmationModal.esm.js} +0 -0
@@ -1,2 +1,2 @@
1
- import{jsx as l}from"react/jsx-runtime";import{useEffect as i,useCallback as f}from"react";import{useTrackFormContext as g}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"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as y}from"../../hooks/useNavigateBack.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import"react-use/lib/useAsync";import"../../graphql/generated/index.esm.js";import"react-use/lib/useAsyncRetry";import{useUpdateTrack as E}from"../../hooks/tracks/useUpdateTrack.esm.js";import{tracksPageRouteRef as h}from"../../routes.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as T}from"../SoundcheckHeader/useHeader.esm.js";import{TrackForm as w}from"../TrackForm/TrackForm.esm.js";const b=({track:t,canEdit:a})=>{const{setSelectedItem:m,setIsLoading:e,selectedItem:n,showReadOnly:r}=g(),{mutateAsync:s,isLoading:c}=E();i(()=>e(c),[e,c]);const o=!a||!t.isEditable;i(()=>{o?r(t):m(t)},[t,m,o,r]);const[d,p]=y(h),k=f(async u=>{await s(u,{onSuccess:p})},[p,s]);return i(()=>{},[t,r,o]),T({title:`${o?"View":"Edit"} Track`,description:"Edit your track's details to match your needs.",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/tracks"}),n?l(w,{handleClose:d,onSave:k}):null};export{b as TrackEditView};
1
+ import{jsx as l}from"react/jsx-runtime";import{useEffect as i,useCallback as f}from"react";import{useTrackFormContext as g}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"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../hooks/useSoundcheckAlert.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useNavigateBack as y}from"../../hooks/useNavigateBack.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import"react-use/lib/useAsync";import"../ChecksTable/utils.esm.js";import"../../graphql/generated/index.esm.js";import"react-use/lib/useAsyncRetry";import{useUpdateTrack as E}from"../../hooks/tracks/useUpdateTrack.esm.js";import{tracksPageRouteRef as h}from"../../routes.esm.js";import"../SoundcheckHeader/SoundcheckHeader.esm.js";import"../SoundcheckHeader/SoundcheckHeaderContext.esm.js";import{useHeader as T}from"../SoundcheckHeader/useHeader.esm.js";import{TrackForm as w}from"../TrackForm/TrackForm.esm.js";const b=({track:t,canEdit:a})=>{const{setSelectedItem:m,setIsLoading:e,selectedItem:n,showReadOnly:r}=g(),{mutateAsync:s,isLoading:p}=E();i(()=>e(p),[e,p]);const o=!a||!t.isEditable;i(()=>{o?r(t):m(t)},[t,m,o,r]);const[d,c]=y(h),k=f(async u=>{await s(u,{onSuccess:c})},[c,s]);return i(()=>{},[t,r,o]),T({title:`${o?"View":"Edit"} Track`,description:"Edit your track's details to match your needs.",docLink:"https://backstage.spotify.com/docs/plugins/soundcheck/core-concepts/tracks"}),n?l(w,{handleClose:d,onSave:k}):null};export{b as TrackEditView};
2
2
  //# sourceMappingURL=TrackEditView.esm.js.map
@@ -1,2 +1,2 @@
1
- import{zodResolver as y}from"@hookform/resolvers/zod";import{useMemo as k,useEffect as R}from"react";import{useForm as T}from"react-hook-form";import{v4 as F}from"uuid";import{useTrackFormContext as g}from"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"react/jsx-runtime";import{useLoggedInUser as h}from"../../../contexts/UserProvider.esm.js";import{BadgeVariant as E}from"../../../graphql/generated/index.esm.js";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as w}from"../../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import"react-use/lib/useAsync";import"react-use/lib/useAsyncRetry";import{useGetChecksMap as L}from"../../../hooks/tracks/useGetChecksMap.esm.js";import{mapInputFilterToFormFilters as l,mapFiltersToCatalogFilter as c}from"../../Filter/utils.esm.js";import"../../Filter/FilterComponent.esm.js";import{emptyFilters as f}from"../../Filter/types.esm.js";import{trackFormSchema as M}from"./validation.esm.js";const u={detailsStep:{name:"",description:"",ownerEntityRef:"",badgeType:"status",draft:!1},levelsStep:{levels:[{name:"Level 1",description:"",checks:[]}]},filtersStep:{include:[f()],exclude:[f()]}},S=({name:e,description:i,ownerEntityRef:a,filter:r,levels:n,documentationURL:t,badge:p,exclude:o,draft:s})=>({detailsStep:{name:e,ownerEntityRef:a,description:i??"",documentationURL:t??void 0,badgeType:p?.variant===E.Status?"status":"medal",draft:s??!1},levelsStep:{levels:n?.map(m=>({name:m.name??(m.ordinal?`Level ${m.ordinal}`:"Level 1"),description:m.description??"",checks:m.checks.map(d=>({id:d.id,name:d.name??d.id,description:d.description??""}))}))||[]},filtersStep:{include:l(r),exclude:l(o)}}),v=(e,i,a)=>({id:a?.id??F(),ownerEntityRef:e.detailsStep.ownerEntityRef,description:e.detailsStep.description,name:e.detailsStep.name,documentationURL:e.detailsStep.documentationURL??"",badgeType:e.detailsStep.badgeType,type:a?.type??"standard",levels:e.levelsStep.levels?.map((r,n)=>({ordinal:n+1,name:r.name??"",description:r.description??"",checks:r.checks.map(t=>{const p=i[t.id];if(p)return p;const o=a?.levels.flatMap(s=>s.checks).find(s=>s.id===t.id);return o?{id:o.id,name:o.name??t.name,description:o.description??t.description}:{id:t.id,name:t.name,description:t.description}})})),filter:c(e.filtersStep.include),exclude:c(e.filtersStep.exclude),draft:e.detailsStep.draft??!1}),x=e=>{const{selectedItem:i}=g(),a=k(()=>i?S(i):u,[i]),r=T({defaultValues:a,mode:"onChange",resolver:y(M)}),{userEntityRef:n}=h();R(()=>{!i&&n&&!r.getValues("detailsStep.ownerEntityRef")&&r.setValue("detailsStep.ownerEntityRef",n)},[i,n,r]);const{checksMap:t}=L(),{showModal:p}=w();return{formMethods:r,onSubmit:async o=>{if(!await p({title:"Save Track",message:`Are you sure you want to save track: ${o.detailsStep.name}?`,error:!1}))return;const s=v(o,t??{},i);e(s)}}};export{u as DEFAULT_TRACK_FORM_VALUES,v as mapTrackFormToInput,S as mapTrackToFormValues,x as useTrackForm};
1
+ import{standardSchemaResolver as y}from"@hookform/resolvers/standard-schema";import{useMemo as k,useEffect as R}from"react";import{useForm as T}from"react-hook-form";import{v4 as F}from"uuid";import{useTrackFormContext as h}from"../../../contexts/TrackFormContext.esm.js";import"../../../contexts/CheckFormContext.esm.js";import"../../../contexts/CampaignFormContext.esm.js";import"react/jsx-runtime";import{useLoggedInUser as g}from"../../../contexts/UserProvider.esm.js";import{BadgeVariant as E}from"../../../graphql/generated/index.esm.js";import"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import{useConfirmationModal as w}from"../../../hooks/useConfirmationModal.esm.js";import"react-router-dom";import"react-use/lib/useLocalStorage";import"react-use/lib/useAsync";import"../../ChecksTable/utils.esm.js";import"react-use/lib/useAsyncRetry";import{useGetChecksMap as L}from"../../../hooks/tracks/useGetChecksMap.esm.js";import{mapInputFilterToFormFilters as l,mapFiltersToCatalogFilter as c}from"../../Filter/utils.esm.js";import"../../Filter/FilterComponent.esm.js";import{emptyFilters as f}from"../../Filter/types.esm.js";import{trackFormSchema as M}from"./validation.esm.js";const u={detailsStep:{name:"",description:"",ownerEntityRef:"",badgeType:"status",draft:!1},levelsStep:{levels:[{name:"Level 1",description:"",checks:[]}]},filtersStep:{include:[f()],exclude:[f()]}},S=({name:e,description:i,ownerEntityRef:a,filter:r,levels:n,documentationURL:t,badge:m,exclude:o,draft:s})=>({detailsStep:{name:e,ownerEntityRef:a,description:i??"",documentationURL:t??void 0,badgeType:m?.variant===E.Status?"status":"medal",draft:s??!1},levelsStep:{levels:n?.map(p=>({name:p.name??(p.ordinal?`Level ${p.ordinal}`:"Level 1"),description:p.description??"",checks:p.checks.map(d=>({id:d.id,name:d.name??d.id,description:d.description??""}))}))||[]},filtersStep:{include:l(r),exclude:l(o)}}),v=(e,i,a)=>({id:a?.id??F(),ownerEntityRef:e.detailsStep.ownerEntityRef,description:e.detailsStep.description,name:e.detailsStep.name,documentationURL:e.detailsStep.documentationURL??"",badgeType:e.detailsStep.badgeType,type:a?.type??"standard",levels:e.levelsStep.levels?.map((r,n)=>({ordinal:n+1,name:r.name??"",description:r.description??"",checks:r.checks.map(t=>{const m=i[t.id];if(m)return m;const o=a?.levels.flatMap(s=>s.checks).find(s=>s.id===t.id);return o?{id:o.id,name:o.name??t.name,description:o.description??t.description}:{id:t.id,name:t.name,description:t.description}})})),filter:c(e.filtersStep.include),exclude:c(e.filtersStep.exclude),draft:e.detailsStep.draft??!1}),x=e=>{const{selectedItem:i}=h(),a=k(()=>i?S(i):u,[i]),r=T({defaultValues:a,mode:"onChange",resolver:y(M)}),{userEntityRef:n}=g();R(()=>{!i&&n&&!r.getValues("detailsStep.ownerEntityRef")&&r.setValue("detailsStep.ownerEntityRef",n)},[i,n,r]);const{checksMap:t}=L(),{showModal:m}=w();return{formMethods:r,onSubmit:async o=>{if(!await m({title:"Save Track",message:`Are you sure you want to save track: ${o.detailsStep.name}?`,error:!1}))return;const s=v(o,t??{},i);e(s)}}};export{u as DEFAULT_TRACK_FORM_VALUES,v as mapTrackFormToInput,S as mapTrackToFormValues,x as useTrackForm};
2
2
  //# sourceMappingURL=useTrackForm.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 m,formFiltersSchema as a}from"../../../utils/validation.esm.js";const c=e.strictObject({levels:e.array(t).min(1,m)}),i=e.strictObject({detailsStep:r,levelsStep:c,filtersStep:a});export{i as trackFormSchema};
1
+ import{LevelDetailsSchema as t,TrackDetailsSchema as r}from"@spotify/backstage-plugin-soundcheck-common";import{z as e}from"zod/v3";import{CHECK_IS_REQUIRED_MSG as m,formFiltersSchema as a}from"../../../utils/validation.esm.js";const c=e.strictObject({levels:e.array(t).min(1,m)}),i=e.strictObject({detailsStep:r,levelsStep:c,filtersStep:a});export{i as trackFormSchema};
2
2
  //# sourceMappingURL=validation.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as h,Fragment as fe}from"react/jsx-runtime";import{stringifyEntityRef as z,parseEntityRef as ge,RELATION_OWNED_BY as me,RELATION_PART_OF as ue}from"@backstage/catalog-model";import{useRouteRef as ye}from"@backstage/core-plugin-api";import{entityRouteRef as he,useEntityPresentation as we,getEntityRelations as U,humanizeEntityRef as Q}from"@backstage/plugin-catalog-react";import{TableRoot as Pe,TableHeader as Se,Column as p,TableBody as ke,TablePagination as Re,Row as Ie,Flex as $,CellText as C,Box as q,Text as Ee,CellProfile as Te}from"@backstage/ui";import{makeStyles as Ce}from"@material-ui/core";import{compact as Be,uniq as be}from"lodash";import{useState as N,useMemo as c,useEffect as J,useCallback as A}from"react";import{useNavigate as ve}from"react-router-dom";import{TrackEntityField as l,Direction as d}from"../../../graphql/generated/index.esm.js";import{useEntitiesByRefs as xe}from"../../../hooks/catalog/useEntitiesByRefs.esm.js";import{useProfileImages as De}from"../../../hooks/catalog/useProfileImages.esm.js";import{useTrackEntities as ze}from"../../../hooks/entities/useTrackEntities.esm.js";import{useSortSearchParams as Ne}from"../../../hooks/useSortSearchParams.esm.js";import{getPercentage as k}from"../../../utils/formatters.esm.js";import{getTrackStatusTotal as Ae}from"../../../utils/tracks.esm.js";import{CertificationBadge as Le}from"../../Badges/CertificationBadge.esm.js";import{CustomCell as W}from"../../CustomCell/CustomCell.esm.js";import"../../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as Oe}from"../../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"@remixicon/react";import"@spotify/backstage-plugin-soundcheck-common";import"../../../routes.esm.js";import{LoadingTableSkeleton as Fe}from"../../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{StatusBar as _e}from"../../StatusBar/StatusBar.esm.js";import{toTrackEntityRow as je}from"./utils.esm.js";const X=10,Y=f=>{const{lifecycles:g,owners:m,types:u,systems:y}=f,w=g?.length?{"spec.lifecycle":g}:void 0,B=m?.length?{"relations.ownedBy":m}:void 0,R=u?.length?{"spec.type":u}:void 0,I=y?.length?{"relations.partOf":y}:void 0;return{...w,...B,...R,...I}},Me=Ce(()=>({tableContainer:{display:"flex",flexDirection:"column",height:"100%"},statusPercent:{width:"var(--bui-space-12)"},statusBar:{width:"100%"}})),L={name:l.Name,owner:l.Owner,certificationLevel:l.CertificationLevel,checkPassRate:l.CheckPassRate,system:l.System,type:l.Type,lifecycle:l.Lifecycle},He=({track:f,lifecycles:g,owners:m,types:u,systems:y,certificationStatus:w,isCampaign:B})=>{const R=Me(),I=ve(),{updateSortParams:O,searchParams:P}=Ne(),F=ye(he),[b,_]=N(()=>{const e=P.get("sortDirection");return e==="ascending"?d.Asc:e==="descending"?d.Desc:d.Asc}),[E,j]=N(()=>{const e=P.get("sort");return e&&L[e]?e:"name"}),Z=b===d.Asc?"ascending":"descending",[r,v]=N({orderBy:{field:l.CheckPassRate,direction:d.Desc},filter:Y({lifecycles:g,owners:m,types:u,systems:y}),pageInfo:{page:0,pageSize:X,direction:"forward",cursor:null}}),{data:s,isLoading:G}=ze({trackId:f?.id??"",orderBy:r.orderBy,filter:r.filter,[r.pageInfo.direction==="forward"?"first":"last"]:r.pageInfo.pageSize,[r.pageInfo.direction==="forward"?"after":"before"]:r.pageInfo.cursor,certificationStatus:w}),S=c(()=>s?.trackEntities.edges??[],[s]),V=c(()=>s?.trackEntities.totalCount??0,[s])>X,ee=S.map(e=>e.node.entityRef)??[],{data:x,isLoading:te}=xe({entityRefs:ee}),M=c(()=>!f||!S?.length||!x?.items?.length?[]:Be(S.map(e=>{const i=x.items.find(a=>!!a&&z(a)===e.node.entityRef);return i?je({trackDetails:e.node,track:f,entity:i}):void 0})),[S,x?.items,f]),ie=be(M.flatMap(e=>e.entity.relations?.filter(({type:i,targetRef:a})=>i==="ownedBy"&&a).map(i=>i.targetRef)||[])),{profileImageMap:re}=De(ie);J(()=>{const e=P.get("sortDirection");(e==="ascending"||e==="descending")&&_(e==="ascending"?d.Asc:d.Desc);const i=P.get("sort");i&&L[i]&&j(i)},[P]),J(()=>{let e;E?e={field:L[E]??l.Name,direction:b}:e=void 0,v(i=>({...i,pageInfo:{...i.pageInfo,page:0,cursor:null},orderBy:e,filter:Y({lifecycles:g,owners:m,types:u,systems:y}),certificationStatus:w}))},[v,E,b,w,g,m,y,u]);const ae=A(e=>{const i=ge(z(e)),a=F(i);I(`${a}/soundcheck`)},[I,F]),D=A((e,i)=>{const a=e>r.pageInfo.page?"forward":"backward",T=a==="forward"?s?.trackEntities.pageInfo.endCursor??null:s?.trackEntities.pageInfo.startCursor??null;v({...r,pageInfo:{page:e,pageSize:i,direction:a,cursor:T}})},[s,r]),ne=A(({direction:e,column:i})=>{j(String(i)),_(e==="ascending"?d.Desc:d.Asc),O({sort:String(i),sortDirection:e})},[O]),oe=({row:e})=>{const{primaryTitle:i}=we(z(e.entity)),a=U(e.entity,me).map(o=>Q(o,{defaultKind:o.kind})).join(", "),T=e.entity.relations?.find(({type:o})=>o==="ownedBy")?.targetRef,se=U(e.entity,ue,{kind:"system"}).map(o=>Q(o,{defaultKind:"system"})).join(", ");let H;T&&(H=re?.[T]);const n=c(()=>Ae(e.status),[e.status]),K=c(()=>{let o;return e.status?.allPassPercentage!==null&&e.status?.allPassPercentage!==void 0?o=e.status.allPassPercentage:e.status&&(o=k(e.status.passed+e.status.exempt,n)),o},[e.status,n]),ce=c(()=>k(e.status?.failed,n),[e.status,n]),le=c(()=>k(e.status?.warning,n),[e.status,n]),de=c(()=>k(e.status?.notReported,n),[e.status,n]),pe=c(()=>k(e.status?.error,n),[e.status,n]);return h(Ie,{onAction:()=>ae(e.entity),children:[t(W,{children:t($,{children:t(Le,{badge:e.badge,trackType:B?"campaign":void 0})})}),t(C,{title:i}),t(W,{children:h($,{align:"center",gap:"2",children:[t(q,{className:R.statusPercent,children:h(Ee,{children:[K,"%"]})}),t(q,{className:R.statusBar,children:t(_e,{passedPercent:K,failedPercent:ce,warningPercent:le,notReportedPercent:de,errorPercent:pe})})]})}),t(C,{title:se}),t(C,{title:e.entity.spec?.type}),t(C,{title:e.entity.spec?.lifecycle}),t(Te,{name:a,src:H??i})]},e.id)};return G||te?t(Fe,{}):S.length?h(fe,{children:[h(Pe,{onSortChange:ne,sortDescriptor:{direction:Z,column:E},children:[h(Se,{children:[t(p,{id:"state",style:{width:"5%"}}),t(p,{id:"name",allowsSorting:!0,isRowHeader:!0,style:{width:"25%"},children:"Name"}),t(p,{id:"checkPassRate",style:{width:"15%"},children:"Checks"}),t(p,{id:"system",allowsSorting:!0,style:{width:"20%"},children:"System"}),t(p,{id:"type",allowsSorting:!0,style:{width:"10%"},children:"Type"}),t(p,{id:"lifecycle",allowsSorting:!0,style:{width:"10%"},children:"Lifecycle"}),t(p,{id:"owner",allowsSorting:!0,style:{width:"15%"},children:"Owner"})]}),t(ke,{children:M.map(e=>t(oe,{row:e},e.id))})]}),V&&t(Re,{showPageSizeOptions:!0,totalCount:s?.trackEntities.totalCount,pageSize:r.pageInfo.pageSize,offset:r.pageInfo.page*r.pageInfo.pageSize,onPreviousPage:()=>{const e=r.pageInfo.page-1;D(e,r.pageInfo.pageSize)},onNextPage:()=>{const e=r.pageInfo.page+1;D(e,r.pageInfo.pageSize)},onPageSizeChange:e=>{D(r.pageInfo.page,e)},hasNextPage:(r.pageInfo.page+1)*r.pageInfo.pageSize<(s?.trackEntities.totalCount??0),hasPreviousPage:r.pageInfo.page>0})]}):t(Oe,{title:"No track entities found",body:"There are no track entities found."})};export{He as TrackEntitiesTableBUI};
1
+ import{jsx as t,jsxs as g,Fragment as fe}from"react/jsx-runtime";import{stringifyEntityRef as N,parseEntityRef as ge,RELATION_OWNED_BY as ue,RELATION_PART_OF as ye}from"@backstage/catalog-model";import{useRouteRef as he}from"@backstage/core-plugin-api";import{entityRouteRef as we,useEntityPresentation as Pe,getEntityRelations as H,humanizeEntityRef as $}from"@backstage/plugin-catalog-react";import{TableRoot as Se,TableHeader as ke,Column as d,TableBody as Ie,TablePagination as Re,Row as Ce,Flex as Q,CellText as h,Box as q,Text as Ee,CellProfile as Te}from"@backstage/ui";import{makeStyles as Be}from"@material-ui/core";import{compact as be,uniq as De}from"lodash";import{useState as x,useMemo as c,useEffect as G,useCallback as z}from"react";import{useNavigate as Ne}from"react-router-dom";import{TrackEntityField as l,Direction as p}from"../../../graphql/generated/index.esm.js";import"@tanstack/react-query";import"../../../api.esm.js";import"../../../hooks/graphqlKeys.esm.js";import"@spotify/backstage-plugin-soundcheck-common";import"../../../hooks/useSoundcheckAlert.esm.js";import"../../../hooks/useConfirmationModal.esm.js";import{DEFAULT_PAGE_SIZE as W}from"../../../hooks/usePagination.esm.js";import"react-use/lib/useLocalStorage";import{useSortSearchParams as xe}from"../../../hooks/useSortSearchParams.esm.js";import"react-use/lib/useAsync";import"../../ChecksTable/utils.esm.js";import"react-use/lib/useAsyncRetry";import{useEntitiesByRefs as ze}from"../../../hooks/catalog/useEntitiesByRefs.esm.js";import{useProfileImages as Ae}from"../../../hooks/catalog/useProfileImages.esm.js";import{useTrackEntities as ve}from"../../../hooks/entities/useTrackEntities.esm.js";import{getPercentage as w}from"../../../utils/formatters.esm.js";import{getTrackStatusTotal as Le}from"../../../utils/tracks.esm.js";import{CertificationBadge as Oe}from"../../Badges/CertificationBadge.esm.js";import{CustomCell as X}from"../../CustomCell/CustomCell.esm.js";import"../../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as Fe}from"../../EmptyState/EmptyStateBUI.esm.js";import"@backstage/plugin-permission-react";import"@remixicon/react";import"../../../routes.esm.js";import"../../FilterSidebar/FilterSidebar.esm.js";import"../../FilterSidebar/StateFilter.esm.js";import{toFilter as Y}from"../../FilterSidebar/util.esm.js";import{LoadingTableSkeleton as _e}from"../../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{StatusBar as je}from"../../StatusBar/StatusBar.esm.js";import{toTrackEntityRow as Ke}from"./utils.esm.js";const Me=Be(()=>({tableContainer:{display:"flex",flexDirection:"column",height:"100%"},statusPercent:{width:"var(--bui-space-12)"},statusBar:{width:"100%"}})),A={name:l.Name,owner:l.Owner,certificationLevel:l.CertificationLevel,checkPassRate:l.CheckPassRate,system:l.System,type:l.Type,lifecycle:l.Lifecycle},Ue=({track:m,lifecycles:S,owners:k,types:I,systems:R,kinds:C,certificationStatus:E,isCampaign:Z})=>{const v=Me(),L=Ne(),{updateSortParams:O,searchParams:u}=xe(),F=he(we),[T,_]=x(()=>{const e=u.get("sortDirection");return e==="ascending"?p.Asc:e==="descending"?p.Desc:p.Asc}),[P,j]=x(()=>{const e=u.get("sort");return e&&A[e]?e:"name"}),J=T===p.Asc?"ascending":"descending",[r,B]=x({orderBy:{field:l.CheckPassRate,direction:p.Desc},filter:Y({lifecycles:S,owners:k,types:I,systems:R,kinds:C}),pageInfo:{page:0,pageSize:W,direction:"forward",cursor:null}}),{data:s,isLoading:V}=ve({trackId:m?.id??"",orderBy:r.orderBy,filter:r.filter,[r.pageInfo.direction==="forward"?"first":"last"]:r.pageInfo.pageSize,[r.pageInfo.direction==="forward"?"after":"before"]:r.pageInfo.cursor,certificationStatus:E}),y=c(()=>s?.trackEntities.edges??[],[s]),ee=c(()=>s?.trackEntities.totalCount??0,[s])>W,te=y.map(e=>e.node.entityRef)??[],{data:b,isLoading:ie}=ze({entityRefs:te}),K=c(()=>!m||!y?.length||!b?.items?.length?[]:be(y.map(e=>{const i=b.items.find(o=>!!o&&N(o)===e.node.entityRef);return i?Ke({trackDetails:e.node,track:m,entity:i}):void 0})),[y,b?.items,m]),re=De(K.flatMap(e=>e.entity.relations?.filter(({type:i,targetRef:o})=>i==="ownedBy"&&o).map(i=>i.targetRef)||[])),{profileImageMap:oe}=Ae(re);G(()=>{const e=u.get("sortDirection");(e==="ascending"||e==="descending")&&_(e==="ascending"?p.Asc:p.Desc);const i=u.get("sort");i&&A[i]&&j(i)},[u]),G(()=>{let e;P?e={field:A[P]??l.Name,direction:T}:e=void 0,B(i=>({...i,pageInfo:{...i.pageInfo,page:0,cursor:null},orderBy:e,filter:Y({lifecycles:S,owners:k,types:I,systems:R,kinds:C}),certificationStatus:E}))},[B,P,T,E,S,k,R,C,I]);const ae=z(e=>{const i=ge(N(e)),o=F(i),f=m?.id?`/tracks/${m.id}`:"";L(`${o}/soundcheck${f}`)},[L,F,m?.id]),D=z((e,i)=>{const o=e>r.pageInfo.page?"forward":"backward",f=o==="forward"?s?.trackEntities.pageInfo.endCursor??null:s?.trackEntities.pageInfo.startCursor??null;B({...r,pageInfo:{page:e,pageSize:i,direction:o,cursor:f}})},[s,r]),ne=z(({direction:e,column:i})=>{j(String(i)),_(e==="ascending"?p.Desc:p.Asc),O({sort:String(i),sortDirection:e})},[O]),se=({row:e})=>{const{primaryTitle:i}=Pe(N(e.entity)),o=H(e.entity,ue).map(n=>$(n,{defaultKind:n.kind})).join(", "),f=e.entity.relations?.find(({type:n})=>n==="ownedBy")?.targetRef,ce=H(e.entity,ye,{kind:"system"}).map(n=>$(n,{defaultKind:"system"})).join(", ");let M;f&&(M=oe?.[f]);const a=c(()=>Le(e.status),[e.status]),U=c(()=>{let n;return e.status?.allPassPercentage!==null&&e.status?.allPassPercentage!==void 0?n=e.status.allPassPercentage:e.status&&(n=w(e.status.passed+e.status.exempt,a)),n},[e.status,a]),le=c(()=>w(e.status?.failed,a),[e.status,a]),pe=c(()=>w(e.status?.warning,a),[e.status,a]),de=c(()=>w(e.status?.notReported,a),[e.status,a]),me=c(()=>w(e.status?.error,a),[e.status,a]);return g(Ce,{onAction:()=>ae(e.entity),children:[t(X,{children:t(Q,{children:t(Oe,{badge:e.badge,trackType:Z?"campaign":void 0})})}),t(h,{title:i}),t(X,{children:g(Q,{align:"center",gap:"2",children:[t(q,{className:v.statusPercent,children:g(Ee,{children:[U,"%"]})}),t(q,{className:v.statusBar,children:t(je,{passedPercent:U,failedPercent:le,warningPercent:pe,notReportedPercent:de,errorPercent:me})})]})}),t(h,{title:ce}),t(h,{title:e.entity.spec?.type}),t(h,{title:e.entity.spec?.lifecycle}),t(h,{title:e.entity.kind.toLowerCase()}),t(Te,{name:o,src:M??i})]},e.id)};return V||ie?t(_e,{}):y.length?g(fe,{children:[g(Se,{onSortChange:ne,sortDescriptor:{direction:J,column:P},children:[g(ke,{children:[t(d,{id:"state",style:{width:"5%"}}),t(d,{id:"name",allowsSorting:!0,isRowHeader:!0,style:{width:"20%"},children:"Name"}),t(d,{id:"checkPassRate",style:{width:"15%"},children:"Checks"}),t(d,{id:"system",allowsSorting:!0,style:{width:"18%"},children:"System"}),t(d,{id:"type",allowsSorting:!0,style:{width:"9%"},children:"Type"}),t(d,{id:"lifecycle",allowsSorting:!0,style:{width:"9%"},children:"Lifecycle"}),t(d,{id:"kind",allowsSorting:!0,style:{width:"9%"},children:"Kind"}),t(d,{id:"owner",allowsSorting:!0,style:{width:"15%"},children:"Owner"})]}),t(Ie,{children:K.map(e=>t(se,{row:e},e.id))})]}),ee&&t(Re,{showPageSizeOptions:!0,totalCount:s?.trackEntities.totalCount,pageSize:r.pageInfo.pageSize,offset:r.pageInfo.page*r.pageInfo.pageSize,onPreviousPage:()=>{const e=r.pageInfo.page-1;D(e,r.pageInfo.pageSize)},onNextPage:()=>{const e=r.pageInfo.page+1;D(e,r.pageInfo.pageSize)},onPageSizeChange:e=>{D(r.pageInfo.page,e)},hasNextPage:(r.pageInfo.page+1)*r.pageInfo.pageSize<(s?.trackEntities.totalCount??0),hasPreviousPage:r.pageInfo.page>0})]}):t(Fe,{title:"No track entities found",body:"There are no track entities found."})};export{Ue as TrackEntitiesTableBUI};
2
2
  //# sourceMappingURL=TrackEntitiesTableBUI.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as c,Fragment as he}from"react/jsx-runtime";import{parseEntityRef as ke}from"@backstage/catalog-model";import{useRouteRef as H}from"@backstage/core-plugin-api";import{usePermission as ge}from"@backstage/plugin-permission-react";import{Container as T,HeaderPage as Se,Box as h,Flex as G,Text as M}from"@backstage/ui";import{makeStyles as Ee}from"@material-ui/core";import{toEntityFilterQuery as Ce,soundcheckTrackReadPermission as ve}from"@spotify/backstage-plugin-soundcheck-common";import{useState as b,useMemo as y,useEffect as U}from"react";import{useSearchParams as Te,useParams as be}from"react-router-dom";import ye from"react-use/lib/useDebounce";import Le from"react-use/lib/useLocalStorage";import"@tanstack/react-query";import"../../api.esm.js";import"../../hooks/graphqlKeys.esm.js";import"@backstage/plugin-catalog-react";import"../../hooks/useSoundcheckAlert.esm.js";import{useTrack as Ie}from"../../hooks/tracks/useTrack.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as we}from"../../hooks/aggregations/useCertificationStatus.esm.js";import{useCertificationStatusHistory as _e}from"../../hooks/aggregations/useCertificationStatusHistory.esm.js";import"react-use/lib/useAsync";import"../../graphql/generated/index.esm.js";import"react-use/lib/useAsyncRetry";import{useCheckStatuses as Ne}from"../../hooks/aggregations/useCheckStatuses.esm.js";import{useFilters as Be}from"../../hooks/filters/useFilters.esm.js";import{useLCPReporting as Fe}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as Re}from"../../hooks/useLoadTimeReporting.esm.js";import{tracksPageRouteRef as He,trackOverviewRouteRef as Oe,trackExplorerRouteRef as Pe}from"../../routes.esm.js";import"../../utils/facetFilters/types.esm.js";import{parseNumberOfDays as xe}from"../../utils/facetFilters/utils.esm.js";import{getEntitiesBucket as Ae,getChecksBucket as Ve}from"../../utils/helpers.esm.js";import{DescriptionCard as Ke}from"../Cards/DescriptionCard/DescriptionCard.esm.js";import{HistoricalTrackStatusCard as je}from"../Cards/HistoricalTrackStatusCard/HistoricalTrackStatusCard.esm.js";import{TrackStatusCard as Ye}from"../Cards/TrackStatusCard/TrackStatusCard.esm.js";import{ChecksTable as De}from"../ChecksTable/ChecksTable.esm.js";import{ChipSelector as Ge}from"../ChipSelector/ChipSelector.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as $}from"../EmptyState/EmptyStateBUI.esm.js";import"@remixicon/react";import"../FilterSidebar/FilterSidebar.esm.js";import"../FilterSidebar/StateFilter.esm.js";import{useTrackFilterSidebar as Me}from"../FilterSidebar/useTrackFilterSidebar.esm.js";import{toFilter as Ue}from"../FilterSidebar/util.esm.js";import{LoadingTableSkeleton as $e}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{SimpleMenu as Qe}from"../Menus/SimpleMenu.esm.js";import"js-yaml";import"lodash";import{useTrackActions as qe}from"../Menus/useTrackActions.esm.js";import"uuid";import"../CampaignPage/CampaignActionsContext.esm.js";import"../CampaignsPage/CampaignListPage/useArchiveConfirmationModal.esm.js";import{PageCustomActions as Je}from"../PageCustomActions/PageCustomActions.esm.js";import{TopFailingChecksTableBUI as We}from"../TopFailingChecksTable/TopFailingChecksTableBUI.esm.js";import{TrackEntitiesTableBUI as Xe}from"./TrackEntitiesTable/TrackEntitiesTableBUI.esm.js";const Ze=Ee(()=>({container:{marginBottom:"var(--bui-space-12)"},cards:{margin:"0 0 var(--bui-space-12)",display:"flex",gridGap:"var(--bui-space-4)"},tableContent:{margin:"var(--bui-space-3) 0 0"},levelSection:{margin:"0 0 var(--bui-space-6)"},levelHeading:{padding:"var(--bui-space-3)",background:"var(--bui-bg-neutral-1)"}})),o={CHECKS_BY_LEVELS:"Checks By Levels",TOP_FAILING_CHECKS:"Top Failing Checks",ENTITIES:"Entities"},ze={"checks-by-levels":o.CHECKS_BY_LEVELS,"top-failing-checks":o.TOP_FAILING_CHECKS,entities:o.ENTITIES},et={[o.CHECKS_BY_LEVELS]:"checks-by-levels",[o.TOP_FAILING_CHECKS]:"top-failing-checks",[o.ENTITIES]:"entities"},tt=()=>{const n=Ze(),[a,k]=Te(),[O,Q]=b(()=>{const e=a.get("section"),s=e?ze[e]:null;return new Set([s??o.CHECKS_BY_LEVELS])}),g=O.values().next().value??o.CHECKS_BY_LEVELS,[l,P]=b(a.get("search")||""),[x,q]=b(""),{trackId:i}=be(),{data:r,isLoading:m,isError:J}=Ie(i),W=H(He),A=qe(r??void 0),V=r?.ownerEntityRef,X=V?ke(V).name:void 0,Z=Array.from(new Set(r?.levels.flatMap(e=>e.checks).map(e=>e.id)??[])),{owners:p,lifecycles:d,types:u,systems:f}=Me(),L=y(()=>Ue({lifecycles:d,owners:p,types:u,systems:f}),[d,p,u,f]),I=y(()=>xe(a.get("numberOfDays")),[a]),[S,K]=b(!1),[w,_]=Le("track-overview-search-params","");U(()=>{!S&&a?.toString()?(w!==a.toString()&&_(a.toString()),K(!0)):S?S&&w!==a.toString()&&_(a.toString()):K(!0)},[a,k,_,w,S]),ye(()=>{q(l);const e=new URLSearchParams(a.toString());l?e.set("search",l):e.delete("search"),k(e,{replace:!0})},300,[l]);const j=y(()=>({routeName:"soundcheck-track-insights",additionalAttributes:{trackId:i||"",filtersApplied:p.length+d.length+u.length+f.length,ownersFilter:p.join(",")||"",lifecyclesFilter:d.join(",")||"",typesFilter:u.join(",")||"",systemsFilter:f.join(",")||"",numberOfDays:I,tracksSearch:x||""}}),[i,p,d,u,f,I,x]),{reportContentLoaded:Y}=Re(j),{reporter:z}=Fe(j),ee=e=>{Q(e),P("");const s=e.values().next().value,v=s?et[s]:void 0;v?k({section:v},{replace:!0}):k({},{replace:!0})},{data:E,isLoading:N,isError:te}=we({trackId:i,filter:L},!!i),{data:re,isLoading:B,isError:ie}=_e({trackId:i,filter:L,numberOfDays:I},!!i),{data:C,isLoading:F}=Ne({trackId:i,checkIds:Z,filter:L},!!r),oe=y(()=>Ce(r?.filter),[r]),R=J||te||ie,{loading:ae,allowed:se}=ge({permission:ve,resourceRef:i}),{filters:ce,selected:ne,setSelected:le,onRemoveTag:me,selectedTags:pe}=Be({entityFilterQuery:oe}),de=r?.levels.flatMap(e=>{const s=l?.trim().toLowerCase();return{...e,checks:s?e.checks.filter(({name:v})=>v.toLowerCase().includes(s)):e.checks}})??[],D=z?.getLCPValue();U(()=>{if(!m&&!F&&!N&&!B){const e=E?.certificationStatus?.numberOfEntities??0,s=C?.length??0;Y({lcp:D,numberOfEntities:e,entitiesBucket:Ae(e),numberOfChecks:s,checksBucket:Ve(s)})}},[m,F,N,B,C,E,Y,D]);const ue=H(Oe),fe=H(Pe);return m?t(T,{className:n.container,children:t($e,{})}):!m&&!r?t(T,{className:n.container,children:t($,{title:"Track not found",body:`There is no track with the requested id: ${i}.`})}):!ae&&!se?t(T,{className:n.container,children:t($,{title:"Cannot view track",body:`No permission to view track with the requested id: ${i}.`})}):c(he,{children:[t(Se,{title:r?.name,customActions:t(Qe,{label:"Track Actions",disabled:!A.length,placement:"left top",menuActions:A}),breadcrumbs:[{label:"Tracks",href:W()}],tabs:[{id:"overview",label:"Track Overview",href:i?ue({trackId:i}):""},{id:"explorer",label:"Tech Insights Explorer",href:i?fe({trackId:i}):""}]}),c(T,{className:n.container,children:[c(h,{className:n.cards,children:[t(Ke,{description:r?.description??void 0,owner:X,isError:R,isLoading:m}),t(Ye,{track:r??void 0,status:E,isError:R,isLoading:N}),t(je,{track:r??void 0,history:re,isError:R,isLoading:B})]}),r&&c(h,{children:[c(G,{justify:"between",children:[t(h,{minWidth:"18rem",children:t(Ge,{options:Object.values(o),selected:O,ariaLabel:"Sections",onSelectionChange:ee})}),t(Je,{searchValue:l,setSearchValue:e=>P(e),filters:ce,selected:ne,setSelected:le,onRemoveTag:me,selectedTags:pe,showSearch:g!==o.ENTITIES})]}),c(h,{className:n.tableContent,children:[g===o.CHECKS_BY_LEVELS&&t(h,{mt:"3",children:de.map(e=>c(h,{className:n.levelSection,children:[c(G,{align:"center",gap:"4",className:n.levelHeading,children:[c(M,{color:"secondary",children:["Level ",e.ordinal]})," ",t(M,{children:e.name})]}),t(De,{trackId:r.id,checks:e.checks,checkStatuses:C,isLoading:m||F,levelOrdinal:e.ordinal})]},e.ordinal))}),g===o.TOP_FAILING_CHECKS&&t(We,{track:r,checkStatuses:C,certificationStatus:E?.certificationStatus,searchValue:l}),g===o.ENTITIES&&t(Xe,{track:r,lifecycles:d,owners:p,types:u,systems:f,searchValue:l})]})]})]})]})};export{tt as TrackPageBUI};
1
+ import{jsx as t,jsxs as a,Fragment as de}from"react/jsx-runtime";import{useRouteRef as _,useApi as ue,configApiRef as fe}from"@backstage/core-plugin-api";import{usePermission as he}from"@backstage/plugin-permission-react";import{Container as C,HeaderPage as ke,Box as k,Flex as x,Text as j}from"@backstage/ui";import{makeStyles as Se}from"@material-ui/core";import{toEntityFilterQuery as ge,soundcheckTrackReadPermission as Ee}from"@spotify/backstage-plugin-soundcheck-common";import{useState as N,useMemo as T,useEffect as Ce}from"react";import{useSearchParams as Te,useParams as ye}from"react-router-dom";import be 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{useTrack as ve}from"../../hooks/tracks/useTrack.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{useCertificationStatus as Le}from"../../hooks/aggregations/useCertificationStatus.esm.js";import{useCertificationStatusHistory as Ie}from"../../hooks/aggregations/useCertificationStatusHistory.esm.js";import"react-use/lib/useLocalStorage";import"react-use/lib/useAsync";import"../ChecksTable/utils.esm.js";import"../../graphql/generated/index.esm.js";import"react-use/lib/useAsyncRetry";import{useCheckStatuses as we}from"../../hooks/aggregations/useCheckStatuses.esm.js";import{useEntityPrimaryTitle as _e}from"../../hooks/catalog/useEntityPrimaryTitle.esm.js";import{useFilters as Ne}from"../../hooks/filters/useFilters.esm.js";import{useChipScopedUrlState as Pe}from"../../hooks/useChipScopedUrlState.esm.js";import{useLCPReporting as Fe}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as Be}from"../../hooks/useLoadTimeReporting.esm.js";import{tracksPageRouteRef as He,trackOverviewRouteRef as Oe,trackExplorerRouteRef as Re}from"../../routes.esm.js";import"../../utils/facetFilters/types.esm.js";import{parseNumberOfDays as Ae}from"../../utils/facetFilters/utils.esm.js";import{getEntitiesBucket as Ve,getChecksBucket as Ke}from"../../utils/helpers.esm.js";import{DescriptionCard as xe}from"../Cards/DescriptionCard/DescriptionCard.esm.js";import{HistoricalTrackStatusCard as je}from"../Cards/HistoricalTrackStatusCard/HistoricalTrackStatusCard.esm.js";import{TrackStatusCard as Ye}from"../Cards/TrackStatusCard/TrackStatusCard.esm.js";import{ChecksTable as De}from"../ChecksTable/ChecksTable.esm.js";import{ChipSelector as Ge}from"../ChipSelector/ChipSelector.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as Y}from"../EmptyState/EmptyStateBUI.esm.js";import"@remixicon/react";import"../FilterSidebar/FilterSidebar.esm.js";import"../FilterSidebar/StateFilter.esm.js";import{useTrackFilterSidebar as Ue}from"../FilterSidebar/useTrackFilterSidebar.esm.js";import{toFilter as Me}from"../FilterSidebar/util.esm.js";import{LoadingTableSkeleton as qe}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{SimpleMenu as Qe}from"../Menus/SimpleMenu.esm.js";import"js-yaml";import"lodash";import{useTrackActions as $e}from"../Menus/useTrackActions.esm.js";import"uuid";import"../CampaignPage/CampaignActionsContext.esm.js";import"../CampaignsPage/useArchiveConfirmationModal.esm.js";import{PageCustomActions as Je}from"../PageCustomActions/PageCustomActions.esm.js";import{TopFailingChecksTableBUI as We}from"../TopFailingChecksTable/TopFailingChecksTableBUI.esm.js";import{TrackEntitiesTableBUI as Xe}from"./TrackEntitiesTable/TrackEntitiesTableBUI.esm.js";const Ze=Se(()=>({container:{marginBottom:"var(--bui-space-12)"},cards:{margin:"0 0 var(--bui-space-12)",display:"flex",gridGap:"var(--bui-space-4)"},tableContent:{margin:"var(--bui-space-3) 0 0"},levelSection:{margin:"0 0 var(--bui-space-6)"},levelHeading:{padding:"var(--bui-space-3)",background:"var(--bui-bg-neutral-1)"}})),o={CHECKS_BY_LEVELS:"Checks By Levels",TOP_FAILING_CHECKS:"Top Failing Checks",ENTITIES:"Entities"},D={"checks-by-levels":o.CHECKS_BY_LEVELS,"top-failing-checks":o.TOP_FAILING_CHECKS,entities:o.ENTITIES},ze={[o.CHECKS_BY_LEVELS]:"checks-by-levels",[o.TOP_FAILING_CHECKS]:"top-failing-checks",[o.ENTITIES]:"entities"},et="checks-by-levels",tt=()=>{const s=Ze(),[l,P]=Te(),[F,G]=N(()=>{const e=l.get("section"),n=e?D[e]:null;return new Set([n??o.CHECKS_BY_LEVELS])}),S=F.values().next().value??o.CHECKS_BY_LEVELS,[c,B]=N(l.get("search")||""),[H,U]=N(""),{trackId:i}=ye(),{data:r,isLoading:m,isError:M}=ve(i),q=_(He),O=$e(r??void 0),Q=_e(r?.ownerEntityRef),$=Array.from(new Set(r?.levels.flatMap(e=>e.checks).map(e=>e.id)??[])),{owners:p,lifecycles:d,types:u,systems:f,kinds:h}=Ue(),y=T(()=>Me({lifecycles:d,owners:p,types:u,systems:f,kinds:h}),[d,p,u,f,h]),R=ue(fe).getOptionalNumber("soundcheck.certifications.history.retentionTimeInDays"),b=T(()=>Ae(l.get("numberOfDays"),R),[l,R]);be(()=>{U(c);const e=new URLSearchParams(l.toString());c?e.set("search",c):e.delete("search"),P(e,{replace:!0})},300,[c]);const A=T(()=>({routeName:"soundcheck-track-insights",additionalAttributes:{trackId:i||"",filtersApplied:p.length+d.length+u.length+f.length+h.length,ownersFilter:p.join(",")||"",lifecyclesFilter:d.join(",")||"",typesFilter:u.join(",")||"",systemsFilter:f.join(",")||"",kindsFilter:h.join(",")||"",numberOfDays:b,tracksSearch:H||""}}),[i,p,d,u,f,h,b,H]),{reportContentLoaded:V}=Be(A),{reporter:J}=Fe(A),{handleSectionChange:W}=Pe({searchParams:l,setSearchParams:P,sectionParamToSection:D,sectionToParam:ze,defaultSectionParam:et,defaultSection:o.CHECKS_BY_LEVELS,pageFiltersStorageKey:"track-page-filters",pageSearchParamsStorageKey:"track-overview-search-params",setSectionSelection:G,setSearchValue:B}),{data:g,isLoading:v,isError:X}=Le({trackId:i,filter:y},!!i),{data:Z,isLoading:L,isError:z}=Ie({trackId:i,filter:y,numberOfDays:b},!!i),{data:E,isLoading:I}=we({trackId:i,checkIds:$,filter:y},!!r),ee=T(()=>ge(r?.filter),[r]),w=M||X||z,{loading:te,allowed:re}=he({permission:Ee,resourceRef:i}),{filters:ie,selected:oe,setSelected:ae,onRemoveTag:se,selectedTags:ce}=Ne({entityFilterQuery:ee}),ne=r?.levels.flatMap(e=>{const n=c?.trim().toLowerCase();return{...e,checks:n?e.checks.filter(({name:pe})=>pe.toLowerCase().includes(n)):e.checks}})??[],K=J?.getLCPValue();Ce(()=>{if(!m&&!I&&!v&&!L){const e=g?.certificationStatus?.numberOfEntities??0,n=E?.length??0;V({lcp:K,numberOfEntities:e,entitiesBucket:Ve(e),numberOfChecks:n,checksBucket:Ke(n)})}},[m,I,v,L,E,g,V,K]);const le=_(Oe),me=_(Re);return m?t(C,{className:s.container,children:t(qe,{})}):!m&&!r?t(C,{className:s.container,children:t(Y,{title:"Track not found",body:`There is no track with the requested id: ${i}.`})}):!te&&!re?t(C,{className:s.container,children:t(Y,{title:"Cannot view track",body:`No permission to view track with the requested id: ${i}.`})}):a(de,{children:[t(ke,{title:r?.name,customActions:t(Qe,{label:"Track Actions",disabled:!O.length,placement:"left top",menuActions:O}),breadcrumbs:[{label:"Tracks",href:q()}],tabs:[{id:"overview",label:"Track Overview",href:i?le({trackId:i}):""},{id:"explorer",label:"Tech Insights Explorer",href:i?me({trackId:i}):""}]}),a(C,{className:s.container,children:[a(k,{className:s.cards,children:[t(xe,{description:r?.description??void 0,owner:Q,isError:w,isLoading:m}),t(Ye,{track:r??void 0,status:g,isError:w,isLoading:v}),t(je,{track:r??void 0,history:Z,isError:w,isLoading:L})]}),r&&a(k,{children:[a(x,{justify:"between",children:[t(k,{minWidth:"18rem",children:t(Ge,{options:Object.values(o),selected:F,ariaLabel:"Sections",onSelectionChange:W})}),t(Je,{searchValue:c,setSearchValue:e=>B(e),filters:ie,selected:oe,setSelected:ae,onRemoveTag:se,selectedTags:ce,showSearch:S!==o.ENTITIES})]}),a(k,{className:s.tableContent,children:[S===o.CHECKS_BY_LEVELS&&t(k,{mt:"3",children:ne.map(e=>a(k,{className:s.levelSection,children:[a(x,{align:"center",gap:"4",className:s.levelHeading,children:[a(j,{color:"secondary",children:["Level ",e.ordinal]})," ",t(j,{children:e.name})]}),t(De,{trackId:r.id,checks:e.checks,checkStatuses:E,isLoading:m||I,levelOrdinal:e.ordinal})]},e.ordinal))}),S===o.TOP_FAILING_CHECKS&&t(We,{track:r,checkStatuses:E,certificationStatus:g?.certificationStatus,searchValue:c}),S===o.ENTITIES&&t(Xe,{track:r,lifecycles:d,owners:p,types:u,systems:f,kinds:h,searchValue:c})]})]})]})]})};export{tt as TrackPageBUI};
2
2
  //# sourceMappingURL=TrackPageBUI.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as u}from"react/jsx-runtime";import{Skeleton as $,Box as h,Flex as x}from"@backstage/ui";import{makeStyles as N,useTheme as S}from"@material-ui/core";import{useMemo as p}from"react";import{calculateAdjustedBarWidths as w}from"../../utils/charts.esm.js";import{getChartColors as C}from"../Charts/chartUtils.esm.js";const E=N(()=>({container:{gap:"var(--bui-space-1)",width:"100%"},barSegment:{height:"var(--bui-space-1_5)",borderRadius:"var(--bui-space-1)"},emptyBar:{width:"100%",background:"var(--bui-fg-disabled)"}})),j=({track:a,status:r})=>{const d=S(),l=E(),c=p(()=>{if(!r||!a)return{};const e={};let t=0,s=0;(r.statusByLevel||[]).sort((n,m)=>m.ordinal-n.ordinal).forEach(({ordinal:n,cumulativelyPassed:m})=>{const L=a.levels.find(k=>k.ordinal===n)?.name??`Level ${n}`,b=m-s;e[L]=b,t+=b,s=m}),(r.statusByLevel||[]).reverse();const o=Math.max(0,r.numberOfEntities-t);return e["No Level"]=o,e},[r,a]),g=p(()=>{if(!r||!a)return{};const e=C(d),t={};return(r.statusByLevel||[]).forEach(({ordinal:s})=>{const o=a.levels.find(n=>n.ordinal===s)?.name??`Level ${s}`;t[o]=e[s%e.length]}),t["No Level"]=d.palette.action.disabled,t},[d,r,a]),i=(r?.statusByLevel||[]).map(({ordinal:e})=>a?.levels.find(t=>t.ordinal===e)?.name??`Level ${e}`);i.push("No Level");const f=i.map(e=>c[e]).filter(e=>typeof e=="number"),y=i.every(e=>(c[e]||0)===0),B=p(()=>w(f),[f]);if(!a||!r)return u($,{width:"100%"});let v;return y?v=u(h,{className:`${l.barSegment} ${l.emptyBar}`}):v=i.map((e,t)=>{const s=c[e],o=g[e]||"var(--bui-fg-disabled)",n=B[t]||0;return s<=0?null:u(h,{className:l.barSegment,style:{backgroundColor:o,width:`${n}%`}},`track-status-bar-segment-${t}`)}),u(x,{className:l.container,children:v})};export{j as TrackStatusBarBUI};
1
+ import{jsx as m}from"react/jsx-runtime";import{Skeleton as k,Flex as $}from"@backstage/ui";import{makeStyles as N,useTheme as S}from"@material-ui/core";import{useMemo as b}from"react";import{calculateAdjustedBarWidths as w}from"../../utils/charts.esm.js";import{getChartColors as x}from"../Charts/chartUtils.esm.js";const C=N(()=>({container:{gap:"var(--bui-space-1)",width:"100%"},barSegment:{height:"var(--bui-space-1_5)",borderRadius:"var(--bui-space-1)"},emptyBar:{width:"100%",background:"var(--bui-fg-disabled)"}})),E=({track:r,status:a})=>{const c=S(),l=C(),u=b(()=>{if(!a||!r)return{};const e={};let t=0,s=0;(a.statusByLevel||[]).sort((o,i)=>i.ordinal-o.ordinal).forEach(({ordinal:o,cumulativelyPassed:i})=>{const p=r.levels.find(L=>L.ordinal===o)?.name??`Level ${o}`,g=i-s;e[p]=g,t+=g,s=i}),(a.statusByLevel||[]).reverse();const n=Math.max(0,a.numberOfEntities-t);return e["No Level"]=n,e},[a,r]),h=b(()=>{if(!a||!r)return{};const e=x(c),t={};return(a.statusByLevel||[]).forEach(({ordinal:s})=>{const n=r.levels.find(p=>p.ordinal===s),o=n?.name??`Level ${s}`,i=n?.badge&&"color"in n.badge.options?n.badge.options.color:void 0;t[o]=i||e[s%e.length]}),t["No Level"]=c.palette.action.disabled,t},[c,a,r]),d=(a?.statusByLevel||[]).map(({ordinal:e})=>r?.levels.find(t=>t.ordinal===e)?.name??`Level ${e}`);d.push("No Level");const f=d.map(e=>u[e]).filter(e=>typeof e=="number"),y=d.every(e=>(u[e]||0)===0),B=b(()=>w(f),[f]);if(!r||!a)return m(k,{width:"100%"});let v;return y?v=m("div",{className:`${l.barSegment} ${l.emptyBar}`}):v=d.map((e,t)=>{const s=u[e],n=h[e]||"var(--bui-fg-disabled)",o=B[t]||0;return s<=0?null:m("div",{className:l.barSegment,style:{backgroundColor:n,width:`${o}%`}},`track-status-bar-segment-${t}`)}),m($,{className:l.container,children:v})};export{E as TrackStatusBarBUI};
2
2
  //# sourceMappingURL=TrackStatusBarBUI.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as a,jsxs as u}from"react/jsx-runtime";import{Text as f,Skeleton as g}from"@backstage/ui";import{makeStyles as w,createStyles as N,useTheme as S}from"@material-ui/core/styles";import{memo as T,useMemo as C,Fragment as I}from"react";import{compactNumberFormatter as b}from"../../utils/formatters.esm.js";import{getChartColors as L}from"../Charts/chartUtils.esm.js";const W=w(()=>N({container:{display:"grid",gridTemplateColumns:"3fr 2fr",gap:"var(--bui-space-1)",minWidth:0},item:{display:"flex",alignItems:"center",minWidth:0},legendDash:{width:"var(--bui-space-3)",height:"var(--bui-space-1_5)",borderRadius:"var(--bui-space-1)",marginRight:"var(--bui-space-2)"},category:{display:"flex",alignItems:"center",minWidth:0,flex:1},categoryText:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,flex:1},valueCell:{justifyContent:"flex-end",whiteSpace:"nowrap"},percentage:{marginLeft:"var(--bui-space-1)"}})),j=T(({track:t,status:s})=>{const v=S(),e=W(),i=s?.certificationStatus.numberOfEntities??0,y=C(()=>{if(!t)return[{name:"",key:1,color:"var(--bui-fg-disabled)",value:0},{name:"",key:2,color:"var(--bui-fg-disabled)",value:0},{name:"",key:3,color:"var(--bui-fg-disabled)",value:0}];const o=L(v);let n=0,c=0;const l=t.levels.sort((d,r)=>r.ordinal-d.ordinal).map(({name:d,ordinal:r})=>{const h=s?.certificationStatus.statusByLevel.find(k=>k.ordinal===r)?.cumulativelyPassed??0,p=h-c,x={name:d??`Level ${r}`,key:r,color:o[r%o.length]||"var(--bui-fg-disabled)",value:p};return n+=p,c=h,x}).reverse();t.levels.reverse();const m=Math.max(0,i-n);return l.push({name:"No Level",key:-1,color:"var(--bui-fg-disabled)",value:m}),l},[v,t,s,i]);return a("div",{className:e.container,children:y.map(({name:o,key:n,color:c,value:l})=>{const m=i>0?Math.round(l/i*100):0;return u(I,{children:[a("div",{className:e.item,children:u("div",{className:e.category,children:[a("span",{className:e.legendDash,style:{backgroundColor:c}}),t?a(f,{className:e.categoryText,variant:"body-small",children:o}):a(g,{width:80,height:20})]})}),a("div",{className:`${e.item} ${e.valueCell}`,children:t&&s?u(f,{variant:"body-small",children:[b(l)," of"," ",b(i)," (",m,"%)"]}):a(g,{width:120,height:20})})]},n)})})});export{j as TrackStatusTableBUI};
1
+ import{jsx as a,jsxs as v}from"react/jsx-runtime";import{Text as g,Skeleton as b}from"@backstage/ui";import{makeStyles as C,createStyles as N,useTheme as T}from"@material-ui/core/styles";import{memo as L,useMemo as W,Fragment as j}from"react";import{compactNumberFormatter as y}from"../../utils/formatters.esm.js";import{getChartColors as F}from"../Charts/chartUtils.esm.js";const I=C(()=>N({container:{display:"grid",gridTemplateColumns:"3fr 2fr",gap:"var(--bui-space-1)",minWidth:0},item:{display:"flex",alignItems:"center",minWidth:0},legendDash:{width:"var(--bui-space-3)",height:"var(--bui-space-1_5)",borderRadius:"var(--bui-space-1)",marginRight:"var(--bui-space-2)"},category:{display:"flex",alignItems:"center",minWidth:0,flex:1},categoryText:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",minWidth:0,flex:1},valueCell:{justifyContent:"flex-end",whiteSpace:"nowrap"},percentage:{marginLeft:"var(--bui-space-1)"}})),M=L(({track:r,status:o})=>{const h=T(),e=I(),i=o?.certificationStatus.numberOfEntities??0,x=W(()=>{if(!r)return[{name:"",key:1,color:"var(--bui-fg-disabled)",value:0},{name:"",key:2,color:"var(--bui-fg-disabled)",value:0},{name:"",key:3,color:"var(--bui-fg-disabled)",value:0}];const s=F(h);let n=0,c=0;const l=r.levels.sort((d,t)=>t.ordinal-d.ordinal).map(({name:d,ordinal:t,badge:u})=>{const p=o?.certificationStatus.statusByLevel.find(S=>S.ordinal===t)?.cumulativelyPassed??0,f=p-c,k=u&&"color"in u.options?u.options.color:void 0,w={name:d??`Level ${t}`,key:t,color:k||s[t%s.length]||"var(--bui-fg-disabled)",value:f};return n+=f,c=p,w}).reverse();r.levels.reverse();const m=Math.max(0,i-n);return l.push({name:"No Level",key:-1,color:"var(--bui-fg-disabled)",value:m}),l},[h,r,o,i]);return a("div",{className:e.container,children:x.map(({name:s,key:n,color:c,value:l})=>{const m=i>0?Math.round(l/i*100):0;return v(j,{children:[a("div",{className:e.item,children:v("div",{className:e.category,children:[a("span",{className:e.legendDash,style:{backgroundColor:c}}),r?a(g,{className:e.categoryText,variant:"body-small",children:s}):a(b,{width:80,height:20})]})}),a("div",{className:`${e.item} ${e.valueCell}`,children:r&&o?v(g,{variant:"body-small",children:[y(l)," of"," ",y(i)," (",m,"%)"]}):a(b,{width:120,height:20})})]},n)})})});export{M as TrackStatusTableBUI};
2
2
  //# sourceMappingURL=TrackStatusTableBUI.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as r,jsxs as p,Fragment as j}from"react/jsx-runtime";import{useRouteRef as k,useApi as q}from"@backstage/core-plugin-api";import{entityPresentationApiRef as D}from"@backstage/plugin-catalog-react";import{usePermission as M}from"@backstage/plugin-permission-react";import{Container as l,HeaderPage as U,Box as b,Flex as $,SearchField as z}from"@backstage/ui";import{makeStyles as J}from"@material-ui/core";import{soundcheckTrackReadPermission as K}from"@spotify/backstage-plugin-soundcheck-common";import{useState as I,useMemo as T,useEffect as Q}from"react";import{useSearchParams as W,useParams as X}from"react-router-dom";import Y from"react-use/lib/useDebounce";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{useTrack as _}from"../../hooks/tracks/useTrack.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import"react-use/lib/useAsync";import"../../graphql/generated/index.esm.js";import"react-use/lib/useAsyncRetry";import{useHierarchicalTrackStatus as ee}from"../../hooks/heirarchy/useHierarchicalTrackStatus.esm.js";import{useGroupHierarchy as re}from"../../hooks/heirarchy/useGroupHierarchy.esm.js";import{useLCPReporting as te}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as oe}from"../../hooks/useLoadTimeReporting.esm.js";import{tracksPageRouteRef as ie,trackOverviewRouteRef as ae,trackExplorerRouteRef as me}from"../../routes.esm.js";import{getAllOwnedEntityCount as se}from"../../utils/getAllOwnedEntityCount.esm.js";import{getEntitiesBucket as ne,getTracksBucket as ce}from"../../utils/helpers.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as A}from"../EmptyState/EmptyStateBUI.esm.js";import"@remixicon/react";import"../HierarchicalTechInsightsPage/visualizations/NivoCirclePacking.esm.js";import"../HierarchicalTechInsightsPage/visualizations/NivoHeatmap.esm.js";import"../HierarchicalTechInsightsPage/visualizations/NivoIcicle.esm.js";import"../HierarchicalTechInsightsPage/visualizations/NivoSunburst.esm.js";import"../HierarchicalTechInsightsPage/visualizations/NivoTreemap.esm.js";import"../HierarchicalTechInsightsPage/visualizations/VisualizationBreadcrumb.esm.js";import{hierarchyToNivo as pe}from"../HierarchicalTechInsightsPage/visualizations/hierarchyToNivo.esm.js";import{LoadingTableSkeleton as le}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{SimpleMenu as de}from"../Menus/SimpleMenu.esm.js";import"js-yaml";import"lodash";import{useTrackActions as ue}from"../Menus/useTrackActions.esm.js";import"uuid";import"../CampaignPage/CampaignActionsContext.esm.js";import"../CampaignsPage/CampaignListPage/useArchiveConfirmationModal.esm.js";import{TechInsightsExplorerTable as fe}from"../TechInsightsExplorerTable/TechInsightsExplorerTable.esm.js";import{TechInsightsGroupSelector as he}from"../TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js";import{TopAndBottomPerformingTeams as ge}from"../TopAndBottomPerformingTeams/TopAndBottomPerformingTeams.esm.js";const ke=J(()=>({container:{marginBottom:"var(--bui-space-12)"},teams:{margin:"0 0 var(--bui-space-12)"},tableContent:{margin:"var(--bui-space-3) 0 0"},filters:{width:"25rem",marginLeft:"auto"}})),be=()=>{const i=ke(),[d,N]=W(),[a,y]=I(d.get("search")||""),t=d.get("group"),[u,C]=I(""),{trackId:e}=X(),{data:f,isLoading:s}=_(e),v=ue(f??void 0),E=k(ie);Y(()=>{C(a);const o=new URLSearchParams(d.toString());a?o.set("search",a):o.delete("search"),N(o,{replace:!0})},300,[a]);const R=T(()=>({routeName:"soundcheck-tech-insights-explorer",additionalAttributes:{trackId:e||"",group:t||"",groupsSearch:u||""}}),[e,t,u]),{reportContentLoaded:S}=oe(R),{reporter:B}=te(R),{loading:O,allowed:F}=M({permission:K,resourceRef:e}),{data:h,isLoading:n}=ee({trackId:e??"",groupRef:t??"",skip:!e}),{data:L}=Z({}),m=T(()=>L?.edges.find(o=>o.node.id===e)?.node,[L?.edges,e]),{data:c,isLoading:g}=re(t||void 0,{enabled:!!t&&!!e&&!!m,ownedEntitiesFilter:m?.filter??void 0}),P=q(D),G=T(()=>{if(!t)return;const o=c?.[t];return o?pe(o,h||null,()=>"var(--bui-fg-primary)",P,void 0):void 0},[c,P,t,h]),w=B?.getLCPValue();Q(()=>{if(!s&&!g&&!n){const o=t?se(c?.[t]):0,x=m?1:0;S({lcp:w,numberOfEntities:o,entitiesBucket:ne(o),numberOfTracks:x,tracksBucket:ce(x)})}},[s,S,g,n,c,t,m,w]);const H=k(ae),V=k(me);return s?r(l,{className:i.container,children:r(le,{})}):!s&&!f?r(l,{className:i.container,children:r(A,{title:"Track not found",body:`There is no track with the requested id: ${e}.`})}):!O&&!F?r(l,{className:i.container,children:r(A,{title:"Cannot view track",body:`No permission to view track with the requested id: ${e}.`})}):p(j,{children:[r(U,{title:f?.name,customActions:r(de,{label:"Track Actions",disabled:!v.length,placement:"left top",menuActions:v}),breadcrumbs:[{label:"Tracks",href:E()}],tabs:[{id:"overview",label:"Track Overview",href:e?H({trackId:e}):""},{id:"explorer",label:"Tech Insights Explorer",href:e?V({trackId:e}):""}]}),p(l,{className:i.container,children:[r(b,{className:i.teams,children:r(ge,{trackStatus:h??void 0,isLoading:n})}),p(b,{children:[p($,{align:"center",gap:"3",className:i.filters,children:[r(he,{}),r(z,{value:a,onChange:y,"aria-label":"Search",placeholder:"Search"})]}),r(b,{className:i.tableContent,children:r(fe,{tableData:G,isLoading:g||n,selectedGroup:t??void 0,searchValue:u,trackId:m?.id})})]})]})]})};export{be as TrackTechInsightsExplorerPage};
1
+ import{jsx as r,jsxs as p,Fragment as j}from"react/jsx-runtime";import{useRouteRef as k,useApi as q}from"@backstage/core-plugin-api";import{entityPresentationApiRef as D}from"@backstage/plugin-catalog-react";import{usePermission as M}from"@backstage/plugin-permission-react";import{Container as l,HeaderPage as U,Box as b,Flex as $,SearchField as z}from"@backstage/ui";import{makeStyles as J}from"@material-ui/core";import{soundcheckTrackReadPermission as K}from"@spotify/backstage-plugin-soundcheck-common";import{useState as I,useMemo as T,useEffect as Q}from"react";import{useSearchParams as W,useParams as X}from"react-router-dom";import Y from"react-use/lib/useDebounce";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{useTrack as _}from"../../hooks/tracks/useTrack.esm.js";import"../../hooks/useConfirmationModal.esm.js";import"react-use/lib/useLocalStorage";import"react-use/lib/useAsync";import"../ChecksTable/utils.esm.js";import"../../graphql/generated/index.esm.js";import"react-use/lib/useAsyncRetry";import{useHierarchicalTrackStatus as ee}from"../../hooks/heirarchy/useHierarchicalTrackStatus.esm.js";import{useGroupHierarchy as re}from"../../hooks/heirarchy/useGroupHierarchy.esm.js";import{useLCPReporting as te}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as oe}from"../../hooks/useLoadTimeReporting.esm.js";import{tracksPageRouteRef as ie,trackOverviewRouteRef as ae,trackExplorerRouteRef as me}from"../../routes.esm.js";import{getAllOwnedEntityCount as se}from"../../utils/getAllOwnedEntityCount.esm.js";import{getEntitiesBucket as ne,getTracksBucket as ce}from"../../utils/helpers.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as y}from"../EmptyState/EmptyStateBUI.esm.js";import"@remixicon/react";import{LoadingTableSkeleton as pe}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import{SimpleMenu as le}from"../Menus/SimpleMenu.esm.js";import"js-yaml";import"lodash";import{useTrackActions as de}from"../Menus/useTrackActions.esm.js";import"uuid";import"../CampaignPage/CampaignActionsContext.esm.js";import"../CampaignsPage/useArchiveConfirmationModal.esm.js";import"../TechInsights/TechInsightsPageBUI.esm.js";import{hierarchyToNivo as ue}from"../TechInsights/hierarchyToNivo.esm.js";import{TechInsightsExplorerTable as fe}from"../TechInsightsExplorerTable/TechInsightsExplorerTable.esm.js";import{TechInsightsGroupSelector as he}from"../TechInsightsGroupSelector/TechInsightsGroupSelector.esm.js";import{TopAndBottomPerformingTeams as ge}from"../TopAndBottomPerformingTeams/TopAndBottomPerformingTeams.esm.js";const ke=J(()=>({container:{marginBottom:"var(--bui-space-12)"},teams:{margin:"0 0 var(--bui-space-12)"},tableContent:{margin:"var(--bui-space-3) 0 0"},filters:{width:"25rem",marginLeft:"auto"}})),be=()=>{const i=ke(),[d,A]=W(),[a,N]=I(d.get("search")||""),t=d.get("group"),[u,C]=I(""),{trackId:e}=X(),{data:f,isLoading:s}=_(e),v=de(f??void 0),E=k(ie);Y(()=>{C(a);const o=new URLSearchParams(d.toString());a?o.set("search",a):o.delete("search"),A(o,{replace:!0})},300,[a]);const R=T(()=>({routeName:"soundcheck-tech-insights-explorer",additionalAttributes:{trackId:e||"",group:t||"",groupsSearch:u||""}}),[e,t,u]),{reportContentLoaded:S}=oe(R),{reporter:B}=te(R),{loading:O,allowed:F}=M({permission:K,resourceRef:e}),{data:h,isLoading:n}=ee({trackId:e??"",groupRef:t??"",skip:!e}),{data:L}=Z({}),m=T(()=>L?.edges.find(o=>o.node.id===e)?.node,[L?.edges,e]),{data:c,isLoading:g}=re(t||void 0,{enabled:!!t&&!!e&&!!m,ownedEntitiesFilter:m?.filter??void 0}),P=q(D),G=T(()=>{if(!t)return;const o=c?.[t];return o?ue(o,h||null,()=>"var(--bui-fg-primary)",P,void 0):void 0},[c,P,t,h]),w=B?.getLCPValue();Q(()=>{if(!s&&!g&&!n){const o=t?se(c?.[t]):0,x=m?1:0;S({lcp:w,numberOfEntities:o,entitiesBucket:ne(o),numberOfTracks:x,tracksBucket:ce(x)})}},[s,S,g,n,c,t,m,w]);const H=k(ae),V=k(me);return s?r(l,{className:i.container,children:r(pe,{})}):!s&&!f?r(l,{className:i.container,children:r(y,{title:"Track not found",body:`There is no track with the requested id: ${e}.`})}):!O&&!F?r(l,{className:i.container,children:r(y,{title:"Cannot view track",body:`No permission to view track with the requested id: ${e}.`})}):p(j,{children:[r(U,{title:f?.name,customActions:r(le,{label:"Track Actions",disabled:!v.length,placement:"left top",menuActions:v}),breadcrumbs:[{label:"Tracks",href:E()}],tabs:[{id:"overview",label:"Track Overview",href:e?H({trackId:e}):""},{id:"explorer",label:"Tech Insights Explorer",href:e?V({trackId:e}):""}]}),p(l,{className:i.container,children:[r(b,{className:i.teams,children:r(ge,{trackStatus:h??void 0,isLoading:n})}),p(b,{children:[p($,{align:"center",gap:"3",className:i.filters,children:[r(he,{}),r(z,{value:a,onChange:N,"aria-label":"Search",placeholder:"Search"})]}),r(b,{className:i.tableContent,children:r(fe,{tableData:G,isLoading:g||n,selectedGroup:t??void 0,searchValue:u,trackId:m?.id})})]})]})]})};export{be as TrackTechInsightsExplorerPage};
2
2
  //# sourceMappingURL=TrackTechInsightsExplorerPage.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as t,jsxs as d,Fragment as Y}from"react/jsx-runtime";import{useApi as z,useRouteRef as B}from"@backstage/core-plugin-api";import{entityPresentationApiRef as _}from"@backstage/plugin-catalog-react";import{usePermission as q}from"@backstage/plugin-permission-react";import{HeaderPage as X,Flex as Z,Container as ee,TableRoot as te,TableHeader as re,Column as m,TableBody as oe,TablePagination as ie}from"@backstage/ui";import{makeStyles as ae}from"@material-ui/core";import{soundcheckTrackCreatePermission as ne}from"@spotify/backstage-plugin-soundcheck-common";import{sortBy as se,isEmpty as R}from"lodash";import{useState as T,useMemo as u,useEffect as me}from"react";import{useSearchParams as ce}from"react-router-dom";import pe from"react-use/lib/useDebounce";import{soundcheckApiRef as le}from"../../api.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../hooks/graphqlKeys.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetAllTracks as de}from"../../hooks/tracks/useGetAllTracks.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{usePagination as fe}from"../../hooks/usePagination.esm.js";import"react-use/lib/useLocalStorage";import"react-use/lib/useAsync";import"../../graphql/generated/index.esm.js";import"react-use/lib/useAsyncRetry";import{useProfileImages as ge}from"../../hooks/catalog/useProfileImages.esm.js";import{useImportTracks as ue}from"../../hooks/tracks/useImportTracks.esm.js";import{useLCPReporting as he}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as Pe}from"../../hooks/useLoadTimeReporting.esm.js";import{useSearchNameOwner as we}from"../../hooks/useSearchNameOwner.esm.js";import{newTrackRouteRef as ye,trackDetailsRouteRef as ke}from"../../routes.esm.js";import{exportTracks as Se}from"../../utils/export.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as Re}from"../EmptyState/EmptyStateBUI.esm.js";import{EmptyStateNoTracks as Te}from"../EmptyState/EmptyStateNoTracks.esm.js";import"@remixicon/react";import{ImportExportPanelBUI as ve}from"../ImportExportPanel/ImportExportPanelBUI.esm.js";import"../ImportExportPanel/ImportExportPanelDeprecated.esm.js";import{ListPageCustomActions as Ce}from"../ListPageCustomActions/ListPageCustomActions.esm.js";import{LoadingTableSkeleton as Le}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import"../Menus/SimpleMenu.esm.js";import{useTrackActions as Ie}from"../Menus/useTrackActions.esm.js";import"uuid";import"../CampaignPage/CampaignActionsContext.esm.js";import"../CampaignsPage/CampaignListPage/useArchiveConfirmationModal.esm.js";import{TableRowWithOwner as Ee}from"../TableRowWithOwner/TableRowWithOwner.esm.js";const D=10,Ae=["name","status","owner"],be=({track:r,profileImageMap:a})=>{const c=u(()=>r.levels.reduce((p,P)=>p+(P.checks?.length??0),0),[r.levels]),o=B(ke),h=Ie(r);return t(Ee,{ownerEntityRef:r.ownerEntityRef,href:o({trackId:r.id}),menuActions:h,profileImageSrc:a[r.ownerEntityRef],name:r.name??r.id,description:r.description??"",documentationURL:r.documentationURL??void 0,cells:[{title:r.draft?"Draft":"Active"},{title:`${r.levels.length} Level${r.levels.length===1?"":"s"}`},{title:`${c} Check${c===1?"":"s"}`}]})},xe=ae(()=>({container:{marginBottom:"var(--bui-space-12)"}})),Ne=()=>{const r=xe(),[a,c]=ce(),[o,h]=T(()=>a.get("search")??""),[p,P]=T(()=>a.get("sortDirection")==="descending"?"descending":"ascending"),[l,H]=T(()=>{const e=a.get("sort");return e&&Ae.includes(e)?e:""}),v=u(()=>({routeName:"soundcheck-tracks"}),[]),{reportContentLoaded:C}=Pe(v),{reporter:M}=he(v),{data:L,isLoading:n}=de({types:["standard","playlist"]}),w=u(()=>L?.edges?.map(e=>e.node)??[],[L?.edges]),{profileImageMap:$}=ge(w.map(e=>e.ownerEntityRef)),I=z(_),y=we(w,o),f=u(()=>{if(!l)return y;const e=se(y,s=>l==="owner"?I.forEntity(s.ownerEntityRef).snapshot.primaryTitle.toLowerCase():l==="status"?s.draft?"draft":"active":s.name.toLowerCase());return p==="descending"&&e.reverse(),e},[I,l,p,y]),{paginatedItems:k,reset:E,paginationProps:i}=fe({pageParam:"perPage",defaultPageSize:D,items:f});pe(()=>{E();const e=new URLSearchParams(a.toString());o?e.set("search",o):e.delete("search"),c(e,{replace:!0})},300,[o]);const V=({direction:e,column:s})=>{const S=String(s);H(S),P(e),E();const g=new URLSearchParams(a);S?g.set("sort",S):g.delete("sort"),g.set("sortDirection",e),c(g,{replace:!0})},A=M?.getLCPValue();me(()=>{n||C({lcp:A})},[n,C,A]);const F=B(ye),{loading:b,allowed:x}=q({permission:ne}),O=z(le),{mutateAsync:j}=ue(),G=async e=>j(e),W=async()=>{const e=await O.getTracks({orderAlphabetical:"asc"});return Se(e.edges.map(s=>s.node))},J=!n&&!R(k),K=f.length>D,N=!n&&R(k),Q=n;let U=null;return N&&(U=o?t(Re,{title:"No tracks found",body:"Your current search term did not return any tracks. Please try a different search term."}):t(Te,{})),d(Y,{children:[t(X,{title:"Tracks",customActions:d(Z,{gap:"2",align:"center",children:[t(ve,{resourceType:"track",disableImport:!b&&!x,disableExport:n||R(w),onImport:G,onExport:W}),t(Ce,{searchValue:o,setSearchValue:h,canCreate:!b&&x,createHref:F()})]})}),d(ee,{className:r.container,children:[Q&&t(Le,{rowCount:10}),N&&U,J&&d(te,{onSortChange:V,sortDescriptor:{direction:p,column:l},children:[d(re,{children:[t(m,{id:"name",allowsSorting:!0,isRowHeader:!0,style:{width:"50%"},children:"Track Name"}),t(m,{allowsSorting:!0,id:"status",style:{width:"10%"},children:"Status"}),t(m,{id:"levels",style:{width:"10%"},children:"Levels"}),t(m,{id:"checks",style:{width:"10%"},children:"Checks"}),t(m,{id:"owner",allowsSorting:!0,style:{width:"15%"},children:"Track Owner"}),t(m,{id:"actions",style:{width:"3%"}})]}),t(oe,{children:!n&&k.map(e=>t(be,{track:e,profileImageMap:$??{}},e.id))})]}),K&&t(ie,{totalCount:f.length,offset:i.offset,hasNextPage:i.offset+i.pageSize<(f.length??0),hasPreviousPage:i.offset>0,onNextPage:i.onNextPage,onPreviousPage:i.onPreviousPage,onPageSizeChange:i.onPageSizeChange,pageSize:i.pageSize})]})]})};export{Ne as TracksListPageBUI};
1
+ import{jsx as r,jsxs as g,Fragment as se}from"react/jsx-runtime";import{useApi as F,useRouteRef as O}from"@backstage/core-plugin-api";import{entityPresentationApiRef as ne}from"@backstage/plugin-catalog-react";import{usePermission as me}from"@backstage/plugin-permission-react";import{HeaderPage as le,Flex as ce,Container as pe,TableRoot as de,TableHeader as fe,Column as c,TableBody as ge,TablePagination as ue}from"@backstage/ui";import{makeStyles as he}from"@material-ui/core";import{soundcheckTrackCreatePermission as we}from"@spotify/backstage-plugin-soundcheck-common";import{sortBy as Pe,isEmpty as T}from"lodash";import{useState as v,useMemo as m,useEffect as ye}from"react";import{useSearchParams as ke}from"react-router-dom";import Se from"react-use/lib/useDebounce";import{soundcheckApiRef as Te}from"../../api.esm.js";import"@backstage/catalog-model";import"@tanstack/react-query";import"../../hooks/graphqlKeys.esm.js";import"../../hooks/useSoundcheckAlert.esm.js";import{useGetAllTracks as ve}from"../../hooks/tracks/useGetAllTracks.esm.js";import"../../hooks/useConfirmationModal.esm.js";import{usePagination as Re,DEFAULT_PAGE_SIZE as B}from"../../hooks/usePagination.esm.js";import"react-use/lib/useLocalStorage";import"react-use/lib/useAsync";import"../ChecksTable/utils.esm.js";import"../../graphql/generated/index.esm.js";import"react-use/lib/useAsyncRetry";import{useProfileImages as Le}from"../../hooks/catalog/useProfileImages.esm.js";import{useOwnerFilterOptions as Ae,useListPageFilters as Ee}from"../../hooks/filters/useListPageFilters.esm.js";import{useImportTracks as be}from"../../hooks/tracks/useImportTracks.esm.js";import{useLCPReporting as Ce}from"../../hooks/useLCPReporting.esm.js";import{useLoadTimeReporting as Ie}from"../../hooks/useLoadTimeReporting.esm.js";import{useSearchNameOwner as xe}from"../../hooks/useSearchNameOwner.esm.js";import{newTrackRouteRef as De,trackDetailsRouteRef as Ne}from"../../routes.esm.js";import{exportTracks as Ue}from"../../utils/export.esm.js";import"../EmptyState/EmptyState.esm.js";import{EmptyStateBUI as ze}from"../EmptyState/EmptyStateBUI.esm.js";import{EmptyStateNoTracks as Fe}from"../EmptyState/EmptyStateNoTracks.esm.js";import"@remixicon/react";import{ImportExportPanelBUI as Oe}from"../ImportExportPanel/ImportExportPanelBUI.esm.js";import{ListPageCustomActions as Be}from"../ListPageCustomActions/ListPageCustomActions.esm.js";import{LoadingTableSkeleton as He}from"../LoadingTableSkeleton/LoadingTableSkeleton.esm.js";import"../Menus/SimpleMenu.esm.js";import{useTrackActions as $e}from"../Menus/useTrackActions.esm.js";import"uuid";import"../CampaignPage/CampaignActionsContext.esm.js";import"../CampaignsPage/useArchiveConfirmationModal.esm.js";import{TableRowWithOwner as Me}from"../TableRowWithOwner/TableRowWithOwner.esm.js";const Ve=["name","status","owner"];var Ge=(t=>(t.Active="Active",t.Draft="Draft",t))(Ge||{});const _e=[{label:"Active",value:"Active"},{label:"Draft",value:"Draft"}],je=({track:t,profileImageMap:i})=>{const p=m(()=>t.levels.reduce((d,P)=>d+(P.checks?.length??0),0),[t.levels]),o=O(Ne),w=$e(t);return r(Me,{ownerEntityRef:t.ownerEntityRef,href:o({trackId:t.id}),menuActions:w,profileImageSrc:i[t.ownerEntityRef],name:t.name??t.id,description:t.description??"",documentationURL:t.documentationURL??void 0,cells:[{title:t.draft?"Draft":"Active"},{title:`${t.levels.length} Level${t.levels.length===1?"":"s"}`},{title:`${p} Check${p===1?"":"s"}`}]})},Ke=he(()=>({container:{marginBottom:"var(--bui-space-12)"}})),We=()=>{const t=Ke(),[i,p]=ke(),[o,w]=v(()=>i.get("search")??""),[d,P]=v(()=>i.get("sortDirection")==="descending"?"descending":"ascending"),[f,H]=v(()=>{const e=i.get("sort");return e&&Ve.includes(e)?e:""}),R=m(()=>({routeName:"soundcheck-tracks"}),[]),{reportContentLoaded:L}=Ie(R),{reporter:$}=Ce(R),{data:A,isLoading:s}=ve({types:["standard","playlist"]}),l=m(()=>A?.edges?.map(e=>e.node)??[],[A?.edges]),{profileImageMap:M}=Le(l.map(e=>e.ownerEntityRef)),E=F(ne),V=m(()=>l.map(e=>e.ownerEntityRef),[l]),b=Ae(V),G=m(()=>[{key:"owners",label:"Owner",options:b,tagLabelPrefix:"owner"},{key:"statuses",label:"Status",options:_e,tagLabelPrefix:"status"}],[b]),{filters:_,selected:j,setSelected:K,selectedTags:W,onRemoveTag:Y,filterItems:C,hasActiveFilters:Z}=Ee(G,"tracks"),q=m(()=>C(l,{owners:{getValue:e=>e.ownerEntityRef},statuses:{getValue:e=>e.draft?"Draft":"Active",defaultFilter:e=>!e.draft}}),[l,C]),y=xe(q,o),u=m(()=>{if(!f)return y;const e=Pe(y,n=>f==="owner"?E.forEntity(n.ownerEntityRef).snapshot.primaryTitle.toLowerCase():f==="status"?n.draft?"draft":"active":n.name.toLowerCase());return d==="descending"&&e.reverse(),e},[E,f,d,y]),{paginatedItems:k,reset:I,paginationProps:a}=Re({pageParam:"perPage",defaultPageSize:B,items:u});Se(()=>{I();const e=new URLSearchParams(i.toString());o?e.set("search",o):e.delete("search"),p(e,{replace:!0})},300,[o]);const J=({direction:e,column:n})=>{const S=String(n);H(S),P(e),I();const h=new URLSearchParams(i);S?h.set("sort",S):h.delete("sort"),h.set("sortDirection",e),p(h,{replace:!0})},x=$?.getLCPValue();ye(()=>{s||L({lcp:x})},[s,L,x]);const Q=O(De),{loading:D,allowed:N}=me({permission:we}),X=F(Te),{mutateAsync:ee}=be(),te=async e=>ee(e),re=async()=>{const e=await X.getTracks({orderAlphabetical:"asc"});return Ue(e.edges.map(n=>n.node))},oe=!s&&!T(k),ae=u.length>B,U=!s&&T(k),ie=s;let z=null;return U&&(z=o||Z?r(ze,{title:"No tracks found",body:"Your current search or filter did not return any tracks. Please try a different search term or filter."}):r(Fe,{})),g(se,{children:[r(le,{title:"Tracks",customActions:g(ce,{gap:"2",align:"center",children:[r(Oe,{resourceType:"track",disableImport:!D&&!N,disableExport:s||T(l),onImport:te,onExport:re}),r(Be,{searchValue:o,setSearchValue:w,canCreate:!D&&N,createHref:Q(),filterProps:{filters:_,selected:j,setSelected:K,selectedTags:W,onRemoveTag:Y}})]})}),g(pe,{className:t.container,children:[ie&&r(He,{rowCount:10}),U&&z,oe&&g(de,{onSortChange:J,sortDescriptor:{direction:d,column:f},children:[g(fe,{children:[r(c,{id:"name",allowsSorting:!0,isRowHeader:!0,style:{width:"50%"},children:"Track Name"}),r(c,{allowsSorting:!0,id:"status",style:{width:"10%"},children:"Status"}),r(c,{id:"levels",style:{width:"10%"},children:"Levels"}),r(c,{id:"checks",style:{width:"10%"},children:"Checks"}),r(c,{id:"owner",allowsSorting:!0,style:{width:"15%"},children:"Track Owner"}),r(c,{id:"actions",style:{width:"3%"}})]}),r(ge,{children:!s&&k.map(e=>r(je,{track:e,profileImageMap:M??{}},e.id))})]}),ae&&r(ue,{totalCount:u.length,offset:a.offset,hasNextPage:a.offset+a.pageSize<(u.length??0),hasPreviousPage:a.offset>0,onNextPage:a.onNextPage,onPreviousPage:a.onPreviousPage,onPageSizeChange:a.onPageSizeChange,pageSize:a.pageSize})]})]})};export{We as TracksListPageBUI};
2
2
  //# sourceMappingURL=TracksListPageBUI.esm.js.map
@@ -1,2 +1,2 @@
1
- import{jsx as d}from"react/jsx-runtime";import{stringifyEntityRef as g}from"@backstage/catalog-model";import{useApi as a,identityApiRef as p}from"@backstage/core-plugin-api";import{catalogApiRef as y}from"@backstage/plugin-catalog-react";import{createContext as R,useState as E,useEffect as v,useContext as x}from"react";import w from"react-use/lib/useAsync";const f={loading:!0},l=R(f),A=()=>x(l),C=({children:u})=>{const[m,n]=E(f),s=a(y),t=a(p),{value:e,loading:r,error:o}=w(async()=>{const[{token:i},c]=await Promise.all([t.getCredentials(),t.getBackstageIdentity()]);return i?await s.getEntityByRef(c.userEntityRef):null},[s,t]);return v(()=>{if(e){const i=g(e);n({user:e,userEntityRef:i,loading:r,error:o})}else n({loading:r,error:o})},[e,r,o]),d(l.Provider,{value:m,children:u})};export{C as UserProvider,A as useLoggedInUser};
1
+ import{jsx as d}from"react/jsx-runtime";import{stringifyEntityRef as g}from"@backstage/catalog-model";import{useApi as a,identityApiRef as p}from"@backstage/core-plugin-api";import{catalogApiRef as y}from"@backstage/plugin-catalog-react";import{createContext as R,useState as E,useEffect as v,useContext as x}from"react";import A from"react-use/lib/useAsync";const f={loading:!0},l=R(f),C=()=>x(l),P=({children:u})=>{const[m,n]=E(f),s=a(y),t=a(p),{value:e,loading:r,error:o}=A(async()=>{const[{token:i},c]=await Promise.all([t.getCredentials(),t.getBackstageIdentity()]);return i?await s.getEntityByRef(c.userEntityRef):null},[s,t]);return v(()=>{if(e){const i=g(e);n({user:e,userEntityRef:i,loading:r,error:o})}else n({loading:r,error:o})},[e,r,o]),d(l.Provider,{value:m,children:u})};export{P as UserProvider,C as useLoggedInUser};
2
2
  //# sourceMappingURL=UserProvider.esm.js.map
@@ -1,4 +1,4 @@
1
- import s from"graphql-tag";var l=(i=>(i.Medal="MEDAL",i.Status="STATUS",i))(l||{}),d=(i=>(i.Lifecycle="LIFECYCLE",i.Name="NAME",i.Owner="OWNER",i.State="STATE",i.System="SYSTEM",i.Type="TYPE",i))(d||{}),p=(i=>(i.Default="default",i.Manual="manual",i))(p||{}),g=(i=>(i.Asc="ASC",i.Desc="DESC",i))(g||{}),m=(i=>(i.All="ALL",i.Any="ANY",i))(m||{}),k=(i=>(i.Error="ERROR",i.Exempt="EXEMPT",i.Failed="FAILED",i.NotApplicable="NOT_APPLICABLE",i.NotReported="NOT_REPORTED",i.Passed="PASSED",i.Warning="WARNING",i))(k||{}),f=(i=>(i.Failed="FAILED",i.NotReported="NOT_REPORTED",i.Passed="PASSED",i))(f||{}),y=(i=>(i.CertificationLevel="CERTIFICATION_LEVEL",i.CheckPassRate="CHECK_PASS_RATE",i.Lifecycle="LIFECYCLE",i.Name="NAME",i.Owner="OWNER",i.System="SYSTEM",i.Type="TYPE",i))(y||{});const u=s`
1
+ import s from"graphql-tag";var l=(i=>(i.Medal="MEDAL",i.Status="STATUS",i))(l||{}),d=(i=>(i.Kind="KIND",i.Lifecycle="LIFECYCLE",i.Name="NAME",i.Owner="OWNER",i.State="STATE",i.System="SYSTEM",i.Type="TYPE",i))(d||{}),p=(i=>(i.Default="default",i.Manual="manual",i))(p||{}),g=(i=>(i.Asc="ASC",i.Desc="DESC",i))(g||{}),m=(i=>(i.All="ALL",i.Any="ANY",i))(m||{}),k=(i=>(i.Error="ERROR",i.Exempt="EXEMPT",i.Failed="FAILED",i.NotApplicable="NOT_APPLICABLE",i.NotReported="NOT_REPORTED",i.Passed="PASSED",i.Warning="WARNING",i))(k||{}),f=(i=>(i.Failed="FAILED",i.NotReported="NOT_REPORTED",i.Passed="PASSED",i))(f||{}),y=(i=>(i.CertificationLevel="CERTIFICATION_LEVEL",i.CheckPassRate="CHECK_PASS_RATE",i.Lifecycle="LIFECYCLE",i.Name="NAME",i.Owner="OWNER",i.System="SYSTEM",i.Type="TYPE",i))(y||{});const u=s`
2
2
  fragment BadgeVariants on Badge {
3
3
  ... on BadgeVariantMedal {
4
4
  variant
@@ -195,7 +195,7 @@ ${v}`,R=s`
195
195
  deleted
196
196
  }
197
197
  }
198
- `,x=s`
198
+ `,F=s`
199
199
  mutation executeCheck($input: ExecuteCheckInput!) {
200
200
  result: executeCheck(input: $input) {
201
201
  id
@@ -221,7 +221,7 @@ ${v}`,R=s`
221
221
  }
222
222
  }
223
223
  }
224
- `,F=s`
224
+ `,x=s`
225
225
  mutation importCheckers($checkers: JSON!) {
226
226
  status: importCheckers(checkers: $checkers) {
227
227
  created {
@@ -384,11 +384,11 @@ ${v}`,R=s`
384
384
  configSchema
385
385
  }
386
386
  }
387
- `,J=s`
387
+ `,j=s`
388
388
  mutation deleteView($input: DeleteViewInput!) {
389
389
  deleteView(input: $input)
390
390
  }
391
- `,j=s`
391
+ `,J=s`
392
392
  mutation recordLoadTime($input: LoadTimeInput!) {
393
393
  recordLoadTime(input: $input)
394
394
  }
@@ -400,7 +400,7 @@ ${v}`,R=s`
400
400
  description
401
401
  }
402
402
  }
403
- `,X=s`
403
+ `,Q=s`
404
404
  query getAllCertifications($entityRef: String!, $includeFilteredChecks: Boolean, $includeDraftTracks: Boolean) {
405
405
  certifications(
406
406
  entityRef: $entityRef
@@ -410,11 +410,11 @@ ${v}`,R=s`
410
410
  ...CertificationSummary
411
411
  }
412
412
  }
413
- ${C}`,z=s`
413
+ ${C}`,X=s`
414
414
  query getCampaignOwners {
415
415
  campaignOwners
416
416
  }
417
- `,Q=s`
417
+ `,z=s`
418
418
  query getCampaigns($filter: ListEntityFilter!, $byTrackIds: Boolean) {
419
419
  campaigns(filter: $filter, byTrackIds: $byTrackIds) {
420
420
  totalCount
@@ -714,6 +714,7 @@ ${c}`,te=s`
714
714
  notApplicableMessage
715
715
  filter
716
716
  isEditable
717
+ isDefinedInYamlAndNcui
717
718
  schedule
718
719
  pathResolver
719
720
  templateRef
@@ -741,6 +742,7 @@ ${c}`,te=s`
741
742
  notApplicableMessage
742
743
  filter
743
744
  isEditable
745
+ isDefinedInYamlAndNcui
744
746
  schedule
745
747
  pathResolver
746
748
  templateRef
@@ -859,6 +861,13 @@ ${c}`,te=s`
859
861
  rule
860
862
  schedule
861
863
  }
864
+ jobQueueStatus {
865
+ waiting
866
+ active
867
+ latestCompletedTime
868
+ latestFailedTime
869
+ queueType
870
+ }
862
871
  }
863
872
  }
864
873
  `,$e=s`
@@ -981,7 +990,7 @@ ${c}`,te=s`
981
990
  title
982
991
  }
983
992
  }
984
- `,xe=s`
993
+ `,Fe=s`
985
994
  query getOutOfBoxTracks {
986
995
  outOfBoxTracks {
987
996
  id
@@ -1011,7 +1020,7 @@ ${c}`,te=s`
1011
1020
  }
1012
1021
  }
1013
1022
  }
1014
- `,Fe=s`
1023
+ `,xe=s`
1015
1024
  query getOverallCheckPassRates($filter: Filter) {
1016
1025
  overallCheckPassRates(filter: $filter)
1017
1026
  }
@@ -1201,7 +1210,7 @@ ${$}`,Ye=s`
1201
1210
  }
1202
1211
  }
1203
1212
  }
1204
- `,Je=s`
1213
+ `,je=s`
1205
1214
  query getTrackStatusHistory($input: TrackStatusHistoryInput!) {
1206
1215
  trackStatusHistory(input: $input) {
1207
1216
  id
@@ -1228,7 +1237,7 @@ ${$}`,Ye=s`
1228
1237
  }
1229
1238
  }
1230
1239
  }
1231
- `,je=s`
1240
+ `,Je=s`
1232
1241
  query getTracks($filter: ListEntityFilter!) {
1233
1242
  tracks(filter: $filter) {
1234
1243
  totalCount
@@ -1274,5 +1283,5 @@ ${u}`,Ke=s`
1274
1283
  }
1275
1284
  }
1276
1285
  }
1277
- `,Xe=(i,n,e,t)=>i();function ze(i,n=Xe){return{archiveCampaign(e,t,a){return n(r=>i.request({document:b,variables:e,requestHeaders:{...t,...r},signal:a}),"archiveCampaign","mutation",e)},createCampaign(e,t,a){return n(r=>i.request({document:D,variables:e,requestHeaders:{...t,...r},signal:a}),"createCampaign","mutation",e)},deleteCampaign(e,t,a){return n(r=>i.request({document:I,variables:e,requestHeaders:{...t,...r},signal:a}),"deleteCampaign","mutation",e)},updateCampaign(e,t,a){return n(r=>i.request({document:E,variables:e,requestHeaders:{...t,...r},signal:a}),"updateCampaign","mutation",e)},createCheck(e,t,a){return n(r=>i.request({document:H,variables:e,requestHeaders:{...t,...r},signal:a}),"createCheck","mutation",e)},deleteChecker(e,t,a){return n(r=>i.request({document:P,variables:e,requestHeaders:{...t,...r},signal:a}),"deleteChecker","mutation",e)},deleteCollectorConfig(e,t,a){return n(r=>i.request({document:O,variables:e,requestHeaders:{...t,...r},signal:a}),"deleteCollectorConfig","mutation",e)},deleteExemption(e,t,a){return n(r=>i.request({document:w,variables:e,requestHeaders:{...t,...r},signal:a}),"deleteExemption","mutation",e)},executeCheck(e,t,a){return n(r=>i.request({document:x,variables:e,requestHeaders:{...t,...r},signal:a}),"executeCheck","mutation",e)},importCheckers(e,t,a){return n(r=>i.request({document:F,variables:e,requestHeaders:{...t,...r},signal:a}),"importCheckers","mutation",e)},importTracks(e,t,a){return n(r=>i.request({document:G,variables:e,requestHeaders:{...t,...r},signal:a}),"importTracks","mutation",e)},saveOutOfBoxTracks(e,t,a){return n(r=>i.request({document:L,variables:e,requestHeaders:{...t,...r},signal:a}),"saveOutOfBoxTracks","mutation",e)},sendCampaignNotification(e,t,a){return n(r=>i.request({document:A,variables:e,requestHeaders:{...t,...r},signal:a}),"sendCampaignNotification","mutation",e)},setEntityExempt(e,t,a){return n(r=>i.request({document:B,variables:e,requestHeaders:{...t,...r},signal:a}),"setEntityExempt","mutation",e)},setManualCheckResult(e,t,a){return n(r=>i.request({document:N,variables:e,requestHeaders:{...t,...r},signal:a}),"setManualCheckResult","mutation",e)},createTrack(e,t,a){return n(r=>i.request({document:M,variables:e,requestHeaders:{...t,...r},signal:a}),"createTrack","mutation",e)},deleteTrack(e,t,a){return n(r=>i.request({document:V,variables:e,requestHeaders:{...t,...r},signal:a}),"deleteTrack","mutation",e)},recertifyTrack(e,t,a){return n(r=>i.request({document:_,variables:e,requestHeaders:{...t,...r},signal:a}),"recertifyTrack","mutation",e)},updateTrack(e,t,a){return n(r=>i.request({document:U,variables:e,requestHeaders:{...t,...r},signal:a}),"updateTrack","mutation",e)},updateCheck(e,t,a){return n(r=>i.request({document:Y,variables:e,requestHeaders:{...t,...r},signal:a}),"updateCheck","mutation",e)},updateCollectorConfig(e,t,a){return n(r=>i.request({document:W,variables:e,requestHeaders:{...t,...r},signal:a}),"updateCollectorConfig","mutation",e)},deleteView(e,t,a){return n(r=>i.request({document:J,variables:e,requestHeaders:{...t,...r},signal:a}),"deleteView","mutation",e)},recordLoadTime(e,t,a){return n(r=>i.request({document:j,variables:e,requestHeaders:{...t,...r},signal:a}),"recordLoadTime","mutation",e)},saveView(e,t,a){return n(r=>i.request({document:K,variables:e,requestHeaders:{...t,...r},signal:a}),"saveView","mutation",e)},getAllCertifications(e,t,a){return n(r=>i.request({document:X,variables:e,requestHeaders:{...t,...r},signal:a}),"getAllCertifications","query",e)},getCampaignOwners(e,t,a){return n(r=>i.request({document:z,variables:e,requestHeaders:{...t,...r},signal:a}),"getCampaignOwners","query",e)},getCampaigns(e,t,a){return n(r=>i.request({document:Q,variables:e,requestHeaders:{...t,...r},signal:a}),"getCampaigns","query",e)},getCertificationDetails(e,t,a){return n(r=>i.request({document:Z,variables:e,requestHeaders:{...t,...r},signal:a}),"getCertificationDetails","query",e)},getCertificationDetailsForTrack(e,t,a){return n(r=>i.request({document:ee,variables:e,requestHeaders:{...t,...r},signal:a}),"getCertificationDetailsForTrack","query",e)},getCertificationStatus(e,t,a){return n(r=>i.request({document:te,variables:e,requestHeaders:{...t,...r},signal:a}),"getCertificationStatus","query",e)},getCertificationStatusHistory(e,t,a){return n(r=>i.request({document:ae,variables:e,requestHeaders:{...t,...r},signal:a}),"getCertificationStatusHistory","query",e)},getCertificationStatuses(e,t,a){return n(r=>i.request({document:re,variables:e,requestHeaders:{...t,...r},signal:a}),"getCertificationStatuses","query",e)},getCheckResultDetails(e,t,a){return n(r=>i.request({document:ie,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckResultDetails","query",e)},getCheckEntities(e,t,a){return n(r=>i.request({document:se,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckEntities","query",e)},getCheckOwners(e,t,a){return n(r=>i.request({document:ne,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckOwners","query",e)},getCheckStatus(e,t,a){return n(r=>i.request({document:ue,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckStatus","query",e)},getCheckStatusByGroup(e,t,a){return n(r=>i.request({document:ce,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckStatusByGroup","query",e)},getCheckStatusHistories(e,t,a){return n(r=>i.request({document:oe,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckStatusHistories","query",e)},getCheckStatusHistoriesMultiFilter(e,t,a){return n(r=>i.request({document:le,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckStatusHistoriesMultiFilter","query",e)},getCheckStatusHistory(e,t,a){return n(r=>i.request({document:de,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckStatusHistory","query",e)},getCheckStatuses(e,t,a){return n(r=>i.request({document:pe,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckStatuses","query",e)},getCheckTemplates(e,t,a){return n(r=>i.request({document:ge,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckTemplates","query",e)},getCheck(e,t,a){return n(r=>i.request({document:me,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheck","query",e)},getCheckers(e,t,a){return n(r=>i.request({document:ke,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckers","query",e)},getExecutableChecks(e,t,a){return n(r=>i.request({document:fe,variables:e,requestHeaders:{...t,...r},signal:a}),"getExecutableChecks","query",e)},getExemptCheckIds(e,t,a){return n(r=>i.request({document:ye,variables:e,requestHeaders:{...t,...r},signal:a}),"getExemptCheckIds","query",e)},getExemption(e,t,a){return n(r=>i.request({document:Ce,variables:e,requestHeaders:{...t,...r},signal:a}),"getExemption","query",e)},getExemptions(e,t,a){return n(r=>i.request({document:he,variables:e,requestHeaders:{...t,...r},signal:a}),"getExemptions","query",e)},getFacetsForOwner(e,t,a){return n(r=>i.request({document:qe,variables:e,requestHeaders:{...t,...r},signal:a}),"getFacetsForOwner","query",e)},getFact(e,t,a){return n(r=>i.request({document:ve,variables:e,requestHeaders:{...t,...r},signal:a}),"getFact","query",e)},getCollectors(e,t,a){return n(r=>i.request({document:Re,variables:e,requestHeaders:{...t,...r},signal:a}),"getCollectors","query",e)},getFactSchemas(e,t,a){return n(r=>i.request({document:$e,variables:e,requestHeaders:{...t,...r},signal:a}),"getFactSchemas","query",e)},getGroupHierarchy(e,t,a){return n(r=>i.request({document:Se,variables:e,requestHeaders:{...t,...r},signal:a}),"getGroupHierarchy","query",e)},getGroupTypeHierarchy(e,t,a){return n(r=>i.request({document:Te,variables:e,requestHeaders:{...t,...r},signal:a}),"getGroupTypeHierarchy","query",e)},getHierarchicalTrackStatus(e,t,a){return n(r=>i.request({document:be,variables:e,requestHeaders:{...t,...r},signal:a}),"getHierarchicalTrackStatus","query",e)},getHierarchicalTrackStatuses(e,t,a){return n(r=>i.request({document:De,variables:e,requestHeaders:{...t,...r},signal:a}),"getHierarchicalTrackStatuses","query",e)},getIndividualCheckPassRates(e,t,a){return n(r=>i.request({document:Ie,variables:e,requestHeaders:{...t,...r},signal:a}),"getIndividualCheckPassRates","query",e)},getIndividualEntityPassRates(e,t,a){return n(r=>i.request({document:Ee,variables:e,requestHeaders:{...t,...r},signal:a}),"getIndividualEntityPassRates","query",e)},getIndividualGroupPassRates(e,t,a){return n(r=>i.request({document:He,variables:e,requestHeaders:{...t,...r},signal:a}),"getIndividualGroupPassRates","query",e)},getIndividualTrackPassRate(e,t,a){return n(r=>i.request({document:Pe,variables:e,requestHeaders:{...t,...r},signal:a}),"getIndividualTrackPassRate","query",e)},getMultipleTrackStatuses(e,t,a){return n(r=>i.request({document:Oe,variables:e,requestHeaders:{...t,...r},signal:a}),"getMultipleTrackStatuses","query",e)},getOperators(e,t,a){return n(r=>i.request({document:we,variables:e,requestHeaders:{...t,...r},signal:a}),"getOperators","query",e)},getOutOfBoxTracks(e,t,a){return n(r=>i.request({document:xe,variables:e,requestHeaders:{...t,...r},signal:a}),"getOutOfBoxTracks","query",e)},getOverallCheckPassRates(e,t,a){return n(r=>i.request({document:Fe,variables:e,requestHeaders:{...t,...r},signal:a}),"getOverallCheckPassRates","query",e)},getOverallEntityPassRates(e,t,a){return n(r=>i.request({document:Ge,variables:e,requestHeaders:{...t,...r},signal:a}),"getOverallEntityPassRates","query",e)},getOverallGroupPassRates(e,t,a){return n(r=>i.request({document:Le,variables:e,requestHeaders:{...t,...r},signal:a}),"getOverallGroupPassRates","query",e)},getOverallTrackPassRate(e,t,a){return n(r=>i.request({document:Ae,variables:e,requestHeaders:{...t,...r},signal:a}),"getOverallTrackPassRate","query",e)},getPathResolvers(e,t,a){return n(r=>i.request({document:Be,variables:e,requestHeaders:{...t,...r},signal:a}),"getPathResolvers","query",e)},getPlaylists(e,t,a){return n(r=>i.request({document:Ne,variables:e,requestHeaders:{...t,...r},signal:a}),"getPlaylists","query",e)},getSavedViews(e,t,a){return n(r=>i.request({document:Me,variables:e,requestHeaders:{...t,...r},signal:a}),"getSavedViews","query",e)},getTrack(e,t,a){return n(r=>i.request({document:Ve,variables:e,requestHeaders:{...t,...r},signal:a}),"getTrack","query",e)},getTrackEntities(e,t,a){return n(r=>i.request({document:_e,variables:e,requestHeaders:{...t,...r},signal:a}),"getTrackEntities","query",e)},getTrackOverviewForOwner(e,t,a){return n(r=>i.request({document:Ue,variables:e,requestHeaders:{...t,...r},signal:a}),"getTrackOverviewForOwner","query",e)},getTrackOwners(e,t,a){return n(r=>i.request({document:Ye,variables:e,requestHeaders:{...t,...r},signal:a}),"getTrackOwners","query",e)},getTrackStatusHistories(e,t,a){return n(r=>i.request({document:We,variables:e,requestHeaders:{...t,...r},signal:a}),"getTrackStatusHistories","query",e)},getTrackStatusHistory(e,t,a){return n(r=>i.request({document:Je,variables:e,requestHeaders:{...t,...r},signal:a}),"getTrackStatusHistory","query",e)},getTracks(e,t,a){return n(r=>i.request({document:je,variables:e,requestHeaders:{...t,...r},signal:a}),"getTracks","query",e)},getTracksApplicableEntityCount(e,t,a){return n(r=>i.request({document:Ke,variables:e,requestHeaders:{...t,...r},signal:a}),"getTracksApplicableEntityCount","query",e)}}}export{b as ArchiveCampaignDocument,l as BadgeVariant,u as BadgeVariantsFragmentDoc,h as CampaignLevelFragmentDoc,C as CertificationSummaryFragmentDoc,d as CheckEntityField,R as CheckResultDetailsFragmentDoc,v as CheckResultSummaryFragmentDoc,p as CheckerType,D as CreateCampaignDocument,H as CreateCheckDocument,M as CreateTrackDocument,I as DeleteCampaignDocument,P as DeleteCheckerDocument,O as DeleteCollectorConfigDocument,w as DeleteExemptionDocument,V as DeleteTrackDocument,J as DeleteViewDocument,g as Direction,x as ExecuteCheckDocument,X as GetAllCertificationsDocument,z as GetCampaignOwnersDocument,Q as GetCampaignsDocument,Z as GetCertificationDetailsDocument,ee as GetCertificationDetailsForTrackDocument,te as GetCertificationStatusDocument,ae as GetCertificationStatusHistoryDocument,re as GetCertificationStatusesDocument,me as GetCheckDocument,se as GetCheckEntitiesDocument,ne as GetCheckOwnersDocument,ie as GetCheckResultDetailsDocument,ce as GetCheckStatusByGroupDocument,ue as GetCheckStatusDocument,oe as GetCheckStatusHistoriesDocument,le as GetCheckStatusHistoriesMultiFilterDocument,de as GetCheckStatusHistoryDocument,pe as GetCheckStatusesDocument,ge as GetCheckTemplatesDocument,ke as GetCheckersDocument,Re as GetCollectorsDocument,fe as GetExecutableChecksDocument,ye as GetExemptCheckIdsDocument,Ce as GetExemptionDocument,he as GetExemptionsDocument,qe as GetFacetsForOwnerDocument,ve as GetFactDocument,$e as GetFactSchemasDocument,Se as GetGroupHierarchyDocument,Te as GetGroupTypeHierarchyDocument,be as GetHierarchicalTrackStatusDocument,De as GetHierarchicalTrackStatusesDocument,Ie as GetIndividualCheckPassRatesDocument,Ee as GetIndividualEntityPassRatesDocument,He as GetIndividualGroupPassRatesDocument,Pe as GetIndividualTrackPassRateDocument,Oe as GetMultipleTrackStatusesDocument,we as GetOperatorsDocument,xe as GetOutOfBoxTracksDocument,Fe as GetOverallCheckPassRatesDocument,Ge as GetOverallEntityPassRatesDocument,Le as GetOverallGroupPassRatesDocument,Ae as GetOverallTrackPassRateDocument,Be as GetPathResolversDocument,Ne as GetPlaylistsDocument,Me as GetSavedViewsDocument,Ve as GetTrackDocument,_e as GetTrackEntitiesDocument,Ue as GetTrackOverviewForOwnerDocument,Ye as GetTrackOwnersDocument,We as GetTrackStatusHistoriesDocument,Je as GetTrackStatusHistoryDocument,Ke as GetTracksApplicableEntityCountDocument,je as GetTracksDocument,T as HighestLevelFragmentDoc,F as ImportCheckersDocument,G as ImportTracksDocument,m as IntegrationRequirement,c as LevelResultDetailsFragmentDoc,q as MilestoneFragmentDoc,$ as OverviewLevelResultFragmentDoc,_ as RecertifyTrackDocument,j as RecordLoadTimeDocument,k as ResultState,L as SaveOutOfBoxTracksDocument,K as SaveViewDocument,A as SendCampaignNotificationDocument,B as SetEntityExemptDocument,N as SetManualCheckResultDocument,f as TrackCertificationState,y as TrackEntityField,o as TrackLevelFragmentDoc,S as TrackStatusFragmentDoc,E as UpdateCampaignDocument,Y as UpdateCheckDocument,W as UpdateCollectorConfigDocument,U as UpdateTrackDocument,ze as getSdk};
1286
+ `,Qe=(i,n,e,t)=>i();function Xe(i,n=Qe){return{archiveCampaign(e,t,a){return n(r=>i.request({document:b,variables:e,requestHeaders:{...t,...r},signal:a}),"archiveCampaign","mutation",e)},createCampaign(e,t,a){return n(r=>i.request({document:D,variables:e,requestHeaders:{...t,...r},signal:a}),"createCampaign","mutation",e)},deleteCampaign(e,t,a){return n(r=>i.request({document:I,variables:e,requestHeaders:{...t,...r},signal:a}),"deleteCampaign","mutation",e)},updateCampaign(e,t,a){return n(r=>i.request({document:E,variables:e,requestHeaders:{...t,...r},signal:a}),"updateCampaign","mutation",e)},createCheck(e,t,a){return n(r=>i.request({document:H,variables:e,requestHeaders:{...t,...r},signal:a}),"createCheck","mutation",e)},deleteChecker(e,t,a){return n(r=>i.request({document:P,variables:e,requestHeaders:{...t,...r},signal:a}),"deleteChecker","mutation",e)},deleteCollectorConfig(e,t,a){return n(r=>i.request({document:O,variables:e,requestHeaders:{...t,...r},signal:a}),"deleteCollectorConfig","mutation",e)},deleteExemption(e,t,a){return n(r=>i.request({document:w,variables:e,requestHeaders:{...t,...r},signal:a}),"deleteExemption","mutation",e)},executeCheck(e,t,a){return n(r=>i.request({document:F,variables:e,requestHeaders:{...t,...r},signal:a}),"executeCheck","mutation",e)},importCheckers(e,t,a){return n(r=>i.request({document:x,variables:e,requestHeaders:{...t,...r},signal:a}),"importCheckers","mutation",e)},importTracks(e,t,a){return n(r=>i.request({document:G,variables:e,requestHeaders:{...t,...r},signal:a}),"importTracks","mutation",e)},saveOutOfBoxTracks(e,t,a){return n(r=>i.request({document:L,variables:e,requestHeaders:{...t,...r},signal:a}),"saveOutOfBoxTracks","mutation",e)},sendCampaignNotification(e,t,a){return n(r=>i.request({document:A,variables:e,requestHeaders:{...t,...r},signal:a}),"sendCampaignNotification","mutation",e)},setEntityExempt(e,t,a){return n(r=>i.request({document:B,variables:e,requestHeaders:{...t,...r},signal:a}),"setEntityExempt","mutation",e)},setManualCheckResult(e,t,a){return n(r=>i.request({document:N,variables:e,requestHeaders:{...t,...r},signal:a}),"setManualCheckResult","mutation",e)},createTrack(e,t,a){return n(r=>i.request({document:M,variables:e,requestHeaders:{...t,...r},signal:a}),"createTrack","mutation",e)},deleteTrack(e,t,a){return n(r=>i.request({document:V,variables:e,requestHeaders:{...t,...r},signal:a}),"deleteTrack","mutation",e)},recertifyTrack(e,t,a){return n(r=>i.request({document:_,variables:e,requestHeaders:{...t,...r},signal:a}),"recertifyTrack","mutation",e)},updateTrack(e,t,a){return n(r=>i.request({document:U,variables:e,requestHeaders:{...t,...r},signal:a}),"updateTrack","mutation",e)},updateCheck(e,t,a){return n(r=>i.request({document:Y,variables:e,requestHeaders:{...t,...r},signal:a}),"updateCheck","mutation",e)},updateCollectorConfig(e,t,a){return n(r=>i.request({document:W,variables:e,requestHeaders:{...t,...r},signal:a}),"updateCollectorConfig","mutation",e)},deleteView(e,t,a){return n(r=>i.request({document:j,variables:e,requestHeaders:{...t,...r},signal:a}),"deleteView","mutation",e)},recordLoadTime(e,t,a){return n(r=>i.request({document:J,variables:e,requestHeaders:{...t,...r},signal:a}),"recordLoadTime","mutation",e)},saveView(e,t,a){return n(r=>i.request({document:K,variables:e,requestHeaders:{...t,...r},signal:a}),"saveView","mutation",e)},getAllCertifications(e,t,a){return n(r=>i.request({document:Q,variables:e,requestHeaders:{...t,...r},signal:a}),"getAllCertifications","query",e)},getCampaignOwners(e,t,a){return n(r=>i.request({document:X,variables:e,requestHeaders:{...t,...r},signal:a}),"getCampaignOwners","query",e)},getCampaigns(e,t,a){return n(r=>i.request({document:z,variables:e,requestHeaders:{...t,...r},signal:a}),"getCampaigns","query",e)},getCertificationDetails(e,t,a){return n(r=>i.request({document:Z,variables:e,requestHeaders:{...t,...r},signal:a}),"getCertificationDetails","query",e)},getCertificationDetailsForTrack(e,t,a){return n(r=>i.request({document:ee,variables:e,requestHeaders:{...t,...r},signal:a}),"getCertificationDetailsForTrack","query",e)},getCertificationStatus(e,t,a){return n(r=>i.request({document:te,variables:e,requestHeaders:{...t,...r},signal:a}),"getCertificationStatus","query",e)},getCertificationStatusHistory(e,t,a){return n(r=>i.request({document:ae,variables:e,requestHeaders:{...t,...r},signal:a}),"getCertificationStatusHistory","query",e)},getCertificationStatuses(e,t,a){return n(r=>i.request({document:re,variables:e,requestHeaders:{...t,...r},signal:a}),"getCertificationStatuses","query",e)},getCheckResultDetails(e,t,a){return n(r=>i.request({document:ie,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckResultDetails","query",e)},getCheckEntities(e,t,a){return n(r=>i.request({document:se,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckEntities","query",e)},getCheckOwners(e,t,a){return n(r=>i.request({document:ne,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckOwners","query",e)},getCheckStatus(e,t,a){return n(r=>i.request({document:ue,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckStatus","query",e)},getCheckStatusByGroup(e,t,a){return n(r=>i.request({document:ce,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckStatusByGroup","query",e)},getCheckStatusHistories(e,t,a){return n(r=>i.request({document:oe,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckStatusHistories","query",e)},getCheckStatusHistoriesMultiFilter(e,t,a){return n(r=>i.request({document:le,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckStatusHistoriesMultiFilter","query",e)},getCheckStatusHistory(e,t,a){return n(r=>i.request({document:de,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckStatusHistory","query",e)},getCheckStatuses(e,t,a){return n(r=>i.request({document:pe,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckStatuses","query",e)},getCheckTemplates(e,t,a){return n(r=>i.request({document:ge,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckTemplates","query",e)},getCheck(e,t,a){return n(r=>i.request({document:me,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheck","query",e)},getCheckers(e,t,a){return n(r=>i.request({document:ke,variables:e,requestHeaders:{...t,...r},signal:a}),"getCheckers","query",e)},getExecutableChecks(e,t,a){return n(r=>i.request({document:fe,variables:e,requestHeaders:{...t,...r},signal:a}),"getExecutableChecks","query",e)},getExemptCheckIds(e,t,a){return n(r=>i.request({document:ye,variables:e,requestHeaders:{...t,...r},signal:a}),"getExemptCheckIds","query",e)},getExemption(e,t,a){return n(r=>i.request({document:Ce,variables:e,requestHeaders:{...t,...r},signal:a}),"getExemption","query",e)},getExemptions(e,t,a){return n(r=>i.request({document:he,variables:e,requestHeaders:{...t,...r},signal:a}),"getExemptions","query",e)},getFacetsForOwner(e,t,a){return n(r=>i.request({document:qe,variables:e,requestHeaders:{...t,...r},signal:a}),"getFacetsForOwner","query",e)},getFact(e,t,a){return n(r=>i.request({document:ve,variables:e,requestHeaders:{...t,...r},signal:a}),"getFact","query",e)},getCollectors(e,t,a){return n(r=>i.request({document:Re,variables:e,requestHeaders:{...t,...r},signal:a}),"getCollectors","query",e)},getFactSchemas(e,t,a){return n(r=>i.request({document:$e,variables:e,requestHeaders:{...t,...r},signal:a}),"getFactSchemas","query",e)},getGroupHierarchy(e,t,a){return n(r=>i.request({document:Se,variables:e,requestHeaders:{...t,...r},signal:a}),"getGroupHierarchy","query",e)},getGroupTypeHierarchy(e,t,a){return n(r=>i.request({document:Te,variables:e,requestHeaders:{...t,...r},signal:a}),"getGroupTypeHierarchy","query",e)},getHierarchicalTrackStatus(e,t,a){return n(r=>i.request({document:be,variables:e,requestHeaders:{...t,...r},signal:a}),"getHierarchicalTrackStatus","query",e)},getHierarchicalTrackStatuses(e,t,a){return n(r=>i.request({document:De,variables:e,requestHeaders:{...t,...r},signal:a}),"getHierarchicalTrackStatuses","query",e)},getIndividualCheckPassRates(e,t,a){return n(r=>i.request({document:Ie,variables:e,requestHeaders:{...t,...r},signal:a}),"getIndividualCheckPassRates","query",e)},getIndividualEntityPassRates(e,t,a){return n(r=>i.request({document:Ee,variables:e,requestHeaders:{...t,...r},signal:a}),"getIndividualEntityPassRates","query",e)},getIndividualGroupPassRates(e,t,a){return n(r=>i.request({document:He,variables:e,requestHeaders:{...t,...r},signal:a}),"getIndividualGroupPassRates","query",e)},getIndividualTrackPassRate(e,t,a){return n(r=>i.request({document:Pe,variables:e,requestHeaders:{...t,...r},signal:a}),"getIndividualTrackPassRate","query",e)},getMultipleTrackStatuses(e,t,a){return n(r=>i.request({document:Oe,variables:e,requestHeaders:{...t,...r},signal:a}),"getMultipleTrackStatuses","query",e)},getOperators(e,t,a){return n(r=>i.request({document:we,variables:e,requestHeaders:{...t,...r},signal:a}),"getOperators","query",e)},getOutOfBoxTracks(e,t,a){return n(r=>i.request({document:Fe,variables:e,requestHeaders:{...t,...r},signal:a}),"getOutOfBoxTracks","query",e)},getOverallCheckPassRates(e,t,a){return n(r=>i.request({document:xe,variables:e,requestHeaders:{...t,...r},signal:a}),"getOverallCheckPassRates","query",e)},getOverallEntityPassRates(e,t,a){return n(r=>i.request({document:Ge,variables:e,requestHeaders:{...t,...r},signal:a}),"getOverallEntityPassRates","query",e)},getOverallGroupPassRates(e,t,a){return n(r=>i.request({document:Le,variables:e,requestHeaders:{...t,...r},signal:a}),"getOverallGroupPassRates","query",e)},getOverallTrackPassRate(e,t,a){return n(r=>i.request({document:Ae,variables:e,requestHeaders:{...t,...r},signal:a}),"getOverallTrackPassRate","query",e)},getPathResolvers(e,t,a){return n(r=>i.request({document:Be,variables:e,requestHeaders:{...t,...r},signal:a}),"getPathResolvers","query",e)},getPlaylists(e,t,a){return n(r=>i.request({document:Ne,variables:e,requestHeaders:{...t,...r},signal:a}),"getPlaylists","query",e)},getSavedViews(e,t,a){return n(r=>i.request({document:Me,variables:e,requestHeaders:{...t,...r},signal:a}),"getSavedViews","query",e)},getTrack(e,t,a){return n(r=>i.request({document:Ve,variables:e,requestHeaders:{...t,...r},signal:a}),"getTrack","query",e)},getTrackEntities(e,t,a){return n(r=>i.request({document:_e,variables:e,requestHeaders:{...t,...r},signal:a}),"getTrackEntities","query",e)},getTrackOverviewForOwner(e,t,a){return n(r=>i.request({document:Ue,variables:e,requestHeaders:{...t,...r},signal:a}),"getTrackOverviewForOwner","query",e)},getTrackOwners(e,t,a){return n(r=>i.request({document:Ye,variables:e,requestHeaders:{...t,...r},signal:a}),"getTrackOwners","query",e)},getTrackStatusHistories(e,t,a){return n(r=>i.request({document:We,variables:e,requestHeaders:{...t,...r},signal:a}),"getTrackStatusHistories","query",e)},getTrackStatusHistory(e,t,a){return n(r=>i.request({document:je,variables:e,requestHeaders:{...t,...r},signal:a}),"getTrackStatusHistory","query",e)},getTracks(e,t,a){return n(r=>i.request({document:Je,variables:e,requestHeaders:{...t,...r},signal:a}),"getTracks","query",e)},getTracksApplicableEntityCount(e,t,a){return n(r=>i.request({document:Ke,variables:e,requestHeaders:{...t,...r},signal:a}),"getTracksApplicableEntityCount","query",e)}}}export{b as ArchiveCampaignDocument,l as BadgeVariant,u as BadgeVariantsFragmentDoc,h as CampaignLevelFragmentDoc,C as CertificationSummaryFragmentDoc,d as CheckEntityField,R as CheckResultDetailsFragmentDoc,v as CheckResultSummaryFragmentDoc,p as CheckerType,D as CreateCampaignDocument,H as CreateCheckDocument,M as CreateTrackDocument,I as DeleteCampaignDocument,P as DeleteCheckerDocument,O as DeleteCollectorConfigDocument,w as DeleteExemptionDocument,V as DeleteTrackDocument,j as DeleteViewDocument,g as Direction,F as ExecuteCheckDocument,Q as GetAllCertificationsDocument,X as GetCampaignOwnersDocument,z as GetCampaignsDocument,Z as GetCertificationDetailsDocument,ee as GetCertificationDetailsForTrackDocument,te as GetCertificationStatusDocument,ae as GetCertificationStatusHistoryDocument,re as GetCertificationStatusesDocument,me as GetCheckDocument,se as GetCheckEntitiesDocument,ne as GetCheckOwnersDocument,ie as GetCheckResultDetailsDocument,ce as GetCheckStatusByGroupDocument,ue as GetCheckStatusDocument,oe as GetCheckStatusHistoriesDocument,le as GetCheckStatusHistoriesMultiFilterDocument,de as GetCheckStatusHistoryDocument,pe as GetCheckStatusesDocument,ge as GetCheckTemplatesDocument,ke as GetCheckersDocument,Re as GetCollectorsDocument,fe as GetExecutableChecksDocument,ye as GetExemptCheckIdsDocument,Ce as GetExemptionDocument,he as GetExemptionsDocument,qe as GetFacetsForOwnerDocument,ve as GetFactDocument,$e as GetFactSchemasDocument,Se as GetGroupHierarchyDocument,Te as GetGroupTypeHierarchyDocument,be as GetHierarchicalTrackStatusDocument,De as GetHierarchicalTrackStatusesDocument,Ie as GetIndividualCheckPassRatesDocument,Ee as GetIndividualEntityPassRatesDocument,He as GetIndividualGroupPassRatesDocument,Pe as GetIndividualTrackPassRateDocument,Oe as GetMultipleTrackStatusesDocument,we as GetOperatorsDocument,Fe as GetOutOfBoxTracksDocument,xe as GetOverallCheckPassRatesDocument,Ge as GetOverallEntityPassRatesDocument,Le as GetOverallGroupPassRatesDocument,Ae as GetOverallTrackPassRateDocument,Be as GetPathResolversDocument,Ne as GetPlaylistsDocument,Me as GetSavedViewsDocument,Ve as GetTrackDocument,_e as GetTrackEntitiesDocument,Ue as GetTrackOverviewForOwnerDocument,Ye as GetTrackOwnersDocument,We as GetTrackStatusHistoriesDocument,je as GetTrackStatusHistoryDocument,Ke as GetTracksApplicableEntityCountDocument,Je as GetTracksDocument,T as HighestLevelFragmentDoc,x as ImportCheckersDocument,G as ImportTracksDocument,m as IntegrationRequirement,c as LevelResultDetailsFragmentDoc,q as MilestoneFragmentDoc,$ as OverviewLevelResultFragmentDoc,_ as RecertifyTrackDocument,J as RecordLoadTimeDocument,k as ResultState,L as SaveOutOfBoxTracksDocument,K as SaveViewDocument,A as SendCampaignNotificationDocument,B as SetEntityExemptDocument,N as SetManualCheckResultDocument,f as TrackCertificationState,y as TrackEntityField,o as TrackLevelFragmentDoc,S as TrackStatusFragmentDoc,E as UpdateCampaignDocument,Y as UpdateCheckDocument,W as UpdateCollectorConfigDocument,U as UpdateTrackDocument,Xe as getSdk};
1278
1287
  //# sourceMappingURL=index.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{useApi as u}from"@backstage/frontend-plugin-api";import{entityPresentationApiRef as f}from"@backstage/plugin-catalog-react";import{useCallback as n}from"react";import{useSyncExternalStore as p}from"use-sync-external-store";function m(t){const e=u(f),o=n(i=>{if(!t)return()=>{};const s=e.forEntity(t).update$?.subscribe({next:()=>i()});return()=>s?.unsubscribe()},[t,e]),r=n(()=>t?e.forEntity(t).snapshot:void 0,[t,e]);return p(o,r)}export{m as useEntityPresentation};
2
+ //# sourceMappingURL=useEntityPresentation.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{useApi as u}from"@backstage/core-plugin-api";import{entityPresentationApiRef as m}from"@backstage/plugin-catalog-react";import{useCallback as i}from"react";import{useSyncExternalStore as p}from"use-sync-external-store/shim";function f(t){const e=u(m),r=i(o=>{if(!t)return()=>{};const s=e.forEntity(t).update$?.subscribe({next:()=>o()});return()=>s?.unsubscribe()},[t,e]),n=i(()=>t?e.forEntity(t).snapshot.primaryTitle:void 0,[t,e]);return p(r,n)}export{f as useEntityPrimaryTitle};
2
+ //# sourceMappingURL=useEntityPrimaryTitle.esm.js.map
@@ -1,2 +1,2 @@
1
- import{useApi as t,alertApiRef as s}from"@backstage/core-plugin-api";import{catalogApiRef as n}from"@backstage/plugin-catalog-react";import{useQuery as m}from"@tanstack/react-query";import{QueryKeys as f}from"../graphqlKeys.esm.js";const p=(e,i,r=!0)=>{const o=t(s),a=t(n);return m([f.GetEntityRefs,e],async()=>a.getEntities({filter:e,limit:i,fields:["kind","metadata.name","metadata.description","metadata.namespace"]}),{enabled:r,refetchOnWindowFocus:!1,onError:()=>{o.post({message:"Failed to load entities",severity:"error"})}})};export{p as useGetEntityRefs};
1
+ import{useApi as t,alertApiRef as s}from"@backstage/core-plugin-api";import{catalogApiRef as m}from"@backstage/plugin-catalog-react";import{useQuery as n}from"@tanstack/react-query";import{QueryKeys as d}from"../graphqlKeys.esm.js";const f=(e,i,r=!0)=>{const a=t(s),o=t(m);return n([d.GetEntityRefs,e],async()=>o.getEntities({filter:e,limit:i,fields:["kind","metadata.name","metadata.title","metadata.description","metadata.namespace"]}),{enabled:r,refetchOnWindowFocus:!1,onError:()=>{a.post({message:"Failed to load entities",severity:"error"})}})};export{f as useGetEntityRefs};
2
2
  //# sourceMappingURL=useGetEntityRefs.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{useApi as s}from"@backstage/core-plugin-api";import{useQueries as t}from"@tanstack/react-query";import{soundcheckApiRef as c}from"../../api.esm.js";import{QueryKeys as u}from"../graphqlKeys.esm.js";const m=e=>e!==void 0;function n(e){const o=s(c),i=[...new Set(e.filter(m))];return t({queries:i.map(r=>({queryKey:[u.Check,r],queryFn:async()=>o.getCheck(r),staleTime:300*1e3,refetchOnWindowFocus:!1}))})}export{n as useChecks};
2
+ //# sourceMappingURL=useChecks.esm.js.map
@@ -1,2 +1,2 @@
1
- import{useApi as u}from"@backstage/core-plugin-api";import{useQueryClient as l,useMutation as a}from"@tanstack/react-query";import{soundcheckApiRef as m}from"../../api.esm.js";import{MutationKeys as h,QueryKeys as t}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as k}from"../useSoundcheckAlert.esm.js";const y="Error Deleting Check";function f(){const c=u(m),s=l(),{showAlert:i}=k(),n=async e=>{const r=await c.deleteCheck(e);if(!r)throw new Error(`Failed to delete check ${e}`);return r};return a([h.DeleteCheck],n,{onSuccess:e=>{s.removeQueries({queryKey:[t.Check,e]});const r=[t.GetChecks,t.GetAllTracks,t.GetCheckOwners,t.ExecutableChecks];return Promise.all(r.map(o=>s.invalidateQueries({queryKey:[o]})))},onError:(e,r)=>{let o=`Failed to delete check ${r}`;e instanceof Error&&(o=e.message),i({severity:"error",title:y,message:o})}})}export{f as useDeleteCheck};
1
+ import{useApi as l}from"@backstage/core-plugin-api";import{useQueryClient as a,useMutation as m}from"@tanstack/react-query";import{soundcheckApiRef as h}from"../../api.esm.js";import{MutationKeys as k,QueryKeys as t}from"../graphqlKeys.esm.js";import{useSoundcheckAlert as y}from"../useSoundcheckAlert.esm.js";const C="Error Deleting Check";function f(){const c=l(h),s=a(),{showAlert:i}=y(),n=async e=>{const r=await c.deleteCheck(e);if(!r)throw new Error(`Failed to delete check ${e}`);return r};return m([k.DeleteCheck],n,{onSuccess:(e,r)=>{s.removeQueries({queryKey:[t.Check,r]});const o=[t.GetChecks,t.GetAllTracks,t.GetCheckOwners,t.ExecutableChecks];return Promise.all(o.map(u=>s.invalidateQueries({queryKey:[u]})))},onError:(e,r)=>{let o=`Failed to delete check ${r}`;e instanceof Error&&(o=e.message),i({severity:"error",title:C,message:o})}})}export{f as useDeleteCheck};
2
2
  //# sourceMappingURL=useDeleteCheck.esm.js.map
@@ -1,2 +1,2 @@
1
- import{useApi as o}from"@backstage/core-plugin-api";import{useQuery as t}from"@tanstack/react-query";import{soundcheckApiRef as s}from"../../api.esm.js";import{QueryKeys as c}from"../graphqlKeys.esm.js";function u(e){const r=o(s);return t({queryKey:[c.GetCollectors,e],queryFn:async()=>r.getCollectors(e),staleTime:300*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{u as useGetCollectors};
1
+ import{useApi as o}from"@backstage/core-plugin-api";import{useQuery as t}from"@tanstack/react-query";import{soundcheckApiRef as s}from"../../api.esm.js";import{QueryKeys as c}from"../graphqlKeys.esm.js";function u(e){const r=o(s);return t({queryKey:[c.GetCollectors,e],queryFn:async()=>r.getCollectors(e),staleTime:120*1e3,refetchInterval:!1,refetchOnWindowFocus:!1})}export{u as useGetCollectors};
2
2
  //# sourceMappingURL=useGetCollectors.esm.js.map
@@ -1,2 +1,2 @@
1
- import{stringifyEntityRef as I,parseEntityRef as b}from"@backstage/catalog-model";import{useApi as G,configApiRef as M}from"@backstage/core-plugin-api";import{combineEntityFilterQueries as N,getGroupFilterFromConfig as j}from"@spotify/backstage-plugin-soundcheck-common";import l from"lodash/startCase";import{useMemo as w,useCallback as B}from"react";import{useSearchParams as Q}from"react-router-dom";import{CheckState as r}from"../../components/CheckPage/utils.esm.js";import{useGetEntityFacets as f}from"../catalog/useGetEntityFacets.esm.js";import{useGetEntityRefs as _}from"../catalog/useGetEntityRefs.esm.js";function x({entityFilterQuery:c,hasStatusFilters:E=!1,hasCertificationStatusFilters:d=!1}){const R=G(M),[o,u]=Q(),A=N({kind:["group"]},j(R)),{data:y}=_(A),g=w(()=>y?.items.map(e=>({label:e.metadata.title??e.metadata.name,value:I(e)}))??[],[y]),{data:h}=f("spec.lifecycle",c),F=h?.map(e=>({label:e,value:e}))??[],{data:L}=f("spec.type",c),$=L?.map(e=>({label:e,value:e}))??[],{data:k}=f("relations.partOf",c),v=k?.map(e=>({label:b(e).name,value:e}))??[],C=[r.PASSED,r.FAILED,r.WARNING,r.EXEMPT,r.NOT_APPLICABLE,r.ERROR].map(e=>({label:l(e.toLowerCase()),value:e})),P=[r.PASSED,r.FAILED,r.NOT_REPORTED].map(e=>{const t=l(e.toLowerCase());return{label:t,value:t}}),O=(e,t)=>{const s=["owners","systems"];if(e==="certificationStatuses")return`statuses: ${l(t.toLowerCase())}`;const a=e.replace(/s$/,"");return s.includes(e)?`${a}: ${b(t).name}`:e==="states"?`${a}: ${l(t.toLowerCase())}`:`${a}: ${t}`},m=w(()=>{const e=["numberOfDays","search","page","perPage","sort","sortDirection","level","section"],t={owners:new Set,lifecycles:new Set,types:new Set,systems:new Set,states:new Set,certificationStatuses:new Set};for(const[s,a]of o.entries())if(!e.includes(s)){const i=a.split(",").map(n=>n.trim()).filter(Boolean);t[s]=new Set(i)}return t},[o]),S=B((e,t)=>{const s=new URLSearchParams(o),a=Array.from(t);a.length>0?s.set(e,a.join(",")):s.delete(e),u(s,{replace:!0})},[o,u]),D=Object.entries(m).flatMap(([e,t])=>Array.from(t).map(s=>({label:O(e,s),value:`${e}:${s}`}))),T=e=>{e.forEach(t=>{if(typeof t!="string")return;const[s,a]=t.split(/:(.+)/),i=m[s];if(!i)return;const n=new Set(i);n.delete(a),S(s,n)})},p=[{key:"owners",label:"Owner",options:g},{key:"lifecycles",label:"Lifecycle",options:F},{key:"types",label:"Type",options:$},{key:"systems",label:"System",options:v}];return E&&p.push({key:"states",label:"States",options:C}),d&&p.push({key:"certificationStatuses",label:"Status",options:P}),{filters:p,selected:m,setSelected:S,selectedTags:D,onRemoveTag:T}}export{x as useFilters};
1
+ import{stringifyEntityRef as h,parseEntityRef as v}from"@backstage/catalog-model";import{useApi as B,configApiRef as U}from"@backstage/core-plugin-api";import{combineEntityFilterQueries as W,getGroupFilterFromConfig as _}from"@spotify/backstage-plugin-soundcheck-common";import f from"lodash/startCase";import{useMemo as w,useCallback as x}from"react";import{useSearchParams as K}from"react-router-dom";import{CheckState as o}from"../../components/CheckPage/utils.esm.js";import{useGetEntityFacets as y}from"../catalog/useGetEntityFacets.esm.js";import{useGetEntityRefs as C}from"../catalog/useGetEntityRefs.esm.js";const X=a=>a?Array.isArray(a)?a:[a]:[],q=a=>{const l=X(a);return l.length?l.every(d=>{const n=d.kind;if(!n)return!1;const i=(Array.isArray(n)?n:[n]).map(m=>m.toLowerCase());return i.length===1&&i[0]==="system"}):!1};function z({entityFilterQuery:a,hasStatusFilters:l=!1,hasCertificationStatusFilters:d=!1}){const n=B(U),[i,m]=K(),L=W({kind:["group"]},_(n)),{data:E}=C(L),{data:R}=y("kind",a),$=R?.map(e=>{const t=e.toLowerCase();return{label:t,value:t}})??[],F=w(()=>E?.items.map(e=>({label:e.metadata.title??e.metadata.name,value:h(e)}))??[],[E]),{data:P}=y("spec.lifecycle",a),O=P?.map(e=>({label:e,value:e}))??[],{data:D}=y("spec.type",a),T=D?.map(e=>({label:e,value:e}))??[],c=q(a),{data:k}=C(a,void 0,c),{data:A}=y("relations.partOf",a,!c),G=w(()=>c?k?.items.filter(e=>e.kind?.toLowerCase()==="system").map(e=>({label:e.metadata.title??e.metadata.name,value:h(e)}))??[]:A?.flatMap(e=>{try{const t=v(e);return t.kind.toLowerCase()!=="system"?[]:[{label:t.name,value:e}]}catch{return[]}})??[],[c,k?.items,A]),I=[o.PASSED,o.FAILED,o.WARNING,o.EXEMPT,o.NOT_APPLICABLE,o.ERROR].map(e=>({label:f(e.toLowerCase()),value:e})),M=[o.PASSED,o.FAILED,o.NOT_REPORTED].map(e=>{const t=f(e.toLowerCase());return{label:t,value:t}}),N=(e,t)=>{const s=["owners","systems"];if(e==="certificationStatuses")return`statuses: ${f(t.toLowerCase())}`;const r=e.replace(/s$/,"");return s.includes(e)?`${r}: ${v(t).name}`:e==="states"?`${r}: ${f(t.toLowerCase())}`:`${r}: ${t}`},S=w(()=>{const e=["numberOfDays","search","page","perPage","sort","sortDirection","level","section"],t={owners:new Set,lifecycles:new Set,types:new Set,systems:new Set,states:new Set,certificationStatuses:new Set};for(const[s,r]of i.entries())if(!e.includes(s)){const p=r.split(",").map(u=>u.trim()).filter(Boolean);t[s]=new Set(p)}return t},[i]),g=x((e,t)=>{const s=new URLSearchParams(i),r=Array.from(t);r.length>0?s.set(e,r.join(",")):s.delete(e),m(s,{replace:!0})},[i,m]),j=Object.entries(S).flatMap(([e,t])=>Array.from(t).map(s=>({label:N(e,s),value:`${e}:${s}`}))),Q=e=>{e.forEach(t=>{if(typeof t!="string")return;const[s,r]=t.split(/:(.+)/),p=S[s];if(!p)return;const u=new Set(p);u.delete(r),g(s,u)})},b=[{key:"owners",label:"Owner",options:F},{key:"lifecycles",label:"Lifecycle",options:O},{key:"types",label:"Type",options:T},{key:"systems",label:"System",options:G},{key:"kinds",label:"Kind",options:$}];return l&&b.push({key:"states",label:"States",options:I}),d&&b.push({key:"certificationStatuses",label:"Status",options:M}),{filters:b,selected:S,setSelected:g,selectedTags:j,onRemoveTag:Q}}export{z as useFilters};
2
2
  //# sourceMappingURL=useFilters.esm.js.map
@@ -0,0 +1,2 @@
1
+ import{useApi as A}from"@backstage/core-plugin-api";import{entityPresentationApiRef as F}from"@backstage/plugin-catalog-react";import{useMemo as m,useRef as R,useEffect as j,useCallback as g}from"react";import{useSearchParams as L}from"react-router-dom";const I=l=>{const a=A(F);return m(()=>[...new Set(l.filter(Boolean))].map(o=>({label:a.forEntity(o).snapshot.primaryTitle??o,value:o})).sort((o,c)=>o.label.localeCompare(c.label)),[l,a])},y="soundcheck-filters",T=(l,a,o)=>{const c={};for(const p of a){const i=o.get(p);i&&(c[p]=i)}try{localStorage.setItem(`${y}:${l}`,JSON.stringify(c))}catch{}},E=l=>{try{const a=localStorage.getItem(`${y}:${l}`);if(a)return JSON.parse(a)}catch{}return{}},x=(l,a)=>{const[o,c]=L(),p=R(!1),i=m(()=>l.map(t=>t.key),[l]),w=m(()=>l.map(({key:t,label:r,options:e})=>({key:t,label:r,options:e})),[l]);j(()=>{if(p.current||(p.current=!0,i.some(n=>o.has(n))))return;const t=E(a),r=Object.entries(t).filter(([n])=>i.includes(n));if(r.length===0)return;const e=new URLSearchParams(o);for(const[n,s]of r)e.set(n,s);c(e,{replace:!0})},[i,o,c,a]);const f=m(()=>{const t={};for(const r of i)t[r]=new Set;for(const[r,e]of o.entries())if(i.includes(r)){const n=e.split(",").map(s=>s.trim()).filter(Boolean);t[r]=new Set(n)}return t},[o,i]),S=g((t,r)=>{const e=new URLSearchParams(o),n=Array.from(r);n.length>0?e.set(t,n.join(",")):e.delete(t),e.delete("page"),c(e,{replace:!0}),T(a,i,e)},[o,c,a,i]),b=g((t,r)=>{const e=l.find(s=>s.key===t);if(!e)return String(r);const n=e.options.find(s=>s.value===String(r))?.label??String(r);return`${e.tagLabelPrefix}: ${n}`},[l]),O=m(()=>Object.entries(f).flatMap(([t,r])=>Array.from(r).map(e=>({label:b(t,e),value:`${t}:${e}`}))),[f,b]),$=g(t=>{t.forEach(r=>{if(typeof r!="string")return;const[e,n]=r.split(/:(.+)/),s=f[e];if(!s)return;const u=new Set(s);u.delete(n),S(e,u)})},[f,S]),P=m(()=>Object.values(f).some(t=>t==="all"?!1:t.size>0),[f]),k=g((t,r)=>{let e=t;for(const[n,s]of Object.entries(r)){const u=f[n];if(!u)continue;const d=u==="all"?new Set:u;d.size>0?e=e.filter(v=>{const h=s.getValue(v);return h!==null&&d.has(h)}):s.defaultFilter&&(e=e.filter(s.defaultFilter))}return e},[f]);return{filters:w,selected:f,setSelected:S,selectedTags:O,onRemoveTag:$,filterItems:k,hasActiveFilters:P}};export{x as useListPageFilters,I as useOwnerFilterOptions};
2
+ //# sourceMappingURL=useListPageFilters.esm.js.map