@spotify/backstage-plugin-soundcheck 0.6.2 → 0.8.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.
@@ -0,0 +1,388 @@
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-592fa779.esm.js").then(e=>e.EntitySoundcheckContent),mountPoint:q})),Jt=k.provide(Le({name:"EntitySoundcheckCard",component:{lazy:()=>import("./index-540b325c.esm.js").then(e=>e.EntitySoundcheckCard)}})),Xt=k.provide(b({name:"GroupSoundcheckContent",component:()=>import("./index-fcd50c7d.esm.js").then(e=>e.FixedGroupOverviewPage),mountPoint:Qt})),Yt=k.provide(b({name:"SoundcheckOverviewPage",component:()=>import("./index-fcd50c7d.esm.js").then(e=>e.OverviewPage),mountPoint:jt})),Zt=k.provide(b({name:"SoundcheckRoutingPage",component:()=>import("./index-100619e3.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-95ae147b.esm.js.map
@@ -1,2 +1,2 @@
1
- import e,{useState as n}from"react";import{Page as g,Header as f}from"@backstage/core-components";import{SpotifyLicenseBanner as s}from"@spotify/backstage-plugin-core";import{u as h,U as P,G as S,O as c}from"./OverviewPageContent-cee8c2bb.esm.js";import{S as l,w as y,e as p,i as u}from"./index-094c5781.esm.js";import{stringifyEntityRef as k}from"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import{useEntity as w}from"@backstage/plugin-catalog-react";import{makeStyles as C}from"@material-ui/core";import{Routes as L,Route as O}from"react-router-dom";import"@material-ui/lab/Autocomplete";import"react-use/lib/useAsync";import"./RefetchingIndicator-50e5cc94.esm.js";import"react-use/lib/useDebounce";import"lodash";import"@material-ui/lab";import"react-window";import"graphql-request";import"graphql-tag";import"@material-ui/core/styles/makeStyles";import"classnames";import"@material-ui/icons/Schedule";import"luxon";import"@material-ui/icons/Check";import"@material-ui/icons/Close";import"@material-ui/icons/RemoveCircleOutline";import"@material-ui/icons/HelpOutline";const b=C(t=>({overviewContainer:{padding:t.spacing(1,3)}})),G=t=>{const{title:i="Soundcheck"}=t,o=b(),[r,a]=h(),{group:d}=r,[E,v]=n(void 0);return e.createElement(l,null,e.createElement(P,null,e.createElement(y,null,e.createElement(g,{themeId:"website"},e.createElement(s,{backend:p,invalidLicenseMessage:u}),e.createElement(f,{title:i},e.createElement(S,{onChange:m=>{m&&a({...r,group:m})},initialValue:d,setError:v})),e.createElement("div",{className:o.overviewContainer},e.createElement(c,{groupSelectorError:E,searchParams:r,setSearchParams:a}))))))},M=()=>{const{entity:t}=w(),i={group:k(t)},[o,r]=n(i);return e.createElement(l,null,e.createElement(L,null,e.createElement(O,{path:"/*",element:e.createElement(e.Fragment,null,e.createElement(s,{backend:p,invalidLicenseMessage:u,inline:!0}),e.createElement(c,{searchParams:o,setSearchParams:r}))})))};export{M as FixedGroupOverviewPage,G as OverviewPage};
2
- //# sourceMappingURL=index-d27c0b4b.esm.js.map
1
+ import e,{useState as n}from"react";import{Page as g,Header as f}from"@backstage/core-components";import{SpotifyLicenseBanner as s}from"@spotify/backstage-plugin-core";import{u as h,U as P,G as S,O as c}from"./OverviewPageContent-7cf86a3a.esm.js";import{S as l,w as y,e as p,i as u}from"./index-95ae147b.esm.js";import{stringifyEntityRef as k}from"@backstage/catalog-model";import"@backstage/core-plugin-api";import"@tanstack/react-query";import{useEntity as w}from"@backstage/plugin-catalog-react";import{makeStyles as C}from"@material-ui/core";import{Routes as G,Route as L}from"react-router-dom";import"@material-ui/lab/Autocomplete";import"react-use/lib/useAsync";import"./RefetchingIndicator-b042ec49.esm.js";import"react-use/lib/useDebounce";import"lodash";import"@material-ui/lab";import"react-window";import"graphql-request";import"graphql-tag";import"@material-ui/core/styles/makeStyles";import"classnames";import"@material-ui/icons/Schedule";import"luxon";import"@material-ui/icons/Check";import"@material-ui/icons/Close";import"@material-ui/icons/RemoveCircleOutline";import"@material-ui/icons/HelpOutline";const O=C(t=>({overviewContainer:{padding:t.spacing(1,3)}})),b=t=>{const{title:i="Soundcheck"}=t,o=O(),[r,a]=h(),{group:d}=r,[E,v]=n(void 0);return e.createElement(l,null,e.createElement(P,null,e.createElement(y,null,e.createElement(g,{themeId:"website"},e.createElement(s,{backend:p,invalidLicenseMessage:u}),e.createElement(f,{title:i},e.createElement(S,{onChange:m=>{m&&a({...r,group:m})},initialValue:d,setError:v})),e.createElement("div",{className:o.overviewContainer},e.createElement(c,{groupSelectorError:E,searchParams:r,setSearchParams:a}))))))},x=()=>{const{entity:t}=w(),i={group:k(t)},[o,r]=n(i);return e.createElement(l,null,e.createElement(G,null,e.createElement(L,{path:"/*",element:e.createElement(e.Fragment,null,e.createElement(s,{backend:p,invalidLicenseMessage:u,inline:!0}),e.createElement(c,{searchParams:o,setSearchParams:r,isFixedGroup:!0}))})))};export{x as FixedGroupOverviewPage,b as OverviewPage};
2
+ //# sourceMappingURL=index-fcd50c7d.esm.js.map
@@ -0,0 +1 @@
1
+ <svg id="Icons" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 147.9 178.86"><defs><style>.cls-1{fill:none;}.cls-1,.cls-2{stroke:#7df3e1;stroke-linejoin:round;stroke-width:1.25px;}.cls-2{fill:#121212;}</style></defs><ellipse class="cls-1" cx="75.6" cy="89.43" rx="17.54" ry="74.88" transform="translate(-36.5 123.29) rotate(-66.6)"/><ellipse class="cls-1" cx="75.6" cy="89.43" rx="17.54" ry="74.88" transform="translate(-36.5 123.29) rotate(-66.6)"/><ellipse class="cls-1" cx="75.6" cy="89.43" rx="18.62" ry="83.95" transform="translate(-41.29 82.43) rotate(-46.36)"/><ellipse class="cls-1" cx="75.6" cy="89.43" rx="17.54" ry="74.88" transform="translate(-31.65 42.42) rotate(-26.12)"/><circle class="cls-2" cx="65.01" cy="38.62" r="15.28"/><circle class="cls-2" cx="75.76" cy="88.98" r="45.75"/><path class="cls-1" d="M54.88,27.3c-5.11-4.56-9.39-6.5-12.25-5.1-8.69,4.26-1,37.82,17.23,75s40,63.78,48.71,59.52c5.32-2.61,4.51-16.14-1.07-34.73"/><path class="cls-1" d="M121.27,93.66c16.13,10.44,25.39,20.12,23.06,25.52-3.85,8.88-37.74,2.77-75.69-13.65S3,68.58,6.88,59.69c2.32-5.35,15.51-5.27,33.93-.77"/><path class="cls-1" d="M117.65,107.4c15.58,19.34,23.41,35,18.71,40-7.1,7.44-40.05-12.47-73.6-44.47s-55-64-47.91-71.4c4.34-4.56,18.39,1.14,36.32,13.59"/><circle class="cls-2" cx="13.49" cy="73.87" r="10.28"/><circle class="cls-2" cx="79.62" cy="118.13" r="22.49"/></svg>
@@ -0,0 +1,4 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <svg xmlns="http://www.w3.org/2000/svg" xml:space="preserve" width="97" height="97">
3
+ <path fill="#F05133" d="M92.71 44.408 52.591 4.291c-2.31-2.311-6.057-2.311-8.369 0l-8.33 8.332L46.459 23.19c2.456-.83 5.272-.273 7.229 1.685 1.969 1.97 2.521 4.81 1.67 7.275l10.186 10.185c2.465-.85 5.307-.3 7.275 1.671 2.75 2.75 2.75 7.206 0 9.958-2.752 2.751-7.208 2.751-9.961 0-2.068-2.07-2.58-5.11-1.531-7.658l-9.5-9.499v24.997c.67.332 1.303.774 1.861 1.332 2.75 2.75 2.75 7.206 0 9.959-2.75 2.749-7.209 2.749-9.957 0-2.75-2.754-2.75-7.21 0-9.959.68-.679 1.467-1.193 2.307-1.537v-25.23c-.84-.344-1.625-.853-2.307-1.537-2.083-2.082-2.584-5.14-1.516-7.698L31.798 16.715 4.288 44.222c-2.311 2.313-2.311 6.06 0 8.371l40.121 40.118c2.31 2.311 6.056 2.311 8.369 0L92.71 52.779c2.311-2.311 2.311-6.06 0-8.371z"/>
4
+ </svg>
@@ -0,0 +1,17 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="-0.2 -1 379 334">
2
+ <path id="puddle" fill="#9CDAF1" d="m296.94 295.43c0 20.533-47.56 37.176-106.22 37.176-58.67 0-106.23-16.643-106.23-37.176s47.558-37.18 106.23-37.18c58.66 0 106.22 16.65 106.22 37.18z"/>
3
+ <g id="shadow-legs" fill="#7DBBE6">
4
+ <path d="m161.85 331.22v-26.5c0-3.422-.619-6.284-1.653-8.701 6.853 5.322 7.316 18.695 7.316 18.695v17.004c6.166.481 12.534.773 19.053.861l-.172-16.92c-.944-23.13-20.769-25.961-20.769-25.961-7.245-1.645-7.137 1.991-6.409 4.34-7.108-12.122-26.158-10.556-26.158-10.556-6.611 2.357-.475 6.607-.475 6.607 10.387 3.775 11.33 15.105 11.33 15.105v23.622c5.72.98 11.71 1.79 17.94 2.4z"/>
5
+ <path d="m245.4 283.48s-19.053-1.566-26.16 10.559c.728-2.35.839-5.989-6.408-4.343 0 0-19.824 2.832-20.768 25.961l-.174 16.946c6.509-.025 12.876-.254 19.054-.671v-17.219s.465-13.373 7.316-18.695c-1.034 2.417-1.653 5.278-1.653 8.701v26.775c6.214-.544 12.211-1.279 17.937-2.188v-24.113s.944-11.33 11.33-15.105c0-.01 6.13-4.26-.48-6.62z"/>
6
+ </g>
7
+ <path id="cat" d="m378.18 141.32l.28-1.389c-31.162-6.231-63.141-6.294-82.487-5.49 3.178-11.451 4.134-24.627 4.134-39.32 0-21.073-7.917-37.931-20.77-50.759 2.246-7.25 5.246-23.351-2.996-43.963 0 0-14.541-4.617-47.431 17.396-12.884-3.22-26.596-4.81-40.328-4.81-15.109 0-30.376 1.924-44.615 5.83-33.94-23.154-48.923-18.411-48.923-18.411-9.78 24.457-3.733 42.566-1.896 47.063-11.495 12.406-18.513 28.243-18.513 47.659 0 14.658 1.669 27.808 5.745 39.237-19.511-.71-50.323-.437-80.373 5.572l.276 1.389c30.231-6.046 61.237-6.256 80.629-5.522.898 2.366 1.899 4.661 3.021 6.879-19.177.618-51.922 3.062-83.303 11.915l.387 1.36c31.629-8.918 64.658-11.301 83.649-11.882 11.458 21.358 34.048 35.152 74.236 39.484-5.704 3.833-11.523 10.349-13.881 21.374-7.773 3.718-32.379 12.793-47.142-12.599 0 0-8.264-15.109-24.082-16.292 0 0-15.344-.235-1.059 9.562 0 0 10.267 4.838 17.351 23.019 0 0 9.241 31.01 53.835 21.061v32.032s-.943 11.33-11.33 15.105c0 0-6.137 4.249.475 6.606 0 0 28.792 2.361 28.792-21.238v-34.929s-1.142-13.852 5.663-18.667v57.371s-.47 13.688-7.551 18.881c0 0-4.723 8.494 5.663 6.137 0 0 19.824-2.832 20.769-25.961l.449-58.06h4.765l.453 58.06c.943 23.129 20.768 25.961 20.768 25.961 10.383 2.357 5.663-6.137 5.663-6.137-7.08-5.193-7.551-18.881-7.551-18.881v-56.876c6.801 5.296 5.663 18.171 5.663 18.171v34.929c0 23.6 28.793 21.238 28.793 21.238 6.606-2.357.474-6.606.474-6.606-10.386-3.775-11.33-15.105-11.33-15.105v-45.786c0-17.854-7.518-27.309-14.87-32.3 42.859-4.25 63.426-18.089 72.903-39.591 18.773.516 52.557 2.803 84.873 11.919l.384-1.36c-32.131-9.063-65.692-11.408-84.655-11.96.898-2.172 1.682-4.431 2.378-6.755 19.25-.80 51.38-.79 82.66 5.46z"/>
8
+ <path id="face" fill="#F4CBB2" d="m258.19 94.132c9.231 8.363 14.631 18.462 14.631 29.343 0 50.804-37.872 52.181-84.585 52.181-46.721 0-84.589-7.035-84.589-52.181 0-10.809 5.324-20.845 14.441-29.174 15.208-13.881 40.946-6.531 70.147-6.531 29.07-.004 54.72-7.429 69.95 6.357z"/>
9
+ <path id="eyes" fill="#FFF" d="m160.1 126.06 c0 13.994-7.88 25.336-17.6 25.336-9.72 0-17.6-11.342-17.6-25.336 0-13.992 7.88-25.33 17.6-25.33 9.72.01 17.6 11.34 17.6 25.33z m94.43 0 c0 13.994-7.88 25.336-17.6 25.336-9.72 0-17.6-11.342-17.6-25.336 0-13.992 7.88-25.33 17.6-25.33 9.72.01 17.6 11.34 17.6 25.33z"/>
10
+ <g fill="#AD5C51">
11
+ <path id="pupils" d="m154.46 126.38 c0 9.328-5.26 16.887-11.734 16.887s-11.733-7.559-11.733-16.887c0-9.331 5.255-16.894 11.733-16.894 6.47 0 11.73 7.56 11.73 16.89z m94.42 0 c0 9.328-5.26 16.887-11.734 16.887s-11.733-7.559-11.733-16.887c0-9.331 5.255-16.894 11.733-16.894 6.47 0 11.73 7.56 11.73 16.89z"/>
12
+ <circle id="nose" cx="188.5" cy="148.56" r="4.401"/>
13
+ <path id="mouth" d="m178.23 159.69c-.26-.738.128-1.545.861-1.805.737-.26 1.546.128 1.805.861 1.134 3.198 4.167 5.346 7.551 5.346s6.417-2.147 7.551-5.346c.26-.738 1.067-1.121 1.805-.861s1.121 1.067.862 1.805c-1.529 4.324-5.639 7.229-10.218 7.229s-8.68-2.89-10.21-7.22z"/>
14
+ </g>
15
+ <path id="octo" fill="#C3E4D8" d="m80.641 179.82 c0 1.174-1.376 2.122-3.07 2.122-1.693 0-3.07-.948-3.07-2.122 0-1.175 1.377-2.127 3.07-2.127 1.694 0 3.07.95 3.07 2.13z m8.5 4.72 c0 1.174-1.376 2.122-3.07 2.122-1.693 0-3.07-.948-3.07-2.122 0-1.175 1.377-2.127 3.07-2.127 1.694 0 3.07.95 3.07 2.13z m5.193 6.14 c0 1.174-1.376 2.122-3.07 2.122-1.693 0-3.07-.948-3.07-2.122 0-1.175 1.377-2.127 3.07-2.127 1.694 0 3.07.95 3.07 2.13z m4.72 7.08 c0 1.174-1.376 2.122-3.07 2.122-1.693 0-3.07-.948-3.07-2.122 0-1.175 1.377-2.127 3.07-2.127 1.694 0 3.07.95 3.07 2.13z m5.188 6.61 c0 1.174-1.376 2.122-3.07 2.122-1.693 0-3.07-.948-3.07-2.122 0-1.175 1.377-2.127 3.07-2.127 1.694 0 3.07.95 3.07 2.13z m7.09 5.66 c0 1.174-1.376 2.122-3.07 2.122-1.693 0-3.07-.948-3.07-2.122 0-1.175 1.377-2.127 3.07-2.127 1.694 0 3.07.95 3.07 2.13z m9.91 3.78 c0 1.174-1.376 2.122-3.07 2.122-1.693 0-3.07-.948-3.07-2.122 0-1.175 1.377-2.127 3.07-2.127 1.694 0 3.07.95 3.07 2.13z m9.87 0 c0 1.174-1.376 2.122-3.07 2.122-1.693 0-3.07-.948-3.07-2.122 0-1.175 1.377-2.127 3.07-2.127 1.694 0 3.07.95 3.07 2.13z m10.01 -1.64 c0 1.174-1.376 2.122-3.07 2.122-1.693 0-3.07-.948-3.07-2.122 0-1.175 1.377-2.127 3.07-2.127 1.694 0 3.07.95 3.07 2.13z"/>
16
+ <path id="drop" fill="#9CDAF1" d="m69.369 186.12l-3.066 10.683s-.8 3.861 2.84 4.546c3.8-.074 3.486-3.627 3.223-4.781z"/>
17
+ </svg>
@@ -0,0 +1,90 @@
1
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
2
+ <svg
3
+ xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
4
+ xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
5
+ xmlns="http://www.w3.org/2000/svg"
6
+ xmlns:cc="http://creativecommons.org/ns#"
7
+ xmlns:dc="http://purl.org/dc/elements/1.1/"
8
+ xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
9
+ id="svg2"
10
+ sodipodi:docname="_svgclean2.svg"
11
+ viewBox="0 0 160 156"
12
+ version="1.1"
13
+ inkscape:version="0.48.3.1 r9886"
14
+ >
15
+ <sodipodi:namedview
16
+ id="namedview8"
17
+ bordercolor="#666666"
18
+ inkscape:pageshadow="2"
19
+ guidetolerance="10"
20
+ pagecolor="#ffffff"
21
+ gridtolerance="10"
22
+ inkscape:window-maximized="0"
23
+ inkscape:zoom="0.22425739"
24
+ objecttolerance="10"
25
+ borderopacity="1"
26
+ inkscape:current-layer="svg2"
27
+ inkscape:cx="372.04724"
28
+ inkscape:cy="-370.18109"
29
+ inkscape:window-y="0"
30
+ inkscape:window-x="0"
31
+ inkscape:window-width="640"
32
+ showgrid="false"
33
+ inkscape:pageopacity="0"
34
+ inkscape:window-height="480"
35
+ />
36
+ <path
37
+ id="path4"
38
+ inkscape:connector-curvature="0"
39
+ d="m20 0-2 4 21 12c0 10-4 18-13 23l-21-12-1 2c5 15 15 25 35 25 5 0 20 15 28 23l16-16c-8-8-26-26-26-31 0-18-5-30-37-30zm125 5-20 14-2 8-58 58-8-5-4 4c0 12-14 18-20 18l-33 33c0 10 11 21 21 21l33-33c0-6 6-20 18-20l4-4-5-8 58-58 8-2 14-20-6-6zm-50 68-16 16c12 12 28 28 28 33 0 18 5 30 37 30l2-4-21-12c0-10 4-18 13-23l21 12 1-2c-5-15-15-25-35-25-5 0-18-13-30-25z"
40
+ />
41
+ <metadata
42
+ id="metadata6"
43
+ >
44
+ <rdf:RDF
45
+ >
46
+ <cc:Work
47
+ >
48
+ <dc:format
49
+ >image/svg+xml</dc:format
50
+ >
51
+ <dc:type
52
+ rdf:resource="http://purl.org/dc/dcmitype/StillImage"
53
+ />
54
+ <cc:license
55
+ rdf:resource="http://creativecommons.org/licenses/publicdomain/"
56
+ />
57
+ <dc:publisher
58
+ >
59
+ <cc:Agent
60
+ rdf:about="http://openclipart.org/"
61
+ >
62
+ <dc:title
63
+ >Openclipart</dc:title
64
+ >
65
+ </cc:Agent
66
+ >
67
+ </dc:publisher
68
+ >
69
+ </cc:Work
70
+ >
71
+ <cc:License
72
+ rdf:about="http://creativecommons.org/licenses/publicdomain/"
73
+ >
74
+ <cc:permits
75
+ rdf:resource="http://creativecommons.org/ns#Reproduction"
76
+ />
77
+ <cc:permits
78
+ rdf:resource="http://creativecommons.org/ns#Distribution"
79
+ />
80
+ <cc:permits
81
+ rdf:resource="http://creativecommons.org/ns#DerivativeWorks"
82
+ />
83
+ </cc:License
84
+ >
85
+ </rdf:RDF
86
+ >
87
+ </metadata
88
+ >
89
+ </svg
90
+ >
Binary file
Binary file
package/dist/index.esm.js CHANGED
@@ -1,2 +1,2 @@
1
- import{o as f,E as l,G as q,p as w,q as x,n as O}from"./esm/index-094c5781.esm.js";import"react";import"@backstage/core-plugin-api";import"graphql-request";import"graphql-tag";import"@tanstack/react-query";import"lodash";import"@material-ui/core/styles/makeStyles";import"@material-ui/core";import"@backstage/core-components";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-core";import"@backstage/catalog-model";import"@material-ui/lab";import"react-router-dom";import"classnames";import"@material-ui/icons/Schedule";import"luxon";import"@material-ui/icons/Check";import"@material-ui/icons/Close";import"@material-ui/icons/RemoveCircleOutline";import"@material-ui/icons/HelpOutline";export{f as EntitySoundcheckCard,l as EntitySoundcheckContent,q as GroupSoundcheckContent,w as SoundcheckOverviewPage,x as SoundcheckRoutingPage,O as soundcheckPlugin};
1
+ import{p as f,E as l,G as q,q as w,r as x,o as O}from"./esm/index-95ae147b.esm.js";import"react";import"@backstage/core-plugin-api";import"graphql-request";import"graphql-tag";import"@tanstack/react-query";import"lodash";import"@material-ui/core/styles/makeStyles";import"@material-ui/core";import"@backstage/core-components";import"@backstage/plugin-catalog-react";import"@spotify/backstage-plugin-core";import"@backstage/catalog-model";import"@material-ui/lab";import"react-router-dom";import"classnames";import"@material-ui/icons/Schedule";import"luxon";import"@material-ui/icons/Check";import"@material-ui/icons/Close";import"@material-ui/icons/RemoveCircleOutline";import"@material-ui/icons/HelpOutline";export{f as EntitySoundcheckCard,l as EntitySoundcheckContent,q as GroupSoundcheckContent,w as SoundcheckOverviewPage,x as SoundcheckRoutingPage,O as soundcheckPlugin};
2
2
  //# sourceMappingURL=index.esm.js.map