@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
@@ -0,0 +1,487 @@
1
+ (()=>{(self.webpackChunktechdocs_cli_embedded_app=self.webpackChunktechdocs_cli_embedded_app||[]).push([[179],{88797:function(X,P,t){"use strict";t.d(P,{n:function(){return o}});const o=Symbol.for("CATALOG_FILTER_EXISTS_0e15b590c0b343a2bae3e787e84c2111")},34106:function(X,P,t){"use strict";t.d(P,{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",y="kubernetes.io/api-server-certificate-authority",p="kubernetes.io/auth-provider"},74314:function(X,P,t){"use strict";t.d(P,{eE:function(){return y},iB:function(){return d},of:function(){return S}});var o=t(34106);function i(p){let l=p.indexOf(":");const g=p.indexOf("/");g!==-1&&g<l&&(l=-1);const b=l===-1?void 0:p.slice(0,l),C=g===-1?void 0:p.slice(l+1,g),R=p.slice(Math.max(l+1,g+1));if(b===""||C===""||R==="")throw new TypeError(`Entity reference "${p}" was not on the form [<kind>:][<namespace>/]<name>`);return{kind:b,namespace:C,name:R}}function d(p){return{kind:p.kind,namespace:p.metadata.namespace||o.zG,name:p.metadata.name}}function S(p,l){if(!p)throw new Error("Entity reference must not be empty");const g=l==null?void 0:l.defaultKind,b=(l==null?void 0:l.defaultNamespace)||o.zG;let C,R,x;if(typeof p=="string"){const w=i(p);var A;C=(A=w.kind)!==null&&A!==void 0?A:g;var E;R=(E=w.namespace)!==null&&E!==void 0?E:b,x=w.name}else{var B;C=(B=p.kind)!==null&&B!==void 0?B:g;var $;R=($=p.namespace)!==null&&$!==void 0?$:b,x=p.name}if(C)if(R){if(!x){const w=JSON.stringify(p);throw new Error(`Entity reference ${w} had missing or empty name`)}}else{const w=JSON.stringify(p);throw new Error(`Entity reference ${w} had missing or empty namespace`)}else{const w=JSON.stringify(p);throw new Error(`Entity reference ${w} had missing or empty kind (e.g. did not start with "component:" or similar)`)}return{kind:C,namespace:R,name:x}}function y(p){let l,g,b;if("metadata"in p){l=p.kind;var C;g=(C=p.metadata.namespace)!==null&&C!==void 0?C:o.zG,b=p.metadata.name}else{l=p.kind;var R;g=(R=p.namespace)!==null&&R!==void 0?R:o.zG,b=p.name}return`${l.toLocaleLowerCase("en-US")}:${g.toLocaleLowerCase("en-US")}/${b.toLocaleLowerCase("en-US")}`}},8709:function(X,P,t){"use strict";t.d(P,{S4:function(){return o},aS:function(){return E},cz:function(){return A},nP:function(){return l},w$:function(){return g}});const o="ownedBy",i="ownerOf",d="consumesApi",S="apiConsumedBy",y="providesApi",p="apiProvidedBy",l="dependsOn",g="dependencyOf",b="parentOf",C="childOf",R="memberOf",x="hasMember",A="partOf",E="hasPart"},90663:function(X,P,t){"use strict";t.d(P,{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(X,P,t){"use strict";t.d(P,{CV:function(){return p},NZ:function(){return y},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 b=l.substring(0,g).trim(),C=l.substring(g+1).trim();if(!b||!C)throw new TypeError(`Unable to parse location ref '${l}', expected '<type>:<target>', e.g. 'url:https://host/path'`);if(b==="http"||b==="https")throw new TypeError(`Invalid location ref '${l}', please prefix it with 'url:', e.g. 'url:${l}'`);if(d.test(C))throw new TypeError(`Invalid location ref '${l}', target is a javascript: URL`);return{type:b,target:C}}function y(l){const{type:g,target:b}=l;if(g){if(!b)throw new TypeError("Unable to stringify location ref, empty target")}else throw new TypeError("Unable to stringify location ref, empty type");if(d.test(b))throw new TypeError(`Invalid location ref '${g}:${b}', target is a javascript: URL`);return`${g}:${b}`}function p(l){var g,b,C,R,x;const A=(x=(b=l.metadata)===null||b===void 0||(g=b.annotations)===null||g===void 0?void 0:g[i.M6])!==null&&x!==void 0?x:(R=l.metadata)===null||R===void 0||(C=R.annotations)===null||C===void 0?void 0:C[i.P1];if(!A)throw new Error(`Entity '${(0,o.eE)(l)}' is missing location`);return S(A)}},9791:function(X,P,t){"use strict";t.d(P,{O:function(){return b}});var o=t(52322),i=t(62774),d=t(60364),S=t(2784),y=t(83229),p=t(26639),l=t(39595),g=t(58033);function b(C){const{text:R,language:x,showLineNumbers:A=!1,highlightedNumbers:E,customStyle:B,showCopyCodeButton:$=!1}=C,w=(0,d.Z)(),j=w.palette.type==="dark"?p.Z:l.Z,T=w.palette.type==="dark"?"#256bf3":"#e6ffed";return(0,o.jsxs)(i.Z,{position:"relative",children:[(0,o.jsx)(y.Z,{customStyle:B,language:x,style:j,showLineNumbers:A,wrapLines:!0,lineNumberStyle:{color:w.palette.textVerySubtle},lineProps:u=>E!=null&&E.includes(u)?{style:{backgroundColor:T}}:{},children:R}),$&&(0,o.jsx)(i.Z,{position:"absolute",top:0,right:0,children:(0,o.jsx)(g.b,{text:R})})]})}},58033:function(X,P,t){"use strict";t.d(P,{b:function(){return b}});var o=t(52322),i=t(44394),d=t(58513),S=t(61837),y=t(80030),p=t(19353),l=t(2784),g=t(95074);function b(C){const{text:R,tooltipDelay:x=1e3,tooltipText:A="Text copied to clipboard","aria-label":E="Copy text"}=C,B=(0,i.h_)(d.V),[$,w]=(0,l.useState)(!1),[{error:j},T]=(0,g.Z)();(0,l.useEffect)(()=>{j&&B.post(j)},[j,B]);const u=K=>{K.stopPropagation(),w(!0),T(R)};return(0,o.jsx)(o.Fragment,{children:(0,o.jsx)(y.ZP,{id:"copy-test-tooltip",title:A,placement:"top",leaveDelay:x,onClose:()=>w(!1),open:$,children:(0,o.jsx)(S.Z,{onClick:u,"aria-label":E,children:(0,o.jsx)(p.Z,{})})})})}},70249:function(X,P,t){"use strict";t.d(P,{u:function(){return A}});var o=t(52322),i=t(60905),d=t(79692),S=t(90436),y=t(2784),p=t.p+"static/missingAnnotation.67f79e98..svg",l=t.p+"static/noInformation.4b426325..svg",g=t.p+"static/createComponent.975d1e1e..svg",b=t.p+"static/noBuild.1715fa71..svg";const C=(0,d.Z)({generalImg:{width:"95%",zIndex:2,position:"relative",left:"50%",top:"50%",transform:"translate(-50%, 15%)"}},{name:"BackstageEmptyStateImage"}),R=({missing:E})=>{const B=C();switch(E){case"field":return(0,o.jsx)("img",{src:p,className:B.generalImg,alt:"annotation is missing"});case"info":return(0,o.jsx)("img",{src:l,alt:"no Information",className:B.generalImg});case"content":return(0,o.jsx)("img",{src:g,alt:"create Component",className:B.generalImg});case"data":return(0,o.jsx)("img",{src:b,alt:"no Build",className:B.generalImg});default:return null}},x=(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 A(E){const{title:B,description:$,missing:w,action:j}=E,T=x();return(0,o.jsxs)(i.Z,{container:!0,direction:"row",justifyContent:"space-around",alignItems:"flex-start",className:T.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:B})}),(0,o.jsx)(i.Z,{item:!0,xs:!0,children:(0,o.jsx)(S.Z,{variant:"body1",children:$})}),(0,o.jsx)(i.Z,{item:!0,xs:!0,className:T.action,children:j})]})}),(0,o.jsx)(i.Z,{item:!0,xs:12,md:6,className:T.imageContainer,children:typeof w=="string"?(0,o.jsx)(R,{missing:w}):w.customImage})]})}},74359:function(X,P,t){"use strict";t.d(P,{y:function(){return R}});var o=t(52322),i=t(79692),d=t(11776),S=t(38402),y=t(49378),p=t(2784),l=t(58033),g=t(538);const b=(0,i.Z)(x=>({text:{fontFamily:"monospace",whiteSpace:"pre",overflowX:"auto",marginRight:x.spacing(2)},divider:{margin:x.spacing(2)}}),{name:"BackstageErrorPanel"}),C=({error:x,message:A,stack:E,children:B})=>{const $=b();return(0,o.jsxs)(d.Z,{dense:!0,children:[(0,o.jsxs)(S.Z,{alignItems:"flex-start",children:[(0,o.jsx)(y.Z,{classes:{secondary:$.text},primary:"Error",secondary:x}),(0,o.jsx)(l.b,{text:x})]}),(0,o.jsxs)(S.Z,{alignItems:"flex-start",children:[(0,o.jsx)(y.Z,{classes:{secondary:$.text},primary:"Message",secondary:A}),(0,o.jsx)(l.b,{text:A})]}),E&&(0,o.jsxs)(S.Z,{alignItems:"flex-start",children:[(0,o.jsx)(y.Z,{classes:{secondary:$.text},primary:"Stack Trace",secondary:E}),(0,o.jsx)(l.b,{text:E})]}),B]})};function R(x){const{title:A,error:E,defaultExpanded:B,children:$}=x;return(0,o.jsx)(g.G,{severity:"error",title:A!=null?A:E.message,defaultExpanded:B,children:(0,o.jsx)(C,{error:E.name,message:E.message,stack:E.stack,children:$})})}},98864:function(X,P,t){"use strict";t.d(P,{rU:function(){return H}});var o=t(52322),i=t(44394),d=t(6542),S=t(62369),y=t(86689),p=t(79692),l=t(90436),g=t(72779),b=t.n(g),C=t(76635),R=t.n(C),x=t(2784),A=t(73557),E=t(71597);function B(){const[G]=(0,A.is)((0,o.jsx)(A.AW,{index:!0,element:(0,o.jsx)("div",{})}));return!G.index}const $=(0,p.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"}),w=G=>/^([a-z+.-]+):/.test(G),j=/^[\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,T=window.open;if(T&&!T.__backstage){const G=function(...V){const ot=String(V[0]);if(j.test(ot))throw new Error("Rejected window.open() with a javascript: URL as a security precaution");return T.apply(this,V)};G.__backstage=!0,window.open=G}const u=()=>{try{return(0,i.h_)(d.D).getOptionalString("app.baseUrl")}catch{return}},K=()=>{const G="http://sample.dev";var z;const V=(z=u())!==null&&z!==void 0?z:"/",{pathname:ot}=new URL(V,G);return(0,C.trimEnd)(ot,"/")},_=G=>{let z=String(G);const V=K(),ot=w(z),ht=z.startsWith(V);return!ot&&!ht&&(z=V.concat(z)),z},J=G=>{if(G instanceof Array)return G.map(J).join(" ").trim();if(typeof G=="object"&&G){var z;return J(G==null||(z=G.props)===null||z===void 0?void 0:z.children)}return["string","number"].includes(typeof G)?String(G):""},H=x.forwardRef(({onClick:G,noTrack:z,...V},ot)=>{const ht=$(),ut=(0,S.z)(),mt=B()?_(V.to):V.to,ft=J(V.children)||mt,lt=w(mt),yt=lt&&!!/^https?:/.exec(mt);if(j.test(mt))throw new Error("Link component rejected javascript: URL as a security precaution");const Y=U=>{G==null||G(U),z||ut.captureEvent("click",ft,{attributes:{to:mt}})};return lt?(0,o.jsxs)(y.Z,{...yt?{target:"_blank",rel:"noopener"}:{},...V,...V["aria-label"]?{"aria-label":`${V["aria-label"]}, Opens in a new window`}:{},ref:ot,href:mt,onClick:Y,className:b()(ht.externalLink,V.className),children:[V.children,(0,o.jsx)(l.Z,{component:"span",className:ht.visuallyHidden,children:", Opens in a new window"})]}):(0,o.jsx)(y.Z,{...V,ref:ot,component:E.rU,to:mt,onClick:Y})})},15929:function(X,P,t){"use strict";t.d(P,{Q:function(){return p}});var o=t(52322),i=t(77277),d=t(2784),S=t(98864);const y=d.forwardRef((g,b)=>(0,o.jsx)(S.rU,{ref:b,...g,color:"initial"})),p=d.forwardRef((g,b)=>(0,o.jsx)(i.Z,{ref:b,component:y,...g})),l=null},55015:function(X,P,t){"use strict";t.d(P,{E:function(){return p}});var o=t(52322),i=t(62774),d=t(67358),S=t(60364),y=t(2784);function p(l){const g=(0,S.Z)(),[b,C]=(0,y.useState)(!1);return(0,y.useEffect)(()=>{const R=setTimeout(()=>C(!0),g.transitions.duration.short);return()=>clearTimeout(R)},[g.transitions.duration.short]),b?(0,o.jsx)(d.Z,{...l,"data-testid":"progress"}):(0,o.jsx)(i.Z,{display:"none"})}},35879:function(X,P,t){"use strict";t.d(P,{H:function(){return H}});var o=t(52322),i=t(62774),d=t(21324),S=t(7089),y=t(30192),p=t(74603),l=t(56939),g=t(12231),b=t(73698),C=t(15459),R=t(42494),x=t(79692),A=t(90436),E=t(2784),B=t(72379);const $=(0,x.Z)(G=>(0,R.Z)({icon:{position:"absolute",right:G.spacing(.5),pointerEvents:"none"}}),{name:"BackstageClosedDropdown"});var j=()=>{const G=$();return(0,o.jsx)(B.Z,{className:G.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 T=(0,x.Z)(G=>(0,R.Z)({icon:{position:"absolute",right:G.spacing(.5),pointerEvents:"none"}}),{name:"BackstageOpenedDropdown"});var K=()=>{const G=T();return(0,o.jsx)(B.Z,{className:G.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 _=(0,C.Z)(G=>(0,R.Z)({root:{"label + &":{marginTop:G.spacing(3)},"&.Mui-focused > div[role=button]":{borderColor:G.palette.primary.main}},input:{borderRadius:G.shape.borderRadius,position:"relative",backgroundColor:G.palette.background.paper,border:"1px solid #ced4da",fontSize:G.typography.body1.fontSize,padding:G.spacing(1.25,3.25,1.25,1.5),transition:G.transitions.create(["border-color","box-shadow"]),fontFamily:"Helvetica Neue","&:focus":{background:G.palette.background.paper,borderRadius:G.shape.borderRadius}}}),{name:"BackstageSelectInputBase"})(p.Z),J=(0,x.Z)(G=>(0,R.Z)({formControl:{margin:G.spacing(1,0),maxWidth:300},label:{transform:"initial",fontWeight:"bold",fontSize:G.typography.body2.fontSize,fontFamily:G.typography.fontFamily,color:G.palette.text.primary,"&.Mui-focused":{color:G.palette.text.primary}},formLabel:{transform:"initial",fontWeight:"bold",fontSize:G.typography.body2.fontSize,fontFamily:G.typography.fontFamily,color:G.palette.text.primary,"&.Mui-focused":{color:G.palette.text.primary}},chips:{display:"flex",flexWrap:"wrap"},chip:{margin:2},checkbox:{},root:{display:"flex",flexDirection:"column"}}),{name:"BackstageSelect"});function H(G){const{multiple:z,items:V,label:ot,placeholder:ht,selected:ut,onChange:mt,triggerReset:ft,native:lt=!1,disabled:yt=!1,margin:Y}=G,U=J(),[Q,tt]=(0,E.useState)(ut||(z?[]:"")),[at,dt]=(0,E.useState)(!1);(0,E.useEffect)(()=>{tt(z?[]:"")},[ft,z]),(0,E.useEffect)(()=>{tt(ut||(z?[]:""))},[ut,z]);const F=ct=>{tt(ct.target.value),mt(ct.target.value)},Z=ct=>{if(yt){ct.preventDefault();return}dt(xt=>z&&!(ct.target instanceof HTMLElement)?!0:!xt)},Ct=()=>{dt(!1)},At=ct=>()=>{const xt=Q.filter(gt=>gt!==ct);tt(xt),mt(xt)};return(0,o.jsx)(i.Z,{className:U.root,children:(0,o.jsxs)(y.Z,{className:U.formControl,children:[(0,o.jsx)(l.Z,{className:U.formLabel,children:ot}),(0,o.jsxs)(b.Z,{"aria-label":ot,value:Q,native:lt,disabled:yt,"data-testid":"select",displayEmpty:!0,multiple:z,margin:Y,onChange:F,open:at,onOpen:Z,onClose:Ct,input:(0,o.jsx)(_,{}),label:ot,renderValue:ct=>{var xt;return z&&Q.length!==0?(0,o.jsx)(i.Z,{className:U.chips,children:ct.map(gt=>{var wt,Tt;return(0,o.jsx)(S.Z,{label:(wt=V.find(It=>It.value===gt))===null||wt===void 0?void 0:wt.label,clickable:!0,onDelete:At(gt),className:U.chip},(Tt=V.find(It=>It.value===gt))===null||Tt===void 0?void 0:Tt.value)})}):(0,o.jsx)(A.Z,{children:Q.length===0?ht||"":(xt=V.find(gt=>gt.value===ct))===null||xt===void 0?void 0:xt.label})},IconComponent:()=>at?(0,o.jsx)(K,{}):(0,o.jsx)(j,{}),MenuProps:{anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},getContentAnchorEl:null},children:[ht&&!z&&(0,o.jsx)(g.Z,{value:[],children:ht}),lt?V&&V.map(ct=>(0,o.jsx)("option",{value:ct.value,children:ct.label},ct.value)):V&&V.map(ct=>(0,o.jsxs)(g.Z,{value:ct.value,children:[z&&(0,o.jsx)(d.Z,{color:"primary",checked:Q.includes(ct.value)||!1,className:U.checkbox}),ct.label]},ct.value))]})]})})}},13788:function(X,P,t){"use strict";t.d(P,{q:function(){return Y}});var o=t(52322),i=t(80851),d=t(62774),S=t(77277),y=t(49429),p=t(61837),l=t(86136),g=t(49378),b=t(12231),C=t(50758),R=t(79784),x=t(79692),A=t(90436),E=t(41156),B=t(2784),$=t(77770),w=t(80079);function j(U,Q){const at=(0,i.q)().getSystemIcon(U);return at?(0,o.jsx)(at,{...Q}):(0,o.jsx)(w.Z,{...Q})}function T(U){return j("brokenImage",U)}function u(U){return j("catalog",U)}function K(U){return j("chat",U)}function _(U){return j("dashboard",U)}function J(U){return j("docs",U)}function H(U){return j("email",U)}function G(U){return j("github",U)}function z(U){return j("group",U)}function V(U){return j("help",U)}function ot(U){return j("user",U)}function ht(U){return j("warning",U)}var ut=t(98864);const mt=(0,x.Z)({popoverList:{minWidth:260,maxWidth:400},menuItem:{whiteSpace:"normal"}},{name:"BackstageSupportButton"}),ft=({icon:U})=>{const Q=(0,i.q)();var tt;const at=U&&(tt=Q.getSystemIcon(U))!==null&&tt!==void 0?tt:V;return(0,o.jsx)(at,{})},lt=({link:U})=>{var Q;return(0,o.jsx)(ut.rU,{to:U.url,children:(Q=U.title)!==null&&Q!==void 0?Q:U.url})},yt=({item:U})=>{var Q;return(0,o.jsxs)(b.Z,{children:[(0,o.jsx)(l.Z,{children:(0,o.jsx)(ft,{icon:U.icon})}),(0,o.jsx)(g.Z,{primary:U.title,secondary:(Q=U.links)===null||Q===void 0?void 0:Q.reduce((tt,at,dt)=>[...tt,dt>0&&(0,o.jsx)("br",{},dt),(0,o.jsx)(lt,{link:at},at.url)],[])})]})};function Y(U){const{title:Q,items:tt,children:at}=U,{items:dt}=(0,$.v)(),[F,Z]=(0,B.useState)(!1),[Ct,At]=(0,B.useState)(null),ct=mt(),xt=(0,E.Z)(Tt=>Tt.breakpoints.down("sm")),gt=Tt=>{At(Tt.currentTarget),Z(!0)},wt=()=>{Z(!1)};return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(d.Z,{display:"flex",ml:1,children:xt?(0,o.jsx)(p.Z,{color:"primary",size:"small",onClick:gt,"data-testid":"support-button","aria-label":"Support",children:(0,o.jsx)(V,{})}):(0,o.jsx)(S.Z,{"data-testid":"support-button","aria-label":"Support",color:"primary",onClick:gt,startIcon:(0,o.jsx)(V,{}),children:"Support"})}),(0,o.jsxs)(R.ZP,{"data-testid":"support-button-popover",open:F,anchorEl:Ct,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},onClose:wt,children:[(0,o.jsxs)(C.Z,{className:ct.popoverList,autoFocusItem:Boolean(Ct),children:[Q&&(0,o.jsx)(b.Z,{alignItems:"flex-start",className:ct.menuItem,children:(0,o.jsx)(A.Z,{variant:"subtitle1",children:Q})}),B.Children.map(at,(Tt,It)=>(0,o.jsx)(b.Z,{alignItems:"flex-start",className:ct.menuItem,children:Tt},`child-${It}`)),(tt!=null?tt:dt).map((Tt,It)=>(0,o.jsx)(yt,{item:Tt},`item-${It}`))]}),(0,o.jsx)(y.Z,{children:(0,o.jsx)(S.Z,{color:"primary",onClick:wt,"aria-label":"Close",children:"Close"})})]})]})}},84462:function(X,P,t){"use strict";t.d(P,{i:function(){return dt}});var o=t(52322),i=t(67222),d=t(62774),S=t(61837),y=t(15459),p=t(79692),l=t(60364),g=t(90436),b=t(21070),C=t(90324),R=t(98281),x=t(48049),A=t(51209),E=t(33375),B=t(44233),$=t(27604),w=t(36444),j=t(37971),T=t(59709),u=t(17373),K=t(3702),_=t(93111),J=t(76635),H=t(2784),G=t(77277),z=t(35879);const V=(0,p.Z)(F=>({root:{height:"100%",width:"315px",display:"flex",flexDirection:"column",marginRight:F.spacing(3)},value:{fontWeight:"bold",fontSize:18},header:{display:"flex",alignItems:"center",height:F.spacing(7.5),justifyContent:"space-between",borderBottom:`1px solid ${F.palette.grey[500]}`},filters:{display:"flex",flexDirection:"column","& > *":{marginTop:F.spacing(2)}}}),{name:"BackstageTableFilters"}),ot=F=>{var Z;const Ct=V(),{onChangeFilters:At}=F,[ct,xt]=(0,H.useState)({...F.selectedFilters}),[gt,wt]=(0,H.useState)(!1),Tt=()=>{xt({}),wt(It=>!It)};return(0,H.useEffect)(()=>{At(ct)},[ct,At]),(0,o.jsxs)(d.Z,{className:Ct.root,children:[(0,o.jsxs)(d.Z,{className:Ct.header,children:[(0,o.jsx)(d.Z,{className:Ct.value,children:"Filters"}),(0,o.jsx)(G.Z,{color:"primary",onClick:Tt,children:"Clear all"})]}),(0,o.jsx)(d.Z,{className:Ct.filters,children:((Z=F.filters)===null||Z===void 0?void 0:Z.length)&&F.filters.map(It=>(0,o.jsx)(z.H,{triggerReset:gt,...It.element,selected:ct[It.element.label],onChange:ae=>xt({...ct,[It.element.label]:ae})},It.element.label))})]})};var ht=t(4614);const ut={Add:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(b.Z,{...F,ref:Z})),Check:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(R.Z,{...F,ref:Z})),Clear:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(E.Z,{...F,ref:Z})),Delete:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(B.Z,{...F,ref:Z})),DetailPanel:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(A.Z,{...F,ref:Z})),Edit:(0,H.forwardRef)((F,Z)=>(0,o.jsx)($.Z,{...F,ref:Z})),Export:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(K.Z,{...F,ref:Z})),Filter:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(w.Z,{...F,ref:Z})),FirstPage:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(j.Z,{...F,ref:Z})),LastPage:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(T.Z,{...F,ref:Z})),NextPage:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(A.Z,{...F,ref:Z})),PreviousPage:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(x.Z,{...F,ref:Z})),ResetSearch:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(E.Z,{...F,ref:Z})),Search:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(w.Z,{...F,ref:Z})),SortArrow:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(C.Z,{...F,ref:Z})),ThirdStateCheck:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(u.Z,{...F,ref:Z})),ViewColumn:(0,H.forwardRef)((F,Z)=>(0,o.jsx)(_.Z,{...F,ref:Z}))};function mt(F,Z){const Ct=Z.split(".");let At=F[Ct[0]];for(let ct=1;ct<Ct.length;++ct){if(At===void 0)return At;const xt=Ct[ct];At=At[xt]}return At}const ft=(0,y.Z)(F=>({header:{padding:F.spacing(1,2,1,2.5),borderTop:`1px solid ${F.palette.grey.A100}`,borderBottom:`1px solid ${F.palette.grey.A100}`,fontWeight:F.typography.fontWeightBold,position:"static",wordBreak:"normal"}}),{name:"BackstageTableHeader"})(i.W$),lt=(0,y.Z)(F=>({root:{padding:F.spacing(3,0,2.5,2.5)},title:{"& > h6":{fontWeight:F.typography.fontWeightBold}},searchField:{paddingRight:F.spacing(2)}}),{name:"BackstageTableToolbar"})(i.UW),yt=(0,p.Z)(F=>({root:{display:"flex",alignItems:"center",justifyContent:"space-between"},title:{fontWeight:F.typography.fontWeightBold,fontSize:18,whiteSpace:"nowrap"}}),{name:"BackstageTableFiltersContainer"}),Y=(0,p.Z)(()=>({root:{display:"flex",alignItems:"start"}}),{name:"BackstageTable"});function U(F,Z){return F.map(Ct=>{var At;const ct=(At=Ct.headerStyle)!==null&&At!==void 0?At:{};let xt=Ct.cellStyle||{};if(Ct.highlight)if(ct.color=Z.palette.textContrast,typeof xt=="object")xt.fontWeight=Z.typography.fontWeightBold;else{const gt=xt;xt=(wt,Tt,It)=>({...gt(wt,Tt,It),fontWeight:Z.typography.fontWeightBold})}return{...Ct,headerStyle:ct,cellStyle:xt}})}function Q(F,Z){return(0,J.transform)(F,(Ct,At,ct)=>{(0,J.isEqual)(At,Z[ct])||(Ct[ct]=At)})}const tt={search:"",filtersOpen:!1,filters:{}};function at(F){const{toolbarRef:Z,setSearch:Ct,hasFilters:At,selectedFiltersLength:ct,toggleFilters:xt}=F,gt=yt(),wt=(0,H.useCallback)(Tt=>{F.onSearchChanged(Tt),Ct(Tt)},[F,Ct]);return At?(0,o.jsxs)(d.Z,{className:gt.root,children:[(0,o.jsxs)(d.Z,{className:gt.root,children:[(0,o.jsx)(S.Z,{onClick:xt,"aria-label":"filter list",children:(0,o.jsx)(w.Z,{})}),(0,o.jsxs)(g.Z,{className:gt.title,children:["Filters (",ct,")"]})]}),(0,o.jsx)(lt,{...F,ref:Z,onSearchChanged:wt})]}):(0,o.jsx)(lt,{...F,ref:Z,onSearchChanged:wt})}function dt(F){const{data:Z,columns:Ct,options:At,title:ct,subtitle:xt,filters:gt,initialState:wt,emptyContent:Tt,onStateChange:It,components:ae,isLoading:te,...fe}=F,kt=Y(),jt=(0,l.Z)(),Wt={...tt,...wt},[zt,Jt]=(0,H.useState)(Wt.filtersOpen),ge=(0,H.useCallback)(()=>Jt(h=>!h),[Jt]),[Oe,Le]=(0,H.useState)(0),[Je,Ke]=(0,H.useState)(Z),[Ce,Xe]=(0,H.useState)(Wt.filters),_e=U(Ct,jt),[He,ie]=(0,H.useState)(Wt.search);(0,H.useEffect)(()=>{if(It){const h=Q({search:He,filtersOpen:zt,filters:Ce},tt);It(h)}},[He,zt,Ce,It]);const qe={headerStyle:{textTransform:"uppercase"}},we=(0,H.useCallback)(h=>{var D;return(D=Ct.find(N=>N.title===h))===null||D===void 0?void 0:D.field},[Ct]);(0,H.useEffect)(()=>{if(typeof Z=="function")return;if(!Ce){Ke(Z);return}const h=Object.values(Ce);if(Z&&h.flat().length){const D=Z.filter(N=>!!Object.entries(Ce).filter(([,rt])=>!!rt.length).every(([rt,vt])=>{const bt=mt(N,we(rt));return Array.isArray(bt)&&Array.isArray(vt)?bt.some(Yt=>vt.includes(Yt)):Array.isArray(bt)?bt.includes(vt):Array.isArray(vt)?vt.includes(bt):bt===vt}));Ke(D)}else Ke(Z);Le(h.flat().length)},[Z,Ce,we]);const Te=(h,D)=>{const N=vt=>{const bt=new Set,Yt=Kt=>{Kt!=null&&bt.add(Kt)};return D&&D.forEach(Kt=>{const Bt=mt(Kt,we(vt));Array.isArray(Bt)?Bt.forEach(Yt):Yt(Bt)}),bt},rt=vt=>({placeholder:"All results",label:vt.column,multiple:vt.type==="multiple-select",items:[...N(vt.column)].sort().map(bt=>({label:bt,value:bt}))});return h.map(vt=>({type:vt.type,element:rt(vt)}))},Ue=!!(gt!=null&&gt.length),me=(0,H.useCallback)(h=>(0,o.jsx)(at,{setSearch:ie,hasFilters:Ue,selectedFiltersLength:Oe,toggleFilters:ge,...h}),[ge,Ue,Oe,ie]),Fe=typeof Z!="function"&&Z.length===0,Ne=Ct.length,M=(0,H.useCallback)(h=>te?(0,o.jsx)("tbody",{"data-testid":"loading-indicator",children:(0,o.jsx)("tr",{children:(0,o.jsx)("td",{colSpan:Ne,children:(0,o.jsx)(d.Z,{sx:{display:"flex",justifyContent:"center",alignItems:"center",width:"100%",minHeight:"15rem"},children:(0,o.jsx)(ht.Z,{size:"5rem"})})})})}):Tt&&Fe?(0,o.jsx)("tbody",{children:(0,o.jsx)("tr",{children:(0,o.jsx)("td",{colSpan:Ne,children:Tt})})}):(0,o.jsx)(i.os,{...h}),[Fe,Tt,Ne,te]);return(0,o.jsxs)(d.Z,{className:kt.root,children:[zt&&Z&&typeof Z!="function"&&(gt==null?void 0:gt.length)&&(0,o.jsx)(ot,{filters:Te(gt,Z),selectedFilters:Ce,onChangeFilters:Xe}),(0,o.jsx)(i.ZP,{components:{Header:ft,Toolbar:me,Body:M,...ae},options:{...qe,...At},columns:_e,icons:ut,title:(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(g.Z,{variant:"h5",component:"h2",children:ct}),xt&&(0,o.jsx)(g.Z,{color:"textSecondary",variant:"body1",children:xt})]}),data:typeof Z=="function"?Z:Je,style:{width:"100%"},localization:{toolbar:{searchPlaceholder:"Filter",searchTooltip:"Filter"}},...fe})]})}dt.icons=Object.freeze(ut)},538:function(X,P,t){"use strict";t.d(P,{G:function(){return T}});var o=t(52322),i=t(41128),d=t(79692),S=t(27616),y=t(8284),p=t(70660),l=t(60905),g=t(90436),b=t(91750),C=t(38016),R=t(2784);const x=(u,K)=>(K.palette.type==="light"?i._j:i.$n)(K.palette[u].light,.6),A=(u,K)=>(K.palette.type==="light"?i.$n:i._j)(K.palette[u].light,.9),E=(0,d.Z)(u=>({root:{marginRight:u.spacing(1),fill:({severity:K})=>x(K,u)}})),B=({severity:u})=>{const K=E({severity:u});return(0,o.jsx)(b.Z,{classes:K})},$=({severity:u})=>{const K=E({severity:u});return(0,o.jsx)(C.Z,{classes:K})},w=(0,d.Z)(u=>({content:{lineBreak:"anywhere"},panel:{backgroundColor:({severity:K})=>A(K,u),color:({severity:K})=>x(K,u),verticalAlign:"middle"},summary:{display:"flex",flexDirection:"row"},summaryText:{color:({severity:K})=>x(K,u),fontWeight:u.typography.fontWeightBold},message:{width:"100%",display:"block",color:({severity:K})=>x(K,u),backgroundColor:({severity:K})=>A(K,u)},details:{width:"100%",display:"block",color:u.palette.textContrast,backgroundColor:u.palette.background.default,border:`1px solid ${u.palette.border}`,padding:u.spacing(2),fontFamily:"sans-serif"}}),{name:"BackstageWarningPanel"}),j=u=>u.charAt(0).toLocaleUpperCase("en-US")+u.slice(1);function T(u){const{severity:K="warning",title:_,message:J,children:H,defaultExpanded:G}=u,z=w({severity:K}),V=j(K)+(_?`: ${_}`:"");return(0,o.jsxs)(S.Z,{defaultExpanded:G!=null?G:!1,className:z.panel,role:"alert",children:[(0,o.jsxs)(y.Z,{expandIcon:(0,o.jsx)($,{severity:K}),classes:{content:z.content},className:z.summary,children:[(0,o.jsx)(B,{severity:K}),(0,o.jsx)(g.Z,{className:z.summaryText,variant:"subtitle1",children:V})]}),(J||H)&&(0,o.jsx)(p.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:z.message,variant:"body1",children:J})}),H&&(0,o.jsx)(l.Z,{item:!0,xs:12,className:z.details,children:H})]})})]})}},77770:function(X,P,t){"use strict";t.d(P,{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 p=(0,o.I_)().get(i.D),l=p==null?void 0:p.getOptionalConfig("app.support");return l?{url:l.getString("url"),items:l.getConfigArray("items").flatMap(g=>{var b;return{title:g.getString("title"),icon:g.getOptionalString("icon"),links:((b=g.getOptionalConfigArray("links"))!==null&&b!==void 0?b:[]).flatMap(C=>({url:C.getString("url"),title:C.getString("title")}))}})}:d}},42398:function(X,P,t){"use strict";t.d(P,{V:function(){return l}});var o=t(52322),i=t(79692),d=t(72779),S=t.n(d),y=t(2784);const p=(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:b,stretch:C,noPadding:R,children:x,...A}=g,E=p();return(0,o.jsx)("article",{...A,className:S()(E.root,b,{[E.stretch]:C,[E.noPadding]:R}),children:x})}},30706:function(X,P,t){"use strict";t.d(P,{y:function(){return b}});var o=t(52322),i=t(62774),d=t(79692),S=t(90436),y=t(2784),p=t(18671);const l=C=>(0,d.Z)(R=>({container:{width:"100%",display:"flex",flexDirection:"row",flexWrap:"wrap",justifyContent:"flex-end",alignItems:"center",marginBottom:R.spacing(2),textAlign:C.textAlign},leftItemsBox:{flex:"1 1 auto",minWidth:0,overflow:"visible"},rightItemsBox:{flex:"0 1 auto",display:"flex",flexDirection:"row",flexWrap:"wrap",alignItems:"center",marginLeft:R.spacing(1),minWidth:0,overflow:"visible"},description:{},title:{display:"inline-flex",marginBottom:0}}),{name:"BackstageContentHeader"}),g=({title:C="Unknown page",className:R})=>(0,o.jsx)(S.Z,{variant:"h4",component:"h2",className:R,"data-testid":"header-title",children:C});function b(C){const{description:R,title:x,titleComponent:A=void 0,children:E,textAlign:B="left"}=C,$=l({textAlign:B})(),w=A||(0,o.jsx)(g,{title:x,className:$.title});return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(p.q,{title:x}),(0,o.jsxs)(i.Z,{className:$.container,children:[(0,o.jsxs)(i.Z,{className:$.leftItemsBox,children:[w,R&&(0,o.jsx)(S.Z,{className:$.description,variant:"body2",children:R})]}),(0,o.jsx)(i.Z,{className:$.rightItemsBox,children:E})]})]})}},87435:function(X,P,t){"use strict";t.d(P,{m:function(){return A}});var o=t(52322),i=t(60905),d=t(79692),S=t(90436),y=t(2784),p=t(73557),l=t(98864),g=t(77770),b=t.p+"static/mic-drop.fe3ef4d0..svg";const C=(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"}),R=()=>{const E=C();return(0,o.jsx)("img",{src:b,className:E.micDrop,alt:"Girl dropping mic from her hands"})},x=(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 A(E){const{status:B,statusMessage:$,additionalInfo:w,supportUrl:j}=E,T=x(),u=(0,p.s0)(),K=(0,g.v)();return(0,o.jsxs)(i.Z,{container:!0,spacing:0,className:T.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:T.subtitle,children:["ERROR ",B,": ",$]}),(0,o.jsx)(S.Z,{variant:"body1",className:T.subtitle,children:w}),(0,o.jsx)(S.Z,{variant:"h2",className:T.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:()=>u(-1),children:"Go back"}),"... or please"," ",(0,o.jsx)(l.rU,{to:j||K.url,children:"contact support"})," if you think this is a bug."]})]}),(0,o.jsx)(R,{})]})}},48037:function(X,P,t){"use strict";t.d(P,{h:function(){return G}});var o=t(52322),i=t(44394),d=t(6542),S=t(62774),y=t(60905),p=t(79692),l=t(80030),g=t(90436),b=t(2784),C=t(18671),R=t(98864),x=t(16173),A=t(11776),E=t(38402),B=t(79784),$=t(15459);const w=(0,$.Z)({root:{textDecoration:"underline",cursor:"pointer"}},{name:"BackstageBreadcrumbsClickableText"})(g.Z),j=(0,$.Z)({root:{textDecoration:"underline",color:"inherit"}},{name:"BackstageBreadcrumbsStyledBox"})(S.Z);function T(z){const{children:V,...ot}=z,[ht,ut]=b.useState(null),mt=b.Children.toArray(V),[ft,lt,...yt]=mt,Y=yt.length?yt.pop():mt[mt.length-1],U=mt.length>3,Q=dt=>{ut(dt.currentTarget)},tt=()=>{ut(null)},at=Boolean(ht);return(0,o.jsxs)(b.Fragment,{children:[(0,o.jsxs)(x.Z,{"aria-label":"breadcrumb",...ot,children:[mt.length>1&&(0,o.jsx)(j,{clone:!0,children:ft}),mt.length>2&&(0,o.jsx)(j,{clone:!0,children:lt}),U&&(0,o.jsx)(w,{onClick:Q,children:"..."}),(0,o.jsx)(S.Z,{style:{fontStyle:"italic"},children:Y})]}),(0,o.jsx)(B.ZP,{open:at,anchorEl:ht,onClose:tt,anchorOrigin:{vertical:"bottom",horizontal:"left"},transformOrigin:{vertical:"top",horizontal:"left"},children:(0,o.jsx)(A.Z,{children:yt.map((dt,F)=>(0,o.jsx)(E.Z,{button:!0,children:(0,o.jsx)(j,{clone:!0,children:dt})},F))})})]})}var u=t(44409);const K=(0,p.Z)(z=>({header:{gridArea:"pageHeader",padding:z.spacing(3),width:"100%",boxShadow:z.shadows[4],position:"relative",zIndex:100,display:"flex",flexDirection:"row",alignItems:"center",backgroundImage:z.page.backgroundImage,backgroundPosition:"center",backgroundSize:"cover",[z.breakpoints.down("sm")]:{flexWrap:"wrap"}},leftItemsBox:{maxWidth:"100%",flexGrow:1},rightItemsBox:{width:"auto",alignItems:"center"},title:{color:z.page.fontColor,wordBreak:"break-word",fontSize:z.typography.h3.fontSize,marginBottom:0},subtitle:{color:z.page.fontColor,opacity:.8,display:"inline-block",marginTop:z.spacing(1),maxWidth:"75ch"},type:{textTransform:"uppercase",fontSize:11,opacity:.8,marginBottom:z.spacing(1),color:z.page.fontColor},breadcrumb:{color:z.page.fontColor},breadcrumbType:{fontSize:"inherit",opacity:.7,marginRight:-z.spacing(.3),marginBottom:z.spacing(.3)},breadcrumbTitle:{fontSize:"inherit",marginLeft:-z.spacing(.3),marginBottom:z.spacing(.3)}}),{name:"BackstageHeader"}),_=({type:z,typeLink:V,classes:ot,pageTitle:ht})=>z?V?(0,o.jsxs)(T,{className:ot.breadcrumb,children:[(0,o.jsx)(R.rU,{to:V,children:z}),(0,o.jsx)(g.Z,{children:ht})]}):(0,o.jsx)(g.Z,{className:ot.type,children:z}):null,J=({pageTitle:z,classes:V,tooltip:ot})=>{const{contentRef:ht}=(0,u.r)(),ut=(0,o.jsx)(g.Z,{ref:ht,tabIndex:-1,className:V.title,variant:"h1",children:z});return ot?(0,o.jsx)(l.ZP,{title:ot,placement:"top-start",children:ut}):ut},H=({classes:z,subtitle:V})=>V?typeof V!="string"?(0,o.jsx)(o.Fragment,{children:V}):(0,o.jsx)(g.Z,{className:z.subtitle,variant:"subtitle2",component:"span",children:V}):null;function G(z){const{children:V,pageTitleOverride:ot,style:ht,subtitle:ut,title:mt,tooltip:ft,type:lt,typeLink:yt}=z,Y=K(),Q=(0,i.h_)(d.D).getOptionalString("app.title")||"Backstage",tt=ot||mt,at=mt||ot,dt=`${tt} | %s | ${Q}`,F=`${tt} | ${Q}`;return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(C.q,{titleTemplate:dt,defaultTitle:F}),(0,o.jsxs)("header",{style:ht,className:Y.header,children:[(0,o.jsxs)(S.Z,{className:Y.leftItemsBox,children:[(0,o.jsx)(_,{classes:Y,type:lt,typeLink:yt,pageTitle:at}),(0,o.jsx)(J,{classes:Y,pageTitle:at,tooltip:ft}),(0,o.jsx)(H,{classes:Y,subtitle:ut})]}),(0,o.jsx)(y.Z,{container:!0,className:Y.rightItemsBox,spacing:4,children:V})]})]})}},67880:function(X,P,t){"use strict";t.d(P,{T:function(){return p}});var o=t(52322),i=t(2784),d=t(79692),S=t(41547);const y=(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 p(l){const{themeId:g,children:b}=l,C=y();return(0,o.jsx)(S.Z,{theme:R=>({...R,page:R.getPageTheme({themeId:g})}),children:(0,o.jsx)("main",{className:C.root,children:b})})}},32166:function(X,P,t){"use strict";t.d(P,{g:function(){return y}});var o=t(52322),i=t(2784),d=t(48037),S=t(67880);function y(p){const{themeId:l,children:g,...b}=p;return(0,o.jsxs)(S.T,{themeId:l,children:[(0,o.jsx)(d.h,{...b}),g]})}},44409:function(X,P,t){"use strict";t.d(P,{t:function(){return x},r:function(){return A}});var o=t(52322),i=t(62774),d=t(79692),S=t(41156),y=t(2784),p=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 b=t(93539);const C=(0,d.Z)(E=>({root:{width:"100%",transition:"padding-left 0.1s ease-out",isolation:"isolate",[E.breakpoints.up("sm")]:{paddingLeft:B=>B.isPinned?B.sidebarConfig.drawerWidthOpen:B.sidebarConfig.drawerWidthClosed},[E.breakpoints.down("xs")]:{paddingBottom:B=>B.sidebarConfig.mobileSidebarHeight},"@media print":{padding:"0px !important"}},content:{zIndex:0,isolation:"isolate","&:focus":{outline:0}}}),{name:"BackstageSidebarPage"}),R=(0,y.createContext)({content:{contentRef:void 0}});function x(E){const[B,$]=(0,y.useState)(()=>g.getSidebarPinState()),{sidebarConfig:w}=(0,y.useContext)(p.kG),j=(0,y.useRef)(null),T=(0,y.useMemo)(()=>({content:{contentRef:j}}),[j]);(0,y.useEffect)(()=>{g.setSidebarPinState(B)},[B]);const u=(0,S.Z)(J=>J.breakpoints.down("xs"),{noSsr:!0}),K=()=>$(!B),_=C({isPinned:B,sidebarConfig:w});return(0,o.jsx)(b.lE,{value:{isPinned:B,toggleSidebarPinState:K,isMobile:u},children:(0,o.jsx)(R.Provider,{value:T,children:(0,o.jsx)(i.Z,{className:_.root,children:E.children})})})}function A(){const{content:E}=(0,y.useContext)(R);return{focusContent:(0,y.useCallback)(()=>{var $,w;E==null||(w=E.contentRef)===null||w===void 0||($=w.current)===null||$===void 0||$.focus()},[E]),contentRef:E==null?void 0:E.contentRef}}},93539:function(X,P,t){"use strict";t.d(P,{Pf:function(){return b},lE:function(){return g}});var o=t(52322),i=t(29651),d=t(68993),S=t(2784);const y={isPinned:!0,toggleSidebarPinState:()=>{},isMobile:!1},p=(0,S.createContext)(y),l=(0,i.CT)("sidebar-pin-state-context");function g(C){const{children:R,value:x}=C;return(0,o.jsx)(p.Provider,{value:x,children:(0,o.jsx)(l.Provider,{value:(0,d.E)({1:x}),children:R})})}const b=()=>{const C=(0,S.useContext)(l),R=(0,S.useContext)(p);if(C===void 0)return R||y;const x=C.atVersion(1);if(x===void 0)throw new Error("No context found for version 1.");return x}},76921:function(X,P,t){"use strict";t.d(P,{$E:function(){return p},Ag:function(){return R},kG:function(){return C},po:function(){return y},rW:function(){return g}});var o=t(2784);const i=72,d=24,S=18,y={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},p=x=>({...y,...x,iconContainerWidth:y.drawerWidthClosed,iconSize:y.drawerWidthClosed-y.iconPadding*2,userBadgeDiameter:y.drawerWidthClosed-y.userBadgePadding*2}),l={drawerWidthClosed:0,drawerWidthOpen:202,defaultOpenDelayMs:y.defaultOpenDelayMs+200},g=x=>({...l,...x}),b="@backstage/core/sidebar-intro-dismissed",C=(0,o.createContext)({sidebarConfig:y,submenuConfig:l}),R=(0,o.createContext)({isHoveredOn:!1,setIsHoveredOn:()=>{}})},72388:function(X,P,t){"use strict";t.d(P,{Os:function(){return p},fC:function(){return l}});var o=t(52322),i=t(29651),d=t(68993),S=t(2784);const y=(0,i.CT)("analytics-context"),p=()=>{const b=(0,S.useContext)(y);if(b===void 0)return{routeRef:"unknown",pluginId:"root",extension:"App"};const C=b.atVersion(1);if(C===void 0)throw new Error("No context found for version 1.");return C},l=b=>{const{attributes:C,children:R}=b,A={...p(),...C},E=(0,d.E)({1:A});return(0,o.jsx)(y.Provider,{value:E,children:R})};function g(b,C){const R=x=>_jsx(l,{attributes:C,children:_jsx(b,{...x})});return R.displayName=`WithAnalyticsContext(${b.displayName||b.name||"Component"})`,R}},7355:function(X,P,t){"use strict";t.d(P,{f:function(){return y},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 y{setContext(l){this.context=l}captureEvent(l,g,{value:b,attributes:C}={}){const{_routeNodeType:R,...x}=this.context;if(l===S){d.mostRecentGatheredNavigation&&(d.mostRecentRoutableExtensionRender={context:{...x,extension:"App"}});return}if(d.mostRecentGatheredNavigation){try{this.analyticsApi.captureEvent({...d.mostRecentGatheredNavigation,...d.mostRecentRoutableExtensionRender})}catch(A){console.warn("Error during analytics event capture. %o",A)}d.mostRecentGatheredNavigation=void 0,d.mostRecentRoutableExtensionRender=void 0}if(l==="navigate"&&R==="gathered"&&x.pluginId==="root"){d.mostRecentGatheredNavigation={action:l,subject:g,value:b,attributes:C,context:x};return}try{this.analyticsApi.captureEvent({action:l,subject:g,value:b,attributes:C,context:x})}catch(A){console.warn("Error during analytics event capture. %o",A)}}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(X,P,t){"use strict";t.d(P,{z:function(){return l}});var o=t(72388),i=t(44394),d=t(86386),S=t(2784),y=t(7355);function p(){try{return(0,i.h_)(d.v)}catch{return{captureEvent:()=>{}}}}function l(){const g=(0,S.useRef)(null),b=(0,o.Os)(),C=p();function R(){return g.current===null&&(g.current=new y.f(C)),g.current}const x=R();return x.setContext(b),x}},78847:function(X,P,t){"use strict";t.d(P,{$:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.alert"})},86386:function(X,P,t){"use strict";t.d(P,{v:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.analytics"})},6542:function(X,P,t){"use strict";t.d(P,{D:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.config"})},96727:function(X,P,t){"use strict";t.d(P,{N:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.discovery"})},58513:function(X,P,t){"use strict";t.d(P,{V:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.error"})},82723:function(X,P,t){"use strict";t.d(P,{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(X,P,t){"use strict";t.d(P,{g:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.fetch"})},77186:function(X,P,t){"use strict";t.d(P,{$:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.identity"})},96253:function(X,P,t){"use strict";t.d(P,{o:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"core.translation"})},95965:function(X,P,t){"use strict";t.d(P,{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(y){if((0,o._)(this,"config",void 0),this.config=y,!y.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 '${y.id}'`)}}function d(S){return new i(S)}},42380:function(X,P,t){"use strict";t.d(P,{n:function(){return o}});function o(i,d){return"id"in i?{api:i,deps:{},factory:()=>d}:i}},44394:function(X,P,t){"use strict";t.d(P,{I_:function(){return S},h_:function(){return y}});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 y(l){const b=S().get(l);if(!b)throw new Error(`No implementation available for ${l}`);return b}function p(l){return function(b){const C=x=>{const A=S(),E={};for(const B in l)if(l.hasOwnProperty(B)){const $=l[B],w=A.get($);if(!w)throw new Error(`No implementation available for ${$}`);E[B]=w}return _jsx(b,{...x,...E})},R=b.displayName||b.name||"Component";return C.displayName=`withApis(${R})`,C}}},80851:function(X,P,t){"use strict";t.d(P,{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(X,P,t){"use strict";t.d(P,{I:function(){return y},R:function(){return S}});var o=t(96087);const i=(0,o.u)("component-data-store",()=>new WeakMap),d="__backstage_data";function S(p,l,g){const b=p;var C;let R=(C=b[d])!==null&&C!==void 0?C:i.get(p);if(R||(R={map:new Map},Object.defineProperty(b,d,{enumerable:!1,configurable:!0,writable:!1,value:R}),i.set(p,R)),R.map.has(l)){const x=p.displayName||p.name;throw new Error(`Attempted to attach duplicate data "${l}" to component "${x}"`)}R.map.set(l,g)}function y(p,l){if(!p)return;const g=p.type;if(!g)return;var b;const C=(b=g[d])!==null&&b!==void 0?b:i.get(g);if(C)return C.map.get(l)}},82963:function(X,P,t){"use strict";t.d(P,{CO:function(){return x},YO:function(){return A},P4:function(){return R}});var o=t(52322),i=t(2784),d=t(62369),S=t(72388),y=t(80851),p=t(37321),l=t(62584),g=t(87612);class b extends i.Component{static getDerivedStateFromError(B){return{error:B}}render(){const{error:B}=this.state,{app:$,plugin:w}=this.props,{ErrorBoundaryFallback:j}=$.getComponents();return B?(0,o.jsx)(j,{error:B,resetError:this.handleErrorReset,plugin:w}):this.props.children}constructor(...B){super(...B),(0,g._)(this,"state",{error:void 0}),(0,g._)(this,"handleErrorReset",()=>{this.setState({error:void 0})})}}var C=t(7355);function R(E){const{component:B,mountPoint:$,name:w}=E;return A({component:{lazy:()=>B().then(j=>{const T=K=>{const _=(0,d.z)();try{(0,p.t)($)}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 ${$} 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)(()=>{_.captureEvent(C.h,"")},[_]),(0,o.jsx)(j,{...K})},u=w||j.displayName||j.name||"LazyComponent";return T.displayName=`RoutableExtension(${u})`,T},j=>u=>{const K=(0,y.q)(),{BootErrorPage:_}=K.getComponents();return(0,o.jsx)(_,{step:"load-chunk",error:j})})},data:{"core.mountPoint":$},name:w})}function x(E){const{component:B,name:$}=E;return A({component:B,name:$})}function A(E){const{data:B={},name:$}=E;$||console.warn("Declaring extensions without name is DEPRECATED. Make sure that all usages of createReactExtension, createComponentExtension and createRoutableExtension provide a name.");let w;if("lazy"in E.component){const T=E.component.lazy;w=(0,i.lazy)(()=>T().then(u=>({default:u})))}else w=E.component.sync;const j=$||w.displayName||w.name||"Component";return{expose(T){const u=K=>{const _=(0,y.q)(),{Progress:J}=_.getComponents(),H=B==null?void 0:B["core.mountPoint"];return(0,o.jsx)(i.Suspense,{fallback:(0,o.jsx)(J,{}),children:(0,o.jsx)(b,{app:_,plugin:T,children:(0,o.jsx)(S.fC,{attributes:{pluginId:T.getId(),...$&&{extension:$},...H&&{routeRef:H.id}},children:(0,o.jsx)(w,{...K})})})})};(0,l.R)(u,"core.plugin",T),(0,l.R)(u,"core.extensionName",$);for(const[K,_]of Object.entries(B))(0,l.R)(u,K,_);return u.displayName=`Extension(${j})`,u}}}},2532:function(X,P,t){"use strict";t.d(P,{v:function(){return g}});var o=t(87612),i=t(2784),d=t(62584),S=t(44394),y=t(82723);function p(b,C,R,x){return i.Children.toArray(b).flatMap(A=>{if(!(0,i.isValidElement)(A))return[];if(A.type===i.Fragment)return p(A.props.children,C,R,x);if((0,d.I)(A,"core.featureFlagged")){const E=A.props;return("with"in E?C.isActive(E.with):!C.isActive(E.without))?p(A.props.children,C,R,x):[]}if(R===void 0||R(A))return[A];if(x)throw new Error(x);return p(A.props.children,C,R,x)})}class l{selectByComponentData(C){const R=p(this.node,this.featureFlagsApi,x=>(0,d.I)(x,C.key)!==void 0,C.withStrictError);return new l(R,this.featureFlagsApi)}findComponentData(C){return p(this.node,this.featureFlagsApi,x=>(0,d.I)(x,C.key)!==void 0).map(x=>(0,d.I)(x,C.key)).filter(x=>x!==void 0)}getElements(){return p(this.node,this.featureFlagsApi)}constructor(C,R){(0,o._)(this,"node",void 0),(0,o._)(this,"featureFlagsApi",void 0),this.node=C,this.featureFlagsApi=R}}function g(b,C,R=[]){const x=(0,S.h_)(y.W),A=new l(b,x);return(0,i.useMemo)(()=>C(A),[b,...R])}},15006:function(X,P,t){"use strict";t.d(P,{r:function(){return d}});var o=t(87612);class i{getId(){return this.config.id}getApis(){var y;return(y=this.config.apis)!==null&&y!==void 0?y:[]}getFeatureFlags(){var y,p;return(p=(y=this.config.featureFlags)===null||y===void 0?void 0:y.slice())!==null&&p!==void 0?p:[]}get routes(){var y;return(y=this.config.routes)!==null&&y!==void 0?y:{}}get externalRoutes(){var y;return(y=this.config.externalRoutes)!==null&&y!==void 0?y:{}}provide(y){return y.expose(this)}toString(){return`plugin{${this.config.id}}`}constructor(y){(0,o._)(this,"config",void 0),this.config=y}}function d(S){return new i(S)}},30283:function(X,P,t){"use strict";t.d(P,{N:function(){return p}});var o=t(87612),i=t(92918);let d=i.K,S=d;class y{get title(){return this.id}toString(){return`routeRef{type=absolute,id=${this.id}}`}constructor(g,b){(0,o._)(this,"id",void 0),(0,o._)(this,"params",void 0),(0,o._)(this,S,void 0),this.id=g,this.params=b,this[d]="absolute"}}function p(l){var g;return new y(l.id,(g=l.params)!==null&&g!==void 0?g:[])}},92918:function(X,P,t){"use strict";t.d(P,{K:function(){return i}});var o=t(96087);const i=(0,o.u)("route-ref-type",()=>Symbol("route-ref-type"))},37321:function(X,P,t){"use strict";t.d(P,{t:function(){return S}});var o=t(2784),i=t(73557),d=t(29651);function S(y){const{pathname:p}=(0,i.TH)(),l=(0,d.Vt)("routing-context");if(!l)throw new Error("Routing context is not available");const g=l.atVersion(1),b=(0,o.useMemo)(()=>g&&g.resolve(y,{pathname:p}),[g,y,p]);if(!l)throw new Error("useRouteRef used outside of routing context");if(!g)throw new Error("RoutingContext v1 not available");const C="optional"in y&&y.optional;if(!b&&!C)throw new Error(`No path for ${y}`);return b}},35304:function(X,P,t){"use strict";t.d(P,{F:function(){return C},y:function(){return R}});var o=t(88412),i=t(52475),d=t(80956),S=t(87612),y=t(18015),p=new WeakMap,l=new WeakMap,g=new WeakMap;class b{get id(){return(0,o._)(this,p)}get T(){throw new Error("Not implemented")}getDefaultMessages(){return(0,o._)(this,l)}setDefaultResource(A){(0,d._)(this,g,A)}getDefaultResource(){return(0,o._)(this,g)}toString(){return`TranslationRef{id=${this.id}}`}constructor(A){(0,i._)(this,p,{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,p,A.id),(0,d._)(this,l,A.messages)}}function C(x){const A=new b(x);return x.translations&&A.setDefaultResource((0,y.N)({ref:A,translations:x.translations})),A}function R(x){const A=x;if(A.$$type!=="@backstage/TranslationRef")throw new Error(`Invalid translation ref, bad type '${A.$$type}'`);if(A.version!=="v1")throw new Error(`Invalid translation ref, bad version '${A.version}'`);return A}},18015:function(X,P,t){"use strict";t.d(P,{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,y])=>({language:S,loader:()=>y().then(p=>{const l=p.default;return{messages:(l==null?void 0:l.$$type)==="@backstage/TranslationMessages"?l.messages:l}})}))}}},41385:function(X,P,t){"use strict";t.d(P,{V:function(){return S}});var o=t(87612),i=t(48998);async function d(y){try{const l=await y.text();if(l){var p;if(!((p=y.headers.get("content-type"))===null||p===void 0)&&p.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 ${y.status} ${y.statusText}, ${l}`},response:{statusCode:y.status}}}}catch{}return{error:{name:"Error",message:`Request failed with status ${y.status} ${y.statusText}`},response:{statusCode:y.status}}}class S extends Error{static async fromResponse(p){const l=await d(p),g=l.response.statusCode||p.status,b=l.error.name||p.statusText,C=`Request failed with ${g} ${b}`,R=(0,i.Fq)(l.error);return new S({message:C,response:p,data:l,cause:R})}constructor(p){super(p.message),(0,o._)(this,"response",void 0),(0,o._)(this,"body",void 0),(0,o._)(this,"cause",void 0),this.name="ResponseError",this.response=p.response,this.body=p.data,this.cause=p.cause}}},30474:function(X,P,t){"use strict";t.d(P,{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(X,P,t){"use strict";t.d(P,{Fq:function(){return y},n:function(){return p}});var o=t(24852),i=t.n(o),d=t(30474);function S(l,g){const C={name:"Unknown",message:"<no reason given>",...serializeErrorInternal(l)};return g!=null&&g.includeStack||delete C.stack,C}function y(l){const g=(0,o.deserializeError)(l);return l.stack||(g.stack=void 0),g}function p(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(X,P,t){"use strict";t.d(P,{a:function(){return Fe},q:function(){return Ne}});var o=t(87612),i=t(38264);const d="amazonaws.com";function S(M){const h=M.getOptionalString("endpoint");var D;const N=(D=M.getOptionalBoolean("s3ForcePathStyle"))!==null&&D!==void 0?D:!1;let rt,vt;if(h){try{const Lt=new URL(h);rt=Lt.host,vt=Lt.pathname}catch{throw new Error(`invalid awsS3 integration config, endpoint '${h}' is not a valid URL`)}if(vt!=="/")throw new Error(`invalid awsS3 integration config, endpoints cannot contain path, got '${h}'`)}else rt=d;const bt=M.getOptionalString("accessKeyId"),Yt=M.getOptionalString("secretAccessKey"),Kt=M.getOptionalString("roleArn"),Bt=M.getOptionalString("externalId");return{host:rt,endpoint:h,s3ForcePathStyle:N,accessKeyId:bt,secretAccessKey:Yt,roleArn:Kt,externalId:Bt}}function y(M){const h=M.map(S);return h.some(D=>D.host===d)||h.push({host:d}),h}class p{get type(){return"awsS3"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(h){return(0,i.FI)(h)}resolveEditUrl(h){return h}constructor(h){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=h}}(0,o._)(p,"factory",({config:M})=>{var h;const D=y((h=M.getOptionalConfigArray("integrations.awsS3"))!==null&&h!==void 0?h:[]);return(0,i.gz)(D.map(N=>new p(N)),N=>N.config.host)});var l=t(88412),g=t(52475),b=t(80956);const C="GB";var R=new WeakMap,x=new WeakMap,A=new WeakMap,E=new WeakMap,B=new WeakMap,$=new WeakMap,w=new WeakMap;class j{static fromRepoUrl(h){const D=new URL(h);let N,rt,vt;const bt=D.pathname.split("/").map(le=>decodeURIComponent(le));if(bt[2]==="_git"?(N=bt[1],rt=vt=bt[3]):bt[3]==="_git"?(N=bt[1],rt=bt[2],vt=bt[4]):bt[4]==="_git"&&(N=`${bt[1]}/${bt[2]}`,rt=bt[3],vt=bt[5]),!N||!rt||!vt)throw new Error("Azure URL must point to a git repository");var Yt;const Kt=(Yt=D.searchParams.get("path"))!==null&&Yt!==void 0?Yt:void 0;let Bt;const Lt=D.searchParams.get("version");if(Lt){if(Lt.slice(0,2)!=="GB")throw new Error("Azure URL version must point to a git branch");Bt=Lt.slice(2)}return new j(D.origin,N,rt,vt,Kt,Bt)}toRepoUrl(){let h;return(0,l._)(this,A)===(0,l._)(this,E)?h=(0,l._)(this,w).call(this,(0,l._)(this,x),"_git",(0,l._)(this,E)):h=(0,l._)(this,w).call(this,(0,l._)(this,x),(0,l._)(this,A),"_git",(0,l._)(this,E)),(0,l._)(this,B)&&h.searchParams.set("path",(0,l._)(this,B)),(0,l._)(this,$)&&h.searchParams.set("version",C+(0,l._)(this,$)),h.toString()}toFileUrl(){if(!(0,l._)(this,B))throw new Error("Azure URL must point to a specific path to be able to download a file");const h=(0,l._)(this,w).call(this,(0,l._)(this,x),(0,l._)(this,A),"_apis","git","repositories",(0,l._)(this,E),"items");return h.searchParams.set("api-version","6.0"),h.searchParams.set("path",(0,l._)(this,B)),(0,l._)(this,$)&&h.searchParams.set("version",(0,l._)(this,$)),h.toString()}toArchiveUrl(){const h=(0,l._)(this,w).call(this,(0,l._)(this,x),(0,l._)(this,A),"_apis","git","repositories",(0,l._)(this,E),"items");return h.searchParams.set("recursionLevel","full"),h.searchParams.set("download","true"),h.searchParams.set("api-version","6.0"),(0,l._)(this,B)&&h.searchParams.set("scopePath",(0,l._)(this,B)),(0,l._)(this,$)&&h.searchParams.set("version",(0,l._)(this,$)),h.toString()}toCommitsUrl(){const h=(0,l._)(this,w).call(this,(0,l._)(this,x),(0,l._)(this,A),"_apis","git","repositories",(0,l._)(this,E),"commits");return h.searchParams.set("api-version","6.0"),(0,l._)(this,$)&&h.searchParams.set("searchCriteria.itemVersion.version",(0,l._)(this,$)),h.toString()}getOwner(){return(0,l._)(this,x)}getProject(){return(0,l._)(this,A)}getRepo(){return(0,l._)(this,E)}getPath(){return(0,l._)(this,B)}getRef(){return(0,l._)(this,$)}constructor(h,D,N,rt,vt,bt){(0,g._)(this,R,{writable:!0,value:void 0}),(0,g._)(this,x,{writable:!0,value:void 0}),(0,g._)(this,A,{writable:!0,value:void 0}),(0,g._)(this,E,{writable:!0,value:void 0}),(0,g._)(this,B,{writable:!0,value:void 0}),(0,g._)(this,$,{writable:!0,value:void 0}),(0,g._)(this,w,{writable:!0,value:(...Yt)=>{const Kt=new URL((0,l._)(this,R));return Kt.pathname=Yt.map(Bt=>encodeURIComponent(Bt)).join("/"),Kt}}),(0,b._)(this,R,h),(0,b._)(this,x,D),(0,b._)(this,A,N),(0,b._)(this,E,rt),(0,b._)(this,B,vt),(0,b._)(this,$,bt)}}const T="dev.azure.com",u=["clientId","clientSecret","tenantId","personalAccessToken"],K=new Map([["ClientSecret",["clientId","clientSecret","tenantId"]],["ManagedIdentity",["clientId"]],["PersonalAccessToken",["personalAccessToken"]]]);function _(M){for(const h of K.entries()){const[D,N]=h,rt=u.filter(vt=>!N.includes(vt));if(N.every(vt=>M[vt]!==void 0)&&rt.every(vt=>M[vt]===void 0))return{kind:D,organizations:M.organizations,...N.reduce((vt,bt)=>(vt[bt]=M[bt],vt),{})}}throw new Error("is not a valid credential")}function J(M){var h,D;const N=(D=M.getOptionalString("host"))!==null&&D!==void 0?D:T;let rt=(h=M.getOptionalConfigArray("credentials"))===null||h===void 0?void 0:h.map(Bt=>({organizations:Bt.getOptionalStringArray("organizations"),personalAccessToken:Bt.getOptionalString("personalAccessToken"),tenantId:Bt.getOptionalString("tenantId"),clientId:Bt.getOptionalString("clientId"),clientSecret:Bt.getOptionalString("clientSecret")}));const vt=M.getOptionalString("token");if(M.getOptional("credential")!==void 0&&M.getOptional("credentials")!==void 0)throw new Error("Invalid Azure integration config, 'credential' and 'credentials' cannot be used together. Use 'credentials' instead.");if(M.getOptional("token")!==void 0&&M.getOptional("credentials")!==void 0)throw new Error("Invalid Azure integration config, 'token' and 'credentials' cannot be used together. Use 'credentials' instead.");if(vt!==void 0){const Bt=[{personalAccessToken:vt}];var bt;rt=(bt=rt==null?void 0:rt.concat(Bt))!==null&&bt!==void 0?bt:Bt}if(M.getOptional("credential")!==void 0){const Bt=[{organizations:M.getOptionalStringArray("credential.organizations"),token:M.getOptionalString("credential.token"),tenantId:M.getOptionalString("credential.tenantId"),clientId:M.getOptionalString("credential.clientId"),clientSecret:M.getOptionalString("credential.clientSecret")}];var Yt;rt=(Yt=rt==null?void 0:rt.concat(Bt))!==null&&Yt!==void 0?Yt:Bt}if(!(0,i.bK)(N))throw new Error(`Invalid Azure integration config, '${N}' is not a valid host`);let Kt;if(rt!==void 0){const Bt=rt==null?void 0:rt.reduce((Lt,le,Se)=>{let Me;try{_(le)}catch(We){Me=We.message}return Me!==void 0&&Lt.push(`credential at position ${Se+1} ${Me}`),Lt},Array.of()).concat(Object.entries(rt.filter(Lt=>Lt.organizations!==void 0&&Lt.organizations.length>0).reduce((Lt,le,Se)=>{var Me;return(Me=le.organizations)===null||Me===void 0||Me.forEach(We=>{Lt[We]||(Lt[We]=[]),Lt[We].push(Se+1)}),Lt},{})).filter(([Lt,le])=>le.length>1).reduce((Lt,[le,Se])=>(Lt.push(`organization ${le} is specified multiple times in credentials at positions ${Se.slice(0,Se.length-1).join(", ")} and ${Se[Se.length-1]}`),Lt),Array.of()));if((Bt==null?void 0:Bt.length)>0)throw new Error(`Invalid Azure integration config for ${N}: ${Bt.join("; ")}`);if(Kt=rt.map(Lt=>_(Lt)),Kt.some(Lt=>Lt.kind!=="PersonalAccessToken")&&N!==T)throw new Error(`Invalid Azure integration config for ${N}, only personal access tokens can be used with hosts other than ${T}`);if(Kt.filter(Lt=>Lt.organizations===void 0||Lt.organizations.length===0).length>1)throw new Error(`Invalid Azure integration config for ${N}, you cannot specify multiple credentials without organizations`)}return{host:N,credentials:Kt}}function H(M){const h=M.map(J);return h.some(D=>D.host===T)||h.push({host:T}),h}class G{get type(){return"azure"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(h){const{url:D,base:N}=h;if((0,i.jv)(D))return D;try{const vt=j.fromRepoUrl(N),bt=new URL(N);var rt;const Yt=new URL(`https://a.com${(rt=vt.getPath())!==null&&rt!==void 0?rt:""}`),Kt=new URL(D,Yt).pathname;return bt.searchParams.set("path",Kt),h.lineNumber&&(bt.searchParams.set("line",String(h.lineNumber)),bt.searchParams.set("lineEnd",String(h.lineNumber+1)),bt.searchParams.set("lineStartColumn","1"),bt.searchParams.set("lineEndColumn","1")),bt.toString()}catch{return new URL(D,N).toString()}}resolveEditUrl(h){return h}constructor(h){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=h}}(0,o._)(G,"factory",({config:M})=>{var h;const D=H((h=M.getOptionalConfigArray("integrations.azure"))!==null&&h!==void 0?h:[]);return(0,i.gz)(D.map(N=>new G(N)),N=>N.config.host)});var z=t(82717),V=t.n(z);const ot="bitbucket.org",ht="https://api.bitbucket.org/2.0";function ut(M){const h=ot,D=ht,N=M.getString("username"),rt=M.getString("appPassword");return{host:h,apiBaseUrl:D,username:N,appPassword:rt}}function mt(M){const h=M.map(ut);return h.length===0&&h.push({host:ot,apiBaseUrl:ht}),h}class ft{get type(){return"bitbucketCloud"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(h){const D=(0,i.FI)(h);if(h.lineNumber){const N=new URL(D);return N.hash=`lines-${h.lineNumber}`,N.toString()}return D}resolveEditUrl(h){const D=V()(h),N=new URL(h);return N.searchParams.set("mode","edit"),N.searchParams.set("at",D.ref),N.toString()}constructor(h){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=h}}(0,o._)(ft,"factory",({config:M})=>{var h;const D=mt((h=M.getOptionalConfigArray("integrations.bitbucketCloud"))!==null&&h!==void 0?h:[]);return(0,i.gz)(D.map(N=>new ft(N)),N=>N.config.host)});var lt=t(76635);const yt="bitbucket.org",Y="https://api.bitbucket.org/2.0";function U(M){var h;const D=(h=M.getOptionalString("host"))!==null&&h!==void 0?h:yt;let N=M.getOptionalString("apiBaseUrl");const rt=M.getOptionalString("token"),vt=M.getOptionalString("username"),bt=M.getOptionalString("appPassword");if(!(0,i.bK)(D))throw new Error(`Invalid Bitbucket integration config, '${D}' is not a valid host`);return N?N=(0,lt.trimEnd)(N,"/"):D===yt?N=Y:N=`https://${D}/rest/api/1.0`,{host:D,apiBaseUrl:N,token:rt,username:vt,appPassword:bt}}function Q(M){const h=M.map(U);return h.some(D=>D.host===yt)||h.push({host:yt,apiBaseUrl:Y}),h}class tt{get type(){return"bitbucket"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(h){const D=(0,i.FI)(h);if(!h.lineNumber)return D;const N=new URL(D);return this.integrationConfig.host==="bitbucket.org"?N.hash=`lines-${h.lineNumber}`:N.hash=`${h.lineNumber}`,N.toString()}resolveEditUrl(h){const D=V()(h),N=new URL(h);return N.searchParams.set("mode","edit"),N.searchParams.set("spa","0"),N.searchParams.set("at",D.ref),N.toString()}constructor(h){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=h}}(0,o._)(tt,"factory",({config:M})=>{var h,D,N;const rt=Q((N=M.getOptionalConfigArray("integrations.bitbucket"))!==null&&N!==void 0?N:[...(h=M.getOptionalConfigArray("integrations.bitbucketCloud"))!==null&&h!==void 0?h:[],...(D=M.getOptionalConfigArray("integrations.bitbucketServer"))!==null&&D!==void 0?D:[]]);return(0,i.gz)(rt.map(vt=>new tt(vt)),vt=>vt.config.host)});function at(M){const h=M.getString("host");let D=M.getOptionalString("apiBaseUrl");const N=M.getOptionalString("token"),rt=M.getOptionalString("username"),vt=M.getOptionalString("password");if(!(0,i.bK)(h))throw new Error(`Invalid Bitbucket Server integration config, '${h}' is not a valid host`);return D?D=(0,lt.trimEnd)(D,"/"):D=`https://${h}/rest/api/1.0`,{host:h,apiBaseUrl:D,token:N,username:rt,password:vt}}function dt(M){return M.map(at)}class F{get type(){return"bitbucketServer"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(h){const D=(0,i.FI)(h);if(h.lineNumber){const N=new URL(D);return N.hash=h.lineNumber.toString(),N.toString()}return D}resolveEditUrl(h){return h.includes("?")?h.substring(0,h.indexOf("?")):h}constructor(h){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=h}}(0,o._)(F,"factory",({config:M})=>{var h;const D=dt((h=M.getOptionalConfigArray("integrations.bitbucketServer"))!==null&&h!==void 0?h:[]);return(0,i.gz)(D.map(N=>new F(N)),N=>N.config.host)});function Z(M){const h=M.getString("host");let D=M.getOptionalString("baseUrl"),N=M.getOptionalString("cloneUrl"),rt=M.getOptionalString("gitilesBaseUrl");const vt=M.getOptionalString("username"),bt=M.getOptionalString("password");if((0,i.bK)(h)){if(D&&!(0,i.jv)(D))throw new Error(`Invalid Gerrit integration config, '${D}' is not a valid baseUrl`);if(N&&!(0,i.jv)(N))throw new Error(`Invalid Gerrit integration config, '${N}' is not a valid cloneUrl`);if(rt&&!(0,i.jv)(rt))throw new Error(`Invalid Gerrit integration config, '${rt}' is not a valid gitilesBaseUrl`)}else throw new Error(`Invalid Gerrit integration config, '${h}' is not a valid host`);return D?D=(0,lt.trimEnd)(D,"/"):D=`https://${h}`,rt?rt=(0,lt.trimEnd)(rt,"/"):rt=`https://${h}`,N?N=(0,lt.trimEnd)(N,"/"):N=D,{host:h,baseUrl:D,cloneUrl:N,gitilesBaseUrl:rt,username:vt,password:bt}}function Ct(M){return M.map(Z)}var At=t(48834).lW;const ct=")]}'";function xt(M,h){const D=new URL(M.gitilesBaseUrl),N=new URL(h),vt=N.pathname.substring(N.pathname.startsWith("/a/")?2:0).replace(D.pathname,"").split("/").filter(le=>!!le),bt=vt.indexOf("+");if(bt<=0)throw new Error(`Unable to parse project from url: ${h}`);const Yt=(0,lt.trimStart)(vt.slice(0,bt).join("/"),"/"),Kt=vt.indexOf("heads");if(Kt<=0)throw new Error(`Unable to parse branch from url: ${h}`);const Bt=vt[Kt+1],Lt=vt.slice(Kt+2).join("/");return{branch:Bt,filePath:Lt===""?"/":Lt,project:Yt}}function gt(M,h,D,N){return`${M.gitilesBaseUrl}/${h}/+/refs/heads/${D}/${(0,lt.trimStart)(N,"/")}`}function wt(M,h,D,N){const rt=N==="/"||N===""?".tar.gz":`/${N}.tar.gz`;return`${It(M)}/${h}/+archive/refs/heads/${D}${rt}`}function Tt(M){return M.password?"/a/":"/"}function It(M){if(!M.baseUrl||!M.gitilesBaseUrl)throw new Error("Unexpected Gerrit config values. baseUrl or gitilesBaseUrl not set.");if(M.gitilesBaseUrl.startsWith(M.baseUrl))return M.gitilesBaseUrl.replace(M.baseUrl.concat("/"),M.baseUrl.concat(Tt(M)));if(M.password)throw new Error("Since the baseUrl (Gerrit) is not part of the gitilesBaseUrl, an authentication URL could not be constructed.");return M.gitilesBaseUrl}function ae(M,h){const{branch:D,project:N}=xt(M,h);return`${M.baseUrl}${Tt(M)}projects/${encodeURIComponent(N)}/branches/${D}`}function te(M,h){const{project:D}=xt(M,h);return`${M.cloneUrl}${Tt(M)}${D}`}function fe(M,h){const{branch:D,filePath:N,project:rt}=xt(M,h);return`${M.baseUrl}${Tt(M)}projects/${encodeURIComponent(rt)}/branches/${D}/files/${encodeURIComponent(N)}/content`}function kt(M){return`${M.baseUrl}${Tt(M)}projects/`}function jt(M){const h={};if(!M.password)return h;const D=At.from(`${M.username}:${M.password}`,"utf8");return h.Authorization=`Basic ${D.toString("base64")}`,{headers:h}}async function Wt(M){const h=await M.text();if(h.startsWith(ct))try{return JSON.parse(h.slice(ct.length))}catch(D){throw new Error(`Invalid response from Gerrit: ${h.slice(0,10)} - ${D}`)}throw new Error(`Gerrit JSON body prefix missing. Found: ${h.slice(0,10)}`)}class zt{get type(){return"gerrit"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(h){const{url:D,base:N,lineNumber:rt}=h;let vt;if(D.startsWith("/")){const{branch:bt,project:Yt}=xt(this.config,N);return gt(this.config,Yt,bt,D)}return D?vt=new URL(D,N):vt=new URL(N),rt&&(vt.hash=rt.toString()),vt.toString()}resolveEditUrl(h){return h}constructor(h){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=h}}(0,o._)(zt,"factory",({config:M})=>{var h;const D=Ct((h=M.getOptionalConfigArray("integrations.gerrit"))!==null&&h!==void 0?h:[]);return(0,i.gz)(D.map(N=>new zt(N)),N=>N.config.host)});var Jt=t(61800);const ge="gitlab.com",Oe="https://gitlab.com/api/v4";function Le(M){const h=M.getString("host");let D=M.getOptionalString("apiBaseUrl");const N=M.getOptionalString("token");let rt=M.getOptionalString("baseUrl");if(D?D=(0,lt.trimEnd)(D,"/"):h===ge&&(D=Oe),rt?rt=(0,lt.trimEnd)(rt,"/"):rt=`https://${h}`,(0,i.bK)(h)){if(!D||!(0,i.jv)(D))throw new Error(`Invalid GitLab integration config, '${D}' is not a valid apiBaseUrl`);if(!(0,i.jv)(rt))throw new Error(`Invalid GitLab integration config, '${rt}' is not a valid baseUrl`)}else throw new Error(`Invalid GitLab integration config, '${h}' is not a valid host`);return{host:h,token:N,apiBaseUrl:D,baseUrl:rt}}function Je(M){const h=M.map(Le);return h.some(D=>D.host===ge)||h.push({host:ge,apiBaseUrl:Oe,baseUrl:`https://${ge}`}),h}function Ke(M){let h="";return M.host!==ge&&(h=new URL(M.baseUrl).pathname),trimEnd(h,"/")}class Ce{get type(){return"gitlab"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(h){return(0,i.FI)(h)}resolveEditUrl(h){return Xe(h,"edit")}constructor(h){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=h}}(0,o._)(Ce,"factory",({config:M})=>{var h;const D=Je((h=M.getOptionalConfigArray("integrations.gitlab"))!==null&&h!==void 0?h:[]);return(0,i.gz)(D.map(N=>new Ce(N)),N=>N.config.host)});function Xe(M,h){return M.replace(/\/\-\/(blob|tree|edit)\//,`/-/${h}/`)}function _e(M){const h=M.getString("host");let D=M.getOptionalString("baseUrl");const N=M.getOptionalString("username"),rt=M.getOptionalString("password");if(!(0,i.bK)(h))throw new Error(`Invalid Gitea integration config, '${h}' is not a valid host`);return D?D=(0,lt.trimEnd)(D,"/"):D=`https://${h}`,{host:h,baseUrl:D,username:N,password:rt}}var He=t(48834).lW;function ie(M,h){try{var D;const N=(D=M.baseUrl)!==null&&D!==void 0?D:`https://${M.host}`,[rt,vt,bt,Yt,Kt,Bt,...Lt]=h.replace(N,"").split("/"),le=Lt.join("/").replace(/^\//,"");return`${N}/${vt}/${bt}/_edit/${Bt}/${le}`}catch(N){throw new Error(`Incorrect URL: ${h}, ${N}`)}}function qe(M,h){try{var D;const N=(D=M.baseUrl)!==null&&D!==void 0?D:`https://${M.host}`,[rt,vt,bt,Yt,Kt,Bt,...Lt]=h.replace(N,"").split("/"),le=Lt.join("/").replace(/^\//,"");return`${N}/api/v1/repos/${vt}/${bt}/contents/${le}?ref=${Bt}`}catch(N){throw new Error(`Incorrect URL: ${h}, ${N}`)}}function we(M){const h={},{username:D,password:N}=M;return N?(D?h.Authorization=`basic ${He.from(`${D}:${N}`).toString("base64")}`:h.Authorization=`token ${N}`,{headers:h}):h}class Te{get type(){return"gitea"}get title(){return this.config.host}resolveUrl(h){return(0,i.FI)(h)}resolveEditUrl(h){return ie(this.config,h)}constructor(h){(0,o._)(this,"config",void 0),this.config=h}}(0,o._)(Te,"factory",({config:M})=>{var h;const N=((h=M.getOptionalConfigArray("integrations.gitea"))!==null&&h!==void 0?h:[]).map(rt=>_e(rt));return(0,i.gz)(N.map(rt=>new Te(rt)),rt=>rt.config.host)});class Ue{static fromConfig(h){return new Ue({awsS3:p.factory({config:h}),azure:G.factory({config:h}),bitbucket:tt.factory({config:h}),bitbucketCloud:ft.factory({config:h}),bitbucketServer:F.factory({config:h}),gerrit:zt.factory({config:h}),github:Jt.X.factory({config:h}),gitlab:Ce.factory({config:h}),gitea:Te.factory({config:h})})}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(h=>h.list())}byUrl(h){let D=Object.values(this.byType).map(N=>N.byUrl(h)).filter(Boolean);if(D.length>1){const N=D.filter(rt=>!(rt instanceof tt));N.length!==0&&(D=N)}return D[0]}byHost(h){return Object.values(this.byType).map(D=>D.byHost(h)).find(Boolean)}resolveUrl(h){const D=this.byUrl(h.base);return D?D.resolveUrl(h):(0,i.FI)(h)}resolveEditUrl(h){const D=this.byUrl(h);return D?D.resolveEditUrl(h):h}constructor(h){(0,o._)(this,"byType",void 0),this.byType=h}}var me=t(95965);class Fe{static fromConfig(h){return Ue.fromConfig(h)}}const Ne=(0,me.T)({id:"integration.scmintegrations"})},61800:function(X,P,t){"use strict";t.d(P,{X:function(){return b},B:function(){return C}});var o=t(87612),i=t(38264),d=t(76635);const S="github.com",y="https://api.github.com",p="https://raw.githubusercontent.com";function l(R){var x,A;const E=(A=R.getOptionalString("host"))!==null&&A!==void 0?A:S;let B=R.getOptionalString("apiBaseUrl"),$=R.getOptionalString("rawBaseUrl");const w=R.getOptionalString("token"),j=(x=R.getOptionalConfigArray("apps"))===null||x===void 0?void 0:x.map(T=>({appId:T.getNumber("appId"),clientId:T.getString("clientId"),clientSecret:T.getString("clientSecret"),webhookSecret:T.getString("webhookSecret"),privateKey:T.getString("privateKey"),allowedInstallationOwners:T.getOptionalStringArray("allowedInstallationOwners")}));if(!(0,i.bK)(E))throw new Error(`Invalid GitHub integration config, '${E}' is not a valid host`);return B?B=(0,d.trimEnd)(B,"/"):E===S&&(B=y),$?$=(0,d.trimEnd)($,"/"):E===S&&($=p),{host:E,apiBaseUrl:B,rawBaseUrl:$,token:w,apps:j}}function g(R){const x=R.map(l);return x.some(A=>A.host===S)||x.push({host:S,apiBaseUrl:y,rawBaseUrl:p}),x}class b{get type(){return"github"}get title(){return this.integrationConfig.host}get config(){return this.integrationConfig}resolveUrl(x){return C((0,i.FI)(x),"tree")}resolveEditUrl(x){return C(x,"edit")}constructor(x){(0,o._)(this,"integrationConfig",void 0),this.integrationConfig=x}}(0,o._)(b,"factory",({config:R})=>{var x;const A=g((x=R.getOptionalConfigArray("integrations.github"))!==null&&x!==void 0?x:[]);return(0,i.gz)(A.map(E=>new b(E)),E=>E.config.host)});function C(R,x){return R.replace(/\/\/([^/]+)\/([^/]+)\/([^/]+)\/(blob|tree|edit)\//,(A,E,B,$)=>`//${E}/${B}/${$}/${x}/`)}},38264:function(X,P,t){"use strict";t.d(P,{FI:function(){return g},bK:function(){return y},gz:function(){return l},jv:function(){return p}});var o=t(82717),i=t.n(o),d=t(76635),S=t.n(d);function y(C){const R=new URL("http://example.com");return R.host=C,R.host===C}function p(C){try{return new URL(C),!0}catch{return!1}}function l(C,R){return{list(){return C},byUrl(x){try{const A=typeof x=="string"?new URL(x):x;return C.find(E=>R(E)===A.host)}catch{return}},byHost(x){return C.find(A=>R(A)===x)}}}function g(C){const{url:R,base:x,lineNumber:A}=C;try{return new URL(R),R}catch{}let E;if(R.startsWith("/")){const{filepath:B}=i()(x);E=new URL(x);const $=(0,d.trimEnd)(E.pathname.substring(0,E.pathname.length-B.length),"/");E.pathname=`${$}${R}`}else E=new URL(R,x);return E.search=new URL(x).search,A&&(E.hash=`L${A}`),E.toString()}function b(C){beforeAll(()=>C.listen({onUnhandledRequest:"error"})),afterAll(()=>C.close()),afterEach(()=>C.resetHandlers())}},99329:function(X,P,t){"use strict";var o={};t.r(o),t.d(o,{TechDocsPlugin:function(){return p.s4}});var i=t(52322),d=t(2784),S=t(17029),y=t(73557),p=t(4577),l=t(29895),g=t(2296),b=t(57058),C=t(77277),R=t(87435),x=t(74359),A=t(55015),E=t(71597);function B({children:r}){return(0,y.GV)()?(0,i.jsx)(i.Fragment,{children:r}):(0,i.jsx)(y.VA,{children:r})}const $=()=>(0,i.jsx)(R.m,{status:"404",statusMessage:"PAGE NOT FOUND"}),w=({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)(B,{children:(0,i.jsx)(R.m,{status:"501",statusMessage:n})})},j=({error:r,resetError:e,plugin:n})=>(0,i.jsx)(x.y,{title:`Error in ${n==null?void 0:n.getId()}`,defaultExpanded:!0,error:r,children:(0,i.jsx)(C.Z,{variant:"outlined",onClick:e,children:"Retry"})}),T={Progress:A.E,Router:E.VK,NotFoundErrorPage:$,BootErrorPage:w,ErrorBoundaryFallback:j};var u=t(87612);const K="Invalid discovery URL pattern,";class _{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 _(n)}async getBaseUrl(e){return this.parts.join(encodeURIComponent(e))}constructor(e){(0,u._)(this,"parts",void 0),this.parts=e}}var J=t(82394),H=t.n(J);let G=Symbol.observable;class z{[G](){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,u._)(this,"isClosed",!1),(0,u._)(this,"terminatingError",void 0),(0,u._)(this,"observable",new(H())(e=>this.isClosed?(this.terminatingError?e.error(this.terminatingError):e.complete(),()=>{}):(this.subscribers.add(e),()=>{this.subscribers.delete(e)}))),(0,u._)(this,"subscribers",new Set)}}let V=Symbol.observable;class ot{[V](){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,u._)(this,"isClosed",void 0),(0,u._)(this,"currentValue",void 0),(0,u._)(this,"terminatingError",void 0),(0,u._)(this,"observable",void 0),(0,u._)(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 ht{post(e){this.subject.next(e)}alert$(){return this.subject}constructor(){(0,u._)(this,"subject",new z)}}class ut{captureEvent(e){}}class mt{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,u._)(this,"alertApi",void 0),(0,u._)(this,"errorApi",void 0),this.alertApi=e,this.errorApi=n}}class ft{post(e,n){this.subject.next({error:e,context:n})}error$(){return this.subject}constructor(){(0,u._)(this,"subject",new z)}}class lt{static forward(e,n){window.addEventListener("unhandledrejection",s=>{e.post(s.reason,n)})}}const yt=new Map;class Y{static create(e){var n;return new Y((n=e.namespace)!==null&&n!==void 0?n:"",e.errorApi)}static addStorageEventListener(){window.addEventListener("storage",e=>{for(const[s,a]of yt.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,m)=>(typeof m=="object"&&m!==null&&Object.freeze(m),m)),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 yt.has(n)||yt.set(n,new Y(n,this.errorApi)),yt.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 Y.hasSubscribed||(Y.addStorageEventListener(),Y.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,u._)(this,"namespace",void 0),(0,u._)(this,"errorApi",void 0),(0,u._)(this,"subscribers",void 0),(0,u._)(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,u._)(Y,"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 Q{static create(e){var n,s;const a=tt(e),c=((n=e.header)===null||n===void 0?void 0:n.name)||"authorization",m=((s=e.header)===null||s===void 0?void 0:s.value)||(v=>`Bearer ${v}`);return new Q(e.identityApi,a,c,m)}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,u._)(this,"identityApi",void 0),(0,u._)(this,"allowUrl",void 0),(0,u._)(this,"headerName",void 0),(0,u._)(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 dt(r,e){return!e||e==="/"?r:`${r.replace(/\/$/,"")}/${e.replace(/^\//,"")}`}class F{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:m,pathname:v,search:I,hash:W,username:et,password:st}=new URL(`http://${a.url.substring(c.length)}`);let pt=await this.discoveryApi.getBaseUrl(m);if(et||st){const St=new URL(pt),Nt=`${et}${st?`:${st}`:""}@`;pt=`${St.protocol}//${Nt}${St.host}${St.pathname}`}const Et=`${dt(pt,v)}${I}${W}`;return e(Et,typeof n=="string"||Z(n)?s:n)}}constructor(e){(0,u._)(this,"discoveryApi",void 0),this.discoveryApi=e}}function Z(r){return typeof r=="object"&&(r==null?void 0:r.constructor)===URL}class Ct{static resolvePluginProtocol(e){return new F(e.discoveryApi)}static injectIdentityAuth(e){return Q.create(e)}constructor(){}}function At(r,e){for(const n of e)if(!r.has(n))return!1;return!0}function ct(r,...e){const n=new Set(r);for(const s of e)for(const a of s)n.add(a);return n}class xt{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=>At(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)=>ct(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,u._)(this,"requests",[]),(0,u._)(this,"subject",new ot(this.getCurrentPending()))}}class gt{createAuthRequester(e){const n=new xt,s=this.handlerCount;return this.handlerCount++,n.pending().subscribe({next:a=>{const c=this.currentRequests.slice(),m=this.makeAuthRequest(a,e);m?c[s]=m: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,u._)(this,"subject",new ot([])),(0,u._)(this,"currentRequests",[]),(0,u._)(this,"handlerCount",0)}}function wt(r){return new Promise((e,n)=>{const s=r.width||500,a=r.height||700,c=window.screen.width/2-s/2,m=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=${m},left=${c}`);let I="";if(!v||typeof v.closed=="undefined"||v.closed){const pt=new Error("Failed to open auth popup.");pt.name="PopupRejectedError",n(pt);return}const W=pt=>{if(pt.source!==v||pt.origin!==r.origin)return;const{data:Et}=pt;if(Et.type==="config_info"){I=Et.targetOrigin;return}if(Et.type!=="authorization_response")return;const St=Et;if("error"in St){const Nt=new Error(St.error.message);Nt.name=St.error.name,n(Nt)}else e(St.response);st()},et=setInterval(()=>{if(v.closed){const pt=`Login failed, ${I&&I!==window.location.origin?`Incorrect app origin, expected ${I}`:"popup was closed"}`,Et=new Error(pt);Et.name="PopupClosedError",n(Et),st()}},100);function st(){window.removeEventListener("message",W),clearInterval(et)}window.addEventListener("message",W)})}let Tt=!1;function It(r){return[...r].join(" ")}class ae{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,m,v,I,W;const et=this.joinScopesFunc(e),st=await this.buildUrl("/start",{scope:et,origin:window.location.origin,flow:"popup"}),pt=!((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,Et=!((v=this.popupOptions)===null||v===void 0||(m=v.size)===null||m===void 0)&&m.fullscreen?window.screen.height:((W=this.popupOptions)===null||W===void 0||(I=W.size)===null||I===void 0?void 0:I.height)||730,St=await wt({url:st,name:`${this.provider.title} Login`,origin:new URL(st).origin,width:pt,height:Et});return await this.sessionTransform(St)}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,u._)(this,"discoveryApi",void 0),(0,u._)(this,"environment",void 0),(0,u._)(this,"provider",void 0),(0,u._)(this,"joinScopesFunc",void 0),(0,u._)(this,"authRequester",void 0),(0,u._)(this,"sessionTransform",void 0),(0,u._)(this,"enableExperimentalRedirectFlow",void 0),(0,u._)(this,"popupOptions",void 0);const{configApi:n,discoveryApi:s,environment:a,provider:c,joinScopes:m=It,oauthRequestApi:v,sessionTransform:I=st=>st,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 et;this.enableExperimentalRedirectFlow=n&&(et=n.getOptionalBoolean("enableExperimentalRedirectFlow"))!==null&&et!==void 0?et:!1,this.authRequester=v.createAuthRequester({provider:c,onAuthRequest:async st=>this.enableExperimentalRedirectFlow?this.executeRedirect(st):this.showPopup(st)}),this.discoveryApi=s,this.environment=a,this.provider=c,this.joinScopesFunc=m,this.sessionTransform=I,this.popupOptions=W}}function te(r,e){for(const n of e)if(!r.has(n))return!1;return!0}class fe{sessionExistsAndHasScope(e,n){if(!e)return!1;if(!n||this.options.sessionScopes===void 0)return!0;const s=this.options.sessionScopes(e);return te(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,u._)(this,"options",void 0),this.options=e}}var kt=t(95965),jt;(function(r){r.SignedIn="SignedIn",r.SignedOut="SignedOut"})(jt||(jt={}));const Wt=(0,kt.T)({id:"core.auth.google"}),zt=(0,kt.T)({id:"core.auth.github"}),Jt=(0,kt.T)({id:"core.auth.okta"}),ge=(0,kt.T)({id:"core.auth.gitlab"}),Oe=(0,kt.T)({id:"core.auth.microsoft"}),Le=(0,kt.T)({id:"core.auth.onelogin"}),Je=(0,kt.T)({id:"core.auth.bitbucket"}),Ke=(0,kt.T)({id:"core.auth.bitbucket-server"}),Ce=(0,kt.T)({id:"core.auth.atlassian"});class Xe{setIsSignedIn(e){this.signedIn!==e&&(this.signedIn=e,this.subject.next(this.signedIn?jt.SignedIn:jt.SignedOut))}sessionState$(){return this.subject}constructor(){(0,u._)(this,"subject",new ot(jt.SignedOut)),(0,u._)(this,"signedIn",!1)}}class _e{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 te(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(this.helper.getExtendedScope(this.currentSession,e));try{const n=await this.refreshPromise;return this.stateTracker.setIsSignedIn(!0),n}finally{delete this.refreshPromise}}constructor(e){(0,u._)(this,"connector",void 0),(0,u._)(this,"helper",void 0),(0,u._)(this,"sessionScopesFunc",void 0),(0,u._)(this,"sessionShouldRefreshFunc",void 0),(0,u._)(this,"stateTracker",new Xe),(0,u._)(this,"refreshPromise",void 0),(0,u._)(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 fe({sessionScopes:a,defaultScopes:s})}}const He={id:"oauth2",title:"Your Identity Provider",icon:()=>null};class ie{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=He,oauthRequestApi:m,defaultScopes:v=[],scopeTransform:I=pt=>pt,popupOptions:W}=e,et=new ae({configApi:n,discoveryApi:s,environment:a,provider:c,oauthRequestApi:m,sessionTransform({backstageIdentity:pt,...Et}){const St={...Et,providerInfo:{idToken:Et.providerInfo.idToken,accessToken:Et.providerInfo.accessToken,scopes:ie.normalizeScopes(I,Et.providerInfo.scope),expiresAt:Et.providerInfo.expiresInSeconds?new Date(Date.now()+Et.providerInfo.expiresInSeconds*1e3):void 0}};if(pt){var Nt;const Vt=(Nt=pt.expiresInSeconds)!==null&&Nt!==void 0?Nt:Et.providerInfo.expiresInSeconds;St.backstageIdentity={token:pt.token,identity:pt.identity,expiresAt:Vt?new Date(Date.now()+Vt*1e3):void 0}}return St},popupOptions:W}),st=new _e({connector:et,defaultScopes:new Set(v),sessionScopes:pt=>pt.providerInfo.scopes,sessionShouldRefresh:pt=>{var Et,St;let Nt=1/0;return!((Et=pt.providerInfo)===null||Et===void 0)&&Et.expiresAt&&(Nt=Math.min(Nt,(pt.providerInfo.expiresAt.getTime()-Date.now())/1e3)),!((St=pt.backstageIdentity)===null||St===void 0)&&St.expiresAt&&(Nt=Math.min(Nt,(pt.backstageIdentity.expiresAt.getTime()-Date.now())/1e3)),Nt<60*5}});return new ie({sessionManager:st,scopeTransform:I})}async signIn(){await this.getAccessToken()}async signOut(){await this.sessionManager.removeSession()}sessionState$(){return this.sessionManager.sessionState$()}async getAccessToken(e,n){const s=ie.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,u._)(this,"sessionManager",void 0),(0,u._)(this,"scopeTransform",void 0),this.sessionManager=e.sessionManager,this.scopeTransform=e.scopeTransform}}const qe={id:"google",title:"Google",icon:()=>null},we="https://www.googleapis.com/auth/";class Te{static create(e){const{configApi:n,discoveryApi:s,oauthRequestApi:a,environment:c="development",provider:m=qe,defaultScopes:v=["openid",`${we}userinfo.email`,`${we}userinfo.profile`]}=e;return ie.create({configApi:n,discoveryApi:s,oauthRequestApi:a,provider:m,environment:c,defaultScopes:v,scopeTransform(I){return I.map(W=>W==="openid"?W:W==="profile"||W==="email"?`${we}userinfo.${W}`:W.startsWith(we)?W:`${we}${W}`)}})}}const Ue={id:"microsoft",title:"Microsoft",icon:()=>null};class me{static create(e){return new me(e)}microsoftGraph(){return this.oauth2[me.MicrosoftGraphID]}static resourceForScopes(e){const n=[...new Set(e.split(" ").map(me.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:me.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 me.MicrosoftGraphID}}async getAccessToken(e,n){const s=e===void 0?me.MicrosoftGraphID:await me.resourceForScopes(Array.isArray(e)?e.join(" "):e);return s in this.oauth2||(this.oauth2[s]=ie.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,u._)(this,"oauth2",void 0),(0,u._)(this,"configApi",void 0),(0,u._)(this,"environment",void 0),(0,u._)(this,"provider",void 0),(0,u._)(this,"oauthRequestApi",void 0),(0,u._)(this,"discoveryApi",void 0),(0,u._)(this,"scopeTransform",void 0);const{configApi:n,environment:s="development",provider:a=Ue,oauthRequestApi:c,discoveryApi:m,defaultScopes:v=["openid","offline_access","profile","email","User.Read"],scopeTransform:I=W=>W.concat("offline_access")}=e;this.configApi=n,this.environment=s,this.provider=a,this.oauthRequestApi=c,this.discoveryApi=m,this.scopeTransform=I,this.oauth2={[me.MicrosoftGraphID]:ie.create({configApi:this.configApi,discoveryApi:this.discoveryApi,oauthRequestApi:this.oauthRequestApi,provider:this.provider,environment:this.environment,scopeTransform:this.scopeTransform,defaultScopes:v})}}}(0,u._)(me,"MicrosoftGraphID","00000003-0000-0000-c000-000000000000");const Fe={id:"github",title:"GitHub",icon:()=>null};class Ne{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=Fe,oauthRequestApi:m,defaultScopes:v=["read:user"]}=e;return ie.create({configApi:n,discoveryApi:s,oauthRequestApi:m,provider:c,environment:a,defaultScopes:v})}}const M={id:"okta",title:"Okta",icon:()=>null},h=new Set(["openid","profile","email","phone","address","groups","offline_access"]),D="okta.";class N{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=M,oauthRequestApi:m,defaultScopes:v=["openid","email","profile","offline_access"]}=e;return ie.create({configApi:n,discoveryApi:s,oauthRequestApi:m,provider:c,environment:a,defaultScopes:v,scopeTransform(I){return I.map(W=>h.has(W)||W.startsWith(D)?W:`${D}${W}`)}})}}const rt={id:"gitlab",title:"GitLab",icon:()=>null};class vt{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=rt,oauthRequestApi:m,defaultScopes:v=["read_user"]}=e;return ie.create({configApi:n,discoveryApi:s,oauthRequestApi:m,provider:c,environment:a,defaultScopes:v})}}const bt={id:"onelogin",title:"onelogin",icon:()=>null},Yt=new Set(["openid","profile","email","phone","address","groups","offline_access"]),Kt="onelogin.";class Bt{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=bt,oauthRequestApi:m}=e;return ie.create({configApi:n,discoveryApi:s,oauthRequestApi:m,provider:c,environment:a,defaultScopes:["openid","email","profile","offline_access"],scopeTransform(v){return v.map(I=>Yt.has(I)||I.startsWith(Kt)?I:`${Kt}${I}`)}})}}const Lt={id:"bitbucket",title:"Bitbucket",icon:()=>null};class le{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=Lt,oauthRequestApi:m,defaultScopes:v=["team"]}=e;return ie.create({configApi:n,discoveryApi:s,oauthRequestApi:m,provider:c,environment:a,defaultScopes:v})}}const Se={id:"bitbucketServer",title:"Bitbucket Server",icon:()=>null};class Me{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=Se,oauthRequestApi:m,defaultScopes:v=["PROJECT_ADMIN"]}=e;return ie.create({configApi:n,discoveryApi:s,oauthRequestApi:m,provider:c,environment:a,defaultScopes:v})}}const We={id:"atlassian",title:"Atlassian",icon:()=>null};class uo{static create(e){const{configApi:n,discoveryApi:s,environment:a="development",provider:c=We,oauthRequestApi:m}=e;return ie.create({configApi:n,discoveryApi:s,oauthRequestApi:m,provider:c,environment:a})}}var Xt=t(42380),ye=t(96727),ce=t(6542),Dn=t(78847),ho=t(86386),Ln=t(58513);const Mn=(0,kt.T)({id:"core.storage"});var jn=t(85094),tn=t(77186);const ne=(0,kt.T)({id:"core.oauthrequest"}),fo=(0,kt.T)({id:"plugin.permission.api"});var Ge=t(41385),po=t(96279),Bn=t.n(po),go=t(9571),Qt=t(30195),$e;(function(r){r.DENY="DENY",r.ALLOW="ALLOW",r.CONDITIONAL="CONDITIONAL"})($e||($e={}));const sn=Qt.z.lazy(()=>Qt.z.object({rule:Qt.z.string(),resourceType:Qt.z.string(),params:Qt.z.record(Qt.z.any()).optional()}).or(Qt.z.object({anyOf:Qt.z.array(sn).nonempty()})).or(Qt.z.object({allOf:Qt.z.array(sn).nonempty()})).or(Qt.z.object({not:sn}))),vo=Qt.z.object({result:Qt.z.literal($e.ALLOW).or(Qt.z.literal($e.DENY))}),mo=Qt.z.union([Qt.z.object({result:Qt.z.literal($e.ALLOW).or(Qt.z.literal($e.DENY))}),Qt.z.object({result:Qt.z.literal($e.CONDITIONAL),pluginId:Qt.z.string(),resourceType:Qt.z.string(),conditions:sn})]),yo=(r,e)=>Qt.z.object({items:Qt.z.array(Qt.z.intersection(Qt.z.object({id:Qt.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 Eo{async authorize(e,n){return this.makeRequest(e,vo,n)}async authorizeConditional(e,n){return this.makeRequest(e,mo,n)}async makeRequest(e,n,s){if(!this.enabled)return e.map(et=>({result:$e.ALLOW}));const a={items:e.map(et=>({id:go.Z(),...et}))},c=await this.discovery.getBaseUrl("permission"),m=await Bn()(`${c}/authorize`,{method:"POST",body:JSON.stringify(a),headers:{...this.getAuthorizationHeader(s==null?void 0:s.token),"content-type":"application/json"}});if(!m.ok)throw await Ge.V.fromResponse(m);const v=await m.json(),W=yo(n,new Set(a.items.map(({id:et})=>et))).parse(v).items.reduce((et,st)=>(et[st.id]=st,et),{});return a.items.map(et=>W[et.id])}getAuthorizationHeader(e){return e?{Authorization:`Bearer ${e}`}:{}}constructor(e){(0,u._)(this,"enabled",void 0),(0,u._)(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 an{static create(e){const{config:n,discovery:s,identity:a}=e,c=new Eo({discovery:s,config:n});return new an(c,a)}async authorize(e){return(await this.permissionClient.authorize([e],await this.identityApi.getCredentials()))[0]}constructor(e,n){(0,u._)(this,"permissionClient",void 0),(0,u._)(this,"identityApi",void 0),this.permissionClient=e,this.identityApi=n}}const xo=[(0,Xt.n)({api:ye.N,deps:{configApi:ce.D},factory:({configApi:r})=>_.compile(`${r.getString("backend.baseUrl")}/api/{{ pluginId }}`)}),(0,Xt.n)({api:Dn.$,deps:{},factory:()=>new ht}),(0,Xt.n)({api:ho.v,deps:{},factory:()=>new ut}),(0,Xt.n)({api:Ln.V,deps:{alertApi:Dn.$},factory:({alertApi:r})=>{const e=new mt(r,new ft);return lt.forward(e,{hidden:!1}),e}}),(0,Xt.n)({api:Mn,deps:{errorApi:Ln.V},factory:({errorApi:r})=>Y.create({errorApi:r})}),(0,Xt.n)({api:jn.g,deps:{configApi:ce.D,identityApi:tn.$,discoveryApi:ye.N},factory:({configApi:r,identityApi:e,discoveryApi:n})=>U({middleware:[Ct.resolvePluginProtocol({discoveryApi:n}),Ct.injectIdentityAuth({identityApi:e,config:r})]})}),(0,Xt.n)({api:ne,deps:{},factory:()=>new gt}),(0,Xt.n)({api:Wt,deps:{discoveryApi:ye.N,oauthRequestApi:ne,configApi:ce.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>Te.create({configApi:n,discoveryApi:r,oauthRequestApi:e,environment:n.getOptionalString("auth.environment")})}),(0,Xt.n)({api:Oe,deps:{discoveryApi:ye.N,oauthRequestApi:ne,configApi:ce.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>me.create({configApi:n,discoveryApi:r,oauthRequestApi:e,environment:n.getOptionalString("auth.environment")})}),(0,Xt.n)({api:zt,deps:{discoveryApi:ye.N,oauthRequestApi:ne,configApi:ce.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>Ne.create({configApi:n,discoveryApi:r,oauthRequestApi:e,defaultScopes:["read:user"],environment:n.getOptionalString("auth.environment")})}),(0,Xt.n)({api:Jt,deps:{discoveryApi:ye.N,oauthRequestApi:ne,configApi:ce.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>N.create({configApi:n,discoveryApi:r,oauthRequestApi:e,environment:n.getOptionalString("auth.environment")})}),(0,Xt.n)({api:ge,deps:{discoveryApi:ye.N,oauthRequestApi:ne,configApi:ce.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>vt.create({configApi:n,discoveryApi:r,oauthRequestApi:e,environment:n.getOptionalString("auth.environment")})}),(0,Xt.n)({api:Le,deps:{discoveryApi:ye.N,oauthRequestApi:ne,configApi:ce.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>Bt.create({configApi:n,discoveryApi:r,oauthRequestApi:e,environment:n.getOptionalString("auth.environment")})}),(0,Xt.n)({api:Je,deps:{discoveryApi:ye.N,oauthRequestApi:ne,configApi:ce.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>le.create({configApi:n,discoveryApi:r,oauthRequestApi:e,defaultScopes:["team"],environment:n.getOptionalString("auth.environment")})}),(0,Xt.n)({api:Ke,deps:{discoveryApi:ye.N,oauthRequestApi:ne,configApi:ce.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>Me.create({configApi:n,discoveryApi:r,oauthRequestApi:e,defaultScopes:["REPO_READ"]})}),(0,Xt.n)({api:Ce,deps:{discoveryApi:ye.N,oauthRequestApi:ne,configApi:ce.D},factory:({discoveryApi:r,oauthRequestApi:e,configApi:n})=>uo.create({configApi:n,discoveryApi:r,oauthRequestApi:e,environment:n.getOptionalString("auth.environment")})}),(0,Xt.n)({api:fo,deps:{discovery:ye.N,identity:tn.$,config:ce.D},factory:({config:r,discovery:e,identity:n})=>an.create({config:r,discovery:e,identity:n})})];var Un=t(43642),Co=t(80079),Ao=t(90941),So=t(32915),$n=t(40562),mn=t(21853),bo=t(60744),Oo=t(66569),Po=t(30254),Ro=t(13384),Fn=t(15933),wo=t(58838),To=t(86737),Nn=t(4989),Wn=t(44407),Io=t(18628),yn=t(84219),En=t(98685),Do=t(39781),Lo=t(39412),Mo=t(78258);const jo={brokenImage:Co.Z,catalog:Io.Z,scaffolder:So.Z,techdocs:$n.Z,search:mn.Z,chat:bo.Z,dashboard:Oo.Z,docs:Po.Z,email:Ro.Z,github:wo.Z,group:yn.Z,help:To.Z,"kind:api":Fn.Z,"kind:component":Wn.Z,"kind:domain":Un.Z,"kind:group":yn.Z,"kind:location":Nn.Z,"kind:system":Ao.Z,"kind:user":En.Z,"kind:resource":Lo.Z,"kind:template":Mo.Z,user:En.Z,warning:Do.Z};var Bo=t(87561),Uo=t(12536),$o=t(19219),Zn=t(41547),Fo=t(3493),No=t(81887);const Wo=(0,Uo.Z)({productionPrefix:"jss4-"});function kn(r){const{children:e,theme:n,noCssBaseline:s=!1}=r,a=n.getTheme("v4"),c=n.getTheme("v5");let m;s||(m=(0,i.jsx)(Bo.ZP,{}));let v=(0,i.jsxs)(i.Fragment,{children:[m,e]});return a&&(v=(0,i.jsx)($o.ZP,{generateClassName:Wo,children:(0,i.jsx)(Zn.Z,{theme:a,children:v})})),c&&(v=(0,i.jsx)(Fo.Z,{injectFirst:!0,children:(0,i.jsx)(No.Z,{theme:c,children:v})})),v}const ln={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 Rt=t(88412),se=t(52475),de=t(80956),Zo=t(73689),ko=t(93606);const je={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")`},f={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 O(r){const{colors:e,shape:n,options:s}=r,c=`linear-gradient(90deg, ${(e.length===1?[e[0],e[0]]:e).join(", ")})`,m=`${n}, ${c}`;var v;const I=(v=s==null?void 0:s.fontColor)!==null&&v!==void 0?v:"#FFFFFF";return{colors:e,shape:n,backgroundImage:m,fontColor:I}}const L={home:O({colors:f.teal,shape:je.wave}),documentation:O({colors:f.pinkSea,shape:je.wave2}),tool:O({colors:f.purpleSky,shape:je.round}),service:O({colors:f.marineBlue,shape:je.wave}),website:O({colors:f.veryBlue,shape:je.wave}),library:O({colors:f.rubyRed,shape:je.wave}),other:O({colors:f.darkGrey,shape:je.wave}),app:O({colors:f.toastyOrange,shape:je.wave}),apis:O({colors:f.teal,shape:je.wave2}),card:O({colors:f.greens,shape:je.wave})},k=16,q='"Helvetica Neue", Helvetica, Roboto, Arial, sans-serif',nt="home";function it(r){const{palette:e,htmlFontSize:n=k,fontFamily:s=q,defaultPageTheme:a=nt,pageTheme:c=L,typography:m}=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:m!=null?m:v,page:c[a],getPageTheme:({themeId:I})=>{var W;return(W=c[I])!==null&&W!==void 0?W:c[a]}}}var Ot=t(47591);const Dt={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,Ot._j)(r.palette.link,.3),background:(0,Ot.$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"}}},Mt=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 Ut(r,e){if(!e||typeof e=="string")return;const n=typeof e=="function"?e(r):e;if(n)return{"@global":n}}function Ht(r,e){if(!(!e||typeof e=="string")){if(typeof e=="object"){const n={...r},s=r.spacing(1);return typeof s=="number"&&(n.spacing=Mt(s)),Object.fromEntries(Object.entries(e).map(([a,c])=>typeof c=="function"?[a,c({theme:n})]:[a,c]))}return e}}const Pt=/^&.Mui-([\w-]+)$/;function pe(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,m=c.match(Pt);if(m){const[,v]=m,{[c]:I,...W}=s;I&&(e={...e,[n]:W,[v]:I})}}}return e}function ue(r,e={}){const n={},s={};for(const a of Object.keys(e)){const c=e[a];c&&("styleOverrides"in c&&(a==="MuiCssBaseline"?n[a]=Ut(r,c.styleOverrides):n[a]=pe(Ht(r,c.styleOverrides))),"defaultProps"in c&&(s[a]=c.defaultProps))}return{overrides:n,props:s}}var $t=new WeakMap;class Zt{getTheme(e){return(0,Rt._)(this,$t).get(e)}constructor(e,n){(0,se._)(this,$t,{writable:!0,value:new Map}),(0,de._)(this,$t,new Map),e&&(0,Rt._)(this,$t).set("v4",e),n&&(0,Rt._)(this,$t).set("v5",n)}}function oe(r){const e=it(r),n={...Dt,...r.components},s=(0,ko.Z)({...e,components:n}),a=ue(s,n),c={...(0,Zo.Z)(e),...a};return new Zt(c,s)}function ee(r){const e=adaptV4Theme(r),n=createTheme(r);return new Zt(n,e)}const Ft={light:oe({palette:ln.light}),dark:oe({palette:ln.dark})};var Gt=t(98192),_t=t(15222);const Ee=[{id:"light",title:"Light Theme",variant:"light",icon:(0,i.jsx)(_t.Z,{}),Provider:({children:r})=>(0,i.jsx)(kn,{theme:Ft.light,children:r})},{id:"dark",title:"Dark Theme",variant:"dark",icon:(0,i.jsx)(Gt.Z,{}),Provider:({children:r})=>(0,i.jsx)(kn,{theme:Ft.dark,children:r})}];var Pe=t(64279),ve=t(13980),Be=t.n(ve);class Ve{get(e){for(const n of this.holders){const s=n.get(e);if(s)return s}}constructor(...e){(0,u._)(this,"holders",void 0),this.holders=e}}var re=t(29651),Ye=t(68993);const zn=(0,re.CT)("api-context"),zo=r=>{var e;const{apis:n,children:s}=r,a=(e=(0,d.useContext)(zn))===null||e===void 0?void 0:e.atVersion(1),c=a?new Ve(n,a):n;return(0,i.jsx)(zn.Provider,{value:(0,Ye.E)({1:c}),children:s})};zo.propTypes={apis:Be().shape({get:Be().func.isRequired}).isRequired,children:Be().node};var ls=t(9850),cs=t.n(ls),ds=t(12782),us=t.n(ds);const hs=/^[a-z][a-z0-9]*(?:[-_][a-z][a-z0-9]*)*$/i;function xn(r){return typeof r=="object"&&r!==null&&!Array.isArray(r)}function Ko(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 Ie={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 cn{static fromConfigs(e){return e.length===0?new cn(void 0):e.reduce((n,{data:s,context:a,filteredKeys:c,deprecatedKeys:m})=>{const v=new cn(s,a,n);if(v.filteredKeys=c,m)for(const{key:I,description:W}of m)console.warn(`The configuration key '${I}' 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(Ie.missing(this.fullKey(e!=null?e:"")));return n}getOptional(e){var n;const s=cs()(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 us()({},{value:a},{value:s},(m,v)=>!xn(v)||!xn(m)?v:void 0).value}getConfig(e){const n=this.getOptionalConfig(e);if(n===void 0)throw new Error(Ie.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(xn(s))return this.copy(s,e,a);if(s!==void 0)throw new TypeError(Ie.type(this.fullKey(e),this.context,Ko(s),"object"));return a}getConfigArray(e){const n=this.getOptionalConfigArray(e);if(n===void 0)throw new Error(Ie.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,m]of a.entries())if(!xn(m))return{expected:"object-array",value:m,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(Ie.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(Ie.convert(this.fullKey(e),this.context,"number"));return s}getBoolean(e){const n=this.getOptionalBoolean(e);if(n===void 0)throw new Error(Ie.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(Ie.convert(this.fullKey(e),this.context,"boolean"))}getString(e){const n=this.getOptionalString(e);if(n===void 0)throw new Error(Ie.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(Ie.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 cn(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 m=n(s);if(m!==!0){const{key:v=e,value:I=s,expected:W}=m;throw new TypeError(Ie.type(this.fullKey(v),this.context,Ko(I),W))}return s}readValue(e){const n=e?e.split("."):[];for(const a of n)if(!hs.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(xn(s))s=s[c];else if(s!==void 0){const m=this.fullKey(n.slice(0,a).join("."));throw new TypeError(Ie.type(m,this.context,Ko(s),"object"))}return s}constructor(e,n="mock-config",s,a=""){(0,u._)(this,"data",void 0),(0,u._)(this,"context",void 0),(0,u._)(this,"fallback",void 0),(0,u._)(this,"prefix",void 0),(0,u._)(this,"filteredKeys",void 0),(0,u._)(this,"notifiedFilteredKeys",void 0),this.data=e,this.context=n,this.fallback=s,this.prefix=a,this.notifiedFilteredKeys=new Set}}const Cn="theme";class Kn{static createWithStorage(e){const n=new Kn(e);if(!window.localStorage)return n;var s;const a=(s=window.localStorage.getItem(Cn))!==null&&s!==void 0?s:void 0;return n.setActiveThemeId(a),n.activeThemeId$().subscribe(c=>{c?window.localStorage.setItem(Cn,c):window.localStorage.removeItem(Cn)}),window.addEventListener("storage",c=>{if(c.key===Cn){var m;const v=(m=localStorage.getItem(Cn))!==null&&m!==void 0?m: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,u._)(this,"themes",void 0),(0,u._)(this,"activeThemeId",void 0),(0,u._)(this,"subject",void 0),this.themes=e,this.subject=new ot(void 0)}}var dn=t(82723);function cr(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 fs{registerFlag(e){cr(e.name),this.registeredFeatureFlags.push(e)}getRegisteredFlags(){return this.registeredFeatureFlags.slice()}isActive(e){return this.flags||(this.flags=this.load()),this.flags.get(e)===dn.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===dn.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])=>(cr(a),c===dn.C.Active));return new Map(s)}catch{return new Map}}constructor(){(0,u._)(this,"registeredFeatureFlags",[]),(0,u._)(this,"flags",void 0)}}const Hn=(0,kt.T)({id:"core.apptheme"}),dr=(0,kt.T)({id:"core.applanguage"});var ps=t(96253);class Ho{static validateFactories(e,n){for(const s of n){const a=[s],c=new Set;for(;a.length;){const m=a.shift(),v=e.get(m);if(v)for(const I of Object.values(v.deps)){if(I.id===s.id)throw new Error(`Circular dependency of api factory for ${s}`);c.has(I)||(c.add(I),a.push(I))}}}}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]),m=a.factory(c);return this.apis.set(e.id,m),m}loadDeps(e,n,s){const a={};for(const c in n)if(n.hasOwnProperty(c)){const m=n[c],v=this.load(m,s);if(!v)throw new Error(`No API factory available for dependency ${m} of dependent ${e}`);a[c]=v}return a}constructor(e){(0,u._)(this,"factories",void 0),(0,u._)(this,"apis",void 0),this.factories=e,this.apis=new Map}}var Go;(function(r){r[r.default=10]="default",r[r.app=50]="app",r[r.static=100]="static"})(Go||(Go={}));class gs{register(e,n){const s=Go[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,u._)(this,"factories",new Map)}}function vs(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,m=>{if(!(0,d.isValidElement)(m))return;const v={};for(const I in e)if(e.hasOwnProperty(I)){const W=e[I];v[I]=W.visit(W.accumulator,m,a,c[I])}for(const I of r.discoverers){const W=I(m);W&&n.push({node:W,parent:m,contexts:v})}})}return Object.fromEntries(Object.entries(e).map(([s,a])=>[s,a.accumulator]))}function Gn(r,e){return()=>({accumulator:r(),visit:e})}function ms(r){var e;return(e=r.props)===null||e===void 0?void 0:e.children}function ys(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 Ae=t(62584);const Es=Gn(()=>new Set,(r,e)=>{const n=(0,Ae.I)(e,"core.plugin");n&&r.add(n)});var An=t(44394);const ur=r=>{const{children:e}=r,n=(0,An.h_)(dn.W),s="with"in r?n.isActive(r.with):!n.isActive(r.without);return(0,i.jsx)(i.Fragment,{children:s?e:null})};(0,Ae.R)(ur,"core.featureFlagged",!0);const Vn={caseSensitive:!1,path:"*",element:"match-all",routeRefs:new Set,plugins:new Set};function Yn(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 hr=r=>{const e=new Set;return r&&e.add(r),e};function fr(r,e=new Array){return d.Children.forEach(r,n=>{if(!(0,d.isValidElement)(n))return;const s=(0,Ae.I)(n,"core.mountPoint");if(s){const a=(0,Ae.I)(n,"core.plugin");e.push({routeRef:s,plugin:a})}fr(n.props.children,e)}),e}const xs=Gn(()=>({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 m=(a=e.props)===null||a===void 0?void 0:a.path,v=(0,Ae.I)(e,"core.mountPoint");if(v&&m)throw new Error(`Path property may not be set directly on a routable extension "${Yn(e)}"`);var I;const W=(I=s==null||(c=s.obj)===null||c===void 0?void 0:c.children)!==null&&I!==void 0?I:r.objects;if(m!==void 0){if(typeof m!="string")throw new Error(`Element path must be a string at "${Yn(e)}"`);const St=m.startsWith("/")?m.slice(1):m,Nt=e.props.element;if((0,Ae.I)(e,"core.gatherMountPoints")){var et;if(Nt)throw new Error(`Mount point gatherers may not have an element prop "${Yn(e)}"`);const Vt={path:St,element:"gathered",routeRefs:new Set,caseSensitive:Boolean((et=e.props)===null||et===void 0?void 0:et.caseSensitive),children:[Vn],plugins:new Set};return W.push(Vt),{obj:Vt,gatherPath:St,routeRef:s==null?void 0:s.routeRef,gatherRouteRef:s==null?void 0:s.routeRef}}if(Nt){var st;const[Vt,...qt]=fr(Nt);if(qt.length>0)throw new Error(`Route element with path "${m}" may not contain multiple routable extensions`);if(!Vt)return s;const{routeRef:he,plugin:ze}=Vt,In={path:St,element:"mounted",routeRefs:new Set([he]),caseSensitive:Boolean((st=e.props)===null||st===void 0?void 0:st.caseSensitive),children:[Vn],plugins:hr(ze)};return W.push(In),r.paths.set(he,St),r.parents.set(he,s==null?void 0:s.routeRef),{obj:In,routeRef:he!=null?he:s==null?void 0:s.routeRef,gatherPath:St,gatherRouteRef:s==null?void 0:s.gatherRouteRef}}}if(v){var pt;if((s==null?void 0:s.gatherPath)===void 0)throw new Error(`Routable extension "${Yn(e)}" with mount point "${v}" must be assigned a path`);s==null||(pt=s.obj)===null||pt===void 0||pt.routeRefs.add(v);const St=(0,Ae.I)(e,"core.plugin");if(St){var Et;s==null||(Et=s.obj)===null||Et===void 0||Et.plugins.add(St)}return r.paths.set(v,s.gatherPath),r.parents.set(v,s==null?void 0:s.gatherRouteRef),{...s,routeRef:v}}return s}),Cs=Gn(()=>({paths:new Map,parents:new Map,objects:new Array}),(r,e,n,s)=>{var a,c,m;if((n==null?void 0:n.props.element)===e)return s;let v=s==null?void 0:s.obj,I=s==null?void 0:s.routeRef,W=s==null?void 0:s.sticky;const et=(a=e.props)===null||a===void 0?void 0:a.path;var st;const pt=(st=v==null?void 0:v.children)!==null&&st!==void 0?st:r.objects,Et=Boolean((c=e.props)===null||c===void 0?void 0:c.caseSensitive);let St=s==null?void 0:s.path;if((0,Ae.I)(e,"core.gatherMountPoints")){if(!et)throw new Error("Mount point gatherer must have a path");St=et}const Nt=(m=e.props)===null||m===void 0?void 0:m.element;let Vt=(0,Ae.I)(e,"core.mountPoint");if(!Vt&&(0,d.isValidElement)(Nt)&&(Vt=(0,Ae.I)(Nt,"core.mountPoint")),Vt){let ze=et;if(St&&(ze?St=void 0:ze=St),!ze)throw new Error("Mounted routable extension must have a path");r.paths.set(Vt,ze),I&&W?(r.parents.set(Vt,I),et&&(I=Vt,W=!1)):(r.parents.set(Vt,I),I=Vt),et?(v={caseSensitive:Et,path:et,element:"mounted",routeRefs:new Set([Vt]),children:[Vn],plugins:hr((0,Ae.I)(e.props.element,"core.plugin"))},pt.push(v)):v==null||v.routeRefs.add(Vt)}if((0,Ae.I)(e,"core.gatherMountPoints")&&(W=!0),(0,Ae.I)(e,"core.gatherMountPoints")){if(!et)throw new Error("Mount point gatherer must have a path");if(!Vt){var he;v={caseSensitive:Et,path:et,element:"gathered",routeRefs:new Set,children:[Vn],plugins:(s==null||(he=s.obj)===null||he===void 0?void 0:he.plugins)||new Set},pt.push(v)}}return{obj:v,path:St,routeRef:I,sticky:W}}),As=Gn(()=>new Set,(r,e)=>{if(e.type===ur){const n=e.props;r.add("with"in n?n.with:n.without)}});var Sn=t(84800),Ss=t(96087);const bn=(0,Ss.u)("route-ref-type",()=>Symbol("route-ref-type"));function pr(r){return r[bn]==="absolute"}function gr(r){return r[bn]==="sub"}function bs(r){return r[bn]==="external"}function Qn(...r){const e=r.join("/").replace(/\/\/+/g,"/");return e!=="/"&&e.endsWith("/")?e.slice(0,-1):e}var Os=t(34519),Ps=t.n(Os);function Rs(r,e,n){let s,a="";if(pr(r))s=r;else if(gr(r))s=r.parent,a=r.path;else if(bs(r)){const v=n.get(r);if(!v)return[void 0,""];if(pr(v))s=v;else if(gr(v))s=v.parent,a=v.path;else throw new Error(`ExternalRouteRef was bound to invalid target, ${v}`)}else throw r[bn]?new Error(`Unknown or invalid route ref type, ${r[bn]}`):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 m=Qn(c,a);return[s,m]}function ws(r,e,n,s,a){var c;const m=(c=(0,Sn.fp)(a,e))!==null&&c!==void 0?c:[],v=Array();let I=-1;for(let st=r;st&&(I=m.findIndex(pt=>pt.route.routeRefs.has(st)),I===-1);st=s.get(st))v.unshift(st);v.length===0&&(I-=1);const W=I===-1?"":m[I].pathname,et=v.slice(0,-1).map(st=>{const pt=n.get(st);if(pt===void 0)throw new Error(`No path for ${st}`);if(pt.includes(":"))throw new Error(`Cannot route to ${r} with parent ${st} as it has parameters`);return pt});return`${Qn(W,...et)}/`}class Ts{resolve(e,n){const[s,a]=Rs(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 m=this.appBasePath+ws(s,c,this.routePaths,this.routeParents,this.routeObjects);return(...[I])=>{const W=I&&Ps()(I,et=>typeof et=="string"?et.replaceAll(/[&?#;\/]/g,st=>encodeURIComponent(st)):et);return Qn(m,(0,Sn.Gn)(a,W))}}trimPath(e){return e&&(e.startsWith(this.appBasePath)?e.slice(this.appBasePath.length):e)}constructor(e,n,s,a,c){(0,u._)(this,"routePaths",void 0),(0,u._)(this,"routeParents",void 0),(0,u._)(this,"routeObjects",void 0),(0,u._)(this,"routeBindings",void 0),(0,u._)(this,"appBasePath",void 0),this.routePaths=e,this.routeParents=n,this.routeObjects=s,this.routeBindings=a,this.appBasePath=c}}const Is=(0,re.CT)("routing-context"),Ds=({routePaths:r,routeParents:e,routeObjects:n,routeBindings:s,basePath:a="",children:c})=>{const m=new Ts(r,e,n,s,a),v=(0,Ye.E)({1:m});return(0,i.jsx)(Is.Provider,{value:v,children:c})};function Ls(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=Qn(v,c),a=e.get(a)}const m=c.match(/:(\w+)/g);if(m){for(let v=0;v<m.length;v++)for(let I=v+1;I<m.length;I++)if(m[I]===m[v])throw new Error(`Parameter ${m[I]} is duplicated in path ${c}`)}}}function Ms(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 js=(0,re.CT)("app-context"),Bs=({appContext:r,children:e})=>{const n=(0,Ye.E)({1:r});return(0,i.jsx)(js.Provider,{value:n,children:e})};function vr(r){return new Error(`Tried to access IdentityApi ${r} before app was loaded`)}function Vo(r){console.warn(`WARNING: Call to ${r} is deprecated and will break in the future`)}class Us{setTarget(e,n){this.target=e,this.signOutTargetUrl=n.signOutTargetUrl,this.resolveTarget(e)}getUserId(){if(!this.target)throw vr("getUserId");if(!this.target.getUserId)throw new Error("IdentityApi does not implement getUserId");return Vo("getUserId"),this.target.getUserId()}getProfile(){if(!this.target)throw vr("getProfile");if(!this.target.getProfile)throw new Error("IdentityApi does not implement getProfile");return Vo("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 Vo("getIdToken"),e.getIdToken()})}async signOut(){await this.waitForTarget.then(e=>e.signOut()),window.location.href=this.signOutTargetUrl}constructor(){(0,u._)(this,"target",void 0),(0,u._)(this,"waitForTarget",void 0),(0,u._)(this,"resolveTarget",()=>{}),(0,u._)(this,"signOutTargetUrl","/"),this.waitForTarget=new Promise(e=>{this.resolveTarget=e})}}var $s=t(72164);function Fs(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 Ns=()=>{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 mr({children:r}){const e=(0,An.h_)(Hn),n=(0,$s.Z)(e.activeThemeId$(),e.getActiveThemeId()),s=Boolean(window.matchMedia)?Ns():!1,a=Fs(n,s,e.getInstalledThemes());if(!a)throw new Error("App has no themes");return(0,i.jsx)(a.Provider,{children:r})}const yr=async()=>Ws();function Ws(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 Zs{add(e,n){return this.apis.push([e.id,n]),n}build(){return new un(new Map(this.apis))}constructor(){(0,u._)(this,"apis",[])}}class un{static builder(){return new Zs}static from(e){return new un(new Map(e.map(([n,s])=>[n.id,s])))}static with(e,n){return new un(new Map([[e.id,n]]))}with(e,n){return new un(new Map([...this.apis,[e.id,n]]))}get(e){return this.apis.get(e.id)}constructor(e){(0,u._)(this,"apis",void 0),this.apis=e}}function ks(r){const e=new Map;return r&&r({bind:(s,a)=>{for(const[c,m]of Object.entries(a)){const v=s[c];if(!v)throw new Error(`Key ${c} is not an existing external route`);if(!m&&!v.optional)throw new Error(`External route ${c} is required but was undefined`);m&&e.set(v,m)}}}),e}function On(){const[r]=(0,y.is)((0,i.jsx)(y.AW,{index:!0,element:(0,i.jsx)("div",{})}));return!r.index}const Er=(0,d.createContext)(void 0);var xr=t(80851),Cr=t(62369),zs=t(72388);const Ks=(r,e)=>{try{const n=(0,Sn.fp)(e,{pathname:r}),s=n==null?void 0:n.filter(I=>{var W;return(I==null||(W=I.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 m;a.plugins.size===1&&(m=a.plugins.values().next().value);const v=Object.entries((s==null?void 0:s.params)||{}).reduce((I,[W,et])=>(et!==void 0&&W!=="*"&&(I[W]=et),I),{});return{extension:"App",pluginId:(m==null?void 0:m.getId())||"root",...c?{routeRef:c.id}:{},_routeNodeType:a.element,params:v}}catch{return}},Hs=({pathname:r,search:e,hash:n,attributes:s})=>{const a=(0,Cr.z)();return(0,d.useEffect)(()=>{a.captureEvent("navigate",`${r}${e}${n}`,{attributes:s})},[a,r,e,n,s]),null},Jn=({routeObjects:r})=>{const{pathname:e,search:n,hash:s}=(0,y.TH)(),{params:a,...c}=Ks(e,r)||{params:{}};return(0,i.jsx)(zs.fC,{attributes:c,children:(0,i.jsx)(Hs,{pathname:e,search:n,hash:s,attributes:a})})};function Gs(r){return On()?Yo(r):""}function Yo(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 Ar({component:r,appIdentityProxy:e,children:n}){const[s,a]=(0,d.useState)(),c=(0,An.h_)(ce.D),m=Yo(c);return s?(e.setTarget(s,{signOutTargetUrl:m||"/"}),(0,i.jsx)(i.Fragment,{children:n})):(0,i.jsx)(r,{onSignInSuccess:a})}function Sr(r){const{Router:e,SignInPage:n}=(0,xr.q)().getComponents(),s=(0,An.h_)(ce.D),a=Yo(s),c=`${a}/*`,m=(0,d.useContext)(Er);if(!m)throw new Error("AppRouter must be rendered within the AppProvider");const{routeObjects:v,appIdentityProxy:I}=m;return n?On()?(0,i.jsxs)(e,{children:[(0,i.jsx)(Jn,{routeObjects:v}),(0,i.jsx)(Ar,{component:n,appIdentityProxy:I,children:(0,i.jsx)(y.Z5,{children:(0,i.jsx)(y.AW,{path:c,element:(0,i.jsx)(i.Fragment,{children:r.children})})})})]}):(0,i.jsxs)(e,{basename:a,children:[(0,i.jsx)(Jn,{routeObjects:v}),(0,i.jsx)(Ar,{component:n,appIdentityProxy:I,children:r.children})]}):(I.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||"/"}),On()?(0,i.jsxs)(e,{children:[(0,i.jsx)(Jn,{routeObjects:v}),(0,i.jsx)(y.Z5,{children:(0,i.jsx)(y.AW,{path:c,element:(0,i.jsx)(i.Fragment,{children:r.children})})})]}):(0,i.jsxs)(e,{basename:a,children:[(0,i.jsx)(Jn,{routeObjects:v}),r.children]}))}(0,Ae.R)(Sr,"core.type","AppRouter");const Pn="language",Ze="en";var Rn=new WeakMap,hn=new WeakMap,Xn=new WeakMap;class _n{static create(e){var n;const s=(n=e==null?void 0:e.availableLanguages)!==null&&n!==void 0?n:[Ze];if(s.length!==new Set(s).size)throw new Error(`Supported languages may not contain duplicates, got '${s.join("', '")}'`);if(!s.includes(Ze))throw new Error(`Supported languages must include '${Ze}'`);var a;const c=(a=e==null?void 0:e.defaultLanguage)!==null&&a!==void 0?a:Ze;if(!s.includes(c))throw new Error(`Initial language must be one of the supported languages, got '${c}'`);return new _n(s,c)}static createWithStorage(e){const n=_n.create(e);if(!window.localStorage)return n;const s=window.localStorage.getItem(Pn),{languages:a}=n.getAvailableLanguages();return s&&a.includes(s)&&n.setLanguage(s),n.language$().subscribe(({language:c})=>{c!==window.localStorage.getItem(Pn)&&window.localStorage.setItem(Pn,c)}),window.addEventListener("storage",c=>{if(c.key===Pn){var m;const v=(m=localStorage.getItem(Pn))!==null&&m!==void 0?m:void 0;v&&n.setLanguage(v)}}),n}getAvailableLanguages(){return{languages:(0,Rt._)(this,Rn).slice()}}setLanguage(e){const n=e!=null?e:Ze;if(n!==(0,Rt._)(this,hn)){if(n&&!(0,Rt._)(this,Rn).includes(n))throw new Error(`Failed to change language to '${n}', available languages are '${(0,Rt._)(this,Rn).join("', '")}'`);(0,de._)(this,hn,n),(0,Rt._)(this,Xn).next({language:n})}}getLanguage(){return{language:(0,Rt._)(this,hn)}}language$(){return(0,Rt._)(this,Xn)}constructor(e,n){(0,se._)(this,Rn,{writable:!0,value:void 0}),(0,se._)(this,hn,{writable:!0,value:void 0}),(0,se._)(this,Xn,{writable:!0,value:void 0}),(0,de._)(this,Rn,e),(0,de._)(this,hn,n),(0,de._)(this,Xn,new ot({language:(0,Rt._)(this,hn)}))}}var De=t(29190),en=t(15356),Vs=t(24991),Ys=t(18015),br=t(35304);function Or(r){return Object.fromEntries(Object.entries(r).filter(e=>e[1]!==null))}var fn=new WeakMap,qn=new WeakMap,pn=new WeakMap,to=new WeakSet;class Qs{addTranslationResource(e){const n=(0,Ys.W)(e);for(const s of n.resources){const a=(0,De._)(this,to,Qo).call(this,s.language,n.id);(0,Rt._)(this,pn).has(a)||(0,Rt._)(this,pn).set(a,s.loader)}}needsLoading(e,n){const s=(0,De._)(this,to,Qo).call(this,e,n);return(0,Rt._)(this,pn).get(s)?!(0,Rt._)(this,fn).has(s):!1}async load(e,n){const s=(0,De._)(this,to,Qo).call(this,e,n),a=(0,Rt._)(this,pn).get(s);if(!a||(0,Rt._)(this,fn).has(s))return;const c=(0,Rt._)(this,qn).get(s);if(c){await c;return}const m=a().then(v=>{this.onLoad({language:e,namespace:n,messages:v.messages}),(0,Rt._)(this,fn).add(s)},v=>{throw(0,Rt._)(this,fn).add(s),v});(0,Rt._)(this,qn).set(s,m),await m}constructor(e){(0,en._)(this,to),(0,u._)(this,"onLoad",void 0),(0,se._)(this,fn,{writable:!0,value:void 0}),(0,se._)(this,qn,{writable:!0,value:void 0}),(0,se._)(this,pn,{writable:!0,value:void 0}),this.onLoad=e,(0,de._)(this,fn,new Set),(0,de._)(this,qn,new Map),(0,de._)(this,pn,new Map)}}function Qo(r,e){return`${r}/${e}`}var wn=new WeakMap,gn=new WeakMap,nn=new WeakMap,Jo=new WeakMap,eo=new WeakMap,Pr=new WeakSet,no=new WeakSet,Xo=new WeakSet;class _o{static create(e){const{languages:n}=e.languageApi.getAvailableLanguages(),s=(0,Vs.Fs)({fallbackLng:Ze,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!==Ze&&s.changeLanguage(a);const c=new Qs(I=>{s.addResourceBundle(I.language,I.namespace,Or(I.messages),!1,!0)}),m=(e==null?void 0:e.resources)||[];for(let I=m.length-1;I>=0;I--){const W=m[I];W.$$type==="@backstage/TranslationResource"?c.addTranslationResource(W):W.$$type==="@backstage/TranslationMessages"&&s.addResourceBundle(Ze,W.id,Or(W.messages),!0,!1)}const v=new _o(s,c,e.languageApi.getLanguage().language);return e.languageApi.language$().subscribe(({language:I})=>{(0,De._)(v,Pr,Js).call(v,I)}),v}getTranslation(e){const n=(0,br.y)(e);return(0,De._)(this,Xo,Rr).call(this,n),(0,De._)(this,no,qo).call(this,n)}translation$(e){const n=(0,br.y)(e);return(0,De._)(this,Xo,Rr).call(this,n),new(H())(s=>{let a={};const c=()=>{a={};const v=a;(0,Rt._)(this,gn).load((0,Rt._)(this,nn),n.id).then(()=>{if(v===a){const I=(0,De._)(this,no,qo).call(this,n);I.ready&&s.next(I)}},I=>{v===a&&s.error(Array.isArray(I)?I[0]:I)})},m=()=>{const v=(0,De._)(this,no,qo).call(this,n);v.ready?s.next(v):c()};return(0,Rt._)(this,gn).needsLoading((0,Rt._)(this,nn),n.id)&&c(),(0,Rt._)(this,eo).add(m),()=>{(0,Rt._)(this,eo).delete(m)}})}constructor(e,n,s){(0,en._)(this,Pr),(0,en._)(this,no),(0,en._)(this,Xo),(0,se._)(this,wn,{writable:!0,value:void 0}),(0,se._)(this,gn,{writable:!0,value:void 0}),(0,se._)(this,nn,{writable:!0,value:void 0}),(0,se._)(this,Jo,{writable:!0,value:new Set}),(0,se._)(this,eo,{writable:!0,value:new Set}),(0,de._)(this,wn,e),(0,de._)(this,gn,n),(0,de._)(this,nn,s)}}function Js(r){(0,Rt._)(this,nn)!==r&&((0,de._)(this,nn,r),(0,Rt._)(this,wn).changeLanguage(r),(0,Rt._)(this,eo).forEach(e=>e()))}function qo(r){return(0,Rt._)(this,gn).needsLoading((0,Rt._)(this,nn),r.id)?{ready:!1}:{ready:!0,t:(0,Rt._)(this,wn).getFixedT(null,r.id)}}function Rr(r){if((0,Rt._)(this,Jo).has(r.id))return;(0,Rt._)(this,Jo).add(r.id);const e=r.getDefaultMessages();(0,Rt._)(this,wn).addResourceBundle(Ze,r.id,e,!0,!1);const n=r.getDefaultResource();n&&(0,Rt._)(this,gn).addTranslationResource(n)}function wr(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 Xs(r){const e=cn.fromConfigs(r),n=e.getOptionalString("app.baseUrl"),s=e.getOptionalString("backend.baseUrl");let a=r,c,m;if(n&&s){const v=new URL(n).origin,I=new URL(s).origin;if(v===I){const W=wr(s);s!==W&&(c=W)}}if(n){const v=wr(n);n!==v&&(m=v)}return(m||c)&&(a=a.concat({data:{app:m&&{baseUrl:m},backend:c&&{baseUrl:c}},context:"relative-resolver"})),a}function _s(r,e,n){var s;const a=Boolean(r),c=(0,Pe.default)(r||(()=>Promise.resolve([])));let m;if(a&&c.loading){const{Progress:W}=e;m=(0,i.jsx)(W,{})}else if(c.error){const{BootErrorPage:W}=e;m=(0,i.jsx)(W,{step:"load-config",error:c.error})}const{ThemeProvider:v=mr}=e;return m?{node:(0,i.jsx)(zo,{apis:un.with(Hn,n),children:(0,i.jsx)(v,{children:m})})}:{api:cn.fromConfigs(!((s=c.value)===null||s===void 0)&&s.length?Xs(c.value):[])}}class qs{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,u._)(this,"app",void 0),this.app=e}}var tr=new WeakMap;class ti{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,Rt._)(this,tr))throw new Error("app.getProvider() or app.createRoot() has already been called, and can only be called once");(0,de._)(this,tr,!0);const e=new qs(this);let n=!1;return({children:a})=>{const c=(0,d.useRef)(!0),m=(0,d.useMemo)(()=>Kn.createWithStorage(this.themes),[]),{routing:v,featureFlags:I,routeBindings:W}=(0,d.useMemo)(()=>{const St=vs({root:a,discoverers:[ms,ys],collectors:{routing:On()?Cs:xs,collectedPlugins:Es,featureFlags:As}});return St.collectedPlugins.forEach(Nt=>this.plugins.add(Nt)),this.verifyPlugins(this.plugins),this.getApiHolder(),{...St,routeBindings:ks(this.bindRoutes)}},[a]);n||(n=!0,Ls(v.paths,v.parents),Ms(W,this.plugins));const et=_s(this.configLoader,this.components,m),st="api"in et;if(st){const{api:St}=et;this.configApi=St}if("node"in et)return et.node;if(st&&c.current){c.current=!1;const St=this.getApiHolder().get(dn.W);if(St){for(const qt of this.featureFlags)St.registerFlag({...qt,pluginId:""});for(const qt of this.plugins.values())if("getFeatureFlags"in qt)for(const he of qt.getFeatureFlags())St.registerFlag({name:he.name,pluginId:qt.getId()});else for(const he of qt.output())he.type==="feature-flag"&&St.registerFlag({name:he.name,pluginId:qt.getId()});const Nt=St.getRegisteredFlags(),Vt=new Set(Nt.map(qt=>qt.name));for(const qt of I)Vt.has(qt)||St.registerFlag({name:qt,pluginId:""})}}const{ThemeProvider:pt=mr,Progress:Et}=this.components;return(0,i.jsx)(zo,{apis:this.getApiHolder(),children:(0,i.jsx)(Bs,{appContext:e,children:(0,i.jsx)(pt,{children:(0,i.jsx)(Ds,{routePaths:v.paths,routeParents:v.parents,routeObjects:v.objects,routeBindings:W,basePath:Gs(et.api),children:(0,i.jsx)(Er.Provider,{value:{routeObjects:v.objects,appIdentityProxy:this.appIdentityProxy},children:(0,i.jsx)(d.Suspense,{fallback:(0,i.jsx)(Et,{}),children:a})})})})})})}}getRouter(){return Sr}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 Ho.validateFactories(this.apiFactoryRegistry,this.apiFactoryRegistry.getAllApis()),this.apiHolder}this.apiFactoryRegistry.register("static",{api:Hn,deps:{},factory:()=>Kn.createWithStorage(this.themes)}),this.apiFactoryRegistry.register("static",{api:ce.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:tn.$,deps:{},factory:()=>this.appIdentityProxy}),this.apiFactoryRegistry.register("static",{api:dr,deps:{},factory:()=>this.appLanguageApi}),this.apiFactoryRegistry.register("default",{api:ps.o,deps:{languageApi:dr},factory:({languageApi:e})=>_o.create({languageApi:e,resources:this.translationResources})}),this.apiFactoryRegistry.register("default",{api:dn.W,deps:{},factory:()=>new fs});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 Ho.validateFactories(this.apiFactoryRegistry,this.apiFactoryRegistry.getAllApis()),this.apiHolder=new Ho(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,u._)(this,"apiHolder",void 0),(0,u._)(this,"configApi",void 0),(0,u._)(this,"apis",void 0),(0,u._)(this,"icons",void 0),(0,u._)(this,"plugins",void 0),(0,u._)(this,"featureFlags",void 0),(0,u._)(this,"components",void 0),(0,u._)(this,"themes",void 0),(0,u._)(this,"configLoader",void 0),(0,u._)(this,"defaultApis",void 0),(0,u._)(this,"bindRoutes",void 0),(0,u._)(this,"appLanguageApi",void 0),(0,u._)(this,"translationResources",void 0),(0,u._)(this,"appIdentityProxy",new Us),(0,u._)(this,"apiFactoryRegistry",void 0),(0,se._)(this,tr,{writable:!0,value:!1});var c;this.apis=(c=e.apis)!==null&&c!==void 0?c:[],this.icons=e.icons;var m;this.plugins=new Set((m=e.plugins)!==null&&m!==void 0?m:[]);var v;this.featureFlags=(v=e.featureFlags)!==null&&v!==void 0?v:[],this.components=e.components,this.themes=e.themes;var I;this.configLoader=(I=e.configLoader)!==null&&I!==void 0?I:yr;var W;this.defaultApis=(W=e.defaultApis)!==null&&W!==void 0?W:[],this.bindRoutes=e.bindRoutes,this.apiFactoryRegistry=new gs,this.appLanguageApi=_n.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 et;this.translationResources=(et=(a=e.__experimentalTranslations)===null||a===void 0?void 0:a.resources)!==null&&et!==void 0?et:[]}}function ei(r){return new ti(r)}function ni(r){var e,n,s,a;return ei({...r,apis:(e=r==null?void 0:r.apis)!==null&&e!==void 0?e:[],bindRoutes:r==null?void 0:r.bindRoutes,components:{...T,...r==null?void 0:r.components},configLoader:r==null?void 0:r.configLoader,defaultApis:xo,icons:{...jo,...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:Ee})}var oo=t(2532);let Tr=!1;const Ir=r=>{const e=(0,xr.q)(),{NotFoundErrorPage:n}=e.getComponents(),s=(0,d.useMemo)(()=>On(),[]),c=[...(0,oo.v)(r.children,m=>m.getElements().flatMap(v=>{let I=v.props.path;if(I==="")return[];var W;I=(W=I==null?void 0:I.replace(/\/\*$/,""))!==null&&W!==void 0?W:"/";let et=s?v:v.props.element;return!s&&!et&&(et=v,Tr||(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] />} />."),Tr=!0)),[{path:I,element:et,children:v.props.children?[{path:I==="/"?"/":"*",element:v.props.children}]:void 0}]}).sort((v,I)=>I.path.localeCompare(v.path)).map(v=>({...v,path:v.path==="/"?"/":`${v.path}/*`}))),{path:"*",element:(0,i.jsx)(n,{})}];return(0,y.V$)(c)};(0,Ae.R)(Ir,"core.type","FlatRoutes");var on=t(74314),oi=t(51547),ri=t(88797);function Dr(r){return!r.cursor}function Ma(r){return!Dr(r)}class si{async getEntityAncestors(e,n){const{kind:s,namespace:a,name:c}=(0,on.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:m,limit:v,after:I}=e!=null?e:{},W=this.getParams(s);if(a.length&&W.push(`fields=${a.map(encodeURIComponent).join(",")}`),c)for(const Et of[c].flat())Et&&W.push(`order=${encodeURIComponent(Et.order)}:${encodeURIComponent(Et.field)}`);m!==void 0&&W.push(`offset=${m}`),v!==void 0&&W.push(`limit=${v}`),I!==void 0&&W.push(`after=${encodeURIComponent(I)}`);const et=W.length?`?${W.join("&")}`:"",st=await this.requestRequired("GET",`/entities${et}`,n),pt=(Et,St)=>{var Nt,Vt;if(((Nt=Et.metadata)===null||Nt===void 0?void 0:Nt.name)===void 0||Et.kind===void 0||((Vt=St.metadata)===null||Vt===void 0?void 0:Vt.name)===void 0||St.kind===void 0)return 0;const qt=(0,on.eE)(Et),he=(0,on.eE)(St);return qt<he?-1:qt>he?1:0};return{items:st.sort(pt)}}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 m=`${await this.discoveryApi.getBaseUrl("catalog")}/entities/by-refs`,v=await this.fetchApi.fetch(m,{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:I}=await v.json();return{items:I.map(W=>W!=null?W:void 0)}}async queryEntities(e={},n){const s=[];if(Dr(e)){var a,c;const{fields:v=[],filter:I,limit:W,orderFields:et,fullTextFilter:st}=e;s.push(...this.getParams(I)),W!==void 0&&s.push(`limit=${W}`),et!==void 0&&(Array.isArray(et)?et:[et]).forEach(({field:Et,order:St})=>s.push(`orderField=${Et},${St}`)),v.length&&s.push(`fields=${v.map(encodeURIComponent).join(",")}`);const pt=st==null||(a=st.term)===null||a===void 0?void 0:a.trim();pt&&s.push(`fullTextFilterTerm=${pt}`),!(st==null||(c=st.fields)===null||c===void 0)&&c.length&&s.push(`fullTextFilterFields=${st.fields.join(",")}`)}else{const{fields:v=[],limit:I,cursor:W}=e;s.push(`cursor=${W}`),I!==void 0&&s.push(`limit=${I}`),v.length&&s.push(`fields=${v.map(encodeURIComponent).join(",")}`)}const m=s.length?`?${s.join("&")}`:"";return this.requestRequired("GET",`/entities/by-query${m}`,n)}async getEntityByRef(e,n){const{kind:s,namespace:a,name:c}=(0,on.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 m=c.length?`?${c.join("&")}`:"";return await this.requestOptional("GET",`/entity-facets${m}`,n)}async addLocation(e,n){const{type:s="url",target:a,dryRun:c}=e,m=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(m.status!==201)throw new Error(await m.text());const{location:v,entities:I,exists:W}=await m.json();if(!v)throw new Error(`Location wasn't added: ${a}`);return{location:v,entities:I,exists:W}}async getLocationByRef(e,n){return(await this.requestRequired("GET","/locations",n)).map(a=>a.data).find(a=>e===(0,oi.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}`}:{},m=await this.fetchApi.fetch(a,{method:e,headers:c});if(!m.ok)throw await Ge.V.fromResponse(m)}async requestRequired(e,n,s){const a=`${await this.discoveryApi.getBaseUrl("catalog")}${n}`,c=s!=null&&s.token?{Authorization:`Bearer ${s.token}`}:{},m=await this.fetchApi.fetch(a,{method:e,headers:c});if(!m.ok)throw await Ge.V.fromResponse(m);return m.json()}async requestOptional(e,n,s){const a=`${await this.discoveryApi.getBaseUrl("catalog")}${n}`,c=s!=null&&s.token?{Authorization:`Bearer ${s.token}`}:{},m=await this.fetchApi.fetch(a,{method:e,headers:c});if(!m.ok){if(m.status===404)return;throw await Ge.V.fromResponse(m)}return await m.json()}getParams(e=[]){const n=[];for(const s of[e].flat()){const a=[];for(const[c,m]of Object.entries(s))for(const v of[m].flat())v===ri.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,u._)(this,"discoveryApi",void 0),(0,u._)(this,"fetchApi",void 0),this.discoveryApi=e.discoveryApi,this.fetchApi=e.fetchApi||{fetch:Bn()}}}var Lr=t(88624),ii=t(36802),ai=t(51271),Mr=t(36434),Tn=t(65524),li=t(15006),Re=t(82963),ci=t(53945),vn=t(76635);async function di({storageApi:r}){const e=r.forBucket("settings"),n=r.forBucket("starredEntities"),s=e.snapshot("starredEntities").value;if(!(0,vn.isArray)(s))return;var a;const c=new Set((a=n.snapshot("entityRefs").value)!==null&&a!==void 0?a:[]);s.filter(vn.isString).map(m=>m.split(":")).filter(m=>m.length===4&&m[0]==="entity").map(([m,v,I,W])=>(0,on.eE)({kind:v,namespace:I,name:W})).forEach(m=>c.add(m)),await n.set("entityRefs",Array.from(c)),await e.remove("starredEntities")}class ui{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,u._)(this,"settingsStore",void 0),(0,u._)(this,"starredEntities",void 0),(0,u._)(this,"subscribers",new Set),(0,u._)(this,"observable",new(H())(s=>(s.next(new Set(this.starredEntities)),this.subscribers.add(s),()=>{this.subscribers.delete(s)}))),di(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()}})}}function er(r){const{years:e=0,months:n=0,weeks:s=0,days:a=0,hours:c=0,minutes:m=0,seconds:v=0,milliseconds:I=0}=r;return((((e*365+n*30+s*7+a)*24+c)*60+m)*60+v)*1e3+I}var hi=t(99798),fi=t.n(hi),pi=t(12830),gi=t.n(pi),vi=t(68203),mi=t(77224),yi=t(78898);const Ei={seconds:10},xi={milliseconds:50},ja=null,Ci={api:Fn.Z,component:Wn.Z,system:mi.Z,domain:Un.Z,location:Nn.Z,user:En.Z,group:yn.Z,template:yi.Z};function jr(r){return{async:r.async,render:({entityRef:e,entity:n,context:s})=>({snapshot:(0,vi.n)(n||e,s),loadEntity:r.async})}}var ro=new WeakMap,nr=new WeakMap,so=new WeakMap,or=new WeakMap,io=new WeakMap,Br=new WeakSet,Ur=new WeakSet,$r=new WeakSet;class ao{static createLocal(){return new ao({renderer:jr({async:!1})})}static create(e){return new ao(e)}forEntity(e,n){const{entityRef:s,kind:a,entity:c,needsLoad:m}=(0,De._)(this,Br,Ai).call(this,e),v=et=>{const{snapshot:st}=(0,Rt._)(this,io).render({entityRef:s,loading:et.loading,entity:et.entity,context:n||{}});return{...st,entityRef:s,Icon:(0,De._)(this,$r,bi).call(this,st.Icon,a)}};let I;try{I=v({loading:m,entity:c})}catch{I={primaryTitle:s,entityRef:s}}const W=m?new(H())(et=>{let st=!1;return Promise.resolve().then(()=>{var pt;return(pt=(0,Rt._)(this,so))===null||pt===void 0?void 0:pt.load(s)}).then(pt=>{if(!st&&pt&&pt.metadata.etag!==(c==null?void 0:c.metadata.etag)){const Et=v({loading:!1,entity:pt});et.next(Et)}}).catch(()=>{}).finally(()=>{st||et.complete()}),()=>{st=!0}}):void 0;return{snapshot:I,update$:W}}constructor(e){(0,en._)(this,Br),(0,en._)(this,Ur),(0,en._)(this,$r),(0,se._)(this,ro,{writable:!0,value:void 0}),(0,se._)(this,nr,{writable:!0,value:void 0}),(0,se._)(this,so,{writable:!0,value:void 0}),(0,se._)(this,or,{writable:!0,value:void 0}),(0,se._)(this,io,{writable:!0,value:void 0});var n;const s=(n=e.cacheTtl)!==null&&n!==void 0?n:Ei;var a;const c=(a=e.batchDelay)!==null&&a!==void 0?a:xi;var m;const v=(m=e.renderer)!==null&&m!==void 0?m:jr({async:!0}),I={};var W;if(Object.entries((W=e.kindIcons)!==null&&W!==void 0?W:Ci).forEach(([et,st])=>{I[et.toLocaleLowerCase("en-US")]=st}),v.async){if(!e.catalogApi)throw new TypeError("Asynchronous rendering requires a catalog API");(0,de._)(this,so,(0,De._)(this,Ur,Si).call(this,{cacheTtl:s,batchDelay:c,renderer:v,catalogApi:e.catalogApi}))}(0,de._)(this,nr,er(s)),(0,de._)(this,ro,new Map),(0,de._)(this,or,I),(0,de._)(this,io,v)}}function Ai(r){if(typeof r!="string")return{entity:r,kind:r.kind,entityRef:(0,on.eE)(r),needsLoad:!1};const e=(0,Rt._)(this,ro).get(r),n=e==null?void 0:e.entity,a=(!e||Date.now()-e.updatedAt>(0,Rt._)(this,nr))&&(0,Rt._)(this,io).async!==!1&&(0,Rt._)(this,so)!==void 0;return{entity:n,kind:(0,on.of)(r).kind,entityRef:r,needsLoad:a}}function Si(r){const e=er(r.cacheTtl),n=er(r.batchDelay);return new(fi())(async s=>{const{items:a}=await r.catalogApi.getEntitiesByRefs({entityRefs:s}),c=Date.now();return s.forEach((m,v)=>{(0,Rt._)(this,ro).set(m,{updatedAt:c,entity:a[v]})}),a},{name:"DefaultEntityPresentationApi",cacheMap:new(gi())(e),maxBatchSize:100,batchScheduleFn:n?s=>setTimeout(s,n):void 0})}function bi(r,e){return r||(r===!1?!1:(0,Rt._)(this,or)[e.toLocaleLowerCase("en-US")])}const be=(0,li.r)({id:"catalog",apis:[(0,Xt.n)({api:Lr.A,deps:{discoveryApi:ye.N,fetchApi:jn.g},factory:({discoveryApi:r,fetchApi:e})=>new si({discoveryApi:r,fetchApi:e})}),(0,Xt.n)({api:ii.p,deps:{storageApi:Mn},factory:({storageApi:r})=>new ui({storageApi:r})}),(0,Xt.n)({api:ai.X,deps:{catalogApi:Lr.A},factory:({catalogApi:r})=>ao.create({catalogApi:r})})],routes:{catalogIndex:Tn._Z,catalogEntity:Mr.w},externalRoutes:{createComponent:Tn.yw,viewTechDoc:Tn.jU,createFromTemplate:Tn.ql}}),Ba=be.provide((0,Re.P4)({name:"CatalogIndexPage",component:()=>Promise.all([t.e(3893),t.e(1600)]).then(t.bind(t,51600)).then(r=>r.CatalogPage),mountPoint:Tn._Z})),Oi=be.provide((0,Re.P4)({name:"CatalogEntityPage",component:()=>t.e(8951).then(t.bind(t,78951)).then(r=>r.CatalogEntityPage),mountPoint:Mr.w})),Ua=be.provide((0,Re.CO)({name:"EntityAboutCard",component:{lazy:()=>Promise.all([t.e(4966),t.e(7893)]).then(t.bind(t,37893)).then(r=>r.AboutCard)}})),$a=be.provide((0,Re.CO)({name:"EntityLinksCard",component:{lazy:()=>t.e(7750).then(t.bind(t,17750)).then(r=>r.EntityLinksCard)}})),Fa=be.provide((0,Re.CO)({name:"EntityLabelsCard",component:{lazy:()=>t.e(5877).then(t.bind(t,85877)).then(r=>r.EntityLabelsCard)}})),Na=be.provide((0,Re.CO)({name:"EntityHasSystemsCard",component:{lazy:()=>t.e(5458).then(t.bind(t,5458)).then(r=>r.HasSystemsCard)}})),Wa=be.provide((0,Re.CO)({name:"EntityHasComponentsCard",component:{lazy:()=>t.e(1105).then(t.bind(t,1105)).then(r=>r.HasComponentsCard)}})),Za=be.provide((0,Re.CO)({name:"EntityHasSubcomponentsCard",component:{lazy:()=>t.e(2440).then(t.bind(t,82440)).then(r=>r.HasSubcomponentsCard)}})),ka=be.provide((0,Re.CO)({name:"EntityHasResourcesCard",component:{lazy:()=>t.e(9770).then(t.bind(t,79770)).then(r=>r.HasResourcesCard)}})),za=be.provide((0,Re.CO)({name:"EntityDependsOnComponentsCard",component:{lazy:()=>t.e(9545).then(t.bind(t,19545)).then(r=>r.DependsOnComponentsCard)}})),Ka=be.provide((0,Re.CO)({name:"EntityDependencyOfComponentsCard",component:{lazy:()=>t.e(184).then(t.bind(t,40184)).then(r=>r.DependencyOfComponentsCard)}})),Ha=be.provide((0,Re.CO)({name:"EntityDependsOnResourcesCard",component:{lazy:()=>t.e(1032).then(t.bind(t,81032)).then(r=>r.DependsOnResourcesCard)}})),Ga=be.provide((0,Re.CO)({name:"RelatedEntitiesCard",component:{lazy:()=>t.e(3487).then(t.bind(t,33487)).then(r=>r.RelatedEntitiesCard)}})),Va=be.provide((0,ci.E5)({name:"CatalogSearchResultListItem",component:()=>t.e(7670).then(t.bind(t,27670)).then(r=>r.CatalogSearchResultListItem),predicate:r=>r.type==="software-catalog"}));var Fr=t(91657),Nr=t(58496);class Pi{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,u._)(this,"configApi",void 0),(0,u._)(this,"discoveryApi",void 0),(0,u._)(this,"identityApi",void 0),this.configApi=e,this.discoveryApi=n,this.identityApi=s}}class Ri{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,u._)(this,"configApi",void 0),(0,u._)(this,"discoveryApi",void 0),(0,u._)(this,"identityApi",void 0),this.configApi=e,this.discoveryApi=n,this.identityApi=s}}const wi=[(0,Xt.n)({api:Nr.D,deps:{configApi:ce.D,discoveryApi:ye.N,identityApi:tn.$},factory:({configApi:r,discoveryApi:e,identityApi:n})=>new Pi({configApi:r,discoveryApi:e,identityApi:n})}),(0,Xt.n)({api:Nr.g,deps:{configApi:ce.D,discoveryApi:ye.N,identityApi:tn.$},factory:({configApi:r,discoveryApi:e,identityApi:n})=>new Ri({configApi:r,discoveryApi:e,identityApi:n})}),(0,Xt.n)({api:Fr.q,deps:{configApi:ce.D},factory:({configApi:r})=>Fr.a.fromConfig(r)})],Ti={backend:{baseUrl:"http://localhost:3000"},techdocs:{builder:"external"}},Ii={backend:{baseUrl:"http://localhost:7007"},techdocs:{builder:"external"}};async function Di(){const r=await fetch("/.detect");return r.ok?(await r.text()).trim()==="techdocs-cli-server":!1}async function Li(){const r=await yr(),e=await Di();return[...r,{context:"detected",data:e?Ti:Ii}]}var ke=t(79692),Mi=t(58845);const ji=(0,ke.Z)({svg:{width:"auto",height:30},path:{fill:"#7df3e1"}});var Bi=()=>{const r=ji();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 $i=()=>{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"})})},xe=t(76921);const Wr={isOpen:!1,setOpen:()=>{}},Zr=(0,d.createContext)(Wr),kr=(0,re.CT)("sidebar-open-state-context");function zr(r){const{children:e,value:n}=r;return(0,i.jsx)(Zr.Provider,{value:n,children:(0,i.jsx)(kr.Provider,{value:(0,Ye.E)({1:n}),children:e})})}const rr=()=>{const r=(0,d.useContext)(kr),e=(0,d.useContext)(Zr);if(r===void 0)return e||Wr;const n=r.atVersion(1);if(n===void 0)throw new Error("No context found for version 1.");return n};var Kr=t(98864),Hr=t(44409),Qe=t(62774),Gr=t(41156),Fi=t(72779),rn=t.n(Fi),Ni=t(50023),Vr=t(61837),Wi=t(4190),sr=t(90436),Zi=t(87685),ki=t(44882),zi=t(57998);const Yr=(0,d.createContext)({selectedMenuItemIndex:-1,setSelectedMenuItemIndex:()=>{}});var ir=t(93539);const Ki=(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"}})),Hi=r=>{const{to:e,label:n,icon:s,value:a}=r,{sidebarConfig:c}=(0,d.useContext)(xe.kG),m=Ki({sidebarConfig:c}),v=(0,y.TH)(),{selectedMenuItemIndex:I,setSelectedMenuItemIndex:W}=(0,d.useContext)(Yr),et=(pt,Et)=>{W(Et===I?-1:Et)},st=a===I&&I>=0||a!==I&&!(I>=0)&&e===v.pathname;return(0,i.jsx)(zi.Z,{"aria-label":n,label:n,icon:s,component:Kr.rU,to:e||v.pathname,onChange:et,value:a,selected:st,classes:m})},Qr=r=>{const{children:e,to:n,label:s,icon:a,value:c}=r,{isMobile:m}=(0,ir.Pf)();return m?(0,i.jsx)(Hi,{to:n,label:s,icon:a,value:c}):(0,i.jsx)(i.Fragment,{children:e})},Jr=(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`})})),Gi=r=>(0,vn.orderBy)(r,({props:{priority:e}})=>Number.isInteger(e)?e:-1,"desc"),Vi=d.createElement(Qr).type,Yi=({children:r,label:e="Menu",open:n,onClose:s})=>{const{sidebarConfig:a}=(0,d.useContext)(xe.kG),c=Jr({sidebarConfig:a});return(0,i.jsxs)(Wi.ZP,{anchor:"bottom",open:n,onClose:s,ModalProps:{BackdropProps:{classes:{root:c.marginMobileSidebar}}},classes:{root:c.marginMobileSidebar,paperAnchorBottom:c.overlay},children:[(0,i.jsxs)(Qe.Z,{className:c.overlayHeader,children:[(0,i.jsx)(sr.Z,{variant:"h3",children:e}),(0,i.jsx)(Vr.Z,{onClick:s,classes:{root:c.overlayHeaderClose},children:(0,i.jsx)(Zi.Z,{})})]}),(0,i.jsx)(Qe.Z,{component:"nav",children:r})]})},Qi=r=>{const{sidebarConfig:e}=(0,d.useContext)(xe.kG),{children:n}=r,s=Jr({sidebarConfig:e}),a=(0,y.TH)(),[c,m]=(0,d.useState)(-1);(0,d.useEffect)(()=>{m(-1)},[a.pathname]);let v=(0,oo.v)(n,W=>W.getElements().filter(et=>et.type===Vi));if(n)v.length?v=Gi(v):v.push((0,i.jsx)(Qr,{icon:(0,i.jsx)(ki.Z,{}),children:n},"default_menu"));else return null;const I=c>=0&&!v[c].props.to;return(0,i.jsx)(zr,{value:{isOpen:!0,setOpen:()=>{}},children:(0,i.jsxs)(Yr.Provider,{value:{selectedMenuItemIndex:c,setSelectedMenuItemIndex:m},children:[(0,i.jsx)(Yi,{label:v[c]&&v[c].props.label,open:I,onClose:()=>m(-1),children:v[c]&&v[c].props.children}),(0,i.jsx)(Ni.Z,{className:s.root,"data-testid":"mobile-sidebar-root",component:"nav",children:v})]})})},Xr=(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 Ji=r=>{const{sidebarConfig:e}=(0,d.useContext)(xe.kG),{openDelayMs:n=e.defaultOpenDelayMs,closeDelayMs:s=e.defaultCloseDelayMs,disableExpandOnHover:a,children:c}=r,m=Xr({sidebarConfig:e}),v=(0,Gr.Z)(qt=>qt.breakpoints.down("md"),{noSsr:!0}),[I,W]=(0,d.useState)(0),et=(0,d.useRef)(),{isPinned:st,toggleSidebarPinState:pt}=(0,ir.Pf)(),Et=()=>{st||a||(et.current&&(clearTimeout(et.current),et.current=void 0),I!==2&&!v&&(et.current=window.setTimeout(()=>{et.current=void 0,W(2)},n),W(1)))},St=()=>{st||a||(et.current&&(clearTimeout(et.current),et.current=void 0),I===1?W(0):I===2&&(et.current=window.setTimeout(()=>{et.current=void 0,W(0)},s)))},Nt=I===2&&!v||st,Vt=qt=>{qt?(W(2),pt()):(W(0),pt())};return(0,i.jsxs)("nav",{style:{},"aria-label":"sidebar nav",children:[(0,i.jsx)(_i,{}),(0,i.jsx)(zr,{value:{isOpen:Nt,setOpen:Vt},children:(0,i.jsx)(Qe.Z,{className:m.root,"data-testid":"sidebar-root",onMouseEnter:a?()=>{}:Et,onFocus:a?()=>{}:Et,onMouseLeave:a?()=>{}:St,onBlur:a?()=>{}:St,children:(0,i.jsx)(Qe.Z,{className:rn()(m.drawer,m.drawerWidth,{[m.drawerOpen]:Nt}),children:c})})})]})},Xi=r=>{var e;const n=(0,xe.$E)((e=r.sidebarOptions)!==null&&e!==void 0?e:{});var s;const a=(0,xe.rW)((s=r.submenuOptions)!==null&&s!==void 0?s:{}),{children:c,disableExpandOnHover:m,openDelayMs:v,closeDelayMs:I}=r,{isMobile:W}=(0,ir.Pf)();return W?(0,i.jsx)(Qi,{children:c}):(0,i.jsx)(xe.kG.Provider,{value:{sidebarConfig:n,submenuConfig:a},children:(0,i.jsx)(Ji,{openDelayMs:v,closeDelayMs:I,disableExpandOnHover:m,children:c})})};function _i(){const{sidebarConfig:r}=(0,d.useContext)(xe.kG),{focusContent:e,contentRef:n}=(0,Hr.r)(),s=Xr({sidebarConfig:r});return n!=null&&n.current?(0,i.jsx)(C.Z,{onClick:e,variant:"contained",className:rn()(s.visuallyHidden),children:"Skip to content"}):null}var qi=t(26739),lo=t(1667),ta=t(83543),ea=t(59797),qr=t(98989);const na=(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"}),oa=r=>{const{isOpen:e}=rr(),{sidebarConfig:n,submenuConfig:s}=(0,d.useContext)(xe.kG),a=e?n.drawerWidthOpen:n.drawerWidthClosed,c=na({left:a,submenuConfig:s}),{isHoveredOn:m}=(0,d.useContext)(xe.Ag),[v,I]=(0,d.useState)(!1);return(0,d.useEffect)(()=>{I(m)},[m]),(0,i.jsxs)(Qe.Z,{className:rn()(c.drawer,{[c.drawerOpen]:v}),children:[(0,i.jsx)(sr.Z,{variant:"h5",component:"span",className:c.title,children:r.title}),r.children]})};var ra=t(19126),ts=t.n(ra);function es(r,e,n=!1){const s=new URLSearchParams(e.search).toString(),a=ts().parse(s),c=new URLSearchParams(r.search).toString(),m=ts().parse(c),v=n?vn.isEqual:vn.isMatch;return(0,vn.isEqual)(e.pathname,r.pathname)&&v(m,a)}const sa=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 co(r){return(0,d.useMemo)(()=>sa(r),[r])()}const ia=(r,e)=>(0,oo.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:m})=>s=s||es(e,(0,Sn.i3)(m)));return}a&&(s=es(e,(0,Sn.i3)(a)))}}),s},[e.pathname]);function ar(r){return r.to===void 0}const aa=d.createElement(oa).type,la=d.forwardRef(function({to:e,end:n,style:s,className:a,activeStyle:c,caseSensitive:m,activeClassName:v="active","aria-current":I="page",...W},et){let{pathname:st}=(0,y.TH)(),{pathname:pt}=(0,y.WU)(e);m||(st=st.toLocaleLowerCase("en-US"),pt=pt.toLocaleLowerCase("en-US"));let Et=st===pt;!Et&&!n&&(Et=st.startsWith(`${pt}/`));const St=Et?I:void 0;return(0,i.jsx)(E.rU,{...W,to:e,ref:et,"aria-current":St,style:{...s,...Et?c:void 0},className:rn()([typeof a!="function"?a:void 0,Et?v:void 0])})}),ns=(0,d.forwardRef)((r,e)=>{const{icon:n,text:s,hasNotifications:a=!1,hasSubmenu:c=!1,disableHighlight:m=!1,onClick:v,noTrack:I,children:W,className:et,...st}=r,{sidebarConfig:pt}=(0,d.useContext)(xe.kG),Et=co(pt),{isOpen:St}=rr(),Nt=!St&&c?{display:"flex",marginLeft:"20px"}:{lineHeight:"0"},Vt=(0,i.jsxs)(Qe.Z,{style:Nt,children:[(0,i.jsx)(n,{fontSize:"small"}),!St&&c?(0,i.jsx)(qr.Z,{fontSize:"small"}):(0,i.jsx)(i.Fragment,{})]}),qt=(0,i.jsx)(qi.Z,{color:"secondary",variant:"dot",overlap:"circular",invisible:!a,className:rn()({[Et.closedItemIcon]:!St}),children:Vt}),he=(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(Qe.Z,{"data-testid":"login-button",className:Et.iconContainer,children:qt}),s&&(0,i.jsx)(sr.Z,{variant:"subtitle2",component:"span",className:Et.label,children:s}),(0,i.jsx)("div",{className:Et.secondaryAction,children:W})]}),ze=St?he:qt,In={onClick:v,className:rn()(et,Et.root,St?Et.open:Et.closed,ar(r)&&Et.buttonItem,{[Et.highlightable]:!m})},is=(0,Cr.z)(),{pathname:lr}=(0,y.WU)(!ar(r)&&r.to?r.to:""),as=(0,d.useCallback)(Ta=>{if(!I){const Ia="click",Da=s!=null?s:"Sidebar Item",La=lr?{attributes:{to:lr}}:void 0;is.captureEvent(Ia,Da,La)}v==null||v(Ta)},[is,s,lr,I,v]);return ar(r)?(0,i.jsx)(C.Z,{role:"button","aria-label":s,...In,ref:e,onClick:as,children:ze}):(0,i.jsx)(la,{...In,activeClassName:Et.selected,to:r.to?r.to:"",ref:e,"aria-label":s||r.to,...st,onClick:as,children:ze})}),ca=({children:r,...e})=>{const{sidebarConfig:n}=(0,d.useContext)(xe.kG),s=co(n),[a,c]=(0,d.useState)(!1),m=(0,y.TH)(),v=ia(r,m),I=(0,Gr.Z)(pt=>pt.breakpoints.down("sm")),W=()=>{c(!0)},et=()=>{c(!1)},st=()=>I?a?(0,i.jsx)(ea.Z,{fontSize:"small",className:s.submenuArrow}):(0,i.jsx)(ta.Z,{fontSize:"small",className:s.submenuArrow}):!a&&(0,i.jsx)(qr.Z,{fontSize:"small",className:s.submenuArrow});return(0,i.jsx)(xe.Ag.Provider,{value:{isHoveredOn:a,setIsHoveredOn:c},children:(0,i.jsxs)("div",{"data-testid":"item-with-submenu",onMouseLeave:et,onTouchStart:a?et:W,onMouseEnter:W,className:rn()(a&&s.highlighted),children:[(0,i.jsx)(ns,{hasSubmenu:!0,className:v?s.selected:"",...e,children:st()}),a&&r]})})},os=(0,d.forwardRef)((r,e)=>{const[n]=(0,oo.v)(r.children,s=>s.getElements().filter(a=>a.type===aa));return n?(0,i.jsx)(ca,{...r,children:n}):(0,i.jsx)(ns,{...r,ref:e})});function Ja(r){const{sidebarConfig:e}=useContext(SidebarConfigContext),[n,s]=useState(""),a=co(e),c=r.icon?r.icon:SearchIcon,m=()=>{r.onSearch(n),s("")},v=st=>{st.key==="Enter"&&(st.preventDefault(),m())},I=st=>{s(st.target.value)},W=st=>{st.preventDefault(),st.stopPropagation()},et=st=>{m(),st.preventDefault()};return _jsx(Box,{className:a.searchRoot,children:_jsx(os,{icon:c,to:r.to,onClick:et,disableHighlight:!0,children:_jsx(TextField,{placeholder:"Search",value:n,onClick:W,onChange:I,onKeyDown:v,className:a.searchContainer,InputProps:{disableUnderline:!0,className:a.searchField},inputProps:{className:a.searchFieldHTMLInput}})})})}const Xa=(0,lo.Z)("div")({flex:1},{name:"BackstageSidebarSpace"}),_a=(0,lo.Z)("div")({height:8},{name:"BackstageSidebarSpacer"}),da=(0,lo.Z)("hr")(({theme:r})=>({height:1,width:"100%",background:"#383838",border:"none",margin:r.spacing(1.2,0)}),{name:"BackstageSidebarDivider"}),ua=r=>({overflowY:"auto","&::-webkit-scrollbar":{backgroundColor:r.palette.background.default,width:"5px",borderRadius:"5px"},"&::-webkit-scrollbar-thumb":{backgroundColor:r.palette.text.secondary,borderRadius:"5px"}}),qa=(0,lo.Z)("div")(({theme:r})=>{const e=ua(r);return{flex:"0 1 auto",overflowX:"hidden",width:"calc(100% - 5px)",minHeight:"48px",overflowY:"hidden","@media (hover: none)":e,"&:hover":e}}),tl=()=>{const{sidebarConfig:r}=useContext(SidebarConfigContext),e=co(r),{isOpen:n,setOpen:s}=useSidebarOpenState();if(useMediaQuery(m=>m.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,{})})})},ha=(0,ke.Z)({root:{width:xe.po.drawerWidthClosed,height:3*xe.po.logoHeight,display:"flex",flexFlow:"row nowrap",alignItems:"center",marginBottom:-14},link:{width:xe.po.drawerWidthClosed,marginLeft:24}}),fa=()=>{const r=ha(),{isOpen:e}=rr();return(0,i.jsx)("div",{className:r.root,children:(0,i.jsx)(Kr.rU,{to:"/docs/default/component/local/",underline:"none",className:r.link,children:e?(0,i.jsx)(Bi,{}):(0,i.jsx)($i,{})})})},pa=({children:r})=>(0,i.jsxs)(Hr.t,{children:[(0,i.jsxs)(Xi,{children:[(0,i.jsx)(fa,{}),(0,i.jsx)(da,{}),(0,i.jsx)(os,{icon:Mi.Z,to:"/docs/default/component/local",text:"Docs Preview"})]}),r]});var ga=t(80030),va=t(32388),ma=t(4142),ya=t(65386),Ea=t(77873);const xa=(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 rs;(function(r){r.LIGHT="light",r.DARK="dark"})(rs||(rs={}));const Ca=()=>{const r=(0,An.h_)(Hn),e=xa(),[n,s]=(0,d.useState)(r.getActiveThemeId()==="dark"?"dark":"light"),a={light:{icon:ma.Z,title:"Dark theme"},dark:{icon:va.Z,title:"Light theme"}},{title:c,icon:m}=a[n],v=()=>{s(I=>{const W=I==="light"?"dark":"light";return r.setActiveThemeId(W),W})};return(0,i.jsx)(Qe.Z,{display:"flex",alignItems:"center",mr:2,children:(0,i.jsx)(ga.ZP,{title:c,arrow:!0,children:(0,i.jsx)(Vr.Z,{size:"small",onClick:v,children:(0,i.jsx)(m,{className:e.headerIcon})})})})},Aa=()=>(0,i.jsxs)(p.I6,{children:[(0,i.jsx)(ya.S,{}),(0,i.jsx)(Ea.F,{withSearch:!1})]}),Sa=(0,i.jsx)(Aa,{}),ss=ni({apis:wi,configLoader:Li,plugins:Object.values(o)}),ba=ss.getProvider(),Oa=ss.getRouter(),Pa=p.s4.provide((0,g.KY)({name:"ThemeToggleAddon",component:Ca,location:b.o.Header})),Ra=(0,i.jsxs)(Ir,{children:[(0,i.jsx)(y.Fg,{to:"/docs/default/component/local/"},"/"),(0,i.jsx)(y.AW,{path:"/catalog/:namespace/:kind/:name",element:(0,i.jsx)(Oi,{})}),(0,i.jsx)(y.AW,{path:"/docs",element:(0,i.jsx)(p.Jl,{}),children:(0,i.jsx)(l.u,{})}),(0,i.jsxs)(y.AW,{path:"/docs/:namespace/:kind/:name/*",element:(0,i.jsx)(p.I6,{}),children:[Sa,(0,i.jsx)(g.DR,{children:(0,i.jsx)(Pa,{})})]})]});var wa=()=>(0,i.jsx)(ba,{children:(0,i.jsx)(Oa,{children:(0,i.jsx)(pa,{children:Ra})})});S.createRoot(document.getElementById("root")).render((0,i.jsx)(wa,{}))},29651:function(X,P,t){"use strict";t.d(P,{CT:function(){return d},Vt:function(){return S}});var o=t(2784),i=t(96087);function d(p){return(0,i.u)(p,()=>(0,o.createContext)(void 0))}function S(p){return(0,o.useContext)(d(p))}function y(p){return{set(l){globalThis[`__@backstage/${p}__`]=createContext(createVersionedValueMap(l))},reset(){delete globalThis[`__@backstage/${p}__`]}}}},68993:function(X,P,t){"use strict";t.d(P,{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(X,P,t){"use strict";t.d(P,{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=y=>`__@backstage/${y}__`;function S(y,p){const l=d(y);let g=i[l];return g||(g=p(),i[l]=g,g)}},88624:function(X,P,t){"use strict";t.d(P,{A:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"plugin.catalog.service"})},51271:function(X,P,t){"use strict";t.d(P,{X:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"plugin.catalog.entity-presentation"})},68203:function(X,P,t){"use strict";t.d(P,{n:function(){return $}});var o=t(74314),i=t(34106),d=t(43642),S=t(77224),y=t(15933),p=t(86737),l=t(78898),g=t(4989),b=t(44407),C=t(84219),R=t(98685),x=t(72579),A=t.n(x);const E=p.Z,B={api:y.Z,component:b.Z,system:S.Z,domain:d.Z,location:g.Z,user:R.Z,group:C.Z,template:l.Z};function $(T,u){const{kind:K,namespace:_,name:J,title:H,description:G,displayName:z,type:V}=w(T),ot=K&&B[K.toLocaleLowerCase("en-US")]||E,ht=(0,o.eE)({kind:K||"unknown",namespace:_||i.zG,name:J||"unknown"}),ut=j({kind:K,namespace:_,name:J,context:u}),mt=[z,H,ut].find(lt=>lt&&typeof lt=="string"),ft=[mt!==ht?ht:void 0,V,G].filter(lt=>lt&&typeof lt=="string").join(" | ");return{entityRef:ht,primaryTitle:mt,secondaryTitle:ft||void 0,Icon:ot}}function w(T){if(typeof T=="string"){let u=T.indexOf(":");const K=T.indexOf("/");K!==-1&&K<u&&(u=-1);const _=u===-1?void 0:T.slice(0,u),J=K===-1?void 0:T.slice(u+1,K),H=T.slice(Math.max(u+1,K+1));return{kind:_,namespace:J,name:H}}if(typeof T=="object"&&T!==null){const u=[A()(T,"kind")].find(V=>V&&typeof V=="string"),K=[A()(T,"metadata.namespace"),A()(T,"namespace")].find(V=>V&&typeof V=="string"),_=[A()(T,"metadata.name"),A()(T,"name")].find(V=>V&&typeof V=="string"),J=[A()(T,"metadata.title")].find(V=>V&&typeof V=="string"),H=[A()(T,"metadata.description")].find(V=>V&&typeof V=="string"),G=[A()(T,"spec.profile.displayName")].find(V=>V&&typeof V=="string"),z=[A()(T,"spec.type")].find(V=>V&&typeof V=="string");return{kind:u,namespace:K,name:_,title:J,description:H,displayName:G,type:z}}return{}}function j(T){var u,K,_,J,H;const G=((u=T.kind)===null||u===void 0?void 0:u.toLocaleLowerCase("en-US"))||"unknown",z=T.namespace||i.zG,V=T.name||"unknown",ot=(_=T.context)===null||_===void 0||(K=_.defaultKind)===null||K===void 0?void 0:K.toLocaleLowerCase("en-US"),ht=(H=T.context)===null||H===void 0||(J=H.defaultNamespace)===null||J===void 0?void 0:J.toLocaleLowerCase("en-US");let ut=V;return(ht&&z.toLocaleLowerCase("en-US")!==ht||z!==i.zG)&&(ut=`${z}/${ut}`),ot&&G.toLocaleLowerCase("en-US")!==ot&&(ut=`${G}:${ut}`),ut}},36802:function(X,P,t){"use strict";t.d(P,{p:function(){return i}});var o=t(95965);const i=(0,o.T)({id:"catalog-react.starred-entities"})},30389:function(X,P,t){"use strict";t.d(P,{_i:function(){return A}});var o=t(52322),i=t(2784),d=t(41156),S=t(60364),y=t(77277),p=t(4190),l=t(62774),g=t(90436),b=t(60905),C=t(36444);const R=E=>{var B;const $=(0,d.Z)(K=>{var _,J;return K.breakpoints.down((J=(_=E.options)===null||_===void 0?void 0:_.drawerBreakpoint)!==null&&J!==void 0?J:"md")}),w=(0,S.Z)(),[j,T]=(0,i.useState)(!1);var u;return $?(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(y.Z,{style:{marginTop:w.spacing(1),marginLeft:w.spacing(1)},onClick:()=>T(!0),startIcon:(0,o.jsx)(C.Z,{}),children:"Filters"}),(0,o.jsx)(p.ZP,{open:j,onClose:()=>T(!1),anchor:(u=(B=E.options)===null||B===void 0?void 0:B.drawerAnchor)!==null&&u!==void 0?u:"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:w.spacing(1)},children:"Filters"}),E.children]})})]}):(0,o.jsx)(b.Z,{item:!0,lg:2,children:E.children})},x=E=>(0,o.jsx)(b.Z,{item:!0,xs:12,lg:10,children:E.children}),A=E=>(0,o.jsx)(b.Z,{container:!0,style:{position:"relative"},children:E.children});A.Filters=R,A.Content=x},77605:function(X,P,t){"use strict";t.d(P,{K:function(){return G}});var o=t(52322),i=t(62774),d=t(90436),S=t(38016),y=t(88013),p=t(2784),l=t(44394),g=t(64279),b=t(88624),C=t(21324),R=t(5806),x=t(19996),A=t(25505);const E=(0,o.jsx)(A.Z,{fontSize:"small"}),B=(0,o.jsx)(x.Z,{fontSize:"small"});function $({selected:z}){return(0,o.jsx)(C.Z,{icon:E,checkedIcon:B,checked:z})}const w=(0,p.memo)(z=>{const{selected:V,value:ot,availableOptions:ht,showCounts:ut}=z,mt=ut?`${ot} (${ht==null?void 0:ht[ot]})`:ot;return(0,o.jsx)(R.Z,{control:(0,o.jsx)($,{selected:V}),label:mt,onClick:ft=>ft.preventDefault()})});var j=t(79692),T=t(86619),u=t(72779),K=t.n(u);const _=(0,j.Z)({input:{}},{name:"CatalogReactEntityAutocompletePickerInput"});function J(z){const V=_();return(0,o.jsx)(T.Z,{variant:"outlined",...z,className:K()(V.input,z.className)})}var H=t(25942);function G(z){var V;const{label:ot,name:ht,path:ut,showCounts:mt,Filter:ft,InputProps:lt,initialSelectedOptions:yt=[]}=z,{updateFilters:Y,filters:U,queryParameters:{[ht]:Q}}=(0,H.wp)(),tt=(0,l.h_)(b.A),{value:at}=(0,g.default)(async()=>{var gt;const wt=ut,{facets:Tt}=await tt.getEntityFacets({facets:[wt],filter:(gt=U.kind)===null||gt===void 0?void 0:gt.getCatalogFilters()});return Object.fromEntries(Tt[wt].map(({value:It,count:ae})=>[It,ae]))},[U.kind]),dt=(0,p.useMemo)(()=>[Q].flat().filter(Boolean),[Q]);var F;const[Z,Ct]=(0,p.useState)(dt.length?dt:(F=(V=U[ht])===null||V===void 0?void 0:V.values)!==null&&F!==void 0?F:yt);(0,p.useEffect)(()=>{dt.length&&Ct(dt)},[dt]);const At=Object.keys(at!=null?at:{}),ct=Z.length&&At.length;(0,p.useEffect)(()=>{Y({[ht]:ct?new ft(Z):void 0})},[ht,ct,Z,ft,Y]);const xt=U[ht];return xt&&typeof xt=="object"&&!("values"in xt)||!At.length||At.length<=1?null:(0,o.jsx)(i.Z,{pb:1,pt:1,children:(0,o.jsxs)(d.Z,{variant:"button",component:"label",children:[ot,(0,o.jsx)(y.ZP,{multiple:!0,disableCloseOnSelect:!0,options:At,value:Z,onChange:(gt,wt)=>Ct(wt),renderOption:(gt,{selected:wt})=>(0,o.jsx)(w,{selected:wt,value:gt,availableOptions:at,showCounts:!!mt}),size:"small",popupIcon:(0,o.jsx)(S.Z,{"data-testid":`${String(ht)}-picker-expand`}),renderInput:gt=>(0,o.jsx)(J,{...gt,...lt})})]})})}},63833:function(X,P,t){"use strict";t.d(P,{d:function(){return Y}});var o=t(52322),i=t(74314),d=t(79692),S=t(62774),y=t(90436),p=t(5806),l=t(21324),g=t(86619),b=t(19996),C=t(25505),R=t(38016),x=t(88013),A=t(2784),E=t(25942),B=t(4967),$=t(6232),w=t(98685),j=t(62367),T=t(86540),u=t(44394),K=t(69294),_=t(88624);function J({enabled:U}){const Q=(0,u.h_)(_.A),[tt]=(0,A.useState)(async()=>{if(!U)return[];const at="relations.ownedBy";return Q.getEntityFacets({facets:[at]}).then(dt=>dt.facets[at].map(F=>F.value).map(F=>{const{kind:Z,name:Ct,namespace:At}=(0,i.of)(F);return{apiVersion:"backstage.io/v1beta1",kind:Z,metadata:{name:Ct,namespace:At}}}).sort((F,Z)=>(F.metadata.namespace||"").localeCompare(Z.metadata.namespace||"","en-US")||F.metadata.name.localeCompare(Z.metadata.name,"en-US")||F.kind.localeCompare(Z.kind,"en-US"))).catch(()=>[])});return(0,K.default)(async(at,dt)=>{const F=await tt;if(!F)return{items:[]};var Z;const Ct=(Z=dt==null?void 0:dt.limit)!==null&&Z!==void 0?Z:20,{text:At,start:ct}=H(at),xt=F.filter(wt=>V(At,wt)),gt=ct+Ct;return{items:xt.slice(0,gt),...z({entities:xt,limit:gt,payload:{text:At,start:gt}})}},[tt],{loading:!0,value:{items:[]}})}function H(U){return G(U)&&U.cursor?JSON.parse(atob(U.cursor)):{text:U.text||"",start:0}}function G(U){return!!U.cursor}function z({entities:U,limit:Q,payload:tt}){return U.length>Q?{cursor:btoa(JSON.stringify(tt))}:{}}function V(U,Q){var tt;const at=U.trim();return Q.kind.includes(at)||((tt=Q.metadata.namespace)===null||tt===void 0?void 0:tt.includes(at))||Q.metadata.name.includes(at)}function ot(){const U=(0,u.h_)(_.A);return(0,K.default)(async(Q,tt)=>{const at=Q,dt=Q;var F;const Z=(F=tt==null?void 0:tt.limit)!==null&&F!==void 0?F:20;if(dt.cursor){const At=await U.queryEntities({cursor:dt.cursor,limit:Z});return{cursor:At.pageInfo.nextCursor,items:[...dt.items,...At.items]}}const Ct=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:Z});return{cursor:Ct.pageInfo.nextCursor,items:Ct.items}},[],{loading:!0})}var ht=t(21638);function ut({mode:U,initialSelectedOwnersRefs:Q}){const tt=U==="owners-only",at=ot(),dt=J({enabled:tt}),[F,Z]=tt?dt:at;return[F,Z,mt({enabled:!tt,initialSelectedOwnersRefs:Q})]}function mt({enabled:U,initialSelectedOwnersRefs:Q}){const tt=(0,A.useRef)({}),at=(0,u.h_)(_.A),[,dt]=(0,K.default)(async()=>{(await at.getEntitiesByRefs({entityRefs:Q})).items.forEach(Z=>{Z&&(tt.current[(0,i.eE)(Z)]=Z)})},[]);return(0,ht.n)(()=>{U&&Q.length>0&&dt()}),{getEntity:F=>tt.current[F],setEntity:F=>{tt.current[(0,i.eE)(F)]=F}}}const ft=(0,d.Z)({input:{}},{name:"CatalogReactEntityOwnerPicker"}),lt=(0,o.jsx)(C.Z,{fontSize:"small"}),yt=(0,o.jsx)(b.Z,{fontSize:"small"}),Y=U=>{var Q,tt;const at=ft(),{mode:dt="owners-only"}=U||{},{updateFilters:F,filters:Z,queryParameters:{owners:Ct}}=(0,E.wp)(),[At,ct]=(0,A.useState)(""),xt=(0,A.useMemo)(()=>[Ct].flat().filter(Boolean),[Ct]);var gt;const[wt,Tt]=(0,A.useState)(xt.length?xt:(gt=(Q=Z.owners)===null||Q===void 0?void 0:Q.values)!==null&&gt!==void 0?gt:[]),[{value:It,loading:ae},te,fe]=ut({mode:dt,initialSelectedOwnersRefs:wt});(0,$.b)(()=>te({text:At}),[At,te],250);const kt=(It==null?void 0:It.items)||[];return(0,A.useEffect)(()=>{if(xt.length){const jt=new B.rf(xt);Tt(jt.values)}},[xt]),(0,A.useEffect)(()=>{F({owners:wt.length?new B.rf(wt):void 0})},[wt,F]),["user","group"].includes(((tt=Z.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)(y.Z,{variant:"button",component:"label",children:["Owner",(0,o.jsx)(x.ZP,{multiple:!0,disableCloseOnSelect:!0,loading:ae,options:kt,value:wt,getOptionSelected:(jt,Wt)=>typeof Wt=="string"?(0,i.eE)(jt)===Wt:jt===Wt,getOptionLabel:jt=>{const Wt=typeof jt=="string"?fe.getEntity(jt)||(0,i.of)(jt,{defaultKind:"group",defaultNamespace:"default"}):jt;return(0,T.w)(Wt,(0,T.$)(Wt))},onChange:(jt,Wt)=>{ct(""),Tt(Wt.map(zt=>{const Jt=typeof zt=="string"?zt:(0,i.eE)(zt);return typeof zt!="string"&&fe.setEntity(zt),Jt}))},filterOptions:jt=>jt,renderOption:(jt,{selected:Wt})=>{const zt=jt.kind.toLocaleLowerCase("en-US")==="group";return(0,o.jsx)(p.Z,{control:(0,o.jsx)(l.Z,{icon:lt,checkedIcon:yt,checked:Wt}),onClick:Jt=>Jt.preventDefault(),label:(0,o.jsxs)(S.Z,{display:"flex",flexWrap:"wrap",alignItems:"center",children:[zt?(0,o.jsx)(j.Z,{fontSize:"small"}):(0,o.jsx)(w.Z,{fontSize:"small"}),"\xA0",(0,T.w)(jt,(0,T.$)(jt,{defaultKind:jt.kind}))]})})},size:"small",popupIcon:(0,o.jsx)(R.Z,{"data-testid":"owner-picker-expand"}),renderInput:jt=>(0,o.jsx)(g.Z,{...jt,className:at.input,onChange:Wt=>{ct(Wt.currentTarget.value)},variant:"outlined"}),ListboxProps:{onScroll:jt=>{const Wt=jt.currentTarget;Math.abs(Wt.scrollHeight-Wt.clientHeight-Wt.scrollTop)<1&&(It!=null&&It.cursor)&&te({items:It.items,cursor:It.cursor})},"data-testid":"owner-picker-listbox"}})]})})}},84719:function(X,P,t){"use strict";t.d(P,{d:function(){return j}});var o=t(52322),i=t(74314),d=t(34106),S=t(98864),y=t(37321),p=t(2784),l=t(36434),g=t(79692),b=t(62774),C=t(80030),R=t(44394),x=t(51271),A=t(68203);function E(u,K,_){const[J,H]=(0,p.useState)(u);return(0,p.useEffect)(()=>{H(u);const G=K==null?void 0:K.subscribe({next:z=>{H(z)},complete:()=>{G==null||G.unsubscribe()}});return()=>{G==null||G.unsubscribe()}},_),J}function B(u,K){const J=(0,R.I_)().get(x.X),H=[J,JSON.stringify(u),JSON.stringify(K||null)],G=(0,p.useMemo)(()=>J?J.forEntity(typeof u=="string"||"metadata"in u?u:(0,i.eE)(u),K):{snapshot:(0,A.n)(u,K)},H);return E(G.snapshot,G.update$,[G])}const $=(0,g.Z)(u=>({root:{display:"inline-flex",alignItems:"center"},icon:{marginLeft:u.spacing(.5),color:u.palette.text.secondary,lineHeight:0}}),{name:"CatalogReactEntityDisplayName"}),w=u=>{const{entityRef:K,noIcon:_,noTooltip:J,defaultKind:H,defaultNamespace:G}=u,z=$(),{primaryTitle:V,secondaryTitle:ot,Icon:ht}=B(K,{defaultKind:H,defaultNamespace:G});let ut=(0,o.jsx)(o.Fragment,{children:V});return ut=(0,o.jsxs)(b.Z,{component:"span",className:z.root,children:[ut,ht&&!_?(0,o.jsx)(b.Z,{component:"span",className:z.icon,children:(0,o.jsx)(ht,{fontSize:"inherit"})}):null]}),ot&&!J&&(ut=(0,o.jsx)(C.ZP,{enterDelay:1500,title:ot,children:ut})),ut},j=(0,p.forwardRef)((u,K)=>{const{entityRef:_,defaultKind:J,defaultNamespace:H,title:G,children:z,...V}=u,ot=T(u.entityRef);var ht;const ut=(ht=z!=null?z:G)!==null&&ht!==void 0?ht:(0,o.jsx)(w,{entityRef:_,defaultKind:J,defaultNamespace:H});return(0,o.jsx)(S.rU,{...V,ref:K,to:ot,children:ut})});function T(u){const K=(0,y.t)(l.w);let _,J,H;if(typeof u=="string"){const V=(0,i.of)(u);_=V.kind,J=V.namespace,H=V.name}else"metadata"in u?(_=u.kind,J=u.metadata.namespace,H=u.metadata.name):(_=u.kind,J=u.namespace,H=u.name);_=_.toLocaleLowerCase("en-US");var G;J=(G=J==null?void 0:J.toLocaleLowerCase("en-US"))!==null&&G!==void 0?G:d.zG;const z={kind:encodeURIComponent(_),namespace:encodeURIComponent(J),name:encodeURIComponent(H)};return K(z)}},51194:function(X,P,t){"use strict";t.d(P,{r:function(){return y}});var o=t(52322),i=t(74314),d=t(2784),S=t(84719);function y(p){const{entityRefs:l,...g}=p;return(0,o.jsx)(o.Fragment,{children:l.map((b,C)=>{const R=typeof b=="string"?b:(0,i.eE)(b);return(0,o.jsxs)(d.Fragment,{children:[C>0&&", ",(0,o.jsx)(S.d,{...g,entityRef:b})]},`${C}.${R}`)})})}},86540:function(X,P,t){"use strict";t.d(P,{$:function(){return S},w:function(){return y}});var o=t(34106),i=t(72579),d=t.n(i);function S(p,l){const g=l==null?void 0:l.defaultKind;let b,C,R;return"metadata"in p?(b=p.kind,C=p.metadata.namespace,R=p.metadata.name):(b=p.kind,C=p.namespace,R=p.name),(C===void 0||C==="")&&(C=o.zG),(l==null?void 0:l.defaultNamespace)!==void 0?(l==null?void 0:l.defaultNamespace)===C&&(C=void 0):C===o.zG&&(C=void 0),b=b.toLocaleLowerCase("en-US"),b=g&&g.toLocaleLowerCase("en-US")===b?void 0:b,`${b?`${b}:`:""}${C?`${C}/`:""}${R}`}function y(p,l){for(const g of["spec.profile.displayName","metadata.title"]){const b=d()(p,g);if(b&&typeof b=="string")return b}return l}},97894:function(X,P,t){"use strict";t.d(P,{x:function(){return l}});var o=t(52322),i=t(79692),d=t(2784),S=t(4967),y=t(77605);const p=(0,i.Z)({input:{}},{name:"CatalogReactEntityTagPicker"}),l=g=>{const b=p();return(0,o.jsx)(y.K,{label:"Tags",name:"tags",path:"metadata.tags",Filter:S.Cu,showCounts:g.showCounts,InputProps:{className:b.input}})}},32494:function(X,P,t){"use strict";t.d(P,{E:function(){return mt}});var o=t(52322),i=t(44394),d=t(6542),S=t(79692),y=t(94339),p=t(90436),l=t(11776),g=t(12231),b=t(86136),C=t(49378),R=t(9520),x=t(47603),A=t(11640),E=t(2784),B=t(4967),$=t(25942),w=t(77186),j=t(76635),T=t(64279),u=t(88624),K=t(64039),_=t(69294);function J(){const ft=(0,i.h_)(w.$),lt=(0,i.h_)(u.A),{filters:yt}=(0,$.wp)(),{value:Y,loading:U}=(0,T.default)(async()=>(await ft.getBackstageIdentity()).ownershipEntityRefs,[]),Q=(0,E.useRef)(),tt=(0,E.useMemo)(()=>{const{user:At,owners:ct,...xt}=yt,gt=(0,j.compact)(Object.values(xt)),wt=(0,K.wq)(gt),{["metadata.name"]:Tt,...It}=wt,ae=H(ct,Y);if((Y==null?void 0:Y.length)===0||ae===void 0||Object.keys(It).length===0){Q.current=void 0;return}const te={filter:{...It,"relations.ownedBy":ae},limit:0};return(0,j.isEqual)(te,Q.current)?Q.current:(Q.current=te,te)},[yt,Y]),[{value:at,loading:dt},F]=(0,_.default)(async(At,ct)=>{if(ct&&!At)return 0;const{totalItems:xt}=await lt.queryEntities(At);return xt},[],{loading:!0});(0,E.useEffect)(()=>{if(Y){if(tt&&Object.keys(tt).length===0)return;F(tt,Y)}},[F,tt,Y]);const Z=U||dt,Ct=(0,E.useMemo)(()=>B.t$.owned(Y!=null?Y:[]),[Y]);return{count:at,loading:Z,filter:Ct,ownershipEntityRefs:Y}}function H(ft,lt){if(lt===void 0)return;var yt;const Y=(yt=ft==null?void 0:ft.values)!==null&&yt!==void 0?yt:[];if(Y.length){const U=(0,j.intersection)(Y,lt);return U.length===0?void 0:U}return lt}function G(){const ft=(0,i.h_)(u.A),{filters:lt}=(0,$.wp)(),yt=(0,E.useRef)(),Y=(0,E.useMemo)(()=>{const{user:tt,...at}=lt,dt=(0,j.compact)(Object.values(at)),F=(0,K.wq)(dt),Z={filter:F,limit:0};return Object.keys(F).length===0?(yt.current=void 0,yt.current):(0,j.isEqual)(Z,yt.current)?yt.current:(yt.current=Z,Z)},[lt]),{value:U,loading:Q}=(0,T.default)(async()=>{if(Y===void 0)return 0;const{totalItems:tt}=await ft.queryEntities(Y);return tt},[Y]);return{count:U,loading:Q}}var z=t(74314),V=t(42870);function ot(){const ft=(0,i.h_)(u.A),{filters:lt}=(0,$.wp)(),{starredEntities:yt}=(0,V.C)(),Y=(0,E.useRef)(),U=(0,E.useMemo)(()=>{const{user:dt,...F}=lt,Z=(0,j.compact)(Object.values(F)),ct={filter:{...(0,K.wq)(Z),["metadata.name"]:Array.from(yt).map(xt=>(0,z.of)(xt).name)},limit:1e3};return(0,j.isEqual)(ct,Y.current)?Y.current:(Y.current=ct,ct)},[lt,yt]),{value:Q,loading:tt}=(0,T.default)(async()=>yt.size?(await ft.queryEntities(U)).items.map(F=>(0,z.eE)({kind:F.kind,namespace:F.metadata.namespace,name:F.metadata.name})).filter(F=>yt.has(F)).length:0,[U,yt]),at=(0,E.useMemo)(()=>B.t$.starred(Array.from(yt)),[yt]);return{count:Q,loading:tt,filter:at}}const ht=(0,S.Z)(ft=>({root:{backgroundColor:"rgba(0, 0, 0, .11)",boxShadow:"none",margin:ft.spacing(1,0,1,0)},title:{margin:ft.spacing(1,0,0,1),textTransform:"uppercase",fontSize:12,fontWeight:"bold"},listIcon:{minWidth:30,color:ft.palette.text.primary},menuItem:{minHeight:ft.spacing(6)},groupWrapper:{margin:ft.spacing(1,1,2,1)}}),{name:"CatalogReactUserListPicker"});function ut(ft){return[{name:"Personal",items:[{id:"owned",label:"Owned",icon:x.Z},{id:"starred",label:"Starred",icon:A.Z}]},{name:ft!=null?ft:"Company",items:[{id:"all",label:"All"}]}]}const mt=ft=>{const{initialFilter:lt,availableFilters:yt}=ft,Y=ht(),U=(0,i.h_)(d.D);var Q;const tt=(Q=U.getOptionalString("organization.name"))!==null&&Q!==void 0?Q:"Company",{filters:at,updateFilters:dt,queryParameters:{kind:F,user:Z}}=(0,$.wp)(),Ct=["starred","all"],At=ut(tt).map(zt=>({...zt,items:zt.items.filter(({id:Jt})=>["group","user"].some(ge=>ge===F)?Ct.includes(Jt):!yt||yt.includes(Jt))})).filter(({items:zt})=>!!zt.length),{count:ct,loading:xt,filter:gt}=J(),{count:wt}=G(),{count:Tt,filter:It,loading:ae}=ot(),te=(0,E.useMemo)(()=>[Z].flat()[0],[Z]),[fe,kt]=(0,E.useState)(te!=null?te:lt),jt=(0,E.useMemo)(()=>({all:wt,starred:Tt,owned:ct}),[Tt,ct,wt]);(0,E.useEffect)(()=>{te&&kt(te)},[te]);const Wt=xt||ae;return(0,E.useEffect)(()=>{!Wt&&fe&&fe!=="all"&&jt[fe]===0&&kt("all")},[Wt,jt,fe,kt]),(0,E.useEffect)(()=>{if(!fe||Wt)return;dt({user:(()=>fe==="owned"?gt:fe==="starred"?It:B.t$.all())()})},[fe,It,gt,dt,Wt]),(0,o.jsx)(y.Z,{className:Y.root,children:At.map(zt=>(0,o.jsxs)(E.Fragment,{children:[(0,o.jsx)(p.Z,{variant:"subtitle2",component:"span",className:Y.title,children:zt.name}),(0,o.jsx)(y.Z,{className:Y.groupWrapper,children:(0,o.jsx)(l.Z,{disablePadding:!0,dense:!0,role:"menu","aria-label":zt.name,children:zt.items.map(Jt=>{var ge,Oe;return(0,o.jsxs)(g.Z,{role:"none presentation",button:!0,divider:!0,onClick:()=>kt(Jt.id),selected:Jt.id===((ge=at.user)===null||ge===void 0?void 0:ge.value),className:Y.menuItem,disabled:jt[Jt.id]===0,"data-testid":`user-picker-${Jt.id}`,tabIndex:0,ContainerProps:{role:"menuitem"},children:[Jt.icon&&(0,o.jsx)(b.Z,{className:Y.listIcon,children:(0,o.jsx)(Jt.icon,{fontSize:"small"})}),(0,o.jsx)(C.Z,{children:(0,o.jsxs)(p.Z,{variant:"body1",children:[Jt.label," "]})}),(0,o.jsx)(R.Z,{children:(Oe=jt[Jt.id])!==null&&Oe!==void 0?Oe:"-"})]},Jt.id)})})})]},zt.name))})}},4967:function(X,P,t){"use strict";t.d(P,{A5:function(){return B},Bf:function(){return p},Cu:function(){return l},IZ:function(){return A},Qe:function(){return R},SZ:function(){return g},mM:function(){return E},rf:function(){return b},t$:function(){return x},zH:function(){return C},zo:function(){return y}});var o=t(87612),i=t(8709),d=t(74314),S=t(75435);class y{getCatalogFilters(){return{kind:this.value}}toQueryValue(){return this.value}constructor(w){(0,o._)(this,"value",void 0),this.value=w}}class p{getTypes(){return Array.isArray(this.value)?this.value:[this.value]}getCatalogFilters(){return{"spec.type":this.getTypes()}}toQueryValue(){return this.getTypes()}constructor(w){(0,o._)(this,"value",void 0),this.value=w}}class l{filterEntity(w){return this.values.every(j=>{var T;return((T=w.metadata.tags)!==null&&T!==void 0?T:[]).includes(j)})}getCatalogFilters(){return{"metadata.tags":this.values}}toQueryValue(){return this.values}constructor(w){(0,o._)(this,"values",void 0),this.values=w}}class g{filterEntity(w){const j=this.toUpperArray(this.value.split(/\s/)),T=this.toUpperArray([w.metadata.tags]),u=this.toUpperArray([w.metadata.name,w.metadata.title]);for(const K of j)if(T.every(_=>_!==K)&&u.every(_=>!_.includes(K)))return!1;return!0}toUpperArray(w){return w.flat().filter(j=>Boolean(j)).map(j=>j.toLocaleUpperCase("en-US"))}constructor(w){(0,o._)(this,"value",void 0),this.value=w}}class b{getCatalogFilters(){return{"relations.ownedBy":this.values}}filterEntity(w){return this.values.some(j=>(0,S.h)(w,i.S4).some(T=>(0,d.eE)(T)===j))}toQueryValue(){return this.values}constructor(w){(0,o._)(this,"values",void 0),this.values=w.reduce((j,T)=>{try{return j.push((0,d.eE)((0,d.of)(T,{defaultKind:"Group"}))),j}catch{return j}},[])}}class C{getCatalogFilters(){return{"spec.lifecycle":this.values}}filterEntity(w){return this.values.some(j=>{var T;return((T=w.spec)===null||T===void 0?void 0:T.lifecycle)===j})}toQueryValue(){return this.values}constructor(w){(0,o._)(this,"values",void 0),this.values=w}}class R{getCatalogFilters(){return{"metadata.namespace":this.values}}filterEntity(w){return this.values.some(j=>w.metadata.namespace===j)}toQueryValue(){return this.values}constructor(w){(0,o._)(this,"values",void 0),this.values=w}}class x{static owned(w){return new x("owned",w)}static all(){return new x("all")}static starred(w){return new x("starred",w)}getCatalogFilters(){if(this.value==="owned"){var w;return{"relations.ownedBy":(w=this.refs)!==null&&w!==void 0?w:[]}}if(this.value==="starred"){var j,T;return{"metadata.name":(T=(j=this.refs)===null||j===void 0?void 0:j.map(u=>(0,d.of)(u).name))!==null&&T!==void 0?T:[]}}return{}}filterEntity(w){if(this.value==="starred"){var j,T;return(T=(j=this.refs)===null||j===void 0?void 0:j.includes((0,d.eE)(w)))!==null&&T!==void 0?T:!0}if(this.value==="owned"){var u;const _=(0,S.h)(w,i.S4);var K;return(K=(u=this.refs)===null||u===void 0?void 0:u.some(J=>_.some(H=>(0,d.eE)(H)===J)))!==null&&K!==void 0?K:!1}return!0}toQueryValue(){return this.value}constructor(w,j){(0,o._)(this,"value",void 0),(0,o._)(this,"refs",void 0),this.value=w,this.refs=j}}class A{filterEntity(w){switch(this.value){case"owned":return this.isOwnedEntity(w);case"starred":return this.isStarredEntity(w);default:return!0}}toQueryValue(){return this.value}constructor(w,j,T){(0,o._)(this,"value",void 0),(0,o._)(this,"isOwnedEntity",void 0),(0,o._)(this,"isStarredEntity",void 0),this.value=w,this.isOwnedEntity=j,this.isStarredEntity=T}}class E{getCatalogFilters(){return this.value?{"metadata.annotations.backstage.io/orphan":String(this.value)}:{}}filterEntity(w){var j;const T=(j=w.metadata.annotations)===null||j===void 0?void 0:j["backstage.io/orphan"];return T!==void 0&&this.value.toString()===T}constructor(w){(0,o._)(this,"value",void 0),this.value=w}}class B{filterEntity(w){var j,T;const u=(w==null||(T=w.status)===null||T===void 0||(j=T.items)===null||j===void 0?void 0:j.length)>0;return u!==void 0&&this.value===u}constructor(w){(0,o._)(this,"value",void 0),this.value=w}}},25942:function(X,P,t){"use strict";t.d(P,{UO:function(){return B},wp:function(){return $}});var o=t(52322),i=t(76635),d=t.n(i),S=t(19126),y=t.n(S),p=t(2784),l=t(73557),g=t(69294),b=t(48760),C=t(90736),R=t(88624),x=t(64039),A=t(44394);const E=(0,p.createContext)(void 0),B=w=>{const j=(0,C.default)(),T=(0,A.h_)(R.A),[u,K]=(0,p.useState)({}),_=(0,l.TH)(),J=(0,p.useMemo)(()=>{var mt;return(mt=y().parse(_.search,{ignoreQueryPrefix:!0}).filters)!==null&&mt!==void 0?mt:{}},[_]),[H,G]=(0,p.useState)(()=>({appliedFilters:{},entities:[],backendEntities:[]})),[{loading:z,error:V},ot]=(0,g.default)(async()=>{const mt=(0,i.compact)(Object.values(u)),ft=(0,x.Gz)(mt),lt=(0,x.Oq)(mt),yt=(0,x.Oq)((0,i.compact)(Object.values(H.appliedFilters))),Y=Object.keys(u).reduce((Q,tt)=>{const at=u[tt];return at!=null&&at.toQueryValue&&(Q[tt]=at.toQueryValue()),Q},{});if((0,i.isEqual)(yt,lt))G({appliedFilters:u,backendEntities:H.backendEntities,entities:H.backendEntities.filter(ft)});else{const Q=await T.getEntities({filter:lt});G({appliedFilters:u,backendEntities:Q.items,entities:Q.items.filter(ft)})}if(j()){var U;const Q=y().parse(_.search,{ignoreQueryPrefix:!0}),tt=y().stringify({...Q,filters:Y},{addQueryPrefix:!0,arrayFormat:"repeat"}),at=`${window.location.pathname}${tt}`;(U=window.history)===null||U===void 0||U.replaceState(null,document.title,at)}},[T,J,u,H],{loading:!0});(0,b.Z)(ot,10,[u]);const ht=(0,p.useCallback)(mt=>{K(ft=>{const lt=typeof mt=="function"?mt(ft):mt;return{...ft,...lt}})},[]),ut=(0,p.useMemo)(()=>({filters:H.appliedFilters,entities:H.entities,backendEntities:H.backendEntities,updateFilters:ht,queryParameters:J,loading:z,error:V}),[H,ht,J,z,V]);return(0,o.jsx)(E.Provider,{value:ut,children:w.children})};function $(){const w=(0,p.useContext)(E);if(!w)throw new Error("useEntityList must be used within EntityListProvider");return w}},42870:function(X,P,t){"use strict";t.d(P,{C:function(){return l}});var o=t(74314),i=t(44394),d=t(2784),S=t(72164),y=t(36802);function p(g){return typeof g=="string"?g:(0,o.eE)(g)}function l(){const g=(0,i.h_)(y.p),b=(0,S.Z)((0,d.useMemo)(()=>g.starredEntitie$(),[g]),new Set),C=(0,d.useCallback)(x=>b.has(p(x)),[b]),R=(0,d.useCallback)(x=>g.toggleStarred(p(x)).then(),[g]);return{starredEntities:b,toggleStarredEntity:R,isStarredEntity:C}}},36434:function(X,P,t){"use strict";t.d(P,{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(y){var p,l;return{kind:y.kind.toLocaleLowerCase("en-US"),namespace:(l=(p=y.metadata.namespace)===null||p===void 0?void 0:p.toLocaleLowerCase("en-US"))!==null&&l!==void 0?l:DEFAULT_NAMESPACE,name:y.metadata.name}}},64039:function(X,P,t){"use strict";t.d(P,{Gz:function(){return S},Oq:function(){return d},wq:function(){return i}});var o=t(4967);function i(y){return y.reduce((p,l)=>({...p,...l.getCatalogFilters?l.getCatalogFilters():{}}),{})}function d(y){const p={};return y.forEach(l=>{var g;l instanceof o.Cu||l instanceof o.rf||l instanceof o.zH||l instanceof o.Qe||l instanceof o.t$||l instanceof o.mM||l instanceof o.SZ||l instanceof o.IZ||Object.assign(p,((g=l.getCatalogFilters)===null||g===void 0?void 0:g.call(l))||{})}),p}function S(y){return p=>y.every(l=>!l.filterEntity||l.filterEntity(p))}},75435:function(X,P,t){"use strict";t.d(P,{h:function(){return i}});var o=t(74314);function i(d,S,y){var p;let l=(d==null||(p=d.relations)===null||p===void 0?void 0:p.filter(g=>g.type===S).map(g=>(0,o.of)(g.targetRef)))||[];return y!=null&&y.kind&&(l=l.filter(g=>g.kind.toLocaleLowerCase("en-US")===y.kind.toLocaleLowerCase("en-US"))),l}},65524:function(X,P,t){"use strict";t.d(P,{yw:function(){return g},ql:function(){return C},_Z:function(){return R},jU:function(){return b}});var o=t(87612),i=t(92918);let d=i.K,S=d;class y{toString(){return`routeRef{type=external,id=${this.id}}`}constructor(A,E,B){(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=A,this.params=E,this.optional=B,this[d]="external"}}function p(x){var A;return new y(x.id,(A=x.params)!==null&&A!==void 0?A:[],Boolean(x.optional))}var l=t(30283);const g=p({id:"create-component",optional:!0}),b=p({id:"view-techdoc",optional:!0,params:["namespace","kind","name"]}),C=p({id:"create-from-template",optional:!0,params:["namespace","templateName"]}),R=(0,l.N)({id:"catalog"})},76079:function(X,P,t){"use strict";t.d(P,{F:function(){return y}});var o=t(52322),i=t(2784),d=t(79692);const S=(0,d.Z)(()=>({highlight:{}}),{name:"BackstageHighlightedSearchResultText"}),y=p=>{const{text:l,preTag:g,postTag:b}=p,C=S(),R=(0,i.useMemo)(()=>l.split(new RegExp(`(${g}.+?${b})`)),[b,g,l]);return(0,o.jsx)(o.Fragment,{children:R.map((x,A)=>x.includes(g)?(0,o.jsx)("mark",{className:C.highlight,children:x.replace(new RegExp(`${g}|${b}`,"g"),"")},A):x)})}},53945:function(X,P,t){"use strict";t.d(P,{E5:function(){return b}});var o=t(52322),i=t(2784),d=t(62369),S=t(82963),y=t(38402);const p="search.results.list.items.extensions.v1",l=(x,A)=>{for(const E of x){if(!isValidElement(E))continue;const B=getComponentData(E,p);if(B!=null&&B(A))return cloneElement(E,{rank:A.rank,highlight:A.highlight,result:A.document,...E.props})}return null},g=x=>{const{rank:A,result:E,noTrack:B,children:$,alignItems:w="flex-start",...j}=x,T=(0,d.z)(),u=(0,i.useCallback)(()=>{B||E&&T.captureEvent("discover",E.title,{attributes:{to:E.location},value:A})},[A,E,B,T]);return(0,o.jsx)(y.Z,{divider:!0,alignItems:w,onClickCapture:u,...j,children:$})},b=x=>{const{name:A,component:E,predicate:B=()=>!0}=x;return(0,S.YO)({name:A,component:{lazy:()=>E().then($=>w=>(0,o.jsx)(g,{rank:w.rank,result:w.result,noTrack:w.noTrack,children:(0,i.createElement)($,w)}))},data:{[p]:B}})},C=x=>{const A=useElementFilter(x,E=>E.selectByComponentData({key:p}).getElements(),[x]);return useCallback((E,B)=>{const $=l(A,E);return _jsx(Fragment,{children:$!=null?$:_jsx(g,{rank:E.rank,result:E.document,children:_jsx(DefaultResultListItem,{rank:E.rank,highlight:E.highlight,result:E.document})})},B)},[A])},R=x=>{const{results:A,children:E,...B}=x,$=C(E);return _jsx(List,{...B,children:A.map($)})}},2296:function(X,P,t){"use strict";t.d(P,{$L:function(){return B},DR:function(){return b},KY:function(){return R},Zz:function(){return g},jM:function(){return l}});var o=t(52322),i=t(2784),d=t(73557),S=t(62584),y=t(82963),p=t(2532);const l="techdocs.addons.addon.v1",g="techdocs.addons.wrapper.v1",b=()=>null;(0,S.R)(b,g,!0);const C=$=>`${l}.${$.toLocaleLowerCase("en-US")}`;function R($){const{name:w,component:j}=$;return(0,y.YO)({name:w,component:{sync:T=>(0,o.jsx)(j,{...T})},data:{[l]:$,[C(w)]:!0}})}const x=($,w)=>$.selectByComponentData({key:w}).getElements()[0],A=$=>$.selectByComponentData({key:g}).selectByComponentData({key:l}),E=$=>$.selectByComponentData({key:g}).findComponentData({key:l}),B=()=>{const $=(0,d.pC)(),w=(0,p.v)($,A),j=(0,p.v)($,E),T=(0,i.useCallback)(_=>{if(!w||!_)return null;const J=C(_.name);var H;return(H=x(w,J))!==null&&H!==void 0?H:null},[w]),u=(0,i.useCallback)(_=>{const J=j.find(H=>H.name===_);return J?T(J):null},[j,T]),K=(0,i.useCallback)(_=>{const J=j.filter(H=>H.location===_);return J.length?J.map(T):null},[j,T]);return{renderComponentByName:u,renderComponentsByLocation:K}}},58496:function(X,P,t){"use strict";t.d(P,{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(X,P,t){"use strict";t.d(P,{Z:function(){return $},x:function(){return w}});var o=t(52322),i=t(2784),d=t(64279),S=t(77446),y=t(74314),p=t(29651),l=t(68993),g=t(44394),b=t(6542),C=t(72388),R=t(58496);function x(j,T){return T.getOptionalBoolean("techdocs.legacyUseCaseSensitiveTripletPaths")||(j.kind=j.kind.toLocaleLowerCase(),j.name=j.name.toLocaleLowerCase(),j.namespace=j.namespace.toLocaleLowerCase()),j}const A=(j,T)=>(0,y.eE)(j)===(0,y.eE)(T),E={title:"",subtitle:"",setTitle:()=>{},setSubtitle:()=>{},setShadowRoot:()=>{},metadata:{loading:!0},entityMetadata:{loading:!0},entityRef:{kind:"",name:"",namespace:""}},B=(0,p.CT)("techdocs-reader-page-context"),$=(0,i.memo)(j=>{const{entityRef:T,children:u}=j,K=(0,g.h_)(R.g),_=(0,g.h_)(b.D),J=(0,d.default)(async()=>K.getEntityMetadata(T),[T]),H=(0,S.Z)(async()=>K.getTechDocsMetadata(T),[T]),[G,z]=(0,i.useState)(E.title),[V,ot]=(0,i.useState)(E.subtitle),[ht,ut]=(0,i.useState)(E.shadowRoot);(0,i.useEffect)(()=>{ht&&!H.value&&!H.loading&&H.retry()},[H.value,H.loading,ht,H.retry,H]);const mt={metadata:H,entityRef:x(T,_),entityMetadata:J,shadowRoot:ht,setShadowRoot:ut,title:G,setTitle:z,subtitle:V,setSubtitle:ot},ft=(0,l.E)({1:mt});return(0,o.jsx)(C.fC,{attributes:{entityRef:(0,y.eE)(T)},children:(0,o.jsx)(B.Provider,{value:ft,children:u instanceof Function?u(mt):u})})},(j,T)=>A(j.entityRef,T.entityRef)),w=()=>{const j=(0,i.useContext)(B);if(j===void 0)return E;const T=j.atVersion(1);if(T===void 0)throw new Error("No context found for version 1.");return T}},57058:function(X,P,t){"use strict";t.d(P,{o:function(){return o}});const o=Object.freeze({Header:"Header",Subheader:"Subheader",Settings:"Settings",PrimarySidebar:"PrimarySidebar",SecondarySidebar:"SecondarySidebar",Content:"Content"})},51953:function(X,P,t){"use strict";t.d(P,{D:function(){return o}});function o(i,d){return d.getOptionalBoolean("techdocs.legacyUseCaseSensitiveTripletPaths")?i:i.toLocaleLowerCase("en-US")}},29895:function(X,P,t){"use strict";t.d(P,{u:function(){return H}});var o=t(52322),i=t(2784),d=t(42398),S=t(30706),y=t(13788),p=t(25942),l=t(30389),g=t(32494),b=t(63833),C=t(97894),R=t(42081),x=t(88797);class A{getCatalogFilters(){return{"metadata.annotations.backstage.io/techdocs-ref":x.n}}}const E=()=>{const{updateFilters:G}=(0,p.wp)();return(0,i.useEffect)(()=>{G({techdocs:new A})},[G]),null};var B=t(95074),$=t(76635),w=t(538),j=t(9791),T=t(42870),u=t(16787),K=t(45342),_=t(49079);const J=G=>{var z;const{columns:V,actions:ot,options:ht}=G,{loading:ut,error:mt,entities:ft,filters:lt}=(0,p.wp)(),{isStarredEntity:yt,toggleStarredEntity:Y}=(0,T.C)(),[,U]=(0,B.Z)();var Q;const tt=(0,$.capitalize)((Q=(z=lt.user)===null||z===void 0?void 0:z.value)!==null&&Q!==void 0?Q:"all"),at=[K.n.createCopyDocsUrlAction(U),K.n.createStarEntityAction(yt,Y)];return mt?(0,o.jsx)(w.G,{severity:"error",title:"Could not load available documentation.",children:(0,o.jsx)(j.O,{language:"text",text:mt.toString()})}):(0,o.jsx)(u.H,{title:tt,entities:ft,loading:ut,actions:ot||at,columns:V,options:ht})};J.columns=_.N,J.actions=K.n;const H=G=>{const{initialFilter:z="owned",columns:V,actions:ot}=G;return(0,o.jsx)(R.j,{children:(0,o.jsxs)(d.V,{children:[(0,o.jsx)(S.y,{title:"",children:(0,o.jsx)(y.q,{children:"Discover documentation in your ecosystem."})}),(0,o.jsx)(p.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:z}),(0,o.jsx)(b.d,{}),(0,o.jsx)(C.x,{})]}),(0,o.jsx)(l._i.Content,{children:(0,o.jsx)(J,{actions:ot,columns:V})})]})})]})})}},16787:function(X,P,t){"use strict";t.d(P,{H:function(){return w}});var o=t(52322),i=t(2784),d=t(95074),S=t(37321),y=t(44394),p=t(6542),l=t(8709),g=t(75435),b=t(86540),C=t(95573),R=t(84462),x=t(70249),A=t(15929),E=t(45342),B=t(49079),$=t(51953);const w=j=>{const{entities:T,title:u,loading:K,columns:_,actions:J,options:H}=j,[,G]=(0,d.Z)(),z=(0,S.t)(C.Fw),V=(0,y.h_)(p.D);if(!T)return null;const ot=T.map(lt=>{const yt=(0,g.h)(lt,l.S4);var Y;return{entity:lt,resolved:{docsUrl:z({namespace:(0,$.D)((Y=lt.metadata.namespace)!==null&&Y!==void 0?Y:"default",V),kind:(0,$.D)(lt.kind,V),name:(0,$.D)(lt.metadata.name,V)}),ownedByRelations:yt,ownedByRelationsTitle:yt.map(U=>(0,b.$)(U,{defaultKind:"group"})).join(", ")}}}),ht=[B.N.createNameColumn(),B.N.createOwnerColumn(),B.N.createKindColumn(),B.N.createTypeColumn()],ut=[E.n.createCopyDocsUrlAction(G)],mt=20,ft=ot&&ot.length>mt;return(0,o.jsx)(o.Fragment,{children:K||ot&&ot.length>0?(0,o.jsx)(R.i,{isLoading:K,options:{paging:ft,pageSize:mt,search:!0,actionsColumnIndex:-1,...H},data:ot,columns:_||ht,actions:J||ut,title:u?`${u} (${ot.length})`:`All (${ot.length})`}):(0,o.jsx)(x.u,{missing:"data",title:"No documents to show",description:"Create your own document. Check out our Getting Started Information",action:(0,o.jsx)(A.Q,{color:"primary",to:"https://backstage.io/docs/features/techdocs/getting-started",variant:"contained",children:"DOCS"})})})};w.columns=B.N,w.actions=E.n},45342:function(X,P,t){"use strict";t.d(P,{n:function(){return g}});var o=t(52322),i=t(2784),d=t(39981),S=t(2337),y=t(11640),p=t(28347);const l=(0,S.Z)({root:{color:"#f3ba37"}})(y.Z),g={createCopyDocsUrlAction(b){return C=>({icon:()=>(0,o.jsx)(d.Z,{fontSize:"small"}),tooltip:"Click to copy documentation link to clipboard",onClick:()=>b(`${window.location.origin}${C.resolved.docsUrl}`)})},createStarEntityAction(b,C){return R=>{const x=R.entity,A=b(x);return{cellStyle:{paddingLeft:"1em"},icon:()=>A?(0,o.jsx)(l,{}):(0,o.jsx)(p.Z,{}),tooltip:A?"Remove from favorites":"Add to favorites",onClick:()=>C(x)}}}}},49079:function(X,P,t){"use strict";t.d(P,{N:function(){return C}});var o=t(52322),i=t(2784),d=t(62774),S=t(79692);const y=(0,S.Z)(R=>({value:{marginBottom:R.spacing(.75)},subvalue:{color:R.palette.textSubtle,fontWeight:"normal"}}),{name:"BackstageSubvalueCell"});function p(R){const{value:x,subvalue:A}=R,E=y();return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(d.Z,{className:E.value,children:x}),(0,o.jsx)(d.Z,{className:E.subvalue,children:A})]})}var l=t(98864),g=t(51194);function b(R){return R.metadata.title||R.metadata.name}const C={createNameColumn(){return{title:"Document",field:"entity.metadata.name",highlight:!0,render:R=>(0,o.jsx)(p,{value:(0,o.jsx)(l.rU,{to:R.resolved.docsUrl,children:b(R.entity)}),subvalue:R.entity.metadata.description})}},createOwnerColumn(){return{title:"Owner",field:"resolved.ownedByRelationsTitle",render:({resolved:R})=>(0,o.jsx)(g.r,{entityRefs:R.ownedByRelations,defaultKind:"group"})}},createKindColumn(){return{title:"Kind",field:"entity.kind"}},createTypeColumn(){return{title:"Type",field:"entity.spec.type"}}}},42081:function(X,P,t){"use strict";t.d(P,{j:function(){return p}});var o=t(52322),i=t(2784),d=t(32166),S=t(44394),y=t(6542);const p=l=>{const{children:g}=l,b=(0,S.h_)(y.D);var C;const R=`Documentation available in ${(C=b.getOptionalString("organization.name"))!==null&&C!==void 0?C:"Backstage"}`;return(0,o.jsx)(d.g,{title:"Documentation",subtitle:R,themeId:"documentation",children:g})}},4577:function(X,P,t){"use strict";t.d(P,{Jl:function(){return ft},I6:function(){return lt},s4:function(){return ot}});var o=t(58496),i=t(87612),d=t(41385),S=t(48998),y=t(30474);class p extends Error{constructor(U,Q){var tt,at;let dt=U;if(Q!==void 0){const F=(0,S.n)(Q);dt?dt+=`; caused by ${F}`:dt=`caused by ${F}`}super(dt),(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,y.V)(Q)?Q: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 b extends null{constructor(...U){super(...U),_define_property(this,"name","NotAllowedError")}}class C extends p{constructor(...U){super(...U),(0,i._)(this,"name","NotFoundError")}}class R extends null{constructor(...U){super(...U),_define_property(this,"name","ConflictError")}}class x extends null{constructor(...U){super(...U),_define_property(this,"name","NotModifiedError")}}class A extends null{constructor(...U){super(...U),_define_property(this,"name","NotImplementedError")}}class E extends null{}class B extends null{constructor(U,Q){super(U,Q),this.name=isError(Q)?Q.name:"Error"}}var $=t(54847);class w{async getApiOrigin(){return await this.discoveryApi.getBaseUrl("techdocs")}async getTechDocsMetadata(U){const{kind:Q,namespace:tt,name:at}=U,F=`${await this.getApiOrigin()}/metadata/techdocs/${tt}/${Q}/${at}`,Z=await this.fetchApi.fetch(`${F}`);if(!Z.ok)throw await d.V.fromResponse(Z);return await Z.json()}async getEntityMetadata(U){const{kind:Q,namespace:tt,name:at}=U,F=`${await this.getApiOrigin()}/metadata/entity/${tt}/${Q}/${at}`,Z=await this.fetchApi.fetch(`${F}`);if(!Z.ok)throw await d.V.fromResponse(Z);return await Z.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 j{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,Q){const{kind:tt,namespace:at,name:dt}=U,Z=`${await this.getStorageUrl()}/${at}/${tt}/${dt}/${Q}`,Ct=await this.fetchApi.fetch(`${Z.endsWith("/")?Z:`${Z}/`}index.html`);let At="";switch(Ct.status){case 404:throw At="Page not found. ",Q||(At+="This could be because there is no index.md file in the root of the docs directory of this repository."),new C(At);case 500:throw At="Could not generate documentation or an error in the TechDocs backend. ",new Error(At);default:break}return Ct.text()}async syncEntityDocs(U,Q=()=>{}){const{kind:tt,namespace:at,name:dt}=U,Z=`${await this.getApiOrigin()}/sync/${at}/${tt}/${dt}`,{token:Ct}=await this.identityApi.getCredentials();return new Promise((At,ct)=>{const xt=new $.EventSourcePolyfill(Z,{withCredentials:!0,headers:Ct?{Authorization:`Bearer ${Ct}`}:{}});xt.addEventListener("log",gt=>{gt.data&&Q(JSON.parse(gt.data))}),xt.addEventListener("finish",gt=>{let wt=!1;gt.data&&({updated:wt}=JSON.parse(gt.data)),At(wt?"updated":"cached")}),xt.onerror=gt=>{switch(xt.close(),gt.status){case 404:ct(new C(gt.message));return;default:ct(new Error(gt.data));return}}})}async getBaseUrl(U,Q,tt){const{kind:at,namespace:dt,name:F}=Q,Ct=`${await this.getApiOrigin()}/static/docs/${dt}/${at}/${F}/${tt}`;return new URL(U,Ct.endsWith("/")?Ct:`${Ct}/`).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 T=t(95573),u=t(15006),K=t(42380),_=t(6542),J=t(96727),H=t(77186),G=t(85094),z=t(82963),V=t(53945);const ot=(0,u.r)({id:"techdocs",apis:[(0,K.n)({api:o.D,deps:{configApi:_.D,discoveryApi:J.N,identityApi:H.$,fetchApi:G.g},factory:({configApi:Y,discoveryApi:U,identityApi:Q,fetchApi:tt})=>new j({configApi:Y,discoveryApi:U,identityApi:Q,fetchApi:tt})}),(0,K.n)({api:o.g,deps:{configApi:_.D,discoveryApi:J.N,fetchApi:G.g},factory:({configApi:Y,discoveryApi:U,fetchApi:Q})=>new w({configApi:Y,discoveryApi:U,fetchApi:Q})})],routes:{root:T._Z,docRoot:T.Fw,entityContent:T.pd}}),ht=ot.provide((0,z.P4)({name:"TechdocsPage",component:()=>t.e(967).then(t.bind(t,80967)).then(Y=>Y.Router),mountPoint:T._Z})),ut=ot.provide((0,z.P4)({name:"EntityTechdocsContent",component:()=>t.e(967).then(t.bind(t,80967)).then(Y=>Y.EmbeddedDocsRouter),mountPoint:T.pd})),mt=ot.provide((0,z.P4)({name:"TechDocsCustomHome",component:()=>t.e(4109).then(t.bind(t,44109)).then(Y=>Y.TechDocsCustomHome),mountPoint:T._Z})),ft=ot.provide((0,z.P4)({name:"TechDocsIndexPage",component:()=>t.e(8662).then(t.bind(t,18662)).then(Y=>Y.TechDocsIndexPage),mountPoint:T._Z})),lt=ot.provide((0,z.P4)({name:"TechDocsReaderPage",component:()=>t.e(5914).then(t.bind(t,35914)).then(Y=>Y.TechDocsReaderPage),mountPoint:T.Fw})),yt=ot.provide((0,V.E5)({name:"TechDocsSearchResultListItem",component:()=>Promise.resolve().then(t.bind(t,55511)).then(Y=>Y.TechDocsSearchResultListItem),predicate:Y=>Y.type==="techdocs"}))},77873:function(X,P,t){"use strict";t.d(P,{F:function(){return ko}});var o=t(52322),i=t(2784),d=t(79692),S=t(60905),y=t(68979),p=t(70882),l=t(50236),g=t(19219),b=t(55015);const C="TECH_DOCS_SHADOW_DOM_STYLE_LOAD",R=f=>{(0,i.useEffect)(()=>{if(!f)return()=>{};const O=f.querySelectorAll('head > link[rel="stylesheet"]');var L;let k=(L=O==null?void 0:O.length)!==null&&L!==void 0?L:0;const q=new CustomEvent(C);if(!k)return f.dispatchEvent(q),()=>{};const nt=()=>{--k===0&&f.dispatchEvent(q)};return O==null||O.forEach(it=>{it.addEventListener("load",nt)}),()=>{O==null||O.forEach(it=>{it.removeEventListener("load",nt)})}},[f])},x=f=>{const[O,L]=(0,i.useState)(!1);return(0,i.useEffect)(()=>{if(!f)return()=>{};L(!0);const k=f.style;k.setProperty("opacity","0");const q=()=>{L(!1),k.setProperty("opacity","1")};return f.addEventListener(C,q),()=>{f.removeEventListener(C,q)}},[f]),O},A=f=>{const{element:O,onAppend:L,children:k}=f,[q,nt]=(0,i.useState)((0,p.Ue)({...(0,l.Z)(),insertionPoint:void 0}));R(O);const it=x(O),Ot=(0,i.useCallback)(Dt=>{if(!O||!Dt)return;nt((0,p.Ue)({...(0,l.Z)(),insertionPoint:O.querySelector("head")||void 0}));let Mt=Dt.shadowRoot;Mt||(Mt=Dt.attachShadow({mode:"open"})),Mt.replaceChildren(O),typeof L=="function"&&L(Mt)},[O,L]);return(0,o.jsxs)(o.Fragment,{children:[it&&(0,o.jsx)(b.E,{}),(0,o.jsxs)(g.ZP,{jss:q,sheetsManager:new Map,children:[(0,o.jsx)("div",{ref:Ot,"data-testid":"techdocs-native-shadowroot"}),k]})]})};var E=t(54073);const B=()=>{const{shadowRoot:f}=(0,y.x)();return f},$=f=>{const O=B();return O?f.map(L=>O==null?void 0:O.querySelectorAll(L)).filter(L=>L.length).map(L=>Array.from(L)).flat():[]},w=f=>f.toString()&&f.rangeCount&&f.getRangeAt(0).getBoundingClientRect().top,j=(f=0)=>{const O=B(),[L,k]=useState(null),q=useMemo(()=>debounce(()=>{const nt=O,it=nt.getSelection?nt.getSelection():document.getSelection();it&&w(it)?k(it):k(null)},f),[O,k,f]);return useEffect(()=>(window.document.addEventListener("selectionchange",q),()=>{q.cancel(),window.document.removeEventListener("selectionchange",q)}),[q]),L};var T=t(87435),u=t(42398),K=t(76635),_=t(64279),J=t(1849),H=t(29651),G=t(68993),z=t(44394),V=t(72388),ot=t(6542),ht=t(95965);const ut=(0,ht.T)({id:"plugin.search.queryservice"});class mt{query(){return Promise.resolve(this.mockedResults||{results:[]})}constructor(O){_define_property(this,"mockedResults",void 0),this.mockedResults=O}}const ft=(0,H.CT)("search-context"),lt=()=>{const f=(0,i.useContext)(ft);if(!f)throw new Error("useSearch must be used within a SearchContextProvider");const O=f.atVersion(1);if(!O)throw new Error("No SearchContext v1 found");return O},yt=()=>(0,i.useContext)(ft)!==void 0,Y={term:"",types:[],filters:{},pageLimit:void 0,pageCursor:void 0},U=(f=Y)=>{var O,L,k,q;const nt=(0,z.h_)(ut),[it,Ot]=(0,i.useState)(f.term),[Dt,Mt]=(0,i.useState)(f.types),[Ut,Ht]=(0,i.useState)(f.filters),[Pt,pe]=(0,i.useState)(f.pageLimit),[ue,$t]=(0,i.useState)(f.pageCursor),Zt=(0,J.Z)(it),oe=(0,J.Z)(Ut),ee=(0,_.default)(()=>nt.query({term:it,types:Dt,filters:Ut,pageLimit:Pt,pageCursor:ue}),[it,Dt,Ut,Pt,ue]),Ft=!ee.loading&&!ee.error&&((O=ee.value)===null||O===void 0?void 0:O.nextPageCursor),Gt=!ee.loading&&!ee.error&&((L=ee.value)===null||L===void 0?void 0:L.previousPageCursor),_t=(0,i.useCallback)(()=>{var ve;$t((ve=ee.value)===null||ve===void 0?void 0:ve.nextPageCursor)},[(k=ee.value)===null||k===void 0?void 0:k.nextPageCursor]),Ee=(0,i.useCallback)(()=>{var ve;$t((ve=ee.value)===null||ve===void 0?void 0:ve.previousPageCursor)},[(q=ee.value)===null||q===void 0?void 0:q.previousPageCursor]);return(0,i.useEffect)(()=>{Zt!==void 0&&it!==Zt&&$t(void 0)},[it,Zt,$t]),(0,i.useEffect)(()=>{oe!==void 0&&!(0,K.isEqual)(Ut,oe)&&$t(void 0)},[Ut,oe,$t]),{result:ee,term:it,setTerm:Ot,types:Dt,setTypes:Mt,filters:Ut,setFilters:Ht,pageLimit:Pt,setPageLimit:pe,pageCursor:ue,setPageCursor:$t,fetchNextPage:Ft?_t:void 0,fetchPreviousPage:Gt?Ee:void 0}},Q=f=>{const{initialState:O,children:L}=f,k=U(O);return(0,o.jsx)(V.fC,{attributes:{searchTypes:k.types.sort().join(",")},children:(0,o.jsx)(ft.Provider,{value:(0,G.E)({1:k}),children:L})})},tt=f=>{const{initialState:O,inheritParentContextIfAvailable:L,children:k}=f,q=yt(),nt=(0,z.h_)(ot.D),it=O!=null?O:{},Ot=nt.has("search.query.pageLimit")?{pageLimit:nt.getNumber("search.query.pageLimit")}:{},Dt={...Y,...it,...Ot};return q&&L?(0,o.jsx)(o.Fragment,{children:k}):(0,o.jsx)(Q,{initialState:Dt,children:k})};var at=t(4614),dt=t(88013),F=t(50581),Z=t(61837),Ct=t(86619),At=t(77277),ct=t(21853),xt=t(48760),gt=t(62369);const wt=({children:f})=>{var O;const L=Ut=>(0,J.Z)(Ut)!==Ut,k=(0,gt.z)(),{term:q,result:nt}=lt();var it;const Ot=(it=(O=nt.value)===null||O===void 0?void 0:O.numberOfResults)!==null&&it!==void 0?it:void 0,Mt=L(nt.loading)&&!nt.loading;return(0,i.useEffect)(()=>{q&&Mt&&k.captureEvent("search",q,{value:Ot})},[k,q,Ot,Mt]),(0,o.jsx)(o.Fragment,{children:f})};function Tt(f){return(0,i.forwardRef)((O,L)=>(0,o.jsx)(tt,{inheritParentContextIfAvailable:!0,children:(0,o.jsx)(f,{...O,ref:L})}))}const It=Tt((0,i.forwardRef)((f,O)=>{const{onChange:L,onKeyDown:k=()=>{},onClear:q=()=>{},onSubmit:nt=()=>{},debounceTime:it=200,clearButton:Ot=!0,fullWidth:Dt=!0,value:Mt,label:Ut,placeholder:Ht,inputProps:Pt={},InputProps:pe={},endAdornment:ue,...$t}=f,Zt=(0,z.h_)(ot.D),[oe,ee]=(0,i.useState)(""),Ft=(0,i.useRef)("");(0,i.useEffect)(()=>{ee(re=>re===Ft.current?String(Mt):re)},[Mt,Ft]),(0,xt.Z)(()=>{Ft.current=oe,L(oe)},it,[oe]);const Gt=(0,i.useCallback)(re=>{ee(re.target.value)},[ee]),_t=(0,i.useCallback)(re=>{k&&k(re),nt&&re.key==="Enter"&&nt()},[k,nt]),Ee=(0,i.useCallback)(()=>{Ft.current="",L(""),ee(""),q&&q()},[L,q]),Pe=Ut?void 0:"Search",ve=Ht!=null?Ht:`Search in ${Zt.getOptionalString("app.title")||"Backstage"}`,Be=(0,o.jsx)(F.Z,{position:"start",children:(0,o.jsx)(Z.Z,{"aria-label":"Query",size:"small",disabled:!0,children:(0,o.jsx)(ct.Z,{})})}),Ve=(0,o.jsx)(F.Z,{position:"end",children:(0,o.jsx)(At.Z,{"aria-label":"Clear",size:"small",onClick:Ee,onKeyDown:re=>{re.key==="Enter"&&re.stopPropagation()},children:"Clear"})});return(0,o.jsx)(wt,{children:(0,o.jsx)(Ct.Z,{id:"search-bar-text-field","data-testid":"search-bar-next",variant:"outlined",margin:"normal",inputRef:O,value:oe,label:Ut,placeholder:ve,InputProps:{startAdornment:Be,endAdornment:Ot?Ve:ue,...pe},inputProps:{"aria-label":Pe,...Pt},fullWidth:Dt,onChange:Gt,onKeyDown:_t,...$t})})})),ae=Tt((0,i.forwardRef)((f,O)=>{const{value:L="",onChange:k,...q}=f,{term:nt,setTerm:it}=lt();(0,i.useEffect)(()=>{L&&it(String(L))},[L,it]);const Ot=(0,i.useCallback)(Dt=>{k?k(Dt):it(Dt)},[k,it]);return(0,o.jsx)(V.fC,{attributes:{pluginId:"search",extension:"SearchBar"},children:(0,o.jsx)(It,{...q,ref:O,value:nt,onChange:Ot})})})),te=(0,d.Z)(f=>({loading:{right:f.spacing(1),position:"absolute"}})),fe=f=>O=>(0,o.jsx)(tt,{inheritParentContextIfAvailable:!0,children:(0,o.jsx)(f,{...O})}),kt=()=>{const f=te();return(0,o.jsx)(at.Z,{className:f.loading,"data-testid":"search-autocomplete-progressbar",color:"inherit",size:20})},jt=fe(function(O){const{loading:L,value:k,onChange:q=()=>{},options:nt=[],getOptionLabel:it=Ft=>String(Ft),inputPlaceholder:Ot,inputDebounceTime:Dt,freeSolo:Mt=!0,fullWidth:Ut=!0,clearOnBlur:Ht=!1,"data-testid":Pt="search-autocomplete",...pe}=O,{setTerm:ue}=lt(),$t=(0,i.useCallback)(Ft=>Ft?typeof Ft=="string"?Ft:it(Ft):"",[it]),Zt=(0,i.useMemo)(()=>$t(k),[k,$t]),oe=(0,i.useCallback)((Ft,Gt,_t,Ee)=>{ue($t(Gt)),q(Ft,Gt,_t,Ee)},[$t,ue,q]),ee=(0,i.useCallback)(({InputProps:{ref:Ft,className:Gt,endAdornment:_t},InputLabelProps:Ee,...Pe})=>(0,o.jsx)(ae,{...Pe,ref:Ft,clearButton:!1,value:Zt,placeholder:Ot,debounceTime:Dt,endAdornment:L?(0,o.jsx)(kt,{}):_t,InputProps:{className:Gt}}),[L,Zt,Ot,Dt]);return(0,o.jsx)(dt.ZP,{...pe,"data-testid":Pt,value:k,onChange:oe,options:nt,getOptionLabel:it,renderInput:ee,freeSolo:Mt,fullWidth:Ut,clearOnBlur:Ht})});var Wt=t(73557),zt=t(55511);const Jt=f=>f==null?void 0:f.document,ge=f=>{const{entityId:O,entityTitle:L,debounceTime:k=150}=f,[q,nt]=(0,i.useState)(!1),it=(0,Wt.s0)(),{setFilters:Ot,result:{loading:Dt,value:Mt}}=lt(),[Ut,Ht]=(0,i.useState)([]);(0,i.useEffect)(()=>{let Zt=!0;if(Zt&&Mt){const oe=Mt.results.slice(0,10);Ht(oe)}return()=>{Zt=!1}},[Dt,Mt]);const{kind:Pt,name:pe,namespace:ue}=O;(0,i.useEffect)(()=>{Ot(Zt=>({...Zt,kind:Pt,namespace:ue,name:pe}))},[Pt,ue,pe,Ot]);const $t=(Zt,oe)=>{if(Jt(oe)){const{location:ee}=oe.document;it(ee)}};return(0,o.jsx)(jt,{"data-testid":"techdocs-search-bar",size:"small",open:q,getOptionLabel:()=>"",filterOptions:Zt=>Zt,onClose:()=>{nt(!1)},onFocus:()=>{nt(!0)},onChange:$t,blurOnSelect:!0,noOptionsText:"No results found",value:null,options:Ut,renderOption:({document:Zt,highlight:oe})=>(0,o.jsx)(zt.TechDocsSearchResultListItem,{result:Zt,lineClamp:3,asListItem:!1,asLink:!1,title:Zt.title,highlight:oe}),loading:Dt,inputDebounceTime:k,inputPlaceholder:`Search ${L||O.name} docs`,freeSolo:!1})},Oe=f=>{const O={term:"",types:["techdocs"],pageCursor:"",filters:f.entityId};return(0,o.jsx)(tt,{initialState:O,children:(0,o.jsx)(ge,{...f})})};var Le=t(99688),Je=t(80851);const Ke=(0,i.lazy)(()=>Promise.all([t.e(8629),t.e(6051)]).then(t.bind(t,76051)).then(f=>({default:f.RealLogViewer})));function Ce(f){const{Progress:O}=(0,Je.q)().getComponents();return(0,o.jsx)(i.Suspense,{fallback:(0,o.jsx)(O,{}),children:(0,o.jsx)(Ke,{...f})})}var Xe=t(42494),_e=t(90436),He=t(4190),ie=t(87685);const qe=(0,d.Z)(f=>(0,Xe.Z)({paper:{width:"100%",[f.breakpoints.up("sm")]:{width:"75%"},[f.breakpoints.up("md")]:{width:"50%"},padding:f.spacing(2.5)},root:{height:"100%",overflow:"hidden"},logs:{background:f.palette.background.default}})),we=({buildLog:f,onClose:O})=>{const L=qe(),k=f.length===0?"Waiting for logs...":f.join(`
2
+ `);return(0,o.jsxs)(S.Z,{container:!0,direction:"column",className:L.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.Z,{title:"Close the drawer",onClick:O,color:"inherit",children:(0,o.jsx)(ie.Z,{})},"dismiss")]}),(0,o.jsx)(S.Z,{item:!0,xs:!0,children:(0,o.jsx)(Ce,{text:k,classes:{root:L.logs}})})]})},Te=({buildLog:f})=>{const O=qe(),[L,k]=(0,i.useState)(!1);return(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(At.Z,{color:"inherit",onClick:()=>k(!0),children:"Show Build Logs"}),(0,o.jsx)(He.ZP,{classes:{paper:O.paper},anchor:"right",open:L,onClose:()=>k(!1),children:(0,o.jsx)(we,{buildLog:f,onClose:()=>k(!1)})})]})},Ue=({errorMessage:f})=>{const O=(0,z.h_)(ot.D).getOptionalString("techdocs.builder");let L="";return O!=="local"&&(L="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)(T.m,{status:"404",statusMessage:f||"Documentation not found",additionalInfo:L})};var me=t(77446),Fe=t(58496);function Ne({contentLoading:f,content:O,activeSyncState:L}){return f||L==="BUILD_READY_RELOAD"||!O&&L==="CHECKING"?"CHECKING":!O&&L==="BUILDING"?"INITIAL_BUILD":O?L==="BUILDING"?"CONTENT_STALE_REFRESHING":L==="BUILD_READY"?"CONTENT_STALE_READY":L==="ERROR"?"CONTENT_STALE_ERROR":"CONTENT_FRESH":"CONTENT_NOT_FOUND"}function M(f,O){const L={...f};switch(O.type){case"sync":O.state==="CHECKING"&&(L.buildLog=[]),L.activeSyncState=O.state,L.syncError=O.syncError;break;case"contentLoading":L.contentLoading=!0,L.contentError=void 0;break;case"content":typeof O.path=="string"&&(L.path=O.path),L.contentLoading=!1,L.content=O.content,L.contentError=O.contentError;break;case"buildLog":L.buildLog=L.buildLog.concat(O.log);break;default:throw new Error}return["BUILD_READY","BUILD_READY_RELOAD"].includes(L.activeSyncState)&&["contentLoading","content"].includes(O.type)&&(L.activeSyncState="UP_TO_DATE",L.buildLog=[]),L}function h(f,O,L,k){var q,nt;const[it,Ot]=(0,i.useReducer)(M,{activeSyncState:"CHECKING",path:k,contentLoading:!0,buildLog:[]}),Dt=(0,z.h_)(Fe.D),{retry:Mt}=(0,me.Z)(async()=>{Ot({type:"contentLoading"});try{const Pt=await Dt.getEntityDocs({kind:f,namespace:O,name:L},k);return Ot({type:"content",content:Pt,path:k}),Pt}catch(Pt){Ot({type:"content",contentError:Pt,path:k})}},[Dt,f,O,L,k]),Ut=(0,i.useRef)({content:void 0,reload:()=>{}});return Ut.current={content:it.content,reload:Mt},(0,_.default)(async()=>{Ot({type:"sync",state:"CHECKING"});const Pt=setTimeout(()=>{Ot({type:"sync",state:"BUILDING"})},1e3);try{switch(await Dt.syncEntityDocs({kind:f,namespace:O,name:L},ue=>{Ot({type:"buildLog",log:ue})})){case"updated":Ut.current.content?Ot({type:"sync",state:"BUILD_READY"}):(Ut.current.reload(),Ot({type:"sync",state:"BUILD_READY_RELOAD"}));break;case"cached":Ot({type:"sync",state:"UP_TO_DATE"});break;default:Ot({type:"sync",state:"ERROR",syncError:new Error("Unexpected return state")});break}}catch(pe){Ot({type:"sync",state:"ERROR",syncError:pe})}finally{clearTimeout(Pt)}},[f,L,O,Dt,Ot,Ut]),{state:(0,i.useMemo)(()=>Ne({activeSyncState:it.activeSyncState,contentLoading:it.contentLoading,content:it.content}),[it.activeSyncState,it.content,it.contentLoading]),contentReload:Mt,path:it.path,content:it.content,contentErrorMessage:(q=it.contentError)===null||q===void 0?void 0:q.toString(),syncErrorMessage:(nt=it.syncError)===null||nt===void 0?void 0:nt.toString(),buildLog:it.buildLog}}const D=(0,i.createContext)({}),N=()=>(0,i.useContext)(D),rt=f=>{const{children:O}=f,{"*":L=""}=(0,Wt.UO)(),{entityRef:k}=(0,y.x)(),{kind:q,namespace:nt,name:it}=k,Ot=h(q,nt,it,L);return(0,o.jsx)(D.Provider,{value:Ot,children:O instanceof Function?O(Ot):O})},vt=f=>O=>(0,o.jsx)(rt,{children:(0,o.jsx)(f,{...O})}),bt=(0,d.Z)(f=>({root:{marginBottom:f.spacing(2)},message:{wordBreak:"break-word",overflowWrap:"anywhere"}})),Yt=()=>{let f=null;const O=bt(),{state:L,contentReload:k,contentErrorMessage:q,syncErrorMessage:nt,buildLog:it}=N();return L==="INITIAL_BUILD"&&(f=(0,o.jsx)(Le.Z,{classes:{root:O.root},variant:"outlined",severity:"info",icon:(0,o.jsx)(at.Z,{size:"24px"}),action:(0,o.jsx)(Te,{buildLog:it}),children:"Documentation is accessed for the first time and is being prepared. The subsequent loads are much faster."})),L==="CONTENT_STALE_REFRESHING"&&(f=(0,o.jsx)(Le.Z,{variant:"outlined",severity:"info",icon:(0,o.jsx)(at.Z,{size:"24px"}),action:(0,o.jsx)(Te,{buildLog:it}),classes:{root:O.root},children:"A newer version of this documentation is being prepared and will be available shortly."})),L==="CONTENT_STALE_READY"&&(f=(0,o.jsx)(Le.Z,{variant:"outlined",severity:"success",action:(0,o.jsx)(At.Z,{color:"inherit",onClick:()=>k(),children:"Refresh"}),classes:{root:O.root},children:"A newer version of this documentation is now available, please refresh to view."})),L==="CONTENT_STALE_ERROR"&&(f=(0,o.jsxs)(Le.Z,{variant:"outlined",severity:"error",action:(0,o.jsx)(Te,{buildLog:it}),classes:{root:O.root,message:O.message},children:["Building a newer version of this documentation failed."," ",nt]})),L==="CONTENT_NOT_FOUND"&&(f=(0,o.jsxs)(o.Fragment,{children:[nt&&(0,o.jsxs)(Le.Z,{variant:"outlined",severity:"error",action:(0,o.jsx)(Te,{buildLog:it}),classes:{root:O.root,message:O.message},children:["Building a newer version of this documentation failed."," ",nt]}),(0,o.jsx)(Ue,{errorMessage:q})]})),f};var Kt=t(60364),Bt=t(41156),Lt=t(91657),le=t(35368),Se=t.n(le);const Me=/main\.[A-Fa-f0-9]{8}\.min\.css$/,We=/^https:\/\/fonts\.googleapis\.com/,uo=/^https:\/\/fonts\.gstatic\.com/,Xt=f=>f.nodeName==="LINK",ye=f=>{const O=(f==null?void 0:f.getAttribute("href"))||"",L=O.match(Me),k=O.match(We),q=O.match(uo);return L||k||q},ce=f=>(Xt(f)&&!ye(f)&&f.remove(),f),Dn=f=>f.nodeName==="IFRAME",ho=(f,O)=>{const L=f.getAttribute("src")||"";try{const{host:k}=new URL(L);return O.includes(k)}catch{return!1}},Ln=f=>O=>(Dn(O)&&!ho(O,f)&&O.remove(),O),Mn=()=>{const f=(0,z.h_)(ot.D);return(0,i.useMemo)(()=>f.getOptionalConfig("techdocs.sanitizer"),[f])},jn=()=>{const f=Mn();return(0,i.useCallback)(async O=>{const L=f==null?void 0:f.getOptionalStringArray("allowedIframeHosts");Se().addHook("beforeSanitizeElements",ce);const k=["link"];return L&&(k.push("iframe"),Se().addHook("beforeSanitizeElements",Ln(L))),Se().sanitize(O.outerHTML,{ADD_TAGS:k,FORBID_TAGS:["style"],WHOLE_DOCUMENT:!0,RETURN_DOM:!0})},[f])};var tn=t(93539),ne=t(41128),fo=({theme:f})=>`
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: ${f.palette.text.primary};
12
+ --md-default-fg-color--light: ${f.palette.text.secondary};
13
+ --md-default-fg-color--lighter: ${(0,ne.$n)(f.palette.text.secondary,.7)};
14
+ --md-default-fg-color--lightest: ${(0,ne.$n)(f.palette.text.secondary,.3)};
15
+
16
+ /* BACKGROUND */
17
+ --md-default-bg-color:${f.palette.background.default};
18
+ --md-default-bg-color--light: ${f.palette.background.paper};
19
+ --md-default-bg-color--lighter: ${(0,ne.$n)(f.palette.background.paper,.7)};
20
+ --md-default-bg-color--lightest: ${(0,ne.$n)(f.palette.background.paper,.3)};
21
+
22
+ /* PRIMARY */
23
+ --md-primary-fg-color: ${f.palette.primary.main};
24
+ --md-primary-fg-color--light: ${f.palette.primary.light};
25
+ --md-primary-fg-color--dark: ${f.palette.primary.dark};
26
+ --md-primary-bg-color: ${f.palette.primary.contrastText};
27
+ --md-primary-bg-color--light: ${(0,ne.$n)(f.palette.primary.contrastText,.7)};
28
+
29
+ /* ACCENT */
30
+ --md-accent-fg-color: var(--md-primary-fg-color);
31
+
32
+ /* SHADOW */
33
+ --md-shadow-z1: ${f.shadows[1]};
34
+ --md-shadow-z2: ${f.shadows[2]};
35
+ --md-shadow-z3: ${f.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: ${f.palette.text.primary};
72
+ --md-code-bg-color: ${f.palette.background.paper};
73
+ --md-code-hl-color: ${(0,ne.Fq)(f.palette.warning.main,.5)};
74
+ --md-code-hl-keyword-color: ${f.palette.type==="dark"?f.palette.primary.light:f.palette.primary.dark};
75
+ --md-code-hl-function-color: ${f.palette.type==="dark"?f.palette.secondary.light:f.palette.secondary.dark};
76
+ --md-code-hl-string-color: ${f.palette.type==="dark"?f.palette.success.light:f.palette.success.dark};
77
+ --md-code-hl-number-color: ${f.palette.type==="dark"?f.palette.error.light:f.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: ${f.palette.link};
91
+ --md-typeset-table-color: ${f.palette.text.primary};
92
+ --md-typeset-del-color: ${f.palette.type==="dark"?(0,ne.Fq)(f.palette.error.dark,.5):(0,ne.Fq)(f.palette.error.light,.5)};
93
+ --md-typeset-ins-color: ${f.palette.type==="dark"?(0,ne.Fq)(f.palette.success.dark,.5):(0,ne.Fq)(f.palette.success.light,.5)};
94
+ --md-typeset-mark-color: ${f.palette.type==="dark"?(0,ne.Fq)(f.palette.warning.dark,.5):(0,ne.Fq)(f.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
+ `,Ge=({theme:f})=>`
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: ${f.typography.fontFamily};
117
+ font-family: var(--md-text-font-family);
118
+ background-color: unset;
119
+ }
120
+ `;const po="224px";var Bn=({theme:f,sidebar:O})=>`
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:${f.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: ${f.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: ${O.isPinned?`calc(-12.1rem + ${po})`:"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 go=["h1","h2","h3","h4","h5","h6"];var Qt=({theme:f})=>`
340
+ /*================== Typeset ==================*/
341
+
342
+ .md-typeset {
343
+ font-size: var(--md-typeset-font-size);
344
+ }
345
+
346
+ ${go.reduce((O,L)=>{var k;const q=(k=f.typography.htmlFontSize)!==null&&k!==void 0?k:16,nt=f.typography[L],{lineHeight:it,fontFamily:Ot,fontWeight:Dt,fontSize:Mt}=nt,Ut=Ht=>{let Pt=1;return typeof Ht=="number"&&(Pt=Ht/q*.6),typeof Ht=="string"&&(Pt=Ht.replace("rem","")),`calc(${Pt} * var(--md-typeset-font-size))`};return O.concat(`
347
+ .md-typeset ${L} {
348
+ color: var(--md-default-fg-color);
349
+ line-height: ${it};
350
+ font-family: ${Ot};
351
+ font-weight: ${Dt};
352
+ font-size: ${Ut(Mt)};
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 ${f.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
+ `,$e=()=>`
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
+ `,sn=({theme:f})=>`
415
+ /*================== Extensions ==================*/
416
+
417
+ /* HIGHLIGHT */
418
+ .highlight .md-clipboard:after {
419
+ content: unset;
420
+ }
421
+
422
+ .highlight .nx {
423
+ color: ${f.palette.type==="dark"?"#ff53a3":"#ec407a"};
424
+ }
425
+
426
+ /* CODE HILITE */
427
+ .codehilite .gd {
428
+ background-color: ${f.palette.type==="dark"?"rgba(248,81,73,0.65)":"#fdd"};
429
+ }
430
+
431
+ .codehilite .gi {
432
+ background-color: ${f.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: ${f.palette.action.disabledBackground};
463
+ }
464
+ .task-list-control [type="checkbox"]:checked + .task-list-indicator:before {
465
+ background-color: ${f.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 vo=[fo,Ge,Bn,Qt,$e,sn],mo=()=>(0,tn.Pf)(),yo=()=>{const f=mo(),O=(0,Kt.Z)();return(0,i.useMemo)(()=>{const L={theme:O,sidebar:f};return vo.reduce((k,q)=>k+q(L),"")},[O,f])},Eo=()=>{const f=yo();return(0,i.useCallback)(O=>(O.getElementsByTagName("head")[0].insertAdjacentHTML("beforeend",`<style>${f}</style>`),O),[f])},an=async(f,O)=>{let L;if(typeof f=="string")L=new DOMParser().parseFromString(f,"text/html").documentElement;else if(f instanceof Element)L=f;else throw new Error("dom is not a recognized type");for(const k of O)L=await k(L);return L},xo=(f,O,L)=>{const k=f==="src"&&O.endsWith(".svg"),q=!O.match(/^([a-z]*:)?\/\//i),nt=O.startsWith(L);return k&&(q||nt)},Un=({techdocsStorageApi:f,entityId:O,path:L})=>async k=>{const q=await f.getApiOrigin(),nt=async(it,Ot)=>{for(const Dt of it)if(Dt.hasAttribute(Ot)){const Mt=Dt.getAttribute(Ot);if(!Mt)return;const Ut=await f.getBaseUrl(Mt,O,L);if(xo(Ot,Mt,q))try{const Pt=await(await fetch(Ut,{credentials:"include"})).text();Dt.setAttribute(Ot,`data:image/svg+xml;base64,${btoa(unescape(encodeURIComponent(Pt)))}`)}catch{Dt.setAttribute("alt",`Error: ${Mt}`)}else Dt.setAttribute(Ot,Ut)}};return await Promise.all([nt(k.querySelectorAll("img"),"src"),nt(k.querySelectorAll("script"),"src"),nt(k.querySelectorAll("source"),"src"),nt(k.querySelectorAll("link"),"href"),nt(k.querySelectorAll("a[download]"),"href")]),k},Co=()=>f=>(((L,k)=>{Array.from(L).filter(q=>q.hasAttribute(k)).forEach(q=>{const nt=q.getAttribute(k);if(nt){nt.match(/^https?:\/\//i)&&q.setAttribute("target","_blank");try{const it=Ao(window.location.href);q.setAttribute(k,new URL(nt,it).toString())}catch{q.replaceWith(q.textContent||nt)}}})})(Array.from(f.getElementsByTagName("a")),"href"),f);function Ao(f){const O=new URL(f);return!O.pathname.endsWith("/")&&!O.pathname.endsWith(".html")&&(O.pathname+="/"),O.toString()}var So=t(44882);let $n;$n=Promise.resolve().then(t.t.bind(t,17029,19));function mn(f,O){$n.then(L=>{"createRoot"in L?L.createRoot(O).render(f):L.render(f,O)})}const bo=()=>f=>{const O=f.querySelector('.md-header label[for="__drawer"]'),L=f.querySelector("article");if(!O||!L)return f;const k=O.cloneNode();return mn(i.createElement(So.Z),k),k.id="toggle-sidebar",k.title="Toggle Sidebar",k.classList.add("md-content__button"),k.style.setProperty("padding","0 0 0 5px"),k.style.setProperty("margin","0.4rem 0 0.4rem 0.4rem"),L==null||L.prepend(k),f},Oo=()=>f=>{var O;return(O=f.querySelector(".md-header"))===null||O===void 0||O.remove(),f},Po=()=>f=>{var O,L;return(O=f.querySelector(".md-footer .md-copyright"))===null||O===void 0||O.remove(),(L=f.querySelector(".md-footer-copyright"))===null||L===void 0||L.remove(),f};var Ro=t(61800),Fn=t(67097),wo=t(82717),To=t.n(wo);const Nn=f=>O=>{var L;const k=O.querySelector('[title="Edit this page"]');if(!k||!k.href)return O;const q=new URL(k.href),nt=f.byUrl(q);if((nt==null?void 0:nt.type)!=="github"&&(nt==null?void 0:nt.type)!=="gitlab")return O;const it=((L=O.querySelector("article>h1"))===null||L===void 0?void 0:L.childNodes[0].textContent)||"",Ot=encodeURIComponent(`Documentation Feedback: ${it}`),Dt=encodeURIComponent(`Page source:
483
+ ${k.href}
484
+
485
+ Feedback:`),Mt=(nt==null?void 0:nt.type)==="github"?(0,Ro.B)(q.href,"blob"):q.href,Ut=To()(Mt),Ht=`/${Ut.organization}/${Ut.name}`,Pt=k.cloneNode();switch(nt==null?void 0:nt.type){case"gitlab":Pt.href=`${q.origin}${Ht}/issues/new?issue[title]=${Ot}&issue[description]=${Dt}`;break;case"github":Pt.href=`${q.origin}${Ht}/issues/new?title=${Ot}&body=${Dt}`;break;default:return O}return mn(i.createElement(Fn.Z),Pt),Pt.style.paddingLeft="5px",Pt.title="Leave feedback for this page",Pt.id="git-feedback-link",k==null||k.insertAdjacentElement("beforebegin",Pt),O},Wn=()=>f=>(setTimeout(()=>{const O=f==null?void 0:f.querySelectorAll("li.md-nav__item--active");O.length!==0&&(O.forEach(k=>{const q=k==null?void 0:k.querySelector("input");q!=null&&q.checked||q==null||q.click()}),O[O.length-1].scrollIntoView())},200),f);var Io=t(15459),yn=t(80030),En=t(72379),Do=t(41547),Lo=t(95074);const Mo=(0,Io.Z)(f=>({tooltip:{fontSize:"inherit",color:f.palette.text.primary,margin:0,padding:f.spacing(.5),backgroundColor:"transparent",boxShadow:"none"}}))(yn.ZP),jo=()=>(0,o.jsx)(En.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"})}),Bo=({text:f})=>{const[O,L]=(0,i.useState)(!1),[,k]=(0,Lo.Z)(),q=(0,i.useCallback)(()=>{k(f),L(!0)},[f,k]),nt=(0,i.useCallback)(()=>{L(!1)},[L]);return(0,o.jsx)(Mo,{title:"Copied to clipboard",placement:"left",open:O,onClose:nt,leaveDelay:1e3,children:(0,o.jsx)(Z.Z,{style:{color:"inherit"},className:"md-clipboard md-icon",onClick:q,children:(0,o.jsx)(jo,{})})})},Uo=f=>O=>{const L=O.querySelectorAll("pre > code");for(const q of L){var k;const nt=q.textContent||"",it=document.createElement("div");q==null||(k=q.parentElement)===null||k===void 0||k.prepend(it),mn((0,o.jsx)(Do.Z,{theme:f,children:(0,o.jsx)(Bo,{text:nt})}),it)}return O},$o=({baseUrl:f,onClick:O})=>L=>(Array.from(L.getElementsByTagName("a")).forEach(k=>{k.addEventListener("click",q=>{const it=k.getAttribute("href");it&&it.startsWith(f)&&!k.hasAttribute("download")&&(q.preventDefault(),O(q,it))})}),L),Zn=({onLoading:f,onLoaded:O})=>L=>(f(),L.addEventListener(C,function k(){O(),L.removeEventListener(C,k)}),L);function Fo(f,O){const L=new URL(O),k=`${L.origin}${L.pathname.replace(/\/$/,"")}`,q=f.replace(k,"").replace(/^\/+/,""),nt=new URL(`http://localhost/${q}`);return`${nt.pathname}${nt.search}${nt.hash}`}function No(){const f=(0,Wt.s0)(),L=(0,z.h_)(ot.D).getOptionalString("app.baseUrl");return(0,i.useCallback)(q=>{let nt=q;if(L)try{nt=Fo(q,L)}catch{}f(nt)},[f,L])}const Wo="screen and (max-width: 76.1875em)",kn=f=>{const O=No(),L=(0,Kt.Z)(),k=(0,Bt.Z)(Wo),q=jn(),nt=Eo(),it=(0,gt.z)(),Ot=(0,z.h_)(Fe.D),Dt=(0,z.h_)(Lt.q),{state:Mt,path:Ut,content:Ht}=N(),[Pt,pe]=(0,i.useState)(null),ue=x(Pt),$t=(0,i.useCallback)(()=>{if(!Pt)return;Pt.querySelectorAll(".md-sidebar").forEach(Gt=>{if(k)Gt.style.top="0px";else{var _t;const Be=(_t=document)===null||_t===void 0?void 0:_t.querySelector(".techdocs-reader-page");var Ee;const Ve=(Ee=Be==null?void 0:Be.getBoundingClientRect().top)!==null&&Ee!==void 0?Ee:0;var Pe;let re=(Pe=Pt.getBoundingClientRect().top)!==null&&Pe!==void 0?Pe:0;const Ye=Pt.querySelector(".md-container > .md-tabs");var ve;const zn=(ve=Ye==null?void 0:Ye.getBoundingClientRect().height)!==null&&ve!==void 0?ve:0;re<Ve&&(re=Ve),Gt.style.top=`${Math.max(re,0)+zn}px`}Gt.style.setProperty("opacity","1")})},[Pt,k]);(0,i.useEffect)(()=>(window.addEventListener("resize",$t),window.addEventListener("scroll",$t,!0),()=>{window.removeEventListener("resize",$t),window.removeEventListener("scroll",$t,!0)}),[Pt,$t]);const Zt=(0,i.useCallback)(()=>{if(!Pt)return;const Ft=Pt.querySelector(".md-footer");Ft&&(Ft.style.width=`${Pt.getBoundingClientRect().width}px`)},[Pt]);(0,i.useEffect)(()=>(window.addEventListener("resize",Zt),()=>{window.removeEventListener("resize",Zt)}),[Pt,Zt]),(0,i.useEffect)(()=>{ue||(Zt(),$t())},[Mt,ue,Zt,$t]);const oe=(0,i.useCallback)((Ft,Gt)=>an(Ft,[q,Un({techdocsStorageApi:Ot,entityId:f,path:Gt}),Co(),bo(),Oo(),Po(),Nn(Dt),nt]),[f,Dt,Ot,q,nt]),ee=(0,i.useCallback)(async Ft=>an(Ft,[Wn(),Uo(L),$o({baseUrl:window.location.origin,onClick:(Gt,_t)=>{var Ee;const Pe=Gt.ctrlKey||Gt.metaKey,ve=new URL(_t),Be=((Ee=Gt.target)===null||Ee===void 0?void 0:Ee.innerText)||_t,Ve=_t.replace(window.location.origin,"");if(it.captureEvent("click",Be,{attributes:{to:Ve}}),ve.hash)if(Pe)window.open(_t,"_blank");else{var re;O(_t),Ft==null||(re=Ft.querySelector(`[id="${ve.hash.slice(1)}"]`))===null||re===void 0||re.scrollIntoView()}else Pe?window.open(_t,"_blank"):O(_t)}}),Zn({onLoading:()=>{},onLoaded:()=>{var Gt;(Gt=Ft.querySelector(".md-nav__title"))===null||Gt===void 0||Gt.removeAttribute("for")}}),Zn({onLoading:()=>{Array.from(Ft.querySelectorAll(".md-sidebar")).forEach(_t=>{_t.style.setProperty("opacity","0")})},onLoaded:()=>{}})]),[L,O,it]);return(0,i.useEffect)(()=>{if(!Ht)return()=>{};let Ft=!0;return oe(Ht,Ut).then(async Gt=>{if(!(Gt!=null&&Gt.innerHTML)||!Ft)return;window.scroll({top:0});const _t=await ee(Gt);pe(_t)}),()=>{Ft=!1}},[Ht,Ut,oe,ee]),Pt};var ln=t(8560),Rt=t(2296),se=t(57058);const de=()=>{const f=(0,Rt.$L)(),{shadowRoot:O}=(0,y.x)(),L=O==null?void 0:O.querySelector('[data-md-component="content"]'),k=O==null?void 0:O.querySelector('div[data-md-component="sidebar"][data-md-type="navigation"], div[data-md-component="navigation"]');let q=k==null?void 0:k.querySelector('[data-techdocs-addons-location="primary sidebar"]');q||(q=document.createElement("div"),q.setAttribute("data-techdocs-addons-location","primary sidebar"),k==null||k.prepend(q));const nt=O==null?void 0:O.querySelector('div[data-md-component="sidebar"][data-md-type="toc"], div[data-md-component="toc"]');let it=nt==null?void 0:nt.querySelector('[data-techdocs-addons-location="secondary sidebar"]');return it||(it=document.createElement("div"),it.setAttribute("data-techdocs-addons-location","secondary sidebar"),nt==null||nt.prepend(it)),(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(ln.Z,{container:q,children:f.renderComponentsByLocation(se.o.PrimarySidebar)}),(0,o.jsx)(ln.Z,{container:L,children:f.renderComponentsByLocation(se.o.Content)}),(0,o.jsx)(ln.Z,{container:it,children:f.renderComponentsByLocation(se.o.SecondarySidebar)})]})},Zo=(0,d.Z)({search:{width:"100%","@media (min-width: 76.1875em)":{width:"calc(100% - 34.4rem)",margin:"0 auto"},"@media print":{display:"none"}}}),ko=vt(f=>{var O;const{withSearch:L=!0,onReady:k}=f,q=Zo(),{entityMetadata:{value:nt,loading:it},entityRef:Ot,setShadowRoot:Dt}=(0,y.x)(),Mt=kn(Ot),Ut=window.location.pathname,Ht=window.location.hash,Pt=x(Mt),[pe]=$([`[id="${Ht.slice(1)}"]`]);(0,i.useEffect)(()=>{if(!Pt)if(Ht)pe&&pe.scrollIntoView();else{var $t,Zt;(Zt=document)===null||Zt===void 0||($t=Zt.querySelector("header"))===null||$t===void 0||$t.scrollIntoView()}},[Ut,Ht,pe,Pt]);const ue=(0,i.useCallback)($t=>{Dt($t),k instanceof Function&&k()},[Dt,k]);return it===!1&&!nt?(0,o.jsx)(T.m,{status:"404",statusMessage:"PAGE NOT FOUND"}):Mt?(0,o.jsx)(u.V,{children:(0,o.jsxs)(S.Z,{container:!0,children:[(0,o.jsx)(S.Z,{xs:12,item:!0,children:(0,o.jsx)(Yt,{})}),L&&(0,o.jsx)(S.Z,{className:q.search,xs:"auto",item:!0,children:(0,o.jsx)(Oe,{entityId:Ot,entityTitle:nt==null||(O=nt.metadata)===null||O===void 0?void 0:O.title})}),(0,o.jsx)(S.Z,{xs:12,item:!0,children:(0,o.jsx)(A,{element:Mt,onAppend:ue,children:(0,o.jsx)(de,{})})})]})}):(0,o.jsx)(u.V,{children:(0,o.jsx)(S.Z,{container:!0,children:(0,o.jsx)(S.Z,{xs:12,item:!0,children:(0,o.jsx)(Yt,{})})})})}),je=null},65386:function(X,P,t){"use strict";t.d(P,{S:function(){return ht}});var o=t(52322),i=t(2784),d=t(18671),S=t(60905),y=t(98069),p=t(60364),l=t(73250),g=t(2296),b=t(68979),C=t(57058),R=t(75435),x=t(84719),A=t(51194),E=t(8709),B=t(79692),$=t(41128),w=t(90436),j=t(98864);const T=(0,B.Z)(ut=>({root:{textAlign:"left"},label:{color:ut.page.fontColor,fontWeight:ut.typography.fontWeightBold,letterSpacing:0,fontSize:ut.typography.fontSize,marginBottom:ut.spacing(1)/2,lineHeight:1},value:{color:(0,$.Fq)(ut.page.fontColor,.8),fontSize:ut.typography.fontSize,lineHeight:1}}),{name:"BackstageHeaderLabel"}),u=({value:ut,className:mt})=>(0,o.jsx)(w.Z,{component:typeof ut=="string"?"p":"span",className:mt,children:ut});function K(ut){const{label:mt,value:ft,url:lt}=ut,yt=T(),Y=(0,o.jsx)(u,{className:yt.value,value:ft||"<Unknown>"});return(0,o.jsx)(S.Z,{item:!0,children:(0,o.jsxs)(w.Z,{component:"span",className:yt.root,children:[(0,o.jsx)(w.Z,{className:yt.label,children:mt}),lt?(0,o.jsx)(j.rU,{to:lt,children:Y}):Y]})})}var _=t(48037),J=t(44394),H=t(6542),G=t(37321),z=t(76635),V=t(95573);const ot=(0,o.jsx)(y.Z,{animation:"wave",variant:"text",height:40}),ht=ut=>{const{palette:{common:{white:mt}}}=(0,p.Z)(),{children:ft}=ut,lt=(0,g.$L)(),yt=(0,J.h_)(H.D),{title:Y,setTitle:U,subtitle:Q,setSubtitle:tt,entityRef:at,metadata:{value:dt,loading:F},entityMetadata:{value:Z,loading:Ct}}=(0,b.x)();(0,i.useEffect)(()=>{dt&&(U(dt.site_name),tt(()=>{let{site_description:kt}=dt;return(!kt||kt==="None")&&(kt=""),kt}))},[dt,U,tt]);const At=yt.getOptional("app.title")||"Backstage",ct=[Y,Q,At].filter(Boolean).join(" | "),{locationMetadata:xt,spec:gt}=Z||{},wt=gt==null?void 0:gt.lifecycle,Tt=Z?(0,R.h)(Z,E.S4):[],It=(0,G.t)(V._Z)(),ae=(0,o.jsxs)(o.Fragment,{children:[(0,o.jsx)(K,{label:(0,z.capitalize)((Z==null?void 0:Z.kind)||"entity"),value:(0,o.jsx)(x.d,{color:"inherit",entityRef:at,title:Z==null?void 0:Z.metadata.title,defaultKind:"Component"})}),Tt.length>0&&(0,o.jsx)(K,{label:"Owner",value:(0,o.jsx)(A.r,{color:"inherit",entityRefs:Tt,defaultKind:"group"})}),wt?(0,o.jsx)(K,{label:"Lifecycle",value:String(wt)}):null,xt&&xt.type!=="dir"&&xt.type!=="file"?(0,o.jsx)(K,{label:"",value:(0,o.jsxs)(S.Z,{container:!0,direction:"column",alignItems:"center",style:{color:mt},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:xt.target}):null]});return!Ct&&Z===void 0||!F&&dt===void 0?null:(0,o.jsxs)(_.h,{type:"Documentation",typeLink:It,title:Y||ot,subtitle:Q===""?void 0:Q||ot,children:[(0,o.jsx)(d.Z,{titleTemplate:"%s",children:(0,o.jsx)("title",{children:ct})}),ae,ft,lt.renderComponentsByLocation(C.o.Header)]})}},95573:function(X,P,t){"use strict";t.d(P,{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(X,P,t){"use strict";t.r(P),t.d(P,{TechDocsSearchResultListItem:function(){return C}});var o=t(52322),i=t(2784),d=t(79692),S=t(49378),y=t(86136),p=t(90436),l=t(98864),g=t(76079);const b=(0,d.Z)({flexContainer:{flexWrap:"wrap"},itemText:{width:"100%",marginBottom:"1rem"}}),C=R=>{const{result:x,highlight:A,lineClamp:E=5,asListItem:B=!0,asLink:$=!0,title:w,icon:j}=R,T=b(),u=({children:J})=>$?(0,o.jsx)(l.rU,{noTrack:!0,to:x.location,children:J}):(0,o.jsx)(o.Fragment,{children:J}),K=()=>{const J=A!=null&&A.fields.title?(0,o.jsx)(g.F,{text:A.fields.title,preTag:A.preTag,postTag:A.postTag}):x.title,H=A!=null&&A.fields.entityTitle?(0,o.jsx)(g.F,{text:A.fields.entityTitle,preTag:A.preTag,postTag:A.postTag}):x.entityTitle,G=A!=null&&A.fields.name?(0,o.jsx)(g.F,{text:A.fields.name,preTag:A.preTag,postTag:A.postTag}):x.name;return x?(0,o.jsx)(S.Z,{className:T.itemText,primaryTypographyProps:{variant:"h6"},primary:(0,o.jsx)(u,{children:w||(0,o.jsxs)(o.Fragment,{children:[J," | ",H!=null?H:G," docs"]})}),secondary:(0,o.jsx)(p.Z,{component:"span",style:{display:"-webkit-box",WebkitBoxOrient:"vertical",WebkitLineClamp:E,overflow:"hidden"},color:"textSecondary",variant:"body2",children:A!=null&&A.fields.text?(0,o.jsx)(g.F,{text:A.fields.text,preTag:A.preTag,postTag:A.postTag}):x.text})}):null},_=({children:J})=>B?(0,o.jsxs)(o.Fragment,{children:[j&&(0,o.jsx)(y.Z,{children:typeof j=="function"?j(x):j}),(0,o.jsx)("div",{className:T.flexContainer,children:J})]}):(0,o.jsx)(o.Fragment,{children:J});return(0,o.jsx)(_,{children:(0,o.jsx)(K,{})})}},53260:function(){}},function(X){var P=function(o){return X(X.s=o)};X.O(0,[2370,6202,9284,7012,427,242,5109,6816,1213,5218,4736],function(){return P(99329)});var t=X.O()}]);})();
486
+
487
+ //# sourceMappingURL=main.167d1cf0.js.map