@spotify/backstage-plugin-soundcheck 0.8.2 → 0.9.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.
- package/CHANGELOG.md +23 -0
- package/README.md +16 -3
- package/config.d.ts +9 -0
- package/dist/esm/{EntitySoundcheckContent-61aee236.esm.js → EntitySoundcheckContent-aecd6416.esm.js} +2 -2
- package/dist/esm/OverviewPageContent-433c8dc6.esm.js +2 -0
- package/dist/esm/{RefetchingIndicator-e114bc04.esm.js → RefetchingIndicator-3707a744.esm.js} +2 -2
- package/dist/esm/{index-e3458e3b.esm.js → index-01c3a9f5.esm.js} +2 -2
- package/dist/esm/index-29e115b6.esm.js +2 -0
- package/dist/esm/index-6e141f2f.esm.js +429 -0
- package/dist/esm/{index-7f1f7ff1.esm.js → index-a224cc6f.esm.js} +2 -2
- package/dist/index.esm.js +1 -1
- package/package.json +18 -16
- package/dist/esm/OverviewPageContent-31025374.esm.js +0 -2
- package/dist/esm/index-0208f72c.esm.js +0 -2
- package/dist/esm/index-7b347cd4.esm.js +0 -388
|
@@ -1,388 +0,0 @@
|
|
|
1
|
-
import{createApiRef as Oe,createRouteRef as $,createSubRouteRef as R,createPlugin as Ne,createApiFactory as qe,discoveryApiRef as Te,fetchApiRef as Ge,createRoutableExtension as b,createComponentExtension as Le,useApi as x,errorApiRef as Ae,useRouteRef as j}from"@backstage/core-plugin-api";import{GraphQLClient as xe}from"graphql-request";import c from"graphql-tag";import a,{createContext as V,useState as S,useCallback as C,useContext as K,useRef as Be,useEffect as Me,Fragment as ze}from"react";import{QueryClient as Ue,QueryClientProvider as He,useQuery as _}from"@tanstack/react-query";import{memoize as We}from"lodash";import Qe from"@material-ui/core/styles/makeStyles";import{makeStyles as p,Typography as m,Modal as je,Box as J,Button as X,Fade as Ve,alpha as E,Tooltip as Ke,withStyles as I,Divider as _e}from"@material-ui/core";import{MarkdownContent as Y,Link as Z,EmptyState as ee,InfoCard as Je}from"@backstage/core-components";import{useEntity as te,humanizeEntityRef as Xe}from"@backstage/plugin-catalog-react";import{useAutoUpdatingRelativeTime as Ye,SpotifyLicenseBanner as Ze}from"@spotify/backstage-plugin-core";import{stringifyEntityRef as re,parseEntityRef as et}from"@backstage/catalog-model";import{Alert as tt,Skeleton as f}from"@material-ui/lab";import{Link as rt}from"react-router-dom";import F from"classnames";import at from"@material-ui/icons/Schedule";import{DateTime as ae}from"luxon";import nt from"@material-ui/icons/Check";import it from"@material-ui/icons/Close";import st from"@material-ui/icons/RemoveCircleOutline";import ct from"@material-ui/icons/HelpOutline";var ne=(e=>(e.Medal="MEDAL",e))(ne||{}),g=(e=>(e.Failed="FAILED",e.NotApplicable="NOT_APPLICABLE",e.NotReported="NOT_REPORTED",e.Passed="PASSED",e))(g||{});const ot=c`
|
|
2
|
-
fragment CertificationSummary on Certification {
|
|
3
|
-
entityRef
|
|
4
|
-
program {
|
|
5
|
-
id
|
|
6
|
-
name
|
|
7
|
-
}
|
|
8
|
-
highestLevel {
|
|
9
|
-
ordinal
|
|
10
|
-
name
|
|
11
|
-
description
|
|
12
|
-
badge {
|
|
13
|
-
... on BadgeVariantMedal {
|
|
14
|
-
variant
|
|
15
|
-
options {
|
|
16
|
-
level
|
|
17
|
-
color
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
}
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
`,lt=c`
|
|
24
|
-
fragment check on Check {
|
|
25
|
-
id
|
|
26
|
-
name
|
|
27
|
-
description
|
|
28
|
-
}
|
|
29
|
-
`,dt=c`
|
|
30
|
-
fragment level on Level {
|
|
31
|
-
ordinal
|
|
32
|
-
name
|
|
33
|
-
description
|
|
34
|
-
checks {
|
|
35
|
-
...check
|
|
36
|
-
}
|
|
37
|
-
}
|
|
38
|
-
${lt}`,ut=c`
|
|
39
|
-
fragment CheckResultSummary on CheckResult {
|
|
40
|
-
id
|
|
41
|
-
name
|
|
42
|
-
result
|
|
43
|
-
timestamp
|
|
44
|
-
}
|
|
45
|
-
`,mt=c`
|
|
46
|
-
fragment LevelResultDetails on LevelResult {
|
|
47
|
-
ordinal
|
|
48
|
-
name
|
|
49
|
-
description
|
|
50
|
-
badge {
|
|
51
|
-
... on BadgeVariantMedal {
|
|
52
|
-
variant
|
|
53
|
-
options {
|
|
54
|
-
level
|
|
55
|
-
color
|
|
56
|
-
}
|
|
57
|
-
}
|
|
58
|
-
}
|
|
59
|
-
certified
|
|
60
|
-
checks {
|
|
61
|
-
...CheckResultSummary
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
${ut}`,pt=c`
|
|
65
|
-
fragment CheckResultDetails on CheckResult {
|
|
66
|
-
id
|
|
67
|
-
name
|
|
68
|
-
description
|
|
69
|
-
result
|
|
70
|
-
timestamp
|
|
71
|
-
notes
|
|
72
|
-
}
|
|
73
|
-
`,ht=c`
|
|
74
|
-
fragment OverviewLevelResult on OverviewLevelResult {
|
|
75
|
-
ordinal
|
|
76
|
-
name
|
|
77
|
-
checks {
|
|
78
|
-
check {
|
|
79
|
-
id
|
|
80
|
-
name
|
|
81
|
-
description
|
|
82
|
-
}
|
|
83
|
-
results {
|
|
84
|
-
id
|
|
85
|
-
entityRef
|
|
86
|
-
result
|
|
87
|
-
}
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
`,ie=c`
|
|
91
|
-
fragment HighestLevel on LevelResult {
|
|
92
|
-
entityRef
|
|
93
|
-
ordinal
|
|
94
|
-
name
|
|
95
|
-
badge {
|
|
96
|
-
... on BadgeVariantMedal {
|
|
97
|
-
variant
|
|
98
|
-
options {
|
|
99
|
-
color
|
|
100
|
-
level
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
`,gt=c`
|
|
106
|
-
mutation createCheck($input: CheckerInput!) {
|
|
107
|
-
check: createChecker(input: $input) {
|
|
108
|
-
id
|
|
109
|
-
filter
|
|
110
|
-
name
|
|
111
|
-
description
|
|
112
|
-
}
|
|
113
|
-
}
|
|
114
|
-
`,ft=c`
|
|
115
|
-
mutation createProgram($input: ProgramInput!) {
|
|
116
|
-
program: createProgram(input: $input) {
|
|
117
|
-
id
|
|
118
|
-
ownerEntityRef
|
|
119
|
-
name
|
|
120
|
-
description
|
|
121
|
-
documentationURL
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
`,yt=c`
|
|
125
|
-
mutation deleteChecker($checkerId: String!) {
|
|
126
|
-
deleteChecker(checkerId: $checkerId)
|
|
127
|
-
}
|
|
128
|
-
`,kt=c`
|
|
129
|
-
mutation deleteProgram($programId: String!) {
|
|
130
|
-
programDeleted: deleteProgram(programId: $programId)
|
|
131
|
-
}
|
|
132
|
-
`,vt=c`
|
|
133
|
-
mutation updateCheck($input: CheckerInput!) {
|
|
134
|
-
check: updateChecker(input: $input) {
|
|
135
|
-
id
|
|
136
|
-
filter
|
|
137
|
-
name
|
|
138
|
-
description
|
|
139
|
-
}
|
|
140
|
-
}
|
|
141
|
-
`,Rt=c`
|
|
142
|
-
mutation updateCollectorConfig($input: CollectorConfigInput!) {
|
|
143
|
-
collector: setCollectorConfig(input: $input) {
|
|
144
|
-
id
|
|
145
|
-
factNames
|
|
146
|
-
collectionConfigs {
|
|
147
|
-
factRefs
|
|
148
|
-
filter
|
|
149
|
-
frequency
|
|
150
|
-
cache
|
|
151
|
-
}
|
|
152
|
-
config
|
|
153
|
-
configSchema
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
`,Ct=c`
|
|
157
|
-
mutation updateProgram($input: ProgramInput!) {
|
|
158
|
-
program: updateProgram(input: $input) {
|
|
159
|
-
id
|
|
160
|
-
ownerEntityRef
|
|
161
|
-
name
|
|
162
|
-
description
|
|
163
|
-
documentationURL
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
`,Et=c`
|
|
167
|
-
query getAllCertifications($entityRef: String!) {
|
|
168
|
-
certifications(entityRef: $entityRef, includeFilteredChecks: false) {
|
|
169
|
-
...CertificationSummary
|
|
170
|
-
}
|
|
171
|
-
}
|
|
172
|
-
${ot}`,Pt=c`
|
|
173
|
-
query getAllPrograms($programIds: [String!], $first: Int, $after: String) {
|
|
174
|
-
programs(programIds: $programIds, first: $first, after: $after) {
|
|
175
|
-
totalCount
|
|
176
|
-
endCursor
|
|
177
|
-
hasNextPage
|
|
178
|
-
edges {
|
|
179
|
-
cursor
|
|
180
|
-
program {
|
|
181
|
-
id
|
|
182
|
-
ownerEntityRef
|
|
183
|
-
name
|
|
184
|
-
description
|
|
185
|
-
documentationURL
|
|
186
|
-
filter
|
|
187
|
-
levels {
|
|
188
|
-
...level
|
|
189
|
-
}
|
|
190
|
-
isEditable
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
}
|
|
195
|
-
${dt}`,wt=c`
|
|
196
|
-
query getCertificationDetails($entityRef: String!, $programId: String!) {
|
|
197
|
-
programCertification(
|
|
198
|
-
entityRef: $entityRef
|
|
199
|
-
programId: $programId
|
|
200
|
-
includeFilteredChecks: false
|
|
201
|
-
) {
|
|
202
|
-
program {
|
|
203
|
-
id
|
|
204
|
-
name
|
|
205
|
-
description
|
|
206
|
-
documentationURL
|
|
207
|
-
}
|
|
208
|
-
highestLevel {
|
|
209
|
-
...HighestLevel
|
|
210
|
-
}
|
|
211
|
-
levels {
|
|
212
|
-
...LevelResultDetails
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
}
|
|
216
|
-
${ie}
|
|
217
|
-
${mt}`,$t=c`
|
|
218
|
-
query getCheckResultDetails($entityRef: String!, $programId: String!, $checkId: String!) {
|
|
219
|
-
checkResult(entityRef: $entityRef, programId: $programId, checkId: $checkId) {
|
|
220
|
-
...CheckResultDetails
|
|
221
|
-
}
|
|
222
|
-
}
|
|
223
|
-
${pt}`,bt=c`
|
|
224
|
-
query getCheckers($ids: [String!], $first: Int, $after: String, $orderAlphabetical: String, $searchByOwner: String, $searchByName: String) {
|
|
225
|
-
checkers(
|
|
226
|
-
ids: $ids
|
|
227
|
-
first: $first
|
|
228
|
-
after: $after
|
|
229
|
-
orderAlphabetical: $orderAlphabetical
|
|
230
|
-
searchByOwner: $searchByOwner
|
|
231
|
-
searchByName: $searchByName
|
|
232
|
-
) {
|
|
233
|
-
totalCount
|
|
234
|
-
endCursor
|
|
235
|
-
hasNextPage
|
|
236
|
-
edges {
|
|
237
|
-
cursor
|
|
238
|
-
checker {
|
|
239
|
-
id
|
|
240
|
-
ownerEntityRef
|
|
241
|
-
supportChannel
|
|
242
|
-
name
|
|
243
|
-
description
|
|
244
|
-
rule
|
|
245
|
-
passedMessage
|
|
246
|
-
failedMessage
|
|
247
|
-
filter
|
|
248
|
-
isEditable
|
|
249
|
-
schedule
|
|
250
|
-
}
|
|
251
|
-
}
|
|
252
|
-
}
|
|
253
|
-
}
|
|
254
|
-
`,St=c`
|
|
255
|
-
query getEntityRefsForTechHealthFilter($ownerEntityRef: String) {
|
|
256
|
-
entityRefsForTechHealthFilter(ownerEntityRef: $ownerEntityRef)
|
|
257
|
-
}
|
|
258
|
-
`,It=c`
|
|
259
|
-
query getFacetsForOwner($ownerEntityRef: String!) {
|
|
260
|
-
facetsForOwner(ownerEntityRef: $ownerEntityRef) {
|
|
261
|
-
types {
|
|
262
|
-
kind
|
|
263
|
-
type
|
|
264
|
-
count
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
}
|
|
268
|
-
`,Ft=c`
|
|
269
|
-
query getCollectors($ids: [String!]) {
|
|
270
|
-
collectors(ids: $ids) {
|
|
271
|
-
id
|
|
272
|
-
name
|
|
273
|
-
description
|
|
274
|
-
factNames
|
|
275
|
-
config
|
|
276
|
-
isConfigurable
|
|
277
|
-
isEditable
|
|
278
|
-
collectionConfigs {
|
|
279
|
-
factRefs
|
|
280
|
-
filter
|
|
281
|
-
frequency
|
|
282
|
-
cache
|
|
283
|
-
}
|
|
284
|
-
}
|
|
285
|
-
}
|
|
286
|
-
`,Dt=c`
|
|
287
|
-
query getFactSchemas($collectorId: String!, $factName: String!) {
|
|
288
|
-
factSchema(collectorId: $collectorId, factName: $factName) {
|
|
289
|
-
schema
|
|
290
|
-
}
|
|
291
|
-
}
|
|
292
|
-
`,Ot=c`
|
|
293
|
-
query getIndividualCheckPassRates($filter: Filter) {
|
|
294
|
-
individualCheckPassRates(filter: $filter) {
|
|
295
|
-
id
|
|
296
|
-
checkName
|
|
297
|
-
checkDescription
|
|
298
|
-
checkOwnerRef
|
|
299
|
-
snapshotPassRate
|
|
300
|
-
trendPassRates
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
`,Nt=c`
|
|
304
|
-
query getIndividualEntityPassRates($filter: Filter) {
|
|
305
|
-
individualEntityPassRates(filter: $filter) {
|
|
306
|
-
id
|
|
307
|
-
entityDescription
|
|
308
|
-
entityOwnerRef
|
|
309
|
-
snapshotPassRate
|
|
310
|
-
trendPassRates
|
|
311
|
-
}
|
|
312
|
-
}
|
|
313
|
-
`,qt=c`
|
|
314
|
-
query getIndividualGroupPassRates($filter: Filter) {
|
|
315
|
-
groupPassRates(filter: $filter) {
|
|
316
|
-
id
|
|
317
|
-
groupTitle
|
|
318
|
-
memberRefs
|
|
319
|
-
snapshotPassRate
|
|
320
|
-
trendPassRates
|
|
321
|
-
}
|
|
322
|
-
}
|
|
323
|
-
`,Tt=c`
|
|
324
|
-
query getIndividualTrackPassRate($filter: Filter) {
|
|
325
|
-
individualTrackPassRate(filter: $filter) {
|
|
326
|
-
id
|
|
327
|
-
trackName
|
|
328
|
-
trackDescription
|
|
329
|
-
trackOwnerRef
|
|
330
|
-
levels {
|
|
331
|
-
levelOrdinal
|
|
332
|
-
snapshotPassRate
|
|
333
|
-
trendPassRates
|
|
334
|
-
}
|
|
335
|
-
}
|
|
336
|
-
}
|
|
337
|
-
`,Gt=c`
|
|
338
|
-
query getOverallCheckPassRates($filter: Filter) {
|
|
339
|
-
overallCheckPassRates(filter: $filter)
|
|
340
|
-
}
|
|
341
|
-
`,Lt=c`
|
|
342
|
-
query getOverallEntityPassRates($filter: Filter) {
|
|
343
|
-
overallEntityPassRates(filter: $filter) {
|
|
344
|
-
id
|
|
345
|
-
trendPassRates
|
|
346
|
-
}
|
|
347
|
-
}
|
|
348
|
-
`,At=c`
|
|
349
|
-
query getOverallGroupPassRates($filter: Filter) {
|
|
350
|
-
groupPassRates(filter: $filter, limit: 5) {
|
|
351
|
-
id
|
|
352
|
-
groupTitle
|
|
353
|
-
snapshotPassRate
|
|
354
|
-
}
|
|
355
|
-
}
|
|
356
|
-
`,xt=c`
|
|
357
|
-
query getOverallTrackPassRate($filter: Filter) {
|
|
358
|
-
overallTrackPassRate(filter: $filter) {
|
|
359
|
-
levelOrdinal
|
|
360
|
-
snapshotPassRate
|
|
361
|
-
trendPassRates
|
|
362
|
-
}
|
|
363
|
-
}
|
|
364
|
-
`,Bt=c`
|
|
365
|
-
query getProgramOverviewForOwner($ownerEntityRef: String!, $facet: FacetInput) {
|
|
366
|
-
programOverviewForOwner(
|
|
367
|
-
ownerEntityRef: $ownerEntityRef
|
|
368
|
-
facet: $facet
|
|
369
|
-
includeFilteredChecks: false
|
|
370
|
-
) {
|
|
371
|
-
programs {
|
|
372
|
-
program {
|
|
373
|
-
id
|
|
374
|
-
name
|
|
375
|
-
}
|
|
376
|
-
highestLevels {
|
|
377
|
-
...HighestLevel
|
|
378
|
-
}
|
|
379
|
-
levels {
|
|
380
|
-
...OverviewLevelResult
|
|
381
|
-
}
|
|
382
|
-
}
|
|
383
|
-
entityRefs
|
|
384
|
-
}
|
|
385
|
-
}
|
|
386
|
-
${ie}
|
|
387
|
-
${ht}`,Mt=(e,t,r)=>e();function zt(e,t=Mt){return{createCheck(r,n){return t(i=>e.request(gt,r,{...n,...i}),"createCheck","mutation")},createProgram(r,n){return t(i=>e.request(ft,r,{...n,...i}),"createProgram","mutation")},deleteChecker(r,n){return t(i=>e.request(yt,r,{...n,...i}),"deleteChecker","mutation")},deleteProgram(r,n){return t(i=>e.request(kt,r,{...n,...i}),"deleteProgram","mutation")},updateCheck(r,n){return t(i=>e.request(vt,r,{...n,...i}),"updateCheck","mutation")},updateCollectorConfig(r,n){return t(i=>e.request(Rt,r,{...n,...i}),"updateCollectorConfig","mutation")},updateProgram(r,n){return t(i=>e.request(Ct,r,{...n,...i}),"updateProgram","mutation")},getAllCertifications(r,n){return t(i=>e.request(Et,r,{...n,...i}),"getAllCertifications","query")},getAllPrograms(r,n){return t(i=>e.request(Pt,r,{...n,...i}),"getAllPrograms","query")},getCertificationDetails(r,n){return t(i=>e.request(wt,r,{...n,...i}),"getCertificationDetails","query")},getCheckResultDetails(r,n){return t(i=>e.request($t,r,{...n,...i}),"getCheckResultDetails","query")},getCheckers(r,n){return t(i=>e.request(bt,r,{...n,...i}),"getCheckers","query")},getEntityRefsForTechHealthFilter(r,n){return t(i=>e.request(St,r,{...n,...i}),"getEntityRefsForTechHealthFilter","query")},getFacetsForOwner(r,n){return t(i=>e.request(It,r,{...n,...i}),"getFacetsForOwner","query")},getCollectors(r,n){return t(i=>e.request(Ft,r,{...n,...i}),"getCollectors","query")},getFactSchemas(r,n){return t(i=>e.request(Dt,r,{...n,...i}),"getFactSchemas","query")},getIndividualCheckPassRates(r,n){return t(i=>e.request(Ot,r,{...n,...i}),"getIndividualCheckPassRates","query")},getIndividualEntityPassRates(r,n){return t(i=>e.request(Nt,r,{...n,...i}),"getIndividualEntityPassRates","query")},getIndividualGroupPassRates(r,n){return t(i=>e.request(qt,r,{...n,...i}),"getIndividualGroupPassRates","query")},getIndividualTrackPassRate(r,n){return t(i=>e.request(Tt,r,{...n,...i}),"getIndividualTrackPassRate","query")},getOverallCheckPassRates(r,n){return t(i=>e.request(Gt,r,{...n,...i}),"getOverallCheckPassRates","query")},getOverallEntityPassRates(r,n){return t(i=>e.request(Lt,r,{...n,...i}),"getOverallEntityPassRates","query")},getOverallGroupPassRates(r,n){return t(i=>e.request(At,r,{...n,...i}),"getOverallGroupPassRates","query")},getOverallTrackPassRate(r,n){return t(i=>e.request(xt,r,{...n,...i}),"getOverallTrackPassRate","query")},getProgramOverviewForOwner(r,n){return t(i=>e.request(Bt,r,{...n,...i}),"getProgramOverviewForOwner","query")}}}var se=(e,t,r)=>{if(!t.has(e))throw TypeError("Cannot "+r)},s=(e,t,r)=>(se(e,t,"read from private field"),r?r.call(e):t.get(e)),P=(e,t,r)=>{if(t.has(e))throw TypeError("Cannot add the same private member more than once");t instanceof WeakSet?t.add(e):t.set(e,r)},B=(e,t,r,n)=>(se(e,t,"write to private field"),n?n.call(e,r):t.set(e,r),r),D,O,o,M,l;const N=Oe({id:"plugin.soundcheck"}),Ut=e=>"response"in e&&"errors"in e.response,Ht=e=>"response"in e&&"message"in e.response;class Wt{constructor(t){P(this,D,void 0),P(this,O,void 0),P(this,o,void 0),P(this,M,n=>{var i,d,u;return Ut(n)?(u=(d=(i=n.response)==null?void 0:i.errors)==null?void 0:d[0].message)!=null?u:`${n}`:Ht(n)?n.response.message:`${n}`}),P(this,l,async n=>{try{return await n()}catch(i){throw new Error(`Error from Soundcheck backend: ${s(this,M).call(this,i)}`)}}),B(this,D,t.fetchApi),B(this,O,t.discoveryApi);const r=new xe("/graphql",{fetch:async(n,i)=>{const d=`${await s(this,O).getBaseUrl("soundcheck")}${n}`;return s(this,D).fetch(d,i)}});B(this,o,zt(r))}async getAllCertifications(t){return s(this,l).call(this,async()=>{const{certifications:r}=await s(this,o).getAllCertifications({entityRef:t});return r})}async getCertificationDetails(t,r){return s(this,l).call(this,async()=>{const{programCertification:n}=await s(this,o).getCertificationDetails({entityRef:t,programId:r});return n})}async getCheckResultDetails(t,r,n){return s(this,l).call(this,async()=>{const{checkResult:i}=await s(this,o).getCheckResultDetails({entityRef:t,programId:r,checkId:n});return i})}async getFacetsForOwner(t){return s(this,l).call(this,async()=>{const{facetsForOwner:r}=await s(this,o).getFacetsForOwner({ownerEntityRef:t});return r})}async getProgramOverviewForOwner(t,r){return s(this,l).call(this,async()=>{const{programOverviewForOwner:n}=await s(this,o).getProgramOverviewForOwner({ownerEntityRef:t,facet:r});return n})}async getAllPrograms(t,r,n){return s(this,l).call(this,async()=>{const{programs:i}=await s(this,o).getAllPrograms({programIds:t,first:r,after:n});return i})}async createProgram(t){return s(this,l).call(this,async()=>{const{program:r}=await s(this,o).createProgram({input:t});return r})}async updateProgram(t){return s(this,l).call(this,async()=>{const{program:r}=await s(this,o).updateProgram({input:t});return r})}async deleteProgram(t){return s(this,l).call(this,async()=>{const{programDeleted:r}=await s(this,o).deleteProgram({programId:t});return r})}async getChecks(t,r,n){return s(this,l).call(this,async()=>{const{checkers:i}=await s(this,o).getCheckers({ids:t,first:r,after:n});return i})}async createCheck(t){return s(this,l).call(this,async()=>{const{check:r}=await s(this,o).createCheck({input:t});return r})}async updateCheck(t){return s(this,l).call(this,async()=>{const{check:r}=await s(this,o).updateCheck({input:t});return r})}async deleteCheck(t){return s(this,l).call(this,async()=>await s(this,o).deleteChecker({checkerId:t}))}async getCollectors(t){return s(this,l).call(this,async()=>{const{collectors:r}=await s(this,o).getCollectors({ids:t});return r})}async getFactSchema(t,r){if(!(!t||!r))return s(this,l).call(this,async()=>{const{factSchema:n}=await s(this,o).getFactSchemas({collectorId:t,factName:r});return n})}async updateCollectorConfig(t){return s(this,l).call(this,async()=>{const{collector:r}=await s(this,o).updateCollectorConfig({input:t});return r})}async getOverallCheckPassRates(t){return s(this,l).call(this,async()=>await s(this,o).getOverallCheckPassRates({filter:t}))}async getIndividualCheckPassRates(t){return s(this,l).call(this,async()=>await s(this,o).getIndividualCheckPassRates({filter:t}))}async getOverallTrackPassRate(t){return s(this,l).call(this,async()=>await s(this,o).getOverallTrackPassRate({filter:t}))}async getIndividualTrackPassRate(t){return s(this,l).call(this,async()=>await s(this,o).getIndividualTrackPassRate({filter:t}))}async getOverallEntityPassRates(t){return s(this,l).call(this,async()=>await s(this,o).getOverallEntityPassRates({filter:t}))}async getIndividualEntityPassRates(t){return s(this,l).call(this,async()=>await s(this,o).getIndividualEntityPassRates({filter:t}))}async getOverallGroupPassRates(t){return s(this,l).call(this,async()=>await s(this,o).getOverallGroupPassRates({filter:t}))}async getIndividualGroupPassRates(t){return s(this,l).call(this,async()=>await s(this,o).getIndividualGroupPassRates({filter:t}))}async getEntityRefsForTechHealthFilter(t){return s(this,l).call(this,async()=>await s(this,o).getEntityRefsForTechHealthFilter({ownerEntityRef:t}))}}D=new WeakMap,O=new WeakMap,o=new WeakMap,M=new WeakMap,l=new WeakMap;const q=$({id:"soundcheck-entity"}),Qt=$({id:"soundcheck-group"}),ce=R({id:"soundcheck-entity-certification-track-redirect",parent:q,path:"/:trackId"}),oe=R({id:"soundcheck-entity-certification",parent:q,path:"/:trackId/:checkId"}),jt=$({id:"soundcheck-overview"}),T=$({id:"soundcheck"}),Vt=R({id:"soundcheck-checks",parent:T,path:"/checks"});R({id:"soundcheck-tracks",parent:T,path:"/tracks"});const Kt=R({id:"soundcheck-track-details",parent:T,path:"/tracks/:trackId"}),k=Ne({id:"soundcheck",apis:[qe({api:N,deps:{discoveryApi:Te,fetchApi:Ge},factory:e=>new Wt(e)})],routes:{entityContent:q}}),_t=k.provide(b({name:"EntitySoundcheckContent",component:()=>import("./EntitySoundcheckContent-61aee236.esm.js").then(e=>e.EntitySoundcheckContent),mountPoint:q})),Jt=k.provide(Le({name:"EntitySoundcheckCard",component:{lazy:()=>import("./index-e3458e3b.esm.js").then(e=>e.EntitySoundcheckCard)}})),Xt=k.provide(b({name:"GroupSoundcheckContent",component:()=>import("./index-7f1f7ff1.esm.js").then(e=>e.FixedGroupOverviewPage),mountPoint:Qt})),Yt=k.provide(b({name:"SoundcheckOverviewPage",component:()=>import("./index-7f1f7ff1.esm.js").then(e=>e.OverviewPage),mountPoint:jt})),Zt=k.provide(b({name:"SoundcheckRoutingPage",component:()=>import("./index-0208f72c.esm.js").then(e=>e.RoutingPage),mountPoint:T})),er=We(e=>new Ue({defaultOptions:{queries:{refetchInterval:6e4,refetchIntervalInBackground:!1,refetchOnWindowFocus:"always",retry:2,retryDelay:t=>{const r=450+Math.ceil(Math.random()*100);return Math.min(r*2**t,3e4)},onError:t=>e.post(t)}}})),tr=e=>{const t=x(Ae),r=er(t);return a.createElement(He,{client:r},e.children)};function le(e){const t=x(N),r=re(e);return _(["soundcheck/certifications",r],async()=>t.getAllCertifications(r))}function de(e,t){const r=x(N),n=re(e);return _(["soundcheck/certifications",n,t],async()=>r.getCertificationDetails(n,t),{enabled:!!t})}var ue=(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.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))(ue||{}),me=(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))(me||{});const rr=p(e=>({root:{padding:e.spacing(3)},icon:{display:"none"},message:{padding:0},type:{fontWeight:700,lineHeight:1.75}})),G=e=>{const{type:t,...r}=rr();return a.createElement(tt,{severity:e.severity,elevation:1,classes:r,onClose:e.onClose},a.createElement(m,{classes:{root:t}},e.title),e.children)},pe=V({}),ar=e=>{const[t,r]=S(),n=C(d=>{r(d)},[]),i=C(()=>{r(null)},[]);return a.createElement(pe.Provider,{value:{showAlert:n,clearAlert:i}},t&&a.createElement(G,{severity:t.severity,title:t.title,onClose:i},t.message),e.children)},nr=()=>K(pe),ir=p(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"}})),he=V({}),sr=e=>{const t=ir(),[r,n]=S(!1),[i,d]=S(),u=Be(),h=C(({title:w,message:Ie,error:Fe})=>(d({title:w,message:Ie,error:Fe}),n(!0),new Promise(De=>{u.current=De})),[]),v=C(()=>{u.current&&u.current(!0),n(!1)},[]),y=C(()=>{u.current&&u.current(!1),n(!1)},[]);return a.createElement(he.Provider,{value:{showModal:h}},e.children,i&&a.createElement(je,{open:r,onClose:y,"aria-labelledby":"confirmation-modal-title","aria-describedby":"confirmation-modal-description"},a.createElement(J,{className:t.modalContent},a.createElement(m,{id:"confirmation-modal-title",variant:"h6"},i.title),a.createElement(m,{className:t.modalMessage,id:"confirmation-modal-description",variant:"body1"},i.message),a.createElement("div",{className:t.modalButtons},!i.error&&a.createElement(X,{onClick:y,variant:"contained","aria-label":"cancel"},"Cancel"),a.createElement(X,{color:"primary",onClick:v,variant:"contained","aria-label":"confirm"},i.error?"Ok":"Confirm")))))},cr=()=>K(he),ge=24,or=11,z=e=>e==="small"?1:2,lr=p({root:{position:"relative",display:"inline-flex",alignItems:"center",justifyContent:"center",borderRadius:"50%",borderWidth:"2px",fontWeight:700,width:({size:e})=>`${ge*z(e)}px`,height:({size:e})=>`${ge*z(e)}px`,fontSize:({size:e})=>`${or*z(e)}px`}}),fe=({className:e,label:t,size:r="small"})=>{const n=lr({size:r});return a.createElement("span",{className:F(e,n.root),role:"img","aria-label":`${t} badge`},t)},dr=p(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(",")}}})),U=({className:e,badge:t,size:r="small"})=>{const n=dr({color:t.options.color,size:r});return a.createElement(fe,{className:F(e,n.root),size:r,label:`L${t.options.level}`})},ur=p({root:{borderColor:"currentColor",borderStyle:"dashed"}}),ye=({className:e,size:t="small"})=>{const r=ur();return a.createElement(fe,{className:F(e,r.root),size:t,label:"NL"})},H=p(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 mr({description:e,documentationUrl:t}){const r=H();return t?a.createElement("div",{className:r.description},a.createElement(Y,{content:e}),a.createElement(Z,{to:t},"Learn more")):a.createElement("div",{className:r.description},a.createElement(Y,{content:e}))}const ke=({name:e,level:t,badge:r,description:n,documentationUrl:i})=>{const d=H();return a.createElement("div",{className:d.root},r?a.createElement(U,{size:"large",badge:r}):a.createElement(ye,{size:"large"}),a.createElement("div",null,a.createElement(m,{variant:"caption",className:d.level},t!=null?t:"No Level"),a.createElement(m,{className:d.title},e),n&&a.createElement(mr,{description:n,documentationUrl:i})))},L=({children:e})=>{const[t,r]=S(!1);return Me(()=>{const n=setTimeout(()=>{r(!0)},250);return()=>clearTimeout(n)},[]),a.createElement(Ve,{in:t,timeout:250},e)},W=({hideDescription:e=!1})=>{const t=H();return a.createElement(L,null,a.createElement("div",{className:t.root},a.createElement(f,{width:44,height:44}),a.createElement("div",null,a.createElement(m,{variant:"caption",className:t.level},a.createElement(f,{width:100})),a.createElement(m,{variant:"h4",className:t.title},a.createElement(f,{width:300})),!e&&a.createElement(m,{variant:"body2"},a.createElement(f,null)))))},ve=p(e=>{const t=e.palette.type==="dark"?e.palette.grey[700]:e.palette.grey[100];return{wrapper:{backgroundColor:t,color:E(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:r})=>[`"${r?"badge":"title"} title"`,`"${r?".":"description"} description"`].join(" "),gridTemplateColumns:"auto 1fr"},title:{gridArea:"title",textTransform:"uppercase",fontWeight:"bold",color:E(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(e.palette.getContrastText(t),.8),fontSize:e.typography.subtitle2.fontSize,marginTop:e.spacing(1)}}}),pr=e=>{const t=ve({badge:e.badge});return a.createElement("div",{className:t.wrapper},e.badge?a.createElement(U,{className:t.badge,badge:e.badge}):null,a.createElement(m,{className:t.title},e.title),e.description?a.createElement(m,{className:t.description},e.description):null)},hr=()=>{const e=ve({});return a.createElement(L,null,a.createElement("div",{className:e.wrapper},a.createElement(f,{className:e.title}),a.createElement(m,{className:e.description},a.createElement(f,null))))},gr=p(e=>({root:{display:"inline-flex",alignItems:"center",gap:e.spacing(1)}})),Re=({timestamp:e,description:t})=>{const r=gr(),n=ae.fromISO(e).toLocaleString(ae.DATETIME_FULL),i=Ye(e),d=t?`${t}: ${i}`:void 0;return a.createElement("div",{className:r.root},a.createElement(Ke,{title:n},a.createElement(m,{variant:"caption","aria-label":d},i)),a.createElement(at,null))},fr=e=>({[g.Passed]:"Check passed",[g.NotReported]:"Check not reported",[g.Failed]:"Check failed",[g.NotApplicable]:"Check not applicable"})[e],yr=I(e=>({root:{color:e.palette.success.main}}))(nt),kr=I(e=>({root:{color:e.palette.error.main}}))(it),vr=I(e=>({root:{color:e.palette.info.main}}))(ct),Rr=I(e=>({root:{color:e.palette.text.disabled}}))(st),Ce=({result:e,className:t})=>{const r={className:t,"aria-label":fr(e),"aria-hidden":!1};return e===g.Passed?a.createElement(yr,{...r}):e===g.NotReported?a.createElement(vr,{...r}):e===g.Failed?a.createElement(kr,{...r}):e===g.NotApplicable?a.createElement(Rr,{...r}):null},Ee=p(e=>({root:{display:"grid",width:"100%",gridTemplateColumns:"auto 1fr auto",gridColumnGap:e.spacing(1),padding:e.spacing(1),alignItems:"center","&.selected":{backgroundColor:E(e.palette.primary[e.palette.type],.2)},"&:hover, &:active, &:focus":{backgroundColor:E(e.palette.primary[e.palette.type],.3)}}})),Cr=({className:e,href:t,children:r})=>t?a.createElement(rt,{to:t,className:e},r):a.createElement("div",{className:e},r),Er=({result:e,name:t,timestamp:r,selected:n=!1,href:i})=>{const d=Ee(),u=F(d.root,{selected:n});return a.createElement(Cr,{href:i,className:u},a.createElement(Ce,{result:e}),a.createElement(m,{variant:"body2"},t),r?a.createElement(Re,{timestamp:r}):null)},Q=()=>{const e=Ee();return a.createElement(L,null,a.createElement("div",{className:e.root},a.createElement(f,{width:24,height:24}),a.createElement(m,{variant:"body2"},a.createElement(f,null)),a.createElement(f,{width:100,height:24})))},Pr=()=>{const e=Pe();return a.createElement("div",{className:e.root},a.createElement(W,null),new Array(3).fill(null).map((t,r)=>a.createElement(a.Fragment,{key:`skeleton-level-${r}`},a.createElement(hr,null),a.createElement("ul",{className:e.checks},a.createElement(Q,null),a.createElement(Q,null),a.createElement(Q,null)))))},wr=p(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"}}})),$r=({checks:e,trackId:t,checkId:r})=>{const n=wr(),i=j(oe);return e.length?a.createElement("ul",{className:n.checks},e.map(d=>a.createElement("li",{key:d.id,className:n.checkItem},a.createElement(Er,{...d,selected:d.id===r,href:i({trackId:t,checkId:d.id})})))):a.createElement(m,{variant:"body2",className:n.noChecks},"No applicable checks at this level.")},br=({level:e,checkId:t,trackId:r})=>{var n;return a.createElement(a.Fragment,null,a.createElement(pr,{badge:e.badge,title:e.name,description:e.description}),a.createElement($r,{checks:(n=e.checks)!=null?n:[],trackId:r,checkId:t}))},Pe=p(e=>({root:{borderRight:`1px solid ${e.palette.divider}`},checks:{padding:0,margin:0,flex:1,listStyle:"none"}})),Sr=({trackId:e,checkId:t})=>{var r,n;const i=Pe(),{entity:d}=te(),{data:u,isLoading:h,isError:v}=de(d,e);return v?a.createElement("div",{className:i.root},a.createElement(J,{padding:2},a.createElement(G,{severity:"error",title:"Error loading certification"}))):h||!e?a.createElement(Pr,null):u?a.createElement("div",{className:i.root},a.createElement(ke,{name:u.program.name,level:(r=u.highestLevel)==null?void 0:r.name,badge:(n=u.highestLevel)==null?void 0:n.badge,description:u.program.description,documentationUrl:u.program.documentationURL}),u==null?void 0:u.levels.map(y=>a.createElement(br,{key:y.ordinal,level:y,checkId:t,trackId:e}))):null},Ir=()=>a.createElement(a.Fragment,null,a.createElement(W,{hideDescription:!0}),a.createElement(W,{hideDescription:!0})),we=({className:e,description:t="There are no tracks configured that apply to this entity."})=>a.createElement("div",{className:e},a.createElement(ee,{title:"No certifications available",missing:"data",description:t})),Fr=({ownerEntityRef:e,selectGroupHint:t})=>e?a.createElement(ee,{missing:"data",title:"Missing entities",description:a.createElement(a.Fragment,null,"The group '",Xe(et(e),{defaultKind:"Group"}),"' doesn't own any entities.",t&&a.createElement(a.Fragment,null,a.createElement("br",null),a.createElement("br",null),t))}):null,$e="soundcheck",be="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.",Se=Qe(e=>({certificationWrapper:{display:"flex",justifyContent:"space-between",alignItems:"center"},infoCard:{display:"grid",gridRowGap:e.spacing(2)},emptyState:{"& > div":{backgroundColor:e.palette.background.paper}}})),A=({children:e,title:t})=>{const r=Se();return a.createElement(Je,{title:t},a.createElement("div",{className:r.infoCard},a.createElement(Ze,{inline:!0,backend:$e,invalidLicenseMessage:be}),e))},Dr=({title:e="Soundcheck"})=>{const{entity:t}=te(),r=Se(),{data:n,isError:i,isLoading:d}=le(t),u=j(ce);return i?a.createElement(A,{title:e},a.createElement(G,{severity:"error",title:"Error loading certifications"})):d||!n?a.createElement(A,{title:e},a.createElement(Ir,null)):n.length===0?a.createElement(A,{title:e},a.createElement(we,{className:r.emptyState})):a.createElement(A,{title:e},n.map((h,v)=>{var y,w;return a.createElement(ze,{key:h.program.name},a.createElement("div",{className:r.certificationWrapper,"data-testid":"soundcheck-track-row"},a.createElement(ke,{key:h.program.id,name:h.program.name,badge:(y=h.highestLevel)==null?void 0:y.badge,level:(w=h.highestLevel)==null?void 0:w.name}),a.createElement(Z,{to:u({trackId:h.program.id})},"View Details")),v<n.length-1?a.createElement(_e,null):null)}))};export{G as A,ne as B,Sr as C,_t as E,L as F,Xt as G,U as L,me as M,ye as N,ue as Q,g as R,tr as S,Re as a,le as b,ce as c,we as d,$e as e,oe as f,Dr as g,Ce as h,be as i,Fr as j,nr as k,cr as l,Vt as m,ar as n,k as o,Jt as p,Yt as q,Zt as r,N as s,Kt as t,de as u,sr as w};
|
|
388
|
-
//# sourceMappingURL=index-7b347cd4.esm.js.map
|