@spotify/backstage-plugin-soundcheck 0.11.2 → 0.12.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.
@@ -1,488 +0,0 @@
1
- import{createApiRef as xe,createRouteRef as D,createSubRouteRef as g,createPlugin as Ae,createApiFactory as Be,discoveryApiRef as ze,fetchApiRef as Me,createRoutableExtension as F,createComponentExtension as Ue,useApi as B,errorApiRef as He,useRouteRef as z}from"@backstage/core-plugin-api";import{GraphQLClient as We}from"graphql-request";import c from"graphql-tag";import n,{createContext as X,useState as N,useCallback as w,useContext as Y,useRef as Qe,useEffect as je,Fragment as Ve}from"react";import{QueryClient as Ke,QueryClientProvider as _e,useQuery as Z}from"@tanstack/react-query";import{memoize as Je}from"lodash";import Xe from"@material-ui/core/styles/makeStyles";import{makeStyles as h,Typography as p,Modal as Ye,Box as ee,Button as te,Fade as Ze,alpha as $,Tooltip as et,withStyles as q,Divider as tt}from"@material-ui/core";import{MarkdownContent as ae,Link as re,InfoCard as at}from"@backstage/core-components";import{useEntity as ne,humanizeEntityRef as ie}from"@backstage/plugin-catalog-react";import{useAutoUpdatingRelativeTime as rt,SpotifyLicenseBanner as nt}from"@spotify/backstage-plugin-core";import{stringifyEntityRef as se,parseEntityRef as ce}from"@backstage/catalog-model";import{Alert as it,Skeleton as k}from"@material-ui/lab";import{Link as st}from"react-router-dom";import I from"classnames";import ct from"@material-ui/icons/Schedule";import{DateTime as le}from"luxon";import lt from"@material-ui/icons/Check";import ot from"@material-ui/icons/Close";import dt from"@material-ui/icons/RemoveCircleOutline";import ut from"@material-ui/icons/HelpOutline";import mt from"../images/empty-state.svg";var oe=(e=>(e.Medal="MEDAL",e))(oe||{}),f=(e=>(e.Failed="FAILED",e.NotApplicable="NOT_APPLICABLE",e.NotReported="NOT_REPORTED",e.Passed="PASSED",e))(f||{});const pt=c`
2
- fragment CertificationSummary on Certification {
3
- entityRef
4
- program {
5
- id
6
- name
7
- type
8
- }
9
- highestLevel {
10
- ordinal
11
- name
12
- description
13
- badge {
14
- ... on BadgeVariantMedal {
15
- variant
16
- options {
17
- level
18
- color
19
- }
20
- }
21
- }
22
- }
23
- }
24
- `,gt=c`
25
- fragment check on Check {
26
- id
27
- name
28
- description
29
- }
30
- `,de=c`
31
- fragment level on Level {
32
- ordinal
33
- name
34
- description
35
- checks {
36
- ...check
37
- }
38
- }
39
- ${gt}`,ht=c`
40
- fragment milestone on Milestone {
41
- id
42
- name
43
- description
44
- targetPercent
45
- targetCompletionDate
46
- }
47
- `,yt=c`
48
- fragment CheckResultSummary on CheckResult {
49
- id
50
- name
51
- result
52
- timestamp
53
- }
54
- `,ue=c`
55
- fragment LevelResultDetails on LevelResult {
56
- ordinal
57
- name
58
- description
59
- badge {
60
- ... on BadgeVariantMedal {
61
- variant
62
- options {
63
- level
64
- color
65
- }
66
- }
67
- }
68
- certified
69
- checks {
70
- ...CheckResultSummary
71
- }
72
- }
73
- ${yt}`,ft=c`
74
- fragment CheckResultDetails on CheckResult {
75
- id
76
- name
77
- description
78
- result
79
- timestamp
80
- notes
81
- }
82
- `,kt=c`
83
- fragment OverviewLevelResult on OverviewLevelResult {
84
- ordinal
85
- name
86
- checks {
87
- check {
88
- id
89
- name
90
- description
91
- }
92
- results {
93
- id
94
- entityRef
95
- result
96
- }
97
- }
98
- }
99
- `,M=c`
100
- fragment HighestLevel on LevelResult {
101
- entityRef
102
- ordinal
103
- name
104
- badge {
105
- ... on BadgeVariantMedal {
106
- variant
107
- options {
108
- color
109
- level
110
- }
111
- }
112
- }
113
- }
114
- `,vt=c`
115
- mutation archiveCampaign($campaignId: String!) {
116
- campaignArchived: archiveCampaign(campaignId: $campaignId)
117
- }
118
- `,Ct=c`
119
- mutation createCampaign($input: CampaignInput!) {
120
- campaign: createCampaign(input: $input) {
121
- id
122
- }
123
- }
124
- `,Rt=c`
125
- mutation createCheck($input: CheckerInput!) {
126
- check: createChecker(input: $input) {
127
- id
128
- filter
129
- name
130
- description
131
- }
132
- }
133
- `,Et=c`
134
- mutation createProgram($input: ProgramInput!) {
135
- program: createProgram(input: $input) {
136
- id
137
- ownerEntityRef
138
- name
139
- description
140
- documentationURL
141
- }
142
- }
143
- `,Pt=c`
144
- mutation deleteCampaign($campaignId: String!) {
145
- campaignDeleted: deleteCampaign(campaignId: $campaignId)
146
- }
147
- `,wt=c`
148
- mutation deleteChecker($checkerId: String!) {
149
- deleteChecker(checkerId: $checkerId)
150
- }
151
- `,$t=c`
152
- mutation deleteProgram($programId: String!) {
153
- programDeleted: deleteProgram(programId: $programId)
154
- }
155
- `,It=c`
156
- mutation updateCampaign($input: CampaignInput!) {
157
- campaign: updateCampaign(input: $input) {
158
- id
159
- }
160
- }
161
- `,bt=c`
162
- mutation updateCheck($input: CheckerInput!) {
163
- check: updateChecker(input: $input) {
164
- id
165
- filter
166
- name
167
- description
168
- }
169
- }
170
- `,St=c`
171
- mutation updateCollectorConfig($input: CollectorConfigInput!) {
172
- collector: setCollectorConfig(input: $input) {
173
- id
174
- factNames
175
- collectionConfigs {
176
- factRefs
177
- filter
178
- frequency
179
- cache
180
- }
181
- config
182
- configSchema
183
- }
184
- }
185
- `,Dt=c`
186
- mutation updateProgram($input: ProgramInput!) {
187
- program: updateProgram(input: $input) {
188
- id
189
- ownerEntityRef
190
- name
191
- description
192
- documentationURL
193
- }
194
- }
195
- `,Ft=c`
196
- query getAllCertifications($entityRef: String!) {
197
- certifications(entityRef: $entityRef, includeFilteredChecks: false) {
198
- ...CertificationSummary
199
- }
200
- }
201
- ${pt}`,Nt=c`
202
- query getTracks($programIds: [String!], $first: Int, $after: String, $type: String) {
203
- programs(programIds: $programIds, first: $first, after: $after, type: $type) {
204
- totalCount
205
- endCursor
206
- hasNextPage
207
- edges {
208
- cursor
209
- program {
210
- id
211
- ownerEntityRef
212
- name
213
- description
214
- documentationURL
215
- filter
216
- levels {
217
- ...level
218
- }
219
- isEditable
220
- type
221
- }
222
- }
223
- }
224
- }
225
- ${de}`,qt=c`
226
- query getCampaigns($filter: ListCampaignsFilter!) {
227
- campaigns(filter: $filter) {
228
- totalCount
229
- endCursor
230
- hasNextPage
231
- edges {
232
- cursor
233
- campaign {
234
- id
235
- name
236
- description
237
- ownerEntityRef
238
- supportChannel
239
- archived
240
- startDate
241
- targetCompletionDate
242
- milestones {
243
- ...milestone
244
- }
245
- track {
246
- id
247
- type
248
- ownerEntityRef
249
- name
250
- description
251
- documentationURL
252
- filter
253
- type
254
- levels {
255
- ...level
256
- }
257
- isEditable
258
- }
259
- }
260
- }
261
- }
262
- }
263
- ${ht}
264
- ${de}`,Tt=c`
265
- query getCertificationDetails($entityRef: String!) {
266
- certifications(entityRef: $entityRef, includeFilteredChecks: false) {
267
- program {
268
- id
269
- name
270
- description
271
- documentationURL
272
- }
273
- highestLevel {
274
- ...HighestLevel
275
- }
276
- levels {
277
- ...LevelResultDetails
278
- }
279
- }
280
- }
281
- ${M}
282
- ${ue}`,Ot=c`
283
- query getCertificationDetailsForTrack($entityRef: String!, $programId: String!) {
284
- programCertification(
285
- entityRef: $entityRef
286
- programId: $programId
287
- includeFilteredChecks: false
288
- ) {
289
- program {
290
- id
291
- name
292
- description
293
- documentationURL
294
- type
295
- }
296
- highestLevel {
297
- ...HighestLevel
298
- }
299
- levels {
300
- ...LevelResultDetails
301
- }
302
- }
303
- }
304
- ${M}
305
- ${ue}`,Gt=c`
306
- query getCheckResultDetails($entityRef: String!, $programId: String!, $checkId: String!) {
307
- checkResult(entityRef: $entityRef, programId: $programId, checkId: $checkId) {
308
- ...CheckResultDetails
309
- }
310
- }
311
- ${ft}`,Lt=c`
312
- query getCheckers($ids: [String!], $first: Int, $after: String, $orderAlphabetical: String, $searchByOwner: String, $searchByName: String) {
313
- checkers(
314
- ids: $ids
315
- first: $first
316
- after: $after
317
- orderAlphabetical: $orderAlphabetical
318
- searchByOwner: $searchByOwner
319
- searchByName: $searchByName
320
- ) {
321
- totalCount
322
- endCursor
323
- hasNextPage
324
- edges {
325
- cursor
326
- checker {
327
- id
328
- ownerEntityRef
329
- supportChannel
330
- name
331
- description
332
- rule
333
- passedMessage
334
- failedMessage
335
- filter
336
- isEditable
337
- schedule
338
- }
339
- }
340
- }
341
- }
342
- `,xt=c`
343
- query getEntityRefsForTechHealthFilter($ownerEntityRef: String) {
344
- entityRefsForTechHealthFilter(ownerEntityRef: $ownerEntityRef)
345
- }
346
- `,At=c`
347
- query getFacetsForOwner($ownerEntityRef: String!) {
348
- facetsForOwner(ownerEntityRef: $ownerEntityRef) {
349
- types {
350
- kind
351
- type
352
- count
353
- }
354
- }
355
- }
356
- `,Bt=c`
357
- query getCollectors($ids: [String!]) {
358
- collectors(ids: $ids) {
359
- id
360
- name
361
- description
362
- factNames
363
- config
364
- isConfigurable
365
- isEditable
366
- collectionConfigs {
367
- factRefs
368
- filter
369
- frequency
370
- cache
371
- }
372
- }
373
- }
374
- `,zt=c`
375
- query getFactSchemas($collectorId: String!, $factName: String!) {
376
- factSchema(collectorId: $collectorId, factName: $factName) {
377
- schema
378
- }
379
- }
380
- `,Mt=c`
381
- query getIndividualCheckPassRates($filter: Filter) {
382
- individualCheckPassRates(filter: $filter) {
383
- id
384
- checkName
385
- checkDescription
386
- checkOwnerRef
387
- snapshotPassRate
388
- trendPassRates
389
- }
390
- }
391
- `,Ut=c`
392
- query getIndividualEntityPassRates($filter: Filter) {
393
- individualEntityPassRates(filter: $filter) {
394
- id
395
- entityDescription
396
- entityOwnerRef
397
- snapshotPassRate
398
- trendPassRates
399
- }
400
- }
401
- `,Ht=c`
402
- query getIndividualGroupPassRates($filter: Filter) {
403
- groupPassRates(filter: $filter) {
404
- id
405
- groupTitle
406
- memberRefs
407
- snapshotPassRate
408
- trendPassRates
409
- }
410
- }
411
- `,Wt=c`
412
- query getIndividualTrackPassRate($filter: Filter) {
413
- individualTrackPassRate(filter: $filter) {
414
- id
415
- trackName
416
- trackDescription
417
- trackOwnerRef
418
- levels {
419
- levelOrdinal
420
- levelName
421
- snapshotPassRate
422
- trendPassRates
423
- }
424
- }
425
- }
426
- `,Qt=c`
427
- query getOverallCheckPassRates($filter: Filter) {
428
- overallCheckPassRates(filter: $filter)
429
- }
430
- `,jt=c`
431
- query getOverallEntityPassRates($filter: Filter) {
432
- overallEntityPassRates(filter: $filter) {
433
- id
434
- trendPassRates
435
- }
436
- }
437
- `,Vt=c`
438
- query getOverallGroupPassRates($filter: Filter) {
439
- groupPassRates(filter: $filter, limit: 5) {
440
- id
441
- groupTitle
442
- snapshotPassRate
443
- }
444
- }
445
- `,Kt=c`
446
- query getOverallTrackPassRate($filter: Filter) {
447
- overallTrackPassRate(filter: $filter) {
448
- levelOrdinal
449
- snapshotPassRate
450
- trendPassRates
451
- }
452
- }
453
- `,_t=c`
454
- query getPlaylists($entityRef: String!) {
455
- playlists(entityRef: $entityRef) {
456
- id
457
- name
458
- description
459
- ownerEntityRef
460
- trackIds
461
- }
462
- }
463
- `,Jt=c`
464
- query getProgramOverviewForOwner($ownerEntityRef: String!, $facet: FacetInput) {
465
- programOverviewForOwner(
466
- ownerEntityRef: $ownerEntityRef
467
- facet: $facet
468
- includeFilteredChecks: false
469
- ) {
470
- programs {
471
- program {
472
- id
473
- name
474
- type
475
- }
476
- highestLevels {
477
- ...HighestLevel
478
- }
479
- levels {
480
- ...OverviewLevelResult
481
- }
482
- }
483
- entityRefs
484
- }
485
- }
486
- ${M}
487
- ${kt}`,Xt=(e,t,a)=>e();function Yt(e,t=Xt){return{archiveCampaign(a,r){return t(i=>e.request(vt,a,{...r,...i}),"archiveCampaign","mutation")},createCampaign(a,r){return t(i=>e.request(Ct,a,{...r,...i}),"createCampaign","mutation")},createCheck(a,r){return t(i=>e.request(Rt,a,{...r,...i}),"createCheck","mutation")},createProgram(a,r){return t(i=>e.request(Et,a,{...r,...i}),"createProgram","mutation")},deleteCampaign(a,r){return t(i=>e.request(Pt,a,{...r,...i}),"deleteCampaign","mutation")},deleteChecker(a,r){return t(i=>e.request(wt,a,{...r,...i}),"deleteChecker","mutation")},deleteProgram(a,r){return t(i=>e.request($t,a,{...r,...i}),"deleteProgram","mutation")},updateCampaign(a,r){return t(i=>e.request(It,a,{...r,...i}),"updateCampaign","mutation")},updateCheck(a,r){return t(i=>e.request(bt,a,{...r,...i}),"updateCheck","mutation")},updateCollectorConfig(a,r){return t(i=>e.request(St,a,{...r,...i}),"updateCollectorConfig","mutation")},updateProgram(a,r){return t(i=>e.request(Dt,a,{...r,...i}),"updateProgram","mutation")},getAllCertifications(a,r){return t(i=>e.request(Ft,a,{...r,...i}),"getAllCertifications","query")},getTracks(a,r){return t(i=>e.request(Nt,a,{...r,...i}),"getTracks","query")},getCampaigns(a,r){return t(i=>e.request(qt,a,{...r,...i}),"getCampaigns","query")},getCertificationDetails(a,r){return t(i=>e.request(Tt,a,{...r,...i}),"getCertificationDetails","query")},getCertificationDetailsForTrack(a,r){return t(i=>e.request(Ot,a,{...r,...i}),"getCertificationDetailsForTrack","query")},getCheckResultDetails(a,r){return t(i=>e.request(Gt,a,{...r,...i}),"getCheckResultDetails","query")},getCheckers(a,r){return t(i=>e.request(Lt,a,{...r,...i}),"getCheckers","query")},getEntityRefsForTechHealthFilter(a,r){return t(i=>e.request(xt,a,{...r,...i}),"getEntityRefsForTechHealthFilter","query")},getFacetsForOwner(a,r){return t(i=>e.request(At,a,{...r,...i}),"getFacetsForOwner","query")},getCollectors(a,r){return t(i=>e.request(Bt,a,{...r,...i}),"getCollectors","query")},getFactSchemas(a,r){return t(i=>e.request(zt,a,{...r,...i}),"getFactSchemas","query")},getIndividualCheckPassRates(a,r){return t(i=>e.request(Mt,a,{...r,...i}),"getIndividualCheckPassRates","query")},getIndividualEntityPassRates(a,r){return t(i=>e.request(Ut,a,{...r,...i}),"getIndividualEntityPassRates","query")},getIndividualGroupPassRates(a,r){return t(i=>e.request(Ht,a,{...r,...i}),"getIndividualGroupPassRates","query")},getIndividualTrackPassRate(a,r){return t(i=>e.request(Wt,a,{...r,...i}),"getIndividualTrackPassRate","query")},getOverallCheckPassRates(a,r){return t(i=>e.request(Qt,a,{...r,...i}),"getOverallCheckPassRates","query")},getOverallEntityPassRates(a,r){return t(i=>e.request(jt,a,{...r,...i}),"getOverallEntityPassRates","query")},getOverallGroupPassRates(a,r){return t(i=>e.request(Vt,a,{...r,...i}),"getOverallGroupPassRates","query")},getOverallTrackPassRate(a,r){return t(i=>e.request(Kt,a,{...r,...i}),"getOverallTrackPassRate","query")},getPlaylists(a,r){return t(i=>e.request(_t,a,{...r,...i}),"getPlaylists","query")},getProgramOverviewForOwner(a,r){return t(i=>e.request(Jt,a,{...r,...i}),"getProgramOverviewForOwner","query")}}}var me=(e,t,a)=>{if(!t.has(e))throw TypeError("Cannot "+a)},s=(e,t,a)=>(me(e,t,"read from private field"),a?a.call(e):t.get(e)),b=(e,t,a)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,a)},U=(e,t,a,r)=>(me(e,t,"write to private field"),r?r.call(e,a):t.set(e,a),a),T,O,l,H,o;const G=xe({id:"plugin.soundcheck"}),Zt=e=>"response"in e&&"errors"in e.response,ea=e=>"response"in e&&"message"in e.response;class ta{constructor(t){b(this,T,void 0),b(this,O,void 0),b(this,l,void 0),b(this,H,r=>{var i,d,u;return Zt(r)?(u=(d=(i=r.response)==null?void 0:i.errors)==null?void 0:d[0].message)!=null?u:`${r}`:ea(r)?r.response.message:`${r}`}),b(this,o,async r=>{try{return await r()}catch(i){throw new Error(`Error from Soundcheck backend: ${s(this,H).call(this,i)}`)}}),U(this,T,t.fetchApi),U(this,O,t.discoveryApi);const a=new We("/graphql",{fetch:async(r,i)=>{const d=`${await s(this,O).getBaseUrl("soundcheck")}${r}`;return s(this,T).fetch(d,i)}});U(this,l,Yt(a))}async getAllCertifications(t){return s(this,o).call(this,async()=>{const{certifications:a}=await s(this,l).getAllCertifications({entityRef:t});return a})}async getCertificationDetails(t){return s(this,o).call(this,async()=>{const{certifications:a}=await s(this,l).getCertificationDetails({entityRef:t});return a})}async getCertificationDetailsForTrack(t,a){return s(this,o).call(this,async()=>{const{programCertification:r}=await s(this,l).getCertificationDetailsForTrack({entityRef:t,programId:a});return r})}async getCheckResultDetails(t,a,r){return s(this,o).call(this,async()=>{const{checkResult:i}=await s(this,l).getCheckResultDetails({entityRef:t,programId:a,checkId:r});return i})}async getFacetsForOwner(t){return s(this,o).call(this,async()=>{const{facetsForOwner:a}=await s(this,l).getFacetsForOwner({ownerEntityRef:t});return a})}async getProgramOverviewForOwner(t,a){return s(this,o).call(this,async()=>{const{programOverviewForOwner:r}=await s(this,l).getProgramOverviewForOwner({ownerEntityRef:t,facet:a});return r})}async getTracks(t,a,r,i){return s(this,o).call(this,async()=>{const{programs:d}=await s(this,l).getTracks({programIds:t,first:a,after:r,type:i});return d})}async createProgram(t){return s(this,o).call(this,async()=>{const{program:a}=await s(this,l).createProgram({input:t});return a})}async updateProgram(t){return s(this,o).call(this,async()=>{const{program:a}=await s(this,l).updateProgram({input:t});return a})}async deleteProgram(t){return s(this,o).call(this,async()=>{const{programDeleted:a}=await s(this,l).deleteProgram({programId:t});return a})}async getPlaylists(t){return s(this,o).call(this,async()=>{const{playlists:a}=await s(this,l).getPlaylists({entityRef:t});return a})}async getChecks(t,a,r){return s(this,o).call(this,async()=>{const{checkers:i}=await s(this,l).getCheckers({ids:t,first:a,after:r});return i})}async createCheck(t){return s(this,o).call(this,async()=>{const{check:a}=await s(this,l).createCheck({input:t});return a})}async updateCheck(t){return s(this,o).call(this,async()=>{const{check:a}=await s(this,l).updateCheck({input:t});return a})}async deleteCheck(t){return s(this,o).call(this,async()=>await s(this,l).deleteChecker({checkerId:t}))}async getCollectors(t){return s(this,o).call(this,async()=>{const{collectors:a}=await s(this,l).getCollectors({ids:t});return a})}async getFactSchema(t,a){if(!(!t||!a))return s(this,o).call(this,async()=>{const{factSchema:r}=await s(this,l).getFactSchemas({collectorId:t,factName:a});return r})}async updateCollectorConfig(t){return s(this,o).call(this,async()=>{const{collector:a}=await s(this,l).updateCollectorConfig({input:t});return a})}async getOverallCheckPassRates(t){return s(this,o).call(this,async()=>await s(this,l).getOverallCheckPassRates({filter:t}))}async getIndividualCheckPassRates(t){return s(this,o).call(this,async()=>await s(this,l).getIndividualCheckPassRates({filter:t}))}async getOverallTrackPassRate(t){return s(this,o).call(this,async()=>await s(this,l).getOverallTrackPassRate({filter:t}))}async getIndividualTrackPassRate(t){return s(this,o).call(this,async()=>await s(this,l).getIndividualTrackPassRate({filter:t}))}async getOverallEntityPassRates(t){return s(this,o).call(this,async()=>await s(this,l).getOverallEntityPassRates({filter:t}))}async getIndividualEntityPassRates(t){return s(this,o).call(this,async()=>await s(this,l).getIndividualEntityPassRates({filter:t}))}async getOverallGroupPassRates(t){return s(this,o).call(this,async()=>await s(this,l).getOverallGroupPassRates({filter:t}))}async getIndividualGroupPassRates(t){return s(this,o).call(this,async()=>await s(this,l).getIndividualGroupPassRates({filter:t}))}async getEntityRefsForTechHealthFilter(t){return s(this,o).call(this,async()=>await s(this,l).getEntityRefsForTechHealthFilter({ownerEntityRef:t}))}async getCampaigns(t){return s(this,o).call(this,async()=>{const{campaigns:a}=await s(this,l).getCampaigns({filter:t});return a})}async createCampaign(t){return s(this,o).call(this,async()=>{const{campaign:a}=await s(this,l).createCampaign({input:t});return a})}async updateCampaign(t){return s(this,o).call(this,async()=>{const{campaign:a}=await s(this,l).updateCampaign({input:t});return a})}async deleteCampaign(t){return s(this,o).call(this,async()=>{const{campaignDeleted:a}=await s(this,l).deleteCampaign({campaignId:t});return a})}async archiveCampaign(t){return s(this,o).call(this,async()=>{const{campaignArchived:a}=await s(this,l).archiveCampaign({campaignId:t});return a})}}T=new WeakMap,O=new WeakMap,l=new WeakMap,H=new WeakMap,o=new WeakMap;const R=D({id:"soundcheck-entity"}),aa=D({id:"soundcheck-group"}),pe=g({id:"soundcheck-entity-certification-track-redirect",parent:R,path:"/tracks/:trackId"}),ge=g({id:"soundcheck-entity-certification",parent:R,path:"/tracks/:trackId/checks/:checkId"}),ra=g({id:"soundcheck-entity-playlist-redirect",parent:R,path:"/playlists/:playlistId"}),na=g({id:"soundcheck-entity-playlist-track-redirect",parent:R,path:"/playlists/:playlistId/tracks/:trackId"}),he=g({id:"soundcheck-entity-playlist-track-redirect",parent:R,path:"/playlists/:playlistId/tracks/:trackId/checks/:checkId"}),ia=D({id:"soundcheck-overview"}),y=D({id:"soundcheck"}),sa=g({id:"soundcheck-checks",parent:y,path:"/checks"}),ca=g({id:"soundcheck-check-details",parent:y,path:"/checks/:checkId"}),la=g({id:"soundcheck-tracks",parent:y,path:"/tracks"}),oa=g({id:"soundcheck-track-details",parent:y,path:"/tracks/:trackId"}),da=g({id:"soundcheck-campaigns",parent:y,path:"/campaigns"}),ua=g({id:"soundcheck-campaign-details",parent:y,path:"/campaigns/:campaignId"}),ma=g({id:"soundcheck-campaign-edit",parent:y,path:"/campaigns/:campaignId/edit"}),pa=g({id:"soundcheck-tech-health",parent:y,path:"/tech-health"}),ga=g({id:"soundcheck-collectors-page",parent:y,path:"/collectors"}),ha=g({id:"soundcheck-collector-details",parent:y,path:"/collectors/:collectorId"}),E=Ae({id:"soundcheck",apis:[Be({api:G,deps:{discoveryApi:ze,fetchApi:Me},factory:e=>new ta(e)})],routes:{entityContent:R}}),ya=E.provide(F({name:"EntitySoundcheckContent",component:()=>import("./EntitySoundcheckContent-01a8936d.esm.js").then(e=>e.EntitySoundcheckContent),mountPoint:R})),fa=E.provide(Ue({name:"EntitySoundcheckCard",component:{lazy:()=>import("./index-4dba74f4.esm.js").then(e=>e.EntitySoundcheckCard)}})),ka=E.provide(F({name:"GroupSoundcheckContent",component:()=>import("./index-07f23db3.esm.js").then(e=>e.FixedGroupOverviewPage),mountPoint:aa})),va=E.provide(F({name:"SoundcheckOverviewPage",component:()=>import("./index-07f23db3.esm.js").then(e=>e.OverviewPage),mountPoint:ia})),Ca=E.provide(F({name:"SoundcheckRoutingPage",component:()=>import("./index-983aff99.esm.js").then(e=>e.RoutingPage),mountPoint:y})),Ra=Je(e=>new Ke({defaultOptions:{queries:{refetchInterval:6e4,refetchIntervalInBackground:!1,refetchOnWindowFocus:"always",retry:2,retryDelay:t=>{const a=450+Math.ceil(Math.random()*100);return Math.min(a*2**t,3e4)},onError:t=>e.post(t)}}})),Ea=e=>{const t=B(He),a=Ra(t);return n.createElement(_e,{client:a},e.children)};function ye(e){const t=B(G),a=se(e);return Z(["soundcheck/certifications",a],async()=>t.getAllCertifications(a))}function fe(e,t){const a=B(G),r=se(e);return Z(["soundcheck/certifications",r,t],async()=>a.getCertificationDetailsForTrack(r,t),{enabled:!!t})}var ke=(e=>(e.GetAllPrograms="soundcheck/programs",e.GetChecks="soundcheck/checks",e.GetCollectors="soundcheck/collectors",e.GetFactSchema="soundcheck/collectors/schema",e.GetEntityFacets="soundcheck/catalog/facets",e.GetSoftwareEntityRefsForUser="soundcheck/entities/softwareEntityRefsForUser",e.GetCampaigns="soundcheck/campaigns",e.GetOverallCheckPassRates="soundcheck/charts/overallCheckPassRates",e.GetIndividualCheckPassRate="soundcheck/charts/getIndividualCheckPassRate",e.GetOverallTrackPassRate="soundcheck/charts/overallTrackPassRate",e.GetIndividualTrackPassRate="soundcheck/charts/individualTrackPassRate",e.GetOverallEntityPassRates="soundcheck/charts/overallEntityPassRates",e.GetIndividualEntityPassRate="soundcheck/charts/individualEntityPassRate",e.GetOverallGroupPassRates="soundcheck/charts/overallGroupPassRates",e.GetIndividualGroupPassRates="soundcheck/charts/individualGroupPassRates",e.EntityByRef="soundcheck/catalog/entityByRef",e.EntitiesByRefs="soundcheck/catalog/entitiesByRef",e))(ke||{}),ve=(e=>(e.DeleteCheck="soundcheck/deleteCheck",e.CreateCheck="soundcheck/createCheck",e.UpdateCheck="soundcheck/updateCheck",e.DeleteProgram="soundcheck/deleteProgram",e.CreateProgram="soundcheck/createProgram",e.UpdateProgram="soundcheck/updateProgram",e.UpdateCollectorConfig="soundcheck/updateCollectorConfig",e.CreateCampaign="soundcheck/createCampaign",e.UpdateCampaign="soundcheck/updateCampaign",e.DeleteCampaign="soundcheck/deleteCampaign",e.ArchiveCampaign="soundcheck/archiveCampaign",e))(ve||{});const Pa=h(e=>({root:{padding:e.spacing(3)},icon:{display:"none"},message:{padding:0},type:{fontWeight:700,lineHeight:1.75}})),L=e=>{const{type:t,...a}=Pa();return n.createElement(it,{severity:e.severity,elevation:1,classes:a,onClose:e.onClose},n.createElement(p,{classes:{root:t}},e.title),e.children)},Ce=X({}),wa=e=>{const[t,a]=N(),r=w(d=>{a(d)},[]),i=w(()=>{a(null)},[]);return n.createElement(Ce.Provider,{value:{showAlert:r,clearAlert:i}},t&&n.createElement(L,{severity:t.severity,title:t.title,onClose:i},t.message),e.children)},$a=()=>Y(Ce),Ia=h(e=>({modalContent:{position:"absolute",top:"50%",left:"50%",transform:"translate(-50%, -50%)",padding:"25px",backgroundColor:e.palette.type==="dark"?e.palette.grey[800]:e.palette.grey[200]},modalButtons:{display:"flex",justifyContent:"space-evenly","& button":{width:"40%",maxWidth:"185px"}},modalMessage:{margin:"15px 0 35px"}})),Re=X({}),ba=e=>{const t=Ia(),[a,r]=N(!1),[i,d]=N(),u=Qe(),m=w(({title:C,message:S,error:Ge})=>(d({title:C,message:S,error:Ge}),r(!0),new Promise(Le=>{u.current=Le})),[]),P=w(()=>{u.current&&u.current(!0),r(!1)},[]),v=w(()=>{u.current&&u.current(!1),r(!1)},[]);return n.createElement(Re.Provider,{value:{showModal:m}},e.children,i&&n.createElement(Ye,{open:a,onClose:v,"aria-labelledby":"confirmation-modal-title","aria-describedby":"confirmation-modal-description"},n.createElement(ee,{className:t.modalContent},n.createElement(p,{id:"confirmation-modal-title",variant:"h6"},i.title),n.createElement(p,{className:t.modalMessage,id:"confirmation-modal-description",variant:"body1"},i.message),n.createElement("div",{className:t.modalButtons},!i.error&&n.createElement(te,{onClick:v,variant:"contained","aria-label":"cancel"},"Cancel"),n.createElement(te,{color:"primary",onClick:P,variant:"contained","aria-label":"confirm"},i.error?"Ok":"Confirm")))))},Sa=()=>Y(Re),Ee=24,Da=11,W=e=>e==="small"?1:2,Fa=h({root:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:"50%",borderWidth:"2px",fontWeight:700,width:({size:e})=>`${Ee*W(e)}px`,height:({size:e})=>`${Ee*W(e)}px`,fontSize:({size:e})=>`${Da*W(e)}px`}}),Q=({className:e,label:t,size:a="small"})=>{const r=Fa({size:a});return n.createElement("span",{className:I(e,r.root),role:"img","aria-label":`${t} badge`},t)},Na=h(e=>({root:{background:({color:t})=>t,color:e.palette.common.black,borderColor:e.palette.common.black,borderStyle:"solid","&::after":{position:"absolute",display:"block",content:'""',top:0,left:0,width:"100%",height:"100%",borderRadius:"50%",boxShadow:["inset 0 -0.18em 0 0 rgba(0, 0, 0, 0.25)","inset 0px 0.18em 0px 0px rgba(255, 255, 255, 0.5)","inset 0px 1.3em 0px -0.5em rgba(255, 255, 255, 0.2)"].join(",")}}})),j=({className:e,badge:t,size:a="small"})=>{const r=Na({color:t.options.color,size:a});return n.createElement(Q,{className:I(e,r.root),size:a,label:`L${t.options.level}`})},qa=h({root:{borderColor:"currentColor",borderStyle:"solid"}}),Pe=({className:e,size:t="small"})=>{const a=qa();return n.createElement(Q,{className:I(e,a.root),size:t,label:"C"})},Ta=h({root:{borderColor:"currentColor",borderStyle:"dashed"}}),we=({className:e,size:t="small"})=>{const a=Ta();return n.createElement(Q,{className:I(e,a.root),size:t,label:"NL"})},$e=({badge:e,className:t,size:a="small",isCampaign:r})=>{const i=t||"";let d=n.createElement(we,{className:i,size:a});return r?d=n.createElement(Pe,{className:i,size:a}):e&&(d=n.createElement(j,{className:i,size:a,badge:e})),d},V=h(e=>({description:{padding:0,margin:0,display:"block","& p":{margin:0}},root:{padding:e.spacing(2),margin:0,display:"grid",gridTemplateColumns:"min-content auto",gridGap:e.spacing(2)},title:{fontSize:e.typography.pxToRem(18),fontWeight:700,lineHeight:1.235,marginBottom:"6px"},level:{textTransform:"uppercase",color:e.palette.text.secondary,fontWeight:700,letterSpacing:"1px"}}));function Oa({description:e,documentationUrl:t}){const a=V();return t?n.createElement("div",{className:a.description},n.createElement(ae,{content:e}),n.createElement(re,{to:t},"Learn more")):n.createElement("div",{className:a.description},n.createElement(ae,{content:e}))}const Ie=({name:e,level:t,badge:a,description:r,documentationUrl:i,isCampaign:d=!1})=>{const u=V();return n.createElement("div",{className:u.root},n.createElement($e,{badge:a,isCampaign:d,size:"large"}),n.createElement("div",null,!d&&n.createElement(p,{variant:"caption",className:u.level},t!=null?t:"No Level"),n.createElement(p,{className:u.title},e),r&&n.createElement(Oa,{description:r,documentationUrl:i})))},x=({children:e})=>{const[t,a]=N(!1);return je(()=>{const r=setTimeout(()=>{a(!0)},250);return()=>clearTimeout(r)},[]),n.createElement(Ze,{in:t,timeout:250},e)},K=({hideDescription:e=!1})=>{const t=V();return n.createElement(x,null,n.createElement("div",{className:t.root},n.createElement(k,{width:44,height:44}),n.createElement("div",null,n.createElement(p,{variant:"caption",className:t.level},n.createElement(k,{width:100})),n.createElement(p,{variant:"h4",className:t.title},n.createElement(k,{width:300})),!e&&n.createElement(p,{variant:"body2"},n.createElement(k,null)))))},be=h(e=>{const t=e.palette.type==="dark"?e.palette.grey[700]:e.palette.grey[100];return{wrapper:{backgroundColor:t,color:$(e.palette.getContrastText(t),.8),fontSize:e.typography.caption.fontSize,minHeight:"auto",borderTop:`1px solid ${e.palette.divider}`,borderBottom:`1px solid ${e.palette.divider}`,padding:e.spacing(1),display:"grid",gridTemplateAreas:({badge:a})=>[`"${a?"badge":"title"} title"`,`"${a?".":"description"} description"`].join(" "),gridTemplateColumns:"auto 1fr"},title:{gridArea:"title",textTransform:"uppercase",fontWeight:"bold",color:$(e.palette.getContrastText(t),.8),fontSize:e.typography.body2.fontSize,paddingTop:e.spacing(.5),paddingBottom:e.spacing(.5),lineHeight:1},badge:{gridArea:"badge",marginRight:e.spacing(1)},description:{gridArea:"description",color:$(e.palette.getContrastText(t),.8),fontSize:e.typography.subtitle2.fontSize,marginTop:e.spacing(1)}}}),Ga=e=>{const t=be({badge:e.badge});return n.createElement("div",{className:t.wrapper},e.badge?n.createElement(j,{className:t.badge,badge:e.badge}):null,n.createElement(p,{className:t.title},e.title),e.description?n.createElement(p,{className:t.description},e.description):null)},La=()=>{const e=be({});return n.createElement(x,null,n.createElement("div",{className:e.wrapper},n.createElement(k,{className:e.title}),n.createElement(p,{className:e.description},n.createElement(k,null))))},xa=h(e=>({root:{display:"inline-flex",alignItems:"center",gap:e.spacing(1)}})),Se=({timestamp:e,description:t})=>{const a=xa(),r=le.fromISO(e).toLocaleString(le.DATETIME_FULL),i=rt(e),d=t?`${t}: ${i}`:void 0;return n.createElement("div",{className:a.root},n.createElement(et,{title:r},n.createElement(p,{variant:"caption","aria-label":d},i)),n.createElement(ct,null))},Aa=e=>({[f.Passed]:"Check passed",[f.NotReported]:"Check not reported",[f.Failed]:"Check failed",[f.NotApplicable]:"Check not applicable"})[e],Ba=q(e=>({root:{color:e.palette.success.main}}))(lt),za=q(e=>({root:{color:e.palette.error.main}}))(ot),Ma=q(e=>({root:{color:e.palette.info.main}}))(ut),Ua=q(e=>({root:{color:e.palette.text.disabled}}))(dt),De=({result:e,className:t})=>{const a={className:t,"aria-label":Aa(e),"aria-hidden":!1};return e===f.Passed?n.createElement(Ba,{...a}):e===f.NotReported?n.createElement(Ma,{...a}):e===f.Failed?n.createElement(za,{...a}):e===f.NotApplicable?n.createElement(Ua,{...a}):null},Fe=h(e=>({root:{display:"grid",width:"100%",gridTemplateColumns:"auto 1fr auto",gridColumnGap:e.spacing(1),padding:e.spacing(1),alignItems:"center","&.selected":{backgroundColor:$(e.palette.primary[e.palette.type],.2)},"&:hover, &:active, &:focus":{backgroundColor:$(e.palette.primary[e.palette.type],.3)}}})),Ha=({className:e,href:t,children:a})=>t?n.createElement(st,{to:t,className:e},a):n.createElement("div",{className:e},a),Wa=({result:e,name:t,timestamp:a,selected:r=!1,href:i})=>{const d=Fe(),u=I(d.root,{selected:r});return n.createElement(Ha,{href:i,className:u},n.createElement(De,{result:e}),n.createElement(p,{variant:"body2"},t),a?n.createElement(Se,{timestamp:a}):null)},_=()=>{const e=Fe();return n.createElement(x,null,n.createElement("div",{className:e.root},n.createElement(k,{width:24,height:24}),n.createElement(p,{variant:"body2"},n.createElement(k,null)),n.createElement(k,{width:100,height:24})))},Qa=()=>{const e=_a();return n.createElement("div",null,n.createElement(K,null),new Array(3).fill(null).map((t,a)=>n.createElement(n.Fragment,{key:`skeleton-level-${a}`},n.createElement(La,null),n.createElement("ul",{className:e.checks},n.createElement(_,null),n.createElement(_,null),n.createElement(_,null)))))},ja=h(e=>({noChecks:{padding:e.spacing(1)},checks:{padding:0,margin:0,flex:1,listStyle:"none"},checkItem:{borderBottom:`1px solid ${e.palette.divider}`,"&:last-of-type":{borderBottom:"0"}}})),Va=({checks:e,playlistId:t,trackId:a,checkId:r})=>{const i=ja(),d=z(ge),u=z(he);return e.length?n.createElement("ul",{className:i.checks},e.map(m=>n.createElement("li",{key:m.id,className:i.checkItem},n.createElement(Wa,{...m,selected:m.id===r,href:t?u({playlistId:t,trackId:a,checkId:m.id}):d({trackId:a,checkId:m.id})})))):n.createElement(p,{variant:"body2",className:i.noChecks},"No applicable checks at this level.")},Ka=({level:e,checkId:t,trackId:a,playlistId:r,isCampaign:i})=>{var d;return n.createElement(n.Fragment,null,!i&&n.createElement(Ga,{badge:e.badge,title:e.name,description:e.description}),n.createElement(Va,{checks:(d=e.checks)!=null?d:[],playlistId:r,trackId:a,checkId:t}))},_a=h(()=>({checks:{padding:0,margin:0,flex:1,listStyle:"none"}})),Ja=({playlistId:e,trackId:t,checkId:a})=>{var r,i;const{entity:d}=ne(),{data:u,isLoading:m,isError:P}=fe(d,t);if(P)return n.createElement("div",null,n.createElement(ee,{padding:2},n.createElement(L,{severity:"error",title:"Error loading certification"})));if(m||!t)return n.createElement(Qa,null);if(!u)return null;const v=u.program.type==="campaign";return n.createElement("div",null,n.createElement(Ie,{name:u.program.name,level:(r=u.highestLevel)==null?void 0:r.name,badge:(i=u.highestLevel)==null?void 0:i.badge,description:u.program.description,documentationUrl:u.program.documentationURL,isCampaign:v}),u==null?void 0:u.levels.map(C=>n.createElement(Ka,{key:C.ordinal,level:C,checkId:a,trackId:t,playlistId:e,isCampaign:v})))},Xa=()=>n.createElement(n.Fragment,null,n.createElement(K,{hideDescription:!0}),n.createElement(K,{hideDescription:!0})),Ya=h(e=>({card:{backgroundColor:e.palette.background.paper,border:`1px solid ${e.palette.border}`,borderRadius:e.shape.borderRadius,display:"flex",padding:e.spacing(5)},container:{margin:"0 auto",display:"flex",flexDirection:"row",alignItems:"center",gap:e.spacing(5)},content:{width:"20rem",display:"flex",flexDirection:"column",gap:e.spacing(2)},header:{display:"flex",flexDirection:"column",gap:e.spacing(2)},description:{color:e.palette.grey[600],fontWeight:500},action:{display:"inline-block"},img:{maxHeight:400}})),J=({title:e,description:t,imgSrc:a,action:r})=>{const i=Ya();return n.createElement("div",{className:i.card},n.createElement("div",{className:i.container},n.createElement("div",{className:i.content},n.createElement("header",{className:i.header},n.createElement(p,{variant:"h5"},e),n.createElement(p,{variant:"body1",className:i.description},t)),r&&n.createElement("div",{className:i.action},r)),n.createElement("div",null,n.createElement("img",{src:a!=null?a:mt,className:i.img,alt:e}))))},Za="No certifications available",Ne=({ownerEntityRef:e,selectGroupHint:t})=>{let a="There are no tracks configured that apply to this entity.";return e&&(a=`Looks like the group '${ie(ce(e),{defaultKind:"Group"})}' doesn't own any entities that have any applicable tracks configured. ${t}`),n.createElement(J,{title:Za,description:a})},er="Missing entities",tr=({ownerEntityRef:e,selectGroupHint:t})=>{if(!e)return null;const a=ie(ce(e),{defaultKind:"Group"});return n.createElement(J,{title:er,description:`The group '${a}' doesn't own any entities. ${t!=null?t:""}`})},qe="soundcheck",Te="Submitted check results will still be stored, but it will not be possible to view certifications or individual results until a valid license is present.",Oe=Xe(e=>({certificationWrapper:{display:"flex",justifyContent:"space-between",alignItems:"center"},infoCard:{display:"grid",gridRowGap:e.spacing(2)},emptyState:{overflow:"hidden"}})),A=({children:e,title:t})=>{const a=Oe();return n.createElement(at,{title:t},n.createElement("div",{className:a.infoCard},n.createElement(nt,{inline:!0,backend:qe,invalidLicenseMessage:Te}),e))},ar=({title:e="Soundcheck"})=>{const{entity:t}=ne(),a=Oe(),{data:r,isError:i,isLoading:d}=ye(t),u=z(pe);return i?n.createElement(A,{title:e},n.createElement(L,{severity:"error",title:"Error loading certifications"})):d||!r?n.createElement(A,{title:e},n.createElement(Xa,null)):r.length?n.createElement(A,{title:e},r.map((m,P)=>{var v,C,S;return n.createElement(Ve,{key:m.program.name},n.createElement("div",{className:a.certificationWrapper,"data-testid":"soundcheck-track-row"},n.createElement(Ie,{key:m.program.id,name:m.program.name,badge:(v=m.highestLevel)==null?void 0:v.badge,level:(C=m.highestLevel)==null?void 0:C.name,isCampaign:((S=m.program)==null?void 0:S.type)==="campaign"}),n.createElement(re,{to:u({trackId:m.program.id})},"View Details")),P<r.length-1?n.createElement(tt,null):null)})):n.createElement(A,{title:e},n.createElement("div",{className:a.emptyState},n.createElement(Ne,null)))};export{L as A,oe as B,$e as C,sa as D,J as E,x as F,pa as G,ga as H,ha as I,wa as J,E as K,j as L,ve as M,we as N,ya as O,fa as P,ke as Q,f as R,Ea as S,ka as T,va as U,Ca as V,Se as a,ye as b,ra as c,pe as d,Ja as e,Ne as f,qe as g,na as h,Te as i,ge as j,he as k,ar as l,De as m,Pe as n,tr as o,ua as p,ma as q,da as r,G as s,$a as t,fe as u,Sa as v,ba as w,ca as x,oa as y,la as z};
488
- //# sourceMappingURL=index-9833aac9.esm.js.map