@techdocs/cli 1.6.0 → 1.6.1-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. package/CHANGELOG.md +11 -0
  2. package/dist/embedded-app/.config-schema.json +52 -28
  3. package/dist/embedded-app/index.html +1 -1
  4. package/dist/embedded-app/static/{1032.d8d4547a.chunk.js → 1032.88fa9fda.chunk.js} +2 -2
  5. package/dist/embedded-app/static/{1032.d8d4547a.chunk.js.map → 1032.88fa9fda.chunk.js.map} +1 -1
  6. package/dist/embedded-app/static/{1105.250209d9.chunk.js → 1105.2ef0665c.chunk.js} +2 -2
  7. package/dist/embedded-app/static/{1105.250209d9.chunk.js.map → 1105.2ef0665c.chunk.js.map} +1 -1
  8. package/dist/embedded-app/static/1600.ef4a7196.chunk.js +3 -0
  9. package/dist/embedded-app/static/1600.ef4a7196.chunk.js.map +1 -0
  10. package/dist/embedded-app/static/{184.3d7fb6d2.chunk.js → 184.8fc549e9.chunk.js} +2 -2
  11. package/dist/embedded-app/static/{184.3d7fb6d2.chunk.js.map → 184.8fc549e9.chunk.js.map} +1 -1
  12. package/dist/embedded-app/static/{2440.8c636d46.chunk.js → 2440.2451b337.chunk.js} +2 -2
  13. package/dist/embedded-app/static/{2440.8c636d46.chunk.js.map → 2440.2451b337.chunk.js.map} +1 -1
  14. package/dist/embedded-app/static/{3487.ca0b20dd.chunk.js → 3487.1c93df49.chunk.js} +2 -2
  15. package/dist/embedded-app/static/{3487.ca0b20dd.chunk.js.map → 3487.1c93df49.chunk.js.map} +1 -1
  16. package/dist/embedded-app/static/{3893.18294a43.chunk.js → 3893.118c937c.chunk.js} +1 -1
  17. package/dist/embedded-app/static/{3893.18294a43.chunk.js.map → 3893.118c937c.chunk.js.map} +1 -1
  18. package/dist/embedded-app/static/4109.6335d16f.chunk.js +3 -0
  19. package/dist/embedded-app/static/4109.6335d16f.chunk.js.map +1 -0
  20. package/dist/embedded-app/static/{4966.9cb67949.chunk.js → 4966.e30bae7f.chunk.js} +1 -1
  21. package/dist/embedded-app/static/{4966.9cb67949.chunk.js.map → 4966.e30bae7f.chunk.js.map} +1 -1
  22. package/dist/embedded-app/static/{5458.e6517aa6.chunk.js → 5458.abed4572.chunk.js} +2 -2
  23. package/dist/embedded-app/static/{5458.e6517aa6.chunk.js.map → 5458.abed4572.chunk.js.map} +1 -1
  24. package/dist/embedded-app/static/{5877.829aa767.chunk.js → 5877.c521a57f.chunk.js} +1 -1
  25. package/dist/embedded-app/static/{5877.829aa767.chunk.js.map → 5877.c521a57f.chunk.js.map} +1 -1
  26. package/dist/embedded-app/static/{5914.92b59b3e.chunk.js → 5914.111b8c95.chunk.js} +2 -2
  27. package/dist/embedded-app/static/{5914.92b59b3e.chunk.js.map → 5914.111b8c95.chunk.js.map} +1 -1
  28. package/dist/embedded-app/static/{6051.84051083.chunk.js → 6051.9eefea24.chunk.js} +1 -1
  29. package/dist/embedded-app/static/{6051.84051083.chunk.js.map → 6051.9eefea24.chunk.js.map} +1 -1
  30. package/dist/embedded-app/static/{7670.4e34a90d.chunk.js → 7670.9faef6c0.chunk.js} +1 -1
  31. package/dist/embedded-app/static/{7670.4e34a90d.chunk.js.map → 7670.9faef6c0.chunk.js.map} +1 -1
  32. package/dist/embedded-app/static/{7750.3b7f34f8.chunk.js → 7750.cb06dc85.chunk.js} +1 -1
  33. package/dist/embedded-app/static/{7750.3b7f34f8.chunk.js.map → 7750.cb06dc85.chunk.js.map} +1 -1
  34. package/dist/embedded-app/static/{7893.8b70980c.chunk.js → 7893.e406114c.chunk.js} +2 -2
  35. package/dist/embedded-app/static/{7893.8b70980c.chunk.js.map → 7893.e406114c.chunk.js.map} +1 -1
  36. package/dist/embedded-app/static/{8629.18b8b029.chunk.js → 8629.34b012ba.chunk.js} +1 -1
  37. package/dist/embedded-app/static/{8629.18b8b029.chunk.js.map → 8629.34b012ba.chunk.js.map} +1 -1
  38. package/dist/embedded-app/static/{8662.e8af541f.chunk.js → 8662.7243a5c6.chunk.js} +1 -1
  39. package/dist/embedded-app/static/{8662.e8af541f.chunk.js.map → 8662.7243a5c6.chunk.js.map} +1 -1
  40. package/dist/embedded-app/static/{8951.b8daca92.chunk.js → 8951.6ae94626.chunk.js} +1 -1
  41. package/dist/embedded-app/static/{8951.b8daca92.chunk.js.map → 8951.6ae94626.chunk.js.map} +1 -1
  42. package/dist/embedded-app/static/{9545.1f2986d6.chunk.js → 9545.8e4a2868.chunk.js} +2 -2
  43. package/dist/embedded-app/static/{9545.1f2986d6.chunk.js.map → 9545.8e4a2868.chunk.js.map} +1 -1
  44. package/dist/embedded-app/static/{967.00bc7a39.chunk.js → 967.dadcb6bd.chunk.js} +3 -3
  45. package/dist/embedded-app/static/{967.00bc7a39.chunk.js.map → 967.dadcb6bd.chunk.js.map} +1 -1
  46. package/dist/embedded-app/static/{9770.5cb016d6.chunk.js → 9770.2d75fe33.chunk.js} +2 -2
  47. package/dist/embedded-app/static/{9770.5cb016d6.chunk.js.map → 9770.2d75fe33.chunk.js.map} +1 -1
  48. package/dist/embedded-app/static/main.167d1cf0.js +487 -0
  49. package/dist/embedded-app/static/main.167d1cf0.js.map +1 -0
  50. package/dist/embedded-app/static/module-lodash.fa492ce2.js +29 -0
  51. package/dist/embedded-app/static/module-lodash.fa492ce2.js.map +1 -0
  52. package/dist/embedded-app/static/{module-material-table.0f5635dd.js → module-material-table.3c68edc1.js} +1 -1
  53. package/dist/embedded-app/static/{module-material-table.0f5635dd.js.map → module-material-table.3c68edc1.js.map} +1 -1
  54. package/dist/embedded-app/static/{module-material-ui.bdbd8daa.js → module-material-ui.263ce9b5.js} +7 -7
  55. package/dist/embedded-app/static/module-material-ui.263ce9b5.js.map +1 -0
  56. package/dist/embedded-app/static/{module-react-beautiful-dnd.62627182.js → module-react-beautiful-dnd.0ca788d0.js} +1 -1
  57. package/dist/embedded-app/static/{module-react-beautiful-dnd.62627182.js.map → module-react-beautiful-dnd.0ca788d0.js.map} +1 -1
  58. package/dist/embedded-app/static/module-react-dom.f7ae1c8b.js +26 -0
  59. package/dist/embedded-app/static/module-react-dom.f7ae1c8b.js.map +1 -0
  60. package/dist/embedded-app/static/{module-react-router-dom.65ce4c09.js → module-react-router-dom.8eff32d7.js} +1 -1
  61. package/dist/embedded-app/static/{module-react-router-dom.65ce4c09.js.map → module-react-router-dom.8eff32d7.js.map} +1 -1
  62. package/dist/embedded-app/static/{module-react-router.652daaf3.js → module-react-router.05179f87.js} +1 -1
  63. package/dist/embedded-app/static/{module-react-router.652daaf3.js.map → module-react-router.05179f87.js.map} +1 -1
  64. package/dist/embedded-app/static/{runtime.02409009.js → runtime.167d1cf0.js} +2 -2
  65. package/dist/embedded-app/static/{runtime.02409009.js.map → runtime.167d1cf0.js.map} +1 -1
  66. package/dist/embedded-app/static/vendor.167d1cf0.js +167 -0
  67. package/dist/embedded-app/static/vendor.167d1cf0.js.map +1 -0
  68. package/dist/index.cjs.js +1 -1
  69. package/package.json +4 -4
  70. package/dist/embedded-app/static/1600.1ec85d5a.chunk.js +0 -3
  71. package/dist/embedded-app/static/1600.1ec85d5a.chunk.js.map +0 -1
  72. package/dist/embedded-app/static/2924.b96e10c0.chunk.js +0 -3
  73. package/dist/embedded-app/static/2924.b96e10c0.chunk.js.map +0 -1
  74. package/dist/embedded-app/static/main.02409009.js +0 -487
  75. package/dist/embedded-app/static/main.02409009.js.map +0 -1
  76. package/dist/embedded-app/static/module-lodash.adfd55fe.js +0 -29
  77. package/dist/embedded-app/static/module-lodash.adfd55fe.js.map +0 -1
  78. package/dist/embedded-app/static/module-material-ui.bdbd8daa.js.map +0 -1
  79. package/dist/embedded-app/static/module-react-dom.07625e59.js +0 -25
  80. package/dist/embedded-app/static/module-react-dom.07625e59.js.map +0 -1
  81. package/dist/embedded-app/static/vendor.02409009.js +0 -159
  82. package/dist/embedded-app/static/vendor.02409009.js.map +0 -1
@@ -1,487 +0,0 @@
1
- (()=>{(self.webpackChunktechdocs_cli_embedded_app=self.webpackChunktechdocs_cli_embedded_app||[]).push([[179],{88797:function(Y,R,t){"use strict";t.d(R,{n:function(){return o}});const o=Symbol.for("CATALOG_FILTER_EXISTS_0e15b590c0b343a2bae3e787e84c2111")},34106:function(Y,R,t){"use strict";t.d(R,{Tf:function(){return d},l2:function(){return i},zG:function(){return o}});const o="default",i="backstage.io/view-url",d="backstage.io/edit-url",S="kubernetes.io/api-server",p="kubernetes.io/api-server-certificate-authority",f="kubernetes.io/auth-provider"},74314:function(Y,R,t){"use strict";t.d(R,{eE:function(){return p},iB:function(){return d},of:function(){return S}});var o=t(34106);function i(f){let l=f.indexOf(":");const g=f.indexOf("/");g!==-1&&g<l&&(l=-1);const O=l===-1?void 0:f.slice(0,l),A=g===-1?void 0:f.slice(l+1,g),b=f.slice(Math.max(l+1,g+1));if(O===""||A===""||b==="")throw new TypeError(`Entity reference "${f}" was not on the form [<kind>:][<namespace>/]<name>`);return{kind:O,namespace:A,name:b}}function d(f){return{kind:f.kind,namespace:f.metadata.namespace||o.zG,name:f.metadata.name}}function S(f,l){if(!f)throw new Error("Entity reference must not be empty");const g=l==null?void 0:l.defaultKind,O=(l==null?void 0:l.defaultNamespace)||o.zG;let A,b,C;if(typeof f=="string"){const M=i(f);var x;A=(x=M.kind)!==null&&x!==void 0?x:g;var E;b=(E=M.namespace)!==null&&E!==void 0?E:O,C=M.name}else{var I;A=(I=f.kind)!==null&&I!==void 0?I:g;var P;b=(P=f.namespace)!==null&&P!==void 0?P:O,C=f.name}if(A)if(b){if(!C){const M=JSON.stringify(f);throw new Error(`Entity reference ${M} had missing or empty name`)}}else{const M=JSON.stringify(f);throw new Error(`Entity reference ${M} had missing or empty namespace`)}else{const M=JSON.stringify(f);throw new Error(`Entity reference ${M} had missing or empty kind (e.g. did not start with "component:" or similar)`)}return{kind:A,namespace:b,name:C}}function p(f){let l,g,O;if("metadata"in f){l=f.kind;var A;g=(A=f.metadata.namespace)!==null&&A!==void 0?A:o.zG,O=f.metadata.name}else{l=f.kind;var b;g=(b=f.namespace)!==null&&b!==void 0?b:o.zG,O=f.name}return`${l.toLocaleLowerCase("en-US")}:${g.toLocaleLowerCase("en-US")}/${O.toLocaleLowerCase("en-US")}`}},8709:function(Y,R,t){"use strict";t.d(R,{S4:function(){return o},aS:function(){return E},cz:function(){return x},nP:function(){return l},w$:function(){return g}});const o="ownedBy",i="ownerOf",d="consumesApi",S="apiConsumedBy",p="providesApi",f="apiProvidedBy",l="dependsOn",g="dependencyOf",O="parentOf",A="childOf",b="memberOf",C="hasMember",x="partOf",E="hasPart"},90663:function(Y,R,t){"use strict";t.d(R,{M6:function(){return d},P1:function(){return o}});const o="backstage.io/managed-by-location",i="backstage.io/managed-by-origin-location",d="backstage.io/source-location"},51547:function(Y,R,t){"use strict";t.d(R,{CV:function(){return f},NZ:function(){return p},Ou:function(){return S}});var o=t(74314),i=t(90663);const d=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i;function S(l){if(typeof l!="string")throw new TypeError(`Unable to parse location ref '${l}', unexpected argument ${typeof l}`);const g=l.indexOf(":");if(g<0)throw new TypeError(`Unable to parse location ref '${l}', expected '<type>:<target>', e.g. 'url:https://host/path'`);const O=l.substring(0,g).trim(),A=l.substring(g+1).trim();if(!O||!A)throw new TypeError(`Unable to parse location ref '${l}', expected '<type>:<target>', e.g. 'url:https://host/path'`);if(O==="http"||O==="https")throw new TypeError(`Invalid location ref '${l}', please prefix it with 'url:', e.g. 'url:${l}'`);if(d.test(A))throw new TypeError(`Invalid location ref '${l}', target is a javascript: URL`);return{type:O,target:A}}function p(l){const{type:g,target:O}=l;if(g){if(!O)throw new TypeError("Unable to stringify location ref, empty target")}else throw new TypeError("Unable to stringify location ref, empty type");if(d.test(O))throw new TypeError(`Invalid location ref '${g}:${O}', target is a javascript: URL`);return`${g}:${O}`}function f(l){var g,O,A,b,C;const x=(C=(O=l.metadata)===null||O===void 0||(g=O.annotations)===null||g===void 0?void 0:g[i.M6])!==null&&C!==void 0?C:(b=l.metadata)===null||b===void 0||(A=b.annotations)===null||A===void 0?void 0:A[i.P1];if(!x)throw new Error(`Entity '${(0,o.eE)(l)}' is missing location`);return S(x)}},9791:function(Y,R,t){"use strict";t.d(R,{O:function(){return O}});var o=t(52322),i=t(62774),d=t(60364),S=t(2784),p=t(83229),f=t(26639),l=t(39595),g=t(58033);function O(A){const{text:b,language:C,showLineNumbers:x=!1,highlightedNumbers:E,customStyle:I,showCopyCodeButton:P=!1}=A,M=(0,d.Z)(),F=M.palette.type==="dark"?f.Z:l.Z,Z=M.palette.type==="dark"?"#256bf3":"#e6ffed";return(0,o.jsxs)(i.Z,{position:"relative",children:[(0,o.jsx)(p.Z,{customStyle:I,language:C,style:F,showLineNumbers:x,wrapLines:!0,lineNumberStyle:{color:M.palette.textVerySubtle},lineProps:m=>E!=null&&E.includes(m)?{style:{backgroundColor:Z}}:{},children:b}),P&&(0,o.jsx)(i.Z,{position:"absolute",top:0,right:0,children:(0,o.jsx)(g.b,{text:b})})]})}},58033:function(Y,R,t){"use strict";t.d(R,{b:function(){return O}});var o=t(52322),i=t(44394),d=t(58513),S=t(61837),p=t(80030),f=t(19353),l=t(2784),g=t(95074);function O(A){const{text:b,tooltipDelay:C=1e3,tooltipText:x="Text copied to clipboard","aria-label":E="Copy text"}=A,I=(0,i.h_)(d.V),[P,M]=(0,l.useState)(!1),[{error:F},Z]=(0,g.Z)();(0,l.useEffect)(()=>{F&&I.post(F)},[F,I]);const m=k=>{k.stopPropagation(),M(!0),Z(b)};return(0,o.jsx)(o.Fragment,{children:(0,o.jsx)(p.ZP,{id:"copy-test-tooltip",title:x,placement:"top",leaveDelay:C,onClose:()=>M(!1),open:P,children:(0,o.jsx)(S.Z,{onClick:m,"aria-label":E,children:(0,o.jsx)(f.Z,{})})})})}},70249:function(Y,R,t){"use strict";t.d(R,{u:function(){return x}});var o=t(52322),i=t(60905),d=t(79692),S=t(90436),p=t(2784),f=t.p+"static/missingAnnotation.67f79e98..svg",l=t.p+"static/noInformation.4b426325..svg",g=t.p+"static/createComponent.975d1e1e..svg",O=t.p+"static/noBuild.1715fa71..svg";const A=(0,d.Z)({generalImg:{width:"95%",zIndex:2,position:"relative",left:"50%",top:"50%",transform:"translate(-50%, 15%)"}},{name:"BackstageEmptyStateImage"}),b=({missing:E})=>{const I=A();switch(E){case"field":return(0,o.jsx)("img",{src:f,className:I.generalImg,alt:"annotation is missing"});case"info":return(0,o.jsx)("img",{src:l,alt:"no Information",className:I.generalImg});case"content":return(0,o.jsx)("img",{src:g,alt:"create Component",className:I.generalImg});case"data":return(0,o.jsx)("img",{src:O,alt:"no Build",className:I.generalImg});default:return null}},C=(0,d.Z)(E=>({root:{backgroundColor:E.palette.background.default,padding:E.spacing(2,0,0,0)},action:{marginTop:E.spacing(2)},imageContainer:{position:"relative"}}),{name:"BackstageEmptyState"});function x(E){const{title:I,description:P,missing:M,action:F}=E,Z=C();return(0,o.jsxs)(i.Z,{container:!0,direction:"row",justifyContent:"space-around",alignItems:"flex-start",className:Z.root,spacing:2,children:[(0,o.jsx)(i.Z,{item:!0,xs:12,md:6,children:(0,o.jsxs)(i.Z,{container:!0,direction:"column",children:[(0,o.jsx)(i.Z,{item:!0,xs:!0,children:(0,o.jsx)(S.Z,{variant:"h5",children:I})}),(0,o.jsx)(i.Z,{item:!0,xs:!0,children:(0,o.jsx)(S.Z,{variant:"body1",children:P})}),(0,o.jsx)(i.Z,{item:!0,xs:!0,className:Z.action,children:F})]})}),(0,o.jsx)(i.Z,{item:!0,xs:12,md:6,className:Z.imageContainer,children:typeof M=="string"?(0,o.jsx)(b,{missing:M}):M.customImage})]})}},74359:function(Y,R,t){"use strict";t.d(R,{y:function(){return b}});var o=t(52322),i=t(79692),d=t(11776),S=t(38402),p=t(49378),f=t(2784),l=t(58033),g=t(538);const O=(0,i.Z)(C=>({text:{fontFamily:"monospace",whiteSpace:"pre",overflowX:"auto",marginRight:C.spacing(2)},divider:{margin:C.spacing(2)}}),{name:"BackstageErrorPanel"}),A=({error:C,message:x,stack:E,children:I})=>{const P=O();return(0,o.jsxs)(d.Z,{dense:!0,children:[(0,o.jsxs)(S.Z,{alignItems:"flex-start",children:[(0,o.jsx)(p.Z,{classes:{secondary:P.text},primary:"Error",secondary:C}),(0,o.jsx)(l.b,{text:C})]}),(0,o.jsxs)(S.Z,{alignItems:"flex-start",children:[(0,o.jsx)(p.Z,{classes:{secondary:P.text},primary:"Message",secondary:x}),(0,o.jsx)(l.b,{text:x})]}),E&&(0,o.jsxs)(S.Z,{alignItems:"flex-start",children:[(0,o.jsx)(p.Z,{classes:{secondary:P.text},primary:"Stack Trace",secondary:E}),(0,o.jsx)(l.b,{text:E})]}),I]})};function b(C){const{title:x,error:E,defaultExpanded:I,children:P}=C;return(0,o.jsx)(g.G,{severity:"error",title:x!=null?x:E.message,defaultExpanded:I,children:(0,o.jsx)(A,{error:E.name,message:E.message,stack:E.stack,children:P})})}},98864:function(Y,R,t){"use strict";t.d(R,{rU:function(){return H}});var o=t(52322),i=t(44394),d=t(6542),S=t(62369),p=t(86689),f=t(79692),l=t(90436),g=t(72779),O=t.n(g),A=t(76635),b=t.n(A),C=t(2784),x=t(73557),E=t(71597);function I(){const[z]=(0,x.is)((0,o.jsx)(x.AW,{index:!0,element:(0,o.jsx)("div",{})}));return!z.index}const P=(0,f.Z)({visuallyHidden:{clip:"rect(0 0 0 0)",clipPath:"inset(50%)",overflow:"hidden",position:"absolute",whiteSpace:"nowrap",height:1,width:1},externalLink:{position:"relative"}},{name:"Link"}),M=z=>/^([a-z+.-]+):/.test(z),F=/^[\u0000-\u001F ]*j[\r\n\t]*a[\r\n\t]*v[\r\n\t]*a[\r\n\t]*s[\r\n\t]*c[\r\n\t]*r[\r\n\t]*i[\r\n\t]*p[\r\n\t]*t[\r\n\t]*\:/i,Z=window.open;if(Z&&!Z.__backstage){const z=function(...q){const rt=String(q[0]);if(F.test(rt))throw new Error("Rejected window.open() with a javascript: URL as a security precaution");return Z.apply(this,q)};z.__backstage=!0,window.open=z}const m=()=>{try{return(0,i.h_)(d.D).getOptionalString("app.baseUrl")}catch{return}},k=()=>{const z="http://sample.dev";var G;const q=(G=m())!==null&&G!==void 0?G:"/",{pathname:rt}=new URL(q,z);return(0,A.trimEnd)(rt,"/")},ot=z=>{let G=String(z);const q=k(),rt=M(G),At=G.startsWith(q);return!rt&&!At&&(G=q.concat(G)),G},J=z=>{if(z instanceof Array)return z.map(J).join(" ").trim();if(typeof z=="object"&&z){var G;return J(z==null||(G=z.props)===null||G===void 0?void 0:G.children)}return["string","number"].includes(typeof z)?String(z):""},H=C.forwardRef(({onClick:z,noTrack:G,...q},rt)=>{const At=P(),xt=(0,S.z)(),ut=I()?ot(q.to):q.to,bt=J(q.children)||ut,Ct=M(ut),Ot=Ct&&!!/^https?:/.exec(ut);if(F.test(ut))throw new Error("Link component rejected javascript: URL as a security precaution");const nt=U=>{z==null||z(U),G||xt.captureEvent("click",bt,{attributes:{to:ut}})};return Ct?(0,o.jsxs)(p.Z,{...Ot?{target:"_blank",rel:"noopener"}:{},...q,...q["aria-label"]?{"aria-label":`${q["aria-label"]}, Opens in a new window`}:{},ref:rt,href:ut,onClick:nt,className:O()(At.externalLink,q.className),children:[q.children,(0,o.jsx)(l.Z,{component:"span",className:At.visuallyHidden,children:", Opens in a new window"})]}):(0,o.jsx)(p.Z,{...q,ref:rt,component:E.rU,to:ut,onClick:nt})})},15929:function(Y,R,t){"use strict";t.d(R,{Q:function(){return f}});var o=t(52322),i=t(77277),d=t(2784),S=t(98864);const p=d.forwardRef((g,O)=>(0,o.jsx)(S.rU,{ref:O,...g,color:"initial"})),f=d.forwardRef((g,O)=>(0,o.jsx)(i.Z,{ref:O,component:p,...g})),l=null},55015:function(Y,R,t){"use strict";t.d(R,{E:function(){return f}});var o=t(52322),i=t(62774),d=t(67358),S=t(60364),p=t(2784);function f(l){const g=(0,S.Z)(),[O,A]=(0,p.useState)(!1);return(0,p.useEffect)(()=>{const b=setTimeout(()=>A(!0),g.transitions.duration.short);return()=>clearTimeout(b)},[g.transitions.duration.short]),O?(0,o.jsx)(d.Z,{...l,"data-testid":"progress"}):(0,o.jsx)(i.Z,{display:"none"})}},35879:function(Y,R,t){"use strict";t.d(R,{H:function(){return H}});var o=t(52322),i=t(62774),d=t(21324),S=t(7089),p=t(30192),f=t(74603),l=t(56939),g=t(12231),O=t(73698),A=t(15459),b=t(42494),C=t(79692),x=t(90436),E=t(2784),I=t(72379);const P=(0,C.Z)(z=>(0,b.Z)({icon:{position:"absolute",right:z.spacing(.5),pointerEvents:"none"}}),{name:"BackstageClosedDropdown"});var F=()=>{const z=P();return(0,o.jsx)(I.Z,{className:z.icon,fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,o.jsx)("path",{d:"M7.5 8L6 9.5L12.0703 15.5703L18.1406 9.5L16.6406 8L12.0703 12.5703L7.5 8Z",fill:"#616161"})})};const Z=(0,C.Z)(z=>(0,b.Z)({icon:{position:"absolute",right:z.spacing(.5),pointerEvents:"none"}}),{name:"BackstageOpenedDropdown"});var k=()=>{const z=Z();return(0,o.jsx)(I.Z,{className:z.icon,fill:"none",xmlns:"http://www.w3.org/2000/svg",children:(0,o.jsx)("path",{d:"M16.5 16L18 14.5L11.9297 8.42969L5.85938 14.5L7.35938 16L11.9297 11.4297L16.5 16Z",fill:"#616161"})})};const ot=(0,A.Z)(z=>(0,b.Z)({root:{"label + &":{marginTop:z.spacing(3)},"&.Mui-focused > div[role=button]":{borderColor:z.palette.primary.main}},input:{borderRadius:z.shape.borderRadius,position:"relative",backgroundColor:z.palette.background.paper,border:"1px solid #ced4da",fontSize:z.typography.body1.fontSize,padding:z.spacing(1.25,3.25,1.25,1.5),transition:z.transitions.create(["border-color","box-shadow"]),fontFamily:"Helvetica Neue","&:focus":{background:z.palette.background.paper,borderRadius:z.shape.borderRadius}}}),{name:"BackstageSelectInputBase"})(f.Z),J=(0,C.Z)(z=>(0,b.Z)({formControl:{margin:z.spacing(1,0),maxWidth:300},label:{transform:"initial",fontWeight:"bold",fontSize:z.typography.body2.fontSize,fontFamily:z.typography.fontFamily,color:z.palette.text.primary,"&.Mui-focused":{color:z.palette.text.primary}},formLabel:{transform:"initial",fontWeight:"bold",fontSize:z.typography.body2.fontSize,fontFamily:z.typography.fontFamily,color:z.palette.text.primary,"&.Mui-focused":{color:z.palette.text.primary}},chips:{display:"flex",flexWrap:"wrap"},chip:{margin:2},checkbox:{},root:{display:"flex",flexDirection:"column"}}),{name:"BackstageSelect"});function H(z){const{multiple:G,items:q,label:rt,placeholder:At,selected:xt,onChange:ut,triggerReset:bt,native:Ct=!1,disabled:Ot=!1,margin:nt}=z,U=J(),[_,tt]=(0,E.useState)(xt||(G?[]:"")),[at,ct]=(0,E.useState)(!1);(0,E.useEffect)(()=>{tt(G?[]:"")},[bt,G]),(0,E.useEffect)(()=>{tt(xt||(G?[]:""))},[xt,G]);const N=ht=>{tt(ht.target.value),ut(ht.target.value)},K=ht=>{if(Ot){ht.preventDefault();return}ct(ft=>G&&!(ht.target instanceof HTMLElement)?!0:!ft)},pt=()=>{ct(!1)},Et=ht=>()=>{const ft=_.filter(lt=>lt!==ht);tt(ft),ut(ft)};return(0,o.jsx)(i.Z,{className:U.root,children:(0,o.jsxs)(p.Z,{className:U.formControl,children:[(0,o.jsx)(l.Z,{className:U.formLabel,children:rt}),(0,o.jsxs)(O.Z,{"aria-label":rt,value:_,native:Ct,disabled:Ot,"data-testid":"select",displayEmpty:!0,multiple:G,margin:nt,onChange:N,open:at,onOpen:K,onClose:pt,input:(0,o.jsx)(ot,{}),label:rt,renderValue:ht=>{var ft;return G&&_.length!==0?(0,o.jsx)(i.Z,{className:U.chips,children:ht.map(lt=>{var Rt,Tt;return(0,o.jsx)(S.Z,{label:(Rt=q.find(It=>It.value===lt))===null||Rt===void 0?void 0:Rt.label,clickable:!0,onDelete:Et(lt),className:U.chip},(Tt=q.find(It=>It.value===lt))===null||Tt===void 0?void 0:Tt.value)})}):(0,o.jsx)(x.Z,{children:_.length===0?At||"":(ft=q.find(lt=>lt.value===ht))===null||ft===void 0?void 0:ft.label})},IconComponent:()=>at?(0,o.jsx)(k,{}):(0,o.jsx)(F,{}),MenuProps:{anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},getContentAnchorEl:null},children:[At&&!G&&(0,o.jsx)(g.Z,{value:[],children:At}),Ct?q&&q.map(ht=>(0,o.jsx)("option",{value:ht.value,children:ht.label},ht.value)):q&&q.map(ht=>(0,o.jsxs)(g.Z,{value:ht.value,children:[G&&(0,o.jsx)(d.Z,{color:"primary",checked:_.includes(ht.value)||!1,className:U.checkbox}),ht.label]},ht.value))]})]})})}},13788:function(Y,R,t){"use strict";t.d(R,{q:function(){return nt}});var o=t(52322),i=t(80851),d=t(62774),S=t(77277),p=t(49429),f=t(61837),l=t(86136),g=t(49378),O=t(12231),A=t(50758),b=t(79784),C=t(79692),x=t(90436),E=t(41156),I=t(2784),P=t(77770),M=t(80079);function F(U,_){const at=(0,i.q)().getSystemIcon(U);return at?(0,o.jsx)(at,{..._}):(0,o.jsx)(M.Z,{..._})}function Z(U){return F("brokenImage",U)}function m(U){return F("catalog",U)}function k(U){return F("chat",U)}function ot(U){return F("dashboard",U)}function J(U){return F("docs",U)}function H(U){return F("email",U)}function z(U){return F("github",U)}function G(U){return F("group",U)}function q(U){return F("help",U)}function rt(U){return F("user",U)}function At(U){return F("warning",U)}var xt=t(98864);const ut=(0,C.Z)({popoverList:{minWidth:260,maxWidth:400},menuItem:{whiteSpace:"normal"}},{name:"BackstageSupportButton"}),bt=({icon:U})=>{const _=(0,i.q)();var tt;const at=U&&(tt=_.getSystemIcon(U))!==null&&tt!==void 0?tt:q;return(0,o.jsx)(at,{})},Ct=({link:U})=>{var _;return(0,o.jsx)(xt.rU,{to:U.url,children:(_=U.title)!==null&&_!==void 0?_:U.url})},Ot=({item:U})=>{var _;return(0,o.jsxs)(O.Z,{children:[(0,o.jsx)(l.Z,{children:(0,o.jsx)(bt,{icon:U.icon})}),(0,o.jsx)(g.Z,{primary:U.title,secondary:(_=U.links)===null||_===void 0?void 0:_.reduce((tt,at,ct)=>[...tt,ct>0&&(0,o.jsx)("br",{},ct),(0,o.jsx)(Ct,{link:at},at.url)],[])})]})};function nt(U){const{title:_,items:tt,children:at}=U,{items:ct}=(0,P.v)(),[N,K]=(0,I.useState)(!1),[pt,Et]=(0,I.useState)(null),ht=ut(),ft=(0,E.Z)(Tt=>Tt.breakpoints.down("sm")),lt=Tt=>{Et(Tt.currentTarget),K(!0)},Rt=()=>{K(!1)};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(d.Z,{display:"flex",ml:1,children:ft?(0,o.jsx)(f.Z,{color:"primary",size:"small",onClick:lt,"data-testid":"support-button","aria-label":"Support",children:(0,o.jsx)(q,{})}):(0,o.jsx)(S.Z,{"data-testid":"support-button","aria-label":"Support",color:"primary",onClick:lt,startIcon:(0,o.jsx)(q,{}),children:"Support"})}),(0,o.jsxs)(b.ZP,{"data-testid":"support-button-popover",open:N,anchorEl:pt,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},onClose:Rt,children:[(0,o.jsxs)(A.Z,{className:ht.popoverList,autoFocusItem:Boolean(pt),children:[_&&(0,o.jsx)(O.Z,{alignItems:"flex-start",className:ht.menuItem,children:(0,o.jsx)(x.Z,{variant:"subtitle1",children:_})}),I.Children.map(at,(Tt,It)=>(0,o.jsx)(O.Z,{alignItems:"flex-start",className:ht.menuItem,children:Tt},`child-${It}`)),(tt!=null?tt:ct).map((Tt,It)=>(0,o.jsx)(Ot,{item:Tt},`item-${It}`))]}),(0,o.jsx)(p.Z,{children:(0,o.jsx)(S.Z,{color:"primary",onClick:Rt,"aria-label":"Close",children:"Close"})})]})]})}},84462:function(Y,R,t){"use strict";t.d(R,{i:function(){return ct}});var o=t(52322),i=t(67222),d=t(62774),S=t(61837),p=t(15459),f=t(79692),l=t(60364),g=t(90436),O=t(21070),A=t(90324),b=t(98281),C=t(48049),x=t(51209),E=t(33375),I=t(44233),P=t(27604),M=t(36444),F=t(37971),Z=t(59709),m=t(17373),k=t(3702),ot=t(93111),J=t(76635),H=t(2784),z=t(77277),G=t(35879);const q=(0,f.Z)(N=>({root:{height:"100%",width:"315px",display:"flex",flexDirection:"column",marginRight:N.spacing(3)},value:{fontWeight:"bold",fontSize:18},header:{display:"flex",alignItems:"center",height:N.spacing(7.5),justifyContent:"space-between",borderBottom:`1px solid ${N.palette.grey[500]}`},filters:{display:"flex",flexDirection:"column","& > *":{marginTop:N.spacing(2)}}}),{name:"BackstageTableFilters"}),rt=N=>{var K;const pt=q(),{onChangeFilters:Et}=N,[ht,ft]=(0,H.useState)({...N.selectedFilters}),[lt,Rt]=(0,H.useState)(!1),Tt=()=>{ft({}),Rt(It=>!It)};return(0,H.useEffect)(()=>{Et(ht)},[ht,Et]),(0,o.jsxs)(d.Z,{className:pt.root,children:[(0,o.jsxs)(d.Z,{className:pt.header,children:[(0,o.jsx)(d.Z,{className:pt.value,children:"Filters"}),(0,o.jsx)(z.Z,{color:"primary",onClick:Tt,children:"Clear all"})]}),(0,o.jsx)(d.Z,{className:pt.filters,children:((K=N.filters)===null||K===void 0?void 0:K.length)&&N.filters.map(It=>(0,o.jsx)(G.H,{triggerReset:lt,...It.element,selected:ht[It.element.label],onChange:Wt=>ft({...ht,[It.element.label]:Wt})},It.element.label))})]})};var At=t(4614);const xt={Add:(0,H.forwardRef)((N,K)=>(0,o.jsx)(O.Z,{...N,ref:K})),Check:(0,H.forwardRef)((N,K)=>(0,o.jsx)(b.Z,{...N,ref:K})),Clear:(0,H.forwardRef)((N,K)=>(0,o.jsx)(E.Z,{...N,ref:K})),Delete:(0,H.forwardRef)((N,K)=>(0,o.jsx)(I.Z,{...N,ref:K})),DetailPanel:(0,H.forwardRef)((N,K)=>(0,o.jsx)(x.Z,{...N,ref:K})),Edit:(0,H.forwardRef)((N,K)=>(0,o.jsx)(P.Z,{...N,ref:K})),Export:(0,H.forwardRef)((N,K)=>(0,o.jsx)(k.Z,{...N,ref:K})),Filter:(0,H.forwardRef)((N,K)=>(0,o.jsx)(M.Z,{...N,ref:K})),FirstPage:(0,H.forwardRef)((N,K)=>(0,o.jsx)(F.Z,{...N,ref:K})),LastPage:(0,H.forwardRef)((N,K)=>(0,o.jsx)(Z.Z,{...N,ref:K})),NextPage:(0,H.forwardRef)((N,K)=>(0,o.jsx)(x.Z,{...N,ref:K})),PreviousPage:(0,H.forwardRef)((N,K)=>(0,o.jsx)(C.Z,{...N,ref:K})),ResetSearch:(0,H.forwardRef)((N,K)=>(0,o.jsx)(E.Z,{...N,ref:K})),Search:(0,H.forwardRef)((N,K)=>(0,o.jsx)(M.Z,{...N,ref:K})),SortArrow:(0,H.forwardRef)((N,K)=>(0,o.jsx)(A.Z,{...N,ref:K})),ThirdStateCheck:(0,H.forwardRef)((N,K)=>(0,o.jsx)(m.Z,{...N,ref:K})),ViewColumn:(0,H.forwardRef)((N,K)=>(0,o.jsx)(ot.Z,{...N,ref:K}))};function ut(N,K){const pt=K.split(".");let Et=N[pt[0]];for(let ht=1;ht<pt.length;++ht){if(Et===void 0)return Et;const ft=pt[ht];Et=Et[ft]}return Et}const bt=(0,p.Z)(N=>({header:{padding:N.spacing(1,2,1,2.5),borderTop:`1px solid ${N.palette.grey.A100}`,borderBottom:`1px solid ${N.palette.grey.A100}`,fontWeight:N.typography.fontWeightBold,position:"static",wordBreak:"normal"}}),{name:"BackstageTableHeader"})(i.W$),Ct=(0,p.Z)(N=>({root:{padding:N.spacing(3,0,2.5,2.5)},title:{"& > h6":{fontWeight:N.typography.fontWeightBold}},searchField:{paddingRight:N.spacing(2)}}),{name:"BackstageTableToolbar"})(i.UW),Ot=(0,f.Z)(N=>({root:{display:"flex",alignItems:"center",justifyContent:"space-between"},title:{fontWeight:N.typography.fontWeightBold,fontSize:18,whiteSpace:"nowrap"}}),{name:"BackstageTableFiltersContainer"}),nt=(0,f.Z)(()=>({root:{display:"flex",alignItems:"start"}}),{name:"BackstageTable"});function U(N,K){return N.map(pt=>{var Et;const ht=(Et=pt.headerStyle)!==null&&Et!==void 0?Et:{};let ft=pt.cellStyle||{};if(pt.highlight)if(ht.color=K.palette.textContrast,typeof ft=="object")ft.fontWeight=K.typography.fontWeightBold;else{const lt=ft;ft=(Rt,Tt,It)=>({...lt(Rt,Tt,It),fontWeight:K.typography.fontWeightBold})}return{...pt,headerStyle:ht,cellStyle:ft}})}function _(N,K){return(0,J.transform)(N,(pt,Et,ht)=>{(0,J.isEqual)(Et,K[ht])||(pt[ht]=Et)})}const tt={search:"",filtersOpen:!1,filters:{}};function at(N){const{toolbarRef:K,setSearch:pt,hasFilters:Et,selectedFiltersLength:ht,toggleFilters:ft}=N,lt=Ot(),Rt=(0,H.useCallback)(Tt=>{N.onSearchChanged(Tt),pt(Tt)},[N,pt]);return Et?(0,o.jsxs)(d.Z,{className:lt.root,children:[(0,o.jsxs)(d.Z,{className:lt.root,children:[(0,o.jsx)(S.Z,{onClick:ft,"aria-label":"filter list",children:(0,o.jsx)(M.Z,{})}),(0,o.jsxs)(g.Z,{className:lt.title,children:["Filters (",ht,")"]})]}),(0,o.jsx)(Ct,{...N,ref:K,onSearchChanged:Rt})]}):(0,o.jsx)(Ct,{...N,ref:K,onSearchChanged:Rt})}function ct(N){const{data:K,columns:pt,options:Et,title:ht,subtitle:ft,filters:lt,initialState:Rt,emptyContent:Tt,onStateChange:It,components:Wt,isLoading:Yt,...he}=N,Zt=nt(),Ft=(0,l.Z)(),Gt={...tt,...Rt},[oe,Se]=(0,H.useState)(Gt.filtersOpen),Oe=(0,H.useCallback)(()=>Se(u=>!u),[Se]),[Le,_e]=(0,H.useState)(0),[Ye,ze]=(0,H.useState)(K),[fe,Qe]=(0,H.useState)(Gt.filters),Ie=U(pt,Ft),[He,ee]=(0,H.useState)(Gt.search);(0,H.useEffect)(()=>{if(It){const u=_({search:He,filtersOpen:oe,filters:fe},tt);It(u)}},[He,oe,fe,It]);const Je={headerStyle:{textTransform:"uppercase"}},be=(0,H.useCallback)(u=>{var D;return(D=pt.find(B=>B.title===u))===null||D===void 0?void 0:D.field},[pt]);(0,H.useEffect)(()=>{if(typeof K=="function")return;if(!fe){ze(K);return}const u=Object.values(fe);if(K&&u.flat().length){const D=K.filter(B=>!!Object.entries(fe).filter(([,et])=>!!et.length).every(([et,dt])=>{const yt=ut(B,be(et));return Array.isArray(yt)&&Array.isArray(dt)?yt.some(Kt=>dt.includes(Kt)):Array.isArray(yt)?yt.includes(dt):Array.isArray(dt)?dt.includes(yt):yt===dt}));ze(D)}else ze(K);_e(u.flat().length)},[K,fe,be]);const je=(u,D)=>{const B=dt=>{const yt=new Set,Kt=kt=>{kt!=null&&yt.add(kt)};return D&&D.forEach(kt=>{const jt=ut(kt,be(dt));Array.isArray(jt)?jt.forEach(Kt):Kt(jt)}),yt},et=dt=>({placeholder:"All results",label:dt.column,multiple:dt.type==="multiple-select",items:[...B(dt.column)].sort().map(yt=>({label:yt,value:yt}))});return u.map(dt=>({type:dt.type,element:et(dt)}))},De=!!(lt!=null&&lt.length),ae=(0,H.useCallback)(u=>(0,o.jsx)(at,{setSearch:ee,hasFilters:De,selectedFiltersLength:Le,toggleFilters:Oe,...u}),[Oe,De,Le,ee]),Be=typeof K!="function"&&K.length===0,Ue=pt.length,L=(0,H.useCallback)(u=>Yt?(0,o.jsx)("tbody",{"data-testid":"loading-indicator",children:(0,o.jsx)("tr",{children:(0,o.jsx)("td",{colSpan:Ue,children:(0,o.jsx)(d.Z,{sx:{display:"flex",justifyContent:"center",alignItems:"center",width:"100%",minHeight:"15rem"},children:(0,o.jsx)(At.Z,{size:"5rem"})})})})}):Tt&&Be?(0,o.jsx)("tbody",{children:(0,o.jsx)("tr",{children:(0,o.jsx)("td",{colSpan:Ue,children:Tt})})}):(0,o.jsx)(i.os,{...u}),[Be,Tt,Ue,Yt]);return(0,o.jsxs)(d.Z,{className:Zt.root,children:[oe&&K&&typeof K!="function"&&(lt==null?void 0:lt.length)&&(0,o.jsx)(rt,{filters:je(lt,K),selectedFilters:fe,onChangeFilters:Qe}),(0,o.jsx)(i.ZP,{components:{Header:bt,Toolbar:ae,Body:L,...Wt},options:{...Je,...Et},columns:Ie,icons:xt,title:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(g.Z,{variant:"h5",component:"h2",children:ht}),ft&&(0,o.jsx)(g.Z,{color:"textSecondary",variant:"body1",children:ft})]}),data:typeof K=="function"?K:Ye,style:{width:"100%"},localization:{toolbar:{searchPlaceholder:"Filter",searchTooltip:"Filter"}},...he})]})}ct.icons=Object.freeze(xt)},538:function(Y,R,t){"use strict";t.d(R,{G:function(){return Z}});var o=t(52322),i=t(41128),d=t(79692),S=t(27616),p=t(8284),f=t(70660),l=t(60905),g=t(90436),O=t(91750),A=t(38016),b=t(2784);const C=(m,k)=>(k.palette.type==="light"?i._j:i.$n)(k.palette[m].light,.6),x=(m,k)=>(k.palette.type==="light"?i.$n:i._j)(k.palette[m].light,.9),E=(0,d.Z)(m=>({root:{marginRight:m.spacing(1),fill:({severity:k})=>C(k,m)}})),I=({severity:m})=>{const k=E({severity:m});return(0,o.jsx)(O.Z,{classes:k})},P=({severity:m})=>{const k=E({severity:m});return(0,o.jsx)(A.Z,{classes:k})},M=(0,d.Z)(m=>({content:{lineBreak:"anywhere"},panel:{backgroundColor:({severity:k})=>x(k,m),color:({severity:k})=>C(k,m),verticalAlign:"middle"},summary:{display:"flex",flexDirection:"row"},summaryText:{color:({severity:k})=>C(k,m),fontWeight:m.typography.fontWeightBold},message:{width:"100%",display:"block",color:({severity:k})=>C(k,m),backgroundColor:({severity:k})=>x(k,m)},details:{width:"100%",display:"block",color:m.palette.textContrast,backgroundColor:m.palette.background.default,border:`1px solid ${m.palette.border}`,padding:m.spacing(2),fontFamily:"sans-serif"}}),{name:"BackstageWarningPanel"}),F=m=>m.charAt(0).toLocaleUpperCase("en-US")+m.slice(1);function Z(m){const{severity:k="warning",title:ot,message:J,children:H,defaultExpanded:z}=m,G=M({severity:k}),q=F(k)+(ot?`: ${ot}`:"");return(0,o.jsxs)(S.Z,{defaultExpanded:z!=null?z:!1,className:G.panel,role:"alert",children:[(0,o.jsxs)(p.Z,{expandIcon:(0,o.jsx)(P,{severity:k}),classes:{content:G.content},className:G.summary,children:[(0,o.jsx)(I,{severity:k}),(0,o.jsx)(g.Z,{className:G.summaryText,variant:"subtitle1",children:q})]}),(J||H)&&(0,o.jsx)(f.Z,{children:(0,o.jsxs)(l.Z,{container:!0,children:[J&&(0,o.jsx)(l.Z,{item:!0,xs:12,children:(0,o.jsx)(g.Z,{className:G.message,variant:"body1",children:J})}),H&&(0,o.jsx)(l.Z,{item:!0,xs:12,className:G.details,children:H})]})})]})}},77770:function(Y,R,t){"use strict";t.d(R,{v:function(){return S}});var o=t(44394),i=t(6542);const d={url:"https://github.com/backstage/backstage/issues",items:[{title:"Support Not Configured",icon:"warning",links:[{title:"Add `app.support` config key",url:"https://github.com/backstage/backstage/blob/master/app-config.yaml"}]}]};function S(){const f=(0,o.I_)().get(i.D),l=f==null?void 0:f.getOptionalConfig("app.support");return l?{url:l.getString("url"),items:l.getConfigArray("items").flatMap(g=>{var O;return{title:g.getString("title"),icon:g.getOptionalString("icon"),links:((O=g.getOptionalConfigArray("links"))!==null&&O!==void 0?O:[]).flatMap(A=>({url:A.getString("url"),title:A.getString("title")}))}})}:d}},42398:function(Y,R,t){"use strict";t.d(R,{V:function(){return l}});var o=t(52322),i=t(79692),d=t(72779),S=t.n(d),p=t(2784);const f=(0,i.Z)(g=>({root:{gridArea:"pageContent",minWidth:0,paddingTop:g.spacing(3),paddingBottom:g.spacing(3),paddingLeft:g.spacing(2),paddingRight:g.spacing(2),[g.breakpoints.up("sm")]:{paddingLeft:g.spacing(3),paddingRight:g.spacing(3)}},stretch:{display:"flex",flexDirection:"column",flexGrow:1},noPadding:{padding:0}}),{name:"BackstageContent"});function l(g){const{className:O,stretch:A,noPadding:b,children:C,...x}=g,E=f();return(0,o.jsx)("article",{...x,className:S()(E.root,O,{[E.stretch]:A,[E.noPadding]:b}),children:C})}},30706:function(Y,R,t){"use strict";t.d(R,{y:function(){return O}});var o=t(52322),i=t(62774),d=t(79692),S=t(90436),p=t(2784),f=t(18671);const l=A=>(0,d.Z)(b=>({container:{width:"100%",display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"flex-end",alignItems:"center",marginBottom:b.spacing(2),textAlign:A.textAlign},leftItemsBox:{flex:"1 1 auto",minWidth:0,overflow:"visible"},rightItemsBox:{flex:"0 1 auto",display:"flex",flexDirection:"row",flexWrap:"wrap",alignItems:"center",marginLeft:b.spacing(1),minWidth:0,overflow:"visible"},description:{},title:{display:"inline-flex",marginBottom:0}}),{name:"BackstageContentHeader"}),g=({title:A="Unknown page",className:b})=>(0,o.jsx)(S.Z,{variant:"h4",component:"h2",className:b,"data-testid":"header-title",children:A});function O(A){const{description:b,title:C,titleComponent:x=void 0,children:E,textAlign:I="left"}=A,P=l({textAlign:I})(),M=x||(0,o.jsx)(g,{title:C,className:P.title});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(f.q,{title:C}),(0,o.jsxs)(i.Z,{className:P.container,children:[(0,o.jsxs)(i.Z,{className:P.leftItemsBox,children:[M,b&&(0,o.jsx)(S.Z,{className:P.description,variant:"body2",children:b})]}),(0,o.jsx)(i.Z,{className:P.rightItemsBox,children:E})]})]})}},87435:function(Y,R,t){"use strict";t.d(R,{m:function(){return x}});var o=t(52322),i=t(60905),d=t(79692),S=t(90436),p=t(2784),f=t(73557),l=t(98864),g=t(77770),O=t.p+"static/mic-drop.fe3ef4d0..svg";const A=(0,d.Z)(E=>({micDrop:{maxWidth:"60%",bottom:E.spacing(2),right:E.spacing(2),[E.breakpoints.down("xs")]:{maxWidth:"96%",bottom:"unset",right:"unset",margin:E.spacing(10,"auto",4)}}}),{name:"BackstageErrorPageMicDrop"}),b=()=>{const E=A();return(0,o.jsx)("img",{src:O,className:E.micDrop,alt:"Girl dropping mic from her hands"})},C=(0,d.Z)(E=>({container:{padding:E.spacing(8),[E.breakpoints.down("xs")]:{padding:E.spacing(2)}},title:{paddingBottom:E.spacing(5),[E.breakpoints.down("xs")]:{paddingBottom:E.spacing(4),fontSize:E.typography.h3.fontSize}},subtitle:{color:E.palette.textSubtle}}),{name:"BackstageErrorPage"});function x(E){const{status:I,statusMessage:P,additionalInfo:M,supportUrl:F}=E,Z=C(),m=(0,f.s0)(),k=(0,g.v)();return(0,o.jsxs)(i.Z,{container:!0,spacing:0,className:Z.container,children:[(0,o.jsxs)(i.Z,{item:!0,xs:12,sm:8,md:4,children:[(0,o.jsxs)(S.Z,{"data-testid":"error",variant:"body1",className:Z.subtitle,children:["ERROR ",I,": ",P]}),(0,o.jsx)(S.Z,{variant:"body1",className:Z.subtitle,children:M}),(0,o.jsx)(S.Z,{variant:"h2",className:Z.title,children:"Looks like someone dropped the mic!"}),(0,o.jsxs)(S.Z,{variant:"h6",children:[(0,o.jsx)(l.rU,{to:"#","data-testid":"go-back-link",onClick:()=>m(-1),children:"Go back"}),"... or please"," ",(0,o.jsx)(l.rU,{to:F||k.url,children:"contact support"})," if you think this is a bug."]})]}),(0,o.jsx)(b,{})]})}},48037:function(Y,R,t){"use strict";t.d(R,{h:function(){return z}});var o=t(52322),i=t(44394),d=t(6542),S=t(62774),p=t(60905),f=t(79692),l=t(80030),g=t(90436),O=t(2784),A=t(18671),b=t(98864),C=t(16173),x=t(11776),E=t(38402),I=t(79784),P=t(15459);const M=(0,P.Z)({root:{textDecoration:"underline",cursor:"pointer"}},{name:"BackstageBreadcrumbsClickableText"})(g.Z),F=(0,P.Z)({root:{textDecoration:"underline",color:"inherit"}},{name:"BackstageBreadcrumbsStyledBox"})(S.Z);function Z(G){const{children:q,...rt}=G,[At,xt]=O.useState(null),ut=O.Children.toArray(q),[bt,Ct,...Ot]=ut,nt=Ot.length?Ot.pop():ut[ut.length-1],U=ut.length>3,_=ct=>{xt(ct.currentTarget)},tt=()=>{xt(null)},at=Boolean(At);return(0,o.jsxs)(O.Fragment,{children:[(0,o.jsxs)(C.Z,{"aria-label":"breadcrumb",...rt,children:[ut.length>1&&(0,o.jsx)(F,{clone:!0,children:bt}),ut.length>2&&(0,o.jsx)(F,{clone:!0,children:Ct}),U&&(0,o.jsx)(M,{onClick:_,children:"..."}),(0,o.jsx)(S.Z,{style:{fontStyle:"italic"},children:nt})]}),(0,o.jsx)(I.ZP,{open:at,anchorEl:At,onClose:tt,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},children:(0,o.jsx)(x.Z,{children:Ot.map((ct,N)=>(0,o.jsx)(E.Z,{button:!0,children:(0,o.jsx)(F,{clone:!0,children:ct})},N))})})]})}var m=t(44409);const k=(0,f.Z)(G=>({header:{gridArea:"pageHeader",padding:G.spacing(3),width:"100%",boxShadow:G.shadows[4],position:"relative",zIndex:100,display:"flex",flexDirection:"row",alignItems:"center",backgroundImage:G.page.backgroundImage,backgroundPosition:"center",backgroundSize:"cover",[G.breakpoints.down("sm")]:{flexWrap:"wrap"}},leftItemsBox:{maxWidth:"100%",flexGrow:1},rightItemsBox:{width:"auto",alignItems:"center"},title:{color:G.page.fontColor,wordBreak:"break-word",fontSize:G.typography.h3.fontSize,marginBottom:0},subtitle:{color:G.page.fontColor,opacity:.8,display:"inline-block",marginTop:G.spacing(1),maxWidth:"75ch"},type:{textTransform:"uppercase",fontSize:11,opacity:.8,marginBottom:G.spacing(1),color:G.page.fontColor},breadcrumb:{color:G.page.fontColor},breadcrumbType:{fontSize:"inherit",opacity:.7,marginRight:-G.spacing(.3),marginBottom:G.spacing(.3)},breadcrumbTitle:{fontSize:"inherit",marginLeft:-G.spacing(.3),marginBottom:G.spacing(.3)}}),{name:"BackstageHeader"}),ot=({type:G,typeLink:q,classes:rt,pageTitle:At})=>G?q?(0,o.jsxs)(Z,{className:rt.breadcrumb,children:[(0,o.jsx)(b.rU,{to:q,children:G}),(0,o.jsx)(g.Z,{children:At})]}):(0,o.jsx)(g.Z,{className:rt.type,children:G}):null,J=({pageTitle:G,classes:q,tooltip:rt})=>{const{contentRef:At}=(0,m.r)(),xt=(0,o.jsx)(g.Z,{ref:At,tabIndex:-1,className:q.title,variant:"h1",children:G});return rt?(0,o.jsx)(l.ZP,{title:rt,placement:"top-start",children:xt}):xt},H=({classes:G,subtitle:q})=>q?typeof q!="string"?(0,o.jsx)(o.Fragment,{children:q}):(0,o.jsx)(g.Z,{className:G.subtitle,variant:"subtitle2",component:"span",children:q}):null;function z(G){const{children:q,pageTitleOverride:rt,style:At,subtitle:xt,title:ut,tooltip:bt,type:Ct,typeLink:Ot}=G,nt=k(),_=(0,i.h_)(d.D).getOptionalString("app.title")||"Backstage",tt=rt||ut,at=ut||rt,ct=`${tt} | %s | ${_}`,N=`${tt} | ${_}`;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(A.q,{titleTemplate:ct,defaultTitle:N}),(0,o.jsxs)("header",{style:At,className:nt.header,children:[(0,o.jsxs)(S.Z,{className:nt.leftItemsBox,children:[(0,o.jsx)(ot,{classes:nt,type:Ct,typeLink:Ot,pageTitle:at}),(0,o.jsx)(J,{classes:nt,pageTitle:at,tooltip:bt}),(0,o.jsx)(H,{classes:nt,subtitle:xt})]}),(0,o.jsx)(p.Z,{container:!0,className:nt.rightItemsBox,spacing:4,children:q})]})]})}},67880:function(Y,R,t){"use strict";t.d(R,{T:function(){return f}});var o=t(52322),i=t(2784),d=t(79692),S=t(41547);const p=(0,d.Z)(l=>({root:{display:"grid",gridTemplateAreas:"'pageHeader pageHeader pageHeader' 'pageSubheader pageSubheader pageSubheader' 'pageNav pageContent pageSidebar'",gridTemplateRows:"max-content auto 1fr",gridTemplateColumns:"auto 1fr auto",overflowY:"auto",height:"100vh",[l.breakpoints.down("xs")]:{height:"100%"},"@media print":{display:"block",height:"auto",overflowY:"inherit"}}}),{name:"BackstagePage"});function f(l){const{themeId:g,children:O}=l,A=p();return(0,o.jsx)(S.Z,{theme:b=>({...b,page:b.getPageTheme({themeId:g})}),children:(0,o.jsx)("main",{className:A.root,children:O})})}},32166:function(Y,R,t){"use strict";t.d(R,{g:function(){return p}});var o=t(52322),i=t(2784),d=t(48037),S=t(67880);function p(f){const{themeId:l,children:g,...O}=f;return(0,o.jsxs)(S.T,{themeId:l,children:[(0,o.jsx)(d.h,{...O}),g]})}},44409:function(Y,R,t){"use strict";t.d(R,{t:function(){return C},r:function(){return x}});var o=t(52322),i=t(62774),d=t(79692),S=t(41156),p=t(2784),f=t(76921),l;(function(E){E.SIDEBAR_PIN_STATE="sidebarPinState"})(l||(l={}));const g={getSidebarPinState(){let E;try{E=JSON.parse(window.localStorage.getItem("sidebarPinState")||"true")}catch{return!0}return!!E},setSidebarPinState(E){return window.localStorage.setItem("sidebarPinState",JSON.stringify(E))}};var O=t(93539);const A=(0,d.Z)(E=>({root:{width:"100%",transition:"padding-left 0.1s ease-out",isolation:"isolate",[E.breakpoints.up("sm")]:{paddingLeft:I=>I.isPinned?I.sidebarConfig.drawerWidthOpen:I.sidebarConfig.drawerWidthClosed},[E.breakpoints.down("xs")]:{paddingBottom:I=>I.sidebarConfig.mobileSidebarHeight},"@media print":{padding:"0px !important"}},content:{zIndex:0,isolation:"isolate","&:focus":{outline:0}}}),{name:"BackstageSidebarPage"}),b=(0,p.createContext)({content:{contentRef:void 0}});function C(E){const[I,P]=(0,p.useState)(()=>g.getSidebarPinState()),{sidebarConfig:M}=(0,p.useContext)(f.kG),F=(0,p.useRef)(null),Z=(0,p.useMemo)(()=>({content:{contentRef:F}}),[F]);(0,p.useEffect)(()=>{g.setSidebarPinState(I)},[I]);const m=(0,S.Z)(J=>J.breakpoints.down("xs"),{noSsr:!0}),k=()=>P(!I),ot=A({isPinned:I,sidebarConfig:M});return(0,o.jsx)(O.lE,{value:{isPinned:I,toggleSidebarPinState:k,isMobile:m},children:(0,o.jsx)(b.Provider,{value:Z,children:(0,o.jsx)(i.Z,{className:ot.root,children:E.children})})})}function x(){const{content:E}=(0,p.useContext)(b);return{focusContent:(0,p.useCallback)(()=>{var P,M;E==null||(M=E.contentRef)===null||M===void 0||(P=M.current)===null||P===void 0||P.focus()},[E]),contentRef:E==null?void 0:E.contentRef}}},93539:function(Y,R,t){"use strict";t.d(R,{Pf:function(){return O},lE:function(){return g}});var o=t(52322),i=t(29651),d=t(68993),S=t(2784);const p={isPinned:!0,toggleSidebarPinState:()=>{},isMobile:!1},f=(0,S.createContext)(p),l=(0,i.CT)("sidebar-pin-state-context");function g(A){const{children:b,value:C}=A;return(0,o.jsx)(f.Provider,{value:C,children:(0,o.jsx)(l.Provider,{value:(0,d.E)({1:C}),children:b})})}const O=()=>{const A=(0,S.useContext)(l),b=(0,S.useContext)(f);if(A===void 0)return b||p;const C=A.atVersion(1);if(C===void 0)throw new Error("No context found for version 1.");return C}},76921:function(Y,R,t){"use strict";t.d(R,{$E:function(){return f},Ag:function(){return b},kG:function(){return A},po:function(){return p},rW:function(){return g}});var o=t(2784);const i=72,d=24,S=18,p={drawerWidthClosed:i,drawerWidthOpen:224,defaultOpenDelayMs:100,defaultCloseDelayMs:0,defaultFadeDuration:200,logoHeight:32,iconContainerWidth:i,iconSize:i-d*2,iconPadding:d,selectedIndicatorWidth:3,userBadgePadding:S,userBadgeDiameter:i-S*2,mobileSidebarHeight:56},f=C=>({...p,...C,iconContainerWidth:p.drawerWidthClosed,iconSize:p.drawerWidthClosed-p.iconPadding*2,userBadgeDiameter:p.drawerWidthClosed-p.userBadgePadding*2}),l={drawerWidthClosed:0,drawerWidthOpen:202,defaultOpenDelayMs:p.defaultOpenDelayMs+200},g=C=>({...l,...C}),O="@backstage/core/sidebar-intro-dismissed",A=(0,o.createContext)({sidebarConfig:p,submenuConfig:l}),b=(0,o.createContext)({isHoveredOn:!1,setIsHoveredOn:()=>{}})},72388:function(Y,R,t){"use strict";t.d(R,{Os:function(){return f},fC:function(){return l}});var o=t(52322),i=t(29651),d=t(68993),S=t(2784);const p=(0,i.CT)("analytics-context"),f=()=>{const O=(0,S.useContext)(p);if(O===void 0)return{routeRef:"unknown",pluginId:"root",extension:"App"};const A=O.atVersion(1);if(A===void 0)throw new Error("No context found for version 1.");return A},l=O=>{const{attributes:A,children:b}=O,x={...f(),...A},E=(0,d.E)({1:x});return(0,o.jsx)(p.Provider,{value:E,children:b})};function g(O,A){const b=C=>_jsx(l,{attributes:A,children:_jsx(O,{...C})});return b.displayName=`WithAnalyticsContext(${O.displayName||O.name||"Component"})`,b}},7355:function(Y,R,t){"use strict";t.d(R,{f:function(){return p},h:function(){return S}});var o=t(87612),i=t(96087);const d=(0,i.u)("core-plugin-api:analytics-tracker-events",()=>({mostRecentGatheredNavigation:void 0,mostRecentRoutableExtensionRender:void 0,beforeUnloadRegistered:!1})),S="_ROUTABLE-EXTENSION-RENDERED";class p{setContext(l){this.context=l}captureEvent(l,g,{value:O,attributes:A}={}){const{_routeNodeType:b,...C}=this.context;if(l===S){d.mostRecentGatheredNavigation&&(d.mostRecentRoutableExtensionRender={context:{...C,extension:"App"}});return}if(d.mostRecentGatheredNavigation){try{this.analyticsApi.captureEvent({...d.mostRecentGatheredNavigation,...d.mostRecentRoutableExtensionRender})}catch(x){console.warn("Error during analytics event capture. %o",x)}d.mostRecentGatheredNavigation=void 0,d.mostRecentRoutableExtensionRender=void 0}if(l==="navigate"&&b==="gathered"&&C.pluginId==="root"){d.mostRecentGatheredNavigation={action:l,subject:g,value:O,attributes:A,context:C};return}try{this.analyticsApi.captureEvent({action:l,subject:g,value:O,attributes:A,context:C})}catch(x){console.warn("Error during analytics event capture. %o",x)}}constructor(l,g={routeRef:"unknown",pluginId:"root",extension:"App"}){(0,o._)(this,"analyticsApi",void 0),(0,o._)(this,"context",void 0),this.analyticsApi=l,this.context=g,d.beforeUnloadRegistered||(addEventListener("beforeunload",()=>{d.mostRecentGatheredNavigation&&(this.analyticsApi.captureEvent({...d.mostRecentGatheredNavigation,...d.mostRecentRoutableExtensionRender}),d.mostRecentGatheredNavigation=void 0,d.mostRecentRoutableExtensionRender=void 0)},{once:!0,passive:!0}),d.beforeUnloadRegistered=!0)}}},62369:function(Y,R,t){"use strict";t.d(R,{z:function(){return l}});var o=t(72388),i=t(44394),d=t(86386),S=t(2784),p=t(7355);function f(){try{return(0,i.h_)(d.v)}catch{return{captureEvent:()=>{}}}}function l(){const g=(0,S.useRef)(null),O=(0,o.Os)(),A=f();function b(){return g.current===null&&(g.current=new p.f(A)),g.current}const C=b();return C.setContext(O),C}},78847:function(Y,R,t){"use strict";t.d(R,{$:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.alert"})},86386:function(Y,R,t){"use strict";t.d(R,{v:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.analytics"})},6542:function(Y,R,t){"use strict";t.d(R,{D:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.config"})},96727:function(Y,R,t){"use strict";t.d(R,{N:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.discovery"})},58513:function(Y,R,t){"use strict";t.d(R,{V:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.error"})},82723:function(Y,R,t){"use strict";t.d(R,{C:function(){return i},W:function(){return d}});var o=t(95965),i;(function(S){S[S.None=0]="None",S[S.Active=1]="Active"})(i||(i={}));const d=(0,o.T)({id:"core.featureflags"})},85094:function(Y,R,t){"use strict";t.d(R,{g:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.fetch"})},77186:function(Y,R,t){"use strict";t.d(R,{$:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.identity"})},96253:function(Y,R,t){"use strict";t.d(R,{o:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.translation"})},95965:function(Y,R,t){"use strict";t.d(R,{T:function(){return d}});var o=t(87612);class i{get id(){return this.config.id}get T(){throw new Error(`tried to read ApiRef.T of ${this}`)}toString(){return`apiRef{${this.config.id}}`}constructor(p){if((0,o._)(this,"config",void 0),this.config=p,!p.id.split(".").flatMap(l=>l.split("-")).every(l=>l.match(/^[a-z][a-z0-9]*$/)))throw new Error(`API id must only contain period separated lowercase alphanum tokens with dashes, got '${p.id}'`)}}function d(S){return new i(S)}},42380:function(Y,R,t){"use strict";t.d(R,{n:function(){return o}});function o(i,d){return"id"in i?{api:i,deps:{},factory:()=>d}:i}},44394:function(Y,R,t){"use strict";t.d(R,{I_:function(){return S},h_:function(){return p}});var o=t(52322),i=t(2784),d=t(29651);function S(){const l=(0,d.Vt)("api-context");if(!l)throw new Error("API context is not available");const g=l.atVersion(1);if(!g)throw new Error("ApiContext v1 not available");return g}function p(l){const O=S().get(l);if(!O)throw new Error(`No implementation available for ${l}`);return O}function f(l){return function(O){const A=C=>{const x=S(),E={};for(const I in l)if(l.hasOwnProperty(I)){const P=l[I],M=x.get(P);if(!M)throw new Error(`No implementation available for ${P}`);E[I]=M}return _jsx(O,{...C,...E})},b=O.displayName||O.name||"Component";return A.displayName=`withApis(${b})`,A}}},80851:function(Y,R,t){"use strict";t.d(R,{q:function(){return i}});var o=t(29651);const i=()=>{const d=(0,o.Vt)("app-context");if(!d)throw new Error("App context is not available");const S=d.atVersion(1);if(!S)throw new Error("AppContext v1 not available");return S}},62584:function(Y,R,t){"use strict";t.d(R,{I:function(){return p},R:function(){return S}});var o=t(96087);const i=(0,o.u)("component-data-store",()=>new WeakMap),d="__backstage_data";function S(f,l,g){const O=f;var A;let b=(A=O[d])!==null&&A!==void 0?A:i.get(f);if(b||(b={map:new Map},Object.defineProperty(O,d,{enumerable:!1,configurable:!0,writable:!1,value:b}),i.set(f,b)),b.map.has(l)){const C=f.displayName||f.name;throw new Error(`Attempted to attach duplicate data "${l}" to component "${C}"`)}b.map.set(l,g)}function p(f,l){if(!f)return;const g=f.type;if(!g)return;var O;const A=(O=g[d])!==null&&O!==void 0?O:i.get(g);if(A)return A.map.get(l)}},82963:function(Y,R,t){"use strict";t.d(R,{CO:function(){return C},YO:function(){return x},P4:function(){return b}});var o=t(52322),i=t(2784),d=t(62369),S=t(72388),p=t(80851),f=t(37321),l=t(62584),g=t(87612);class O extends i.Component{static getDerivedStateFromError(I){return{error:I}}render(){const{error:I}=this.state,{app:P,plugin:M}=this.props,{ErrorBoundaryFallback:F}=P.getComponents();return I?(0,o.jsx)(F,{error:I,resetError:this.handleErrorReset,plugin:M}):this.props.children}constructor(...I){super(...I),(0,g._)(this,"state",{error:void 0}),(0,g._)(this,"handleErrorReset",()=>{this.setState({error:void 0})})}}var A=t(7355);function b(E){const{component:I,mountPoint:P,name:M}=E;return x({component:{lazy:()=>I().then(F=>{const Z=k=>{const ot=(0,d.z)();try{(0,f.t)(P)}catch(J){if(typeof J=="object"&&J!==null){const{message:H}=J;if(typeof H=="string"&&H.startsWith("No path for "))throw new Error(`Routable extension component with mount point ${P} was not discovered in the app element tree. Routable extension components may not be rendered by other components and must be directly available as an element within the App provider component.`)}throw J}return(0,i.useEffect)(()=>{ot.captureEvent(A.h,"")},[ot]),(0,o.jsx)(F,{...k})},m=M||F.displayName||F.name||"LazyComponent";return Z.displayName=`RoutableExtension(${m})`,Z},F=>m=>{const k=(0,p.q)(),{BootErrorPage:ot}=k.getComponents();return(0,o.jsx)(ot,{step:"load-chunk",error:F})})},data:{"core.mountPoint":P},name:M})}function C(E){const{component:I,name:P}=E;return x({component:I,name:P})}function x(E){const{data:I={},name:P}=E;P||console.warn("Declaring extensions without name is DEPRECATED. Make sure that all usages of createReactExtension, createComponentExtension and createRoutableExtension provide a name.");let M;if("lazy"in E.component){const Z=E.component.lazy;M=(0,i.lazy)(()=>Z().then(m=>({default:m})))}else M=E.component.sync;const F=P||M.displayName||M.name||"Component";return{expose(Z){const m=k=>{const ot=(0,p.q)(),{Progress:J}=ot.getComponents(),H=I==null?void 0:I["core.mountPoint"];return(0,o.jsx)(i.Suspense,{fallback:(0,o.jsx)(J,{}),children:(0,o.jsx)(O,{app:ot,plugin:Z,children:(0,o.jsx)(S.fC,{attributes:{pluginId:Z.getId(),...P&&{extension:P},...H&&{routeRef:H.id}},children:(0,o.jsx)(M,{...k})})})})};(0,l.R)(m,"core.plugin",Z),(0,l.R)(m,"core.extensionName",P);for(const[k,ot]of Object.entries(I))(0,l.R)(m,k,ot);return m.displayName=`Extension(${F})`,m}}}},2532:function(Y,R,t){"use strict";t.d(R,{v:function(){return g}});var o=t(87612),i=t(2784),d=t(62584),S=t(44394),p=t(82723);function f(O,A,b,C){return i.Children.toArray(O).flatMap(x=>{if(!(0,i.isValidElement)(x))return[];if(x.type===i.Fragment)return f(x.props.children,A,b,C);if((0,d.I)(x,"core.featureFlagged")){const E=x.props;return("with"in E?A.isActive(E.with):!A.isActive(E.without))?f(x.props.children,A,b,C):[]}if(b===void 0||b(x))return[x];if(C)throw new Error(C);return f(x.props.children,A,b,C)})}class l{selectByComponentData(A){const b=f(this.node,this.featureFlagsApi,C=>(0,d.I)(C,A.key)!==void 0,A.withStrictError);return new l(b,this.featureFlagsApi)}findComponentData(A){return f(this.node,this.featureFlagsApi,C=>(0,d.I)(C,A.key)!==void 0).map(C=>(0,d.I)(C,A.key)).filter(C=>C!==void 0)}getElements(){return f(this.node,this.featureFlagsApi)}constructor(A,b){(0,o._)(this,"node",void 0),(0,o._)(this,"featureFlagsApi",void 0),this.node=A,this.featureFlagsApi=b}}function g(O,A,b=[]){const C=(0,S.h_)(p.W),x=new l(O,C);return(0,i.useMemo)(()=>A(x),[O,...b])}},15006:function(Y,R,t){"use strict";t.d(R,{r:function(){return d}});var o=t(87612);class i{getId(){return this.config.id}getApis(){var p;return(p=this.config.apis)!==null&&p!==void 0?p:[]}getFeatureFlags(){var p,f;return(f=(p=this.config.featureFlags)===null||p===void 0?void 0:p.slice())!==null&&f!==void 0?f:[]}get routes(){var p;return(p=this.config.routes)!==null&&p!==void 0?p:{}}get externalRoutes(){var p;return(p=this.config.externalRoutes)!==null&&p!==void 0?p:{}}provide(p){return p.expose(this)}toString(){return`plugin{${this.config.id}}`}constructor(p){(0,o._)(this,"config",void 0),this.config=p}}function d(S){return new i(S)}},30283:function(Y,R,t){"use strict";t.d(R,{N:function(){return f}});var o=t(87612),i=t(92918);let d=i.K,S=d;class p{get title(){return this.id}toString(){return`routeRef{type=absolute,id=${this.id}}`}constructor(g,O){(0,o._)(this,"id",void 0),(0,o._)(this,"params",void 0),(0,o._)(this,S,void 0),this.id=g,this.params=O,this[d]="absolute"}}function f(l){var g;return new p(l.id,(g=l.params)!==null&&g!==void 0?g:[])}},92918:function(Y,R,t){"use strict";t.d(R,{K:function(){return i}});var o=t(96087);const i=(0,o.u)("route-ref-type",()=>Symbol("route-ref-type"))},37321:function(Y,R,t){"use strict";t.d(R,{t:function(){return S}});var o=t(2784),i=t(73557),d=t(29651);function S(p){const{pathname:f}=(0,i.TH)(),l=(0,d.Vt)("routing-context");if(!l)throw new Error("Routing context is not available");const g=l.atVersion(1),O=(0,o.useMemo)(()=>g&&g.resolve(p,{pathname:f}),[g,p,f]);if(!l)throw new Error("useRouteRef used outside of routing context");if(!g)throw new Error("RoutingContext v1 not available");const A="optional"in p&&p.optional;if(!O&&!A)throw new Error(`No path for ${p}`);return O}},35304:function(Y,R,t){"use strict";t.d(R,{F:function(){return A},y:function(){return b}});var o=t(88412),i=t(52475),d=t(80956),S=t(87612),p=t(18015),f=new WeakMap,l=new WeakMap,g=new WeakMap;class O{get id(){return(0,o._)(this,f)}get T(){throw new Error("Not implemented")}getDefaultMessages(){return(0,o._)(this,l)}setDefaultResource(x){(0,d._)(this,g,x)}getDefaultResource(){return(0,o._)(this,g)}toString(){return`TranslationRef{id=${this.id}}`}constructor(x){(0,i._)(this,f,{writable:!0,value:void 0}),(0,i._)(this,l,{writable:!0,value:void 0}),(0,i._)(this,g,{writable:!0,value:void 0}),(0,S._)(this,"$$type","@backstage/TranslationRef"),(0,S._)(this,"version","v1"),(0,d._)(this,f,x.id),(0,d._)(this,l,x.messages)}}function A(C){const x=new O(C);return C.translations&&x.setDefaultResource((0,p.N)({ref:x,translations:C.translations})),x}function b(C){const x=C;if(x.$$type!=="@backstage/TranslationRef")throw new Error(`Invalid translation ref, bad type '${x.$$type}'`);if(x.version!=="v1")throw new Error(`Invalid translation ref, bad version '${x.version}'`);return x}},18015:function(Y,R,t){"use strict";t.d(R,{N:function(){return i},W:function(){return o}});function o(d){const S=d;if(S.$$type!=="@backstage/TranslationResource")throw new Error(`Invalid translation resource, bad type '${S.$$type}'`);if(S.version!=="v1")throw new Error(`Invalid translation resource, bad version '${S.version}'`);return S}function i(d){return{$$type:"@backstage/TranslationResource",version:"v1",id:d.ref.id,resources:Object.entries(d.translations).map(([S,p])=>({language:S,loader:()=>p().then(f=>{const l=f.default;return{messages:(l==null?void 0:l.$$type)==="@backstage/TranslationMessages"?l.messages:l}})}))}}},41385:function(Y,R,t){"use strict";t.d(R,{V:function(){return S}});var o=t(87612),i=t(48998);async function d(p){try{const l=await p.text();if(l){var f;if(!((f=p.headers.get("content-type"))===null||f===void 0)&&f.startsWith("application/json"))try{const g=JSON.parse(l);if(g.error&&g.response)return g}catch{}return{error:{name:"Error",message:`Request failed with status ${p.status} ${p.statusText}, ${l}`},response:{statusCode:p.status}}}}catch{}return{error:{name:"Error",message:`Request failed with status ${p.status} ${p.statusText}`},response:{statusCode:p.status}}}class S extends Error{static async fromResponse(f){const l=await d(f),g=l.response.statusCode||f.status,O=l.error.name||f.statusText,A=`Request failed with ${g} ${O}`,b=(0,i.Fq)(l.error);return new S({message:A,response:f,data:l,cause:b})}constructor(f){super(f.message),(0,o._)(this,"response",void 0),(0,o._)(this,"body",void 0),(0,o._)(this,"cause",void 0),this.name="ResponseError",this.response=f.response,this.body=f.data,this.cause=f.cause}}},30474:function(Y,R,t){"use strict";t.d(R,{V:function(){return o}});function o(d){if(typeof d!="object"||d===null||Array.isArray(d))return!1;const S=d;return!(typeof S.name!="string"||S.name===""||typeof S.message!="string")}function i(d){if(typeof d!="object"||d===null||Array.isArray(d))throw new Error(`Encountered invalid error, not an object, got '${d}'`);const S=d;if(typeof S.name!="string"||S.name==="")throw new Error(`Encountered error object without a name, got '${d}'`);if(typeof S.message!="string")throw new Error(`Encountered error object without a message, got '${d}'`)}},48998:function(Y,R,t){"use strict";t.d(R,{Fq:function(){return p},n:function(){return f}});var o=t(24852),i=t.n(o),d=t(30474);function S(l,g){const A={name:"Unknown",message:"<no reason given>",...serializeErrorInternal(l)};return g!=null&&g.includeStack||delete A.stack,A}function p(l){const g=(0,o.deserializeError)(l);return l.stack||(g.stack=void 0),g}function f(l){if((0,d.V)(l)){const g=String(l);return g!=="[object Object]"?g:`${l.name}: ${l.message}`}return`unknown error '${l}'`}},91657:function(Y,R,t){"use strict";t.d(R,{a:function(){return Be},q:function(){return Ue}});var o=t(87612),i=t(38264);const d="amazonaws.com";function S(L){const u=L.getOptionalString("endpoint");var D;const B=(D=L.getOptionalBoolean("s3ForcePathStyle"))!==null&&D!==void 0?D:!1;let et,dt;if(u){try{const Dt=new URL(u);et=Dt.host,dt=Dt.pathname}catch{throw new Error(`invalid awsS3 integration config, endpoint '${u}' is not a valid URL`)}if(dt!=="/")throw new Error(`invalid awsS3 integration config, endpoints cannot contain path, got '${u}'`)}else et=d;const yt=L.getOptionalString("accessKeyId"),Kt=L.getOptionalString("secretAccessKey"),kt=L.getOptionalString("roleArn"),jt=L.getOptionalString("externalId");return{host:et,endpoint:u,s3ForcePathStyle:B,accessKeyId:yt,secretAccessKey:Kt,roleArn:kt,externalId:jt}}function p(L){const u=L.map(S);return u.some(D=>D.host===d)||u.push({host:d}),u}class f{get type(){return"awsS3"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(u){return(0,i.FI)(u)}resolveEditUrl(u){return u}constructor(u){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=u}}(0,o._)(f,"factory",({config:L})=>{var u;const D=p((u=L.getOptionalConfigArray("integrations.awsS3"))!==null&&u!==void 0?u:[]);return(0,i.gz)(D.map(B=>new f(B)),B=>B.config.host)});var l=t(88412),g=t(52475),O=t(80956);const A="GB";var b=new WeakMap,C=new WeakMap,x=new WeakMap,E=new WeakMap,I=new WeakMap,P=new WeakMap,M=new WeakMap;class F{static fromRepoUrl(u){const D=new URL(u);let B,et,dt;const yt=D.pathname.split("/").map(re=>decodeURIComponent(re));if(yt[2]==="_git"?(B=yt[1],et=dt=yt[3]):yt[3]==="_git"?(B=yt[1],et=yt[2],dt=yt[4]):yt[4]==="_git"&&(B=`${yt[1]}/${yt[2]}`,et=yt[3],dt=yt[5]),!B||!et||!dt)throw new Error("Azure URL must point to a git repository");var Kt;const kt=(Kt=D.searchParams.get("path"))!==null&&Kt!==void 0?Kt:void 0;let jt;const Dt=D.searchParams.get("version");if(Dt){if(Dt.slice(0,2)!=="GB")throw new Error("Azure URL version must point to a git branch");jt=Dt.slice(2)}return new F(D.origin,B,et,dt,kt,jt)}toRepoUrl(){let u;return(0,l._)(this,x)===(0,l._)(this,E)?u=(0,l._)(this,M).call(this,(0,l._)(this,C),"_git",(0,l._)(this,E)):u=(0,l._)(this,M).call(this,(0,l._)(this,C),(0,l._)(this,x),"_git",(0,l._)(this,E)),(0,l._)(this,I)&&u.searchParams.set("path",(0,l._)(this,I)),(0,l._)(this,P)&&u.searchParams.set("version",A+(0,l._)(this,P)),u.toString()}toFileUrl(){if(!(0,l._)(this,I))throw new Error("Azure URL must point to a specific path to be able to download a file");const u=(0,l._)(this,M).call(this,(0,l._)(this,C),(0,l._)(this,x),"_apis","git","repositories",(0,l._)(this,E),"items");return u.searchParams.set("api-version","6.0"),u.searchParams.set("path",(0,l._)(this,I)),(0,l._)(this,P)&&u.searchParams.set("version",(0,l._)(this,P)),u.toString()}toArchiveUrl(){const u=(0,l._)(this,M).call(this,(0,l._)(this,C),(0,l._)(this,x),"_apis","git","repositories",(0,l._)(this,E),"items");return u.searchParams.set("recursionLevel","full"),u.searchParams.set("download","true"),u.searchParams.set("api-version","6.0"),(0,l._)(this,I)&&u.searchParams.set("scopePath",(0,l._)(this,I)),(0,l._)(this,P)&&u.searchParams.set("version",(0,l._)(this,P)),u.toString()}toCommitsUrl(){const u=(0,l._)(this,M).call(this,(0,l._)(this,C),(0,l._)(this,x),"_apis","git","repositories",(0,l._)(this,E),"commits");return u.searchParams.set("api-version","6.0"),(0,l._)(this,P)&&u.searchParams.set("searchCriteria.itemVersion.version",(0,l._)(this,P)),u.toString()}getOwner(){return(0,l._)(this,C)}getProject(){return(0,l._)(this,x)}getRepo(){return(0,l._)(this,E)}getPath(){return(0,l._)(this,I)}getRef(){return(0,l._)(this,P)}constructor(u,D,B,et,dt,yt){(0,g._)(this,b,{writable:!0,value:void 0}),(0,g._)(this,C,{writable:!0,value:void 0}),(0,g._)(this,x,{writable:!0,value:void 0}),(0,g._)(this,E,{writable:!0,value:void 0}),(0,g._)(this,I,{writable:!0,value:void 0}),(0,g._)(this,P,{writable:!0,value:void 0}),(0,g._)(this,M,{writable:!0,value:(...Kt)=>{const kt=new URL((0,l._)(this,b));return kt.pathname=Kt.map(jt=>encodeURIComponent(jt)).join("/"),kt}}),(0,O._)(this,b,u),(0,O._)(this,C,D),(0,O._)(this,x,B),(0,O._)(this,E,et),(0,O._)(this,I,dt),(0,O._)(this,P,yt)}}const Z="dev.azure.com",m=["clientId","clientSecret","tenantId","personalAccessToken"],k=new Map([["ClientSecret",["clientId","clientSecret","tenantId"]],["ManagedIdentity",["clientId"]],["PersonalAccessToken",["personalAccessToken"]]]);function ot(L){for(const u of k.entries()){const[D,B]=u,et=m.filter(dt=>!B.includes(dt));if(B.every(dt=>L[dt]!==void 0)&&et.every(dt=>L[dt]===void 0))return{kind:D,organizations:L.organizations,...B.reduce((dt,yt)=>(dt[yt]=L[yt],dt),{})}}throw new Error("is not a valid credential")}function J(L){var u,D;const B=(D=L.getOptionalString("host"))!==null&&D!==void 0?D:Z;let et=(u=L.getOptionalConfigArray("credentials"))===null||u===void 0?void 0:u.map(jt=>({organizations:jt.getOptionalStringArray("organizations"),personalAccessToken:jt.getOptionalString("personalAccessToken"),tenantId:jt.getOptionalString("tenantId"),clientId:jt.getOptionalString("clientId"),clientSecret:jt.getOptionalString("clientSecret")}));const dt=L.getOptionalString("token");if(L.getOptional("credential")!==void 0&&L.getOptional("credentials")!==void 0)throw new Error("Invalid Azure integration config, 'credential' and 'credentials' cannot be used together. Use 'credentials' instead.");if(L.getOptional("token")!==void 0&&L.getOptional("credentials")!==void 0)throw new Error("Invalid Azure integration config, 'token' and 'credentials' cannot be used together. Use 'credentials' instead.");if(dt!==void 0){const jt=[{personalAccessToken:dt}];var yt;et=(yt=et==null?void 0:et.concat(jt))!==null&&yt!==void 0?yt:jt}if(L.getOptional("credential")!==void 0){const jt=[{organizations:L.getOptionalStringArray("credential.organizations"),token:L.getOptionalString("credential.token"),tenantId:L.getOptionalString("credential.tenantId"),clientId:L.getOptionalString("credential.clientId"),clientSecret:L.getOptionalString("credential.clientSecret")}];var Kt;et=(Kt=et==null?void 0:et.concat(jt))!==null&&Kt!==void 0?Kt:jt}if(!(0,i.bK)(B))throw new Error(`Invalid Azure integration config, '${B}' is not a valid host`);let kt;if(et!==void 0){const jt=et==null?void 0:et.reduce((Dt,re,Pe)=>{let we;try{ot(re)}catch($e){we=$e.message}return we!==void 0&&Dt.push(`credential at position ${Pe+1} ${we}`),Dt},Array.of()).concat(Object.entries(et.filter(Dt=>Dt.organizations!==void 0&&Dt.organizations.length>0).reduce((Dt,re,Pe)=>{var we;return(we=re.organizations)===null||we===void 0||we.forEach($e=>{Dt[$e]||(Dt[$e]=[]),Dt[$e].push(Pe+1)}),Dt},{})).filter(([Dt,re])=>re.length>1).reduce((Dt,[re,Pe])=>(Dt.push(`organization ${re} is specified multiple times in credentials at positions ${Pe.slice(0,Pe.length-1).join(", ")} and ${Pe[Pe.length-1]}`),Dt),Array.of()));if((jt==null?void 0:jt.length)>0)throw new Error(`Invalid Azure integration config for ${B}: ${jt.join("; ")}`);if(kt=et.map(Dt=>ot(Dt)),kt.some(Dt=>Dt.kind!=="PersonalAccessToken")&&B!==Z)throw new Error(`Invalid Azure integration config for ${B}, only personal access tokens can be used with hosts other than ${Z}`);if(kt.filter(Dt=>Dt.organizations===void 0||Dt.organizations.length===0).length>1)throw new Error(`Invalid Azure integration config for ${B}, you cannot specify multiple credentials without organizations`)}return{host:B,credentials:kt}}function H(L){const u=L.map(J);return u.some(D=>D.host===Z)||u.push({host:Z}),u}class z{get type(){return"azure"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(u){const{url:D,base:B}=u;if((0,i.jv)(D))return D;try{const dt=F.fromRepoUrl(B),yt=new URL(B);var et;const Kt=new URL(`https://a.com${(et=dt.getPath())!==null&&et!==void 0?et:""}`),kt=new URL(D,Kt).pathname;return yt.searchParams.set("path",kt),u.lineNumber&&(yt.searchParams.set("line",String(u.lineNumber)),yt.searchParams.set("lineEnd",String(u.lineNumber+1)),yt.searchParams.set("lineStartColumn","1"),yt.searchParams.set("lineEndColumn","1")),yt.toString()}catch{return new URL(D,B).toString()}}resolveEditUrl(u){return u}constructor(u){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=u}}(0,o._)(z,"factory",({config:L})=>{var u;const D=H((u=L.getOptionalConfigArray("integrations.azure"))!==null&&u!==void 0?u:[]);return(0,i.gz)(D.map(B=>new z(B)),B=>B.config.host)});var G=t(82717),q=t.n(G);const rt="bitbucket.org",At="https://api.bitbucket.org/2.0";function xt(L){const u=rt,D=At,B=L.getString("username"),et=L.getString("appPassword");return{host:u,apiBaseUrl:D,username:B,appPassword:et}}function ut(L){const u=L.map(xt);return u.length===0&&u.push({host:rt,apiBaseUrl:At}),u}class bt{get type(){return"bitbucketCloud"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(u){const D=(0,i.FI)(u);if(u.lineNumber){const B=new URL(D);return B.hash=`lines-${u.lineNumber}`,B.toString()}return D}resolveEditUrl(u){const D=q()(u),B=new URL(u);return B.searchParams.set("mode","edit"),B.searchParams.set("at",D.ref),B.toString()}constructor(u){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=u}}(0,o._)(bt,"factory",({config:L})=>{var u;const D=ut((u=L.getOptionalConfigArray("integrations.bitbucketCloud"))!==null&&u!==void 0?u:[]);return(0,i.gz)(D.map(B=>new bt(B)),B=>B.config.host)});var Ct=t(76635);const Ot="bitbucket.org",nt="https://api.bitbucket.org/2.0";function U(L){var u;const D=(u=L.getOptionalString("host"))!==null&&u!==void 0?u:Ot;let B=L.getOptionalString("apiBaseUrl");const et=L.getOptionalString("token"),dt=L.getOptionalString("username"),yt=L.getOptionalString("appPassword");if(!(0,i.bK)(D))throw new Error(`Invalid Bitbucket integration config, '${D}' is not a valid host`);return B?B=(0,Ct.trimEnd)(B,"/"):D===Ot?B=nt:B=`https://${D}/rest/api/1.0`,{host:D,apiBaseUrl:B,token:et,username:dt,appPassword:yt}}function _(L){const u=L.map(U);return u.some(D=>D.host===Ot)||u.push({host:Ot,apiBaseUrl:nt}),u}class tt{get type(){return"bitbucket"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(u){const D=(0,i.FI)(u);if(!u.lineNumber)return D;const B=new URL(D);return this.integrationConfig.host==="bitbucket.org"?B.hash=`lines-${u.lineNumber}`:B.hash=`${u.lineNumber}`,B.toString()}resolveEditUrl(u){const D=q()(u),B=new URL(u);return B.searchParams.set("mode","edit"),B.searchParams.set("spa","0"),B.searchParams.set("at",D.ref),B.toString()}constructor(u){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=u}}(0,o._)(tt,"factory",({config:L})=>{var u,D,B;const et=_((B=L.getOptionalConfigArray("integrations.bitbucket"))!==null&&B!==void 0?B:[...(u=L.getOptionalConfigArray("integrations.bitbucketCloud"))!==null&&u!==void 0?u:[],...(D=L.getOptionalConfigArray("integrations.bitbucketServer"))!==null&&D!==void 0?D:[]]);return(0,i.gz)(et.map(dt=>new tt(dt)),dt=>dt.config.host)});function at(L){const u=L.getString("host");let D=L.getOptionalString("apiBaseUrl");const B=L.getOptionalString("token"),et=L.getOptionalString("username"),dt=L.getOptionalString("password");if(!(0,i.bK)(u))throw new Error(`Invalid Bitbucket Server integration config, '${u}' is not a valid host`);return D?D=(0,Ct.trimEnd)(D,"/"):D=`https://${u}/rest/api/1.0`,{host:u,apiBaseUrl:D,token:B,username:et,password:dt}}function ct(L){return L.map(at)}class N{get type(){return"bitbucketServer"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(u){const D=(0,i.FI)(u);if(u.lineNumber){const B=new URL(D);return B.hash=u.lineNumber.toString(),B.toString()}return D}resolveEditUrl(u){return u.includes("?")?u.substring(0,u.indexOf("?")):u}constructor(u){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=u}}(0,o._)(N,"factory",({config:L})=>{var u;const D=ct((u=L.getOptionalConfigArray("integrations.bitbucketServer"))!==null&&u!==void 0?u:[]);return(0,i.gz)(D.map(B=>new N(B)),B=>B.config.host)});function K(L){const u=L.getString("host");let D=L.getOptionalString("baseUrl"),B=L.getOptionalString("cloneUrl"),et=L.getOptionalString("gitilesBaseUrl");const dt=L.getOptionalString("username"),yt=L.getOptionalString("password");if((0,i.bK)(u)){if(D&&!(0,i.jv)(D))throw new Error(`Invalid Gerrit integration config, '${D}' is not a valid baseUrl`);if(B&&!(0,i.jv)(B))throw new Error(`Invalid Gerrit integration config, '${B}' is not a valid cloneUrl`);if(et&&!(0,i.jv)(et))throw new Error(`Invalid Gerrit integration config, '${et}' is not a valid gitilesBaseUrl`)}else throw new Error(`Invalid Gerrit integration config, '${u}' is not a valid host`);return D?D=(0,Ct.trimEnd)(D,"/"):D=`https://${u}`,et?et=(0,Ct.trimEnd)(et,"/"):et=`https://${u}`,B?B=(0,Ct.trimEnd)(B,"/"):B=D,{host:u,baseUrl:D,cloneUrl:B,gitilesBaseUrl:et,username:dt,password:yt}}function pt(L){return L.map(K)}var Et=t(48834).lW;const ht=")]}'";function ft(L,u){const D=new URL(L.gitilesBaseUrl),B=new URL(u),dt=B.pathname.substring(B.pathname.startsWith("/a/")?2:0).replace(D.pathname,"").split("/").filter(re=>!!re),yt=dt.indexOf("+");if(yt<=0)throw new Error(`Unable to parse project from url: ${u}`);const Kt=(0,Ct.trimStart)(dt.slice(0,yt).join("/"),"/"),kt=dt.indexOf("heads");if(kt<=0)throw new Error(`Unable to parse branch from url: ${u}`);const jt=dt[kt+1],Dt=dt.slice(kt+2).join("/");return{branch:jt,filePath:Dt===""?"/":Dt,project:Kt}}function lt(L,u,D,B){return`${L.gitilesBaseUrl}/${u}/+/refs/heads/${D}/${(0,Ct.trimStart)(B,"/")}`}function Rt(L,u,D,B){const et=B==="/"||B===""?".tar.gz":`/${B}.tar.gz`;return`${It(L)}/${u}/+archive/refs/heads/${D}${et}`}function Tt(L){return L.password?"/a/":"/"}function It(L){if(!L.baseUrl||!L.gitilesBaseUrl)throw new Error("Unexpected Gerrit config values. baseUrl or gitilesBaseUrl not set.");if(L.gitilesBaseUrl.startsWith(L.baseUrl))return L.gitilesBaseUrl.replace(L.baseUrl.concat("/"),L.baseUrl.concat(Tt(L)));if(L.password)throw new Error("Since the baseUrl (Gerrit) is not part of the gitilesBaseUrl, an authentication URL could not be constructed.");return L.gitilesBaseUrl}function Wt(L,u){const{branch:D,project:B}=ft(L,u);return`${L.baseUrl}${Tt(L)}projects/${encodeURIComponent(B)}/branches/${D}`}function Yt(L,u){const{project:D}=ft(L,u);return`${L.cloneUrl}${Tt(L)}${D}`}function he(L,u){const{branch:D,filePath:B,project:et}=ft(L,u);return`${L.baseUrl}${Tt(L)}projects/${encodeURIComponent(et)}/branches/${D}/files/${encodeURIComponent(B)}/content`}function Zt(L){return`${L.baseUrl}${Tt(L)}projects/`}function Ft(L){const u={};if(!L.password)return u;const D=Et.from(`${L.username}:${L.password}`,"utf8");return u.Authorization=`Basic ${D.toString("base64")}`,{headers:u}}async function Gt(L){const u=await L.text();if(u.startsWith(ht))try{return JSON.parse(u.slice(ht.length))}catch(D){throw new Error(`Invalid response from Gerrit: ${u.slice(0,10)} - ${D}`)}throw new Error(`Gerrit JSON body prefix missing. Found: ${u.slice(0,10)}`)}class oe{get type(){return"gerrit"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(u){const{url:D,base:B,lineNumber:et}=u;let dt;if(D.startsWith("/")){const{branch:yt,project:Kt}=ft(this.config,B);return lt(this.config,Kt,yt,D)}return D?dt=new URL(D,B):dt=new URL(B),et&&(dt.hash=et.toString()),dt.toString()}resolveEditUrl(u){return u}constructor(u){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=u}}(0,o._)(oe,"factory",({config:L})=>{var u;const D=pt((u=L.getOptionalConfigArray("integrations.gerrit"))!==null&&u!==void 0?u:[]);return(0,i.gz)(D.map(B=>new oe(B)),B=>B.config.host)});var Se=t(61800);const Oe="gitlab.com",Le="https://gitlab.com/api/v4";function _e(L){const u=L.getString("host");let D=L.getOptionalString("apiBaseUrl");const B=L.getOptionalString("token");let et=L.getOptionalString("baseUrl");if(D?D=(0,Ct.trimEnd)(D,"/"):u===Oe&&(D=Le),et?et=(0,Ct.trimEnd)(et,"/"):et=`https://${u}`,(0,i.bK)(u)){if(!D||!(0,i.jv)(D))throw new Error(`Invalid GitLab integration config, '${D}' is not a valid apiBaseUrl`);if(!(0,i.jv)(et))throw new Error(`Invalid GitLab integration config, '${et}' is not a valid baseUrl`)}else throw new Error(`Invalid GitLab integration config, '${u}' is not a valid host`);return{host:u,token:B,apiBaseUrl:D,baseUrl:et}}function Ye(L){const u=L.map(_e);return u.some(D=>D.host===Oe)||u.push({host:Oe,apiBaseUrl:Le,baseUrl:`https://${Oe}`}),u}function ze(L){let u="";return L.host!==Oe&&(u=new URL(L.baseUrl).pathname),trimEnd(u,"/")}class fe{get type(){return"gitlab"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(u){return(0,i.FI)(u)}resolveEditUrl(u){return Qe(u,"edit")}constructor(u){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=u}}(0,o._)(fe,"factory",({config:L})=>{var u;const D=Ye((u=L.getOptionalConfigArray("integrations.gitlab"))!==null&&u!==void 0?u:[]);return(0,i.gz)(D.map(B=>new fe(B)),B=>B.config.host)});function Qe(L,u){return L.replace(/\/\-\/(blob|tree|edit)\//,`/-/${u}/`)}function Ie(L){const u=L.getString("host");let D=L.getOptionalString("baseUrl");const B=L.getOptionalString("username"),et=L.getOptionalString("password");if(!(0,i.bK)(u))throw new Error(`Invalid Gitea integration config, '${u}' is not a valid host`);return D?D=(0,Ct.trimEnd)(D,"/"):D=`https://${u}`,{host:u,baseUrl:D,username:B,password:et}}var He=t(48834).lW;function ee(L,u){try{var D;const B=(D=L.baseUrl)!==null&&D!==void 0?D:`https://${L.host}`,[et,dt,yt,Kt,kt,jt,...Dt]=u.replace(B,"").split("/"),re=Dt.join("/").replace(/^\//,"");return`${B}/${dt}/${yt}/_edit/${jt}/${re}`}catch(B){throw new Error(`Incorrect URL: ${u}, ${B}`)}}function Je(L,u){try{var D;const B=(D=L.baseUrl)!==null&&D!==void 0?D:`https://${L.host}`,[et,dt,yt,Kt,kt,jt,...Dt]=u.replace(B,"").split("/"),re=Dt.join("/").replace(/^\//,"");return`${B}/api/v1/repos/${dt}/${yt}/contents/${re}?ref=${jt}`}catch(B){throw new Error(`Incorrect URL: ${u}, ${B}`)}}function be(L){const u={},{username:D,password:B}=L;return B?(D?u.Authorization=`basic ${He.from(`${D}:${B}`).toString("base64")}`:u.Authorization=`token ${B}`,{headers:u}):u}class je{get type(){return"gitea"}get title(){return this.config.host}resolveUrl(u){return(0,i.FI)(u)}resolveEditUrl(u){return ee(this.config,u)}constructor(u){(0,o._)(this,"config",void 0),this.config=u}}(0,o._)(je,"factory",({config:L})=>{var u;const B=((u=L.getOptionalConfigArray("integrations.gitea"))!==null&&u!==void 0?u:[]).map(et=>Ie(et));return(0,i.gz)(B.map(et=>new je(et)),et=>et.config.host)});class De{static fromConfig(u){return new De({awsS3:f.factory({config:u}),azure:z.factory({config:u}),bitbucket:tt.factory({config:u}),bitbucketCloud:bt.factory({config:u}),bitbucketServer:N.factory({config:u}),gerrit:oe.factory({config:u}),github:Se.X.factory({config:u}),gitlab:fe.factory({config:u}),gitea:je.factory({config:u})})}get awsS3(){return this.byType.awsS3}get azure(){return this.byType.azure}get bitbucket(){return this.byType.bitbucket}get bitbucketCloud(){return this.byType.bitbucketCloud}get bitbucketServer(){return this.byType.bitbucketServer}get gerrit(){return this.byType.gerrit}get github(){return this.byType.github}get gitlab(){return this.byType.gitlab}get gitea(){return this.byType.gitea}list(){return Object.values(this.byType).flatMap(u=>u.list())}byUrl(u){let D=Object.values(this.byType).map(B=>B.byUrl(u)).filter(Boolean);if(D.length>1){const B=D.filter(et=>!(et instanceof tt));B.length!==0&&(D=B)}return D[0]}byHost(u){return Object.values(this.byType).map(D=>D.byHost(u)).find(Boolean)}resolveUrl(u){const D=this.byUrl(u.base);return D?D.resolveUrl(u):(0,i.FI)(u)}resolveEditUrl(u){const D=this.byUrl(u);return D?D.resolveEditUrl(u):u}constructor(u){(0,o._)(this,"byType",void 0),this.byType=u}}var ae=t(95965);class Be{static fromConfig(u){return De.fromConfig(u)}}const Ue=(0,ae.T)({id:"integration.scmintegrations"})},61800:function(Y,R,t){"use strict";t.d(R,{X:function(){return O},B:function(){return A}});var o=t(87612),i=t(38264),d=t(76635);const S="github.com",p="https://api.github.com",f="https://raw.githubusercontent.com";function l(b){var C,x;const E=(x=b.getOptionalString("host"))!==null&&x!==void 0?x:S;let I=b.getOptionalString("apiBaseUrl"),P=b.getOptionalString("rawBaseUrl");const M=b.getOptionalString("token"),F=(C=b.getOptionalConfigArray("apps"))===null||C===void 0?void 0:C.map(Z=>({appId:Z.getNumber("appId"),clientId:Z.getString("clientId"),clientSecret:Z.getString("clientSecret"),webhookSecret:Z.getString("webhookSecret"),privateKey:Z.getString("privateKey"),allowedInstallationOwners:Z.getOptionalStringArray("allowedInstallationOwners")}));if(!(0,i.bK)(E))throw new Error(`Invalid GitHub integration config, '${E}' is not a valid host`);return I?I=(0,d.trimEnd)(I,"/"):E===S&&(I=p),P?P=(0,d.trimEnd)(P,"/"):E===S&&(P=f),{host:E,apiBaseUrl:I,rawBaseUrl:P,token:M,apps:F}}function g(b){const C=b.map(l);return C.some(x=>x.host===S)||C.push({host:S,apiBaseUrl:p,rawBaseUrl:f}),C}class O{get type(){return"github"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(C){return A((0,i.FI)(C),"tree")}resolveEditUrl(C){return A(C,"edit")}constructor(C){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=C}}(0,o._)(O,"factory",({config:b})=>{var C;const x=g((C=b.getOptionalConfigArray("integrations.github"))!==null&&C!==void 0?C:[]);return(0,i.gz)(x.map(E=>new O(E)),E=>E.config.host)});function A(b,C){return b.replace(/\/\/([^/]+)\/([^/]+)\/([^/]+)\/(blob|tree|edit)\//,(x,E,I,P)=>`//${E}/${I}/${P}/${C}/`)}},38264:function(Y,R,t){"use strict";t.d(R,{FI:function(){return g},bK:function(){return p},gz:function(){return l},jv:function(){return f}});var o=t(82717),i=t.n(o),d=t(76635),S=t.n(d);function p(A){const b=new URL("http://example.com");return b.host=A,b.host===A}function f(A){try{return new URL(A),!0}catch{return!1}}function l(A,b){return{list(){return A},byUrl(C){try{const x=typeof C=="string"?new URL(C):C;return A.find(E=>b(E)===x.host)}catch{return}},byHost(C){return A.find(x=>b(x)===C)}}}function g(A){const{url:b,base:C,lineNumber:x}=A;try{return new URL(b),b}catch{}let E;if(b.startsWith("/")){const{filepath:I}=i()(C);E=new URL(C);const P=(0,d.trimEnd)(E.pathname.substring(0,E.pathname.length-I.length),"/");E.pathname=`${P}${b}`}else E=new URL(b,C);return E.search=new URL(C).search,x&&(E.hash=`L${x}`),E.toString()}function O(A){beforeAll(()=>A.listen({onUnhandledRequest:"error"})),afterAll(()=>A.close()),afterEach(()=>A.resetHandlers())}},81025:function(Y,R,t){"use strict";var o={};t.r(o),t.d(o,{TechDocsPlugin:function(){return f.s4}});var i=t(52322),d=t(2784),S=t(28316),p=t(73557),f=t(4577),l=t(29895),g=t(2296),O=t(57058),A=t(77277),b=t(87435),C=t(74359),x=t(55015),E=t(71597);function I({children:r}){return(0,p.GV)()?(0,i.jsx)(i.Fragment,{children:r}):(0,i.jsx)(p.VA,{children:r})}const P=()=>(0,i.jsx)(b.m,{status:"404",statusMessage:"PAGE NOT FOUND"}),M=({step:r,error:e})=>{let n="";return r==="load-config"?n=`The configuration failed to load, someone should have a look at this error: ${e.message}`:r==="load-chunk"&&(n=`Lazy loaded chunk failed to load, try to reload the page: ${e.message}`),(0,i.jsx)(I,{children:(0,i.jsx)(b.m,{status:"501",statusMessage:n})})},F=({error:r,resetError:e,plugin:n})=>(0,i.jsx)(C.y,{title:`Error in ${n==null?void 0:n.getId()}`,defaultExpanded:!0,error:r,children:(0,i.jsx)(A.Z,{variant:"outlined",onClick:e,children:"Retry"})}),Z={Progress:x.E,Router:E.VK,NotFoundErrorPage:P,BootErrorPage:M,ErrorBoundaryFallback:F};var m=t(87612);const k="Invalid discovery URL pattern,";class ot{static compile(e){const n=e.split(/\{\{\s*pluginId\s*\}\}/),s=n.join("pluginId");let a;try{a=new URL(s)}catch{throw new Error(`${k} URL '${s}' is invalid`)}if(a.hash)throw new Error(`${k} URL must not have a hash`);if(a.search)throw new Error(`${k} URL must not have a query`);if(s.endsWith("/"))throw new Error(`${k} URL must not end with a slash`);return new ot(n)}async getBaseUrl(e){return this.parts.join(encodeURIComponent(e))}constructor(e){(0,m._)(this,"parts",void 0),this.parts=e}}var J=t(82394),H=t.n(J);let z=Symbol.observable;class G{[z](){return this}get closed(){return this.isClosed}next(e){if(this.isClosed)throw new Error("PublishSubject is closed");this.subscribers.forEach(n=>n.next(e))}error(e){if(this.isClosed)throw new Error("PublishSubject is closed");this.isClosed=!0,this.terminatingError=e,this.subscribers.forEach(n=>n.error(e))}complete(){if(this.isClosed)throw new Error("PublishSubject is closed");this.isClosed=!0,this.subscribers.forEach(e=>e.complete())}subscribe(e,n,s){const a=typeof e=="function"?{next:e,error:n,complete:s}:e;return this.observable.subscribe(a)}constructor(){(0,m._)(this,"isClosed",!1),(0,m._)(this,"terminatingError",void 0),(0,m._)(this,"observable",new(H())(e=>this.isClosed?(this.terminatingError?e.error(this.terminatingError):e.complete(),()=>{}):(this.subscribers.add(e),()=>{this.subscribers.delete(e)}))),(0,m._)(this,"subscribers",new Set)}}let q=Symbol.observable;class rt{[q](){return this}get closed(){return this.isClosed}next(e){if(this.isClosed)throw new Error("BehaviorSubject is closed");this.currentValue=e,this.subscribers.forEach(n=>n.next(e))}error(e){if(this.isClosed)throw new Error("BehaviorSubject is closed");this.isClosed=!0,this.terminatingError=e,this.subscribers.forEach(n=>n.error(e))}complete(){if(this.isClosed)throw new Error("BehaviorSubject is closed");this.isClosed=!0,this.subscribers.forEach(e=>e.complete())}subscribe(e,n,s){const a=typeof e=="function"?{next:e,error:n,complete:s}:e;return this.observable.subscribe(a)}constructor(e){(0,m._)(this,"isClosed",void 0),(0,m._)(this,"currentValue",void 0),(0,m._)(this,"terminatingError",void 0),(0,m._)(this,"observable",void 0),(0,m._)(this,"subscribers",new Set),this.isClosed=!1,this.currentValue=e,this.terminatingError=void 0,this.observable=new(H())(n=>this.isClosed?(this.terminatingError?n.error(this.terminatingError):n.complete(),()=>{}):(n.next(this.currentValue),this.subscribers.add(n),()=>{this.subscribers.delete(n)}))}}class At{post(e){this.subject.next(e)}alert$(){return this.subject}constructor(){(0,m._)(this,"subject",new G)}}class xt{captureEvent(e){}}class ut{post(e,n){return n!=null&&n.hidden||this.alertApi.post({message:e.message,severity:"error"}),this.errorApi.post(e,n)}error$(){return this.errorApi.error$()}constructor(e,n){(0,m._)(this,"alertApi",void 0),(0,m._)(this,"errorApi",void 0),this.alertApi=e,this.errorApi=n}}class bt{post(e,n){this.subject.next({error:e,context:n})}error$(){return this.subject}constructor(){(0,m._)(this,"subject",new G)}}class Ct{static forward(e,n){window.addEventListener("unhandledrejection",s=>{e.post(s.reason,n)})}}const Ot=new Map;class nt{static create(e){var n;return new nt((n=e.namespace)!==null&&n!==void 0?n:"",e.errorApi)}static addStorageEventListener(){window.addEventListener("storage",e=>{for(const[s,a]of Ot.entries()){var n;!((n=e.key)===null||n===void 0)&&n.startsWith(s)&&a.handleStorageChange(e.key)}})}get(e){return this.snapshot(e).value}snapshot(e){let n,s="absent";try{const a=localStorage.getItem(this.getKeyName(e));a&&(n=JSON.parse(a,(c,y)=>(typeof y=="object"&&y!==null&&Object.freeze(y),y)),s="present")}catch{this.errorApi.post(new Error(`Error when parsing JSON config from storage for: ${e}`))}return{key:e,value:n,presence:s}}forBucket(e){const n=`${this.namespace}/${e}`;return Ot.has(n)||Ot.set(n,new nt(n,this.errorApi)),Ot.get(n)}async set(e,n){localStorage.setItem(this.getKeyName(e),JSON.stringify(n)),this.notifyChanges(e)}async remove(e){localStorage.removeItem(this.getKeyName(e)),this.notifyChanges(e)}observe$(e){return nt.hasSubscribed||(nt.addStorageEventListener(),nt.hasSubscribed=!0),this.observable.filter(({key:n})=>n===e)}handleStorageChange(e){if(!(e!=null&&e.startsWith(this.namespace)))return;const n=e==null?void 0:e.slice(`${this.namespace}/`.length);n.includes("/")||this.notifyChanges(decodeURIComponent(n))}getKeyName(e){return`${this.namespace}/${encodeURIComponent(e)}`}notifyChanges(e){const n=this.snapshot(e);for(const s of this.subscribers)s.next(n)}constructor(e,n){(0,m._)(this,"namespace",void 0),(0,m._)(this,"errorApi",void 0),(0,m._)(this,"subscribers",void 0),(0,m._)(this,"observable",void 0),this.namespace=e,this.errorApi=n,this.subscribers=new Set,this.observable=new(H())(s=>(this.subscribers.add(s),()=>{this.subscribers.delete(s)}))}}(0,m._)(nt,"hasSubscribed",!1);function U(r){let e=r.baseImplementation||t.g.fetch;var n;const s=[(n=r.middleware)!==null&&n!==void 0?n:[]].flat().reverse();for(const a of s)e=a.apply(e);return{fetch:e}}class _{static create(e){var n,s;const a=tt(e),c=((n=e.header)===null||n===void 0?void 0:n.name)||"authorization",y=((s=e.header)===null||s===void 0?void 0:s.value)||(v=>`Bearer ${v}`);return new _(e.identityApi,a,c,y)}apply(e){return async(n,s)=>{const a=new Request(n,s),{token:c}=await this.identityApi.getCredentials();return a.headers.get(this.headerName)||typeof c!="string"||!c||!this.allowUrl(a.url)?e(n,s):(a.headers.set(this.headerName,this.headerValue(c)),e(a))}}constructor(e,n,s,a){(0,m._)(this,"identityApi",void 0),(0,m._)(this,"allowUrl",void 0),(0,m._)(this,"headerName",void 0),(0,m._)(this,"headerValue",void 0),this.identityApi=e,this.allowUrl=n,this.headerName=s,this.headerValue=a}}function tt(r){return r.allowUrl?r.allowUrl:r.urlPrefixAllowlist?at(r.urlPrefixAllowlist):r.config?at([r.config.getString("backend.baseUrl")]):()=>!1}function at(r){const e=r.map(n=>n.replace(/\/$/,""));return n=>e.some(s=>n===s||n.startsWith(`${s}/`))}function ct(r,e){return!e||e==="/"?r:`${r.replace(/\/$/,"")}/${e.replace(/^\//,"")}`}class N{apply(e){return async(n,s)=>{const a=new Request(n,s),c="plugin://";if(!a.url.startsWith(c))return e(n,s);const{hostname:y,pathname:v,search:w,hash:W,username:X,password:it}=new URL(`http://${a.url.substring(c.length)}`);let vt=await this.discoveryApi.getBaseUrl(y);if(X||it){const mt=new URL(vt),$t=`${X}${it?`:${it}`:""}@`;vt=`${mt.protocol}//${$t}${mt.host}${mt.pathname}`}const gt=`${ct(vt,v)}${w}${W}`;return e(gt,typeof n=="string"||K(n)?s:n)}}constructor(e){(0,m._)(this,"discoveryApi",void 0),this.discoveryApi=e}}function K(r){return typeof r=="object"&&(r==null?void 0:r.constructor)===URL}class pt{static resolvePluginProtocol(e){return new N(e.discoveryApi)}static injectIdentityAuth(e){return _.create(e)}constructor(){}}function Et(r,e){for(const n of e)if(!r.has(n))return!1;return!0}function ht(r,...e){const n=new Set(r);for(const s of e)for(const a of s)n.add(a);return n}class ft{request(e){return new Promise((n,s)=>{this.requests.push({scopes:e,resolve:n,reject:s}),this.subject.next(this.getCurrentPending())})}resolve(e,n){this.requests=this.requests.filter(s=>Et(e,s.scopes)?(s.resolve(n),!1):!0),this.subject.next(this.getCurrentPending())}reject(e){this.requests.forEach(n=>n.reject(e)),this.requests=[],this.subject.next(this.getCurrentPending())}pending(){return this.subject}getCurrentPending(){const e=this.requests.length===0?void 0:this.requests.slice(1).reduce((n,s)=>ht(n,s.scopes),this.requests[0].scopes);return{scopes:e,resolve:n=>{e&&this.resolve(e,n)},reject:n=>{e&&this.reject(n)}}}constructor(){(0,m._)(this,"requests",[]),(0,m._)(this,"subject",new rt(this.getCurrentPending()))}}class lt{createAuthRequester(e){const n=new ft,s=this.handlerCount;return this.handlerCount++,n.pending().subscribe({next:a=>{const c=this.currentRequests.slice(),y=this.makeAuthRequest(a,e);y?c[s]=y:delete c[s],this.currentRequests=c,this.subject.next(c.filter(Boolean))}}),a=>n.request(a)}makeAuthRequest(e,n){const{scopes:s}=e;if(s)return{provider:n.provider,trigger:async()=>{const a=await n.onAuthRequest(s);e.resolve(a)},reject:()=>{const a=new Error("Login failed, rejected by user");a.name="RejectedError",e.reject(a)}}}authRequest$(){return this.subject}constructor(){(0,m._)(this,"subject",new rt([])),(0,m._)(this,"currentRequests",[]),(0,m._)(this,"handlerCount",0)}}function Rt(r){return new Promise((e,n)=>{const s=r.width||500,a=r.height||700,c=window.screen.width/2-s/2,y=window.screen.height/2-a/2,v=window.open(r.url,r.name,`menubar=no,location=no,resizable=no,scrollbars=no,status=no,width=${s},height=${a},top=${y},left=${c}`);let w="";if(!v||typeof v.closed=="undefined"||v.closed){const vt=new Error("Failed to open auth popup.");vt.name="PopupRejectedError",n(vt);return}const W=vt=>{if(vt.source!==v||vt.origin!==r.origin)return;const{data:gt}=vt;if(gt.type==="config_info"){w=gt.targetOrigin;return}if(gt.type!=="authorization_response")return;const mt=gt;if("error"in mt){const $t=new Error(mt.error.message);$t.name=mt.error.name,n($t)}else e(mt.response);it()},X=setInterval(()=>{if(v.closed){const vt=`Login failed, ${w&&w!==window.location.origin?`Incorrect app origin, expected ${w}`:"popup was closed"}`,gt=new Error(vt);gt.name="PopupClosedError",n(gt),it()}},100);function it(){window.removeEventListener("message",W),clearInterval(X)}window.addEventListener("message",W)})}let Tt=!1;function It(r){return[...r].join(" ")}class Wt{async createSession(e){return e.instantPopup?this.enableExperimentalRedirectFlow?this.executeRedirect(e.scopes):this.showPopup(e.scopes):this.authRequester(e.scopes)}async refreshSession(e){const n=await fetch(await this.buildUrl("/refresh",{optional:!0,...e&&{scope:this.joinScopesFunc(e)}}),{headers:{"x-requested-with":"XMLHttpRequest"},credentials:"include"}).catch(a=>{throw new Error(`Auth refresh request failed, ${a}`)});if(!n.ok){const a=new Error(`Auth refresh request failed, ${n.statusText}`);throw a.status=n.status,a}const s=await n.json();if(s.error){const a=new Error(s.error.message);throw s.error.name&&(a.name=s.error.name),a}return await this.sessionTransform(s)}async removeSession(){const e=await fetch(await this.buildUrl("/logout"),{method:"POST",headers:{"x-requested-with":"XMLHttpRequest"},credentials:"include"}).catch(n=>{throw new Error(`Logout request failed, ${n}`)});if(!e.ok){const n=new Error(`Logout request failed, ${e.statusText}`);throw n.status=e.status,n}}async showPopup(e){var n,s,a,c,y,v,w,W;const X=this.joinScopesFunc(e),it=await this.buildUrl("/start",{scope:X,origin:window.location.origin,flow:"popup"}),vt=!((s=this.popupOptions)===null||s===void 0||(n=s.size)===null||n===void 0)&&n.fullscreen?window.screen.width:((c=this.popupOptions)===null||c===void 0||(a=c.size)===null||a===void 0?void 0:a.width)||450,gt=!((v=this.popupOptions)===null||v===void 0||(y=v.size)===null||y===void 0)&&y.fullscreen?window.screen.height:((W=this.popupOptions)===null||W===void 0||(w=W.size)===null||w===void 0?void 0:w.height)||730,mt=await Rt({url:it,name:`${this.provider.title} Login`,origin:new URL(it).origin,width:vt,height:gt});return await this.sessionTransform(mt)}async executeRedirect(e){const n=this.joinScopesFunc(e);return window.location.href=await this.buildUrl("/start",{scope:n,origin:window.location.origin,redirectUrl:window.location.href,flow:"redirect"}),new Promise(()=>{})}async buildUrl(e,n){const s=await this.discoveryApi.getBaseUrl("auth"),a=this.buildQueryString({...n,env:this.environment});return`${s}/${this.provider.id}${e}${a}`}buildQueryString(e){if(!e)return"";const n=Object.entries(e).map(([s,a])=>{if(typeof a=="string")return`${encodeURIComponent(s)}=${encodeURIComponent(a)}`;if(a)return encodeURIComponent(s)}).filter(Boolean).join("&");return n?`?${n}`:""}constructor(e){(0,m._)(this,"discoveryApi",void 0),(0,m._)(this,"environment",void 0),(0,m._)(this,"provider",void 0),(0,m._)(this,"joinScopesFunc",void 0),(0,m._)(this,"authRequester",void 0),(0,m._)(this,"sessionTransform",void 0),(0,m._)(this,"enableExperimentalRedirectFlow",void 0),(0,m._)(this,"popupOptions",void 0);const{configApi:n,discoveryApi:s,environment:a,provider:c,joinScopes:y=It,oauthRequestApi:v,sessionTransform:w=it=>it,popupOptions:W}=e;!Tt&&!n&&(console.warn("DEPRECATION WARNING: Authentication providers require a configApi instance to configure the authentication flow. Please provide one to the authentication provider constructor."),Tt=!0);var X;this.enableExperimentalRedirectFlow=n&&(X=n.getOptionalBoolean("enableExperimentalRedirectFlow"))!==null&&X!==void 0?X:!1,this.authRequester=v.createAuthRequester({provider:c,onAuthRequest:async it=>this.enableExperimentalRedirectFlow?this.executeRedirect(it):this.showPopup(it)}),this.discoveryApi=s,this.environment=a,this.provider=c,this.joinScopesFunc=y,this.sessionTransform=w,this.popupOptions=W}}function Yt(r,e){for(const n of e)if(!r.has(n))return!1;return!0}class he{sessionExistsAndHasScope(e,n){if(!e)return!1;if(!n||this.options.sessionScopes===void 0)return!0;const s=this.options.sessionScopes(e);return Yt(s,n)}getExtendedScope(e,n){const s=new Set(this.options.defaultScopes);if(e&&this.options.sessionScopes!==void 0){const a=this.options.sessionScopes(e);for(const c of a)s.add(c)}if(n)for(const a of n)s.add(a);return s}constructor(e){(0,m._)(this,"options",void 0),this.options=e}}var Zt=t(95965),Ft;(function(r){r.SignedIn="SignedIn",r.SignedOut="SignedOut"})(Ft||(Ft={}));const Gt=(0,Zt.T)({id:"core.auth.google"}),oe=(0,Zt.T)({id:"core.auth.github"}),Se=(0,Zt.T)({id:"core.auth.okta"}),Oe=(0,Zt.T)({id:"core.auth.gitlab"}),Le=(0,Zt.T)({id:"core.auth.microsoft"}),_e=(0,Zt.T)({id:"core.auth.onelogin"}),Ye=(0,Zt.T)({id:"core.auth.bitbucket"}),ze=(0,Zt.T)({id:"core.auth.bitbucket-server"}),fe=(0,Zt.T)({id:"core.auth.atlassian"});class Qe{setIsSignedIn(e){this.signedIn!==e&&(this.signedIn=e,this.subject.next(this.signedIn?Ft.SignedIn:Ft.SignedOut))}sessionState$(){return this.subject}constructor(){(0,m._)(this,"subject",new rt(Ft.SignedOut)),(0,m._)(this,"signedIn",!1)}}class Ie{async getSession(e){if(this.helper.sessionExistsAndHasScope(this.currentSession,e.scopes)){if(!this.sessionShouldRefreshFunc(this.currentSession))return this.currentSession;try{const s=await this.collapsedSessionRefresh(e.scopes),a=this.sessionScopesFunc(this.currentSession),c=this.sessionScopesFunc(s);return Yt(c,a)&&(this.currentSession=s),s}catch(s){if(e.optional)return;throw s}}if(!this.currentSession&&!e.instantPopup)try{const n=await this.collapsedSessionRefresh(e.scopes);return this.currentSession=n,this.getSession(e)}catch{}if(!e.optional)return this.currentSession=await this.connector.createSession({...e,scopes:this.helper.getExtendedScope(this.currentSession,e.scopes)}),this.stateTracker.setIsSignedIn(!0),this.currentSession}async removeSession(){this.currentSession=void 0,await this.connector.removeSession(),this.stateTracker.setIsSignedIn(!1)}sessionState$(){return this.stateTracker.sessionState$()}async collapsedSessionRefresh(e){if(this.refreshPromise)return this.refreshPromise;this.refreshPromise=this.connector.refreshSession(e);try{const n=await this.refreshPromise;return this.stateTracker.setIsSignedIn(!0),n}finally{delete this.refreshPromise}}constructor(e){(0,m._)(this,"connector",void 0),(0,m._)(this,"helper",void 0),(0,m._)(this,"sessionScopesFunc",void 0),(0,m._)(this,"sessionShouldRefreshFunc",void 0),(0,m._)(this,"stateTracker",new Qe),(0,m._)(this,"refreshPromise",void 0),(0,m._)(this,"currentSession",void 0);const{connector:n,defaultScopes:s=new Set,sessionScopes:a,sessionShouldRefresh:c}=e;this.connector=n,this.sessionScopesFunc=a,this.sessionShouldRefreshFunc=c,this.helper=new he({sessionScopes:a,defaultScopes:s})}}const He={id:"oauth2",title:"Your Identity Provider",icon:()=>null};class ee{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=He,oauthRequestApi:y,defaultScopes:v=[],scopeTransform:w=vt=>vt,popupOptions:W}=e,X=new Wt({configApi:n,discoveryApi:s,environment:a,provider:c,oauthRequestApi:y,sessionTransform({backstageIdentity:vt,...gt}){const mt={...gt,providerInfo:{idToken:gt.providerInfo.idToken,accessToken:gt.providerInfo.accessToken,scopes:ee.normalizeScopes(w,gt.providerInfo.scope),expiresAt:gt.providerInfo.expiresInSeconds?new Date(Date.now()+gt.providerInfo.expiresInSeconds*1e3):void 0}};if(vt){var $t;const Ht=($t=vt.expiresInSeconds)!==null&&$t!==void 0?$t:gt.providerInfo.expiresInSeconds;mt.backstageIdentity={token:vt.token,identity:vt.identity,expiresAt:Ht?new Date(Date.now()+Ht*1e3):void 0}}return mt},popupOptions:W}),it=new Ie({connector:X,defaultScopes:new Set(v),sessionScopes:vt=>vt.providerInfo.scopes,sessionShouldRefresh:vt=>{var gt,mt;let $t=1/0;return!((gt=vt.providerInfo)===null||gt===void 0)&&gt.expiresAt&&($t=Math.min($t,(vt.providerInfo.expiresAt.getTime()-Date.now())/1e3)),!((mt=vt.backstageIdentity)===null||mt===void 0)&&mt.expiresAt&&($t=Math.min($t,(vt.backstageIdentity.expiresAt.getTime()-Date.now())/1e3)),$t<60*5}});return new ee({sessionManager:it,scopeTransform:w})}async signIn(){await this.getAccessToken()}async signOut(){await this.sessionManager.removeSession()}sessionState$(){return this.sessionManager.sessionState$()}async getAccessToken(e,n){const s=ee.normalizeScopes(this.scopeTransform,e),a=await this.sessionManager.getSession({...n,scopes:s});var c;return(c=a==null?void 0:a.providerInfo.accessToken)!==null&&c!==void 0?c:""}async getIdToken(e={}){const n=await this.sessionManager.getSession({...e,scopes:new Set(["openid"])});var s;return(s=n==null?void 0:n.providerInfo.idToken)!==null&&s!==void 0?s:""}async getBackstageIdentity(e={}){const n=await this.sessionManager.getSession(e);return n==null?void 0:n.backstageIdentity}async getProfile(e={}){const n=await this.sessionManager.getSession(e);return n==null?void 0:n.profile}static normalizeScopes(e,n){if(!n)return new Set;const s=Array.isArray(n)?n:n.split(/[\s|,]/).filter(Boolean);return new Set(e(s))}constructor(e){(0,m._)(this,"sessionManager",void 0),(0,m._)(this,"scopeTransform",void 0),this.sessionManager=e.sessionManager,this.scopeTransform=e.scopeTransform}}const Je={id:"google",title:"Google",icon:()=>null},be="https://www.googleapis.com/auth/";class je{static create(e){const{configApi:n,discoveryApi:s,oauthRequestApi:a,environment:c="development",provider:y=Je,defaultScopes:v=["openid",`${be}userinfo.email`,`${be}userinfo.profile`]}=e;return ee.create({configApi:n,discoveryApi:s,oauthRequestApi:a,provider:y,environment:c,defaultScopes:v,scopeTransform(w){return w.map(W=>W==="openid"?W:W==="profile"||W==="email"?`${be}userinfo.${W}`:W.startsWith(be)?W:`${be}${W}`)}})}}const De={id:"microsoft",title:"Microsoft",icon:()=>null};class ae{static create(e){return new ae(e)}microsoftGraph(){return this.oauth2[ae.MicrosoftGraphID]}static resourceForScopes(e){const n=[...new Set(e.split(" ").map(ae.resourceForScope).filter(c=>c!=="openid"))];if(n.length>1)return Promise.reject(new Error(`Requested access token with scopes from multiple Azure resources: ${n.join(", ")}. Access tokens can only have a single audience.`));var s;const a=(s=n[0])!==null&&s!==void 0?s:ae.MicrosoftGraphID;return Promise.resolve(a)}static resourceForScope(e){var n;const s=(n=e.match(RegExp("^(?<resourceURI>.*)\\/(?<scp>[^\\/]*)$")))===null||n===void 0?void 0:n.groups;if(s){const{resourceURI:a}=s;return a.replace(/^api:\/\//,"")}switch(e){case"email":case"openid":case"offline_access":case"profile":return"openid";default:return ae.MicrosoftGraphID}}async getAccessToken(e,n){const s=e===void 0?ae.MicrosoftGraphID:await ae.resourceForScopes(Array.isArray(e)?e.join(" "):e);return s in this.oauth2||(this.oauth2[s]=ee.create({configApi:this.configApi,discoveryApi:this.discoveryApi,oauthRequestApi:this.oauthRequestApi,provider:this.provider,environment:this.environment,scopeTransform:this.scopeTransform})),this.oauth2[s].getAccessToken(e,n)}getIdToken(e){return this.microsoftGraph().getIdToken(e)}getProfile(e){return this.microsoftGraph().getProfile(e)}getBackstageIdentity(e){return this.microsoftGraph().getBackstageIdentity(e)}signIn(){return this.microsoftGraph().signIn()}signOut(){return this.microsoftGraph().signOut()}sessionState$(){return this.microsoftGraph().sessionState$()}constructor(e){(0,m._)(this,"oauth2",void 0),(0,m._)(this,"configApi",void 0),(0,m._)(this,"environment",void 0),(0,m._)(this,"provider",void 0),(0,m._)(this,"oauthRequestApi",void 0),(0,m._)(this,"discoveryApi",void 0),(0,m._)(this,"scopeTransform",void 0);const{configApi:n,environment:s="development",provider:a=De,oauthRequestApi:c,discoveryApi:y,defaultScopes:v=["openid","offline_access","profile","email","User.Read"],scopeTransform:w=W=>W.concat("offline_access")}=e;this.configApi=n,this.environment=s,this.provider=a,this.oauthRequestApi=c,this.discoveryApi=y,this.scopeTransform=w,this.oauth2={[ae.MicrosoftGraphID]:ee.create({configApi:this.configApi,discoveryApi:this.discoveryApi,oauthRequestApi:this.oauthRequestApi,provider:this.provider,environment:this.environment,scopeTransform:this.scopeTransform,defaultScopes:v})}}}(0,m._)(ae,"MicrosoftGraphID","00000003-0000-0000-c000-000000000000");const Be={id:"github",title:"GitHub",icon:()=>null};class Ue{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=Be,oauthRequestApi:y,defaultScopes:v=["read:user"]}=e;return ee.create({configApi:n,discoveryApi:s,oauthRequestApi:y,provider:c,environment:a,defaultScopes:v})}}const L={id:"okta",title:"Okta",icon:()=>null},u=new Set(["openid","profile","email","phone","address","groups","offline_access"]),D="okta.";class B{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=L,oauthRequestApi:y,defaultScopes:v=["openid","email","profile","offline_access"]}=e;return ee.create({configApi:n,discoveryApi:s,oauthRequestApi:y,provider:c,environment:a,defaultScopes:v,scopeTransform(w){return w.map(W=>u.has(W)||W.startsWith(D)?W:`${D}${W}`)}})}}const et={id:"gitlab",title:"GitLab",icon:()=>null};class dt{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=et,oauthRequestApi:y,defaultScopes:v=["read_user"]}=e;return ee.create({configApi:n,discoveryApi:s,oauthRequestApi:y,provider:c,environment:a,defaultScopes:v})}}const yt={id:"onelogin",title:"onelogin",icon:()=>null},Kt=new Set(["openid","profile","email","phone","address","groups","offline_access"]),kt="onelogin.";class jt{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=yt,oauthRequestApi:y}=e;return ee.create({configApi:n,discoveryApi:s,oauthRequestApi:y,provider:c,environment:a,defaultScopes:["openid","email","profile","offline_access"],scopeTransform(v){return v.map(w=>Kt.has(w)||w.startsWith(kt)?w:`${kt}${w}`)}})}}const Dt={id:"bitbucket",title:"Bitbucket",icon:()=>null};class re{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=Dt,oauthRequestApi:y,defaultScopes:v=["team"]}=e;return ee.create({configApi:n,discoveryApi:s,oauthRequestApi:y,provider:c,environment:a,defaultScopes:v})}}const Pe={id:"bitbucketServer",title:"Bitbucket Server",icon:()=>null};class we{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=Pe,oauthRequestApi:y,defaultScopes:v=["PROJECT_ADMIN"]}=e;return ee.create({configApi:n,discoveryApi:s,oauthRequestApi:y,provider:c,environment:a,defaultScopes:v})}}const $e={id:"atlassian",title:"Atlassian",icon:()=>null};class so{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=$e,oauthRequestApi:y}=e;return ee.create({configApi:n,discoveryApi:s,oauthRequestApi:y,provider:c,environment:a})}}var qt=t(42380),de=t(96727),se=t(6542),In=t(78847),me=t(86386),Dn=t(58513);const Mn=(0,Zt.T)({id:"core.storage"});var Ln=t(85094),Xe=t(77186);const Re=(0,Zt.T)({id:"core.oauthrequest"}),io=(0,Zt.T)({id:"plugin.permission.api"});var Ge=t(41385),ao=t(96279),jn=t.n(ao),lo=t(9571),Vt=t(30195),Me;(function(r){r.DENY="DENY",r.ALLOW="ALLOW",r.CONDITIONAL="CONDITIONAL"})(Me||(Me={}));const qe=Vt.z.lazy(()=>Vt.z.object({rule:Vt.z.string(),resourceType:Vt.z.string(),params:Vt.z.record(Vt.z.any()).optional()}).or(Vt.z.object({anyOf:Vt.z.array(qe).nonempty()})).or(Vt.z.object({allOf:Vt.z.array(qe).nonempty()})).or(Vt.z.object({not:qe}))),co=Vt.z.object({result:Vt.z.literal(Me.ALLOW).or(Vt.z.literal(Me.DENY))}),uo=Vt.z.union([Vt.z.object({result:Vt.z.literal(Me.ALLOW).or(Vt.z.literal(Me.DENY))}),Vt.z.object({result:Vt.z.literal(Me.CONDITIONAL),pluginId:Vt.z.string(),resourceType:Vt.z.string(),conditions:qe})]),ho=(r,e)=>Vt.z.object({items:Vt.z.array(Vt.z.intersection(Vt.z.object({id:Vt.z.string()}),r)).refine(n=>n.length===e.size&&n.every(({id:s})=>e.has(s)),{message:"Items in response do not match request"})});class fo{async authorize(e,n){return this.makeRequest(e,co,n)}async authorizeConditional(e,n){return this.makeRequest(e,uo,n)}async makeRequest(e,n,s){if(!this.enabled)return e.map(X=>({result:Me.ALLOW}));const a={items:e.map(X=>({id:lo.Z(),...X}))},c=await this.discovery.getBaseUrl("permission"),y=await jn()(`${c}/authorize`,{method:"POST",body:JSON.stringify(a),headers:{...this.getAuthorizationHeader(s==null?void 0:s.token),"content-type":"application/json"}});if(!y.ok)throw await Ge.V.fromResponse(y);const v=await y.json(),W=ho(n,new Set(a.items.map(({id:X})=>X))).parse(v).items.reduce((X,it)=>(X[it.id]=it,X),{});return a.items.map(X=>W[X.id])}getAuthorizationHeader(e){return e?{Authorization:`Bearer ${e}`}:{}}constructor(e){(0,m._)(this,"enabled",void 0),(0,m._)(this,"discovery",void 0),this.discovery=e.discovery;var n;this.enabled=(n=e.config.getOptionalBoolean("permission.enabled"))!==null&&n!==void 0?n:!1}}class hn{static create(e){const{config:n,discovery:s,identity:a}=e,c=new fo({discovery:s,config:n});return new hn(c,a)}async authorize(e){return(await this.permissionClient.authorize([e],await this.identityApi.getCredentials()))[0]}constructor(e,n){(0,m._)(this,"permissionClient",void 0),(0,m._)(this,"identityApi",void 0),this.permissionClient=e,this.identityApi=n}}const nn=[(0,qt.n)({api:de.N,deps:{configApi:se.D},factory:({configApi:r})=>ot.compile(`${r.getString("backend.baseUrl")}/api/{{ pluginId }}`)}),(0,qt.n)({api:In.$,deps:{},factory:()=>new At}),(0,qt.n)({api:me.v,deps:{},factory:()=>new xt}),(0,qt.n)({api:Dn.V,deps:{alertApi:In.$},factory:({alertApi:r})=>{const e=new ut(r,new bt);return Ct.forward(e,{hidden:!1}),e}}),(0,qt.n)({api:Mn,deps:{errorApi:Dn.V},factory:({errorApi:r})=>nt.create({errorApi:r})}),(0,qt.n)({api:Ln.g,deps:{configApi:se.D,identityApi:Xe.$,discoveryApi:de.N},factory:({configApi:r,identityApi:e,discoveryApi:n})=>U({middleware:[pt.resolvePluginProtocol({discoveryApi:n}),pt.injectIdentityAuth({identityApi:e,config:r})]})}),(0,qt.n)({api:Re,deps:{},factory:()=>new lt}),(0,qt.n)({api:Gt,deps:{discoveryApi:de.N,oauthRequestApi:Re,configApi:se.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>je.create({configApi:n,discoveryApi:r,oauthRequestApi:e,environment:n.getOptionalString("auth.environment")})}),(0,qt.n)({api:Le,deps:{discoveryApi:de.N,oauthRequestApi:Re,configApi:se.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>ae.create({configApi:n,discoveryApi:r,oauthRequestApi:e,environment:n.getOptionalString("auth.environment")})}),(0,qt.n)({api:oe,deps:{discoveryApi:de.N,oauthRequestApi:Re,configApi:se.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>Ue.create({configApi:n,discoveryApi:r,oauthRequestApi:e,defaultScopes:["read:user"],environment:n.getOptionalString("auth.environment")})}),(0,qt.n)({api:Se,deps:{discoveryApi:de.N,oauthRequestApi:Re,configApi:se.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>B.create({configApi:n,discoveryApi:r,oauthRequestApi:e,environment:n.getOptionalString("auth.environment")})}),(0,qt.n)({api:Oe,deps:{discoveryApi:de.N,oauthRequestApi:Re,configApi:se.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>dt.create({configApi:n,discoveryApi:r,oauthRequestApi:e,environment:n.getOptionalString("auth.environment")})}),(0,qt.n)({api:_e,deps:{discoveryApi:de.N,oauthRequestApi:Re,configApi:se.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>jt.create({configApi:n,discoveryApi:r,oauthRequestApi:e,environment:n.getOptionalString("auth.environment")})}),(0,qt.n)({api:Ye,deps:{discoveryApi:de.N,oauthRequestApi:Re,configApi:se.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>re.create({configApi:n,discoveryApi:r,oauthRequestApi:e,defaultScopes:["team"],environment:n.getOptionalString("auth.environment")})}),(0,qt.n)({api:ze,deps:{discoveryApi:de.N,oauthRequestApi:Re,configApi:se.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>we.create({configApi:n,discoveryApi:r,oauthRequestApi:e,defaultScopes:["REPO_READ"]})}),(0,qt.n)({api:fe,deps:{discoveryApi:de.N,oauthRequestApi:Re,configApi:se.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>so.create({configApi:n,discoveryApi:r,oauthRequestApi:e,environment:n.getOptionalString("auth.environment")})}),(0,qt.n)({api:io,deps:{discovery:de.N,identity:Xe.$,config:se.D},factory:({config:r,discovery:e,identity:n})=>hn.create({config:r,discovery:e,identity:n})})];var fn=t(43642),go=t(80079),po=t(90941),vo=t(32915),mo=t(40562),yo=t(21853),Eo=t(60744),xo=t(66569),Co=t(30254),Ao=t(13384),So=t(15933),Oo=t(58838),bo=t(86737),Po=t(4989),Ro=t(44407),To=t(18628),Bn=t(84219),Un=t(98685),wo=t(39781),Io=t(39412),Do=t(78258);const $n={brokenImage:go.Z,catalog:To.Z,scaffolder:vo.Z,techdocs:mo.Z,search:yo.Z,chat:Eo.Z,dashboard:xo.Z,docs:Co.Z,email:Ao.Z,github:Oo.Z,group:Bn.Z,help:bo.Z,"kind:api":So.Z,"kind:component":Ro.Z,"kind:domain":fn.Z,"kind:group":Bn.Z,"kind:location":Po.Z,"kind:system":po.Z,"kind:user":Un.Z,"kind:resource":Io.Z,"kind:template":Do.Z,user:Un.Z,warning:wo.Z};var Mo=t(87561),Lo=t(12536),jo=t(19219),Bo=t(41547),gn=t(3493),Uo=t(81887);const pn=(0,Lo.Z)({productionPrefix:"jss4-"});function Fn(r){const{children:e,theme:n,noCssBaseline:s=!1}=r,a=n.getTheme("v4"),c=n.getTheme("v5");let y;s||(y=(0,i.jsx)(Mo.ZP,{}));let v=(0,i.jsxs)(i.Fragment,{children:[y,e]});return a&&(v=(0,i.jsx)(jo.ZP,{generateClassName:pn,children:(0,i.jsx)(Bo.Z,{theme:a,children:v})})),c&&(v=(0,i.jsx)(gn.Z,{injectFirst:!0,children:(0,i.jsx)(Uo.Z,{theme:c,children:v})})),v}const Wn={light:{type:"light",mode:"light",background:{default:"#F8F8F8",paper:"#FFFFFF"},status:{ok:"#1DB954",warning:"#FF9800",error:"#E22134",running:"#1F5493",pending:"#FFED51",aborted:"#757575"},bursts:{fontColor:"#FEFEFE",slackChannelText:"#ddd",backgroundColor:{default:"#7C3699"},gradient:{linear:"linear-gradient(-137deg, #4BB8A5 0%, #187656 100%)"}},primary:{main:"#1F5493"},banner:{info:"#2E77D0",error:"#E22134",text:"#FFFFFF",link:"#000000",closeButtonColor:"#FFFFFF",warning:"#FF9800"},border:"#E6E6E6",textContrast:"#000000",textVerySubtle:"#DDD",textSubtle:"#6E6E6E",highlight:"#FFFBCC",errorBackground:"#FFEBEE",warningBackground:"#F59B23",infoBackground:"#ebf5ff",errorText:"#CA001B",infoText:"#004e8a",warningText:"#000000",linkHover:"#2196F3",link:"#0A6EBE",gold:"#FFD600",navigation:{background:"#171717",indicator:"#9BF0E1",color:"#b5b5b5",selectedColor:"#FFF",navItem:{hoverBackground:"#404040"},submenu:{background:"#404040"}},pinSidebarButton:{icon:"#181818",background:"#BDBDBD"},tabbar:{indicator:"#9BF0E1"}},dark:{type:"dark",mode:"dark",background:{default:"#333333",paper:"#424242"},status:{ok:"#71CF88",warning:"#FFB84D",error:"#F84C55",running:"#3488E3",pending:"#FEF071",aborted:"#9E9E9E"},bursts:{fontColor:"#FEFEFE",slackChannelText:"#ddd",backgroundColor:{default:"#7C3699"},gradient:{linear:"linear-gradient(-137deg, #4BB8A5 0%, #187656 100%)"}},primary:{main:"#9CC9FF",dark:"#82BAFD"},secondary:{main:"#FF88B2"},banner:{info:"#2E77D0",error:"#E22134",text:"#FFFFFF",link:"#000000",closeButtonColor:"#FFFFFF",warning:"#FF9800"},border:"#E6E6E6",textContrast:"#FFFFFF",textVerySubtle:"#727272",textSubtle:"#CCCCCC",highlight:"#FFFBCC",errorBackground:"#FFEBEE",warningBackground:"#F59B23",infoBackground:"#ebf5ff",errorText:"#CA001B",infoText:"#004e8a",warningText:"#000000",linkHover:"#82BAFD",link:"#9CC9FF",gold:"#FFD600",navigation:{background:"#424242",indicator:"#9BF0E1",color:"#b5b5b5",selectedColor:"#FFF",navItem:{hoverBackground:"#404040"},submenu:{background:"#404040"}},pinSidebarButton:{icon:"#404040",background:"#BDBDBD"},tabbar:{indicator:"#9BF0E1"}}};var Mt=t(88412),ye=t(52475),h=t(80956),T=t(73689),j=t(93606);const $={wave:`url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='1368' height='400' fill='none'%3e%3cmask id='a' width='1368' height='401' x='0' y='0' maskUnits='userSpaceOnUse'%3e%3cpath fill='url(%23paint0_linear)' d='M437 116C223 116 112 0 112 0h1256v400c-82 0-225-21-282-109-112-175-436-175-649-175z'/%3e%3cpath fill='url(%23paint1_linear)' d='M1368 400V282C891-29 788 40 711 161 608 324 121 372 0 361v39h1368z'/%3e%3cpath fill='url(%23paint2_linear)' d='M1368 244v156H0V94c92-24 198-46 375 0l135 41c176 51 195 109 858 109z'/%3e%3cpath fill='url(%23paint3_linear)' d='M1252 400h116c-14-7-35-14-116-16-663-14-837-128-1013-258l-85-61C98 28 46 8 0 0v400h1252z'/%3e%3c/mask%3e%3cg mask='url(%23a)'%3e%3cpath fill='white' d='M-172-98h1671v601H-172z'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient id='paint0_linear' x1='602' x2='1093.5' y1='-960.5' y2='272' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint1_linear' x1='482' x2='480' y1='1058.5' y2='70.5' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint2_linear' x1='424' x2='446.1' y1='-587.5' y2='274.6' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint3_linear' x1='587' x2='349' y1='-1120.5' y2='341' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e")`,wave2:`url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='1368' height='400' fill='none'%3e%3cmask id='a' width='1764' height='479' x='-229' y='-6' maskUnits='userSpaceOnUse'%3e%3cpath fill='url(%23paint0_linear)' d='M0 400h1350C1321 336 525 33 179-2c-345-34-395 236-408 402H0z'/%3e%3cpath fill='url(%23paint1_linear)' d='M1378 177v223H0V217s219 75 327 52C436 246 717-35 965 45s254 144 413 132z'/%3e%3cpath fill='url(%23paint2_linear)' d='M26 400l-78-16c-170 205-44-6-137-30l-4-1 4 1 137 30c37-45 89-110 159-201 399-514-45 238 1176-50 275-65 354-39 91 267H26z'/%3e%3c/mask%3e%3cg mask='url(%23a)'%3e%3cpath fill='white' d='M0 0h1368v400H0z'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient id='paint0_linear' x1='431' x2='397.3' y1='-599' y2='372.8' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint1_linear' x1='236.5' x2='446.6' y1='-586' y2='381.5' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint2_linear' x1='851.8' x2='640.4' y1='-867.2' y2='363.7' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e")`,round:`url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' width='1368' height='400' fill='none'%3e%3cmask id='a' width='2269' height='1408' x='-610' y='-509' maskUnits='userSpaceOnUse'%3e%3ccircle cx='1212.8' cy='74.8' r='317.5' fill='url(%23paint0_linear)' transform='rotate(-52 1213 75)'/%3e%3ccircle cx='737.8' cy='445.8' r='317.5' fill='url(%23paint1_linear)' transform='rotate(-116 738 446)'/%3e%3ccircle cx='601.8' cy='52.8' r='418.6' fill='url(%23paint2_linear)' transform='rotate(-117 602 53)'/%3e%3ccircle cx='999.8' cy='364' r='389.1' fill='url(%23paint3_linear)' transform='rotate(31 1000 364)'/%3e%3cellipse cx='-109.2' cy='263.5' fill='url(%23paint4_linear)' rx='429.2' ry='465.8' transform='rotate(-85 -109 264)'/%3e%3c/mask%3e%3cg mask='url(%23a)'%3e%3cpath fill='white' d='M0 0h1368v400H0z'/%3e%3c/g%3e%3cdefs%3e%3clinearGradient id='paint0_linear' x1='1301.2' x2='161.4' y1='-1879.7' y2='-969.6' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint1_linear' x1='826.2' x2='-313.6' y1='-1508.7' y2='-598.6' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint2_linear' x1='718.4' x2='-784.3' y1='-2524' y2='-1324.2' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint3_linear' x1='1108.2' x2='-288.6' y1='-2031.1' y2='-915.9' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3clinearGradient id='paint4_linear' x1='10.4' x2='-1626.5' y1='-2603.8' y2='-1399.5' gradientUnits='userSpaceOnUse'%3e%3cstop stop-color='white'/%3e%3cstop offset='1' stop-color='white' stop-opacity='0'/%3e%3c/linearGradient%3e%3c/defs%3e%3c/svg%3e")`},V={darkGrey:["#171717","#383838"],marineBlue:["#006D8F","#0049A1"],veryBlue:["#0027AF","#270094"],rubyRed:["#98002B","#8D1134"],toastyOrange:["#BE2200","#A41D00"],purpleSky:["#8912CA","#3E00EA"],eveningSea:["#00FFF2","#035355"],teal:["#005B4B"],pinkSea:["#C8077A","#C2297D"],greens:["#4BB8A5","#187656"]};function Q(r){const{colors:e,shape:n,options:s}=r,c=`linear-gradient(90deg, ${(e.length===1?[e[0],e[0]]:e).join(", ")})`,y=`${n}, ${c}`;var v;const w=(v=s==null?void 0:s.fontColor)!==null&&v!==void 0?v:"#FFFFFF";return{colors:e,shape:n,backgroundImage:y,fontColor:w}}const st={home:Q({colors:V.teal,shape:$.wave}),documentation:Q({colors:V.pinkSea,shape:$.wave2}),tool:Q({colors:V.purpleSky,shape:$.round}),service:Q({colors:V.marineBlue,shape:$.wave}),website:Q({colors:V.veryBlue,shape:$.wave}),library:Q({colors:V.rubyRed,shape:$.wave}),other:Q({colors:V.darkGrey,shape:$.wave}),app:Q({colors:V.toastyOrange,shape:$.wave}),apis:Q({colors:V.teal,shape:$.wave2}),card:Q({colors:V.greens,shape:$.wave})},St=16,wt='"Helvetica Neue", Helvetica, Roboto, Arial, sans-serif',Lt="home";function Bt(r){const{palette:e,htmlFontSize:n=St,fontFamily:s=wt,defaultPageTheme:a=Lt,pageTheme:c=st,typography:y}=r;if(!c[a])throw new Error(`${a} is not defined in pageTheme.`);const v={htmlFontSize:n,fontFamily:s,h1:{fontSize:54,fontWeight:700,marginBottom:10},h2:{fontSize:40,fontWeight:700,marginBottom:8},h3:{fontSize:32,fontWeight:700,marginBottom:6},h4:{fontWeight:700,fontSize:28,marginBottom:6},h5:{fontWeight:700,fontSize:24,marginBottom:4},h6:{fontWeight:700,fontSize:20,marginBottom:2}};return{palette:e,typography:y!=null?y:v,page:c[a],getPageTheme:({themeId:w})=>{var W;return(W=c[w])!==null&&W!==void 0?W:c[a]}}}var zt=t(47591);const Pt={MuiCssBaseline:{styleOverrides:r=>({html:{height:"100%",fontFamily:r.typography.fontFamily},body:{height:"100%",fontFamily:r.typography.fontFamily,overscrollBehaviorY:"none",fontSize:"0.875rem",lineHeight:1.43},a:{color:"inherit",textDecoration:"none"}})},MuiGrid:{defaultProps:{spacing:2}},MuiSwitch:{defaultProps:{color:"primary"}},MuiTableRow:{styleOverrides:{root:({theme:r})=>({"&:nth-of-type(odd)":{backgroundColor:r.palette.background.default}}),hover:{"&:hover":{cursor:"pointer"}},head:({theme:r})=>({"&:nth-of-type(odd)":{backgroundColor:r.palette.background.paper}})}},MuiTableCell:{styleOverrides:{root:({theme:r})=>({wordBreak:"break-word",overflow:"hidden",verticalAlign:"middle",lineHeight:"1",margin:0,padding:r.spacing(3,2,3,2.5),borderBottom:0}),sizeSmall:({theme:r})=>({padding:r.spacing(1.5,2,1.5,2.5)}),head:({theme:r})=>({wordBreak:"break-word",overflow:"hidden",color:r.palette.textSubtle,fontWeight:"normal",lineHeight:"1"})}},MuiTabs:{styleOverrides:{root:{minHeight:24}}},MuiTab:{styleOverrides:{root:({theme:r})=>({color:r.palette.link,minHeight:24,textTransform:"initial",letterSpacing:"0.07em","&:hover":{color:(0,zt._j)(r.palette.link,.3),background:(0,zt.$n)(r.palette.link,.95)},[r.breakpoints.up("md")]:{minWidth:120,fontSize:r.typography.pxToRem(14),fontWeight:500}}),textColorPrimary:({theme:r})=>({color:r.palette.link})}},MuiTableSortLabel:{styleOverrides:{root:{color:"inherit","&:hover":{color:"inherit"},"&:focus":{color:"inherit"},"&.Mui-active":{fontWeight:"bold",color:"inherit"}}}},MuiListItemText:{styleOverrides:{dense:{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}}},MuiButton:{styleOverrides:{text:{padding:void 0}}},MuiChip:{styleOverrides:{root:({theme:r})=>({marginRight:r.spacing(1),marginBottom:r.spacing(1)}),label:({theme:r})=>({lineHeight:r.spacing(2.5),fontWeight:r.typography.fontWeightMedium,fontSize:r.spacing(1.75)}),labelSmall:({theme:r})=>({fontSize:r.spacing(1.5)}),deleteIcon:({theme:r})=>({width:r.spacing(3),height:r.spacing(3),margin:r.spacing(0,.75,0,-.75)}),deleteIconSmall:({theme:r})=>({width:r.spacing(2),height:r.spacing(2),margin:r.spacing(0,.5,0,-.5)})}},MuiCard:{styleOverrides:{root:{display:"flex",flexDirection:"column"}}},MuiCardHeader:{styleOverrides:{root:{paddingBottom:0}}},MuiCardContent:{styleOverrides:{root:{flexGrow:1,"&:last-child":{paddingBottom:void 0}}}},MuiCardActions:{styleOverrides:{root:{justifyContent:"flex-end"}}},MuiLink:{defaultProps:{underline:"hover"}}},pe=r=>(...e)=>{const n=e.length===0?[1]:e,s=(a,c)=>typeof a=="string"?a:c*a;return n.map(a=>{const c=s(a,r);return typeof c=="number"?`${c}px`:c}).join(" ")};function le(r,e){if(!e||typeof e=="string")return;const n=typeof e=="function"?e(r):e;if(n)return{"@global":n}}function Qt(r,e){if(!(!e||typeof e=="string")){if(typeof e=="object"){const n={...r},s=r.spacing(1);return typeof s=="number"&&(n.spacing=pe(s)),Object.fromEntries(Object.entries(e).map(([a,c])=>typeof c=="function"?[a,c({theme:n})]:[a,c]))}return e}}const _t=/^&.Mui-([\w-]+)$/;function ne(r){let e=r;if(!r||typeof r!="object")return e;for(const n of Object.keys(r)){const s=r[n];if(!(!s||typeof s!="object"))for(const a of Object.keys(s)){const c=a,y=c.match(_t);if(y){const[,v]=y,{[c]:w,...W}=s;w&&(e={...e,[n]:W,[v]:w})}}}return e}function te(r,e={}){const n={},s={};for(const a of Object.keys(e)){const c=e[a];c&&("styleOverrides"in c&&(a==="MuiCssBaseline"?n[a]=le(r,c.styleOverrides):n[a]=ne(Qt(r,c.styleOverrides))),"defaultProps"in c&&(s[a]=c.defaultProps))}return{overrides:n,props:s}}var Ut=new WeakMap;class Nt{getTheme(e){return(0,Mt._)(this,Ut).get(e)}constructor(e,n){(0,ye._)(this,Ut,{writable:!0,value:new Map}),(0,h._)(this,Ut,new Map),e&&(0,Mt._)(this,Ut).set("v4",e),n&&(0,Mt._)(this,Ut).set("v5",n)}}function Jt(r){const e=Bt(r),n={...Pt,...r.components},s=(0,j.Z)({...e,components:n}),a=te(s,n),c={...(0,T.Z)(e),...a};return new Nt(c,s)}function ve(r){const e=adaptV4Theme(r),n=createTheme(r);return new Nt(n,e)}const Ee={light:Jt({palette:Wn.light}),dark:Jt({palette:Wn.dark})};var ce=t(98192),Fe=t(15222);const ue=[{id:"light",title:"Light Theme",variant:"light",icon:(0,i.jsx)(Fe.Z,{}),Provider:({children:r})=>(0,i.jsx)(Fn,{theme:Ee.light,children:r})},{id:"dark",title:"Dark Theme",variant:"dark",icon:(0,i.jsx)(ce.Z,{}),Provider:({children:r})=>(0,i.jsx)(Fn,{theme:Ee.dark,children:r})}];var We=t(64279),vn=t(13980),mn=t.n(vn);class Vr{get(e){for(const n of this.holders){const s=n.get(e);if(s)return s}}constructor(...e){(0,m._)(this,"holders",void 0),this.holders=e}}var Nn=t(29651),Zn=t(68993);const tr=(0,Nn.CT)("api-context"),$o=r=>{var e;const{apis:n,children:s}=r,a=(e=(0,d.useContext)(tr))===null||e===void 0?void 0:e.atVersion(1),c=a?new Vr(n,a):n;return(0,i.jsx)(tr.Provider,{value:(0,Zn.E)({1:c}),children:s})};$o.propTypes={apis:mn().shape({get:mn().func.isRequired}).isRequired,children:mn().node};var _r=t(9850),Yr=t.n(_r),Qr=t(12782),Jr=t.n(Qr);const Xr=/^[a-z][a-z0-9]*(?:[-_][a-z][a-z0-9]*)*$/i;function yn(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function Fo(r){if(r===null)return"null";if(Array.isArray(r))return"array";const e=typeof r;return e==="number"&&isNaN(r)?"nan":e==="string"&&r===""?"empty-string":e}const Te={type(r,e,n,s){return`Invalid type in config for key '${r}' in '${e}', got ${n}, wanted ${s}`},missing(r){return`Missing required config value at '${r}'`},convert(r,e,n){return`Unable to convert config value for key '${r}' in '${e}' to a ${n}`}};class on{static fromConfigs(e){return e.length===0?new on(void 0):e.reduce((n,{data:s,context:a,filteredKeys:c,deprecatedKeys:y})=>{const v=new on(s,a,n);if(v.filteredKeys=c,y)for(const{key:w,description:W}of y)console.warn(`The configuration key '${w}' of ${a} is deprecated and may be removed soon. ${W||""}`);return v},void 0)}has(e){var n;if(this.readValue(e)!==void 0)return!0;var a;return(a=(n=this.fallback)===null||n===void 0?void 0:n.has(e))!==null&&a!==void 0?a:!1}keys(){var e;const n=this.data?Object.keys(this.data):[];var s;const a=(s=(e=this.fallback)===null||e===void 0?void 0:e.keys())!==null&&s!==void 0?s:[];return[...new Set([...n,...a])]}get(e){const n=this.getOptional(e);if(n===void 0)throw new Error(Te.missing(this.fullKey(e!=null?e:"")));return n}getOptional(e){var n;const s=Yr()(this.readValue(e)),a=(n=this.fallback)===null||n===void 0?void 0:n.getOptional(e);if(s===void 0){if(!1)var c;return a}else if(a===void 0)return s;return Jr()({},{value:a},{value:s},(y,v)=>!yn(v)||!yn(y)?v:void 0).value}getConfig(e){const n=this.getOptionalConfig(e);if(n===void 0)throw new Error(Te.missing(this.fullKey(e)));return n}getOptionalConfig(e){var n;const s=this.readValue(e),a=(n=this.fallback)===null||n===void 0?void 0:n.getOptionalConfig(e);if(yn(s))return this.copy(s,e,a);if(s!==void 0)throw new TypeError(Te.type(this.fullKey(e),this.context,Fo(s),"object"));return a}getConfigArray(e){const n=this.getOptionalConfigArray(e);if(n===void 0)throw new Error(Te.missing(this.fullKey(e)));return n}getOptionalConfigArray(e){const n=this.readConfigValue(e,a=>{if(!Array.isArray(a))return{expected:"object-array"};for(const[c,y]of a.entries())if(!yn(y))return{expected:"object-array",value:y,key:`${e}[${c}]`};return!0});if(!n){if(!1)var s;return}return n.map((a,c)=>this.copy(a,`${e}[${c}]`))}getNumber(e){const n=this.getOptionalNumber(e);if(n===void 0)throw new Error(Te.missing(this.fullKey(e)));return n}getOptionalNumber(e){const n=this.readConfigValue(e,a=>typeof a=="number"||typeof a=="string"||{expected:"number"});if(typeof n=="number"||n===void 0)return n;const s=Number(n);if(!Number.isFinite(s))throw new Error(Te.convert(this.fullKey(e),this.context,"number"));return s}getBoolean(e){const n=this.getOptionalBoolean(e);if(n===void 0)throw new Error(Te.missing(this.fullKey(e)));return n}getOptionalBoolean(e){const n=this.readConfigValue(e,a=>typeof a=="boolean"||typeof a=="number"||typeof a=="string"||{expected:"boolean"});if(typeof n=="boolean"||n===void 0)return n;const s=String(n).trim();if(/^(?:y|yes|true|1|on)$/i.test(s))return!0;if(/^(?:n|no|false|0|off)$/i.test(s))return!1;throw new Error(Te.convert(this.fullKey(e),this.context,"boolean"))}getString(e){const n=this.getOptionalString(e);if(n===void 0)throw new Error(Te.missing(this.fullKey(e)));return n}getOptionalString(e){return this.readConfigValue(e,n=>typeof n=="string"&&n!==""||{expected:"string"})}getStringArray(e){const n=this.getOptionalStringArray(e);if(n===void 0)throw new Error(Te.missing(this.fullKey(e)));return n}getOptionalStringArray(e){return this.readConfigValue(e,n=>{if(!Array.isArray(n))return{expected:"string-array"};for(const[s,a]of n.entries())if(typeof a!="string"||a==="")return{expected:"string-array",value:a,key:`${e}[${s}]`};return!0})}fullKey(e){return`${this.prefix}${this.prefix?".":""}${e}`}copy(e,n,s){const a=new on(e,this.context,s,this.fullKey(n));return a.filteredKeys=this.filteredKeys,a}readConfigValue(e,n){const s=this.readValue(e);if(s===void 0){var a;if(!1)var c;return(a=this.fallback)===null||a===void 0?void 0:a.readConfigValue(e,n)}const y=n(s);if(y!==!0){const{key:v=e,value:w=s,expected:W}=y;throw new TypeError(Te.type(this.fullKey(v),this.context,Fo(w),W))}return s}readValue(e){const n=e?e.split("."):[];for(const a of n)if(!Xr.test(a))throw new TypeError(`Invalid config key '${e}'`);if(this.data===void 0)return;let s=this.data;for(const[a,c]of n.entries())if(yn(s))s=s[c];else if(s!==void 0){const y=this.fullKey(n.slice(0,a).join("."));throw new TypeError(Te.type(y,this.context,Fo(s),"object"))}return s}constructor(e,n="mock-config",s,a=""){(0,m._)(this,"data",void 0),(0,m._)(this,"context",void 0),(0,m._)(this,"fallback",void 0),(0,m._)(this,"prefix",void 0),(0,m._)(this,"filteredKeys",void 0),(0,m._)(this,"notifiedFilteredKeys",void 0),this.data=e,this.context=n,this.fallback=s,this.prefix=a,this.notifiedFilteredKeys=new Set}}const En="theme";class Kn{static createWithStorage(e){const n=new Kn(e);if(!window.localStorage)return n;var s;const a=(s=window.localStorage.getItem(En))!==null&&s!==void 0?s:void 0;return n.setActiveThemeId(a),n.activeThemeId$().subscribe(c=>{c?window.localStorage.setItem(En,c):window.localStorage.removeItem(En)}),window.addEventListener("storage",c=>{if(c.key===En){var y;const v=(y=localStorage.getItem(En))!==null&&y!==void 0?y:void 0;n.setActiveThemeId(v)}}),n}getInstalledThemes(){return this.themes.slice()}activeThemeId$(){return this.subject}getActiveThemeId(){return this.activeThemeId}setActiveThemeId(e){this.activeThemeId=e,this.subject.next(e)}constructor(e){(0,m._)(this,"themes",void 0),(0,m._)(this,"activeThemeId",void 0),(0,m._)(this,"subject",void 0),this.themes=e,this.subject=new rt(void 0)}}var rn=t(82723);function er(r){if(r.length<3)throw new Error(`The '${r}' feature flag must have a minimum length of three characters.`);if(r.length>150)throw new Error(`The '${r}' feature flag must not exceed 150 characters.`);if(!r.match(/^[a-z]+[a-z0-9-]+$/))throw new Error(`The '${r}' feature flag must start with a lowercase letter and only contain lowercase letters, numbers and hyphens. Examples: feature-flag-one, alpha, release-2020`)}class qr{registerFlag(e){er(e.name),this.registeredFeatureFlags.push(e)}getRegisteredFlags(){return this.registeredFeatureFlags.slice()}isActive(e){return this.flags||(this.flags=this.load()),this.flags.get(e)===rn.C.Active}save(e){this.flags||(this.flags=this.load()),e.merge||this.flags.clear();for(const[s,a]of Object.entries(e.states))this.flags.set(s,a);const n=Array.from(this.flags.entries()).filter(([,s])=>s===rn.C.Active);window.localStorage.setItem("featureFlags",JSON.stringify(Object.fromEntries(n)))}load(){try{const e=window.localStorage.getItem("featureFlags");if(!e)return new Map;const n=JSON.parse(e);if(typeof n!="object"||n===null||Array.isArray(n))return new Map;const s=Object.entries(n).filter(([a,c])=>(er(a),c===rn.C.Active));return new Map(s)}catch{return new Map}}constructor(){(0,m._)(this,"registeredFeatureFlags",[]),(0,m._)(this,"flags",void 0)}}const kn=(0,Zt.T)({id:"core.apptheme"}),nr=(0,Zt.T)({id:"core.applanguage"});var ts=t(96253);class Wo{static validateFactories(e,n){for(const s of n){const a=[s],c=new Set;for(;a.length;){const y=a.shift(),v=e.get(y);if(v)for(const w of Object.values(v.deps)){if(w.id===s.id)throw new Error(`Circular dependency of api factory for ${s}`);c.has(w)||(c.add(w),a.push(w))}}}}get(e){return this.load(e)}load(e,n=[]){const s=this.apis.get(e.id);if(s)return s;const a=this.factories.get(e);if(!a)return;if(n.includes(a.api))throw new Error(`Circular dependency of api factory for ${a.api}`);const c=this.loadDeps(e,a.deps,[...n,a.api]),y=a.factory(c);return this.apis.set(e.id,y),y}loadDeps(e,n,s){const a={};for(const c in n)if(n.hasOwnProperty(c)){const y=n[c],v=this.load(y,s);if(!v)throw new Error(`No API factory available for dependency ${y} of dependent ${e}`);a[c]=v}return a}constructor(e){(0,m._)(this,"factories",void 0),(0,m._)(this,"apis",void 0),this.factories=e,this.apis=new Map}}var No;(function(r){r[r.default=10]="default",r[r.app=50]="app",r[r.static=100]="static"})(No||(No={}));class es{register(e,n){const s=No[e],a=this.factories.get(n.api.id);return a&&a.priority>=s?!1:(this.factories.set(n.api.id,{priority:s,factory:n}),!0)}get(e){const n=this.factories.get(e.id);if(n)return n.factory}getAllApis(){const e=new Set;for(const{factory:n}of this.factories.values())e.add(n.api);return e}constructor(){(0,m._)(this,"factories",new Map)}}function ns(r){const e={};for(const s in r.collectors)r.collectors.hasOwnProperty(s)&&(e[s]=r.collectors[s]());const n=[{node:d.Children.toArray(r.root),parent:void 0,contexts:{}}];for(;n.length!==0;){const{node:s,parent:a,contexts:c}=n.shift();d.Children.forEach(s,y=>{if(!(0,d.isValidElement)(y))return;const v={};for(const w in e)if(e.hasOwnProperty(w)){const W=e[w];v[w]=W.visit(W.accumulator,y,a,c[w])}for(const w of r.discoverers){const W=w(y);W&&n.push({node:W,parent:y,contexts:v})}})}return Object.fromEntries(Object.entries(e).map(([s,a])=>[s,a.accumulator]))}function zn(r,e){return()=>({accumulator:r(),visit:e})}function os(r){var e;return(e=r.props)===null||e===void 0?void 0:e.children}function rs(r){var e,n;if(!((e=r.props)===null||e===void 0)&&e.path&&(!((n=r.props)===null||n===void 0)&&n.element)){var s;return(s=r.props)===null||s===void 0?void 0:s.element}}var Ce=t(62584);const ss=zn(()=>new Set,(r,e)=>{const n=(0,Ce.I)(e,"core.plugin");n&&r.add(n)});var xn=t(44394);const or=r=>{const{children:e}=r,n=(0,xn.h_)(rn.W),s="with"in r?n.isActive(r.with):!n.isActive(r.without);return(0,i.jsx)(i.Fragment,{children:s?e:null})};(0,Ce.R)(or,"core.featureFlagged",!0);const Hn={caseSensitive:!1,path:"*",element:"match-all",routeRefs:new Set,plugins:new Set};function Gn(r){const e=r;if(e!=null&&e.type){var n,s;return(s=(n=e.type.displayName)!==null&&n!==void 0?n:e.type.name)!==null&&s!==void 0?s:String(e.type)}return String(e)}const rr=r=>{const e=new Set;return r&&e.add(r),e};function sr(r,e=new Array){return d.Children.forEach(r,n=>{if(!(0,d.isValidElement)(n))return;const s=(0,Ce.I)(n,"core.mountPoint");if(s){const a=(0,Ce.I)(n,"core.plugin");e.push({routeRef:s,plugin:a})}sr(n.props.children,e)}),e}const is=zn(()=>({paths:new Map,parents:new Map,objects:new Array}),(r,e,n,s)=>{var a,c;if(s!=null&&s.isElementAncestor)return s;if((n==null?void 0:n.props.element)===e)return{...s,isElementAncestor:!0};const y=(a=e.props)===null||a===void 0?void 0:a.path,v=(0,Ce.I)(e,"core.mountPoint");if(v&&y)throw new Error(`Path property may not be set directly on a routable extension "${Gn(e)}"`);var w;const W=(w=s==null||(c=s.obj)===null||c===void 0?void 0:c.children)!==null&&w!==void 0?w:r.objects;if(y!==void 0){if(typeof y!="string")throw new Error(`Element path must be a string at "${Gn(e)}"`);const mt=y.startsWith("/")?y.slice(1):y,$t=e.props.element;if((0,Ce.I)(e,"core.gatherMountPoints")){var X;if($t)throw new Error(`Mount point gatherers may not have an element prop "${Gn(e)}"`);const Ht={path:mt,element:"gathered",routeRefs:new Set,caseSensitive:Boolean((X=e.props)===null||X===void 0?void 0:X.caseSensitive),children:[Hn],plugins:new Set};return W.push(Ht),{obj:Ht,gatherPath:mt,routeRef:s==null?void 0:s.routeRef,gatherRouteRef:s==null?void 0:s.routeRef}}if($t){var it;const[Ht,...Xt]=sr($t);if(Xt.length>0)throw new Error(`Route element with path "${y}" may not contain multiple routable extensions`);if(!Ht)return s;const{routeRef:ie,plugin:ke}=Ht,wn={path:mt,element:"mounted",routeRefs:new Set([ie]),caseSensitive:Boolean((it=e.props)===null||it===void 0?void 0:it.caseSensitive),children:[Hn],plugins:rr(ke)};return W.push(wn),r.paths.set(ie,mt),r.parents.set(ie,s==null?void 0:s.routeRef),{obj:wn,routeRef:ie!=null?ie:s==null?void 0:s.routeRef,gatherPath:mt,gatherRouteRef:s==null?void 0:s.gatherRouteRef}}}if(v){var vt;if((s==null?void 0:s.gatherPath)===void 0)throw new Error(`Routable extension "${Gn(e)}" with mount point "${v}" must be assigned a path`);s==null||(vt=s.obj)===null||vt===void 0||vt.routeRefs.add(v);const mt=(0,Ce.I)(e,"core.plugin");if(mt){var gt;s==null||(gt=s.obj)===null||gt===void 0||gt.plugins.add(mt)}return r.paths.set(v,s.gatherPath),r.parents.set(v,s==null?void 0:s.gatherRouteRef),{...s,routeRef:v}}return s}),as=zn(()=>({paths:new Map,parents:new Map,objects:new Array}),(r,e,n,s)=>{var a,c,y;if((n==null?void 0:n.props.element)===e)return s;let v=s==null?void 0:s.obj,w=s==null?void 0:s.routeRef,W=s==null?void 0:s.sticky;const X=(a=e.props)===null||a===void 0?void 0:a.path;var it;const vt=(it=v==null?void 0:v.children)!==null&&it!==void 0?it:r.objects,gt=Boolean((c=e.props)===null||c===void 0?void 0:c.caseSensitive);let mt=s==null?void 0:s.path;if((0,Ce.I)(e,"core.gatherMountPoints")){if(!X)throw new Error("Mount point gatherer must have a path");mt=X}const $t=(y=e.props)===null||y===void 0?void 0:y.element;let Ht=(0,Ce.I)(e,"core.mountPoint");if(!Ht&&(0,d.isValidElement)($t)&&(Ht=(0,Ce.I)($t,"core.mountPoint")),Ht){let ke=X;if(mt&&(ke?mt=void 0:ke=mt),!ke)throw new Error("Mounted routable extension must have a path");r.paths.set(Ht,ke),w&&W?(r.parents.set(Ht,w),X&&(w=Ht,W=!1)):(r.parents.set(Ht,w),w=Ht),X?(v={caseSensitive:gt,path:X,element:"mounted",routeRefs:new Set([Ht]),children:[Hn],plugins:rr((0,Ce.I)(e.props.element,"core.plugin"))},vt.push(v)):v==null||v.routeRefs.add(Ht)}if((0,Ce.I)(e,"core.gatherMountPoints")&&(W=!0),(0,Ce.I)(e,"core.gatherMountPoints")){if(!X)throw new Error("Mount point gatherer must have a path");if(!Ht){var ie;v={caseSensitive:gt,path:X,element:"gathered",routeRefs:new Set,children:[Hn],plugins:(s==null||(ie=s.obj)===null||ie===void 0?void 0:ie.plugins)||new Set},vt.push(v)}}return{obj:v,path:mt,routeRef:w,sticky:W}}),ls=zn(()=>new Set,(r,e)=>{if(e.type===or){const n=e.props;r.add("with"in n?n.with:n.without)}});var Cn=t(84800),cs=t(96087);const An=(0,cs.u)("route-ref-type",()=>Symbol("route-ref-type"));function ir(r){return r[An]==="absolute"}function ar(r){return r[An]==="sub"}function ds(r){return r[An]==="external"}function Vn(...r){const e=r.join("/").replace(/\/\/+/g,"/");return e!=="/"&&e.endsWith("/")?e.slice(0,-1):e}var us=t(34519),hs=t.n(us);function fs(r,e,n){let s,a="";if(ir(r))s=r;else if(ar(r))s=r.parent,a=r.path;else if(ds(r)){const v=n.get(r);if(!v)return[void 0,""];if(ir(v))s=v;else if(ar(v))s=v.parent,a=v.path;else throw new Error(`ExternalRouteRef was bound to invalid target, ${v}`)}else throw r[An]?new Error(`Unknown or invalid route ref type, ${r[An]}`):new Error(`Unknown object passed to useRouteRef, got ${r}`);if(!s)return[void 0,""];const c=e.get(s);if(c===void 0)return[void 0,""];const y=Vn(c,a);return[s,y]}function gs(r,e,n,s,a){var c;const y=(c=(0,Cn.fp)(a,e))!==null&&c!==void 0?c:[],v=Array();let w=-1;for(let it=r;it&&(w=y.findIndex(vt=>vt.route.routeRefs.has(it)),w===-1);it=s.get(it))v.unshift(it);v.length===0&&(w-=1);const W=w===-1?"":y[w].pathname,X=v.slice(0,-1).map(it=>{const vt=n.get(it);if(vt===void 0)throw new Error(`No path for ${it}`);if(vt.includes(":"))throw new Error(`Cannot route to ${r} with parent ${it} as it has parameters`);return vt});return`${Vn(W,...X)}/`}class ps{resolve(e,n){const[s,a]=fs(e,this.routePaths,this.routeBindings);if(!s)return;let c;typeof n=="string"?c=this.trimPath(n):n.pathname?c={...n,pathname:this.trimPath(n.pathname)}:c=n;const y=this.appBasePath+gs(s,c,this.routePaths,this.routeParents,this.routeObjects);return(...[w])=>{const W=w&&hs()(w,X=>typeof X=="string"?X.replaceAll(/[&?#;\/]/g,it=>encodeURIComponent(it)):X);return Vn(y,(0,Cn.Gn)(a,W))}}trimPath(e){return e&&(e.startsWith(this.appBasePath)?e.slice(this.appBasePath.length):e)}constructor(e,n,s,a,c){(0,m._)(this,"routePaths",void 0),(0,m._)(this,"routeParents",void 0),(0,m._)(this,"routeObjects",void 0),(0,m._)(this,"routeBindings",void 0),(0,m._)(this,"appBasePath",void 0),this.routePaths=e,this.routeParents=n,this.routeObjects=s,this.routeBindings=a,this.appBasePath=c}}const vs=(0,Nn.CT)("routing-context"),ms=({routePaths:r,routeParents:e,routeObjects:n,routeBindings:s,basePath:a="",children:c})=>{const y=new ps(r,e,n,s,a),v=(0,Zn.E)({1:y});return(0,i.jsx)(vs.Provider,{value:v,children:c})};function ys(r,e){const n=new Set(e.values());n.delete(void 0);for(const s of e.keys()){if(n.has(s))continue;let a=s,c="";for(;a;){const v=r.get(a);if(v===void 0)throw new Error(`No path for ${a}`);c=Vn(v,c),a=e.get(a)}const y=c.match(/:(\w+)/g);if(y){for(let v=0;v<y.length;v++)for(let w=v+1;w<y.length;w++)if(y[w]===y[v])throw new Error(`Parameter ${y[w]} is duplicated in path ${c}`)}}}function Es(r,e){for(const n of e)if(n.externalRoutes){for(const[s,a]of Object.entries(n.externalRoutes))if(!a.optional&&!r.has(a))throw new Error(`External route '${s}' of the '${n.getId()}' plugin must be bound to a target route. See https://backstage.io/link?bind-routes for details.`)}}const xs=(0,Nn.CT)("app-context"),Cs=({appContext:r,children:e})=>{const n=(0,Zn.E)({1:r});return(0,i.jsx)(xs.Provider,{value:n,children:e})};function lr(r){return new Error(`Tried to access IdentityApi ${r} before app was loaded`)}function Zo(r){console.warn(`WARNING: Call to ${r} is deprecated and will break in the future`)}class As{setTarget(e,n){this.target=e,this.signOutTargetUrl=n.signOutTargetUrl,this.resolveTarget(e)}getUserId(){if(!this.target)throw lr("getUserId");if(!this.target.getUserId)throw new Error("IdentityApi does not implement getUserId");return Zo("getUserId"),this.target.getUserId()}getProfile(){if(!this.target)throw lr("getProfile");if(!this.target.getProfile)throw new Error("IdentityApi does not implement getProfile");return Zo("getProfile"),this.target.getProfile()}async getProfileInfo(){return this.waitForTarget.then(e=>e.getProfileInfo())}async getBackstageIdentity(){const e=await this.waitForTarget.then(n=>n.getBackstageIdentity());return e.userEntityRef.match(/^.*:.*\/.*$/)||console.warn(`WARNING: The App IdentityApi provided an invalid userEntityRef, '${e.userEntityRef}'. It must be a full Entity Reference of the form '<kind>:<namespace>/<name>'.`),e}async getCredentials(){return this.waitForTarget.then(e=>e.getCredentials())}async getIdToken(){return this.waitForTarget.then(e=>{if(!e.getIdToken)throw new Error("IdentityApi does not implement getIdToken");return Zo("getIdToken"),e.getIdToken()})}async signOut(){await this.waitForTarget.then(e=>e.signOut()),window.location.href=this.signOutTargetUrl}constructor(){(0,m._)(this,"target",void 0),(0,m._)(this,"waitForTarget",void 0),(0,m._)(this,"resolveTarget",()=>{}),(0,m._)(this,"signOutTargetUrl","/"),this.waitForTarget=new Promise(e=>{this.resolveTarget=e})}}var Ss=t(72164);function Os(r,e,n){if(r!==void 0){const a=n.find(c=>c.id===r);if(a)return a}if(e){const a=n.find(c=>c.variant==="dark");if(a)return a}const s=n.find(a=>a.variant==="light");return s||n[0]}const bs=()=>{const r=(0,d.useMemo)(()=>window.matchMedia("(prefers-color-scheme: dark)"),[]),[e,n]=(0,d.useState)(r.matches);return(0,d.useEffect)(()=>{const s=a=>{n(a.matches)};return r.addListener(s),()=>{r.removeListener(s)}},[r]),e};function cr({children:r}){const e=(0,xn.h_)(kn),n=(0,Ss.Z)(e.activeThemeId$(),e.getActiveThemeId()),s=Boolean(window.matchMedia)?bs():!1,a=Os(n,s,e.getInstalledThemes());if(!a)throw new Error("App has no themes");return(0,i.jsx)(a.Provider,{children:r})}const dr=async()=>Ps();function Ps(r="__APP_INJECTED_RUNTIME_CONFIG__"){const e=[{context:"app-config.yaml",data:{app:{title:"Techdocs Preview App",baseUrl:"http://localhost:3000"},backend:{baseUrl:"http://localhost:3000"},techdocs:{builder:"external"}}}];if(!e)throw new Error("No static configuration provided");if(!Array.isArray(e))throw new Error("Static configuration has invalid format");const n=e.slice();if(r!=="__app_injected_runtime_config__".toLocaleUpperCase("en-US"))try{const a=JSON.parse(r);Array.isArray(a)?n.push(...a):n.push({data:a,context:"env"})}catch(a){throw new Error(`Failed to load runtime configuration, ${a}`)}const s=window.__APP_CONFIG__;return s&&n.push({context:"window",data:s}),n}class Rs{add(e,n){return this.apis.push([e.id,n]),n}build(){return new sn(new Map(this.apis))}constructor(){(0,m._)(this,"apis",[])}}class sn{static builder(){return new Rs}static from(e){return new sn(new Map(e.map(([n,s])=>[n.id,s])))}static with(e,n){return new sn(new Map([[e.id,n]]))}with(e,n){return new sn(new Map([...this.apis,[e.id,n]]))}get(e){return this.apis.get(e.id)}constructor(e){(0,m._)(this,"apis",void 0),this.apis=e}}function Ts(r){const e=new Map;return r&&r({bind:(s,a)=>{for(const[c,y]of Object.entries(a)){const v=s[c];if(!v)throw new Error(`Key ${c} is not an existing external route`);if(!y&&!v.optional)throw new Error(`External route ${c} is required but was undefined`);y&&e.set(v,y)}}}),e}function Sn(){const[r]=(0,p.is)((0,i.jsx)(p.AW,{index:!0,element:(0,i.jsx)("div",{})}));return!r.index}const ur=(0,d.createContext)(void 0);var hr=t(80851),fr=t(62369),ws=t(72388);const Is=(r,e)=>{try{const n=(0,Cn.fp)(e,{pathname:r}),s=n==null?void 0:n.filter(w=>{var W;return(w==null||(W=w.route.routeRefs)===null||W===void 0?void 0:W.size)>0}).pop(),a=s==null?void 0:s.route;if(!a||a.path===""&&r!=="/")return;let c;a.routeRefs.size===1&&(c=a.routeRefs.values().next().value);let y;a.plugins.size===1&&(y=a.plugins.values().next().value);const v=Object.entries((s==null?void 0:s.params)||{}).reduce((w,[W,X])=>(X!==void 0&&W!=="*"&&(w[W]=X),w),{});return{extension:"App",pluginId:(y==null?void 0:y.getId())||"root",...c?{routeRef:c.id}:{},_routeNodeType:a.element,params:v}}catch{return}},Ds=({pathname:r,search:e,hash:n,attributes:s})=>{const a=(0,fr.z)();return(0,d.useEffect)(()=>{a.captureEvent("navigate",`${r}${e}${n}`,{attributes:s})},[a,r,e,n,s]),null},_n=({routeObjects:r})=>{const{pathname:e,search:n,hash:s}=(0,p.TH)(),{params:a,...c}=Is(e,r)||{params:{}};return(0,i.jsx)(ws.fC,{attributes:c,children:(0,i.jsx)(Ds,{pathname:e,search:n,hash:s,attributes:a})})};function Ms(r){return Sn()?Ko(r):""}function Ko(r){var e;let{pathname:n}=new URL((e=r.getOptionalString("app.baseUrl"))!==null&&e!==void 0?e:"/","http://sample.dev");return n=n.replace(/\/*$/,""),n}function gr({component:r,appIdentityProxy:e,children:n}){const[s,a]=(0,d.useState)(),c=(0,xn.h_)(se.D),y=Ko(c);return s?(e.setTarget(s,{signOutTargetUrl:y||"/"}),(0,i.jsx)(i.Fragment,{children:n})):(0,i.jsx)(r,{onSignInSuccess:a})}function Ls(r){const{Router:e,SignInPage:n}=(0,hr.q)().getComponents(),s=(0,xn.h_)(se.D),a=Ko(s),c=`${a}/*`,y=(0,d.useContext)(ur);if(!y)throw new Error("AppRouter must be rendered within the AppProvider");const{routeObjects:v,appIdentityProxy:w}=y;return n?Sn()?(0,i.jsxs)(e,{children:[(0,i.jsx)(_n,{routeObjects:v}),(0,i.jsx)(gr,{component:n,appIdentityProxy:w,children:(0,i.jsx)(p.Z5,{children:(0,i.jsx)(p.AW,{path:c,element:(0,i.jsx)(i.Fragment,{children:r.children})})})})]}):(0,i.jsxs)(e,{basename:a,children:[(0,i.jsx)(_n,{routeObjects:v}),(0,i.jsx)(gr,{component:n,appIdentityProxy:w,children:r.children})]}):(w.setTarget({getUserId:()=>"guest",getIdToken:async()=>{},getProfile:()=>({email:"guest@example.com",displayName:"Guest"}),getProfileInfo:async()=>({email:"guest@example.com",displayName:"Guest"}),getBackstageIdentity:async()=>({type:"user",userEntityRef:"user:default/guest",ownershipEntityRefs:["user:default/guest"]}),getCredentials:async()=>({}),signOut:async()=>{}},{signOutTargetUrl:a||"/"}),Sn()?(0,i.jsxs)(e,{children:[(0,i.jsx)(_n,{routeObjects:v}),(0,i.jsx)(p.Z5,{children:(0,i.jsx)(p.AW,{path:c,element:(0,i.jsx)(i.Fragment,{children:r.children})})})]}):(0,i.jsxs)(e,{basename:a,children:[(0,i.jsx)(_n,{routeObjects:v}),r.children]}))}const On="language",Ne="en";var bn=new WeakMap,an=new WeakMap,Yn=new WeakMap;class Qn{static create(e){var n;const s=(n=e==null?void 0:e.availableLanguages)!==null&&n!==void 0?n:[Ne];if(s.length!==new Set(s).size)throw new Error(`Supported languages may not contain duplicates, got '${s.join("', '")}'`);if(!s.includes(Ne))throw new Error(`Supported languages must include '${Ne}'`);var a;const c=(a=e==null?void 0:e.defaultLanguage)!==null&&a!==void 0?a:Ne;if(!s.includes(c))throw new Error(`Initial language must be one of the supported languages, got '${c}'`);return new Qn(s,c)}static createWithStorage(e){const n=Qn.create(e);if(!window.localStorage)return n;const s=window.localStorage.getItem(On),{languages:a}=n.getAvailableLanguages();return s&&a.includes(s)&&n.setLanguage(s),n.language$().subscribe(({language:c})=>{c!==window.localStorage.getItem(On)&&window.localStorage.setItem(On,c)}),window.addEventListener("storage",c=>{if(c.key===On){var y;const v=(y=localStorage.getItem(On))!==null&&y!==void 0?y:void 0;v&&n.setLanguage(v)}}),n}getAvailableLanguages(){return{languages:(0,Mt._)(this,bn).slice()}}setLanguage(e){const n=e!=null?e:Ne;if(n!==(0,Mt._)(this,an)){if(n&&!(0,Mt._)(this,bn).includes(n))throw new Error(`Failed to change language to '${n}', available languages are '${(0,Mt._)(this,bn).join("', '")}'`);(0,h._)(this,an,n),(0,Mt._)(this,Yn).next({language:n})}}getLanguage(){return{language:(0,Mt._)(this,an)}}language$(){return(0,Mt._)(this,Yn)}constructor(e,n){(0,ye._)(this,bn,{writable:!0,value:void 0}),(0,ye._)(this,an,{writable:!0,value:void 0}),(0,ye._)(this,Yn,{writable:!0,value:void 0}),(0,h._)(this,bn,e),(0,h._)(this,an,n),(0,h._)(this,Yn,new rt({language:(0,Mt._)(this,an)}))}}var Ze=t(29190),Jn=t(15356),js=t(24991),Bs=t(18015),pr=t(35304);function vr(r){return Object.fromEntries(Object.entries(r).filter(e=>e[1]!==null))}var ln=new WeakMap,Xn=new WeakMap,cn=new WeakMap,qn=new WeakSet;class Us{addTranslationResource(e){const n=(0,Bs.W)(e);for(const s of n.resources){const a=(0,Ze._)(this,qn,ko).call(this,s.language,n.id);(0,Mt._)(this,cn).has(a)||(0,Mt._)(this,cn).set(a,s.loader)}}needsLoading(e,n){const s=(0,Ze._)(this,qn,ko).call(this,e,n);return(0,Mt._)(this,cn).get(s)?!(0,Mt._)(this,ln).has(s):!1}async load(e,n){const s=(0,Ze._)(this,qn,ko).call(this,e,n),a=(0,Mt._)(this,cn).get(s);if(!a||(0,Mt._)(this,ln).has(s))return;const c=(0,Mt._)(this,Xn).get(s);if(c){await c;return}const y=a().then(v=>{this.onLoad({language:e,namespace:n,messages:v.messages}),(0,Mt._)(this,ln).add(s)},v=>{throw(0,Mt._)(this,ln).add(s),v});(0,Mt._)(this,Xn).set(s,y),await y}constructor(e){(0,Jn._)(this,qn),(0,m._)(this,"onLoad",void 0),(0,ye._)(this,ln,{writable:!0,value:void 0}),(0,ye._)(this,Xn,{writable:!0,value:void 0}),(0,ye._)(this,cn,{writable:!0,value:void 0}),this.onLoad=e,(0,h._)(this,ln,new Set),(0,h._)(this,Xn,new Map),(0,h._)(this,cn,new Map)}}function ko(r,e){return`${r}/${e}`}var Pn=new WeakMap,dn=new WeakMap,tn=new WeakMap,zo=new WeakMap,to=new WeakMap,mr=new WeakSet,eo=new WeakSet,Ho=new WeakSet;class Go{static create(e){const{languages:n}=e.languageApi.getAvailableLanguages(),s=(0,js.Fs)({fallbackLng:Ne,supportedLngs:n,interpolation:{escapeValue:!1},ns:[],defaultNS:!1,fallbackNS:!1,initImmediate:!1});if(s.init(),!s.isInitialized)throw new Error("i18next was unexpectedly not initialized");const{language:a}=e.languageApi.getLanguage();a!==Ne&&s.changeLanguage(a);const c=new Us(w=>{s.addResourceBundle(w.language,w.namespace,vr(w.messages),!1,!0)}),y=(e==null?void 0:e.resources)||[];for(let w=y.length-1;w>=0;w--){const W=y[w];W.$$type==="@backstage/TranslationResource"?c.addTranslationResource(W):W.$$type==="@backstage/TranslationMessages"&&s.addResourceBundle(Ne,W.id,vr(W.messages),!0,!1)}const v=new Go(s,c,e.languageApi.getLanguage().language);return e.languageApi.language$().subscribe(({language:w})=>{(0,Ze._)(v,mr,$s).call(v,w)}),v}getTranslation(e){const n=(0,pr.y)(e);return(0,Ze._)(this,Ho,yr).call(this,n),(0,Ze._)(this,eo,Vo).call(this,n)}translation$(e){const n=(0,pr.y)(e);return(0,Ze._)(this,Ho,yr).call(this,n),new(H())(s=>{let a={};const c=()=>{a={};const v=a;(0,Mt._)(this,dn).load((0,Mt._)(this,tn),n.id).then(()=>{if(v===a){const w=(0,Ze._)(this,eo,Vo).call(this,n);w.ready&&s.next(w)}},w=>{v===a&&s.error(Array.isArray(w)?w[0]:w)})},y=()=>{const v=(0,Ze._)(this,eo,Vo).call(this,n);v.ready?s.next(v):c()};return(0,Mt._)(this,dn).needsLoading((0,Mt._)(this,tn),n.id)&&c(),(0,Mt._)(this,to).add(y),()=>{(0,Mt._)(this,to).delete(y)}})}constructor(e,n,s){(0,Jn._)(this,mr),(0,Jn._)(this,eo),(0,Jn._)(this,Ho),(0,ye._)(this,Pn,{writable:!0,value:void 0}),(0,ye._)(this,dn,{writable:!0,value:void 0}),(0,ye._)(this,tn,{writable:!0,value:void 0}),(0,ye._)(this,zo,{writable:!0,value:new Set}),(0,ye._)(this,to,{writable:!0,value:new Set}),(0,h._)(this,Pn,e),(0,h._)(this,dn,n),(0,h._)(this,tn,s)}}function $s(r){(0,Mt._)(this,tn)!==r&&((0,h._)(this,tn,r),(0,Mt._)(this,Pn).changeLanguage(r),(0,Mt._)(this,to).forEach(e=>e()))}function Vo(r){return(0,Mt._)(this,dn).needsLoading((0,Mt._)(this,tn),r.id)?{ready:!1}:{ready:!0,t:(0,Mt._)(this,Pn).getFixedT(null,r.id)}}function yr(r){if((0,Mt._)(this,zo).has(r.id))return;(0,Mt._)(this,zo).add(r.id);const e=r.getDefaultMessages();(0,Mt._)(this,Pn).addResourceBundle(Ne,r.id,e,!0,!1);const n=r.getDefaultResource();n&&(0,Mt._)(this,dn).addTranslationResource(n)}function Er(r){const e=new URL(r);return e.protocol=document.location.protocol,e.hostname=document.location.hostname,e.port=document.location.port,e.toString().replace(/\/$/,"")}function Fs(r){const e=on.fromConfigs(r),n=e.getOptionalString("app.baseUrl"),s=e.getOptionalString("backend.baseUrl");let a=r,c,y;if(n&&s){const v=new URL(n).origin,w=new URL(s).origin;if(v===w){const W=Er(s);s!==W&&(c=W)}}if(n){const v=Er(n);n!==v&&(y=v)}return(y||c)&&(a=a.concat({data:{app:y&&{baseUrl:y},backend:c&&{baseUrl:c}},context:"relative-resolver"})),a}function Ws(r,e,n){var s;const a=Boolean(r),c=(0,We.default)(r||(()=>Promise.resolve([])));let y;if(a&&c.loading){const{Progress:W}=e;y=(0,i.jsx)(W,{})}else if(c.error){const{BootErrorPage:W}=e;y=(0,i.jsx)(W,{step:"load-config",error:c.error})}const{ThemeProvider:v=cr}=e;return y?{node:(0,i.jsx)($o,{apis:sn.with(kn,n),children:(0,i.jsx)(v,{children:y})})}:{api:on.fromConfigs(!((s=c.value)===null||s===void 0)&&s.length?Fs(c.value):[])}}class Ns{getPlugins(){return this.app.getPlugins()}getSystemIcon(e){return this.app.getSystemIcon(e)}getSystemIcons(){return this.app.getSystemIcons()}getComponents(){return this.app.getComponents()}constructor(e){(0,m._)(this,"app",void 0),this.app=e}}var _o=new WeakMap;class Zs{getPlugins(){return Array.from(this.plugins)}getSystemIcon(e){return this.icons[e]}getSystemIcons(){return this.icons}getComponents(){return this.components}createRoot(e){const n=this.getProvider();return()=>(0,i.jsx)(n,{children:e})}getProvider(){if((0,Mt._)(this,_o))throw new Error("app.getProvider() or app.createRoot() has already been called, and can only be called once");(0,h._)(this,_o,!0);const e=new Ns(this);let n=!1;return({children:a})=>{const c=(0,d.useRef)(!0),y=(0,d.useMemo)(()=>Kn.createWithStorage(this.themes),[]),{routing:v,featureFlags:w,routeBindings:W}=(0,d.useMemo)(()=>{const mt=ns({root:a,discoverers:[os,rs],collectors:{routing:Sn()?as:is,collectedPlugins:ss,featureFlags:ls}});return mt.collectedPlugins.forEach($t=>this.plugins.add($t)),this.verifyPlugins(this.plugins),this.getApiHolder(),{...mt,routeBindings:Ts(this.bindRoutes)}},[a]);n||(n=!0,ys(v.paths,v.parents),Es(W,this.plugins));const X=Ws(this.configLoader,this.components,y),it="api"in X;if(it){const{api:mt}=X;this.configApi=mt}if("node"in X)return X.node;if(it&&c.current){c.current=!1;const mt=this.getApiHolder().get(rn.W);if(mt){for(const Xt of this.featureFlags)mt.registerFlag({...Xt,pluginId:""});for(const Xt of this.plugins.values())if("getFeatureFlags"in Xt)for(const ie of Xt.getFeatureFlags())mt.registerFlag({name:ie.name,pluginId:Xt.getId()});else for(const ie of Xt.output())ie.type==="feature-flag"&&mt.registerFlag({name:ie.name,pluginId:Xt.getId()});const $t=mt.getRegisteredFlags(),Ht=new Set($t.map(Xt=>Xt.name));for(const Xt of w)Ht.has(Xt)||mt.registerFlag({name:Xt,pluginId:""})}}const{ThemeProvider:vt=cr,Progress:gt}=this.components;return(0,i.jsx)($o,{apis:this.getApiHolder(),children:(0,i.jsx)(Cs,{appContext:e,children:(0,i.jsx)(vt,{children:(0,i.jsx)(ms,{routePaths:v.paths,routeParents:v.parents,routeObjects:v.objects,routeBindings:W,basePath:Ms(X.api),children:(0,i.jsx)(ur.Provider,{value:{routeObjects:v.objects,appIdentityProxy:this.appIdentityProxy},children:(0,i.jsx)(d.Suspense,{fallback:(0,i.jsx)(gt,{}),children:a})})})})})})}}getRouter(){return Ls}getApiHolder(){if(this.apiHolder){for(const e of this.plugins)for(const n of e.getApis())this.apiFactoryRegistry.get(n.api)||this.apiFactoryRegistry.register("default",n);return Wo.validateFactories(this.apiFactoryRegistry,this.apiFactoryRegistry.getAllApis()),this.apiHolder}this.apiFactoryRegistry.register("static",{api:kn,deps:{},factory:()=>Kn.createWithStorage(this.themes)}),this.apiFactoryRegistry.register("static",{api:se.D,deps:{},factory:()=>{if(!this.configApi)throw new Error("Tried to access config API before config was loaded");return this.configApi}}),this.apiFactoryRegistry.register("static",{api:Xe.$,deps:{},factory:()=>this.appIdentityProxy}),this.apiFactoryRegistry.register("static",{api:nr,deps:{},factory:()=>this.appLanguageApi}),this.apiFactoryRegistry.register("default",{api:ts.o,deps:{languageApi:nr},factory:({languageApi:e})=>Go.create({languageApi:e,resources:this.translationResources})}),this.apiFactoryRegistry.register("default",{api:rn.W,deps:{},factory:()=>new qr});for(const e of this.defaultApis)this.apiFactoryRegistry.register("default",e);for(const e of this.plugins)for(const n of e.getApis())if(!this.apiFactoryRegistry.register("default",n))throw new Error(`Plugin ${e.getId()} tried to register duplicate or forbidden API factory for ${n.api}`);for(const e of this.apis)if(!this.apiFactoryRegistry.register("app",e))throw new Error(`Duplicate or forbidden API factory for ${e.api} in app`);return Wo.validateFactories(this.apiFactoryRegistry,this.apiFactoryRegistry.getAllApis()),this.apiHolder=new Wo(this.apiFactoryRegistry),this.apiHolder}verifyPlugins(e){const n=new Set;for(const s of e){const a=s.getId();if(n.has(a))throw new Error(`Duplicate plugin found '${a}'`);n.add(a)}}constructor(e){var n,s,a;(0,m._)(this,"apiHolder",void 0),(0,m._)(this,"configApi",void 0),(0,m._)(this,"apis",void 0),(0,m._)(this,"icons",void 0),(0,m._)(this,"plugins",void 0),(0,m._)(this,"featureFlags",void 0),(0,m._)(this,"components",void 0),(0,m._)(this,"themes",void 0),(0,m._)(this,"configLoader",void 0),(0,m._)(this,"defaultApis",void 0),(0,m._)(this,"bindRoutes",void 0),(0,m._)(this,"appLanguageApi",void 0),(0,m._)(this,"translationResources",void 0),(0,m._)(this,"appIdentityProxy",new As),(0,m._)(this,"apiFactoryRegistry",void 0),(0,ye._)(this,_o,{writable:!0,value:!1});var c;this.apis=(c=e.apis)!==null&&c!==void 0?c:[],this.icons=e.icons;var y;this.plugins=new Set((y=e.plugins)!==null&&y!==void 0?y:[]);var v;this.featureFlags=(v=e.featureFlags)!==null&&v!==void 0?v:[],this.components=e.components,this.themes=e.themes;var w;this.configLoader=(w=e.configLoader)!==null&&w!==void 0?w:dr;var W;this.defaultApis=(W=e.defaultApis)!==null&&W!==void 0?W:[],this.bindRoutes=e.bindRoutes,this.apiFactoryRegistry=new es,this.appLanguageApi=Qn.createWithStorage({defaultLanguage:(n=e.__experimentalTranslations)===null||n===void 0?void 0:n.defaultLanguage,availableLanguages:(s=e.__experimentalTranslations)===null||s===void 0?void 0:s.availableLanguages});var X;this.translationResources=(X=(a=e.__experimentalTranslations)===null||a===void 0?void 0:a.resources)!==null&&X!==void 0?X:[]}}function Ks(r){return new Zs(r)}function ks(r){var e,n,s,a;return Ks({...r,apis:(e=r==null?void 0:r.apis)!==null&&e!==void 0?e:[],bindRoutes:r==null?void 0:r.bindRoutes,components:{...Z,...r==null?void 0:r.components},configLoader:r==null?void 0:r.configLoader,defaultApis:nn,icons:{...$n,...r==null?void 0:r.icons},plugins:(n=r==null?void 0:r.plugins)!==null&&n!==void 0?n:[],featureFlags:(s=r==null?void 0:r.featureFlags)!==null&&s!==void 0?s:[],themes:(a=r==null?void 0:r.themes)!==null&&a!==void 0?a:ue})}var no=t(2532);let xr=!1;const zs=r=>{const e=(0,hr.q)(),{NotFoundErrorPage:n}=e.getComponents(),s=(0,d.useMemo)(()=>Sn(),[]),c=[...(0,no.v)(r.children,y=>y.getElements().flatMap(v=>{let w=v.props.path;if(w==="")return[];var W;w=(W=w==null?void 0:w.replace(/\/\*$/,""))!==null&&W!==void 0?W:"/";let X=s?v:v.props.element;return!s&&!X&&(X=v,xr||(console.warn("DEPRECATION WARNING: All elements within <FlatRoutes> must be of type <Route> with an element prop. Existing usages of <Navigate key=[path] to=[to] /> should be replaced with <Route path=[path] element={<Navigate to=[to] />} />."),xr=!0)),[{path:w,element:X,children:v.props.children?[{path:w==="/"?"/":"*",element:v.props.children}]:void 0}]}).sort((v,w)=>w.path.localeCompare(v.path)).map(v=>({...v,path:v.path==="/"?"/":`${v.path}/*`}))),{path:"*",element:(0,i.jsx)(n,{})}];return(0,p.V$)(c)};var Rn=t(74314),Hs=t(51547),Gs=t(88797);function Cr(r){return!r.cursor}function la(r){return!Cr(r)}class Vs{async getEntityAncestors(e,n){const{kind:s,namespace:a,name:c}=(0,Rn.of)(e.entityRef);return await this.requestRequired("GET",`/entities/by-name/${encodeURIComponent(s)}/${encodeURIComponent(a)}/${encodeURIComponent(c)}/ancestry`,n)}async getLocationById(e,n){return await this.requestOptional("GET",`/locations/${encodeURIComponent(e)}`,n)}async getEntities(e,n){const{filter:s=[],fields:a=[],order:c,offset:y,limit:v,after:w}=e!=null?e:{},W=this.getParams(s);if(a.length&&W.push(`fields=${a.map(encodeURIComponent).join(",")}`),c)for(const gt of[c].flat())gt&&W.push(`order=${encodeURIComponent(gt.order)}:${encodeURIComponent(gt.field)}`);y!==void 0&&W.push(`offset=${y}`),v!==void 0&&W.push(`limit=${v}`),w!==void 0&&W.push(`after=${encodeURIComponent(w)}`);const X=W.length?`?${W.join("&")}`:"",it=await this.requestRequired("GET",`/entities${X}`,n),vt=(gt,mt)=>{var $t,Ht;if((($t=gt.metadata)===null||$t===void 0?void 0:$t.name)===void 0||gt.kind===void 0||((Ht=mt.metadata)===null||Ht===void 0?void 0:Ht.name)===void 0||mt.kind===void 0)return 0;const Xt=(0,Rn.eE)(gt),ie=(0,Rn.eE)(mt);return Xt<ie?-1:Xt>ie?1:0};return{items:it.sort(vt)}}async getEntitiesByRefs(e,n){var s;const a={entityRefs:e.entityRefs};!((s=e.fields)===null||s===void 0)&&s.length&&(a.fields=e.fields);const y=`${await this.discoveryApi.getBaseUrl("catalog")}/entities/by-refs`,v=await this.fetchApi.fetch(y,{headers:{"Content-Type":"application/json",...(n==null?void 0:n.token)&&{Authorization:`Bearer ${n==null?void 0:n.token}`}},method:"POST",body:JSON.stringify(a)});if(!v.ok)throw await Ge.V.fromResponse(v);const{items:w}=await v.json();return{items:w.map(W=>W!=null?W:void 0)}}async queryEntities(e={},n){const s=[];if(Cr(e)){var a,c;const{fields:v=[],filter:w,limit:W,orderFields:X,fullTextFilter:it}=e;s.push(...this.getParams(w)),W!==void 0&&s.push(`limit=${W}`),X!==void 0&&(Array.isArray(X)?X:[X]).forEach(({field:gt,order:mt})=>s.push(`orderField=${gt},${mt}`)),v.length&&s.push(`fields=${v.map(encodeURIComponent).join(",")}`);const vt=it==null||(a=it.term)===null||a===void 0?void 0:a.trim();vt&&s.push(`fullTextFilterTerm=${vt}`),!(it==null||(c=it.fields)===null||c===void 0)&&c.length&&s.push(`fullTextFilterFields=${it.fields.join(",")}`)}else{const{fields:v=[],limit:w,cursor:W}=e;s.push(`cursor=${W}`),w!==void 0&&s.push(`limit=${w}`),v.length&&s.push(`fields=${v.map(encodeURIComponent).join(",")}`)}const y=s.length?`?${s.join("&")}`:"";return this.requestRequired("GET",`/entities/by-query${y}`,n)}async getEntityByRef(e,n){const{kind:s,namespace:a,name:c}=(0,Rn.of)(e);return this.requestOptional("GET",`/entities/by-name/${encodeURIComponent(s)}/${encodeURIComponent(a)}/${encodeURIComponent(c)}`,n)}async getEntityByName(e,n){const{kind:s,namespace:a="default",name:c}=e;return this.requestOptional("GET",`/entities/by-name/${encodeURIComponent(s)}/${encodeURIComponent(a)}/${encodeURIComponent(c)}`,n)}async refreshEntity(e,n){const s=await this.fetchApi.fetch(`${await this.discoveryApi.getBaseUrl("catalog")}/refresh`,{headers:{"Content-Type":"application/json",...(n==null?void 0:n.token)&&{Authorization:`Bearer ${n==null?void 0:n.token}`}},method:"POST",body:JSON.stringify({entityRef:e})});if(s.status!==200)throw new Error(await s.text())}async getEntityFacets(e,n){const{filter:s=[],facets:a}=e,c=this.getParams(s);for(const v of a)c.push(`facet=${encodeURIComponent(v)}`);const y=c.length?`?${c.join("&")}`:"";return await this.requestOptional("GET",`/entity-facets${y}`,n)}async addLocation(e,n){const{type:s="url",target:a,dryRun:c}=e,y=await this.fetchApi.fetch(`${await this.discoveryApi.getBaseUrl("catalog")}/locations${c?"?dryRun=true":""}`,{headers:{"Content-Type":"application/json",...(n==null?void 0:n.token)&&{Authorization:`Bearer ${n==null?void 0:n.token}`}},method:"POST",body:JSON.stringify({type:s,target:a})});if(y.status!==201)throw new Error(await y.text());const{location:v,entities:w,exists:W}=await y.json();if(!v)throw new Error(`Location wasn't added: ${a}`);return{location:v,entities:w,exists:W}}async getLocationByRef(e,n){return(await this.requestRequired("GET","/locations",n)).map(a=>a.data).find(a=>e===(0,Hs.NZ)(a))}async removeLocationById(e,n){await this.requestIgnored("DELETE",`/locations/${encodeURIComponent(e)}`,n)}async removeEntityByUid(e,n){await this.requestIgnored("DELETE",`/entities/by-uid/${encodeURIComponent(e)}`,n)}async validateEntity(e,n,s){const a=await this.fetchApi.fetch(`${await this.discoveryApi.getBaseUrl("catalog")}/validate-entity`,{headers:{"Content-Type":"application/json",...(s==null?void 0:s.token)&&{Authorization:`Bearer ${s==null?void 0:s.token}`}},method:"POST",body:JSON.stringify({entity:e,location:n})});if(a.ok)return{valid:!0};if(a.status!==400)throw await Ge.V.fromResponse(a);const{errors:c=[]}=await a.json();return{valid:!1,errors:c}}async requestIgnored(e,n,s){const a=`${await this.discoveryApi.getBaseUrl("catalog")}${n}`,c=s!=null&&s.token?{Authorization:`Bearer ${s.token}`}:{},y=await this.fetchApi.fetch(a,{method:e,headers:c});if(!y.ok)throw await Ge.V.fromResponse(y)}async requestRequired(e,n,s){const a=`${await this.discoveryApi.getBaseUrl("catalog")}${n}`,c=s!=null&&s.token?{Authorization:`Bearer ${s.token}`}:{},y=await this.fetchApi.fetch(a,{method:e,headers:c});if(!y.ok)throw await Ge.V.fromResponse(y);return y.json()}async requestOptional(e,n,s){const a=`${await this.discoveryApi.getBaseUrl("catalog")}${n}`,c=s!=null&&s.token?{Authorization:`Bearer ${s.token}`}:{},y=await this.fetchApi.fetch(a,{method:e,headers:c});if(!y.ok){if(y.status===404)return;throw await Ge.V.fromResponse(y)}return await y.json()}getParams(e=[]){const n=[];for(const s of[e].flat()){const a=[];for(const[c,y]of Object.entries(s))for(const v of[y].flat())v===Gs.n?a.push(encodeURIComponent(c)):typeof v=="string"&&a.push(`${encodeURIComponent(c)}=${encodeURIComponent(v)}`);a.length&&n.push(`filter=${a.join(",")}`)}return n}constructor(e){(0,m._)(this,"discoveryApi",void 0),(0,m._)(this,"fetchApi",void 0),this.discoveryApi=e.discoveryApi,this.fetchApi=e.fetchApi||{fetch:jn()}}}var _s=t(88624),Ys=t(36802),Ar=t(36434),Tn=t(65524),Qs=t(15006),Ae=t(82963),Js=t(53945),un=t(76635);async function Xs({storageApi:r}){const e=r.forBucket("settings"),n=r.forBucket("starredEntities"),s=e.snapshot("starredEntities").value;if(!(0,un.isArray)(s))return;var a;const c=new Set((a=n.snapshot("entityRefs").value)!==null&&a!==void 0?a:[]);s.filter(un.isString).map(y=>y.split(":")).filter(y=>y.length===4&&y[0]==="entity").map(([y,v,w,W])=>(0,Rn.eE)({kind:v,namespace:w,name:W})).forEach(y=>c.add(y)),await n.set("entityRefs",Array.from(c)),await e.remove("starredEntities")}class qs{async toggleStarred(e){this.starredEntities.has(e)?this.starredEntities.delete(e):this.starredEntities.add(e),await this.settingsStore.set("entityRefs",Array.from(this.starredEntities))}starredEntitie$(){return this.observable}notifyChanges(){for(const e of this.subscribers)e.next(new Set(this.starredEntities))}constructor(e){(0,m._)(this,"settingsStore",void 0),(0,m._)(this,"starredEntities",void 0),(0,m._)(this,"subscribers",new Set),(0,m._)(this,"observable",new(H())(s=>(s.next(new Set(this.starredEntities)),this.subscribers.add(s),()=>{this.subscribers.delete(s)}))),Xs(e).then(),this.settingsStore=e.storageApi.forBucket("starredEntities");var n;this.starredEntities=new Set((n=this.settingsStore.snapshot("entityRefs").value)!==null&&n!==void 0?n:[]),this.settingsStore.observe$("entityRefs").subscribe({next:s=>{var a;this.starredEntities=new Set((a=s.value)!==null&&a!==void 0?a:[]),this.notifyChanges()}})}}const xe=(0,Qs.r)({id:"catalog",apis:[(0,qt.n)({api:_s.A,deps:{discoveryApi:de.N,fetchApi:Ln.g},factory:({discoveryApi:r,fetchApi:e})=>new Vs({discoveryApi:r,fetchApi:e})}),(0,qt.n)({api:Ys.p,deps:{storageApi:Mn},factory:({storageApi:r})=>new qs({storageApi:r})})],routes:{catalogIndex:Tn._Z,catalogEntity:Ar.w},externalRoutes:{createComponent:Tn.yw,viewTechDoc:Tn.jU,createFromTemplate:Tn.ql}}),ca=xe.provide((0,Ae.P4)({name:"CatalogIndexPage",component:()=>Promise.all([t.e(3893),t.e(1600)]).then(t.bind(t,51600)).then(r=>r.CatalogPage),mountPoint:Tn._Z})),ti=xe.provide((0,Ae.P4)({name:"CatalogEntityPage",component:()=>t.e(8951).then(t.bind(t,78951)).then(r=>r.CatalogEntityPage),mountPoint:Ar.w})),da=xe.provide((0,Ae.CO)({name:"EntityAboutCard",component:{lazy:()=>Promise.all([t.e(4966),t.e(7893)]).then(t.bind(t,37893)).then(r=>r.AboutCard)}})),ua=xe.provide((0,Ae.CO)({name:"EntityLinksCard",component:{lazy:()=>t.e(7750).then(t.bind(t,17750)).then(r=>r.EntityLinksCard)}})),ha=xe.provide((0,Ae.CO)({name:"EntityLabelsCard",component:{lazy:()=>t.e(5877).then(t.bind(t,85877)).then(r=>r.EntityLabelsCard)}})),fa=xe.provide((0,Ae.CO)({name:"EntityHasSystemsCard",component:{lazy:()=>t.e(5458).then(t.bind(t,5458)).then(r=>r.HasSystemsCard)}})),ga=xe.provide((0,Ae.CO)({name:"EntityHasComponentsCard",component:{lazy:()=>t.e(1105).then(t.bind(t,1105)).then(r=>r.HasComponentsCard)}})),pa=xe.provide((0,Ae.CO)({name:"EntityHasSubcomponentsCard",component:{lazy:()=>t.e(2440).then(t.bind(t,82440)).then(r=>r.HasSubcomponentsCard)}})),va=xe.provide((0,Ae.CO)({name:"EntityHasResourcesCard",component:{lazy:()=>t.e(9770).then(t.bind(t,79770)).then(r=>r.HasResourcesCard)}})),ma=xe.provide((0,Ae.CO)({name:"EntityDependsOnComponentsCard",component:{lazy:()=>t.e(9545).then(t.bind(t,19545)).then(r=>r.DependsOnComponentsCard)}})),ya=xe.provide((0,Ae.CO)({name:"EntityDependencyOfComponentsCard",component:{lazy:()=>t.e(184).then(t.bind(t,40184)).then(r=>r.DependencyOfComponentsCard)}})),Ea=xe.provide((0,Ae.CO)({name:"EntityDependsOnResourcesCard",component:{lazy:()=>t.e(1032).then(t.bind(t,81032)).then(r=>r.DependsOnResourcesCard)}})),xa=xe.provide((0,Ae.CO)({name:"RelatedEntitiesCard",component:{lazy:()=>t.e(3487).then(t.bind(t,33487)).then(r=>r.RelatedEntitiesCard)}})),Ca=xe.provide((0,Js.E5)({name:"CatalogSearchResultListItem",component:()=>t.e(7670).then(t.bind(t,27670)).then(r=>r.CatalogSearchResultListItem),predicate:r=>r.type==="software-catalog"}));var Sr=t(91657),Or=t(58496);class ei{async getApiOrigin(){return await this.discoveryApi.getBaseUrl("techdocs")}async getStorageUrl(){return`${await this.discoveryApi.getBaseUrl("techdocs")}/static/docs`}async getBuilder(){return this.configApi.getString("techdocs.builder")}async getEntityDocs(e,n){const a=`${await this.getApiOrigin()}/${n}`,c=await fetch(`${a.endsWith("/")?a:`${a}/`}index.html`);if(c.status===404)throw new Error("Page not found");return c.text()}async syncEntityDocs(e){return"cached"}async getBaseUrl(e,n,s){const a=await this.getApiOrigin();return new URL(e,`${a}/${s}`).toString()}constructor({configApi:e,discoveryApi:n,identityApi:s}){(0,m._)(this,"configApi",void 0),(0,m._)(this,"discoveryApi",void 0),(0,m._)(this,"identityApi",void 0),this.configApi=e,this.discoveryApi=n,this.identityApi=s}}class ni{async getApiOrigin(){return await this.discoveryApi.getBaseUrl("techdocs")}async getEntityMetadata(e){return{apiVersion:"backstage.io/v1alpha1",kind:"Component",metadata:{name:"local"},spec:{owner:"test",lifecycle:"experimental"}}}async getTechDocsMetadata(e){return{site_name:"Live preview environment",site_description:""}}constructor({configApi:e,discoveryApi:n,identityApi:s}){(0,m._)(this,"configApi",void 0),(0,m._)(this,"discoveryApi",void 0),(0,m._)(this,"identityApi",void 0),this.configApi=e,this.discoveryApi=n,this.identityApi=s}}const oi=[(0,qt.n)({api:Or.D,deps:{configApi:se.D,discoveryApi:de.N,identityApi:Xe.$},factory:({configApi:r,discoveryApi:e,identityApi:n})=>new ei({configApi:r,discoveryApi:e,identityApi:n})}),(0,qt.n)({api:Or.g,deps:{configApi:se.D,discoveryApi:de.N,identityApi:Xe.$},factory:({configApi:r,discoveryApi:e,identityApi:n})=>new ni({configApi:r,discoveryApi:e,identityApi:n})}),(0,qt.n)({api:Sr.q,deps:{configApi:se.D},factory:({configApi:r})=>Sr.a.fromConfig(r)})],ri={backend:{baseUrl:"http://localhost:3000"},techdocs:{builder:"external"}},si={backend:{baseUrl:"http://localhost:7007"},techdocs:{builder:"external"}};async function ii(){const r=await fetch("/.detect");return r.ok?(await r.text()).trim()==="techdocs-cli-server":!1}async function ai(){const r=await dr(),e=await ii();return[...r,{context:"detected",data:e?ri:si}]}var Ke=t(79692),li=t(58845);const ci=(0,Ke.Z)({svg:{width:"auto",height:30},path:{fill:"#7df3e1"}});var di=()=>{const r=ci();return(0,i.jsx)("svg",{className:r.svg,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 2079.95 456.05",children:(0,i.jsx)("path",{className:r.path,d:"M302.9,180a80.62,80.62,0,0,0,13.44-10.37c.8-.77,1.55-1.54,2.31-2.31a81.89,81.89,0,0,0,7.92-9.37,62.37,62.37,0,0,0,6.27-10.77,48.6,48.6,0,0,0,4.36-16.4c1.49-19.39-10-38.67-35.62-54.22L198.42,14,78.16,129.22l-78.29,75,108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.69,49.69,0,0,0-6.8-8.87,89.78,89.78,0,0,0,19.28,2.15H259a85.09,85.09,0,0,0,31-5.79A80.88,80.88,0,0,0,302.9,180Zm-100.59,59.8c-19.32,18.51-50.4,21.24-75.7,5.9l-75.13-45.6,67.44-64.65,76.42,46.39C222.88,198.57,221.36,221.6,202.31,239.84Zm8.94-82.21L140.6,114.74,205,53l69.37,42.11c25.94,15.73,29.31,37.05,10.55,55A60.71,60.71,0,0,1,211.25,157.63Zm29.86,190c-19.57,18.75-46.17,29.08-74.88,29.08a123.84,123.84,0,0,1-64.11-18.19L-.13,296.51v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.85,87.85,0,0,1,241.11,347.67Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,257.52V282.2l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.79A86.86,86.86,0,0,1,241.11,308.68Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,218.54v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.12,19.68-41.49v-1.82A87.14,87.14,0,0,1,241.11,269.7Zm83.69,25.74a94.16,94.16,0,0,1-60.19,25.86h0V348a81.6,81.6,0,0,0,51.73-22.37c14-13.38,21.15-28.11,21-42.64v-2.2A95.14,95.14,0,0,1,324.8,295.44Zm-83.69,91.21c-19.57,18.75-46.17,29.09-74.88,29.09a123.76,123.76,0,0,1-64.11-18.2L-.13,335.49v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.35,87.35,0,0,1,241.11,386.65Zm85.75-210.21c-.68.69-1.35,1.38-2.06,2.05a99.19,99.19,0,0,1-22.23,15.69,94.53,94.53,0,0,1-26.24,8.71,97.84,97.84,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a52.7,52.7,0,0,1,1.13,12V231h.05A84.48,84.48,0,0,0,290,225.47a80.83,80.83,0,0,0,26.38-16.82c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,62.85,62.85,0,0,0,6.29-10.78,48.5,48.5,0,0,0,4.32-16.44c.09-1.23.2-2.47.19-3.7v-2c-.72,1-1.48,2.06-2.26,3.09A98,98,0,0,1,326.86,176.44Zm0,77.92c-.68.7-1.3,1.41-2,2.1a94.09,94.09,0,0,1-60.19,25.85h0V309h0a81.65,81.65,0,0,0,51.73-22.37,73.51,73.51,0,0,0,16.48-22.49,48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A95.81,95.81,0,0,1,326.82,254.36Zm0-39c-.68.7-1.3,1.41-2,2.1a92.22,92.22,0,0,1-10.62,8.65,93.53,93.53,0,0,1-11.63,7,95.63,95.63,0,0,1-37.94,10.18h-.05l0,26.67h0a81.63,81.63,0,0,0,51.73-22.37c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,63.16,63.16,0,0,0,6.29-10.77,48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A98.19,98.19,0,0,1,326.82,215.38Zm241-88.84q7.94,0,17.09.17t18.12,1a139.3,139.3,0,0,1,16.74,2.57,42.78,42.78,0,0,1,13.3,5.14,64.27,64.27,0,0,1,20.54,19.89Q662,168,662,186.54q0,19.54-9.49,33.78t-27.1,21.09v.68q22.78,4.82,34.87,20.58t12.08,38.4a72.62,72.62,0,0,1-4.83,26.06,65.29,65.29,0,0,1-14.33,22.46,71.57,71.57,0,0,1-23.47,15.78q-14,6-32.28,6H478.38V126.54Zm9,105.27q28,0,40.21-9.78t12.26-29.31q0-13-4.14-20.58a29.47,29.47,0,0,0-11.4-11.66A45,45,0,0,0,597,155.17a161.2,161.2,0,0,0-20.19-1.2h-65.6v77.84Zm16.57,112.13q21.74,0,34-11.66T639.59,300q0-12-4.48-19.88a34.85,34.85,0,0,0-11.91-12.52,50.14,50.14,0,0,0-17.09-6.52,105,105,0,0,0-20-1.88H511.17v84.7Zm274.79,26.74q-7.61,4.45-21.06,4.46-11.4,0-18.12-6.34t-6.74-20.75a70.17,70.17,0,0,1-28.13,20.75,97.87,97.87,0,0,1-57.65,3.6,53.51,53.51,0,0,1-18.82-8.58A41.19,41.19,0,0,1,705,348.56q-4.65-9.42-4.66-22.8,0-15.09,5.18-24.69a44.92,44.92,0,0,1,13.64-15.6,62.63,62.63,0,0,1,19.33-9.09q10.88-3.08,22.27-5.14,12.08-2.4,23-3.6a128,128,0,0,0,19.16-3.43c5.53-1.48,9.89-3.65,13.12-6.51s4.83-7,4.83-12.52q0-9.6-3.62-15.43a24.94,24.94,0,0,0-9.32-8.92,38.38,38.38,0,0,0-12.78-4.11,96.54,96.54,0,0,0-14-1q-18.63,0-31.07,7T736.6,249.29H707.26q.69-16.46,6.9-27.77a52.21,52.21,0,0,1,16.57-18.35,70,70,0,0,1,23.65-10.11A125.51,125.51,0,0,1,782.86,190a168.63,168.63,0,0,1,24,1.72,63.26,63.26,0,0,1,21.58,7A41.23,41.23,0,0,1,844,213.59q5.87,9.57,5.87,25v91q0,10.26,1.21,15.05t8.11,4.79a35.57,35.57,0,0,0,9-1.37Zm-47.64-90.87c-3.69,2.74-8.52,4.72-14.5,6s-12.26,2.27-18.82,3.07-13.17,1.71-19.85,2.73a73.7,73.7,0,0,0-18,4.94,32.62,32.62,0,0,0-12.94,9.73q-5,6.32-5,17.23a23.31,23.31,0,0,0,2.94,12.11,24.11,24.11,0,0,0,7.59,8,32,32,0,0,0,10.88,4.44,60.94,60.94,0,0,0,13.11,1.36q14.5,0,24.86-3.92a52.49,52.49,0,0,0,16.91-9.9,39.1,39.1,0,0,0,9.67-13,32.53,32.53,0,0,0,3.11-13.14ZM1002.07,225q-11.05-9.25-29.69-9.26-15.89,0-26.58,5.83A47.29,47.29,0,0,0,928.71,237a64.66,64.66,0,0,0-9.15,22.12A119.83,119.83,0,0,0,916.8,285a98.22,98.22,0,0,0,2.93,24,64.18,64.18,0,0,0,9.15,20.74,46.2,46.2,0,0,0,16.23,14.58q10,5.49,23.82,5.48,21.75,0,34-11.31t15-31.89h30q-4.83,32.91-24.68,50.75t-54,17.83q-20.37,0-36.07-6.52A69.86,69.86,0,0,1,907,350.11a79.92,79.92,0,0,1-15.88-28.63A118.64,118.64,0,0,1,885.73,285a129.41,129.41,0,0,1,5.18-37.21,85.63,85.63,0,0,1,15.71-30.17A73.46,73.46,0,0,1,933,197.35Q948.91,190,970,190a108.54,108.54,0,0,1,28.48,3.6,69.59,69.59,0,0,1,23.48,11.15,61,61,0,0,1,16.74,19q6.55,11.49,8.29,27.26h-30.38Q1013.11,234.21,1002.07,225Zm109.77-98.41v145l81.47-77.49h39.36l-70.77,64.46,75.95,112.82h-37.29l-61.1-92.59-27.62,25.38v67.21H1082.5V126.54Zm170.54,205.22a31.07,31.07,0,0,0,10.87,10.63,49,49,0,0,0,15.19,5.66,87.06,87.06,0,0,0,17.44,1.71,109.18,109.18,0,0,0,14.5-1,53.22,53.22,0,0,0,14-3.78,26.27,26.27,0,0,0,10.53-8q4.14-5.32,4.14-13.55,0-11.31-8.63-17.14a73.69,73.69,0,0,0-21.58-9.43q-12.94-3.6-28.13-6.52a146,146,0,0,1-28.14-8.23A58.16,58.16,0,0,1,1261,267.13q-8.64-9.6-8.63-26.75,0-13.38,6-23a49.26,49.26,0,0,1,15.53-15.61,71.76,71.76,0,0,1,21.4-8.91A99.41,99.41,0,0,1,1319,190a141.31,141.31,0,0,1,28,2.58,64.85,64.85,0,0,1,22.62,8.91,46.16,46.16,0,0,1,15.7,17.15q5.87,10.8,6.91,26.91h-29.35q-.69-8.57-4.48-14.23a29.36,29.36,0,0,0-9.67-9.08,44.16,44.16,0,0,0-12.94-5,67.68,67.68,0,0,0-14.33-1.54,87.29,87.29,0,0,0-13.29,1,45.28,45.28,0,0,0-12.26,3.6,24.49,24.49,0,0,0-9,6.86q-3.46,4.29-3.46,11.14a16.32,16.32,0,0,0,5.36,12.52,42.75,42.75,0,0,0,13.63,8.23,120,120,0,0,0,18.64,5.48q10.37,2.24,20.72,4.63,11,2.4,21.57,5.83A70.74,70.74,0,0,1,1382,284.1a44.55,44.55,0,0,1,13.12,14.23q5,8.58,5,21.26,0,16.13-6.73,26.75a52.5,52.5,0,0,1-17.61,17.14,73.89,73.89,0,0,1-24.51,9.09,146.3,146.3,0,0,1-27.1,2.57,126.24,126.24,0,0,1-28.31-3.09A69.56,69.56,0,0,1,1272,361.94a51.74,51.74,0,0,1-16.57-18.52q-6.21-11.49-6.9-27.95h29.34A32.65,32.65,0,0,0,1282.38,331.76Zm226.46-137.67v25.72h-35.56V329.88a31.37,31.37,0,0,0,.87,8.23,8.42,8.42,0,0,0,3.28,4.8,14.61,14.61,0,0,0,6.73,2.23,99.19,99.19,0,0,0,11.22.51h13.46v25.72H1486.4a105.8,105.8,0,0,1-19.5-1.55,28.65,28.65,0,0,1-13.12-5.65,24.09,24.09,0,0,1-7.42-11.66q-2.43-7.54-2.42-19.89V219.81h-30.38V194.09h30.38V140.94h29.34v53.15ZM1699.4,370.68q-7.61,4.45-21.06,4.46-11.4,0-18.12-6.34t-6.74-20.75a70.17,70.17,0,0,1-28.13,20.75,97.87,97.87,0,0,1-57.65,3.6,53.51,53.51,0,0,1-18.82-8.58,41.19,41.19,0,0,1-12.6-15.26q-4.65-9.42-4.66-22.8,0-15.09,5.18-24.69a44.92,44.92,0,0,1,13.64-15.6,62.63,62.63,0,0,1,19.33-9.09q10.88-3.08,22.27-5.14,12.07-2.4,23-3.6a128,128,0,0,0,19.16-3.43c5.53-1.48,9.89-3.65,13.12-6.51s4.83-7,4.83-12.52q0-9.6-3.62-15.43a24.94,24.94,0,0,0-9.32-8.92,38.38,38.38,0,0,0-12.78-4.11,96.54,96.54,0,0,0-14-1q-18.63,0-31.07,7t-13.46,26.57h-29.34q.67-16.46,6.9-27.77A52.21,52.21,0,0,1,1562,203.17a70,70,0,0,1,23.65-10.11,125.51,125.51,0,0,1,28.48-3.09,168.63,168.63,0,0,1,24,1.72,63.26,63.26,0,0,1,21.58,7,41.23,41.23,0,0,1,15.53,14.89q5.87,9.57,5.87,25v91q0,10.26,1.21,15.05t8.11,4.79a35.57,35.57,0,0,0,9-1.37Zm-47.64-90.87c-3.69,2.74-8.52,4.72-14.5,6s-12.26,2.27-18.82,3.07-13.17,1.71-19.85,2.73a73.7,73.7,0,0,0-17.95,4.94,32.62,32.62,0,0,0-12.94,9.73q-5,6.32-5,17.23a23.31,23.31,0,0,0,2.94,12.11,24.11,24.11,0,0,0,7.59,8,32,32,0,0,0,10.88,4.44,60.94,60.94,0,0,0,13.11,1.36q14.51,0,24.86-3.92a52.49,52.49,0,0,0,16.91-9.9,39.1,39.1,0,0,0,9.67-13,32.53,32.53,0,0,0,3.11-13.14Zm208.85,141.62q-20,21.6-62.83,21.6a122.11,122.11,0,0,1-25.37-2.74,78,78,0,0,1-23.48-8.92,54.41,54.41,0,0,1-17.43-16.11q-6.91-10-7.6-24.35h29.35a21.47,21.47,0,0,0,5,13.38,36.67,36.67,0,0,0,11.4,8.91,55.52,55.52,0,0,0,14.67,5,79.51,79.51,0,0,0,15.19,1.55q14.49,0,24.51-5A46,46,0,0,0,1840.59,401a56.53,56.53,0,0,0,9.49-21.09,117.46,117.46,0,0,0,2.94-27.09V341.19h-.7q-7.59,16.46-23,24.18a71.8,71.8,0,0,1-32.63,7.71q-20,0-34.86-7.2A72.88,72.88,0,0,1,1737,346.51a82.13,82.13,0,0,1-15-28.46,116.62,116.62,0,0,1-5-34.47,133.92,133.92,0,0,1,4.14-32.4A88.17,88.17,0,0,1,1735,221a75.49,75.49,0,0,1,25.55-22.29q15.87-8.75,39-8.75a66.21,66.21,0,0,1,31.07,7.38,52.13,52.13,0,0,1,22.09,22.11h.35V194.09h27.61V356.28Q1880.63,399.83,1860.61,421.43Zm-37.46-79.72a47.94,47.94,0,0,0,16.4-15.78,71.89,71.89,0,0,0,9.15-22.11,106.77,106.77,0,0,0,2.93-24.69,96.71,96.71,0,0,0-2.76-23,64,64,0,0,0-8.8-20.4,45.76,45.76,0,0,0-15.71-14.57q-9.66-5.49-23.47-5.49-14.16,0-24.17,5.32a46.77,46.77,0,0,0-16.4,14.23,60.14,60.14,0,0,0-9.32,20.57,99.69,99.69,0,0,0-2.93,24.35,120.63,120.63,0,0,0,2.42,24,67.5,67.5,0,0,0,8.28,21.77,46.37,46.37,0,0,0,15.54,15.78q9.66,6,24.16,6T1823.15,341.71Zm228,18.34q-20,15.09-50.41,15.09-21.4,0-37.11-6.86a73.16,73.16,0,0,1-26.41-19.2,81.52,81.52,0,0,1-16-29.49,141.12,141.12,0,0,1-6-37.38,106.1,106.1,0,0,1,6.21-37A88.56,88.56,0,0,1,1938.8,216a79.09,79.09,0,0,1,26.58-19.2A81.66,81.66,0,0,1,1999,190q23.82,0,39.53,9.78a78,78,0,0,1,25.2,24.86,98.18,98.18,0,0,1,13.12,32.91,140.6,140.6,0,0,1,2.93,34h-133.6a70,70,0,0,0,2.76,22.12,49.9,49.9,0,0,0,10,18.51A49.1,49.1,0,0,0,1976.6,345q10.7,4.82,25.2,4.8,18.65,0,30.55-8.57t15.71-26.06h29Q2071.18,345,2051.17,360.05Zm-7.08-113.84a50,50,0,0,0-10.7-16,53.1,53.1,0,0,0-56.62-10.63,47.48,47.48,0,0,0-15.71,10.81,51.69,51.69,0,0,0-10.35,15.94,60.18,60.18,0,0,0-4.49,19.37h102.53A59.47,59.47,0,0,0,2044.09,246.21ZM302.9,180a80.62,80.62,0,0,0,13.44-10.37c.8-.77,1.55-1.54,2.31-2.31a81.89,81.89,0,0,0,7.92-9.37,62.37,62.37,0,0,0,6.27-10.77,48.6,48.6,0,0,0,4.36-16.4c1.49-19.39-10-38.67-35.62-54.22L198.42,14,78.16,129.22l-78.29,75,108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.69,49.69,0,0,0-6.8-8.87,89.78,89.78,0,0,0,19.28,2.15H259a85.09,85.09,0,0,0,31-5.79A80.88,80.88,0,0,0,302.9,180Zm-100.59,59.8c-19.32,18.51-50.4,21.24-75.7,5.9l-75.13-45.6,67.44-64.65,76.42,46.39C222.88,198.57,221.36,221.6,202.31,239.84Zm8.94-82.21L140.6,114.74,205,53l69.37,42.11c25.94,15.73,29.31,37.05,10.55,55A60.71,60.71,0,0,1,211.25,157.63Zm29.86,190c-19.57,18.75-46.17,29.08-74.88,29.08a123.84,123.84,0,0,1-64.11-18.19L-.13,296.51v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.85,87.85,0,0,1,241.11,347.67Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,257.52V282.2l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.79A86.86,86.86,0,0,1,241.11,308.68Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.84,123.84,0,0,1-64.11-18.19L-.13,218.54v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.12,19.68-41.49v-1.82A87.14,87.14,0,0,1,241.11,269.7Zm83.69,25.74a94.16,94.16,0,0,1-60.19,25.86h0V348a81.6,81.6,0,0,0,51.73-22.37c14-13.38,21.15-28.11,21-42.64v-2.2A95.14,95.14,0,0,1,324.8,295.44Zm-83.69,91.21c-19.57,18.75-46.17,29.09-74.88,29.09a123.76,123.76,0,0,1-64.11-18.2L-.13,335.49v24.67l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.35,87.35,0,0,1,241.11,386.65Zm85.75-210.21c-.68.69-1.35,1.38-2.06,2.05a99.19,99.19,0,0,1-22.23,15.69,94.53,94.53,0,0,1-26.24,8.71,97.84,97.84,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a52.7,52.7,0,0,1,1.13,12V231h.05A84.48,84.48,0,0,0,290,225.47a80.83,80.83,0,0,0,26.38-16.82c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,62.85,62.85,0,0,0,6.29-10.78,48.5,48.5,0,0,0,4.32-16.44c.09-1.23.2-2.47.19-3.7v-2c-.72,1-1.48,2.06-2.26,3.09A98,98,0,0,1,326.86,176.44Zm0,77.92c-.68.7-1.3,1.41-2,2.1a94.09,94.09,0,0,1-60.19,25.85h0V309h0a81.65,81.65,0,0,0,51.73-22.37,73.51,73.51,0,0,0,16.48-22.49,48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A95.81,95.81,0,0,1,326.82,254.36Zm0-39c-.68.7-1.3,1.41-2,2.1a92.22,92.22,0,0,1-10.62,8.65,93.53,93.53,0,0,1-11.63,7,95.63,95.63,0,0,1-37.94,10.18h-.05l0,26.67h0a81.63,81.63,0,0,0,51.73-22.37c.81-.77,1.51-1.56,2.27-2.34a82,82,0,0,0,7.92-9.38,63.16,63.16,0,0,0,6.29-10.77,48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7v-2.2c-.74,1.08-1.47,2.16-2.27,3.22A98.19,98.19,0,0,1,326.82,215.38Z"})})};const ui=(0,Ke.Z)({svg:{width:"auto",height:28},path:{fill:"#7df3e1"}});var hi=()=>{const r=ui();return(0,i.jsx)("svg",{className:r.svg,xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 337.46 428.5",children:(0,i.jsx)("path",{className:r.path,d:"M303,166.05a80.69,80.69,0,0,0,13.45-10.37c.79-.77,1.55-1.53,2.3-2.3a83.12,83.12,0,0,0,7.93-9.38A63.69,63.69,0,0,0,333,133.23a48.58,48.58,0,0,0,4.35-16.4c1.49-19.39-10-38.67-35.62-54.22L198.56,0,78.3,115.23,0,190.25l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.69,19.16-18.36,25.52-42.12,13.7-61.87a49.22,49.22,0,0,0-6.8-8.87A89.17,89.17,0,0,0,259,178.29h.15a85.08,85.08,0,0,0,31-5.79A80.88,80.88,0,0,0,303,166.05ZM202.45,225.86c-19.32,18.51-50.4,21.23-75.7,5.9L51.61,186.15l67.45-64.64,76.41,46.38C223,184.58,221.49,207.61,202.45,225.86Zm8.93-82.22-70.65-42.89L205.14,39,274.51,81.1c25.94,15.72,29.31,37,10.55,55A60.69,60.69,0,0,1,211.38,143.64Zm29.86,190c-19.57,18.75-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,282.52v24.67L108.6,373.1a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A87.27,87.27,0,0,1,241.24,333.68Zm0-39c-19.57,18.75-46.17,29.08-74.88,29.08a123.81,123.81,0,0,1-64.1-18.19L0,243.53v24.68l108.6,65.91a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.81,66.42-25.69,12.88-12.34,20-27.13,19.68-41.5v-1.78A87.27,87.27,0,0,1,241.24,294.7Zm0-39c-19.57,18.76-46.17,29.09-74.88,29.09a123.81,123.81,0,0,1-64.1-18.19L0,204.55v24.68l108.6,65.91a111.59,111.59,0,0,0,57.76,16.41c24.92,0,48.8-8.8,66.42-25.68,12.88-12.35,20-27.13,19.68-41.5v-1.82A86.09,86.09,0,0,1,241.24,255.71Zm83.7,25.74a94.15,94.15,0,0,1-60.2,25.86h0V334a81.6,81.6,0,0,0,51.74-22.37c14-13.38,21.14-28.11,21-42.64v-2.19A94.92,94.92,0,0,1,324.94,281.45Zm-83.7,91.21c-19.57,18.76-46.17,29.09-74.88,29.09a123.73,123.73,0,0,1-64.1-18.2L0,321.5v24.68l108.6,65.9a111.6,111.6,0,0,0,57.76,16.42c24.92,0,48.8-8.8,66.42-25.69,12.88-12.34,20-27.13,19.68-41.49v-1.79A86.29,86.29,0,0,1,241.24,372.66ZM327,162.45c-.68.69-1.35,1.38-2.05,2.06a94.37,94.37,0,0,1-10.64,8.65,91.35,91.35,0,0,1-11.6,7,94.53,94.53,0,0,1-26.24,8.71,97.69,97.69,0,0,1-14.16,1.57c.5,1.61.9,3.25,1.25,4.9a53.27,53.27,0,0,1,1.14,12V217h.05a84.41,84.41,0,0,0,25.35-5.55,81,81,0,0,0,26.39-16.82c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,172.17a48.55,48.55,0,0,0,4.32-16.45c.09-1.23.2-2.47.19-3.7V150q-1.08,1.54-2.25,3.09A96.73,96.73,0,0,1,327,162.45Zm0,77.92c-.69.7-1.31,1.41-2,2.1a94.2,94.2,0,0,1-60.2,25.86h0l0,26.67h0a81.6,81.6,0,0,0,51.74-22.37A73.51,73.51,0,0,0,333,250.13a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.47.19-3.71v-2.19c-.74,1.07-1.46,2.15-2.27,3.21A95.68,95.68,0,0,1,327,240.37Zm0-39c-.69.7-1.31,1.41-2,2.1a93.18,93.18,0,0,1-10.63,8.65,91.63,91.63,0,0,1-11.63,7,95.47,95.47,0,0,1-37.94,10.18h0V256h0a81.65,81.65,0,0,0,51.74-22.37c.8-.77,1.5-1.56,2.26-2.34a82.08,82.08,0,0,0,7.93-9.38A63.76,63.76,0,0,0,333,211.15a48.56,48.56,0,0,0,4.32-16.44c.09-1.24.2-2.48.19-3.71v-2.2c-.74,1.08-1.46,2.16-2.27,3.22A95.68,95.68,0,0,1,327,201.39Z"})})},ge=t(76921);const br={isOpen:!1,setOpen:()=>{}},Pr=(0,d.createContext)(br),Rr=(0,Nn.CT)("sidebar-open-state-context");function Tr(r){const{children:e,value:n}=r;return(0,i.jsx)(Pr.Provider,{value:n,children:(0,i.jsx)(Rr.Provider,{value:(0,Zn.E)({1:n}),children:e})})}const Yo=()=>{const r=(0,d.useContext)(Rr),e=(0,d.useContext)(Pr);if(r===void 0)return e||br;const n=r.atVersion(1);if(n===void 0)throw new Error("No context found for version 1.");return n};var wr=t(98864),Ir=t(44409),Ve=t(62774),Dr=t(41156),fi=t(72779),en=t.n(fi),gi=t(50023),Mr=t(61837),pi=t(4190),Qo=t(90436),vi=t(87685),mi=t(44882),yi=t(57998);const Lr=(0,d.createContext)({selectedMenuItemIndex:-1,setSelectedMenuItemIndex:()=>{}});var Jo=t(93539);const Ei=(0,Ke.Z)(r=>({root:{flexGrow:0,margin:r.spacing(0,2),color:r.palette.navigation.color},selected:e=>({color:`${r.palette.navigation.selectedColor}!important`,borderTop:`solid ${e.sidebarConfig.selectedIndicatorWidth}px ${r.palette.navigation.indicator}`,marginTop:"-1px"}),label:{display:"none"}})),xi=r=>{const{to:e,label:n,icon:s,value:a}=r,{sidebarConfig:c}=(0,d.useContext)(ge.kG),y=Ei({sidebarConfig:c}),v=(0,p.TH)(),{selectedMenuItemIndex:w,setSelectedMenuItemIndex:W}=(0,d.useContext)(Lr),X=(vt,gt)=>{W(gt===w?-1:gt)},it=a===w&&w>=0||a!==w&&!(w>=0)&&e===v.pathname;return(0,i.jsx)(yi.Z,{"aria-label":n,label:n,icon:s,component:wr.rU,to:e||v.pathname,onChange:X,value:a,selected:it,classes:y})},jr=r=>{const{children:e,to:n,label:s,icon:a,value:c}=r,{isMobile:y}=(0,Jo.Pf)();return y?(0,i.jsx)(xi,{to:n,label:s,icon:a,value:c}):(0,i.jsx)(i.Fragment,{children:e})},Br=(0,Ke.Z)(r=>({root:{position:"fixed",backgroundColor:r.palette.navigation.background,color:r.palette.navigation.color,bottom:0,left:0,right:0,zIndex:r.zIndex.snackbar,borderTop:"1px solid #383838","@media print":{display:"none"}},overlay:e=>({background:r.palette.navigation.background,width:"100%",bottom:`${e.sidebarConfig.mobileSidebarHeight}px`,height:`calc(100% - ${e.sidebarConfig.mobileSidebarHeight}px)`,flex:"0 1 auto",overflow:"auto"}),overlayHeader:{display:"flex",color:r.palette.navigation.color,alignItems:"center",justifyContent:"space-between",padding:r.spacing(2,3)},overlayHeaderClose:{color:r.palette.navigation.color},marginMobileSidebar:e=>({marginBottom:`${e.sidebarConfig.mobileSidebarHeight}px`})})),Ci=r=>(0,un.orderBy)(r,({props:{priority:e}})=>Number.isInteger(e)?e:-1,"desc"),Ai=d.createElement(jr).type,Si=({children:r,label:e="Menu",open:n,onClose:s})=>{const{sidebarConfig:a}=(0,d.useContext)(ge.kG),c=Br({sidebarConfig:a});return(0,i.jsxs)(pi.ZP,{anchor:"bottom",open:n,onClose:s,ModalProps:{BackdropProps:{classes:{root:c.marginMobileSidebar}}},classes:{root:c.marginMobileSidebar,paperAnchorBottom:c.overlay},children:[(0,i.jsxs)(Ve.Z,{className:c.overlayHeader,children:[(0,i.jsx)(Qo.Z,{variant:"h3",children:e}),(0,i.jsx)(Mr.Z,{onClick:s,classes:{root:c.overlayHeaderClose},children:(0,i.jsx)(vi.Z,{})})]}),(0,i.jsx)(Ve.Z,{component:"nav",children:r})]})},Oi=r=>{const{sidebarConfig:e}=(0,d.useContext)(ge.kG),{children:n}=r,s=Br({sidebarConfig:e}),a=(0,p.TH)(),[c,y]=(0,d.useState)(-1);(0,d.useEffect)(()=>{y(-1)},[a.pathname]);let v=(0,no.v)(n,W=>W.getElements().filter(X=>X.type===Ai));if(n)v.length?v=Ci(v):v.push((0,i.jsx)(jr,{icon:(0,i.jsx)(mi.Z,{}),children:n},"default_menu"));else return null;const w=c>=0&&!v[c].props.to;return(0,i.jsx)(Tr,{value:{isOpen:!0,setOpen:()=>{}},children:(0,i.jsxs)(Lr.Provider,{value:{selectedMenuItemIndex:c,setSelectedMenuItemIndex:y},children:[(0,i.jsx)(Si,{label:v[c]&&v[c].props.label,open:w,onClose:()=>y(-1),children:v[c]&&v[c].props.children}),(0,i.jsx)(gi.Z,{className:s.root,"data-testid":"mobile-sidebar-root",component:"nav",children:v})]})})},Ur=(0,Ke.Z)(r=>({drawer:{display:"flex",flexFlow:"column nowrap",alignItems:"flex-start",position:"fixed",left:0,top:0,bottom:0,zIndex:r.zIndex.appBar,background:r.palette.navigation.background,overflowX:"hidden",msOverflowStyle:"none",scrollbarWidth:"none",transition:r.transitions.create("width",{easing:r.transitions.easing.sharp,duration:r.transitions.duration.shortest}),"& > *":{flexShrink:0},"&::-webkit-scrollbar":{display:"none"},"@media print":{display:"none"}},drawerWidth:e=>({width:e.sidebarConfig.drawerWidthClosed}),drawerOpen:e=>({width:e.sidebarConfig.drawerWidthOpen,transition:r.transitions.create("width",{easing:r.transitions.easing.sharp,duration:r.transitions.duration.shorter})}),visuallyHidden:{top:0,position:"absolute",zIndex:1e3,transform:"translateY(-200%)","&:focus":{transform:"translateY(5px)"}}}),{name:"BackstageSidebar"});var $r;(function(r){r[r.Closed=0]="Closed",r[r.Idle=1]="Idle",r[r.Open=2]="Open"})($r||($r={}));const bi=r=>{const{sidebarConfig:e}=(0,d.useContext)(ge.kG),{openDelayMs:n=e.defaultOpenDelayMs,closeDelayMs:s=e.defaultCloseDelayMs,disableExpandOnHover:a,children:c}=r,y=Ur({sidebarConfig:e}),v=(0,Dr.Z)(Xt=>Xt.breakpoints.down("md"),{noSsr:!0}),[w,W]=(0,d.useState)(0),X=(0,d.useRef)(),{isPinned:it,toggleSidebarPinState:vt}=(0,Jo.Pf)(),gt=()=>{it||a||(X.current&&(clearTimeout(X.current),X.current=void 0),w!==2&&!v&&(X.current=window.setTimeout(()=>{X.current=void 0,W(2)},n),W(1)))},mt=()=>{it||a||(X.current&&(clearTimeout(X.current),X.current=void 0),w===1?W(0):w===2&&(X.current=window.setTimeout(()=>{X.current=void 0,W(0)},s)))},$t=w===2&&!v||it,Ht=Xt=>{Xt?(W(2),vt()):(W(0),vt())};return(0,i.jsxs)("nav",{style:{},"aria-label":"sidebar nav",children:[(0,i.jsx)(Ri,{}),(0,i.jsx)(Tr,{value:{isOpen:$t,setOpen:Ht},children:(0,i.jsx)(Ve.Z,{className:y.root,"data-testid":"sidebar-root",onMouseEnter:a?()=>{}:gt,onFocus:a?()=>{}:gt,onMouseLeave:a?()=>{}:mt,onBlur:a?()=>{}:mt,children:(0,i.jsx)(Ve.Z,{className:en()(y.drawer,y.drawerWidth,{[y.drawerOpen]:$t}),children:c})})})]})},Pi=r=>{var e;const n=(0,ge.$E)((e=r.sidebarOptions)!==null&&e!==void 0?e:{});var s;const a=(0,ge.rW)((s=r.submenuOptions)!==null&&s!==void 0?s:{}),{children:c,disableExpandOnHover:y,openDelayMs:v,closeDelayMs:w}=r,{isMobile:W}=(0,Jo.Pf)();return W?(0,i.jsx)(Oi,{children:c}):(0,i.jsx)(ge.kG.Provider,{value:{sidebarConfig:n,submenuConfig:a},children:(0,i.jsx)(bi,{openDelayMs:v,closeDelayMs:w,disableExpandOnHover:y,children:c})})};function Ri(){const{sidebarConfig:r}=(0,d.useContext)(ge.kG),{focusContent:e,contentRef:n}=(0,Ir.r)(),s=Ur({sidebarConfig:r});return n!=null&&n.current?(0,i.jsx)(A.Z,{onClick:e,variant:"contained",className:en()(s.visuallyHidden),children:"Skip to content"}):null}var Ti=t(26739),oo=t(1667),wi=t(83543),Ii=t(59797),Fr=t(98989);const Di=(0,Ke.Z)(r=>({root:{zIndex:1e3,position:"relative",overflow:"visible",width:r.spacing(7)+1},drawer:e=>{var n,s;return{display:"flex",flexFlow:"column nowrap",alignItems:"flex-start",position:"fixed",[r.breakpoints.up("sm")]:{marginLeft:e.left,transition:r.transitions.create("margin-left",{easing:r.transitions.easing.sharp,duration:r.transitions.duration.shortest})},top:0,bottom:0,padding:0,background:(s=(n=r.palette.navigation.submenu)===null||n===void 0?void 0:n.background)!==null&&s!==void 0?s:"#404040",overflowX:"hidden",msOverflowStyle:"none",scrollbarWidth:"none",cursor:"default",width:e.submenuConfig.drawerWidthClosed,transitionDelay:`${e.submenuConfig.defaultOpenDelayMs}ms`,"& > *":{flexShrink:0},"&::-webkit-scrollbar":{display:"none"}}},drawerOpen:e=>({width:e.submenuConfig.drawerWidthOpen,[r.breakpoints.down("xs")]:{width:"100%",position:"relative",paddingLeft:r.spacing(3),left:0,top:0}}),title:{fontSize:r.typography.h5.fontSize,fontWeight:r.typography.fontWeightMedium,color:r.palette.common.white,padding:r.spacing(2.5),[r.breakpoints.down("xs")]:{display:"none"}}}),{name:"BackstageSidebarSubmenu"}),Mi=r=>{const{isOpen:e}=Yo(),{sidebarConfig:n,submenuConfig:s}=(0,d.useContext)(ge.kG),a=e?n.drawerWidthOpen:n.drawerWidthClosed,c=Di({left:a,submenuConfig:s}),{isHoveredOn:y}=(0,d.useContext)(ge.Ag),[v,w]=(0,d.useState)(!1);return(0,d.useEffect)(()=>{w(y)},[y]),(0,i.jsxs)(Ve.Z,{className:en()(c.drawer,{[c.drawerOpen]:v}),children:[(0,i.jsx)(Qo.Z,{variant:"h5",component:"span",className:c.title,children:r.title}),r.children]})};var Li=t(19126),Wr=t.n(Li);function Nr(r,e,n=!1){const s=new URLSearchParams(e.search).toString(),a=Wr().parse(s),c=new URLSearchParams(r.search).toString(),y=Wr().parse(c),v=n?un.isEqual:un.isMatch;return(0,un.isEqual)(e.pathname,r.pathname)&&v(y,a)}const ji=r=>(0,Ke.Z)(e=>{var n,s,a,c;return{root:{color:e.palette.navigation.color,display:"flex",flexFlow:"row nowrap",alignItems:"center",height:48,cursor:"pointer"},buttonItem:{background:"none",border:"none",width:"100%",margin:0,padding:0,textAlign:"inherit",font:"inherit",textTransform:"none"},closed:{width:r.drawerWidthClosed,justifyContent:"center"},open:{[e.breakpoints.up("sm")]:{width:r.drawerWidthOpen}},highlightable:{"&:hover":{background:(a=(n=e.palette.navigation.navItem)===null||n===void 0?void 0:n.hoverBackground)!==null&&a!==void 0?a:"#404040"}},highlighted:{background:(c=(s=e.palette.navigation.navItem)===null||s===void 0?void 0:s.hoverBackground)!==null&&c!==void 0?c:"#404040"},label:{fontWeight:"bold",whiteSpace:"nowrap",lineHeight:"auto",flex:"3 1 auto",width:"110px",overflow:"hidden","text-overflow":"ellipsis"},iconContainer:{boxSizing:"border-box",height:"100%",width:r.iconContainerWidth,marginRight:-e.spacing(2),display:"flex",alignItems:"center",justifyContent:"center",lineHeight:"0"},searchRoot:{marginBottom:12},searchField:{color:"#b5b5b5",fontWeight:e.typography.fontWeightBold,fontSize:e.typography.fontSize},searchFieldHTMLInput:{padding:e.spacing(2,0,2)},searchContainer:{width:r.drawerWidthOpen-r.iconContainerWidth},secondaryAction:{width:e.spacing(6),textAlign:"center",marginRight:e.spacing(1)},closedItemIcon:{width:"100%",justifyContent:"center"},submenuArrow:{display:"flex"},expandButton:{background:"none",border:"none",color:e.palette.navigation.color,width:"100%",cursor:"pointer",position:"relative",height:48},arrows:{position:"absolute",right:10},selected:{"&$root":{borderLeft:`solid ${r.selectedIndicatorWidth}px ${e.palette.navigation.indicator}`,color:e.palette.navigation.selectedColor},"&$closed":{width:r.drawerWidthClosed},"& $closedItemIcon":{paddingRight:r.selectedIndicatorWidth},"& $iconContainer":{marginLeft:-r.selectedIndicatorWidth}}}},{name:"BackstageSidebarItem"});function ro(r){return(0,d.useMemo)(()=>ji(r),[r])()}const Bi=(r,e)=>(0,no.v)(r.props.children,n=>{let s=!1;return n.getElements().forEach(({props:{to:a,dropdownItems:c}})=>{if(!s){if(c!=null&&c.length){c.forEach(({to:y})=>s=s||Nr(e,(0,Cn.i3)(y)));return}a&&(s=Nr(e,(0,Cn.i3)(a)))}}),s},[e.pathname]);function Xo(r){return r.to===void 0}const Ui=d.createElement(Mi).type,$i=d.forwardRef(function({to:e,end:n,style:s,className:a,activeStyle:c,caseSensitive:y,activeClassName:v="active","aria-current":w="page",...W},X){let{pathname:it}=(0,p.TH)(),{pathname:vt}=(0,p.WU)(e);y||(it=it.toLocaleLowerCase("en-US"),vt=vt.toLocaleLowerCase("en-US"));let gt=it===vt;!gt&&!n&&(gt=it.startsWith(`${vt}/`));const mt=gt?w:void 0;return(0,i.jsx)(E.rU,{...W,to:e,ref:X,"aria-current":mt,style:{...s,...gt?c:void 0},className:en()([typeof a!="function"?a:void 0,gt?v:void 0])})}),Zr=(0,d.forwardRef)((r,e)=>{const{icon:n,text:s,hasNotifications:a=!1,hasSubmenu:c=!1,disableHighlight:y=!1,onClick:v,noTrack:w,children:W,className:X,...it}=r,{sidebarConfig:vt}=(0,d.useContext)(ge.kG),gt=ro(vt),{isOpen:mt}=Yo(),$t=!mt&&c?{display:"flex",marginLeft:"20px"}:{lineHeight:"0"},Ht=(0,i.jsxs)(Ve.Z,{style:$t,children:[(0,i.jsx)(n,{fontSize:"small"}),!mt&&c?(0,i.jsx)(Fr.Z,{fontSize:"small"}):(0,i.jsx)(i.Fragment,{})]}),Xt=(0,i.jsx)(Ti.Z,{color:"secondary",variant:"dot",overlap:"circular",invisible:!a,className:en()({[gt.closedItemIcon]:!mt}),children:Ht}),ie=(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Ve.Z,{"data-testid":"login-button",className:gt.iconContainer,children:Xt}),s&&(0,i.jsx)(Qo.Z,{variant:"subtitle2",component:"span",className:gt.label,children:s}),(0,i.jsx)("div",{className:gt.secondaryAction,children:W})]}),ke=mt?ie:Xt,wn={onClick:v,className:en()(X,gt.root,mt?gt.open:gt.closed,Xo(r)&&gt.buttonItem,{[gt.highlightable]:!y})},Hr=(0,fr.z)(),{pathname:qo}=(0,p.WU)(!Xo(r)&&r.to?r.to:""),Gr=(0,d.useCallback)(ra=>{if(!w){const sa="click",ia=s!=null?s:"Sidebar Item",aa=qo?{attributes:{to:qo}}:void 0;Hr.captureEvent(sa,ia,aa)}v==null||v(ra)},[Hr,s,qo,w,v]);return Xo(r)?(0,i.jsx)(A.Z,{role:"button","aria-label":s,...wn,ref:e,onClick:Gr,children:ke}):(0,i.jsx)($i,{...wn,activeClassName:gt.selected,to:r.to?r.to:"",ref:e,"aria-label":s||r.to,...it,onClick:Gr,children:ke})}),Fi=({children:r,...e})=>{const{sidebarConfig:n}=(0,d.useContext)(ge.kG),s=ro(n),[a,c]=(0,d.useState)(!1),y=(0,p.TH)(),v=Bi(r,y),w=(0,Dr.Z)(vt=>vt.breakpoints.down("sm")),W=()=>{c(!0)},X=()=>{c(!1)},it=()=>w?a?(0,i.jsx)(Ii.Z,{fontSize:"small",className:s.submenuArrow}):(0,i.jsx)(wi.Z,{fontSize:"small",className:s.submenuArrow}):!a&&(0,i.jsx)(Fr.Z,{fontSize:"small",className:s.submenuArrow});return(0,i.jsx)(ge.Ag.Provider,{value:{isHoveredOn:a,setIsHoveredOn:c},children:(0,i.jsxs)("div",{"data-testid":"item-with-submenu",onMouseLeave:X,onTouchStart:a?X:W,onMouseEnter:W,className:en()(a&&s.highlighted),children:[(0,i.jsx)(Zr,{hasSubmenu:!0,className:v?s.selected:"",...e,children:it()}),a&&r]})})},Kr=(0,d.forwardRef)((r,e)=>{const[n]=(0,no.v)(r.children,s=>s.getElements().filter(a=>a.type===Ui));return n?(0,i.jsx)(Fi,{...r,children:n}):(0,i.jsx)(Zr,{...r,ref:e})});function Oa(r){const{sidebarConfig:e}=useContext(SidebarConfigContext),[n,s]=useState(""),a=ro(e),c=r.icon?r.icon:SearchIcon,y=()=>{r.onSearch(n),s("")},v=it=>{it.key==="Enter"&&(it.preventDefault(),y())},w=it=>{s(it.target.value)},W=it=>{it.preventDefault(),it.stopPropagation()},X=it=>{y(),it.preventDefault()};return _jsx(Box,{className:a.searchRoot,children:_jsx(Kr,{icon:c,to:r.to,onClick:X,disableHighlight:!0,children:_jsx(TextField,{placeholder:"Search",value:n,onClick:W,onChange:w,onKeyDown:v,className:a.searchContainer,InputProps:{disableUnderline:!0,className:a.searchField},inputProps:{className:a.searchFieldHTMLInput}})})})}const ba=(0,oo.Z)("div")({flex:1},{name:"BackstageSidebarSpace"}),Pa=(0,oo.Z)("div")({height:8},{name:"BackstageSidebarSpacer"}),Wi=(0,oo.Z)("hr")(({theme:r})=>({height:1,width:"100%",background:"#383838",border:"none",margin:r.spacing(1.2,0)}),{name:"BackstageSidebarDivider"}),Ni=r=>({overflowY:"auto","&::-webkit-scrollbar":{backgroundColor:r.palette.background.default,width:"5px",borderRadius:"5px"},"&::-webkit-scrollbar-thumb":{backgroundColor:r.palette.text.secondary,borderRadius:"5px"}}),Ra=(0,oo.Z)("div")(({theme:r})=>{const e=Ni(r);return{flex:"0 1 auto",overflowX:"hidden",width:"calc(100% - 5px)",minHeight:"48px",overflowY:"hidden","@media (hover: none)":e,"&:hover":e}}),Ta=()=>{const{sidebarConfig:r}=useContext(SidebarConfigContext),e=ro(r),{isOpen:n,setOpen:s}=useSidebarOpenState();if(useMediaQuery(y=>y.breakpoints.down("md"),{noSsr:!0}))return null;const c=()=>{s(!n)};return _jsx(Button,{role:"button",onClick:c,className:e.expandButton,"aria-label":"Expand Sidebar","data-testid":"sidebar-expand-button",children:_jsx(Box,{className:e.arrows,children:n?_jsx(DoubleArrowLeft,{}):_jsx(DoubleArrowRight,{})})})},Zi=(0,Ke.Z)({root:{width:ge.po.drawerWidthClosed,height:3*ge.po.logoHeight,display:"flex",flexFlow:"row nowrap",alignItems:"center",marginBottom:-14},link:{width:ge.po.drawerWidthClosed,marginLeft:24}}),Ki=()=>{const r=Zi(),{isOpen:e}=Yo();return(0,i.jsx)("div",{className:r.root,children:(0,i.jsx)(wr.rU,{to:"/docs/default/component/local/",underline:"none",className:r.link,children:e?(0,i.jsx)(di,{}):(0,i.jsx)(hi,{})})})},ki=({children:r})=>(0,i.jsxs)(Ir.t,{children:[(0,i.jsxs)(Pi,{children:[(0,i.jsx)(Ki,{}),(0,i.jsx)(Wi,{}),(0,i.jsx)(Kr,{icon:li.Z,to:"/docs/default/component/local",text:"Docs Preview"})]}),r]});var zi=t(80030),Hi=t(32388),Gi=t(4142),Vi=t(65386),_i=t(76922);const Yi=(0,Ke.Z)(r=>({headerIcon:{color:r.palette.common.white,width:"32px",height:"32px"},content:{backgroundColor:r.palette.background.default},contentToolbar:{display:"flex",justifyContent:"flex-end",padding:0}}));var kr;(function(r){r.LIGHT="light",r.DARK="dark"})(kr||(kr={}));const Qi=()=>{const r=(0,xn.h_)(kn),e=Yi(),[n,s]=(0,d.useState)(r.getActiveThemeId()==="dark"?"dark":"light"),a={light:{icon:Gi.Z,title:"Dark theme"},dark:{icon:Hi.Z,title:"Light theme"}},{title:c,icon:y}=a[n],v=()=>{s(w=>{const W=w==="light"?"dark":"light";return r.setActiveThemeId(W),W})};return(0,i.jsx)(Ve.Z,{display:"flex",alignItems:"center",mr:2,children:(0,i.jsx)(zi.ZP,{title:c,arrow:!0,children:(0,i.jsx)(Mr.Z,{size:"small",onClick:v,children:(0,i.jsx)(y,{className:e.headerIcon})})})})},Ji=()=>(0,i.jsxs)(f.I6,{children:[(0,i.jsx)(Vi.S,{}),(0,i.jsx)(_i.F,{withSearch:!1})]}),Xi=(0,i.jsx)(Ji,{}),zr=ks({apis:oi,configLoader:ai,plugins:Object.values(o)}),qi=zr.getProvider(),ta=zr.getRouter(),ea=f.s4.provide((0,g.KY)({name:"ThemeToggleAddon",component:Qi,location:O.o.Header})),na=(0,i.jsxs)(zs,{children:[(0,i.jsx)(p.Fg,{to:"/docs/default/component/local/"},"/"),(0,i.jsx)(p.AW,{path:"/catalog/:namespace/:kind/:name",element:(0,i.jsx)(ti,{})}),(0,i.jsx)(p.AW,{path:"/docs",element:(0,i.jsx)(f.Jl,{}),children:(0,i.jsx)(l.u,{})}),(0,i.jsxs)(p.AW,{path:"/docs/:namespace/:kind/:name/*",element:(0,i.jsx)(f.I6,{}),children:[Xi,(0,i.jsx)(g.DR,{children:(0,i.jsx)(ea,{})})]})]});var oa=()=>(0,i.jsx)(qi,{children:(0,i.jsx)(ta,{children:(0,i.jsx)(ki,{children:na})})});S.render((0,i.jsx)(oa,{}),document.getElementById("root"))},29651:function(Y,R,t){"use strict";t.d(R,{CT:function(){return d},Vt:function(){return S}});var o=t(2784),i=t(96087);function d(f){return(0,i.u)(f,()=>(0,o.createContext)(void 0))}function S(f){return(0,o.useContext)(d(f))}function p(f){return{set(l){globalThis[`__@backstage/${f}__`]=createContext(createVersionedValueMap(l))},reset(){delete globalThis[`__@backstage/${f}__`]}}}},68993:function(Y,R,t){"use strict";t.d(R,{E:function(){return o}});function o(i){Object.freeze(i);const d={atVersion(S){return i[S]}};return Object.defineProperty(d,"$map",{configurable:!0,enumerable:!0,get(){return i}}),d}},96087:function(Y,R,t){"use strict";t.d(R,{u:function(){return S}});function o(){return typeof window!="undefined"&&window.Math===Math?window:typeof self!="undefined"&&self.Math===Math?self:Function("return this")()}const i=o(),d=p=>`__@backstage/${p}__`;function S(p,f){const l=d(p);let g=i[l];return g||(g=f(),i[l]=g,g)}},88624:function(Y,R,t){"use strict";t.d(R,{A:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"plugin.catalog.service"})},36802:function(Y,R,t){"use strict";t.d(R,{p:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"catalog-react.starred-entities"})},30389:function(Y,R,t){"use strict";t.d(R,{_i:function(){return x}});var o=t(52322),i=t(2784),d=t(41156),S=t(60364),p=t(77277),f=t(4190),l=t(62774),g=t(90436),O=t(60905),A=t(36444);const b=E=>{var I;const P=(0,d.Z)(k=>{var ot,J;return k.breakpoints.down((J=(ot=E.options)===null||ot===void 0?void 0:ot.drawerBreakpoint)!==null&&J!==void 0?J:"md")}),M=(0,S.Z)(),[F,Z]=(0,i.useState)(!1);var m;return P?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(p.Z,{style:{marginTop:M.spacing(1),marginLeft:M.spacing(1)},onClick:()=>Z(!0),startIcon:(0,o.jsx)(A.Z,{}),children:"Filters"}),(0,o.jsx)(f.ZP,{open:F,onClose:()=>Z(!1),anchor:(m=(I=E.options)===null||I===void 0?void 0:I.drawerAnchor)!==null&&m!==void 0?m:"left",disableAutoFocus:!0,keepMounted:!0,variant:"temporary",children:(0,o.jsxs)(l.Z,{m:2,children:[(0,o.jsx)(g.Z,{variant:"h6",component:"h2",style:{marginBottom:M.spacing(1)},children:"Filters"}),E.children]})})]}):(0,o.jsx)(O.Z,{item:!0,lg:2,children:E.children})},C=E=>(0,o.jsx)(O.Z,{item:!0,xs:12,lg:10,children:E.children}),x=E=>(0,o.jsx)(O.Z,{container:!0,style:{position:"relative"},children:E.children});x.Filters=b,x.Content=C},77605:function(Y,R,t){"use strict";t.d(R,{K:function(){return z}});var o=t(52322),i=t(62774),d=t(90436),S=t(38016),p=t(88013),f=t(2784),l=t(44394),g=t(64279),O=t(88624),A=t(21324),b=t(5806),C=t(19996),x=t(25505);const E=(0,o.jsx)(x.Z,{fontSize:"small"}),I=(0,o.jsx)(C.Z,{fontSize:"small"});function P({selected:G}){return(0,o.jsx)(A.Z,{icon:E,checkedIcon:I,checked:G})}const M=(0,f.memo)(G=>{const{selected:q,value:rt,availableOptions:At,showCounts:xt}=G,ut=xt?`${rt} (${At==null?void 0:At[rt]})`:rt;return(0,o.jsx)(b.Z,{control:(0,o.jsx)(P,{selected:q}),label:ut,onClick:bt=>bt.preventDefault()})});var F=t(79692),Z=t(86619),m=t(72779),k=t.n(m);const ot=(0,F.Z)({input:{}},{name:"CatalogReactEntityAutocompletePickerInput"});function J(G){const q=ot();return(0,o.jsx)(Z.Z,{variant:"outlined",...G,className:k()(q.input,G.className)})}var H=t(25942);function z(G){var q;const{label:rt,name:At,path:xt,showCounts:ut,Filter:bt,InputProps:Ct,initialSelectedOptions:Ot=[]}=G,{updateFilters:nt,filters:U,queryParameters:{[At]:_}}=(0,H.wp)(),tt=(0,l.h_)(O.A),{value:at}=(0,g.default)(async()=>{var lt;const Rt=xt,{facets:Tt}=await tt.getEntityFacets({facets:[Rt],filter:(lt=U.kind)===null||lt===void 0?void 0:lt.getCatalogFilters()});return Object.fromEntries(Tt[Rt].map(({value:It,count:Wt})=>[It,Wt]))},[U.kind]),ct=(0,f.useMemo)(()=>[_].flat().filter(Boolean),[_]);var N;const[K,pt]=(0,f.useState)(ct.length?ct:(N=(q=U[At])===null||q===void 0?void 0:q.values)!==null&&N!==void 0?N:Ot);(0,f.useEffect)(()=>{ct.length&&pt(ct)},[ct]);const Et=Object.keys(at!=null?at:{}),ht=K.length&&Et.length;(0,f.useEffect)(()=>{nt({[At]:ht?new bt(K):void 0})},[At,ht,K,bt,nt]);const ft=U[At];return ft&&typeof ft=="object"&&!("values"in ft)||!Et.length||Et.length<=1?null:(0,o.jsx)(i.Z,{pb:1,pt:1,children:(0,o.jsxs)(d.Z,{variant:"button",component:"label",children:[rt,(0,o.jsx)(p.ZP,{multiple:!0,disableCloseOnSelect:!0,options:Et,value:K,onChange:(lt,Rt)=>pt(Rt),renderOption:(lt,{selected:Rt})=>(0,o.jsx)(M,{selected:Rt,value:lt,availableOptions:at,showCounts:!!ut}),size:"small",popupIcon:(0,o.jsx)(S.Z,{"data-testid":`${String(At)}-picker-expand`}),renderInput:lt=>(0,o.jsx)(J,{...lt,...Ct})})]})})}},63833:function(Y,R,t){"use strict";t.d(R,{d:function(){return nt}});var o=t(52322),i=t(74314),d=t(79692),S=t(62774),p=t(90436),f=t(5806),l=t(21324),g=t(86619),O=t(19996),A=t(25505),b=t(38016),C=t(88013),x=t(2784),E=t(25942),I=t(4967),P=t(6232),M=t(98685),F=t(62367),Z=t(86540),m=t(44394),k=t(69294),ot=t(88624);function J({enabled:U}){const _=(0,m.h_)(ot.A),[tt]=(0,x.useState)(async()=>{if(!U)return[];const at="relations.ownedBy";return _.getEntityFacets({facets:[at]}).then(ct=>ct.facets[at].map(N=>N.value).map(N=>{const{kind:K,name:pt,namespace:Et}=(0,i.of)(N);return{apiVersion:"backstage.io/v1beta1",kind:K,metadata:{name:pt,namespace:Et}}}).sort((N,K)=>(N.metadata.namespace||"").localeCompare(K.metadata.namespace||"","en-US")||N.metadata.name.localeCompare(K.metadata.name,"en-US")||N.kind.localeCompare(K.kind,"en-US"))).catch(()=>[])});return(0,k.default)(async(at,ct)=>{const N=await tt;if(!N)return{items:[]};var K;const pt=(K=ct==null?void 0:ct.limit)!==null&&K!==void 0?K:20,{text:Et,start:ht}=H(at),ft=N.filter(Rt=>q(Et,Rt)),lt=ht+pt;return{items:ft.slice(0,lt),...G({entities:ft,limit:lt,payload:{text:Et,start:lt}})}},[tt],{loading:!0,value:{items:[]}})}function H(U){return z(U)&&U.cursor?JSON.parse(atob(U.cursor)):{text:U.text||"",start:0}}function z(U){return!!U.cursor}function G({entities:U,limit:_,payload:tt}){return U.length>_?{cursor:btoa(JSON.stringify(tt))}:{}}function q(U,_){var tt;const at=U.trim();return _.kind.includes(at)||((tt=_.metadata.namespace)===null||tt===void 0?void 0:tt.includes(at))||_.metadata.name.includes(at)}function rt(){const U=(0,m.h_)(ot.A);return(0,k.default)(async(_,tt)=>{const at=_,ct=_;var N;const K=(N=tt==null?void 0:tt.limit)!==null&&N!==void 0?N:20;if(ct.cursor){const Et=await U.queryEntities({cursor:ct.cursor,limit:K});return{cursor:Et.pageInfo.nextCursor,items:[...ct.items,...Et.items]}}const pt=await U.queryEntities({fullTextFilter:{term:at.text||"",fields:["metadata.name","kind","spec.profile.displayname","metadata.title"]},filter:{kind:["User","Group"]},orderFields:[{field:"metadata.name",order:"asc"}],limit:K});return{cursor:pt.pageInfo.nextCursor,items:pt.items}},[],{loading:!0})}var At=t(21638);function xt({mode:U,initialSelectedOwnersRefs:_}){const tt=U==="owners-only",at=rt(),ct=J({enabled:tt}),[N,K]=tt?ct:at;return[N,K,ut({enabled:!tt,initialSelectedOwnersRefs:_})]}function ut({enabled:U,initialSelectedOwnersRefs:_}){const tt=(0,x.useRef)({}),at=(0,m.h_)(ot.A),[,ct]=(0,k.default)(async()=>{(await at.getEntitiesByRefs({entityRefs:_})).items.forEach(K=>{K&&(tt.current[(0,i.eE)(K)]=K)})},[]);return(0,At.n)(()=>{U&&_.length>0&&ct()}),{getEntity:N=>tt.current[N],setEntity:N=>{tt.current[(0,i.eE)(N)]=N}}}const bt=(0,d.Z)({input:{}},{name:"CatalogReactEntityOwnerPicker"}),Ct=(0,o.jsx)(A.Z,{fontSize:"small"}),Ot=(0,o.jsx)(O.Z,{fontSize:"small"}),nt=U=>{var _,tt;const at=bt(),{mode:ct="owners-only"}=U||{},{updateFilters:N,filters:K,queryParameters:{owners:pt}}=(0,E.wp)(),[Et,ht]=(0,x.useState)(""),ft=(0,x.useMemo)(()=>[pt].flat().filter(Boolean),[pt]);var lt;const[Rt,Tt]=(0,x.useState)(ft.length?ft:(lt=(_=K.owners)===null||_===void 0?void 0:_.values)!==null&&lt!==void 0?lt:[]),[{value:It,loading:Wt},Yt,he]=xt({mode:ct,initialSelectedOwnersRefs:Rt});(0,P.b)(()=>Yt({text:Et}),[Et,Yt],250);const Zt=(It==null?void 0:It.items)||[];return(0,x.useEffect)(()=>{if(ft.length){const Ft=new I.rf(ft);Tt(Ft.values)}},[ft]),(0,x.useEffect)(()=>{N({owners:Rt.length?new I.rf(Rt):void 0})},[Rt,N]),["user","group"].includes(((tt=K.kind)===null||tt===void 0?void 0:tt.value.toLocaleLowerCase("en-US"))||"")?null:(0,o.jsx)(S.Z,{pb:1,pt:1,children:(0,o.jsxs)(p.Z,{variant:"button",component:"label",children:["Owner",(0,o.jsx)(C.ZP,{multiple:!0,disableCloseOnSelect:!0,loading:Wt,options:Zt,value:Rt,getOptionSelected:(Ft,Gt)=>typeof Gt=="string"?(0,i.eE)(Ft)===Gt:Ft===Gt,getOptionLabel:Ft=>{const Gt=typeof Ft=="string"?he.getEntity(Ft)||(0,i.of)(Ft,{defaultKind:"group",defaultNamespace:"default"}):Ft;return(0,Z.w)(Gt,(0,Z.$)(Gt))},onChange:(Ft,Gt)=>{ht(""),Tt(Gt.map(oe=>{const Se=typeof oe=="string"?oe:(0,i.eE)(oe);return typeof oe!="string"&&he.setEntity(oe),Se}))},filterOptions:Ft=>Ft,renderOption:(Ft,{selected:Gt})=>{const oe=Ft.kind.toLocaleLowerCase("en-US")==="group";return(0,o.jsx)(f.Z,{control:(0,o.jsx)(l.Z,{icon:Ct,checkedIcon:Ot,checked:Gt}),onClick:Se=>Se.preventDefault(),label:(0,o.jsxs)(S.Z,{display:"flex",flexWrap:"wrap",alignItems:"center",children:[oe?(0,o.jsx)(F.Z,{fontSize:"small"}):(0,o.jsx)(M.Z,{fontSize:"small"}),"\xA0",(0,Z.w)(Ft,(0,Z.$)(Ft,{defaultKind:Ft.kind}))]})})},size:"small",popupIcon:(0,o.jsx)(b.Z,{"data-testid":"owner-picker-expand"}),renderInput:Ft=>(0,o.jsx)(g.Z,{...Ft,className:at.input,onChange:Gt=>{ht(Gt.currentTarget.value)},variant:"outlined"}),ListboxProps:{onScroll:Ft=>{const Gt=Ft.currentTarget;Math.abs(Gt.scrollHeight-Gt.clientHeight-Gt.scrollTop)<1&&(It!=null&&It.cursor)&&Yt({items:It.items,cursor:It.cursor})},"data-testid":"owner-picker-listbox"}})]})})}},41748:function(Y,R,t){"use strict";t.d(R,{d:function(){return A}});var o=t(52322),i=t(74314),d=t(34106),S=t(2784),p=t(36434),f=t(86540),l=t(98864),g=t(37321),O=t(80030);const A=(0,S.forwardRef)((b,C)=>{const{entityRef:x,defaultKind:E,title:I,children:P,...M}=b,F=(0,g.t)(p.w);let Z,m,k;if(typeof x=="string"){const G=(0,i.of)(x);Z=G.kind,m=G.namespace,k=G.name}else"metadata"in x?(Z=x.kind,m=x.metadata.namespace,k=x.metadata.name):(Z=x.kind,m=x.namespace,k=x.name);Z=Z.toLocaleLowerCase("en-US");var ot;m=(ot=m==null?void 0:m.toLocaleLowerCase("en-US"))!==null&&ot!==void 0?ot:d.zG;const J={kind:encodeURIComponent(Z),namespace:encodeURIComponent(m),name:encodeURIComponent(k)},H=(0,f.$)({kind:Z,namespace:m,name:k},{defaultKind:E}),z=(0,o.jsxs)(l.rU,{...M,ref:C,to:F(J),children:[P,!P&&(I!=null?I:H)]});return I?(0,o.jsx)(O.ZP,{title:H,children:z}):z})},68138:function(Y,R,t){"use strict";t.d(R,{r:function(){return b}});var o=t(52322),i=t(2784),d=t(41748),S=t(74314),p=t(55015),f=t(74359),l=t(64279),g=t(88624),O=t(44394);function A(C){const{entityRefs:x,defaultKind:E,getTitle:I,...P}=C,M=(0,O.h_)(g.A),{value:F=new Array,loading:Z,error:m}=(0,l.default)(async()=>{const k=x.reduce((J,H)=>typeof H=="object"&&"metadata"in H?J:[...J,(0,S.of)(H)],new Array),ot=x.filter(J=>typeof J=="object"&&"metadata"in J);return k.length>0?[...(await M.getEntities({filter:k.map(J=>({kind:J.kind,"metadata.namespace":J.namespace,"metadata.name":J.name}))})).items,...ot]:ot},[x]);return Z?(0,o.jsx)(p.E,{}):m?(0,o.jsx)(f.y,{error:m}):(0,o.jsx)(o.Fragment,{children:F.map((k,ot)=>(0,o.jsxs)(i.Fragment,{children:[ot>0&&", ",(0,o.jsx)(d.d,{...P,defaultKind:E,entityRef:k,title:I(k)})]},ot))})}function b(C){const{entityRefs:x,defaultKind:E,fetchEntities:I,getTitle:P,...M}=C;return I?(0,o.jsx)(A,{...M,defaultKind:E,entityRefs:x,getTitle:P}):(0,o.jsx)(o.Fragment,{children:x.map((F,Z)=>(0,o.jsxs)(i.Fragment,{children:[Z>0&&", ",(0,o.jsx)(d.d,{...M,defaultKind:E,entityRef:F,title:P?P(F):void 0})]},Z))})}},86540:function(Y,R,t){"use strict";t.d(R,{$:function(){return S},w:function(){return p}});var o=t(34106),i=t(72579),d=t.n(i);function S(f,l){const g=l==null?void 0:l.defaultKind;let O,A,b;return"metadata"in f?(O=f.kind,A=f.metadata.namespace,b=f.metadata.name):(O=f.kind,A=f.namespace,b=f.name),(A===void 0||A==="")&&(A=o.zG),(l==null?void 0:l.defaultNamespace)!==void 0?(l==null?void 0:l.defaultNamespace)===A&&(A=void 0):A===o.zG&&(A=void 0),O=O.toLocaleLowerCase("en-US"),O=g&&g.toLocaleLowerCase("en-US")===O?void 0:O,`${O?`${O}:`:""}${A?`${A}/`:""}${b}`}function p(f,l){for(const g of["spec.profile.displayName","metadata.title"]){const O=d()(f,g);if(O&&typeof O=="string")return O}return l}},97894:function(Y,R,t){"use strict";t.d(R,{x:function(){return l}});var o=t(52322),i=t(79692),d=t(2784),S=t(4967),p=t(77605);const f=(0,i.Z)({input:{}},{name:"CatalogReactEntityTagPicker"}),l=g=>{const O=f();return(0,o.jsx)(p.K,{label:"Tags",name:"tags",path:"metadata.tags",Filter:S.Cu,showCounts:g.showCounts,InputProps:{className:O.input}})}},23433:function(Y,R,t){"use strict";t.d(R,{E:function(){return H}});var o=t(52322),i=t(44394),d=t(6542),S=t(79692),p=t(94339),f=t(90436),l=t(11776),g=t(12231),O=t(86136),A=t(49378),b=t(9520),C=t(47603),x=t(11640),E=t(76635),I=t.n(E),P=t(2784),M=t(4967),F=t(25942),Z=t(42870),m=t(81269),k=t(64039);const ot=(0,S.Z)(z=>({root:{backgroundColor:"rgba(0, 0, 0, .11)",boxShadow:"none",margin:z.spacing(1,0,1,0)},title:{margin:z.spacing(1,0,0,1),textTransform:"uppercase",fontSize:12,fontWeight:"bold"},listIcon:{minWidth:30,color:z.palette.text.primary},menuItem:{minHeight:z.spacing(6)},groupWrapper:{margin:z.spacing(1,1,2,1)}}),{name:"CatalogReactUserListPicker"});function J(z){return[{name:"Personal",items:[{id:"owned",label:"Owned",icon:C.Z},{id:"starred",label:"Starred",icon:x.Z}]},{name:z!=null?z:"Company",items:[{id:"all",label:"All"}]}]}const H=z=>{const{initialFilter:G,availableFilters:q}=z,rt=ot(),At=(0,i.h_)(d.D);var xt;const ut=(xt=At.getOptionalString("organization.name"))!==null&&xt!==void 0?xt:"Company",{filters:bt,updateFilters:Ct,backendEntities:Ot,queryParameters:{kind:nt,user:U},loading:_}=(0,F.wp)(),tt=["starred","all"],at=J(ut).map(Wt=>({...Wt,items:Wt.items.filter(({id:Yt})=>["group","user"].some(he=>he===nt)?tt.includes(Yt):!q||q.includes(Yt))})).filter(({items:Wt})=>!!Wt.length),{isStarredEntity:ct}=(0,Z.C)(),{isOwnedEntity:N,loading:K}=(0,m.Z)(),pt=_||K,Et=(0,P.useMemo)(()=>new M.IZ("owned",N,ct),[N,ct]),ht=(0,P.useMemo)(()=>new M.IZ("starred",N,ct),[N,ct]),ft=(0,P.useMemo)(()=>[U].flat()[0],[U]),[lt,Rt]=(0,P.useState)(ft!=null?ft:G),Tt=(0,P.useMemo)(()=>Ot.filter((0,k.G)((0,E.compact)(Object.values({...bt,user:void 0})))),[bt,Ot]),It=(0,P.useMemo)(()=>({all:Tt.length,starred:Tt.filter(Wt=>ht.filterEntity(Wt)).length,owned:Tt.filter(Wt=>Et.filterEntity(Wt)).length}),[Tt,ht,Et]);return(0,P.useEffect)(()=>{ft&&Rt(ft)},[ft]),(0,P.useEffect)(()=>{!pt&&lt&&lt!=="all"&&It[lt]===0&&Rt("all")},[pt,It,lt,Rt]),(0,P.useEffect)(()=>{Ct({user:lt?new M.IZ(lt,N,ct):void 0})},[lt,N,ct,Ct]),(0,o.jsx)(p.Z,{className:rt.root,children:at.map(Wt=>(0,o.jsxs)(P.Fragment,{children:[(0,o.jsx)(f.Z,{variant:"subtitle2",component:"span",className:rt.title,children:Wt.name}),(0,o.jsx)(p.Z,{className:rt.groupWrapper,children:(0,o.jsx)(l.Z,{disablePadding:!0,dense:!0,role:"menu","aria-label":Wt.name,children:Wt.items.map(Yt=>{var he,Zt;return(0,o.jsxs)(g.Z,{role:"none presentation",button:!0,divider:!0,onClick:()=>Rt(Yt.id),selected:Yt.id===((he=bt.user)===null||he===void 0?void 0:he.value),className:rt.menuItem,disabled:It[Yt.id]===0,"data-testid":`user-picker-${Yt.id}`,tabIndex:0,ContainerProps:{role:"menuitem"},children:[Yt.icon&&(0,o.jsx)(O.Z,{className:rt.listIcon,children:(0,o.jsx)(Yt.icon,{fontSize:"small"})}),(0,o.jsx)(A.Z,{children:(0,o.jsxs)(f.Z,{variant:"body1",children:[Yt.label," "]})}),(0,o.jsx)(b.Z,{children:(Zt=It[Yt.id])!==null&&Zt!==void 0?Zt:"-"})]},Yt.id)})})})]},Wt.name))})}},4967:function(Y,R,t){"use strict";t.d(R,{A5:function(){return E},Bf:function(){return f},Cu:function(){return l},IZ:function(){return C},Qe:function(){return b},mM:function(){return x},rf:function(){return O},zH:function(){return A},zo:function(){return p}});var o=t(87612),i=t(8709),d=t(74314),S=t(75435);class p{getCatalogFilters(){return{kind:this.value}}toQueryValue(){return this.value}constructor(P){(0,o._)(this,"value",void 0),this.value=P}}class f{getTypes(){return Array.isArray(this.value)?this.value:[this.value]}getCatalogFilters(){return{"spec.type":this.getTypes()}}toQueryValue(){return this.getTypes()}constructor(P){(0,o._)(this,"value",void 0),this.value=P}}class l{filterEntity(P){return this.values.every(M=>{var F;return((F=P.metadata.tags)!==null&&F!==void 0?F:[]).includes(M)})}toQueryValue(){return this.values}constructor(P){(0,o._)(this,"values",void 0),this.values=P}}class g{filterEntity(P){const M=this.toUpperArray(this.value.split(/\s/)),F=this.toUpperArray([P.metadata.tags]),Z=this.toUpperArray([P.metadata.name,P.metadata.title]);for(const m of M)if(F.every(k=>k!==m)&&Z.every(k=>!k.includes(m)))return!1;return!0}toUpperArray(P){return P.flat().filter(M=>Boolean(M)).map(M=>M.toLocaleUpperCase("en-US"))}constructor(P){_define_property(this,"value",void 0),this.value=P}}class O{filterEntity(P){return this.values.some(M=>(0,S.h)(P,i.S4).some(F=>(0,d.eE)(F)===M))}toQueryValue(){return this.values}constructor(P){(0,o._)(this,"values",void 0),this.values=P.reduce((M,F)=>{try{return M.push((0,d.eE)((0,d.of)(F,{defaultKind:"Group"}))),M}catch{return M}},[])}}class A{filterEntity(P){return this.values.some(M=>{var F;return((F=P.spec)===null||F===void 0?void 0:F.lifecycle)===M})}toQueryValue(){return this.values}constructor(P){(0,o._)(this,"values",void 0),this.values=P}}class b{filterEntity(P){return this.values.some(M=>P.metadata.namespace===M)}toQueryValue(){return this.values}constructor(P){(0,o._)(this,"values",void 0),this.values=P}}class C{filterEntity(P){switch(this.value){case"owned":return this.isOwnedEntity(P);case"starred":return this.isStarredEntity(P);default:return!0}}toQueryValue(){return this.value}constructor(P,M,F){(0,o._)(this,"value",void 0),(0,o._)(this,"isOwnedEntity",void 0),(0,o._)(this,"isStarredEntity",void 0),this.value=P,this.isOwnedEntity=M,this.isStarredEntity=F}}class x{filterEntity(P){var M;const F=(M=P.metadata.annotations)===null||M===void 0?void 0:M["backstage.io/orphan"];return F!==void 0&&this.value.toString()===F}constructor(P){(0,o._)(this,"value",void 0),this.value=P}}class E{filterEntity(P){var M,F;const Z=(P==null||(F=P.status)===null||F===void 0||(M=F.items)===null||M===void 0?void 0:M.length)>0;return Z!==void 0&&this.value===Z}constructor(P){(0,o._)(this,"value",void 0),this.value=P}}},25942:function(Y,R,t){"use strict";t.d(R,{UO:function(){return I},wp:function(){return P}});var o=t(52322),i=t(76635),d=t.n(i),S=t(19126),p=t.n(S),f=t(2784),l=t(73557),g=t(69294),O=t(48760),A=t(90736),b=t(88624),C=t(64039),x=t(44394);const E=(0,f.createContext)(void 0),I=M=>{const F=(0,A.default)(),Z=(0,x.h_)(b.A),[m,k]=(0,f.useState)({}),ot=(0,l.TH)(),J=(0,f.useMemo)(()=>{var ut;return(ut=p().parse(ot.search,{ignoreQueryPrefix:!0}).filters)!==null&&ut!==void 0?ut:{}},[ot]),[H,z]=(0,f.useState)(()=>({appliedFilters:{},entities:[],backendEntities:[]})),[{loading:G,error:q},rt]=(0,g.default)(async()=>{const ut=(0,i.compact)(Object.values(m)),bt=(0,C.G)(ut),Ct=(0,C.w)(ut),Ot=(0,C.w)((0,i.compact)(Object.values(H.appliedFilters))),nt=Object.keys(m).reduce((_,tt)=>{const at=m[tt];return at!=null&&at.toQueryValue&&(_[tt]=at.toQueryValue()),_},{});if((0,i.isEqual)(Ot,Ct))z({appliedFilters:m,backendEntities:H.backendEntities,entities:H.backendEntities.filter(bt)});else{const _=await Z.getEntities({filter:Ct});z({appliedFilters:m,backendEntities:_.items,entities:_.items.filter(bt)})}if(F()){var U;const _=p().parse(ot.search,{ignoreQueryPrefix:!0}),tt=p().stringify({..._,filters:nt},{addQueryPrefix:!0,arrayFormat:"repeat"}),at=`${window.location.pathname}${tt}`;(U=window.history)===null||U===void 0||U.replaceState(null,document.title,at)}},[Z,J,m,H],{loading:!0});(0,O.Z)(rt,10,[m]);const At=(0,f.useCallback)(ut=>{k(bt=>{const Ct=typeof ut=="function"?ut(bt):ut;return{...bt,...Ct}})},[]),xt=(0,f.useMemo)(()=>({filters:H.appliedFilters,entities:H.entities,backendEntities:H.backendEntities,updateFilters:At,queryParameters:J,loading:G,error:q}),[H,At,J,G,q]);return(0,o.jsx)(E.Provider,{value:xt,children:M.children})};function P(){const M=(0,f.useContext)(E);if(!M)throw new Error("useEntityList must be used within EntityListProvider");return M}},81269:function(Y,R,t){"use strict";t.d(R,{Z:function(){return g}});var o=t(8709),i=t(74314),d=t(44394),S=t(77186),p=t(2784),f=t(64279),l=t(75435);function g(){const O=(0,d.h_)(S.$),{loading:A,value:b}=(0,f.default)(async()=>{const{ownershipEntityRefs:x}=await O.getBackstageIdentity();return x},[]),C=(0,p.useMemo)(()=>{const x=new Set(b!=null?b:[]);return E=>{const I=(0,l.h)(E,o.S4).map(i.eE);for(const P of I)if(x.has(P))return!0;return!1}},[b]);return(0,p.useMemo)(()=>({loading:A,isOwnedEntity:C}),[A,C])}},42870:function(Y,R,t){"use strict";t.d(R,{C:function(){return l}});var o=t(74314),i=t(44394),d=t(2784),S=t(72164),p=t(36802);function f(g){return typeof g=="string"?g:(0,o.eE)(g)}function l(){const g=(0,i.h_)(p.p),O=(0,S.Z)(g.starredEntitie$(),new Set),A=(0,d.useCallback)(C=>O.has(f(C)),[O]),b=(0,d.useCallback)(C=>g.toggleStarred(f(C)).then(),[g]);return{starredEntities:O,toggleStarredEntity:b,isStarredEntity:A}}},36434:function(Y,R,t){"use strict";t.d(R,{w:function(){return d}});var o=t(30283),i=t(96087);const d=(0,i.u)("catalog:entity-route-ref",()=>(0,o.N)({id:"catalog:entity",params:["namespace","kind","name"]}));function S(p){var f,l;return{kind:p.kind.toLocaleLowerCase("en-US"),namespace:(l=(f=p.metadata.namespace)===null||f===void 0?void 0:f.toLocaleLowerCase("en-US"))!==null&&l!==void 0?l:DEFAULT_NAMESPACE,name:p.metadata.name}}},64039:function(Y,R,t){"use strict";t.d(R,{G:function(){return i},w:function(){return o}});function o(d){return d.reduce((S,p)=>({...S,...p.getCatalogFilters?p.getCatalogFilters():{}}),{})}function i(d){return S=>d.every(p=>!p.filterEntity||p.filterEntity(S))}},75435:function(Y,R,t){"use strict";t.d(R,{h:function(){return i}});var o=t(74314);function i(d,S,p){var f;let l=(d==null||(f=d.relations)===null||f===void 0?void 0:f.filter(g=>g.type===S).map(g=>(0,o.of)(g.targetRef)))||[];return p!=null&&p.kind&&(l=l.filter(g=>g.kind.toLocaleLowerCase("en-US")===p.kind.toLocaleLowerCase("en-US"))),l}},65524:function(Y,R,t){"use strict";t.d(R,{yw:function(){return g},ql:function(){return A},_Z:function(){return b},jU:function(){return O}});var o=t(87612),i=t(92918);let d=i.K,S=d;class p{toString(){return`routeRef{type=external,id=${this.id}}`}constructor(x,E,I){(0,o._)(this,"id",void 0),(0,o._)(this,"params",void 0),(0,o._)(this,"optional",void 0),(0,o._)(this,S,void 0),this.id=x,this.params=E,this.optional=I,this[d]="external"}}function f(C){var x;return new p(C.id,(x=C.params)!==null&&x!==void 0?x:[],Boolean(C.optional))}var l=t(30283);const g=f({id:"create-component",optional:!0}),O=f({id:"view-techdoc",optional:!0,params:["namespace","kind","name"]}),A=f({id:"create-from-template",optional:!0,params:["namespace","templateName"]}),b=(0,l.N)({id:"catalog"})},76079:function(Y,R,t){"use strict";t.d(R,{F:function(){return p}});var o=t(52322),i=t(2784),d=t(79692);const S=(0,d.Z)(()=>({highlight:{}}),{name:"BackstageHighlightedSearchResultText"}),p=f=>{const{text:l,preTag:g,postTag:O}=f,A=S(),b=(0,i.useMemo)(()=>l.split(new RegExp(`(${g}.+?${O})`)),[O,g,l]);return(0,o.jsx)(o.Fragment,{children:b.map((C,x)=>C.includes(g)?(0,o.jsx)("mark",{className:A.highlight,children:C.replace(new RegExp(`${g}|${O}`,"g"),"")},x):C)})}},53945:function(Y,R,t){"use strict";t.d(R,{E5:function(){return O}});var o=t(52322),i=t(2784),d=t(62369),S=t(82963),p=t(38402);const f="search.results.list.items.extensions.v1",l=(C,x)=>{for(const E of C){if(!isValidElement(E))continue;const I=getComponentData(E,f);if(I!=null&&I(x))return cloneElement(E,{rank:x.rank,highlight:x.highlight,result:x.document,...E.props})}return null},g=C=>{const{rank:x,result:E,noTrack:I,children:P,alignItems:M="flex-start",...F}=C,Z=(0,d.z)(),m=(0,i.useCallback)(()=>{I||E&&Z.captureEvent("discover",E.title,{attributes:{to:E.location},value:x})},[x,E,I,Z]);return(0,o.jsx)(p.Z,{divider:!0,alignItems:M,onClickCapture:m,...F,children:P})},O=C=>{const{name:x,component:E,predicate:I=()=>!0}=C;return(0,S.YO)({name:x,component:{lazy:()=>E().then(P=>M=>(0,o.jsx)(g,{rank:M.rank,result:M.result,noTrack:M.noTrack,children:(0,i.createElement)(P,M)}))},data:{[f]:I}})},A=C=>{const x=useElementFilter(C,E=>E.selectByComponentData({key:f}).getElements(),[C]);return useCallback((E,I)=>{const P=l(x,E);return _jsx(Fragment,{children:P!=null?P:_jsx(g,{rank:E.rank,result:E.document,children:_jsx(DefaultResultListItem,{rank:E.rank,highlight:E.highlight,result:E.document})})},I)},[x])},b=C=>{const{results:x,children:E,...I}=C,P=A(E);return _jsx(List,{...I,children:x.map(P)})}},2296:function(Y,R,t){"use strict";t.d(R,{$L:function(){return I},DR:function(){return O},KY:function(){return b},Zz:function(){return g},jM:function(){return l}});var o=t(52322),i=t(2784),d=t(73557),S=t(62584),p=t(82963),f=t(2532);const l="techdocs.addons.addon.v1",g="techdocs.addons.wrapper.v1",O=()=>null;(0,S.R)(O,g,!0);const A=P=>`${l}.${P.toLocaleLowerCase("en-US")}`;function b(P){const{name:M,component:F}=P;return(0,p.YO)({name:M,component:{sync:Z=>(0,o.jsx)(F,{...Z})},data:{[l]:P,[A(M)]:!0}})}const C=(P,M)=>P.selectByComponentData({key:M}).getElements()[0],x=P=>P.selectByComponentData({key:g}).selectByComponentData({key:l}),E=P=>P.selectByComponentData({key:g}).findComponentData({key:l}),I=()=>{const P=(0,d.pC)(),M=(0,f.v)(P,x),F=(0,f.v)(P,E),Z=(0,i.useCallback)(ot=>{if(!M||!ot)return null;const J=A(ot.name);var H;return(H=C(M,J))!==null&&H!==void 0?H:null},[M]),m=(0,i.useCallback)(ot=>{const J=F.find(H=>H.name===ot);return J?Z(J):null},[F,Z]),k=(0,i.useCallback)(ot=>{const J=F.filter(H=>H.location===ot);return J.length?J.map(Z):null},[F,Z]);return{renderComponentByName:m,renderComponentsByLocation:k}}},58496:function(Y,R,t){"use strict";t.d(R,{D:function(){return d},g:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"plugin.techdocs.service"}),d=(0,o.T)({id:"plugin.techdocs.storageservice"})},68979:function(Y,R,t){"use strict";t.d(R,{Z:function(){return P},x:function(){return M}});var o=t(52322),i=t(2784),d=t(64279),S=t(77446),p=t(74314),f=t(29651),l=t(68993),g=t(44394),O=t(6542),A=t(72388),b=t(58496);function C(F,Z){return Z.getOptionalBoolean("techdocs.legacyUseCaseSensitiveTripletPaths")||(F.kind=F.kind.toLocaleLowerCase(),F.name=F.name.toLocaleLowerCase(),F.namespace=F.namespace.toLocaleLowerCase()),F}const x=(F,Z)=>(0,p.eE)(F)===(0,p.eE)(Z),E={title:"",subtitle:"",setTitle:()=>{},setSubtitle:()=>{},setShadowRoot:()=>{},metadata:{loading:!0},entityMetadata:{loading:!0},entityRef:{kind:"",name:"",namespace:""}},I=(0,f.CT)("techdocs-reader-page-context"),P=(0,i.memo)(F=>{const{entityRef:Z,children:m}=F,k=(0,g.h_)(b.g),ot=(0,g.h_)(O.D),J=(0,d.default)(async()=>k.getEntityMetadata(Z),[Z]),H=(0,S.Z)(async()=>k.getTechDocsMetadata(Z),[Z]),[z,G]=(0,i.useState)(E.title),[q,rt]=(0,i.useState)(E.subtitle),[At,xt]=(0,i.useState)(E.shadowRoot);(0,i.useEffect)(()=>{At&&!H.value&&!H.loading&&H.retry()},[H.value,H.loading,At,H.retry,H]);const ut={metadata:H,entityRef:C(Z,ot),entityMetadata:J,shadowRoot:At,setShadowRoot:xt,title:z,setTitle:G,subtitle:q,setSubtitle:rt},bt=(0,l.E)({1:ut});return(0,o.jsx)(A.fC,{attributes:{entityRef:(0,p.eE)(Z)},children:(0,o.jsx)(I.Provider,{value:bt,children:m instanceof Function?m(ut):m})})},(F,Z)=>x(F.entityRef,Z.entityRef)),M=()=>{const F=(0,i.useContext)(I);if(F===void 0)return E;const Z=F.atVersion(1);if(Z===void 0)throw new Error("No context found for version 1.");return Z}},57058:function(Y,R,t){"use strict";t.d(R,{o:function(){return o}});const o=Object.freeze({Header:"Header",Subheader:"Subheader",Settings:"Settings",PrimarySidebar:"PrimarySidebar",SecondarySidebar:"SecondarySidebar",Content:"Content"})},51953:function(Y,R,t){"use strict";t.d(R,{D:function(){return o}});function o(i,d){return d.getOptionalBoolean("techdocs.legacyUseCaseSensitiveTripletPaths")?i:i.toLocaleLowerCase("en-US")}},29895:function(Y,R,t){"use strict";t.d(R,{u:function(){return H}});var o=t(52322),i=t(2784),d=t(42398),S=t(30706),p=t(13788),f=t(25942),l=t(30389),g=t(23433),O=t(63833),A=t(97894),b=t(42081),C=t(88797);class x{getCatalogFilters(){return{"metadata.annotations.backstage.io/techdocs-ref":C.n}}}const E=()=>{const{updateFilters:z}=(0,f.wp)();return(0,i.useEffect)(()=>{z({techdocs:new x})},[z]),null};var I=t(95074),P=t(76635),M=t(538),F=t(9791),Z=t(42870),m=t(16787),k=t(45342),ot=t(49079);const J=z=>{var G;const{columns:q,actions:rt,options:At}=z,{loading:xt,error:ut,entities:bt,filters:Ct}=(0,f.wp)(),{isStarredEntity:Ot,toggleStarredEntity:nt}=(0,Z.C)(),[,U]=(0,I.Z)();var _;const tt=(0,P.capitalize)((_=(G=Ct.user)===null||G===void 0?void 0:G.value)!==null&&_!==void 0?_:"all"),at=[k.n.createCopyDocsUrlAction(U),k.n.createStarEntityAction(Ot,nt)];return ut?(0,o.jsx)(M.G,{severity:"error",title:"Could not load available documentation.",children:(0,o.jsx)(F.O,{language:"text",text:ut.toString()})}):(0,o.jsx)(m.H,{title:tt,entities:bt,loading:xt,actions:rt||at,columns:q,options:At})};J.columns=ot.N,J.actions=k.n;const H=z=>{const{initialFilter:G="owned",columns:q,actions:rt}=z;return(0,o.jsx)(b.j,{children:(0,o.jsxs)(d.V,{children:[(0,o.jsx)(S.y,{title:"",children:(0,o.jsx)(p.q,{children:"Discover documentation in your ecosystem."})}),(0,o.jsx)(f.UO,{children:(0,o.jsxs)(l._i,{children:[(0,o.jsxs)(l._i.Filters,{children:[(0,o.jsx)(E,{}),(0,o.jsx)(g.E,{initialFilter:G}),(0,o.jsx)(O.d,{}),(0,o.jsx)(A.x,{})]}),(0,o.jsx)(l._i.Content,{children:(0,o.jsx)(J,{actions:rt,columns:q})})]})})]})})}},16787:function(Y,R,t){"use strict";t.d(R,{H:function(){return M}});var o=t(52322),i=t(2784),d=t(95074),S=t(37321),p=t(44394),f=t(6542),l=t(8709),g=t(75435),O=t(86540),A=t(95573),b=t(84462),C=t(70249),x=t(15929),E=t(45342),I=t(49079),P=t(51953);const M=F=>{const{entities:Z,title:m,loading:k,columns:ot,actions:J,options:H}=F,[,z]=(0,d.Z)(),G=(0,S.t)(A.Fw),q=(0,p.h_)(f.D);if(!Z)return null;const rt=Z.map(Ct=>{const Ot=(0,g.h)(Ct,l.S4);var nt;return{entity:Ct,resolved:{docsUrl:G({namespace:(0,P.D)((nt=Ct.metadata.namespace)!==null&&nt!==void 0?nt:"default",q),kind:(0,P.D)(Ct.kind,q),name:(0,P.D)(Ct.metadata.name,q)}),ownedByRelations:Ot,ownedByRelationsTitle:Ot.map(U=>(0,O.$)(U,{defaultKind:"group"})).join(", ")}}}),At=[I.N.createNameColumn(),I.N.createOwnerColumn(),I.N.createKindColumn(),I.N.createTypeColumn()],xt=[E.n.createCopyDocsUrlAction(z)],ut=20,bt=rt&&rt.length>ut;return(0,o.jsx)(o.Fragment,{children:k||rt&&rt.length>0?(0,o.jsx)(b.i,{isLoading:k,options:{paging:bt,pageSize:ut,search:!0,actionsColumnIndex:-1,...H},data:rt,columns:ot||At,actions:J||xt,title:m?`${m} (${rt.length})`:`All (${rt.length})`}):(0,o.jsx)(C.u,{missing:"data",title:"No documents to show",description:"Create your own document. Check out our Getting Started Information",action:(0,o.jsx)(x.Q,{color:"primary",to:"https://backstage.io/docs/features/techdocs/getting-started",variant:"contained",children:"DOCS"})})})};M.columns=I.N,M.actions=E.n},45342:function(Y,R,t){"use strict";t.d(R,{n:function(){return g}});var o=t(52322),i=t(2784),d=t(39981),S=t(2337),p=t(11640),f=t(28347);const l=(0,S.Z)({root:{color:"#f3ba37"}})(p.Z),g={createCopyDocsUrlAction(O){return A=>({icon:()=>(0,o.jsx)(d.Z,{fontSize:"small"}),tooltip:"Click to copy documentation link to clipboard",onClick:()=>O(`${window.location.origin}${A.resolved.docsUrl}`)})},createStarEntityAction(O,A){return b=>{const C=b.entity,x=O(C);return{cellStyle:{paddingLeft:"1em"},icon:()=>x?(0,o.jsx)(l,{}):(0,o.jsx)(f.Z,{}),tooltip:x?"Remove from favorites":"Add to favorites",onClick:()=>A(C)}}}}},49079:function(Y,R,t){"use strict";t.d(R,{N:function(){return A}});var o=t(52322),i=t(2784),d=t(62774),S=t(79692);const p=(0,S.Z)(b=>({value:{marginBottom:b.spacing(.75)},subvalue:{color:b.palette.textSubtle,fontWeight:"normal"}}),{name:"BackstageSubvalueCell"});function f(b){const{value:C,subvalue:x}=b,E=p();return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(d.Z,{className:E.value,children:C}),(0,o.jsx)(d.Z,{className:E.subvalue,children:x})]})}var l=t(98864),g=t(68138);function O(b){return b.metadata.title||b.metadata.name}const A={createNameColumn(){return{title:"Document",field:"entity.metadata.name",highlight:!0,render:b=>(0,o.jsx)(f,{value:(0,o.jsx)(l.rU,{to:b.resolved.docsUrl,children:O(b.entity)}),subvalue:b.entity.metadata.description})}},createOwnerColumn(){return{title:"Owner",field:"resolved.ownedByRelationsTitle",render:({resolved:b})=>(0,o.jsx)(g.r,{entityRefs:b.ownedByRelations,defaultKind:"group"})}},createKindColumn(){return{title:"Kind",field:"entity.kind"}},createTypeColumn(){return{title:"Type",field:"entity.spec.type"}}}},42081:function(Y,R,t){"use strict";t.d(R,{j:function(){return f}});var o=t(52322),i=t(2784),d=t(32166),S=t(44394),p=t(6542);const f=l=>{const{children:g}=l,O=(0,S.h_)(p.D);var A;const b=`Documentation available in ${(A=O.getOptionalString("organization.name"))!==null&&A!==void 0?A:"Backstage"}`;return(0,o.jsx)(d.g,{title:"Documentation",subtitle:b,themeId:"documentation",children:g})}},4577:function(Y,R,t){"use strict";t.d(R,{Jl:function(){return bt},I6:function(){return Ct},s4:function(){return rt}});var o=t(58496),i=t(87612),d=t(41385),S=t(48998),p=t(30474);class f extends Error{constructor(U,_){var tt,at;let ct=U;if(_!==void 0){const N=(0,S.n)(_);ct?ct+=`; caused by ${N}`:ct=`caused by ${N}`}super(ct),(0,i._)(this,"cause",void 0),(tt=(at=Error).captureStackTrace)===null||tt===void 0||tt.call(at,this,this.constructor),(!this.name||this.name==="Error")&&this.constructor.name!=="Error"&&(this.name=this.constructor.name),this.cause=(0,p.V)(_)?_:void 0}}class l extends null{constructor(...U){super(...U),_define_property(this,"name","InputError")}}class g extends null{constructor(...U){super(...U),_define_property(this,"name","AuthenticationError")}}class O extends null{constructor(...U){super(...U),_define_property(this,"name","NotAllowedError")}}class A extends f{constructor(...U){super(...U),(0,i._)(this,"name","NotFoundError")}}class b extends null{constructor(...U){super(...U),_define_property(this,"name","ConflictError")}}class C extends null{constructor(...U){super(...U),_define_property(this,"name","NotModifiedError")}}class x extends null{constructor(...U){super(...U),_define_property(this,"name","NotImplementedError")}}class E extends null{}class I extends null{constructor(U,_){super(U,_),this.name=isError(_)?_.name:"Error"}}var P=t(54847);class M{async getApiOrigin(){return await this.discoveryApi.getBaseUrl("techdocs")}async getTechDocsMetadata(U){const{kind:_,namespace:tt,name:at}=U,N=`${await this.getApiOrigin()}/metadata/techdocs/${tt}/${_}/${at}`,K=await this.fetchApi.fetch(`${N}`);if(!K.ok)throw await d.V.fromResponse(K);return await K.json()}async getEntityMetadata(U){const{kind:_,namespace:tt,name:at}=U,N=`${await this.getApiOrigin()}/metadata/entity/${tt}/${_}/${at}`,K=await this.fetchApi.fetch(`${N}`);if(!K.ok)throw await d.V.fromResponse(K);return await K.json()}constructor(U){(0,i._)(this,"configApi",void 0),(0,i._)(this,"discoveryApi",void 0),(0,i._)(this,"fetchApi",void 0),this.configApi=U.configApi,this.discoveryApi=U.discoveryApi,this.fetchApi=U.fetchApi}}class F{async getApiOrigin(){return await this.discoveryApi.getBaseUrl("techdocs")}async getStorageUrl(){var U;return(U=this.configApi.getOptionalString("techdocs.storageUrl"))!==null&&U!==void 0?U:`${await this.discoveryApi.getBaseUrl("techdocs")}/static/docs`}async getBuilder(){return this.configApi.getString("techdocs.builder")}async getEntityDocs(U,_){const{kind:tt,namespace:at,name:ct}=U,K=`${await this.getStorageUrl()}/${at}/${tt}/${ct}/${_}`,pt=await this.fetchApi.fetch(`${K.endsWith("/")?K:`${K}/`}index.html`);let Et="";switch(pt.status){case 404:throw Et="Page not found. ",_||(Et+="This could be because there is no index.md file in the root of the docs directory of this repository."),new A(Et);case 500:throw Et="Could not generate documentation or an error in the TechDocs backend. ",new Error(Et);default:break}return pt.text()}async syncEntityDocs(U,_=()=>{}){const{kind:tt,namespace:at,name:ct}=U,K=`${await this.getApiOrigin()}/sync/${at}/${tt}/${ct}`,{token:pt}=await this.identityApi.getCredentials();return new Promise((Et,ht)=>{const ft=new P.EventSourcePolyfill(K,{withCredentials:!0,headers:pt?{Authorization:`Bearer ${pt}`}:{}});ft.addEventListener("log",lt=>{lt.data&&_(JSON.parse(lt.data))}),ft.addEventListener("finish",lt=>{let Rt=!1;lt.data&&({updated:Rt}=JSON.parse(lt.data)),Et(Rt?"updated":"cached")}),ft.onerror=lt=>{switch(ft.close(),lt.status){case 404:ht(new A(lt.message));return;default:ht(new Error(lt.data));return}}})}async getBaseUrl(U,_,tt){const{kind:at,namespace:ct,name:N}=_,pt=`${await this.getApiOrigin()}/static/docs/${ct}/${at}/${N}/${tt}`;return new URL(U,pt.endsWith("/")?pt:`${pt}/`).toString()}constructor(U){(0,i._)(this,"configApi",void 0),(0,i._)(this,"discoveryApi",void 0),(0,i._)(this,"identityApi",void 0),(0,i._)(this,"fetchApi",void 0),this.configApi=U.configApi,this.discoveryApi=U.discoveryApi,this.identityApi=U.identityApi,this.fetchApi=U.fetchApi}}var Z=t(95573),m=t(15006),k=t(42380),ot=t(6542),J=t(96727),H=t(77186),z=t(85094),G=t(82963),q=t(53945);const rt=(0,m.r)({id:"techdocs",apis:[(0,k.n)({api:o.D,deps:{configApi:ot.D,discoveryApi:J.N,identityApi:H.$,fetchApi:z.g},factory:({configApi:nt,discoveryApi:U,identityApi:_,fetchApi:tt})=>new F({configApi:nt,discoveryApi:U,identityApi:_,fetchApi:tt})}),(0,k.n)({api:o.g,deps:{configApi:ot.D,discoveryApi:J.N,fetchApi:z.g},factory:({configApi:nt,discoveryApi:U,fetchApi:_})=>new M({configApi:nt,discoveryApi:U,fetchApi:_})})],routes:{root:Z._Z,docRoot:Z.Fw,entityContent:Z.pd}}),At=rt.provide((0,G.P4)({name:"TechdocsPage",component:()=>t.e(967).then(t.bind(t,80967)).then(nt=>nt.Router),mountPoint:Z._Z})),xt=rt.provide((0,G.P4)({name:"EntityTechdocsContent",component:()=>t.e(967).then(t.bind(t,80967)).then(nt=>nt.EmbeddedDocsRouter),mountPoint:Z.pd})),ut=rt.provide((0,G.P4)({name:"TechDocsCustomHome",component:()=>t.e(2924).then(t.bind(t,12924)).then(nt=>nt.TechDocsCustomHome),mountPoint:Z._Z})),bt=rt.provide((0,G.P4)({name:"TechDocsIndexPage",component:()=>t.e(8662).then(t.bind(t,18662)).then(nt=>nt.TechDocsIndexPage),mountPoint:Z._Z})),Ct=rt.provide((0,G.P4)({name:"TechDocsReaderPage",component:()=>t.e(5914).then(t.bind(t,35914)).then(nt=>nt.TechDocsReaderPage),mountPoint:Z.Fw})),Ot=rt.provide((0,q.E5)({name:"TechDocsSearchResultListItem",component:()=>Promise.resolve().then(t.bind(t,55511)).then(nt=>nt.TechDocsSearchResultListItem),predicate:nt=>nt.type==="techdocs"}))},76922:function(Y,R,t){"use strict";t.d(R,{F:function(){return Mt}});var o=t(52322),i=t(2784),d=t(79692),S=t(60905),p=t(68979),f=t(70882),l=t(50236),g=t(19219),O=t(55015);const A="TECH_DOCS_SHADOW_DOM_STYLE_LOAD",b=h=>{(0,i.useEffect)(()=>{if(!h)return()=>{};const T=h.querySelectorAll('head > link[rel="stylesheet"]');var j;let $=(j=T==null?void 0:T.length)!==null&&j!==void 0?j:0;const V=new CustomEvent(A);if(!$)return h.dispatchEvent(V),()=>{};const Q=()=>{--$===0&&h.dispatchEvent(V)};return T==null||T.forEach(st=>{st.addEventListener("load",Q)}),()=>{T==null||T.forEach(st=>{st.removeEventListener("load",Q)})}},[h])},C=h=>{const[T,j]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{if(!h)return()=>{};j(!0);const $=h.style;$.setProperty("opacity","0");const V=()=>{j(!1),$.setProperty("opacity","1")};return h.addEventListener(A,V),()=>{h.removeEventListener(A,V)}},[h]),T},x=h=>{const{element:T,onAppend:j,children:$}=h,[V,Q]=(0,i.useState)((0,f.Ue)({...(0,l.Z)(),insertionPoint:void 0}));b(T);const st=C(T),St=(0,i.useCallback)(wt=>{if(!T||!wt)return;Q((0,f.Ue)({...(0,l.Z)(),insertionPoint:T.querySelector("head")||void 0}));let Lt=wt.shadowRoot;Lt||(Lt=wt.attachShadow({mode:"open"})),Lt.replaceChildren(T),typeof j=="function"&&j(Lt)},[T,j]);return(0,o.jsxs)(o.Fragment,{children:[st&&(0,o.jsx)(O.E,{}),(0,o.jsxs)(g.ZP,{jss:V,sheetsManager:new Map,children:[(0,o.jsx)("div",{ref:St,"data-testid":"techdocs-native-shadowroot"}),$]})]})};var E=t(87435),I=t(42398),P=t(76635),M=t(64279),F=t(1849),Z=t(29651),m=t(68993),k=t(44394),ot=t(72388),J=t(6542),H=t(95965);const z=(0,H.T)({id:"plugin.search.queryservice"});class G{query(){return Promise.resolve(this.mockedResults||{results:[]})}constructor(T){_define_property(this,"mockedResults",void 0),this.mockedResults=T}}const q=(0,Z.CT)("search-context"),rt=()=>{const h=(0,i.useContext)(q);if(!h)throw new Error("useSearch must be used within a SearchContextProvider");const T=h.atVersion(1);if(!T)throw new Error("No SearchContext v1 found");return T},At=()=>(0,i.useContext)(q)!==void 0,xt={term:"",types:[],filters:{},pageLimit:void 0,pageCursor:void 0},ut=(h=xt)=>{var T,j,$,V;const Q=(0,k.h_)(z),[st,St]=(0,i.useState)(h.term),[wt,Lt]=(0,i.useState)(h.types),[Bt,zt]=(0,i.useState)(h.filters),[Pt,pe]=(0,i.useState)(h.pageLimit),[le,Qt]=(0,i.useState)(h.pageCursor),_t=(0,F.Z)(st),ne=(0,F.Z)(Bt),te=(0,M.default)(()=>Q.query({term:st,types:wt,filters:Bt,pageLimit:Pt,pageCursor:le}),[st,wt,Bt,Pt,le]),Ut=!te.loading&&!te.error&&((T=te.value)===null||T===void 0?void 0:T.nextPageCursor),Nt=!te.loading&&!te.error&&((j=te.value)===null||j===void 0?void 0:j.previousPageCursor),Jt=(0,i.useCallback)(()=>{var ce;Qt((ce=te.value)===null||ce===void 0?void 0:ce.nextPageCursor)},[($=te.value)===null||$===void 0?void 0:$.nextPageCursor]),ve=(0,i.useCallback)(()=>{var ce;Qt((ce=te.value)===null||ce===void 0?void 0:ce.previousPageCursor)},[(V=te.value)===null||V===void 0?void 0:V.previousPageCursor]);return(0,i.useEffect)(()=>{_t!==void 0&&st!==_t&&Qt(void 0)},[st,_t,Qt]),(0,i.useEffect)(()=>{ne!==void 0&&!(0,P.isEqual)(Bt,ne)&&Qt(void 0)},[Bt,ne,Qt]),{result:te,term:st,setTerm:St,types:wt,setTypes:Lt,filters:Bt,setFilters:zt,pageLimit:Pt,setPageLimit:pe,pageCursor:le,setPageCursor:Qt,fetchNextPage:Ut?Jt:void 0,fetchPreviousPage:Nt?ve:void 0}},bt=h=>{const{initialState:T,children:j}=h,$=ut(T);return(0,o.jsx)(ot.fC,{attributes:{searchTypes:$.types.sort().join(",")},children:(0,o.jsx)(q.Provider,{value:(0,m.E)({1:$}),children:j})})},Ct=h=>{const{initialState:T,inheritParentContextIfAvailable:j,children:$}=h,V=At(),Q=(0,k.h_)(J.D),st=T!=null?T:{},St=Q.has("search.query.pageLimit")?{pageLimit:Q.getNumber("search.query.pageLimit")}:{},wt={...xt,...st,...St};return V&&j?(0,o.jsx)(o.Fragment,{children:$}):(0,o.jsx)(bt,{initialState:wt,children:$})};var Ot=t(4614),nt=t(88013),U=t(50581),_=t(61837),tt=t(86619),at=t(77277),ct=t(21853),N=t(48760),K=t(62369);const pt=({children:h})=>{var T;const j=Bt=>(0,F.Z)(Bt)!==Bt,$=(0,K.z)(),{term:V,result:Q}=rt();var st;const St=(st=(T=Q.value)===null||T===void 0?void 0:T.numberOfResults)!==null&&st!==void 0?st:void 0,Lt=j(Q.loading)&&!Q.loading;return(0,i.useEffect)(()=>{V&&Lt&&$.captureEvent("search",V,{value:St})},[$,V,St,Lt]),(0,o.jsx)(o.Fragment,{children:h})};function Et(h){return(0,i.forwardRef)((T,j)=>(0,o.jsx)(Ct,{inheritParentContextIfAvailable:!0,children:(0,o.jsx)(h,{...T,ref:j})}))}const ht=Et((0,i.forwardRef)((h,T)=>{const{onChange:j,onKeyDown:$=()=>{},onClear:V=()=>{},onSubmit:Q=()=>{},debounceTime:st=200,clearButton:St=!0,fullWidth:wt=!0,value:Lt,label:Bt,placeholder:zt,inputProps:Pt={},InputProps:pe={},endAdornment:le,...Qt}=h,_t=(0,k.h_)(J.D),[ne,te]=(0,i.useState)("");(0,i.useEffect)(()=>{te(ue=>ue!==Lt?String(Lt):ue)},[Lt]),(0,N.Z)(()=>j(ne),st,[ne]);const Ut=(0,i.useCallback)(ue=>{te(ue.target.value)},[te]),Nt=(0,i.useCallback)(ue=>{$&&$(ue),Q&&ue.key==="Enter"&&Q()},[$,Q]),Jt=(0,i.useCallback)(()=>{j(""),V&&V()},[j,V]),ve=Bt?void 0:"Search",Ee=zt!=null?zt:`Search in ${_t.getOptionalString("app.title")||"Backstage"}`,ce=(0,o.jsx)(U.Z,{position:"start",children:(0,o.jsx)(_.Z,{"aria-label":"Query",size:"small",disabled:!0,children:(0,o.jsx)(ct.Z,{})})}),Fe=(0,o.jsx)(U.Z,{position:"end",children:(0,o.jsx)(at.Z,{"aria-label":"Clear",size:"small",onClick:Jt,onKeyDown:ue=>{ue.key==="Enter"&&ue.stopPropagation()},children:"Clear"})});return(0,o.jsx)(pt,{children:(0,o.jsx)(tt.Z,{id:"search-bar-text-field","data-testid":"search-bar-next",variant:"outlined",margin:"normal",inputRef:T,value:ne,label:Bt,placeholder:Ee,InputProps:{startAdornment:ce,endAdornment:St?Fe:le,...pe},inputProps:{"aria-label":ve,...Pt},fullWidth:wt,onChange:Ut,onKeyDown:Nt,...Qt})})})),ft=Et((0,i.forwardRef)((h,T)=>{const{value:j="",onChange:$,...V}=h,{term:Q,setTerm:st}=rt();(0,i.useEffect)(()=>{j&&st(String(j))},[j,st]);const St=(0,i.useCallback)(wt=>{$?$(wt):st(wt)},[$,st]);return(0,o.jsx)(ot.fC,{attributes:{pluginId:"search",extension:"SearchBar"},children:(0,o.jsx)(ht,{...V,ref:T,value:Q,onChange:St})})})),lt=(0,d.Z)(h=>({loading:{right:h.spacing(1),position:"absolute"}})),Rt=h=>T=>(0,o.jsx)(Ct,{inheritParentContextIfAvailable:!0,children:(0,o.jsx)(h,{...T})}),Tt=()=>{const h=lt();return(0,o.jsx)(Ot.Z,{className:h.loading,"data-testid":"search-autocomplete-progressbar",color:"inherit",size:20})},It=Rt(function(T){const{loading:j,value:$,onChange:V=()=>{},options:Q=[],getOptionLabel:st=Ut=>String(Ut),inputPlaceholder:St,inputDebounceTime:wt,freeSolo:Lt=!0,fullWidth:Bt=!0,clearOnBlur:zt=!1,"data-testid":Pt="search-autocomplete",...pe}=T,{setTerm:le}=rt(),Qt=(0,i.useCallback)(Ut=>Ut?typeof Ut=="string"?Ut:st(Ut):"",[st]),_t=(0,i.useMemo)(()=>Qt($),[$,Qt]),ne=(0,i.useCallback)((Ut,Nt,Jt,ve)=>{le(Qt(Nt)),V(Ut,Nt,Jt,ve)},[Qt,le,V]),te=(0,i.useCallback)(({InputProps:{ref:Ut,className:Nt,endAdornment:Jt},InputLabelProps:ve,...Ee})=>(0,o.jsx)(ft,{...Ee,ref:Ut,clearButton:!1,value:_t,placeholder:St,debounceTime:wt,endAdornment:j?(0,o.jsx)(Tt,{}):Jt,InputProps:{className:Nt}}),[j,_t,St,wt]);return(0,o.jsx)(nt.ZP,{...pe,"data-testid":Pt,value:$,onChange:ne,options:Q,getOptionLabel:st,renderInput:te,freeSolo:Lt,fullWidth:Bt,clearOnBlur:zt})});var Wt=t(73557),Yt=t(55511);const he=h=>h==null?void 0:h.document,Zt=h=>{const{entityId:T,entityTitle:j,debounceTime:$=150}=h,[V,Q]=(0,i.useState)(!1),st=(0,Wt.s0)(),{setFilters:St,result:{loading:wt,value:Lt}}=rt(),[Bt,zt]=(0,i.useState)([]);(0,i.useEffect)(()=>{let _t=!0;if(_t&&Lt){const ne=Lt.results.slice(0,10);zt(ne)}return()=>{_t=!1}},[wt,Lt]);const{kind:Pt,name:pe,namespace:le}=T;(0,i.useEffect)(()=>{St(_t=>({..._t,kind:Pt,namespace:le,name:pe}))},[Pt,le,pe,St]);const Qt=(_t,ne)=>{if(he(ne)){const{location:te}=ne.document;st(te)}};return(0,o.jsx)(It,{"data-testid":"techdocs-search-bar",size:"small",open:V,getOptionLabel:()=>"",filterOptions:_t=>_t,onClose:()=>{Q(!1)},onFocus:()=>{Q(!0)},onChange:Qt,blurOnSelect:!0,noOptionsText:"No results found",value:null,options:Bt,renderOption:({document:_t,highlight:ne})=>(0,o.jsx)(Yt.TechDocsSearchResultListItem,{result:_t,lineClamp:3,asListItem:!1,asLink:!1,title:_t.title,highlight:ne}),loading:wt,inputDebounceTime:$,inputPlaceholder:`Search ${j||T.name} docs`,freeSolo:!1})},Ft=h=>{const T={term:"",types:["techdocs"],pageCursor:"",filters:h.entityId};return(0,o.jsx)(Ct,{initialState:T,children:(0,o.jsx)(Zt,{...h})})};var Gt=t(99688),oe=t(80851);const Se=(0,i.lazy)(()=>Promise.all([t.e(8629),t.e(6051)]).then(t.bind(t,76051)).then(h=>({default:h.RealLogViewer})));function Oe(h){const{Progress:T}=(0,oe.q)().getComponents();return(0,o.jsx)(i.Suspense,{fallback:(0,o.jsx)(T,{}),children:(0,o.jsx)(Se,{...h})})}var Le=t(42494),_e=t(90436),Ye=t(4190),ze=t(87685);const fe=(0,d.Z)(h=>(0,Le.Z)({paper:{width:"100%",[h.breakpoints.up("sm")]:{width:"75%"},[h.breakpoints.up("md")]:{width:"50%"},padding:h.spacing(2.5)},root:{height:"100%",overflow:"hidden"},logs:{background:h.palette.background.default}})),Qe=({buildLog:h,onClose:T})=>{const j=fe(),$=h.length===0?"Waiting for logs...":h.join(`
2
- `);return(0,o.jsxs)(S.Z,{container:!0,direction:"column",className:j.root,spacing:0,wrap:"nowrap",children:[(0,o.jsxs)(S.Z,{item:!0,container:!0,justifyContent:"space-between",alignItems:"center",spacing:0,wrap:"nowrap",children:[(0,o.jsx)(_e.Z,{variant:"h5",children:"Build Details"}),(0,o.jsx)(_.Z,{title:"Close the drawer",onClick:T,color:"inherit",children:(0,o.jsx)(ze.Z,{})},"dismiss")]}),(0,o.jsx)(S.Z,{item:!0,xs:!0,children:(0,o.jsx)(Oe,{text:$,classes:{root:j.logs}})})]})},Ie=({buildLog:h})=>{const T=fe(),[j,$]=(0,i.useState)(!1);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(at.Z,{color:"inherit",onClick:()=>$(!0),children:"Show Build Logs"}),(0,o.jsx)(Ye.ZP,{classes:{paper:T.paper},anchor:"right",open:j,onClose:()=>$(!1),children:(0,o.jsx)(Qe,{buildLog:h,onClose:()=>$(!1)})})]})},He=({errorMessage:h})=>{const T=(0,k.h_)(J.D).getOptionalString("techdocs.builder");let j="";return T!=="local"&&(j="Note that techdocs.builder is not set to 'local' in your config, which means this Backstage app will not generate docs if they are not found. Make sure the project's docs are generated and published by some external process (e.g. CI/CD pipeline). Or change techdocs.builder to 'local' to generate docs from this Backstage instance."),(0,o.jsx)(E.m,{status:"404",statusMessage:h||"Documentation not found",additionalInfo:j})};var ee=t(77446),Je=t(58496);function be({contentLoading:h,content:T,activeSyncState:j}){return h||j==="BUILD_READY_RELOAD"||!T&&j==="CHECKING"?"CHECKING":!T&&j==="BUILDING"?"INITIAL_BUILD":T?j==="BUILDING"?"CONTENT_STALE_REFRESHING":j==="BUILD_READY"?"CONTENT_STALE_READY":j==="ERROR"?"CONTENT_STALE_ERROR":"CONTENT_FRESH":"CONTENT_NOT_FOUND"}function je(h,T){const j={...h};switch(T.type){case"sync":T.state==="CHECKING"&&(j.buildLog=[]),j.activeSyncState=T.state,j.syncError=T.syncError;break;case"contentLoading":j.contentLoading=!0,j.contentError=void 0;break;case"content":typeof T.path=="string"&&(j.path=T.path),j.contentLoading=!1,j.content=T.content,j.contentError=T.contentError;break;case"buildLog":j.buildLog=j.buildLog.concat(T.log);break;default:throw new Error}return["BUILD_READY","BUILD_READY_RELOAD"].includes(j.activeSyncState)&&["contentLoading","content"].includes(T.type)&&(j.activeSyncState="UP_TO_DATE",j.buildLog=[]),j}function De(h,T,j,$){var V,Q;const[st,St]=(0,i.useReducer)(je,{activeSyncState:"CHECKING",path:$,contentLoading:!0,buildLog:[]}),wt=(0,k.h_)(Je.D),{retry:Lt}=(0,ee.Z)(async()=>{St({type:"contentLoading"});try{const Pt=await wt.getEntityDocs({kind:h,namespace:T,name:j},$);return St({type:"content",content:Pt,path:$}),Pt}catch(Pt){St({type:"content",contentError:Pt,path:$})}},[wt,h,T,j,$]),Bt=(0,i.useRef)({content:void 0,reload:()=>{}});return Bt.current={content:st.content,reload:Lt},(0,M.default)(async()=>{St({type:"sync",state:"CHECKING"});const Pt=setTimeout(()=>{St({type:"sync",state:"BUILDING"})},1e3);try{switch(await wt.syncEntityDocs({kind:h,namespace:T,name:j},le=>{St({type:"buildLog",log:le})})){case"updated":Bt.current.content?St({type:"sync",state:"BUILD_READY"}):(Bt.current.reload(),St({type:"sync",state:"BUILD_READY_RELOAD"}));break;case"cached":St({type:"sync",state:"UP_TO_DATE"});break;default:St({type:"sync",state:"ERROR",syncError:new Error("Unexpected return state")});break}}catch(pe){St({type:"sync",state:"ERROR",syncError:pe})}finally{clearTimeout(Pt)}},[h,j,T,wt,St,Bt]),{state:(0,i.useMemo)(()=>be({activeSyncState:st.activeSyncState,contentLoading:st.contentLoading,content:st.content}),[st.activeSyncState,st.content,st.contentLoading]),contentReload:Lt,path:st.path,content:st.content,contentErrorMessage:(V=st.contentError)===null||V===void 0?void 0:V.toString(),syncErrorMessage:(Q=st.syncError)===null||Q===void 0?void 0:Q.toString(),buildLog:st.buildLog}}const ae=(0,i.createContext)({}),Be=()=>(0,i.useContext)(ae),Ue=h=>{const{children:T}=h,{"*":j=""}=(0,Wt.UO)(),{entityRef:$}=(0,p.x)(),{kind:V,namespace:Q,name:st}=$,St=De(V,Q,st,j);return(0,o.jsx)(ae.Provider,{value:St,children:T instanceof Function?T(St):T})},L=h=>T=>(0,o.jsx)(Ue,{children:(0,o.jsx)(h,{...T})}),u=(0,d.Z)(h=>({root:{marginBottom:h.spacing(2)},message:{wordBreak:"break-word",overflowWrap:"anywhere"}})),D=()=>{let h=null;const T=u(),{state:j,contentReload:$,contentErrorMessage:V,syncErrorMessage:Q,buildLog:st}=Be();return j==="INITIAL_BUILD"&&(h=(0,o.jsx)(Gt.Z,{classes:{root:T.root},variant:"outlined",severity:"info",icon:(0,o.jsx)(Ot.Z,{size:"24px"}),action:(0,o.jsx)(Ie,{buildLog:st}),children:"Documentation is accessed for the first time and is being prepared. The subsequent loads are much faster."})),j==="CONTENT_STALE_REFRESHING"&&(h=(0,o.jsx)(Gt.Z,{variant:"outlined",severity:"info",icon:(0,o.jsx)(Ot.Z,{size:"24px"}),action:(0,o.jsx)(Ie,{buildLog:st}),classes:{root:T.root},children:"A newer version of this documentation is being prepared and will be available shortly."})),j==="CONTENT_STALE_READY"&&(h=(0,o.jsx)(Gt.Z,{variant:"outlined",severity:"success",action:(0,o.jsx)(at.Z,{color:"inherit",onClick:()=>$(),children:"Refresh"}),classes:{root:T.root},children:"A newer version of this documentation is now available, please refresh to view."})),j==="CONTENT_STALE_ERROR"&&(h=(0,o.jsxs)(Gt.Z,{variant:"outlined",severity:"error",action:(0,o.jsx)(Ie,{buildLog:st}),classes:{root:T.root,message:T.message},children:["Building a newer version of this documentation failed."," ",Q]})),j==="CONTENT_NOT_FOUND"&&(h=(0,o.jsxs)(o.Fragment,{children:[Q&&(0,o.jsxs)(Gt.Z,{variant:"outlined",severity:"error",action:(0,o.jsx)(Ie,{buildLog:st}),classes:{root:T.root,message:T.message},children:["Building a newer version of this documentation failed."," ",Q]}),(0,o.jsx)(He,{errorMessage:V})]})),h};var B=t(60364),et=t(41156),dt=t(91657),yt=t(35368),Kt=t.n(yt);const kt=/main\.[A-Fa-f0-9]{8}\.min\.css$/,jt=/^https:\/\/fonts\.googleapis\.com/,Dt=/^https:\/\/fonts\.gstatic\.com/,re=h=>h.nodeName==="LINK",Pe=h=>{const T=(h==null?void 0:h.getAttribute("href"))||"",j=T.match(kt),$=T.match(jt),V=T.match(Dt);return j||$||V},we=h=>(re(h)&&!Pe(h)&&h.remove(),h),$e=h=>h.nodeName==="IFRAME",so=(h,T)=>{const j=h.getAttribute("src")||"";try{const{host:$}=new URL(j);return T.includes($)}catch{return!1}},qt=h=>T=>($e(T)&&!so(T,h)&&T.remove(),T),de=()=>{const h=(0,k.h_)(J.D);return(0,i.useMemo)(()=>h.getOptionalConfig("techdocs.sanitizer"),[h])},se=()=>{const h=de();return(0,i.useCallback)(async T=>{const j=h==null?void 0:h.getOptionalStringArray("allowedIframeHosts");Kt().addHook("beforeSanitizeElements",we);const $=["link"];return j&&($.push("iframe"),Kt().addHook("beforeSanitizeElements",qt(j))),Kt().sanitize(T.outerHTML,{ADD_TAGS:$,FORBID_TAGS:["style"],WHOLE_DOCUMENT:!0,RETURN_DOM:!0})},[h])};var In=t(93539),me=t(41128),Dn=({theme:h})=>`
3
- /*================== Variables ==================*/
4
- /*
5
- As the MkDocs output is rendered in shadow DOM, the CSS variable definitions on the root selector are not applied. Instead, they have to be applied on :host.
6
- As there is no way to transform the served main*.css yet (for example in the backend), we have to copy from main*.css and modify them.
7
- */
8
-
9
- :host {
10
- /* FONT */
11
- --md-default-fg-color: ${h.palette.text.primary};
12
- --md-default-fg-color--light: ${h.palette.text.secondary};
13
- --md-default-fg-color--lighter: ${(0,me.$n)(h.palette.text.secondary,.7)};
14
- --md-default-fg-color--lightest: ${(0,me.$n)(h.palette.text.secondary,.3)};
15
-
16
- /* BACKGROUND */
17
- --md-default-bg-color:${h.palette.background.default};
18
- --md-default-bg-color--light: ${h.palette.background.paper};
19
- --md-default-bg-color--lighter: ${(0,me.$n)(h.palette.background.paper,.7)};
20
- --md-default-bg-color--lightest: ${(0,me.$n)(h.palette.background.paper,.3)};
21
-
22
- /* PRIMARY */
23
- --md-primary-fg-color: ${h.palette.primary.main};
24
- --md-primary-fg-color--light: ${h.palette.primary.light};
25
- --md-primary-fg-color--dark: ${h.palette.primary.dark};
26
- --md-primary-bg-color: ${h.palette.primary.contrastText};
27
- --md-primary-bg-color--light: ${(0,me.$n)(h.palette.primary.contrastText,.7)};
28
-
29
- /* ACCENT */
30
- --md-accent-fg-color: var(--md-primary-fg-color);
31
-
32
- /* SHADOW */
33
- --md-shadow-z1: ${h.shadows[1]};
34
- --md-shadow-z2: ${h.shadows[2]};
35
- --md-shadow-z3: ${h.shadows[3]};
36
-
37
- /* EXTENSIONS */
38
- --md-admonition-fg-color: var(--md-default-fg-color);
39
- --md-admonition-bg-color: var(--md-default-bg-color);
40
- /* Admonitions and others are using SVG masks to define icons. These masks are defined as CSS variables. */
41
- --md-admonition-icon--note: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20.71 7.04c.39-.39.39-1.04 0-1.41l-2.34-2.34c-.37-.39-1.02-.39-1.41 0l-1.84 1.83 3.75 3.75M3 17.25V21h3.75L17.81 9.93l-3.75-3.75L3 17.25z"/></svg>');
42
- --md-admonition-icon--abstract: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M4 5h16v2H4V5m0 4h16v2H4V9m0 4h16v2H4v-2m0 4h10v2H4v-2z"/></svg>');
43
- --md-admonition-icon--info: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 9h-2V7h2m0 10h-2v-6h2m-1-9A10 10 0 002 12a10 10 0 0010 10 10 10 0 0010-10A10 10 0 0012 2z"/></svg>');
44
- --md-admonition-icon--tip: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M17.55 11.2c-.23-.3-.5-.56-.76-.82-.65-.6-1.4-1.03-2.03-1.66C13.3 7.26 13 4.85 13.91 3c-.91.23-1.75.75-2.45 1.32-2.54 2.08-3.54 5.75-2.34 8.9.04.1.08.2.08.33 0 .22-.15.42-.35.5-.22.1-.46.04-.64-.12a.83.83 0 01-.15-.17c-1.1-1.43-1.28-3.48-.53-5.12C5.89 10 5 12.3 5.14 14.47c.04.5.1 1 .27 1.5.14.6.4 1.2.72 1.73 1.04 1.73 2.87 2.97 4.84 3.22 2.1.27 4.35-.12 5.96-1.6 1.8-1.66 2.45-4.32 1.5-6.6l-.13-.26c-.2-.46-.47-.87-.8-1.25l.05-.01m-3.1 6.3c-.28.24-.73.5-1.08.6-1.1.4-2.2-.16-2.87-.82 1.19-.28 1.89-1.16 2.09-2.05.17-.8-.14-1.46-.27-2.23-.12-.74-.1-1.37.18-2.06.17.38.37.76.6 1.06.76 1 1.95 1.44 2.2 2.8.04.14.06.28.06.43.03.82-.32 1.72-.92 2.27h.01z"/></svg>');
45
- --md-admonition-icon--success: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2C6.5 2 2 6.5 2 12s4.5 10 10 10 10-4.5 10-10S17.5 2 12 2m-2 15l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>');
46
- --md-admonition-icon--question: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M15.07 11.25l-.9.92C13.45 12.89 13 13.5 13 15h-2v-.5c0-1.11.45-2.11 1.17-2.83l1.24-1.26c.37-.36.59-.86.59-1.41a2 2 0 00-2-2 2 2 0 00-2 2H8a4 4 0 014-4 4 4 0 014 4 3.2 3.2 0 01-.93 2.25M13 19h-2v-2h2M12 2A10 10 0 002 12a10 10 0 0010 10 10 10 0 0010-10c0-5.53-4.5-10-10-10z"/></svg>');
47
- --md-admonition-icon--warning: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M13 14h-2v-4h2m0 8h-2v-2h2M1 21h22L12 2 1 21z"/></svg>');
48
- --md-admonition-icon--failure: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M12 2c5.53 0 10 4.47 10 10s-4.47 10-10 10S2 17.53 2 12 6.47 2 12 2m3.59 5L12 10.59 8.41 7 7 8.41 10.59 12 7 15.59 8.41 17 12 13.41 15.59 17 17 15.59 13.41 12 17 8.41 15.59 7z"/></svg>');
49
- --md-admonition-icon--danger: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M11.5 20l4.86-9.73H13V4l-5 9.73h3.5V20M12 2c2.75 0 5.1 1 7.05 2.95C21 6.9 22 9.25 22 12s-1 5.1-2.95 7.05C17.1 21 14.75 22 12 22s-5.1-1-7.05-2.95C3 17.1 2 14.75 2 12s1-5.1 2.95-7.05C6.9 3 9.25 2 12 2z"/></svg>');
50
- --md-admonition-icon--bug: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 12h-4v-2h4m0 6h-4v-2h4m6-6h-2.81a5.985 5.985 0 00-1.82-1.96L17 4.41 15.59 3l-2.17 2.17a6.002 6.002 0 00-2.83 0L8.41 3 7 4.41l1.62 1.63C7.88 6.55 7.26 7.22 6.81 8H4v2h2.09c-.05.33-.09.66-.09 1v1H4v2h2v1c0 .34.04.67.09 1H4v2h2.81c1.04 1.79 2.97 3 5.19 3s4.15-1.21 5.19-3H20v-2h-2.09c.05-.33.09-.66.09-1v-1h2v-2h-2v-1c0-.34-.04-.67-.09-1H20V8z"/></svg>');
51
- --md-admonition-icon--example: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M7 13v-2h14v2H7m0 6v-2h14v2H7M7 7V5h14v2H7M3 8V5H2V4h2v4H3m-1 9v-1h3v4H2v-1h2v-.5H3v-1h1V17H2m2.25-7a.75.75 0 01.75.75c0 .2-.08.39-.21.52L3.12 13H5v1H2v-.92L4 11H2v-1h2.25z"/></svg>');
52
- --md-admonition-icon--quote: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 17h3l2-4V7h-6v6h3M6 17h3l2-4V7H5v6h3l-2 4z"/></svg>');
53
- --md-footnotes-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 7v4H5.83l3.58-3.59L8 6l-6 6 6 6 1.41-1.42L5.83 13H21V7h-2z"/></svg>');
54
- --md-details-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z"/></svg>');
55
- --md-tasklist-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 5v14H5V5h14m0-2H5c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h14c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2z"/></svg>');
56
- --md-tasklist-icon--checked: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M0 0h24v24H0z" fill="none"/><path d="M19 3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.11 0 2-.9 2-2V5c0-1.1-.89-2-2-2zm-9 14l-5-5 1.41-1.41L10 14.17l7.59-7.59L19 8l-9 9z"/></svg>');
57
- --md-nav-icon--prev: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M20 11v2H8l5.5 5.5-1.42 1.42L4.16 12l7.92-7.92L13.5 5.5 8 11h12z"/></svg>');
58
- --md-nav-icon--next: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M8.59 16.58 13.17 12 8.59 7.41 10 6l6 6-6 6-1.41-1.42z"/></svg>');
59
- --md-toc-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M3 9h14V7H3v2m0 4h14v-2H3v2m0 4h14v-2H3v2m16 0h2v-2h-2v2m0-10v2h2V7h-2m0 6h2v-2h-2v2z"/></svg>');
60
- --md-clipboard-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M19 21H8V7h11m0-2H8a2 2 0 0 0-2 2v14a2 2 0 0 0 2 2h11a2 2 0 0 0 2-2V7a2 2 0 0 0-2-2m-3-4H4a2 2 0 0 0-2 2v14h2V3h12V1z"/></svg>');
61
- --md-search-result-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24"><path d="M14 2H6a2 2 0 0 0-2 2v16a2 2 0 0 0 2 2h7c-.41-.25-.8-.56-1.14-.9-.33-.33-.61-.7-.86-1.1H6V4h7v5h5v1.18c.71.16 1.39.43 2 .82V8l-6-6m6.31 16.9c1.33-2.11.69-4.9-1.4-6.22-2.11-1.33-4.91-.68-6.22 1.4-1.34 2.11-.69 4.89 1.4 6.22 1.46.93 3.32.93 4.79.02L22 23.39 23.39 22l-3.08-3.1m-3.81.1a2.5 2.5 0 0 1-2.5-2.5 2.5 2.5 0 0 1 2.5-2.5 2.5 2.5 0 0 1 2.5 2.5 2.5 2.5 0 0 1-2.5 2.5z"/></svg>');
62
- --md-source-forks-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M5 3.25a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0zm0 2.122a2.25 2.25 0 1 0-1.5 0v.878A2.25 2.25 0 0 0 5.75 8.5h1.5v2.128a2.251 2.251 0 1 0 1.5 0V8.5h1.5a2.25 2.25 0 0 0 2.25-2.25v-.878a2.25 2.25 0 1 0-1.5 0v.878a.75.75 0 0 1-.75.75h-4.5A.75.75 0 0 1 5 6.25v-.878zm3.75 7.378a.75.75 0 1 1-1.5 0 .75.75 0 0 1 1.5 0zm3-8.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5z"/></svg>');
63
- --md-source-repositories-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M2 2.5A2.5 2.5 0 0 1 4.5 0h8.75a.75.75 0 0 1 .75.75v12.5a.75.75 0 0 1-.75.75h-2.5a.75.75 0 1 1 0-1.5h1.75v-2h-8a1 1 0 0 0-.714 1.7.75.75 0 0 1-1.072 1.05A2.495 2.495 0 0 1 2 11.5v-9zm10.5-1V9h-8c-.356 0-.694.074-1 .208V2.5a1 1 0 0 1 1-1h8zM5 12.25v3.25a.25.25 0 0 0 .4.2l1.45-1.087a.25.25 0 0 1 .3 0L8.6 15.7a.25.25 0 0 0 .4-.2v-3.25a.25.25 0 0 0-.25-.25h-3.5a.25.25 0 0 0-.25.25z"/></svg>');
64
- --md-source-stars-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M8 .25a.75.75 0 0 1 .673.418l1.882 3.815 4.21.612a.75.75 0 0 1 .416 1.279l-3.046 2.97.719 4.192a.75.75 0 0 1-1.088.791L8 12.347l-3.766 1.98a.75.75 0 0 1-1.088-.79l.72-4.194L.818 6.374a.75.75 0 0 1 .416-1.28l4.21-.611L7.327.668A.75.75 0 0 1 8 .25zm0 2.445L6.615 5.5a.75.75 0 0 1-.564.41l-3.097.45 2.24 2.184a.75.75 0 0 1 .216.664l-.528 3.084 2.769-1.456a.75.75 0 0 1 .698 0l2.77 1.456-.53-3.084a.75.75 0 0 1 .216-.664l2.24-2.183-3.096-.45a.75.75 0 0 1-.564-.41L8 2.694v.001z"/></svg>');
65
- --md-source-version-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 16 16"><path fill-rule="evenodd" d="M2.5 7.775V2.75a.25.25 0 0 1 .25-.25h5.025a.25.25 0 0 1 .177.073l6.25 6.25a.25.25 0 0 1 0 .354l-5.025 5.025a.25.25 0 0 1-.354 0l-6.25-6.25a.25.25 0 0 1-.073-.177zm-1.5 0V2.75C1 1.784 1.784 1 2.75 1h5.025c.464 0 .91.184 1.238.513l6.25 6.25a1.75 1.75 0 0 1 0 2.474l-5.026 5.026a1.75 1.75 0 0 1-2.474 0l-6.25-6.25A1.75 1.75 0 0 1 1 7.775zM6 5a1 1 0 1 0 0 2 1 1 0 0 0 0-2z"/></svg>');
66
- --md-version-icon: url('data:image/svg+xml;charset=utf-8,<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><!--! Font Awesome Free 6.0.0 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License) Copyright 2022 Fonticons, Inc.--><path d="m310.6 246.6-127.1 128c-7.1 6.3-15.3 9.4-23.5 9.4s-16.38-3.125-22.63-9.375l-127.1-128C.224 237.5-2.516 223.7 2.438 211.8S19.07 192 32 192h255.1c12.94 0 24.62 7.781 29.58 19.75s3.12 25.75-6.08 34.85z"/></svg>');
67
- }
68
-
69
- :host > * {
70
- /* CODE */
71
- --md-code-fg-color: ${h.palette.text.primary};
72
- --md-code-bg-color: ${h.palette.background.paper};
73
- --md-code-hl-color: ${(0,me.Fq)(h.palette.warning.main,.5)};
74
- --md-code-hl-keyword-color: ${h.palette.type==="dark"?h.palette.primary.light:h.palette.primary.dark};
75
- --md-code-hl-function-color: ${h.palette.type==="dark"?h.palette.secondary.light:h.palette.secondary.dark};
76
- --md-code-hl-string-color: ${h.palette.type==="dark"?h.palette.success.light:h.palette.success.dark};
77
- --md-code-hl-number-color: ${h.palette.type==="dark"?h.palette.error.light:h.palette.error.dark};
78
- --md-code-hl-constant-color: var(--md-code-hl-function-color);
79
- --md-code-hl-special-color: var(--md-code-hl-function-color);
80
- --md-code-hl-name-color: var(--md-code-fg-color);
81
- --md-code-hl-comment-color: var(--md-default-fg-color--light);
82
- --md-code-hl-generic-color: var(--md-default-fg-color--light);
83
- --md-code-hl-variable-color: var(--md-default-fg-color--light);
84
- --md-code-hl-operator-color: var(--md-default-fg-color--light);
85
- --md-code-hl-punctuation-color: var(--md-default-fg-color--light);
86
-
87
- /* TYPESET */
88
- --md-typeset-font-size: 1rem;
89
- --md-typeset-color: var(--md-default-fg-color);
90
- --md-typeset-a-color: ${h.palette.link};
91
- --md-typeset-table-color: ${h.palette.text.primary};
92
- --md-typeset-del-color: ${h.palette.type==="dark"?(0,me.Fq)(h.palette.error.dark,.5):(0,me.Fq)(h.palette.error.light,.5)};
93
- --md-typeset-ins-color: ${h.palette.type==="dark"?(0,me.Fq)(h.palette.success.dark,.5):(0,me.Fq)(h.palette.success.light,.5)};
94
- --md-typeset-mark-color: ${h.palette.type==="dark"?(0,me.Fq)(h.palette.warning.dark,.5):(0,me.Fq)(h.palette.warning.light,.5)};
95
- }
96
-
97
- @media screen and (max-width: 76.1875em) {
98
- :host > * {
99
- /* TYPESET */
100
- --md-typeset-font-size: .9rem;
101
- }
102
- }
103
-
104
- @media screen and (max-width: 600px) {
105
- :host > * {
106
- /* TYPESET */
107
- --md-typeset-font-size: .7rem;
108
- }
109
- }
110
- `,Mn=({theme:h})=>`
111
- /*================== Reset ==================*/
112
-
113
- body {
114
- --md-text-color: var(--md-default-fg-color);
115
- --md-text-link-color: var(--md-accent-fg-color);
116
- --md-text-font-family: ${h.typography.fontFamily};
117
- font-family: var(--md-text-font-family);
118
- background-color: unset;
119
- }
120
- `;const Ln="224px";var Xe=({theme:h,sidebar:T})=>`
121
- /*================== Layout ==================*/
122
-
123
- /* mkdocs material v9 compat */
124
- .md-nav__title {
125
- color: var(--md-default-fg-color);
126
- }
127
-
128
- .md-grid {
129
- max-width: 100%;
130
- margin: 0;
131
- }
132
-
133
- .md-nav {
134
- font-size: calc(var(--md-typeset-font-size) * 0.9);
135
- }
136
- .md-nav__link {
137
- display: flex;
138
- align-items: center;
139
- justify-content: space-between;
140
- }
141
- .md-nav__icon {
142
- height: 20px !important;
143
- width: 20px !important;
144
- margin-left:${h.spacing(1)}px;
145
- }
146
- .md-nav__icon svg {
147
- margin: 0;
148
- width: 20px !important;
149
- height: 20px !important;
150
- }
151
- .md-nav__icon:after {
152
- width: 20px !important;
153
- height: 20px !important;
154
- }
155
-
156
- .md-nav__item--active > .md-nav__link, a.md-nav__link--active {
157
- text-decoration: underline;
158
- color: var(--md-typeset-a-color);
159
- }
160
-
161
- .md-main__inner {
162
- margin-top: 0;
163
- }
164
-
165
- .md-sidebar {
166
- bottom: 75px;
167
- position: fixed;
168
- width: 16rem;
169
- overflow-y: auto;
170
- overflow-x: hidden;
171
- scrollbar-color: rgb(193, 193, 193) #eee;
172
- scrollbar-width: thin;
173
- }
174
- .md-sidebar .md-sidebar__scrollwrap {
175
- width: calc(12.1rem);
176
- }
177
- .md-sidebar--secondary {
178
- right: ${h.spacing(3)}px;
179
- }
180
- .md-sidebar::-webkit-scrollbar {
181
- width: 5px;
182
- }
183
- .md-sidebar::-webkit-scrollbar-button {
184
- width: 5px;
185
- height: 5px;
186
- }
187
- .md-sidebar::-webkit-scrollbar-track {
188
- background: #eee;
189
- border: 1 px solid rgb(250, 250, 250);
190
- box-shadow: 0px 0px 3px #dfdfdf inset;
191
- border-radius: 3px;
192
- }
193
- .md-sidebar::-webkit-scrollbar-thumb {
194
- width: 5px;
195
- background: rgb(193, 193, 193);
196
- border: transparent;
197
- border-radius: 3px;
198
- }
199
- .md-sidebar::-webkit-scrollbar-thumb:hover {
200
- background: rgb(125, 125, 125);
201
- }
202
-
203
- .md-content {
204
- max-width: calc(100% - 16rem * 2);
205
- margin-left: 16rem;
206
- margin-bottom: 50px;
207
- }
208
-
209
- .md-footer {
210
- position: fixed;
211
- bottom: 0px;
212
- pointer-events: none;
213
- }
214
-
215
- .md-footer-nav__link, .md-footer__link {
216
- pointer-events: all;
217
- }
218
-
219
- .md-footer__title {
220
- background-color: unset;
221
- }
222
- .md-footer-nav__link, .md-footer__link {
223
- width: 16rem;
224
- }
225
-
226
- .md-dialog {
227
- background-color: unset;
228
- }
229
-
230
- @media screen and (min-width: 76.25em) {
231
- .md-sidebar {
232
- height: auto;
233
- }
234
- }
235
-
236
- @media screen and (max-width: 76.1875em) {
237
- .md-nav {
238
- transition: none !important;
239
- background-color: var(--md-default-bg-color)
240
- }
241
- .md-nav--primary .md-nav__title {
242
- cursor: auto;
243
- color: var(--md-default-fg-color);
244
- font-weight: 700;
245
- white-space: normal;
246
- line-height: 1rem;
247
- height: auto;
248
- display: flex;
249
- flex-flow: column;
250
- row-gap: 1.6rem;
251
- padding: 1.2rem .8rem .8rem;
252
- background-color: var(--md-default-bg-color);
253
- }
254
- .md-nav--primary .md-nav__title~.md-nav__list {
255
- box-shadow: none;
256
- }
257
- .md-nav--primary .md-nav__title ~ .md-nav__list > :first-child {
258
- border-top: none;
259
- }
260
- .md-nav--primary .md-nav__title .md-nav__button {
261
- display: none;
262
- }
263
- .md-nav--primary .md-nav__title .md-nav__icon {
264
- color: var(--md-default-fg-color);
265
- position: static;
266
- height: auto;
267
- margin: 0 0 0 -0.2rem;
268
- }
269
- .md-nav--primary > .md-nav__title [for="none"] {
270
- padding-top: 0;
271
- }
272
- .md-nav--primary .md-nav__item {
273
- border-top: none;
274
- }
275
- .md-nav--primary :is(.md-nav__title,.md-nav__item) {
276
- font-size : var(--md-typeset-font-size);
277
- }
278
- .md-nav .md-source {
279
- display: none;
280
- }
281
-
282
- .md-sidebar {
283
- height: 100%;
284
- }
285
- .md-sidebar--primary {
286
- width: 12.1rem !important;
287
- z-index: 200;
288
- left: ${T.isPinned?`calc(-12.1rem + ${Ln})`:"calc(-12.1rem + 72px)"} !important;
289
- }
290
- .md-sidebar--secondary:not([hidden]) {
291
- display: none;
292
- }
293
-
294
- .md-content {
295
- max-width: 100%;
296
- margin-left: 0;
297
- }
298
-
299
- .md-header__button {
300
- margin: 0.4rem 0;
301
- margin-left: 0.4rem;
302
- padding: 0;
303
- }
304
-
305
- .md-overlay {
306
- left: 0;
307
- }
308
-
309
- .md-footer {
310
- position: static;
311
- padding-left: 0;
312
- }
313
- .md-footer-nav__link {
314
- /* footer links begin to overlap at small sizes without setting width */
315
- width: 50%;
316
- }
317
- }
318
-
319
- @media screen and (max-width: 600px) {
320
- .md-sidebar--primary {
321
- left: -12.1rem !important;
322
- width: 12.1rem;
323
- }
324
- }
325
-
326
-
327
- @media print {
328
- .md-sidebar,
329
- #toggle-sidebar {
330
- display: none;
331
- }
332
-
333
- .md-content {
334
- margin: 0;
335
- width: 100%;
336
- max-width: 100%;
337
- }
338
- }
339
- `;const Re=["h1","h2","h3","h4","h5","h6"];var io=({theme:h})=>`
340
- /*================== Typeset ==================*/
341
-
342
- .md-typeset {
343
- font-size: var(--md-typeset-font-size);
344
- }
345
-
346
- ${Re.reduce((T,j)=>{var $;const V=($=h.typography.htmlFontSize)!==null&&$!==void 0?$:16,Q=h.typography[j],{lineHeight:st,fontFamily:St,fontWeight:wt,fontSize:Lt}=Q,Bt=zt=>{let Pt=1;return typeof zt=="number"&&(Pt=zt/V*.6),typeof zt=="string"&&(Pt=zt.replace("rem","")),`calc(${Pt} * var(--md-typeset-font-size))`};return T.concat(`
347
- .md-typeset ${j} {
348
- color: var(--md-default-fg-color);
349
- line-height: ${st};
350
- font-family: ${St};
351
- font-weight: ${wt};
352
- font-size: ${Bt(Lt)};
353
- }
354
- `)},"")}
355
-
356
- .md-typeset .md-content__button {
357
- color: var(--md-default-fg-color);
358
- }
359
-
360
- .md-typeset hr {
361
- border-bottom: 0.05rem dotted ${h.palette.divider};
362
- }
363
-
364
- .md-typeset details {
365
- font-size: var(--md-typeset-font-size) !important;
366
- }
367
- .md-typeset details summary {
368
- padding-left: 2.5rem !important;
369
- }
370
- .md-typeset details summary:before,
371
- .md-typeset details summary:after {
372
- top: 50% !important;
373
- width: 20px !important;
374
- height: 20px !important;
375
- transform: rotate(0deg) translateY(-50%) !important;
376
- }
377
- .md-typeset details[open] > summary:after {
378
- transform: rotate(90deg) translateX(-50%) !important;
379
- }
380
-
381
- .md-typeset blockquote {
382
- color: var(--md-default-fg-color--light);
383
- border-left: 0.2rem solid var(--md-default-fg-color--light);
384
- }
385
-
386
- .md-typeset table:not([class]) {
387
- font-size: var(--md-typeset-font-size);
388
- border: 1px solid var(--md-default-fg-color);
389
- border-bottom: none;
390
- border-collapse: collapse;
391
- }
392
- .md-typeset table:not([class]) th {
393
- font-weight: bold;
394
- }
395
- .md-typeset table:not([class]) td, .md-typeset table:not([class]) th {
396
- border-bottom: 1px solid var(--md-default-fg-color);
397
- }
398
-
399
- .md-typeset pre > code::-webkit-scrollbar-thumb {
400
- background-color: hsla(0, 0%, 0%, 0.32);
401
- }
402
- .md-typeset pre > code::-webkit-scrollbar-thumb:hover {
403
- background-color: hsla(0, 0%, 0%, 0.87);
404
- }
405
- `,Ge=()=>`
406
- /*================== Animations ==================*/
407
- /*
408
- Disable CSS animations on link colors as they lead to issues in dark mode.
409
- The dark mode color theme is applied later and theirfore there is always an animation from light to dark mode when navigation between pages.
410
- */
411
- .md-dialog, .md-nav__link, .md-footer__link, .md-typeset a, .md-typeset a::before, .md-typeset .headerlink {
412
- transition: none;
413
- }
414
- `,ao=({theme:h})=>`
415
- /*================== Extensions ==================*/
416
-
417
- /* HIGHLIGHT */
418
- .highlight .md-clipboard:after {
419
- content: unset;
420
- }
421
-
422
- .highlight .nx {
423
- color: ${h.palette.type==="dark"?"#ff53a3":"#ec407a"};
424
- }
425
-
426
- /* CODE HILITE */
427
- .codehilite .gd {
428
- background-color: ${h.palette.type==="dark"?"rgba(248,81,73,0.65)":"#fdd"};
429
- }
430
-
431
- .codehilite .gi {
432
- background-color: ${h.palette.type==="dark"?"rgba(46,160,67,0.65)":"#dfd"};
433
- }
434
-
435
- /* TABBED */
436
- .tabbed-set>input:nth-child(1):checked~.tabbed-labels>:nth-child(1),
437
- .tabbed-set>input:nth-child(2):checked~.tabbed-labels>:nth-child(2),
438
- .tabbed-set>input:nth-child(3):checked~.tabbed-labels>:nth-child(3),
439
- .tabbed-set>input:nth-child(4):checked~.tabbed-labels>:nth-child(4),
440
- .tabbed-set>input:nth-child(5):checked~.tabbed-labels>:nth-child(5),
441
- .tabbed-set>input:nth-child(6):checked~.tabbed-labels>:nth-child(6),
442
- .tabbed-set>input:nth-child(7):checked~.tabbed-labels>:nth-child(7),
443
- .tabbed-set>input:nth-child(8):checked~.tabbed-labels>:nth-child(8),
444
- .tabbed-set>input:nth-child(9):checked~.tabbed-labels>:nth-child(9),
445
- .tabbed-set>input:nth-child(10):checked~.tabbed-labels>:nth-child(10),
446
- .tabbed-set>input:nth-child(11):checked~.tabbed-labels>:nth-child(11),
447
- .tabbed-set>input:nth-child(12):checked~.tabbed-labels>:nth-child(12),
448
- .tabbed-set>input:nth-child(13):checked~.tabbed-labels>:nth-child(13),
449
- .tabbed-set>input:nth-child(14):checked~.tabbed-labels>:nth-child(14),
450
- .tabbed-set>input:nth-child(15):checked~.tabbed-labels>:nth-child(15),
451
- .tabbed-set>input:nth-child(16):checked~.tabbed-labels>:nth-child(16),
452
- .tabbed-set>input:nth-child(17):checked~.tabbed-labels>:nth-child(17),
453
- .tabbed-set>input:nth-child(18):checked~.tabbed-labels>:nth-child(18),
454
- .tabbed-set>input:nth-child(19):checked~.tabbed-labels>:nth-child(19),
455
- .tabbed-set>input:nth-child(20):checked~.tabbed-labels>:nth-child(20) {
456
- color: var(--md-accent-fg-color);
457
- border-color: var(--md-accent-fg-color);
458
- }
459
-
460
- /* TASK-LIST */
461
- .task-list-control .task-list-indicator::before {
462
- background-color: ${h.palette.action.disabledBackground};
463
- }
464
- .task-list-control [type="checkbox"]:checked + .task-list-indicator:before {
465
- background-color: ${h.palette.success.main};
466
- }
467
-
468
- /* ADMONITION */
469
- .admonition {
470
- font-size: var(--md-typeset-font-size) !important;
471
- }
472
- .admonition .admonition-title {
473
- padding-left: 2.5rem !important;
474
- }
475
-
476
- .admonition .admonition-title:before {
477
- top: 50% !important;
478
- width: 20px !important;
479
- height: 20px !important;
480
- transform: translateY(-50%) !important;
481
- }
482
- `;const jn=[Dn,Mn,Xe,io,Ge,ao],lo=()=>(0,In.Pf)(),Vt=()=>{const h=lo(),T=(0,B.Z)();return(0,i.useMemo)(()=>{const j={theme:T,sidebar:h};return jn.reduce(($,V)=>$+V(j),"")},[T,h])},Me=()=>{const h=Vt();return(0,i.useCallback)(T=>(T.getElementsByTagName("head")[0].insertAdjacentHTML("beforeend",`<style>${h}</style>`),T),[h])},qe=async(h,T)=>{let j;if(typeof h=="string")j=new DOMParser().parseFromString(h,"text/html").documentElement;else if(h instanceof Element)j=h;else throw new Error("dom is not a recognized type");for(const $ of T)j=await $(j);return j},co=(h,T,j)=>{const $=h==="src"&&T.endsWith(".svg"),V=!T.match(/^([a-z]*:)?\/\//i),Q=T.startsWith(j);return $&&(V||Q)},uo=({techdocsStorageApi:h,entityId:T,path:j})=>async $=>{const V=await h.getApiOrigin(),Q=async(st,St)=>{for(const wt of st)if(wt.hasAttribute(St)){const Lt=wt.getAttribute(St);if(!Lt)return;const Bt=await h.getBaseUrl(Lt,T,j);if(co(St,Lt,V))try{const Pt=await(await fetch(Bt,{credentials:"include"})).text();wt.setAttribute(St,`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(Pt)))}`)}catch{wt.setAttribute("alt",`Error: ${Lt}`)}else wt.setAttribute(St,Bt)}};return await Promise.all([Q($.querySelectorAll("img"),"src"),Q($.querySelectorAll("script"),"src"),Q($.querySelectorAll("source"),"src"),Q($.querySelectorAll("link"),"href"),Q($.querySelectorAll("a[download]"),"href")]),$},ho=()=>h=>(((j,$)=>{Array.from(j).filter(V=>V.hasAttribute($)).forEach(V=>{const Q=V.getAttribute($);if(Q){Q.match(/^https?:\/\//i)&&V.setAttribute("target","_blank");try{const st=fo(window.location.href);V.setAttribute($,new URL(Q,st).toString())}catch{V.replaceWith(V.textContent||Q)}}})})(Array.from(h.getElementsByTagName("a")),"href"),h);function fo(h){const T=new URL(h);return!T.pathname.endsWith("/")&&!T.pathname.endsWith(".html")&&(T.pathname+="/"),T.toString()}var hn=t(44882);let nn;nn=t(28316);function fn(h,T){"createRoot"in nn?nn.createRoot(T).render(h):nn.render(h,T)}const go=()=>h=>{const T=h.querySelector('.md-header label[for="__drawer"]'),j=h.querySelector("article");if(!T||!j)return h;const $=T.cloneNode();return fn(i.createElement(hn.Z),$),$.id="toggle-sidebar",$.title="Toggle Sidebar",$.classList.add("md-content__button"),$.style.setProperty("padding","0 0 0 5px"),$.style.setProperty("margin","0.4rem 0 0.4rem 0.4rem"),j==null||j.prepend($),h},po=()=>h=>{var T;return(T=h.querySelector(".md-header"))===null||T===void 0||T.remove(),h},vo=()=>h=>{var T,j;return(T=h.querySelector(".md-footer .md-copyright"))===null||T===void 0||T.remove(),(j=h.querySelector(".md-footer-copyright"))===null||j===void 0||j.remove(),h};var mo=t(61800),yo=t(67097),Eo=t(82717),xo=t.n(Eo);const Co=h=>T=>{var j;const $=T.querySelector('[title="Edit this page"]');if(!$||!$.href)return T;const V=new URL($.href),Q=h.byUrl(V);if((Q==null?void 0:Q.type)!=="github"&&(Q==null?void 0:Q.type)!=="gitlab")return T;const st=((j=T.querySelector("article>h1"))===null||j===void 0?void 0:j.childNodes[0].textContent)||"",St=encodeURIComponent(`Documentation Feedback: ${st}`),wt=encodeURIComponent(`Page source:
483
- ${$.href}
484
-
485
- Feedback:`),Lt=(Q==null?void 0:Q.type)==="github"?(0,mo.B)(V.href,"blob"):V.href,Bt=xo()(Lt),zt=`/${Bt.organization}/${Bt.name}`,Pt=$.cloneNode();switch(Q==null?void 0:Q.type){case"gitlab":Pt.href=`${V.origin}${zt}/issues/new?issue[title]=${St}&issue[description]=${wt}`;break;case"github":Pt.href=`${V.origin}${zt}/issues/new?title=${St}&body=${wt}`;break;default:return T}return fn(i.createElement(yo.Z),Pt),Pt.style.paddingLeft="5px",Pt.title="Leave feedback for this page",Pt.id="git-feedback-link",$==null||$.insertAdjacentElement("beforebegin",Pt),T},Ao=()=>h=>(h.addEventListener(A,function T(){if(window.location.hash){var j;const $=window.location.hash.slice(1);h==null||(j=h.querySelector(`[id="${$}"]`))===null||j===void 0||j.scrollIntoView()}h.removeEventListener(A,T)}),h),So=()=>h=>(setTimeout(()=>{const T=h==null?void 0:h.querySelectorAll("li.md-nav__item--active");T.length!==0&&(T.forEach($=>{const V=$==null?void 0:$.querySelector("input");V!=null&&V.checked||V==null||V.click()}),T[T.length-1].scrollIntoView())},200),h);var Oo=t(15459),bo=t(80030),Po=t(72379),Ro=t(41547),To=t(95074);const Bn=(0,Oo.Z)(h=>({tooltip:{fontSize:"inherit",color:h.palette.text.primary,margin:0,padding:h.spacing(.5),backgroundColor:"transparent",boxShadow:"none"}}))(bo.ZP),Un=()=>(0,o.jsx)(Po.Z,{children:(0,o.jsx)("path",{d:"M16 1H4c-1.1 0-2 .9-2 2v14h2V3h12V1zm3 4H8c-1.1 0-2 .9-2 2v14c0 1.1.9 2 2 2h11c1.1 0 2-.9 2-2V7c0-1.1-.9-2-2-2zm0 16H8V7h11v14z"})}),wo=({text:h})=>{const[T,j]=(0,i.useState)(!1),[,$]=(0,To.Z)(),V=(0,i.useCallback)(()=>{$(h),j(!0)},[h,$]),Q=(0,i.useCallback)(()=>{j(!1)},[j]);return(0,o.jsx)(Bn,{title:"Copied to clipboard",placement:"left",open:T,onClose:Q,leaveDelay:1e3,children:(0,o.jsx)(_.Z,{style:{color:"inherit"},className:"md-clipboard md-icon",onClick:V,children:(0,o.jsx)(Un,{})})})},Io=h=>T=>{const j=T.querySelectorAll("pre > code");for(const V of j){var $;const Q=V.textContent||"",st=document.createElement("div");V==null||($=V.parentElement)===null||$===void 0||$.prepend(st),fn((0,o.jsx)(Ro.Z,{theme:h,children:(0,o.jsx)(wo,{text:Q})}),st)}return T},Do=({baseUrl:h,onClick:T})=>j=>(Array.from(j.getElementsByTagName("a")).forEach($=>{$.addEventListener("click",V=>{const st=$.getAttribute("href");st&&st.startsWith(h)&&!$.hasAttribute("download")&&(V.preventDefault(),T(V,st))})}),j),$n=({onLoading:h,onLoaded:T})=>j=>(h(),j.addEventListener(A,function $(){T(),j.removeEventListener(A,$)}),j);function Mo(h,T){const j=new URL(T),$=`${j.origin}${j.pathname.replace(/\/$/,"")}`,V=h.replace($,"").replace(/^\/+/,""),Q=new URL(`http://localhost/${V}`);return`${Q.pathname}${Q.search}${Q.hash}`}function Lo(){const h=(0,Wt.s0)(),j=(0,k.h_)(J.D).getOptionalString("app.baseUrl");return(0,i.useCallback)(V=>{let Q=V;if(j)try{Q=Mo(V,j)}catch{}h(Q)},[h,j])}const jo="screen and (max-width: 76.1875em)",Bo=h=>{const T=Lo(),j=(0,B.Z)(),$=(0,et.Z)(jo),V=se(),Q=Me(),st=(0,K.z)(),St=(0,k.h_)(Je.D),wt=(0,k.h_)(dt.q),{state:Lt,path:Bt,content:zt}=Be(),[Pt,pe]=(0,i.useState)(null),le=C(Pt),Qt=(0,i.useCallback)(()=>{if(!Pt)return;Pt.querySelectorAll(".md-sidebar").forEach(Nt=>{if($)Nt.style.top="0px";else{var Jt;const Fe=(Jt=document)===null||Jt===void 0?void 0:Jt.querySelector(".techdocs-reader-page");var ve;const ue=(ve=Fe==null?void 0:Fe.getBoundingClientRect().top)!==null&&ve!==void 0?ve:0;var Ee;let We=(Ee=Pt.getBoundingClientRect().top)!==null&&Ee!==void 0?Ee:0;const vn=Pt.querySelector(".md-container > .md-tabs");var ce;const mn=(ce=vn==null?void 0:vn.getBoundingClientRect().height)!==null&&ce!==void 0?ce:0;We<ue&&(We=ue),Nt.style.top=`${Math.max(We,0)+mn}px`}Nt.style.setProperty("opacity","1")})},[Pt,$]);(0,i.useEffect)(()=>(window.addEventListener("resize",Qt),window.addEventListener("scroll",Qt,!0),()=>{window.removeEventListener("resize",Qt),window.removeEventListener("scroll",Qt,!0)}),[Pt,Qt]);const _t=(0,i.useCallback)(()=>{if(!Pt)return;const Ut=Pt.querySelector(".md-footer");Ut&&(Ut.style.width=`${Pt.getBoundingClientRect().width}px`)},[Pt]);(0,i.useEffect)(()=>(window.addEventListener("resize",_t),()=>{window.removeEventListener("resize",_t)}),[Pt,_t]),(0,i.useEffect)(()=>{le||(_t(),Qt())},[Lt,le,_t,Qt]);const ne=(0,i.useCallback)((Ut,Nt)=>qe(Ut,[V,uo({techdocsStorageApi:St,entityId:h,path:Nt}),ho(),go(),po(),vo(),Co(wt),Q]),[h,wt,St,V,Q]),te=(0,i.useCallback)(async Ut=>qe(Ut,[Ao(),So(),Io(j),Do({baseUrl:window.location.origin,onClick:(Nt,Jt)=>{var ve;const Ee=Nt.ctrlKey||Nt.metaKey,ce=new URL(Jt),Fe=((ve=Nt.target)===null||ve===void 0?void 0:ve.innerText)||Jt,ue=Jt.replace(window.location.origin,"");if(st.captureEvent("click",Fe,{attributes:{to:ue}}),ce.hash)if(Ee)window.open(Jt,"_blank");else{var We;T(Jt),Ut==null||(We=Ut.querySelector(`[id="${ce.hash.slice(1)}"]`))===null||We===void 0||We.scrollIntoView()}else Ee?window.open(Jt,"_blank"):T(Jt)}}),$n({onLoading:()=>{},onLoaded:()=>{var Nt;(Nt=Ut.querySelector(".md-nav__title"))===null||Nt===void 0||Nt.removeAttribute("for")}}),$n({onLoading:()=>{Array.from(Ut.querySelectorAll(".md-sidebar")).forEach(Jt=>{Jt.style.setProperty("opacity","0")})},onLoaded:()=>{}})]),[j,T,st]);return(0,i.useEffect)(()=>{if(!zt)return()=>{};let Ut=!0;return ne(zt,Bt).then(async Nt=>{if(!(Nt!=null&&Nt.innerHTML)||!Ut)return;window.scroll({top:0});const Jt=await te(Nt);pe(Jt)}),()=>{Ut=!1}},[zt,Bt,ne,te]),Pt};var gn=t(8560),Uo=t(2296),pn=t(57058);const Fn=()=>{const h=(0,Uo.$L)(),{shadowRoot:T}=(0,p.x)(),j=T==null?void 0:T.querySelector('[data-md-component="content"]'),$=T==null?void 0:T.querySelector('div[data-md-component="sidebar"][data-md-type="navigation"], div[data-md-component="navigation"]');let V=$==null?void 0:$.querySelector('[data-techdocs-addons-location="primary sidebar"]');V||(V=document.createElement("div"),V.setAttribute("data-techdocs-addons-location","primary sidebar"),$==null||$.prepend(V));const Q=T==null?void 0:T.querySelector('div[data-md-component="sidebar"][data-md-type="toc"], div[data-md-component="toc"]');let st=Q==null?void 0:Q.querySelector('[data-techdocs-addons-location="secondary sidebar"]');return st||(st=document.createElement("div"),st.setAttribute("data-techdocs-addons-location","secondary sidebar"),Q==null||Q.prepend(st)),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(gn.Z,{container:V,children:h.renderComponentsByLocation(pn.o.PrimarySidebar)}),(0,o.jsx)(gn.Z,{container:j,children:h.renderComponentsByLocation(pn.o.Content)}),(0,o.jsx)(gn.Z,{container:st,children:h.renderComponentsByLocation(pn.o.SecondarySidebar)})]})},Wn=(0,d.Z)({search:{width:"100%","@media (min-width: 76.1875em)":{width:"calc(100% - 34.4rem)",margin:"0 auto"},"@media print":{display:"none"}}}),Mt=L(h=>{var T;const{withSearch:j=!0,onReady:$}=h,V=Wn(),{entityMetadata:{value:Q,loading:st},entityRef:St,setShadowRoot:wt}=(0,p.x)(),Lt=Bo(St),Bt=(0,i.useCallback)(zt=>{wt(zt),$ instanceof Function&&$()},[wt,$]);return st===!1&&!Q?(0,o.jsx)(E.m,{status:"404",statusMessage:"PAGE NOT FOUND"}):Lt?(0,o.jsx)(I.V,{children:(0,o.jsxs)(S.Z,{container:!0,children:[(0,o.jsx)(S.Z,{xs:12,item:!0,children:(0,o.jsx)(D,{})}),j&&(0,o.jsx)(S.Z,{className:V.search,xs:"auto",item:!0,children:(0,o.jsx)(Ft,{entityId:St,entityTitle:Q==null||(T=Q.metadata)===null||T===void 0?void 0:T.title})}),(0,o.jsx)(S.Z,{xs:12,item:!0,children:(0,o.jsx)(x,{element:Lt,onAppend:Bt,children:(0,o.jsx)(Fn,{})})})]})}):(0,o.jsx)(I.V,{children:(0,o.jsx)(S.Z,{container:!0,children:(0,o.jsx)(S.Z,{xs:12,item:!0,children:(0,o.jsx)(D,{})})})})}),ye=null},65386:function(Y,R,t){"use strict";t.d(R,{S:function(){return At}});var o=t(52322),i=t(2784),d=t(18671),S=t(60905),p=t(98069),f=t(60364),l=t(73250),g=t(2296),O=t(68979),A=t(57058),b=t(75435),C=t(41748),x=t(68138),E=t(8709),I=t(79692),P=t(41128),M=t(90436),F=t(98864);const Z=(0,I.Z)(xt=>({root:{textAlign:"left"},label:{color:xt.page.fontColor,fontWeight:xt.typography.fontWeightBold,letterSpacing:0,fontSize:xt.typography.fontSize,marginBottom:xt.spacing(1)/2,lineHeight:1},value:{color:(0,P.Fq)(xt.page.fontColor,.8),fontSize:xt.typography.fontSize,lineHeight:1}}),{name:"BackstageHeaderLabel"}),m=({value:xt,className:ut})=>(0,o.jsx)(M.Z,{component:typeof xt=="string"?"p":"span",className:ut,children:xt});function k(xt){const{label:ut,value:bt,url:Ct}=xt,Ot=Z(),nt=(0,o.jsx)(m,{className:Ot.value,value:bt||"<Unknown>"});return(0,o.jsx)(S.Z,{item:!0,children:(0,o.jsxs)(M.Z,{component:"span",className:Ot.root,children:[(0,o.jsx)(M.Z,{className:Ot.label,children:ut}),Ct?(0,o.jsx)(F.rU,{to:Ct,children:nt}):nt]})})}var ot=t(48037),J=t(44394),H=t(6542),z=t(37321),G=t(76635),q=t(95573);const rt=(0,o.jsx)(p.Z,{animation:"wave",variant:"text",height:40}),At=xt=>{const{palette:{common:{white:ut}}}=(0,f.Z)(),{children:bt}=xt,Ct=(0,g.$L)(),Ot=(0,J.h_)(H.D),{title:nt,setTitle:U,subtitle:_,setSubtitle:tt,entityRef:at,metadata:{value:ct,loading:N},entityMetadata:{value:K,loading:pt}}=(0,O.x)();(0,i.useEffect)(()=>{ct&&(U(ct.site_name),tt(()=>{let{site_description:Zt}=ct;return(!Zt||Zt==="None")&&(Zt=""),Zt}))},[ct,U,tt]);const Et=Ot.getOptional("app.title")||"Backstage",ht=[nt,_,Et].filter(Boolean).join(" | "),{locationMetadata:ft,spec:lt}=K||{},Rt=lt==null?void 0:lt.lifecycle,Tt=K?(0,b.h)(K,E.S4):[],It=(0,z.t)(q._Z)(),Wt=(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(k,{label:(0,G.capitalize)((K==null?void 0:K.kind)||"entity"),value:(0,o.jsx)(C.d,{color:"inherit",entityRef:at,title:K==null?void 0:K.metadata.title,defaultKind:"Component"})}),Tt.length>0&&(0,o.jsx)(k,{label:"Owner",value:(0,o.jsx)(x.r,{color:"inherit",entityRefs:Tt,defaultKind:"group"})}),Rt?(0,o.jsx)(k,{label:"Lifecycle",value:String(Rt)}):null,ft&&ft.type!=="dir"&&ft.type!=="file"?(0,o.jsx)(k,{label:"",value:(0,o.jsxs)(S.Z,{container:!0,direction:"column",alignItems:"center",style:{color:ut},children:[(0,o.jsx)(S.Z,{style:{padding:0},item:!0,children:(0,o.jsx)(l.Z,{style:{marginTop:"-25px"}})}),(0,o.jsx)(S.Z,{style:{padding:0},item:!0,children:"Source"})]}),url:ft.target}):null]});return!pt&&K===void 0||!N&&ct===void 0?null:(0,o.jsxs)(ot.h,{type:"Documentation",typeLink:It,title:nt||rt,subtitle:_===""?void 0:_||rt,children:[(0,o.jsx)(d.Z,{titleTemplate:"%s",children:(0,o.jsx)("title",{children:ht})}),Wt,bt,Ct.renderComponentsByLocation(A.o.Header)]})}},95573:function(Y,R,t){"use strict";t.d(R,{Fw:function(){return d},_Z:function(){return i},pd:function(){return S}});var o=t(30283);const i=(0,o.N)({id:"techdocs:index-page"}),d=(0,o.N)({id:"techdocs:reader-page",params:["namespace","kind","name"]}),S=(0,o.N)({id:"techdocs:catalog-reader-view"})},55511:function(Y,R,t){"use strict";t.r(R),t.d(R,{TechDocsSearchResultListItem:function(){return A}});var o=t(52322),i=t(2784),d=t(79692),S=t(49378),p=t(86136),f=t(90436),l=t(98864),g=t(76079);const O=(0,d.Z)({flexContainer:{flexWrap:"wrap"},itemText:{width:"100%",marginBottom:"1rem"}}),A=b=>{const{result:C,highlight:x,lineClamp:E=5,asListItem:I=!0,asLink:P=!0,title:M,icon:F}=b,Z=O(),m=({children:J})=>P?(0,o.jsx)(l.rU,{noTrack:!0,to:C.location,children:J}):(0,o.jsx)(o.Fragment,{children:J}),k=()=>{const J=x!=null&&x.fields.title?(0,o.jsx)(g.F,{text:x.fields.title,preTag:x.preTag,postTag:x.postTag}):C.title,H=x!=null&&x.fields.entityTitle?(0,o.jsx)(g.F,{text:x.fields.entityTitle,preTag:x.preTag,postTag:x.postTag}):C.entityTitle,z=x!=null&&x.fields.name?(0,o.jsx)(g.F,{text:x.fields.name,preTag:x.preTag,postTag:x.postTag}):C.name;return C?(0,o.jsx)(S.Z,{className:Z.itemText,primaryTypographyProps:{variant:"h6"},primary:(0,o.jsx)(m,{children:M||(0,o.jsxs)(o.Fragment,{children:[J," | ",H!=null?H:z," docs"]})}),secondary:(0,o.jsx)(f.Z,{component:"span",style:{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:E,overflow:"hidden"},color:"textSecondary",variant:"body2",children:x!=null&&x.fields.text?(0,o.jsx)(g.F,{text:x.fields.text,preTag:x.preTag,postTag:x.postTag}):C.text})}):null},ot=({children:J})=>I?(0,o.jsxs)(o.Fragment,{children:[F&&(0,o.jsx)(p.Z,{children:typeof F=="function"?F(C):F}),(0,o.jsx)("div",{className:Z.flexContainer,children:J})]}):(0,o.jsx)(o.Fragment,{children:J});return(0,o.jsx)(ot,{children:(0,o.jsx)(k,{})})}},53260:function(){}},function(Y){var R=function(o){return Y(Y.s=o)};Y.O(0,[2370,6202,9284,7012,427,242,5109,6816,1213,5218,4736],function(){return R(81025)});var t=Y.O()}]);})();
486
-
487
- //# sourceMappingURL=main.02409009.js.map