@kuadrant/kuadrant-backstage-plugin-frontend 0.2.0 → 0.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js +21 -3
- package/dist/components/ApiKeyManagementTab/ApiKeyManagementTab.esm.js.map +1 -1
- package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js +1 -7
- package/dist/components/CreateAPIProductDialog/CreateAPIProductDialog.esm.js.map +1 -1
- package/dist/components/KuadrantIcon/KuadrantIcon.esm.js +22 -0
- package/dist/components/KuadrantIcon/KuadrantIcon.esm.js.map +1 -0
- package/dist/components/icons.esm.js +11 -0
- package/dist/components/icons.esm.js.map +1 -0
- package/dist/index.d.ts +8 -1
- package/dist/index.esm.js +2 -0
- package/dist/index.esm.js.map +1 -1
- package/dist-scalprum/internal.plugin-kuadrant.c4fb9c2347d3ad03a5d0.js +2 -0
- package/dist-scalprum/internal.plugin-kuadrant.c4fb9c2347d3ad03a5d0.js.map +1 -0
- package/dist-scalprum/plugin-manifest.json +3 -3
- package/dist-scalprum/static/{1037.58dd29ad.chunk.js → 1037.25758556.chunk.js} +1 -1
- package/dist-scalprum/static/{1037.58dd29ad.chunk.js.map → 1037.25758556.chunk.js.map} +1 -1
- package/dist-scalprum/static/{1584.ae3779f0.chunk.js → 1584.1e45e570.chunk.js} +2 -2
- package/dist-scalprum/static/{1584.ae3779f0.chunk.js.map → 1584.1e45e570.chunk.js.map} +1 -1
- package/dist-scalprum/static/1719.246c020d.chunk.js +2 -0
- package/dist-scalprum/static/1719.246c020d.chunk.js.map +1 -0
- package/dist-scalprum/static/{1881.8221c002.chunk.js → 1881.56cde36b.chunk.js} +1 -1
- package/dist-scalprum/static/{1881.8221c002.chunk.js.map → 1881.56cde36b.chunk.js.map} +1 -1
- package/dist-scalprum/static/286.ee43f560.chunk.js +2 -0
- package/dist-scalprum/static/286.ee43f560.chunk.js.map +1 -0
- package/dist-scalprum/static/2952.b54bd390.chunk.js +2 -0
- package/dist-scalprum/static/2952.b54bd390.chunk.js.map +1 -0
- package/dist-scalprum/static/2967.0c2ef90e.chunk.js +2 -0
- package/dist-scalprum/static/2967.0c2ef90e.chunk.js.map +1 -0
- package/dist-scalprum/static/3015.1fe097c2.chunk.js +3 -0
- package/dist-scalprum/static/3015.1fe097c2.chunk.js.LICENSE.txt +9 -0
- package/dist-scalprum/static/3015.1fe097c2.chunk.js.map +1 -0
- package/dist-scalprum/static/{3581.b5b97f08.chunk.js → 3581.ebe5968a.chunk.js} +1 -1
- package/dist-scalprum/static/{3581.b5b97f08.chunk.js.map → 3581.ebe5968a.chunk.js.map} +1 -1
- package/dist-scalprum/static/3657.882640ca.chunk.js +3 -0
- package/dist-scalprum/static/3657.882640ca.chunk.js.LICENSE.txt +8 -0
- package/dist-scalprum/static/3657.882640ca.chunk.js.map +1 -0
- package/dist-scalprum/static/{3897.ef4554b5.chunk.js → 3897.6e9c07c0.chunk.js} +1 -1
- package/dist-scalprum/static/{3897.ef4554b5.chunk.js.map → 3897.6e9c07c0.chunk.js.map} +1 -1
- package/dist-scalprum/static/{3947.ad129ba4.chunk.js → 3947.4f4aa8c2.chunk.js} +1 -1
- package/dist-scalprum/static/{3947.ad129ba4.chunk.js.map → 3947.4f4aa8c2.chunk.js.map} +1 -1
- package/dist-scalprum/static/{3976.e0873210.chunk.js → 3976.e8a8fda2.chunk.js} +2 -2
- package/dist-scalprum/static/{3976.e0873210.chunk.js.map → 3976.e8a8fda2.chunk.js.map} +1 -1
- package/dist-scalprum/static/{4083.488ff7a9.chunk.js → 4083.811c4e7a.chunk.js} +2 -2
- package/dist-scalprum/static/{4083.488ff7a9.chunk.js.map → 4083.811c4e7a.chunk.js.map} +1 -1
- package/dist-scalprum/static/4908.196a4425.chunk.js +2 -0
- package/dist-scalprum/static/{5453.3c20d0a6.chunk.js.map → 4908.196a4425.chunk.js.map} +1 -1
- package/dist-scalprum/static/{5010.6241b64f.chunk.js → 5010.4f67737b.chunk.js} +2 -2
- package/dist-scalprum/static/{5010.6241b64f.chunk.js.map → 5010.4f67737b.chunk.js.map} +1 -1
- package/dist-scalprum/static/{512.f1c51799.chunk.js → 512.d592d164.chunk.js} +1 -1
- package/dist-scalprum/static/{512.f1c51799.chunk.js.map → 512.d592d164.chunk.js.map} +1 -1
- package/dist-scalprum/static/{5289.2e686027.chunk.js → 5289.55069930.chunk.js} +2 -2
- package/dist-scalprum/static/{5289.2e686027.chunk.js.map → 5289.55069930.chunk.js.map} +1 -1
- package/dist-scalprum/static/5605.430f697e.chunk.js +2 -0
- package/dist-scalprum/static/5605.430f697e.chunk.js.map +1 -0
- package/dist-scalprum/static/5978.bf347a09.chunk.js +2 -0
- package/dist-scalprum/static/5978.bf347a09.chunk.js.map +1 -0
- package/dist-scalprum/static/6038.63d1f832.chunk.js +3 -0
- package/dist-scalprum/static/6038.63d1f832.chunk.js.LICENSE.txt +8 -0
- package/dist-scalprum/static/6038.63d1f832.chunk.js.map +1 -0
- package/dist-scalprum/static/{6272.b5645dc2.chunk.js → 6272.3ed14ea4.chunk.js} +1 -1
- package/dist-scalprum/static/{6272.b5645dc2.chunk.js.map → 6272.3ed14ea4.chunk.js.map} +1 -1
- package/dist-scalprum/static/635.f63679a5.chunk.js +3 -0
- package/dist-scalprum/static/635.f63679a5.chunk.js.map +1 -0
- package/dist-scalprum/static/6371.7b57ac27.chunk.js +3 -0
- package/dist-scalprum/static/6371.7b57ac27.chunk.js.LICENSE.txt +9 -0
- package/dist-scalprum/static/6371.7b57ac27.chunk.js.map +1 -0
- package/dist-scalprum/static/{6386.2d20c412.chunk.js → 6386.5922f271.chunk.js} +3 -3
- package/dist-scalprum/static/{6386.2d20c412.chunk.js.map → 6386.5922f271.chunk.js.map} +1 -1
- package/dist-scalprum/static/{6426.bf20c588.chunk.js → 6426.4c18bab5.chunk.js} +1 -1
- package/dist-scalprum/static/{6426.bf20c588.chunk.js.map → 6426.4c18bab5.chunk.js.map} +1 -1
- package/dist-scalprum/static/6777.a2b77ec5.chunk.js +2 -0
- package/dist-scalprum/static/6777.a2b77ec5.chunk.js.map +1 -0
- package/dist-scalprum/static/{6800.ddabed69.chunk.js → 6800.a45da2f4.chunk.js} +2 -2
- package/dist-scalprum/static/{6800.ddabed69.chunk.js.map → 6800.a45da2f4.chunk.js.map} +1 -1
- package/dist-scalprum/static/{6972.e47ec97e.chunk.js → 6972.f22b9446.chunk.js} +1 -1
- package/dist-scalprum/static/{6972.e47ec97e.chunk.js.map → 6972.f22b9446.chunk.js.map} +1 -1
- package/dist-scalprum/static/7005.8190ad95.chunk.js +2 -0
- package/dist-scalprum/static/7005.8190ad95.chunk.js.map +1 -0
- package/dist-scalprum/static/7164.5dc4bc72.chunk.js +2 -0
- package/dist-scalprum/static/7164.5dc4bc72.chunk.js.map +1 -0
- package/dist-scalprum/static/{7266.e760b8c3.chunk.js → 7266.3c4174cc.chunk.js} +1 -1
- package/dist-scalprum/static/{7266.e760b8c3.chunk.js.map → 7266.3c4174cc.chunk.js.map} +1 -1
- package/dist-scalprum/static/7270.d52407cd.chunk.js +2 -0
- package/dist-scalprum/static/7270.d52407cd.chunk.js.map +1 -0
- package/dist-scalprum/static/7717.6f5b9dd7.chunk.js +3 -0
- package/dist-scalprum/static/7717.6f5b9dd7.chunk.js.map +1 -0
- package/dist-scalprum/static/{7791.8f84478d.chunk.js → 7791.ad31cf6d.chunk.js} +2 -2
- package/dist-scalprum/static/{7791.8f84478d.chunk.js.map → 7791.ad31cf6d.chunk.js.map} +1 -1
- package/dist-scalprum/static/{8563.46f1a3e1.chunk.js → 8563.6501eafb.chunk.js} +2 -2
- package/dist-scalprum/static/{8563.46f1a3e1.chunk.js.map → 8563.6501eafb.chunk.js.map} +1 -1
- package/dist-scalprum/static/{9079.b6d5c19c.chunk.js → 9079.2ddaea57.chunk.js} +1 -1
- package/dist-scalprum/static/{9079.b6d5c19c.chunk.js.map → 9079.2ddaea57.chunk.js.map} +1 -1
- package/dist-scalprum/static/9239.1acfe112.chunk.js +2 -0
- package/dist-scalprum/static/9239.1acfe112.chunk.js.map +1 -0
- package/dist-scalprum/static/exposed-KuadrantIcon.08abbb96.chunk.js +3 -0
- package/dist-scalprum/static/exposed-KuadrantIcon.08abbb96.chunk.js.LICENSE.txt +9 -0
- package/dist-scalprum/static/exposed-KuadrantIcon.08abbb96.chunk.js.map +1 -0
- package/dist-scalprum/static/exposed-KuadrantPage.5ae00605.chunk.js +2 -0
- package/dist-scalprum/static/exposed-KuadrantPage.5ae00605.chunk.js.map +1 -0
- package/dist-scalprum/static/exposed-PluginRoot.949381c2.chunk.js +2 -0
- package/dist-scalprum/static/exposed-PluginRoot.949381c2.chunk.js.map +1 -0
- package/package.json +6 -3
- package/dist-scalprum/internal.plugin-kuadrant.b3d35dc8b21ce867aa09.js +0 -2
- package/dist-scalprum/internal.plugin-kuadrant.b3d35dc8b21ce867aa09.js.map +0 -1
- package/dist-scalprum/static/1319.ac195ac2.chunk.js +0 -2
- package/dist-scalprum/static/1319.ac195ac2.chunk.js.map +0 -1
- package/dist-scalprum/static/2967.7c6a34cd.chunk.js +0 -2
- package/dist-scalprum/static/2967.7c6a34cd.chunk.js.map +0 -1
- package/dist-scalprum/static/3118.daee3324.chunk.js +0 -3
- package/dist-scalprum/static/3118.daee3324.chunk.js.map +0 -1
- package/dist-scalprum/static/483.d55d6ab2.chunk.js +0 -2
- package/dist-scalprum/static/483.d55d6ab2.chunk.js.map +0 -1
- package/dist-scalprum/static/5203.3df62d7e.chunk.js +0 -2
- package/dist-scalprum/static/5203.3df62d7e.chunk.js.map +0 -1
- package/dist-scalprum/static/5453.3c20d0a6.chunk.js +0 -2
- package/dist-scalprum/static/6371.f183dddb.chunk.js +0 -3
- package/dist-scalprum/static/6371.f183dddb.chunk.js.map +0 -1
- package/dist-scalprum/static/7005.d548f8f1.chunk.js +0 -2
- package/dist-scalprum/static/7005.d548f8f1.chunk.js.map +0 -1
- package/dist-scalprum/static/7270.301a3c46.chunk.js +0 -2
- package/dist-scalprum/static/7270.301a3c46.chunk.js.map +0 -1
- package/dist-scalprum/static/9051.f095a8a1.chunk.js +0 -2
- package/dist-scalprum/static/9051.f095a8a1.chunk.js.map +0 -1
- package/dist-scalprum/static/9838.589f2156.chunk.js +0 -2
- package/dist-scalprum/static/9838.589f2156.chunk.js.map +0 -1
- package/dist-scalprum/static/exposed-PluginRoot.a8448fcc.chunk.js +0 -2
- package/dist-scalprum/static/exposed-PluginRoot.a8448fcc.chunk.js.map +0 -1
- /package/dist-scalprum/static/{1584.ae3779f0.chunk.js.LICENSE.txt → 1584.1e45e570.chunk.js.LICENSE.txt} +0 -0
- /package/dist-scalprum/static/{4083.488ff7a9.chunk.js.LICENSE.txt → 4083.811c4e7a.chunk.js.LICENSE.txt} +0 -0
- /package/dist-scalprum/static/{5010.6241b64f.chunk.js.LICENSE.txt → 5010.4f67737b.chunk.js.LICENSE.txt} +0 -0
- /package/dist-scalprum/static/{6371.f183dddb.chunk.js.LICENSE.txt → 635.f63679a5.chunk.js.LICENSE.txt} +0 -0
- /package/dist-scalprum/static/{6386.2d20c412.chunk.js.LICENSE.txt → 6386.5922f271.chunk.js.LICENSE.txt} +0 -0
- /package/dist-scalprum/static/{3118.daee3324.chunk.js.LICENSE.txt → 7717.6f5b9dd7.chunk.js.LICENSE.txt} +0 -0
- /package/dist-scalprum/static/{8563.46f1a3e1.chunk.js.LICENSE.txt → 8563.6501eafb.chunk.js.LICENSE.txt} +0 -0
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
"use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[512],{4387:(e,t,n)=>{n.d(t,{A:()=>c});var r=n(89575),a=n(39850),i=n(95478),o=n(57384),s=n(37976),l=i.forwardRef(function(e,t){var n=e.animation,s=void 0===n?"pulse":n,l=e.classes,c=e.className,d=e.component,h=void 0===d?"span":d,p=e.height,u=e.variant,f=void 0===u?"text":u,m=e.width,g=(0,a.A)(e,["animation","classes","className","component","height","variant","width"]),v=Boolean(g.children);return i.createElement(h,(0,r.A)({ref:t,className:(0,o.A)(l.root,l[f],c,v&&[l.withChildren,!m&&l.fitContent,!p&&l.heightAuto],!1!==s&&l[s])},g,{style:(0,r.A)({width:m,height:p},g.style)}))});const c=(0,s.withStyles)(function(e){return{root:{display:"block",backgroundColor:(0,s.alpha)(e.palette.text.primary,"light"===e.palette.type?.11:.13),height:"1.2em"},text:{marginTop:0,marginBottom:0,height:"auto",transformOrigin:"0 60%",transform:"scale(1, 0.60)",borderRadius:e.shape.borderRadius,"&:empty:before":{content:'"\\00a0"'}},rect:{},circle:{borderRadius:"50%"},pulse:{animation:"$pulse 1.5s ease-in-out 0.5s infinite"},"@keyframes pulse":{"0%":{opacity:1},"50%":{opacity:.4},"100%":{opacity:1}},wave:{position:"relative",overflow:"hidden","&::after":{animation:"$wave 1.6s linear 0.5s infinite",background:"linear-gradient(90deg, transparent, ".concat(e.palette.action.hover,", transparent)"),content:'""',position:"absolute",transform:"translateX(-100%)",bottom:0,left:0,right:0,top:0}},"@keyframes wave":{"0%":{transform:"translateX(-100%)"},"60%":{transform:"translateX(100%)"},"100%":{transform:"translateX(100%)"}},withChildren:{"& > *":{visibility:"hidden"}},fitContent:{maxWidth:"fit-content"},heightAuto:{height:"auto"}}},{name:"MuiSkeleton"})(l)},18466:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var i=a(n(95478)),o=(0,r(n(74044)).default)(i.createElement("path",{d:"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"}),"Add");t.A=o},25467:(e,t,n)=>{n.d(t,{tN:()=>a}),n(31085),n(22097);var r=n(15427);function a(){const e=(0,r.useVersionedContext)("entity-context");if(!e)throw new Error("Entity context is not available");const t=e.atVersion(1);if(!t)throw new Error("EntityContext v1 not available");if(!t.entity)throw new Error("useEntity hook is being called outside of an EntityLayout where the entity has not been loaded. If this is intentional, please use useAsyncEntity instead.");return{entity:t.entity}}(0,r.createVersionedContext)("entity-context")},32269:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var i=a(n(95478)),o=(0,r(n(74044)).default)(i.createElement("path",{d:"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z"}),"Visibility");t.A=o},35015:(e,t,n)=>{n.d(t,{A:()=>o});var r=n(95478),a=n(85608),i=n(71581);function o(e,t){void 0===t&&(t=[]);var n=function(e,t,n){void 0===t&&(t=[]),void 0===n&&(n={loading:!1});var o=(0,r.useRef)(0),s=(0,i.A)(),l=(0,r.useState)(n),c=l[0],d=l[1],h=(0,r.useCallback)(function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];var r=++o.current;return c.loading||d(function(e){return(0,a.__assign)((0,a.__assign)({},e),{loading:!0})}),e.apply(void 0,t).then(function(e){return s()&&r===o.current&&d({value:e,loading:!1}),e},function(e){return s()&&r===o.current&&d({error:e,loading:!1}),e})},t);return[c,h]}(e,t,{loading:!0}),o=n[0],s=n[1];return(0,r.useEffect)(function(){s()},[s]),o}},37725:(e,t,n)=>{n.d(t,{N_:()=>A});var r=n(31085),a=n(22097),i=n(49203),o=n(37976),s=n(72501),l=n(53373),c=n.n(l),d=n(45250),h=n(95478),p=n(49634),u=n(39330);const f=(0,o.makeStyles)(e=>({visuallyHidden:{clip:"rect(0 0 0 0)",clipPath:"inset(50%)",overflow:"hidden",position:"absolute",userSelect:"none",whiteSpace:"nowrap",height:1,width:1},externalLink:{position:"relative"},externalLinkIcon:{verticalAlign:"bottom",marginLeft:e.spacing(.5)}}),{name:"Link"}),m=()=>{const e=(0,a.useApp)().getSystemIcon("externalLink")||u.A,t=f();return(0,r.jsx)(e,{className:t.externalLinkIcon})},g=e=>/^([a-z+.-]+):/.test(e),v=/^[\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,x=window.open;if(x&&!x.__backstage){const e=function(...e){const t=String(e[0]);if(v.test(t))throw new Error("Rejected window.open() with a javascript: URL as a security precaution");return x.apply(this,e)};e.__backstage=!0,window.open=e}const y=e=>e instanceof Array?e.map(y).join(" ").trim():"object"==typeof e&&e?y(e?.props?.children):["string","number"].includes(typeof e)?String(e):"",A=(0,h.forwardRef)(({onClick:e,noTrack:t,externalLinkIcon:n,...o},l)=>{const h=f(),u=(0,a.useAnalytics)(),x=function(){const[e]=(0,p.createRoutesFromChildren)((0,r.jsx)(p.Route,{index:!0,element:(0,r.jsx)("div",{})}));return!e.index}()?(e=>{let t=String(e);const n=(()=>{const e=(()=>{try{return(0,a.useApi)(a.configApiRef).getOptionalString("app.baseUrl")}catch{return}})()??"/",{pathname:t}=new URL(e,"http://sample.dev");return(0,d.trimEnd)(t,"/")})(),r=g(t),i=t.startsWith(n);return r||i||(t=n.concat(t)),t})(o.to):o.to,A=y(o.children)||x,k=g(x),w=k&&!!/^https?:/.exec(x);if(v.test(x))throw new Error("Link component rejected javascript: URL as a security precaution");const b=n=>{e?.(n),t||u.captureEvent("click",A,{attributes:{to:x}})};return k?(0,r.jsxs)(i.A,{...w?{target:"_blank",rel:"noopener"}:{},...o,...o["aria-label"]?{"aria-label":`${o["aria-label"]}, Opens in a new window`}:{},ref:l,href:x,onClick:b,className:c()(h.externalLink,o.className),children:[o.children,n&&(0,r.jsx)(m,{}),(0,r.jsx)(s.A,{component:"span",className:h.visuallyHidden,children:", Opens in a new window"})]}):(0,r.jsx)(i.A,{...o,ref:l,component:p.Link,to:x,onClick:b})})},39053:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var i=a(n(95478)),o=(0,r(n(74044)).default)(i.createElement("path",{d:"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z"}),"Info");t.A=o},39330:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var i=a(n(95478)),o=(0,r(n(74044)).default)(i.createElement("path",{d:"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"}),"OpenInNew");t.A=o},52235:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var i=a(n(95478)),o=(0,r(n(74044)).default)(i.createElement("path",{d:"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z"}),"ArrowForward");t.A=o},61524:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var i=a(n(95478)),o=(0,r(n(74044)).default)(i.createElement("path",{d:"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z"}),"VisibilityOff");t.A=o},77225:(e,t,n)=>{var r=n(4293),a=n(78920);t.A=void 0;var i=a(n(95478)),o=(0,r(n(74044)).default)(i.createElement("path",{d:"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z"}),"Warning");t.A=o},96040:(e,t,n)=>{n.d(t,{n:()=>z});var r=n(31085),a=n(40703),i=n(59469),o=n(48653),s=n(45685),l=n(37197),c=n(37976),d=n(53373),h=n.n(d),p=n(10394),u=n(72501),f=n(52235),m=n(37725);const g=(0,c.makeStyles)(e=>({root:{maxWidth:"fit-content",padding:e.spacing(2,2,2,2.5)},boxTitle:{margin:0,color:e.palette.textSubtle},arrow:{color:e.palette.textSubtle}}),{name:"BackstageBottomLink"});function v(e){const{link:t,title:n,onClick:a}=e,i=g();return(0,r.jsxs)(p.A,{children:[(0,r.jsx)(l.A,{}),(0,r.jsx)(m.N_,{to:t,onClick:a,underline:"none",children:(0,r.jsxs)(p.A,{display:"flex",alignItems:"center",className:i.root,children:[(0,r.jsx)(p.A,{className:i.boxTitle,fontWeight:"fontWeightBold",m:1,children:(0,r.jsx)(u.A,{children:(0,r.jsx)("strong",{children:n})})}),(0,r.jsx)(f.A,{className:i.arrow})]})})]})}var x=n(95478),y=n(64947);const A=(0,x.forwardRef)((e,t)=>(0,r.jsx)(m.N_,{ref:t,...e,color:"initial"})),k=(0,x.forwardRef)((e,t)=>(0,r.jsx)(y.A,{ref:t,component:A,...e}));var w=n(34169),b=n(21006),C=n(67550);const j=e=>{const{slackChannel:t}=e,{t:n}=(0,C.i)(b.O);return t?"string"==typeof t?(0,r.jsx)(u.A,{children:n("errorBoundary.title",{slackChannel:t})}):t.href?(0,r.jsx)(k,{to:t.href,variant:"contained",children:t.name}):(0,r.jsx)(u.A,{children:n("errorBoundary.title",{slackChannel:t.name})}):null},E=class extends x.Component{constructor(e){super(e),this.state={error:void 0,errorInfo:void 0}}componentDidCatch(e,t){console.error(`ErrorBoundary, error: ${e}`,{error:e,errorInfo:t}),this.setState({error:e,errorInfo:t})}render(){const{slackChannel:e,children:t}=this.props,{error:n}=this.state;return n?(0,r.jsx)(w.b,{title:"Something Went Wrong",error:n,children:(0,r.jsx)(j,{slackChannel:e})}):t}},N=(0,c.makeStyles)(e=>({noPadding:{padding:0,"&:last-child":{paddingBottom:0}},contentAlignBottom:{display:"flex",alignItems:"self-end"},header:{padding:e.spacing(2,2,2,2.5)},headerTitle:{fontWeight:e.typography.fontWeightBold},headerSubheader:{paddingTop:e.spacing(1)},headerAvatar:{},headerAction:{},headerContent:{},subheader:{display:"flex"}}),{name:"BackstageInfoCard"}),S=(0,c.withStyles)(e=>({root:{display:"inline-block",padding:e.spacing(8,8,0,0),float:"right"}}),{name:"BackstageInfoCardCardActionsTopRight"})(i.A),L={card:{flex:{display:"flex",flexDirection:"column"},fullHeight:{display:"flex",flexDirection:"column",height:"100%"},gridItem:{display:"flex",flexDirection:"column",height:"calc(100% - 10px)",marginBottom:"10px",breakInside:"avoid-page","@media print":{height:"auto"}}},cardContent:{fullHeight:{flex:1},gridItem:{flex:1}}};function z(e){const{title:t,subheader:n,divider:c=!0,deepLink:d,slackChannel:p,errorBoundaryProps:u,variant:f,alignContent:m="normal",children:g,headerStyle:x,headerProps:y,icon:A,action:k,actionsClassName:w,actions:b,cardClassName:C,actionsTopRight:j,className:z,noPadding:I,titleTypographyProps:R,subheaderTypographyProps:B}=e,_=N();let T={},M={};f&&f.split(/[\s]+/g).forEach(e=>{T={...T,...L.card[e]},M={...M,...L.cardContent[e]}});const V=u||(p?{slackChannel:p}:{});return(0,r.jsx)(a.A,{style:T,className:z,children:(0,r.jsxs)(E,{...V,children:[t&&(0,r.jsx)(s.A,{classes:{root:h()(_.header),title:_.headerTitle,subheader:_.headerSubheader,avatar:_.headerAvatar,action:_.headerAction,content:_.headerContent},title:t,subheader:n||A?(0,r.jsxs)("div",{"data-testid":"info-card-subheader",children:[n&&(0,r.jsx)("div",{className:_.subheader,children:n}),A]}):null,action:k,style:{...x},titleTypographyProps:R,subheaderTypographyProps:B,...y}),j&&(0,r.jsx)(S,{children:j}),c&&(0,r.jsx)(l.A,{}),(0,r.jsx)(o.A,{className:h()(C,{[_.noPadding]:I,[_.contentAlignBottom]:"bottom"===m}),style:M,children:g}),b&&(0,r.jsx)(i.A,{className:w,children:b}),d&&(0,r.jsx)(v,{...d})]})})}}}]);
|
|
2
|
-
//# sourceMappingURL=512.
|
|
2
|
+
//# sourceMappingURL=512.d592d164.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static/512.f1c51799.chunk.js","mappings":"+MAqGIA,EAAwB,aAAiB,SAAkBC,EAAOC,GACpE,IAAIC,EAAmBF,EAAMG,UACzBA,OAAiC,IAArBD,EAA8B,QAAUA,EACpDE,EAAUJ,EAAMI,QAChBC,EAAYL,EAAMK,UAClBC,EAAmBN,EAAMO,UACzBC,OAAiC,IAArBF,EAA8B,OAASA,EACnDG,EAAST,EAAMS,OACfC,EAAiBV,EAAMW,QACvBA,OAA6B,IAAnBD,EAA4B,OAASA,EAC/CE,EAAQZ,EAAMY,MACdC,GAAQ,OAAyBb,EAAO,CAAC,YAAa,UAAW,YAAa,YAAa,SAAU,UAAW,UAEhHc,EAAcC,QAAQF,EAAMG,UAChC,OAAoB,gBAAoBR,GAAW,OAAS,CAC1DP,IAAKA,EACLI,WAAW,OAAKD,EAAQa,KAAMb,EAAQO,GAAUN,EAAWS,GAAe,CAACV,EAAQc,cAAeN,GAASR,EAAQe,YAAaV,GAAUL,EAAQgB,aAA2B,IAAdjB,GAAuBC,EAAQD,KAC7LU,EAAO,CACRQ,OAAO,OAAS,CACdT,MAAOA,EACPH,OAAQA,GACPI,EAAMQ,SAEb,GAiDA,SAAe,IAAAC,YAvKK,SAAgBC,GAClC,MAAO,CAELN,KAAM,CACJO,QAAS,QAETC,iBAAiB,IAAAC,OAAMH,EAAMI,QAAQC,KAAKC,QAAgC,UAAvBN,EAAMI,QAAQG,KAAmB,IAAO,KAC3FrB,OAAQ,SAIVmB,KAAM,CACJG,UAAW,EACXC,aAAc,EACdvB,OAAQ,OACRwB,gBAAiB,QACjBC,UAAW,iBACXC,aAAcZ,EAAMa,MAAMD,aAC1B,iBAAkB,CAChBE,QAAS,aAKbC,KAAM,CAAC,EAGPC,OAAQ,CACNJ,aAAc,OAIhBK,MAAO,CACLrC,UAAW,yCAEb,mBAAoB,CAClB,KAAM,CACJsC,QAAS,GAEX,MAAO,CACLA,QAAS,IAEX,OAAQ,CACNA,QAAS,IAKbC,KAAM,CACJC,SAAU,WACVC,SAAU,SACV,WAAY,CACVzC,UAAW,kCACX0C,WAAY,uCAAuCC,OAAOvB,EAAMI,QAAQoB,OAAOC,MAAO,kBACtFX,QAAS,KACTM,SAAU,WACVT,UAAW,oBAEXe,OAAQ,EACRC,KAAM,EACNC,MAAO,EACPC,IAAK,IAGT,kBAAmB,CACjB,KAAM,CACJlB,UAAW,qBAEb,MAAO,CAELA,UAAW,oBAEb,OAAQ,CACNA,UAAW,qBAKfhB,aAAc,CACZ,QAAS,CACPmC,WAAY,WAKhBlC,WAAY,CACVmC,SAAU,eAIZlC,WAAY,CACVX,OAAQ,QAGd,EAyEkC,CAChC8C,KAAM,eADR,CAEGxD,E,sBC7KCyD,EAAyB,EAAQ,MAEjCC,EAA0B,EAAQ,OAKtCC,EAAQ,OAAU,EAElB,IAAIC,EAAQF,EAAwB,EAAQ,QAIxCG,GAAW,EAFMJ,EAAuB,EAAQ,QAElBK,SAAuBF,EAAMG,cAAc,OAAQ,CACnFC,EAAG,wCACD,OAEJL,EAAQ,EAAUE,C,qECYlB,SAASI,IACP,MAAMC,GAAkB,IAAAC,qBACtB,kBAEF,IAAKD,EACH,MAAM,IAAIE,MAAM,mCAElB,MAAMC,EAAQH,EAAgBI,UAAU,GACxC,IAAKD,EACH,MAAM,IAAID,MAAM,kCAElB,IAAKC,EAAME,OACT,MAAM,IAAIH,MACR,8JAGJ,MAAO,CAAEG,OAAQF,EAAME,OACzB,EA3CyB,IAAAC,wBACvB,iB,sBCJEf,EAAyB,EAAQ,MAEjCC,EAA0B,EAAQ,OAKtCC,EAAQ,OAAU,EAElB,IAAIC,EAAQF,EAAwB,EAAQ,QAIxCG,GAAW,EAFMJ,EAAuB,EAAQ,QAElBK,SAAuBF,EAAMG,cAAc,OAAQ,CACnFC,EAAG,sNACD,cAEJL,EAAQ,EAAUE,C,wECjBH,SAASY,EAASC,EAAIC,QACpB,IAATA,IAAmBA,EAAO,IAC9B,IAAIC,ECDO,SAAoBF,EAAIC,EAAME,QAC5B,IAATF,IAAmBA,EAAO,SACT,IAAjBE,IAA2BA,EAAe,CAAEC,SAAS,IACzD,IAAIC,GAAa,IAAAC,QAAO,GACpBC,GAAY,EAAAC,EAAA,KACZN,GAAK,IAAAO,UAASN,GAAeO,EAAQR,EAAG,GAAIS,EAAMT,EAAG,GACrDU,GAAW,IAAAC,aAAY,WAEvB,IADA,IAAIC,EAAO,GACFC,EAAK,EAAGA,EAAKC,UAAUC,OAAQF,IACpCD,EAAKC,GAAMC,UAAUD,GAEzB,IAAIG,IAAWb,EAAWc,QAI1B,OAHKT,EAAMN,SACPO,EAAI,SAAUS,GAAa,OAAQ,IAAAC,WAAS,IAAAA,UAAS,CAAC,EAAGD,GAAY,CAAEhB,SAAS,GAAU,GAEvFJ,EAAGsB,WAAM,EAAQR,GAAMS,KAAK,SAAU5B,GAEzC,OADAY,KAAeW,IAAWb,EAAWc,SAAWR,EAAI,CAAEhB,MAAOA,EAAOS,SAAS,IACtET,CACX,EAAG,SAAU6B,GAET,OADAjB,KAAeW,IAAWb,EAAWc,SAAWR,EAAI,CAAEa,MAAOA,EAAOpB,SAAS,IACtEoB,CACX,EACJ,EAAGvB,GACH,MAAO,CAACS,EAAOE,EACnB,CDvBaa,CAAWzB,EAAIC,EAAM,CAC1BG,SAAS,IACTM,EAAQR,EAAG,GAAIU,EAAWV,EAAG,GAIjC,OAHA,IAAAwB,WAAU,WACNd,GACJ,EAAG,CAACA,IACGF,CACX,C,+JEIA,MAAMiB,GAAY,IAAAC,YACf9E,IAAU,CACT+E,eAAgB,CACdC,KAAM,gBACNC,SAAU,aACV5D,SAAU,SACVD,SAAU,WACV8D,WAAY,OACZC,WAAY,SACZjG,OAAQ,EACRG,MAAO,GAET+F,aAAc,CACZhE,SAAU,YAEZiE,iBAAkB,CAChBC,cAAe,SACfC,WAAYvF,EAAMwF,QAAQ,OAG9B,CAAExD,KAAM,SAEJyD,EAAmB,KACvB,MACMC,GADM,IAAAC,UACKC,cAAc,iBAAmB,IAC5C/G,EAAUgG,IAChB,OAAuB,IAAAgB,KAAIH,EAAM,CAAE5G,UAAWD,EAAQwG,oBAElDS,EAAiBC,GAAQ,gBAAgBC,KAAKD,GAC9CE,EAAwB,4HAIxBC,EAAqBC,OAAOC,KAClC,GAAIF,IAAuBA,EAAmBG,YAAa,CACzD,MAAMC,EAAU,YAAiBtC,GAC/B,MAAMuC,EAAMC,OAAOxC,EAAK,IACxB,GAAIiC,EAAsBD,KAAKO,GAC7B,MAAM,IAAI3D,MACR,0EAGJ,OAAOsD,EAAmB1B,MAAMiC,KAAMzC,EACxC,EACAsC,EAAQD,aAAc,EACtBF,OAAOC,KAAOE,CAChB,CACA,MAwBMI,EAAeC,GACfA,aAAgBC,MACXD,EAAKE,IAAIH,GAAaI,KAAK,KAAKC,OAErB,iBAATJ,GAAqBA,EACvBD,EAAYC,GAAMlI,OAAOgB,UAE9B,CAAC,SAAU,UAAUuH,gBAAgBL,GAChCH,OAAOG,GAET,GAEHM,GAAO,IAAAC,YACX,EAAGC,UAASC,UAAS/B,sBAAqB5G,GAASC,KACjD,MAAMG,EAAUgG,IACVwC,GAAY,IAAAC,gBACZC,EA3FV,WACE,MAAOC,IAAO,IAAAC,2BAAyC,IAAA5B,KAAI,EAAA6B,MAAO,CAAEC,OAAO,EAAMC,SAAyB,IAAA/B,KAAI,MAAO,CAAC,MACtH,OAAQ2B,EAAIG,KACd,CAwFeE,GA1BS,CAAC9B,IACvB,IAAI+B,EAAetB,OAAOT,GAC1B,MAAMgC,EARY,MAClB,MACMxB,EAVW,MACjB,IAEE,OADe,IAAAyB,QAAO,EAAAC,cACRC,kBAAkB,cAClC,CAAE,MACA,MACF,GAIYC,IAAgB,KACtB,SAAEC,GAAa,IAAIC,IAAI9B,EAFhB,qBAGb,OAAO,IAAA+B,SAAQF,EAAU,MAIRG,GACXC,EAAW1C,EAAcgC,GACzBW,EAAqBX,EAAaY,WAAWX,GAInD,OAHKS,GAAaC,IAChBX,EAAeC,EAASxG,OAAOuG,IAE1BA,GAkB4Ba,CAAgBlK,EAAM8I,IAAM9I,EAAM8I,GAC7DqB,EAAWlC,EAAYjI,EAAMgB,WAAa8H,EAC1CiB,EAAW1C,EAAcyB,GACzBsB,EAAYL,KAAc,WAAWM,KAAKvB,GAChD,GAAItB,EAAsBD,KAAKuB,GAC7B,MAAM,IAAI3E,MACR,oEAGJ,MAAMmG,EAAeC,IACnB7B,IAAU6B,GACL5B,GACHC,EAAU4B,aAAa,QAASL,EAAU,CAAEM,WAAY,CAAE3B,SAG9D,OAAOiB,GAEW,IAAAW,MACd,IACA,IACKN,EAAY,CAAEO,OAAQ,SAAUC,IAAK,YAAe,CAAC,KACrD5K,KACAA,EAAM,cAAgB,CAAE,aAAc,GAAGA,EAAM,wCAA2C,CAAC,EAC9FC,MACA4K,KAAM/B,EACNJ,QAAS4B,EACTjK,UAAW,IAAWD,EAAQuG,aAAc3G,EAAMK,WAClDW,SAAU,CACRhB,EAAMgB,SACN4F,IAAoC,IAAAQ,KAAIJ,EAAkB,CAAC,IAC3C,IAAAI,KAAI,IAAY,CAAE7G,UAAW,OAAQF,UAAWD,EAAQkG,eAAgBtF,SAAU,gCAMxF,IAAAoG,KACd,IACA,IACKpH,EACHC,MACAM,UAAW,EAAAiI,KACXM,KACAJ,QAAS4B,K,sBC/If9G,EAAyB,EAAQ,MAEjCC,EAA0B,EAAQ,OAKtCC,EAAQ,OAAU,EAElB,IAAIC,EAAQF,EAAwB,EAAQ,QAIxCG,GAAW,EAFMJ,EAAuB,EAAQ,QAElBK,SAAuBF,EAAMG,cAAc,OAAQ,CACnFC,EAAG,qGACD,QAEJL,EAAQ,EAAUE,C,sBCjBdJ,EAAyB,EAAQ,MAEjCC,EAA0B,EAAQ,OAKtCC,EAAQ,OAAU,EAElB,IAAIC,EAAQF,EAAwB,EAAQ,QAIxCG,GAAW,EAFMJ,EAAuB,EAAQ,QAElBK,SAAuBF,EAAMG,cAAc,OAAQ,CACnFC,EAAG,uIACD,aAEJL,EAAQ,EAAUE,C,sBCjBdJ,EAAyB,EAAQ,MAEjCC,EAA0B,EAAQ,OAKtCC,EAAQ,OAAU,EAElB,IAAIC,EAAQF,EAAwB,EAAQ,QAIxCG,GAAW,EAFMJ,EAAuB,EAAQ,QAElBK,SAAuBF,EAAMG,cAAc,OAAQ,CACnFC,EAAG,8DACD,gBAEJL,EAAQ,EAAUE,C,sBCjBdJ,EAAyB,EAAQ,MAEjCC,EAA0B,EAAQ,OAKtCC,EAAQ,OAAU,EAElB,IAAIC,EAAQF,EAAwB,EAAQ,QAIxCG,GAAW,EAFMJ,EAAuB,EAAQ,QAElBK,SAAuBF,EAAMG,cAAc,OAAQ,CACnFC,EAAG,8fACD,iBAEJL,EAAQ,EAAUE,C,sBCjBdJ,EAAyB,EAAQ,MAEjCC,EAA0B,EAAQ,OAKtCC,EAAQ,OAAU,EAElB,IAAIC,EAAQF,EAAwB,EAAQ,QAIxCG,GAAW,EAFMJ,EAAuB,EAAQ,QAElBK,SAAuBF,EAAMG,cAAc,OAAQ,CACnFC,EAAG,uDACD,WAEJL,EAAQ,EAAUE,C,oLCXlB,MAAMwC,GAAY,IAAAC,YACf9E,IAAU,CACTN,KAAM,CACJqC,SAAU,cACVwH,QAASvJ,EAAMwF,QAAQ,EAAG,EAAG,EAAG,MAElCgE,SAAU,CACRC,OAAQ,EACRC,MAAO1J,EAAMI,QAAQuJ,YAEvBC,MAAO,CACLF,MAAO1J,EAAMI,QAAQuJ,cAGzB,CAAE3H,KAAM,wBAEV,SAAS6H,EAAWpL,GAClB,MAAM,KAAEqL,EAAI,MAAEC,EAAK,QAAE5C,GAAY1I,EAC3BI,EAAUgG,IAChB,OAAuB,IAAAsE,MAAKa,EAAA,EAAK,CAAEvK,SAAU,EAC3B,IAAAoG,KAAIoE,EAAA,EAAS,CAAC,IACd,IAAApE,KAAI,KAAM,CAAE0B,GAAIuC,EAAM3C,UAAS+C,UAAW,OAAQzK,UAA0B,IAAA0J,MAAKa,EAAA,EAAK,CAAE/J,QAAS,OAAQkK,WAAY,SAAUrL,UAAWD,EAAQa,KAAMD,SAAU,EAChK,IAAAoG,KAAImE,EAAA,EAAK,CAAElL,UAAWD,EAAQ2K,SAAUY,WAAY,iBAAkBC,EAAG,EAAG5K,UAA0B,IAAAoG,KAAIyE,EAAA,EAAY,CAAE7K,UAA0B,IAAAoG,KAAI,SAAU,CAAEpG,SAAUsK,SAC5K,IAAAlE,KAAI,EAAA0E,EAAW,CAAEzL,UAAWD,EAAQ+K,eAG1D,C,0BC7BA,MAAMY,GAAc,IAAAtD,YAAW,CAACzI,EAAOC,KAAwB,IAAAmH,KAAI,KAAM,CAAEnH,SAAQD,EAAOiL,MAAO,aAC3Fe,GAAa,IAAAvD,YAAW,CAACzI,EAAOC,KAAwB,IAAAmH,KAAI6E,EAAA,EAAU,CAAEhM,MAAKM,UAAWwL,KAAgB/L,K,qCCE9G,MAAMkM,EAAalM,IACjB,MAAM,aAAEmM,GAAiBnM,GACnB,EAAEoM,IAAM,OAAkB,KAChC,OAAKD,EAE8B,iBAAjBA,GACO,IAAA/E,KAAIyE,EAAA,EAAY,CAAE7K,SAAUoL,EAAE,sBAAuB,CAAED,mBACpEA,EAAatB,MAKF,IAAAzD,KAAI4E,EAAY,CAAElD,GAAIqD,EAAatB,KAAMlK,QAAS,YAAaK,SAAUmL,EAAa5I,QAJpF,IAAA6D,KAAIyE,EAAA,EAAY,CAAE7K,SAAUoL,EAAE,sBAAuB,CAC1ED,aAAcA,EAAa5I,SALtB,MAUL8I,EAAgB,cAA6B,EAAA7L,UACjD,WAAA8L,CAAYtM,GACVuM,MAAMvM,GACNgI,KAAK7C,MAAQ,CACXc,WAAO,EACPuG,eAAW,EAEf,CACA,iBAAAC,CAAkBxG,EAAOuG,GACvBE,QAAQzG,MAAM,yBAAyBA,IAAS,CAAEA,QAAOuG,cACzDxE,KAAK2E,SAAS,CAAE1G,QAAOuG,aACzB,CACA,MAAAI,GACE,MAAM,aAAET,EAAY,SAAEnL,GAAagH,KAAKhI,OAClC,MAAEiG,GAAU+B,KAAK7C,MACvB,OAAKc,GAGkB,IAAAmB,KAAI,IAAY,CAAEkE,MAAO,uBAAwBrF,QAAOjF,UAA0B,IAAAoG,KAAI8E,EAAW,CAAEC,mBAFjHnL,CAGX,GC9BI,GAAY,IAAAqF,YACf9E,IAAU,CACTsL,UAAW,CACT/B,QAAS,EACT,eAAgB,CACdgC,cAAe,IAGnBC,mBAAoB,CAClBvL,QAAS,OACTkK,WAAY,YAEdsB,OAAQ,CACNlC,QAASvJ,EAAMwF,QAAQ,EAAG,EAAG,EAAG,MAElCkG,YAAa,CACXtB,WAAYpK,EAAM2L,WAAWC,gBAE/BC,gBAAiB,CACfC,WAAY9L,EAAMwF,QAAQ,IAE5BuG,aAAc,CAAC,EACfC,aAAc,CAAC,EACfC,cAAe,CAAC,EAChBC,UAAW,CACTjM,QAAS,UAGb,CAAE+B,KAAM,sBAEJmK,GAAsB,IAAApM,YACzBC,IAAU,CACTN,KAAM,CACJO,QAAS,eACTsJ,QAASvJ,EAAMwF,QAAQ,EAAG,EAAG,EAAG,GAChC4G,MAAO,WAGX,CAAEpK,KAAM,wCARkB,CAS1BqK,EAAA,GACIC,EAAiB,CACrBC,KAAM,CACJC,KAAM,CACJvM,QAAS,OACTwM,cAAe,UAEjBC,WAAY,CACVzM,QAAS,OACTwM,cAAe,SACfvN,OAAQ,QAEVyN,SAAU,CACR1M,QAAS,OACTwM,cAAe,SACfvN,OAAQ,oBAERuB,aAAc,OACdmM,YAAa,aACb,eAAgB,CACd1N,OAAQ,UAId2N,YAAa,CACXH,WAAY,CACVF,KAAM,GAERG,SAAU,CACRH,KAAM,KAIZ,SAASM,EAASrO,GAChB,MAAM,MACJsL,EAAK,UACLmC,EAAS,QACTa,GAAU,EAAI,SACdC,EAAQ,aACRpC,EAAY,mBACZqC,EAAkB,QAClB7N,EAAO,aACP8N,EAAe,SAAQ,SACvBzN,EAAQ,YACR0N,EAAW,YACXC,EAAW,KACXC,EAAI,OACJ7L,EAAM,iBACN8L,EAAgB,QAChBC,EAAO,cACPC,EAAa,gBACbC,EAAe,UACf3O,EAAS,UACTwM,EAAS,qBACToC,EAAoB,yBACpBC,GACElP,EACEI,EAAU,IAChB,IAAI+O,EAAkB,CAAC,EACnBC,EAAsB,CAAC,EACvBzO,GACeA,EAAQ0O,MAAM,UACtBC,QAAS/L,IAChB4L,EAAkB,IACbA,KACAtB,EAAeC,KAAKvK,IAEzB6L,EAAsB,IACjBA,KACAvB,EAAeO,YAAY7K,MAIpC,MASMgM,EAAWf,IAAuBrC,EAAe,CAAEA,gBAAiB,CAAC,GAC3E,OAAuB,IAAA/E,KAAIoI,EAAA,EAAM,CAAEnO,MAAO8N,EAAiB9O,YAAWW,UAA0B,IAAA0J,MAAK2B,EAAe,IAAKkD,EAAUvO,SAAU,CAC3IsK,IAAyB,IAAAlE,KACvBqI,EAAA,EACA,CACErP,QAAS,CACPa,KAAM,IAAWb,EAAQ4M,QACzB1B,MAAOlL,EAAQ6M,YACfQ,UAAWrN,EAAQgN,gBACnBsC,OAAQtP,EAAQkN,aAChBvK,OAAQ3C,EAAQmN,aAChBlL,QAASjC,EAAQoN,eAEnBlC,QACAmC,UAtBCA,GAAcmB,GAGI,IAAAlE,MAAK,MAAO,CAAE,cAAe,sBAAuB1J,SAAU,CACnFyM,IAA6B,IAAArG,KAAI,MAAO,CAAE/G,UAAWD,EAAQqN,UAAWzM,SAAUyM,IAClFmB,KAJO,KAsBL7L,SACA1B,MAAO,IAAKqN,GACZO,uBACAC,8BACGP,IAGPK,IAAmC,IAAA5H,KAAIsG,EAAqB,CAAE1M,SAAUgO,IACxEV,IAA2B,IAAAlH,KAAIoE,EAAA,EAAS,CAAC,IACzB,IAAApE,KACduI,EAAA,EACA,CACEtP,UAAW,IAAW0O,EAAe,CACnC,CAAC3O,EAAQyM,WAAYA,EACrB,CAACzM,EAAQ2M,oBAAsC,WAAjB0B,IAEhCpN,MAAO+N,EACPpO,aAGJ8N,IAA2B,IAAA1H,KAAIwG,EAAA,EAAa,CAAEvN,UAAWwO,EAAkB7N,SAAU8N,IACrFP,IAA4B,IAAAnH,KAAIgE,EAAY,IAAKmD,QAErD,C","sources":["webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/Skeleton/Skeleton.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Add.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/plugin-catalog-react/dist/hooks/useEntity.esm.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Visibility.js","webpack://internal.plugin-kuadrant/../../node_modules/react-use/esm/useAsync.js","webpack://internal.plugin-kuadrant/../../node_modules/react-use/esm/useAsyncFn.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/components/Link/Link.esm.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Info.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/OpenInNew.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/ArrowForward.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/VisibilityOff.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Warning.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/layout/BottomLink/BottomLink.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/components/LinkButton/LinkButton.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/layout/ErrorBoundary/ErrorBoundary.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/layout/InfoCard/InfoCard.esm.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { alpha, withStyles } from '@material-ui/core/styles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n display: 'block',\n // Create a \"on paper\" color with sufficient contrast retaining the color\n backgroundColor: alpha(theme.palette.text.primary, theme.palette.type === 'light' ? 0.11 : 0.13),\n height: '1.2em'\n },\n\n /* Styles applied to the root element if `variant=\"text\"`. */\n text: {\n marginTop: 0,\n marginBottom: 0,\n height: 'auto',\n transformOrigin: '0 60%',\n transform: 'scale(1, 0.60)',\n borderRadius: theme.shape.borderRadius,\n '&:empty:before': {\n content: '\"\\\\00a0\"'\n }\n },\n\n /* Styles applied to the root element if `variant=\"rect\"`. */\n rect: {},\n\n /* Styles applied to the root element if `variant=\"circle\"`. */\n circle: {\n borderRadius: '50%'\n },\n\n /* Styles applied to the root element if `animation=\"pulse\"`. */\n pulse: {\n animation: '$pulse 1.5s ease-in-out 0.5s infinite'\n },\n '@keyframes pulse': {\n '0%': {\n opacity: 1\n },\n '50%': {\n opacity: 0.4\n },\n '100%': {\n opacity: 1\n }\n },\n\n /* Styles applied to the root element if `animation=\"wave\"`. */\n wave: {\n position: 'relative',\n overflow: 'hidden',\n '&::after': {\n animation: '$wave 1.6s linear 0.5s infinite',\n background: \"linear-gradient(90deg, transparent, \".concat(theme.palette.action.hover, \", transparent)\"),\n content: '\"\"',\n position: 'absolute',\n transform: 'translateX(-100%)',\n // Avoid flash during server-side hydration\n bottom: 0,\n left: 0,\n right: 0,\n top: 0\n }\n },\n '@keyframes wave': {\n '0%': {\n transform: 'translateX(-100%)'\n },\n '60%': {\n // +0.5s of delay between each loop\n transform: 'translateX(100%)'\n },\n '100%': {\n transform: 'translateX(100%)'\n }\n },\n\n /* Styles applied when the component is passed children. */\n withChildren: {\n '& > *': {\n visibility: 'hidden'\n }\n },\n\n /* Styles applied when the component is passed children and no width. */\n fitContent: {\n maxWidth: 'fit-content'\n },\n\n /* Styles applied when the component is passed children and no height. */\n heightAuto: {\n height: 'auto'\n }\n };\n};\nvar Skeleton = /*#__PURE__*/React.forwardRef(function Skeleton(props, ref) {\n var _props$animation = props.animation,\n animation = _props$animation === void 0 ? 'pulse' : _props$animation,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'span' : _props$component,\n height = props.height,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'text' : _props$variant,\n width = props.width,\n other = _objectWithoutProperties(props, [\"animation\", \"classes\", \"className\", \"component\", \"height\", \"variant\", \"width\"]);\n\n var hasChildren = Boolean(other.children);\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref,\n className: clsx(classes.root, classes[variant], className, hasChildren && [classes.withChildren, !width && classes.fitContent, !height && classes.heightAuto], animation !== false && classes[animation])\n }, other, {\n style: _extends({\n width: width,\n height: height\n }, other.style)\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Skeleton.propTypes = {\n /**\n * The animation.\n * If `false` the animation effect is disabled.\n */\n animation: PropTypes.oneOf(['pulse', 'wave', false]),\n\n /**\n * Optional children to infer width and height from.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Height of the skeleton.\n * Useful when you don't want to adapt the skeleton to a text element but for instance a card.\n */\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The type of content that will be rendered.\n */\n variant: PropTypes.oneOf(['text', 'rect', 'circle']),\n\n /**\n * Width of the skeleton.\n * Useful when the skeleton is inside an inline element with no width of its own.\n */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiSkeleton'\n})(Skeleton);","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\n\nexports.default = _default;","import { jsx } from 'react/jsx-runtime';\nimport { stringifyEntityRef } from '@backstage/catalog-model';\nimport { AnalyticsContext } from '@backstage/core-plugin-api';\nimport { createVersionedContext, useVersionedContext, createVersionedValueMap } from '@backstage/version-bridge';\n\nconst NewEntityContext = createVersionedContext(\n \"entity-context\"\n);\nconst AsyncEntityProvider = (props) => {\n const { children, entity, loading, error, refresh } = props;\n const value = { entity, loading, error, refresh };\n return /* @__PURE__ */ jsx(NewEntityContext.Provider, { value: createVersionedValueMap({ 1: value }), children: /* @__PURE__ */ jsx(\n AnalyticsContext,\n {\n attributes: {\n ...entity ? { entityRef: stringifyEntityRef(entity) } : void 0\n },\n children\n }\n ) });\n};\nconst EntityProvider = (props) => /* @__PURE__ */ jsx(\n AsyncEntityProvider,\n {\n entity: props.entity,\n loading: !Boolean(props.entity),\n error: void 0,\n refresh: void 0,\n children: props.children\n }\n);\nfunction useEntity() {\n const versionedHolder = useVersionedContext(\n \"entity-context\"\n );\n if (!versionedHolder) {\n throw new Error(\"Entity context is not available\");\n }\n const value = versionedHolder.atVersion(1);\n if (!value) {\n throw new Error(\"EntityContext v1 not available\");\n }\n if (!value.entity) {\n throw new Error(\n \"useEntity hook is being called outside of an EntityLayout where the entity has not been loaded. If this is intentional, please use useAsyncEntity instead.\"\n );\n }\n return { entity: value.entity };\n}\nfunction useAsyncEntity() {\n const versionedHolder = useVersionedContext(\n \"entity-context\"\n );\n if (!versionedHolder) {\n throw new Error(\"Entity context is not available\");\n }\n const value = versionedHolder.atVersion(1);\n if (!value) {\n throw new Error(\"EntityContext v1 not available\");\n }\n const { entity, loading, error, refresh } = value;\n return { entity, loading, error, refresh };\n}\n\nexport { AsyncEntityProvider, EntityProvider, useAsyncEntity, useEntity };\n//# sourceMappingURL=useEntity.esm.js.map\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'Visibility');\n\nexports.default = _default;","import { useEffect } from 'react';\nimport useAsyncFn from './useAsyncFn';\nexport default function useAsync(fn, deps) {\n if (deps === void 0) { deps = []; }\n var _a = useAsyncFn(fn, deps, {\n loading: true,\n }), state = _a[0], callback = _a[1];\n useEffect(function () {\n callback();\n }, [callback]);\n return state;\n}\n","import { __assign } from \"tslib\";\nimport { useCallback, useRef, useState } from 'react';\nimport useMountedState from './useMountedState';\nexport default function useAsyncFn(fn, deps, initialState) {\n if (deps === void 0) { deps = []; }\n if (initialState === void 0) { initialState = { loading: false }; }\n var lastCallId = useRef(0);\n var isMounted = useMountedState();\n var _a = useState(initialState), state = _a[0], set = _a[1];\n var callback = useCallback(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callId = ++lastCallId.current;\n if (!state.loading) {\n set(function (prevState) { return (__assign(__assign({}, prevState), { loading: true })); });\n }\n return fn.apply(void 0, args).then(function (value) {\n isMounted() && callId === lastCallId.current && set({ value: value, loading: false });\n return value;\n }, function (error) {\n isMounted() && callId === lastCallId.current && set({ error: error, loading: false });\n return error;\n });\n }, deps);\n return [state, callback];\n}\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { useAnalytics, useApp, useApi, configApiRef } from '@backstage/core-plugin-api';\nimport MaterialLink from '@material-ui/core/Link';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport classNames from 'classnames';\nimport { trimEnd } from 'lodash';\nimport { forwardRef } from 'react';\nimport { Link as Link$1, createRoutesFromChildren, Route } from 'react-router-dom';\nimport OpenInNew from '@material-ui/icons/OpenInNew';\n\nfunction isReactRouterBeta() {\n const [obj] = createRoutesFromChildren(/* @__PURE__ */ jsx(Route, { index: true, element: /* @__PURE__ */ jsx(\"div\", {}) }));\n return !obj.index;\n}\nconst useStyles = makeStyles(\n (theme) => ({\n visuallyHidden: {\n clip: \"rect(0 0 0 0)\",\n clipPath: \"inset(50%)\",\n overflow: \"hidden\",\n position: \"absolute\",\n userSelect: \"none\",\n whiteSpace: \"nowrap\",\n height: 1,\n width: 1\n },\n externalLink: {\n position: \"relative\"\n },\n externalLinkIcon: {\n verticalAlign: \"bottom\",\n marginLeft: theme.spacing(0.5)\n }\n }),\n { name: \"Link\" }\n);\nconst ExternalLinkIcon = () => {\n const app = useApp();\n const Icon = app.getSystemIcon(\"externalLink\") || OpenInNew;\n const classes = useStyles();\n return /* @__PURE__ */ jsx(Icon, { className: classes.externalLinkIcon });\n};\nconst isExternalUri = (uri) => /^([a-z+.-]+):/.test(uri);\nconst scriptProtocolPattern = (\n // eslint-disable-next-line no-control-regex\n /^[\\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\n);\nconst originalWindowOpen = window.open;\nif (originalWindowOpen && !originalWindowOpen.__backstage) {\n const newOpen = function open(...args) {\n const url = String(args[0]);\n if (scriptProtocolPattern.test(url)) {\n throw new Error(\n \"Rejected window.open() with a javascript: URL as a security precaution\"\n );\n }\n return originalWindowOpen.apply(this, args);\n };\n newOpen.__backstage = true;\n window.open = newOpen;\n}\nconst useBaseUrl = () => {\n try {\n const config = useApi(configApiRef);\n return config.getOptionalString(\"app.baseUrl\");\n } catch {\n return void 0;\n }\n};\nconst useBasePath = () => {\n const base = \"http://sample.dev\";\n const url = useBaseUrl() ?? \"/\";\n const { pathname } = new URL(url, base);\n return trimEnd(pathname, \"/\");\n};\nconst useResolvedPath = (uri) => {\n let resolvedPath = String(uri);\n const basePath = useBasePath();\n const external = isExternalUri(resolvedPath);\n const startsWithBasePath = resolvedPath.startsWith(basePath);\n if (!external && !startsWithBasePath) {\n resolvedPath = basePath.concat(resolvedPath);\n }\n return resolvedPath;\n};\nconst getNodeText = (node) => {\n if (node instanceof Array) {\n return node.map(getNodeText).join(\" \").trim();\n }\n if (typeof node === \"object\" && node) {\n return getNodeText(node?.props?.children);\n }\n if ([\"string\", \"number\"].includes(typeof node)) {\n return String(node);\n }\n return \"\";\n};\nconst Link = forwardRef(\n ({ onClick, noTrack, externalLinkIcon, ...props }, ref) => {\n const classes = useStyles();\n const analytics = useAnalytics();\n const to = isReactRouterBeta() ? useResolvedPath(props.to) : props.to;\n const linkText = getNodeText(props.children) || to;\n const external = isExternalUri(to);\n const newWindow = external && !!/^https?:/.exec(to);\n if (scriptProtocolPattern.test(to)) {\n throw new Error(\n \"Link component rejected javascript: URL as a security precaution\"\n );\n }\n const handleClick = (event) => {\n onClick?.(event);\n if (!noTrack) {\n analytics.captureEvent(\"click\", linkText, { attributes: { to } });\n }\n };\n return external ? (\n // External links\n /* @__PURE__ */ jsxs(\n MaterialLink,\n {\n ...newWindow ? { target: \"_blank\", rel: \"noopener\" } : {},\n ...props,\n ...props[\"aria-label\"] ? { \"aria-label\": `${props[\"aria-label\"]}, Opens in a new window` } : {},\n ref,\n href: to,\n onClick: handleClick,\n className: classNames(classes.externalLink, props.className),\n children: [\n props.children,\n externalLinkIcon && /* @__PURE__ */ jsx(ExternalLinkIcon, {}),\n /* @__PURE__ */ jsx(Typography, { component: \"span\", className: classes.visuallyHidden, children: \", Opens in a new window\" })\n ]\n }\n )\n ) : (\n // Interact with React Router for internal links\n /* @__PURE__ */ jsx(\n MaterialLink,\n {\n ...props,\n ref,\n component: Link$1,\n to,\n onClick: handleClick\n }\n )\n );\n }\n);\n\nexport { Link, isExternalUri, isReactRouterBeta, useResolvedPath };\n//# sourceMappingURL=Link.esm.js.map\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"\n}), 'Info');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\"\n}), 'OpenInNew');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"\n}), 'ArrowForward');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"\n}), 'Warning');\n\nexports.default = _default;","import { jsxs, jsx } from 'react/jsx-runtime';\nimport Box from '@material-ui/core/Box';\nimport Divider from '@material-ui/core/Divider';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport ArrowIcon from '@material-ui/icons/ArrowForward';\nimport { Link } from '../../components/Link/Link.esm.js';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n maxWidth: \"fit-content\",\n padding: theme.spacing(2, 2, 2, 2.5)\n },\n boxTitle: {\n margin: 0,\n color: theme.palette.textSubtle\n },\n arrow: {\n color: theme.palette.textSubtle\n }\n }),\n { name: \"BackstageBottomLink\" }\n);\nfunction BottomLink(props) {\n const { link, title, onClick } = props;\n const classes = useStyles();\n return /* @__PURE__ */ jsxs(Box, { children: [\n /* @__PURE__ */ jsx(Divider, {}),\n /* @__PURE__ */ jsx(Link, { to: link, onClick, underline: \"none\", children: /* @__PURE__ */ jsxs(Box, { display: \"flex\", alignItems: \"center\", className: classes.root, children: [\n /* @__PURE__ */ jsx(Box, { className: classes.boxTitle, fontWeight: \"fontWeightBold\", m: 1, children: /* @__PURE__ */ jsx(Typography, { children: /* @__PURE__ */ jsx(\"strong\", { children: title }) }) }),\n /* @__PURE__ */ jsx(ArrowIcon, { className: classes.arrow })\n ] }) })\n ] });\n}\n\nexport { BottomLink };\n//# sourceMappingURL=BottomLink.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport Button$1 from '@material-ui/core/Button';\nimport { forwardRef } from 'react';\nimport { Link } from '../Link/Link.esm.js';\n\nconst LinkWrapper = forwardRef((props, ref) => /* @__PURE__ */ jsx(Link, { ref, ...props, color: \"initial\" }));\nconst LinkButton = forwardRef((props, ref) => /* @__PURE__ */ jsx(Button$1, { ref, component: LinkWrapper, ...props }));\nconst Button = LinkButton;\n\nexport { Button, LinkButton };\n//# sourceMappingURL=LinkButton.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport Typography from '@material-ui/core/Typography';\nimport { Component } from 'react';\nimport { LinkButton } from '../../components/LinkButton/LinkButton.esm.js';\nimport { ErrorPanel } from '../../components/ErrorPanel/ErrorPanel.esm.js';\nimport { coreComponentsTranslationRef } from '../../translation.esm.js';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nconst SlackLink = (props) => {\n const { slackChannel } = props;\n const { t } = useTranslationRef(coreComponentsTranslationRef);\n if (!slackChannel) {\n return null;\n } else if (typeof slackChannel === \"string\") {\n return /* @__PURE__ */ jsx(Typography, { children: t(\"errorBoundary.title\", { slackChannel }) });\n } else if (!slackChannel.href) {\n return /* @__PURE__ */ jsx(Typography, { children: t(\"errorBoundary.title\", {\n slackChannel: slackChannel.name\n }) });\n }\n return /* @__PURE__ */ jsx(LinkButton, { to: slackChannel.href, variant: \"contained\", children: slackChannel.name });\n};\nconst ErrorBoundary = class ErrorBoundary2 extends Component {\n constructor(props) {\n super(props);\n this.state = {\n error: void 0,\n errorInfo: void 0\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(`ErrorBoundary, error: ${error}`, { error, errorInfo });\n this.setState({ error, errorInfo });\n }\n render() {\n const { slackChannel, children } = this.props;\n const { error } = this.state;\n if (!error) {\n return children;\n }\n return /* @__PURE__ */ jsx(ErrorPanel, { title: \"Something Went Wrong\", error, children: /* @__PURE__ */ jsx(SlackLink, { slackChannel }) });\n }\n};\n\nexport { ErrorBoundary };\n//# sourceMappingURL=ErrorBoundary.esm.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport Divider from '@material-ui/core/Divider';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { BottomLink } from '../BottomLink/BottomLink.esm.js';\nimport { ErrorBoundary } from '../ErrorBoundary/ErrorBoundary.esm.js';\n\nconst useStyles = makeStyles(\n (theme) => ({\n noPadding: {\n padding: 0,\n \"&:last-child\": {\n paddingBottom: 0\n }\n },\n contentAlignBottom: {\n display: \"flex\",\n alignItems: \"self-end\"\n },\n header: {\n padding: theme.spacing(2, 2, 2, 2.5)\n },\n headerTitle: {\n fontWeight: theme.typography.fontWeightBold\n },\n headerSubheader: {\n paddingTop: theme.spacing(1)\n },\n headerAvatar: {},\n headerAction: {},\n headerContent: {},\n subheader: {\n display: \"flex\"\n }\n }),\n { name: \"BackstageInfoCard\" }\n);\nconst CardActionsTopRight = withStyles(\n (theme) => ({\n root: {\n display: \"inline-block\",\n padding: theme.spacing(8, 8, 0, 0),\n float: \"right\"\n }\n }),\n { name: \"BackstageInfoCardCardActionsTopRight\" }\n)(CardActions);\nconst VARIANT_STYLES = {\n card: {\n flex: {\n display: \"flex\",\n flexDirection: \"column\"\n },\n fullHeight: {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\"\n },\n gridItem: {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"calc(100% - 10px)\",\n // for pages without content header\n marginBottom: \"10px\",\n breakInside: \"avoid-page\",\n \"@media print\": {\n height: \"auto\"\n }\n }\n },\n cardContent: {\n fullHeight: {\n flex: 1\n },\n gridItem: {\n flex: 1\n }\n }\n};\nfunction InfoCard(props) {\n const {\n title,\n subheader,\n divider = true,\n deepLink,\n slackChannel,\n errorBoundaryProps,\n variant,\n alignContent = \"normal\",\n children,\n headerStyle,\n headerProps,\n icon,\n action,\n actionsClassName,\n actions,\n cardClassName,\n actionsTopRight,\n className,\n noPadding,\n titleTypographyProps,\n subheaderTypographyProps\n } = props;\n const classes = useStyles();\n let calculatedStyle = {};\n let calculatedCardStyle = {};\n if (variant) {\n const variants = variant.split(/[\\s]+/g);\n variants.forEach((name) => {\n calculatedStyle = {\n ...calculatedStyle,\n ...VARIANT_STYLES.card[name]\n };\n calculatedCardStyle = {\n ...calculatedCardStyle,\n ...VARIANT_STYLES.cardContent[name]\n };\n });\n }\n const cardSubTitle = () => {\n if (!subheader && !icon) {\n return null;\n }\n return /* @__PURE__ */ jsxs(\"div\", { \"data-testid\": \"info-card-subheader\", children: [\n subheader && /* @__PURE__ */ jsx(\"div\", { className: classes.subheader, children: subheader }),\n icon\n ] });\n };\n const errProps = errorBoundaryProps || (slackChannel ? { slackChannel } : {});\n return /* @__PURE__ */ jsx(Card, { style: calculatedStyle, className, children: /* @__PURE__ */ jsxs(ErrorBoundary, { ...errProps, children: [\n title && /* @__PURE__ */ jsx(\n CardHeader,\n {\n classes: {\n root: classNames(classes.header),\n title: classes.headerTitle,\n subheader: classes.headerSubheader,\n avatar: classes.headerAvatar,\n action: classes.headerAction,\n content: classes.headerContent\n },\n title,\n subheader: cardSubTitle(),\n action,\n style: { ...headerStyle },\n titleTypographyProps,\n subheaderTypographyProps,\n ...headerProps\n }\n ),\n actionsTopRight && /* @__PURE__ */ jsx(CardActionsTopRight, { children: actionsTopRight }),\n divider && /* @__PURE__ */ jsx(Divider, {}),\n /* @__PURE__ */ jsx(\n CardContent,\n {\n className: classNames(cardClassName, {\n [classes.noPadding]: noPadding,\n [classes.contentAlignBottom]: alignContent === \"bottom\"\n }),\n style: calculatedCardStyle,\n children\n }\n ),\n actions && /* @__PURE__ */ jsx(CardActions, { className: actionsClassName, children: actions }),\n deepLink && /* @__PURE__ */ jsx(BottomLink, { ...deepLink })\n ] }) });\n}\n\nexport { InfoCard };\n//# sourceMappingURL=InfoCard.esm.js.map\n"],"names":["Skeleton","props","ref","_props$animation","animation","classes","className","_props$component","component","Component","height","_props$variant","variant","width","other","hasChildren","Boolean","children","root","withChildren","fitContent","heightAuto","style","withStyles","theme","display","backgroundColor","alpha","palette","text","primary","type","marginTop","marginBottom","transformOrigin","transform","borderRadius","shape","content","rect","circle","pulse","opacity","wave","position","overflow","background","concat","action","hover","bottom","left","right","top","visibility","maxWidth","name","_interopRequireDefault","_interopRequireWildcard","exports","React","_default","default","createElement","d","useEntity","versionedHolder","useVersionedContext","Error","value","atVersion","entity","createVersionedContext","useAsync","fn","deps","_a","initialState","loading","lastCallId","useRef","isMounted","useMountedState","useState","state","set","callback","useCallback","args","_i","arguments","length","callId","current","prevState","__assign","apply","then","error","useAsyncFn","useEffect","useStyles","makeStyles","visuallyHidden","clip","clipPath","userSelect","whiteSpace","externalLink","externalLinkIcon","verticalAlign","marginLeft","spacing","ExternalLinkIcon","Icon","useApp","getSystemIcon","jsx","isExternalUri","uri","test","scriptProtocolPattern","originalWindowOpen","window","open","__backstage","newOpen","url","String","this","getNodeText","node","Array","map","join","trim","includes","Link","forwardRef","onClick","noTrack","analytics","useAnalytics","to","obj","createRoutesFromChildren","Route","index","element","isReactRouterBeta","resolvedPath","basePath","useApi","configApiRef","getOptionalString","useBaseUrl","pathname","URL","trimEnd","useBasePath","external","startsWithBasePath","startsWith","useResolvedPath","linkText","newWindow","exec","handleClick","event","captureEvent","attributes","jsxs","target","rel","href","padding","boxTitle","margin","color","textSubtle","arrow","BottomLink","link","title","Box","Divider","underline","alignItems","fontWeight","m","Typography","A","LinkWrapper","LinkButton","Button","SlackLink","slackChannel","t","ErrorBoundary","constructor","super","errorInfo","componentDidCatch","console","setState","render","noPadding","paddingBottom","contentAlignBottom","header","headerTitle","typography","fontWeightBold","headerSubheader","paddingTop","headerAvatar","headerAction","headerContent","subheader","CardActionsTopRight","float","CardActions","VARIANT_STYLES","card","flex","flexDirection","fullHeight","gridItem","breakInside","cardContent","InfoCard","divider","deepLink","errorBoundaryProps","alignContent","headerStyle","headerProps","icon","actionsClassName","actions","cardClassName","actionsTopRight","titleTypographyProps","subheaderTypographyProps","calculatedStyle","calculatedCardStyle","split","forEach","errProps","Card","CardHeader","avatar","CardContent"],"sourceRoot":""}
|
|
1
|
+
{"version":3,"file":"static/512.d592d164.chunk.js","mappings":"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","sources":["webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/lab/esm/Skeleton/Skeleton.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Add.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/plugin-catalog-react/dist/hooks/useEntity.esm.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Visibility.js","webpack://internal.plugin-kuadrant/../../node_modules/react-use/esm/useAsync.js","webpack://internal.plugin-kuadrant/../../node_modules/react-use/esm/useAsyncFn.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/components/Link/Link.esm.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Info.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/OpenInNew.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/ArrowForward.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/VisibilityOff.js","webpack://internal.plugin-kuadrant/../../node_modules/@material-ui/icons/Warning.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/layout/BottomLink/BottomLink.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/components/LinkButton/LinkButton.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/layout/ErrorBoundary/ErrorBoundary.esm.js","webpack://internal.plugin-kuadrant/./node_modules/@backstage/core-components/dist/layout/InfoCard/InfoCard.esm.js"],"sourcesContent":["import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutProperties from \"@babel/runtime/helpers/esm/objectWithoutProperties\";\nimport * as React from 'react';\nimport clsx from 'clsx';\nimport PropTypes from 'prop-types';\nimport { alpha, withStyles } from '@material-ui/core/styles';\nexport var styles = function styles(theme) {\n return {\n /* Styles applied to the root element. */\n root: {\n display: 'block',\n // Create a \"on paper\" color with sufficient contrast retaining the color\n backgroundColor: alpha(theme.palette.text.primary, theme.palette.type === 'light' ? 0.11 : 0.13),\n height: '1.2em'\n },\n\n /* Styles applied to the root element if `variant=\"text\"`. */\n text: {\n marginTop: 0,\n marginBottom: 0,\n height: 'auto',\n transformOrigin: '0 60%',\n transform: 'scale(1, 0.60)',\n borderRadius: theme.shape.borderRadius,\n '&:empty:before': {\n content: '\"\\\\00a0\"'\n }\n },\n\n /* Styles applied to the root element if `variant=\"rect\"`. */\n rect: {},\n\n /* Styles applied to the root element if `variant=\"circle\"`. */\n circle: {\n borderRadius: '50%'\n },\n\n /* Styles applied to the root element if `animation=\"pulse\"`. */\n pulse: {\n animation: '$pulse 1.5s ease-in-out 0.5s infinite'\n },\n '@keyframes pulse': {\n '0%': {\n opacity: 1\n },\n '50%': {\n opacity: 0.4\n },\n '100%': {\n opacity: 1\n }\n },\n\n /* Styles applied to the root element if `animation=\"wave\"`. */\n wave: {\n position: 'relative',\n overflow: 'hidden',\n '&::after': {\n animation: '$wave 1.6s linear 0.5s infinite',\n background: \"linear-gradient(90deg, transparent, \".concat(theme.palette.action.hover, \", transparent)\"),\n content: '\"\"',\n position: 'absolute',\n transform: 'translateX(-100%)',\n // Avoid flash during server-side hydration\n bottom: 0,\n left: 0,\n right: 0,\n top: 0\n }\n },\n '@keyframes wave': {\n '0%': {\n transform: 'translateX(-100%)'\n },\n '60%': {\n // +0.5s of delay between each loop\n transform: 'translateX(100%)'\n },\n '100%': {\n transform: 'translateX(100%)'\n }\n },\n\n /* Styles applied when the component is passed children. */\n withChildren: {\n '& > *': {\n visibility: 'hidden'\n }\n },\n\n /* Styles applied when the component is passed children and no width. */\n fitContent: {\n maxWidth: 'fit-content'\n },\n\n /* Styles applied when the component is passed children and no height. */\n heightAuto: {\n height: 'auto'\n }\n };\n};\nvar Skeleton = /*#__PURE__*/React.forwardRef(function Skeleton(props, ref) {\n var _props$animation = props.animation,\n animation = _props$animation === void 0 ? 'pulse' : _props$animation,\n classes = props.classes,\n className = props.className,\n _props$component = props.component,\n Component = _props$component === void 0 ? 'span' : _props$component,\n height = props.height,\n _props$variant = props.variant,\n variant = _props$variant === void 0 ? 'text' : _props$variant,\n width = props.width,\n other = _objectWithoutProperties(props, [\"animation\", \"classes\", \"className\", \"component\", \"height\", \"variant\", \"width\"]);\n\n var hasChildren = Boolean(other.children);\n return /*#__PURE__*/React.createElement(Component, _extends({\n ref: ref,\n className: clsx(classes.root, classes[variant], className, hasChildren && [classes.withChildren, !width && classes.fitContent, !height && classes.heightAuto], animation !== false && classes[animation])\n }, other, {\n style: _extends({\n width: width,\n height: height\n }, other.style)\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? Skeleton.propTypes = {\n /**\n * The animation.\n * If `false` the animation effect is disabled.\n */\n animation: PropTypes.oneOf(['pulse', 'wave', false]),\n\n /**\n * Optional children to infer width and height from.\n */\n children: PropTypes.node,\n\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object.isRequired,\n\n /**\n * @ignore\n */\n className: PropTypes.string,\n\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes\n /* @typescript-to-proptypes-ignore */\n .elementType,\n\n /**\n * Height of the skeleton.\n * Useful when you don't want to adapt the skeleton to a text element but for instance a card.\n */\n height: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n /**\n * The type of content that will be rendered.\n */\n variant: PropTypes.oneOf(['text', 'rect', 'circle']),\n\n /**\n * Width of the skeleton.\n * Useful when the skeleton is inside an inline element with no width of its own.\n */\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string])\n} : void 0;\nexport default withStyles(styles, {\n name: 'MuiSkeleton'\n})(Skeleton);","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z\"\n}), 'Add');\n\nexports.default = _default;","import { jsx } from 'react/jsx-runtime';\nimport { stringifyEntityRef } from '@backstage/catalog-model';\nimport { AnalyticsContext } from '@backstage/core-plugin-api';\nimport { createVersionedContext, useVersionedContext, createVersionedValueMap } from '@backstage/version-bridge';\n\nconst NewEntityContext = createVersionedContext(\n \"entity-context\"\n);\nconst AsyncEntityProvider = (props) => {\n const { children, entity, loading, error, refresh } = props;\n const value = { entity, loading, error, refresh };\n return /* @__PURE__ */ jsx(NewEntityContext.Provider, { value: createVersionedValueMap({ 1: value }), children: /* @__PURE__ */ jsx(\n AnalyticsContext,\n {\n attributes: {\n ...entity ? { entityRef: stringifyEntityRef(entity) } : void 0\n },\n children\n }\n ) });\n};\nconst EntityProvider = (props) => /* @__PURE__ */ jsx(\n AsyncEntityProvider,\n {\n entity: props.entity,\n loading: !Boolean(props.entity),\n error: void 0,\n refresh: void 0,\n children: props.children\n }\n);\nfunction useEntity() {\n const versionedHolder = useVersionedContext(\n \"entity-context\"\n );\n if (!versionedHolder) {\n throw new Error(\"Entity context is not available\");\n }\n const value = versionedHolder.atVersion(1);\n if (!value) {\n throw new Error(\"EntityContext v1 not available\");\n }\n if (!value.entity) {\n throw new Error(\n \"useEntity hook is being called outside of an EntityLayout where the entity has not been loaded. If this is intentional, please use useAsyncEntity instead.\"\n );\n }\n return { entity: value.entity };\n}\nfunction useAsyncEntity() {\n const versionedHolder = useVersionedContext(\n \"entity-context\"\n );\n if (!versionedHolder) {\n throw new Error(\"Entity context is not available\");\n }\n const value = versionedHolder.atVersion(1);\n if (!value) {\n throw new Error(\"EntityContext v1 not available\");\n }\n const { entity, loading, error, refresh } = value;\n return { entity, loading, error, refresh };\n}\n\nexport { AsyncEntityProvider, EntityProvider, useAsyncEntity, useEntity };\n//# sourceMappingURL=useEntity.esm.js.map\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 4.5C7 4.5 2.73 7.61 1 12c1.73 4.39 6 7.5 11 7.5s9.27-3.11 11-7.5c-1.73-4.39-6-7.5-11-7.5zM12 17c-2.76 0-5-2.24-5-5s2.24-5 5-5 5 2.24 5 5-2.24 5-5 5zm0-8c-1.66 0-3 1.34-3 3s1.34 3 3 3 3-1.34 3-3-1.34-3-3-3z\"\n}), 'Visibility');\n\nexports.default = _default;","import { useEffect } from 'react';\nimport useAsyncFn from './useAsyncFn';\nexport default function useAsync(fn, deps) {\n if (deps === void 0) { deps = []; }\n var _a = useAsyncFn(fn, deps, {\n loading: true,\n }), state = _a[0], callback = _a[1];\n useEffect(function () {\n callback();\n }, [callback]);\n return state;\n}\n","import { __assign } from \"tslib\";\nimport { useCallback, useRef, useState } from 'react';\nimport useMountedState from './useMountedState';\nexport default function useAsyncFn(fn, deps, initialState) {\n if (deps === void 0) { deps = []; }\n if (initialState === void 0) { initialState = { loading: false }; }\n var lastCallId = useRef(0);\n var isMounted = useMountedState();\n var _a = useState(initialState), state = _a[0], set = _a[1];\n var callback = useCallback(function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var callId = ++lastCallId.current;\n if (!state.loading) {\n set(function (prevState) { return (__assign(__assign({}, prevState), { loading: true })); });\n }\n return fn.apply(void 0, args).then(function (value) {\n isMounted() && callId === lastCallId.current && set({ value: value, loading: false });\n return value;\n }, function (error) {\n isMounted() && callId === lastCallId.current && set({ error: error, loading: false });\n return error;\n });\n }, deps);\n return [state, callback];\n}\n","import { jsxs, jsx } from 'react/jsx-runtime';\nimport { useAnalytics, useApp, useApi, configApiRef } from '@backstage/core-plugin-api';\nimport MaterialLink from '@material-ui/core/Link';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport classNames from 'classnames';\nimport { trimEnd } from 'lodash';\nimport { forwardRef } from 'react';\nimport { Link as Link$1, createRoutesFromChildren, Route } from 'react-router-dom';\nimport OpenInNew from '@material-ui/icons/OpenInNew';\n\nfunction isReactRouterBeta() {\n const [obj] = createRoutesFromChildren(/* @__PURE__ */ jsx(Route, { index: true, element: /* @__PURE__ */ jsx(\"div\", {}) }));\n return !obj.index;\n}\nconst useStyles = makeStyles(\n (theme) => ({\n visuallyHidden: {\n clip: \"rect(0 0 0 0)\",\n clipPath: \"inset(50%)\",\n overflow: \"hidden\",\n position: \"absolute\",\n userSelect: \"none\",\n whiteSpace: \"nowrap\",\n height: 1,\n width: 1\n },\n externalLink: {\n position: \"relative\"\n },\n externalLinkIcon: {\n verticalAlign: \"bottom\",\n marginLeft: theme.spacing(0.5)\n }\n }),\n { name: \"Link\" }\n);\nconst ExternalLinkIcon = () => {\n const app = useApp();\n const Icon = app.getSystemIcon(\"externalLink\") || OpenInNew;\n const classes = useStyles();\n return /* @__PURE__ */ jsx(Icon, { className: classes.externalLinkIcon });\n};\nconst isExternalUri = (uri) => /^([a-z+.-]+):/.test(uri);\nconst scriptProtocolPattern = (\n // eslint-disable-next-line no-control-regex\n /^[\\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\n);\nconst originalWindowOpen = window.open;\nif (originalWindowOpen && !originalWindowOpen.__backstage) {\n const newOpen = function open(...args) {\n const url = String(args[0]);\n if (scriptProtocolPattern.test(url)) {\n throw new Error(\n \"Rejected window.open() with a javascript: URL as a security precaution\"\n );\n }\n return originalWindowOpen.apply(this, args);\n };\n newOpen.__backstage = true;\n window.open = newOpen;\n}\nconst useBaseUrl = () => {\n try {\n const config = useApi(configApiRef);\n return config.getOptionalString(\"app.baseUrl\");\n } catch {\n return void 0;\n }\n};\nconst useBasePath = () => {\n const base = \"http://sample.dev\";\n const url = useBaseUrl() ?? \"/\";\n const { pathname } = new URL(url, base);\n return trimEnd(pathname, \"/\");\n};\nconst useResolvedPath = (uri) => {\n let resolvedPath = String(uri);\n const basePath = useBasePath();\n const external = isExternalUri(resolvedPath);\n const startsWithBasePath = resolvedPath.startsWith(basePath);\n if (!external && !startsWithBasePath) {\n resolvedPath = basePath.concat(resolvedPath);\n }\n return resolvedPath;\n};\nconst getNodeText = (node) => {\n if (node instanceof Array) {\n return node.map(getNodeText).join(\" \").trim();\n }\n if (typeof node === \"object\" && node) {\n return getNodeText(node?.props?.children);\n }\n if ([\"string\", \"number\"].includes(typeof node)) {\n return String(node);\n }\n return \"\";\n};\nconst Link = forwardRef(\n ({ onClick, noTrack, externalLinkIcon, ...props }, ref) => {\n const classes = useStyles();\n const analytics = useAnalytics();\n const to = isReactRouterBeta() ? useResolvedPath(props.to) : props.to;\n const linkText = getNodeText(props.children) || to;\n const external = isExternalUri(to);\n const newWindow = external && !!/^https?:/.exec(to);\n if (scriptProtocolPattern.test(to)) {\n throw new Error(\n \"Link component rejected javascript: URL as a security precaution\"\n );\n }\n const handleClick = (event) => {\n onClick?.(event);\n if (!noTrack) {\n analytics.captureEvent(\"click\", linkText, { attributes: { to } });\n }\n };\n return external ? (\n // External links\n /* @__PURE__ */ jsxs(\n MaterialLink,\n {\n ...newWindow ? { target: \"_blank\", rel: \"noopener\" } : {},\n ...props,\n ...props[\"aria-label\"] ? { \"aria-label\": `${props[\"aria-label\"]}, Opens in a new window` } : {},\n ref,\n href: to,\n onClick: handleClick,\n className: classNames(classes.externalLink, props.className),\n children: [\n props.children,\n externalLinkIcon && /* @__PURE__ */ jsx(ExternalLinkIcon, {}),\n /* @__PURE__ */ jsx(Typography, { component: \"span\", className: classes.visuallyHidden, children: \", Opens in a new window\" })\n ]\n }\n )\n ) : (\n // Interact with React Router for internal links\n /* @__PURE__ */ jsx(\n MaterialLink,\n {\n ...props,\n ref,\n component: Link$1,\n to,\n onClick: handleClick\n }\n )\n );\n }\n);\n\nexport { Link, isExternalUri, isReactRouterBeta, useResolvedPath };\n//# sourceMappingURL=Link.esm.js.map\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 2C6.48 2 2 6.48 2 12s4.48 10 10 10 10-4.48 10-10S17.52 2 12 2zm1 15h-2v-6h2v6zm0-8h-2V7h2v2z\"\n}), 'Info');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z\"\n}), 'OpenInNew');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 4l-1.41 1.41L16.17 11H4v2h12.17l-5.58 5.59L12 20l8-8z\"\n}), 'ArrowForward');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M12 7c2.76 0 5 2.24 5 5 0 .65-.13 1.26-.36 1.83l2.92 2.92c1.51-1.26 2.7-2.89 3.43-4.75-1.73-4.39-6-7.5-11-7.5-1.4 0-2.74.25-3.98.7l2.16 2.16C10.74 7.13 11.35 7 12 7zM2 4.27l2.28 2.28.46.46C3.08 8.3 1.78 10.02 1 12c1.73 4.39 6 7.5 11 7.5 1.55 0 3.03-.3 4.38-.84l.42.42L19.73 22 21 20.73 3.27 3 2 4.27zM7.53 9.8l1.55 1.55c-.05.21-.08.43-.08.65 0 1.66 1.34 3 3 3 .22 0 .44-.03.65-.08l1.55 1.55c-.67.33-1.41.53-2.2.53-2.76 0-5-2.24-5-5 0-.79.2-1.53.53-2.2zm4.31-.78l3.15 3.15.02-.16c0-1.66-1.34-3-3-3l-.17.01z\"\n}), 'VisibilityOff');\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nvar _interopRequireWildcard = require(\"@babel/runtime/helpers/interopRequireWildcard\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar React = _interopRequireWildcard(require(\"react\"));\n\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\n\nvar _default = (0, _createSvgIcon.default)( /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1 21h22L12 2 1 21zm12-3h-2v-2h2v2zm0-4h-2v-4h2v4z\"\n}), 'Warning');\n\nexports.default = _default;","import { jsxs, jsx } from 'react/jsx-runtime';\nimport Box from '@material-ui/core/Box';\nimport Divider from '@material-ui/core/Divider';\nimport { makeStyles } from '@material-ui/core/styles';\nimport Typography from '@material-ui/core/Typography';\nimport ArrowIcon from '@material-ui/icons/ArrowForward';\nimport { Link } from '../../components/Link/Link.esm.js';\n\nconst useStyles = makeStyles(\n (theme) => ({\n root: {\n maxWidth: \"fit-content\",\n padding: theme.spacing(2, 2, 2, 2.5)\n },\n boxTitle: {\n margin: 0,\n color: theme.palette.textSubtle\n },\n arrow: {\n color: theme.palette.textSubtle\n }\n }),\n { name: \"BackstageBottomLink\" }\n);\nfunction BottomLink(props) {\n const { link, title, onClick } = props;\n const classes = useStyles();\n return /* @__PURE__ */ jsxs(Box, { children: [\n /* @__PURE__ */ jsx(Divider, {}),\n /* @__PURE__ */ jsx(Link, { to: link, onClick, underline: \"none\", children: /* @__PURE__ */ jsxs(Box, { display: \"flex\", alignItems: \"center\", className: classes.root, children: [\n /* @__PURE__ */ jsx(Box, { className: classes.boxTitle, fontWeight: \"fontWeightBold\", m: 1, children: /* @__PURE__ */ jsx(Typography, { children: /* @__PURE__ */ jsx(\"strong\", { children: title }) }) }),\n /* @__PURE__ */ jsx(ArrowIcon, { className: classes.arrow })\n ] }) })\n ] });\n}\n\nexport { BottomLink };\n//# sourceMappingURL=BottomLink.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport Button$1 from '@material-ui/core/Button';\nimport { forwardRef } from 'react';\nimport { Link } from '../Link/Link.esm.js';\n\nconst LinkWrapper = forwardRef((props, ref) => /* @__PURE__ */ jsx(Link, { ref, ...props, color: \"initial\" }));\nconst LinkButton = forwardRef((props, ref) => /* @__PURE__ */ jsx(Button$1, { ref, component: LinkWrapper, ...props }));\nconst Button = LinkButton;\n\nexport { Button, LinkButton };\n//# sourceMappingURL=LinkButton.esm.js.map\n","import { jsx } from 'react/jsx-runtime';\nimport Typography from '@material-ui/core/Typography';\nimport { Component } from 'react';\nimport { LinkButton } from '../../components/LinkButton/LinkButton.esm.js';\nimport { ErrorPanel } from '../../components/ErrorPanel/ErrorPanel.esm.js';\nimport { coreComponentsTranslationRef } from '../../translation.esm.js';\nimport { useTranslationRef } from '@backstage/core-plugin-api/alpha';\n\nconst SlackLink = (props) => {\n const { slackChannel } = props;\n const { t } = useTranslationRef(coreComponentsTranslationRef);\n if (!slackChannel) {\n return null;\n } else if (typeof slackChannel === \"string\") {\n return /* @__PURE__ */ jsx(Typography, { children: t(\"errorBoundary.title\", { slackChannel }) });\n } else if (!slackChannel.href) {\n return /* @__PURE__ */ jsx(Typography, { children: t(\"errorBoundary.title\", {\n slackChannel: slackChannel.name\n }) });\n }\n return /* @__PURE__ */ jsx(LinkButton, { to: slackChannel.href, variant: \"contained\", children: slackChannel.name });\n};\nconst ErrorBoundary = class ErrorBoundary2 extends Component {\n constructor(props) {\n super(props);\n this.state = {\n error: void 0,\n errorInfo: void 0\n };\n }\n componentDidCatch(error, errorInfo) {\n console.error(`ErrorBoundary, error: ${error}`, { error, errorInfo });\n this.setState({ error, errorInfo });\n }\n render() {\n const { slackChannel, children } = this.props;\n const { error } = this.state;\n if (!error) {\n return children;\n }\n return /* @__PURE__ */ jsx(ErrorPanel, { title: \"Something Went Wrong\", error, children: /* @__PURE__ */ jsx(SlackLink, { slackChannel }) });\n }\n};\n\nexport { ErrorBoundary };\n//# sourceMappingURL=ErrorBoundary.esm.js.map\n","import { jsx, jsxs } from 'react/jsx-runtime';\nimport Card from '@material-ui/core/Card';\nimport CardActions from '@material-ui/core/CardActions';\nimport CardContent from '@material-ui/core/CardContent';\nimport CardHeader from '@material-ui/core/CardHeader';\nimport Divider from '@material-ui/core/Divider';\nimport { makeStyles, withStyles } from '@material-ui/core/styles';\nimport classNames from 'classnames';\nimport { BottomLink } from '../BottomLink/BottomLink.esm.js';\nimport { ErrorBoundary } from '../ErrorBoundary/ErrorBoundary.esm.js';\n\nconst useStyles = makeStyles(\n (theme) => ({\n noPadding: {\n padding: 0,\n \"&:last-child\": {\n paddingBottom: 0\n }\n },\n contentAlignBottom: {\n display: \"flex\",\n alignItems: \"self-end\"\n },\n header: {\n padding: theme.spacing(2, 2, 2, 2.5)\n },\n headerTitle: {\n fontWeight: theme.typography.fontWeightBold\n },\n headerSubheader: {\n paddingTop: theme.spacing(1)\n },\n headerAvatar: {},\n headerAction: {},\n headerContent: {},\n subheader: {\n display: \"flex\"\n }\n }),\n { name: \"BackstageInfoCard\" }\n);\nconst CardActionsTopRight = withStyles(\n (theme) => ({\n root: {\n display: \"inline-block\",\n padding: theme.spacing(8, 8, 0, 0),\n float: \"right\"\n }\n }),\n { name: \"BackstageInfoCardCardActionsTopRight\" }\n)(CardActions);\nconst VARIANT_STYLES = {\n card: {\n flex: {\n display: \"flex\",\n flexDirection: \"column\"\n },\n fullHeight: {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"100%\"\n },\n gridItem: {\n display: \"flex\",\n flexDirection: \"column\",\n height: \"calc(100% - 10px)\",\n // for pages without content header\n marginBottom: \"10px\",\n breakInside: \"avoid-page\",\n \"@media print\": {\n height: \"auto\"\n }\n }\n },\n cardContent: {\n fullHeight: {\n flex: 1\n },\n gridItem: {\n flex: 1\n }\n }\n};\nfunction InfoCard(props) {\n const {\n title,\n subheader,\n divider = true,\n deepLink,\n slackChannel,\n errorBoundaryProps,\n variant,\n alignContent = \"normal\",\n children,\n headerStyle,\n headerProps,\n icon,\n action,\n actionsClassName,\n actions,\n cardClassName,\n actionsTopRight,\n className,\n noPadding,\n titleTypographyProps,\n subheaderTypographyProps\n } = props;\n const classes = useStyles();\n let calculatedStyle = {};\n let calculatedCardStyle = {};\n if (variant) {\n const variants = variant.split(/[\\s]+/g);\n variants.forEach((name) => {\n calculatedStyle = {\n ...calculatedStyle,\n ...VARIANT_STYLES.card[name]\n };\n calculatedCardStyle = {\n ...calculatedCardStyle,\n ...VARIANT_STYLES.cardContent[name]\n };\n });\n }\n const cardSubTitle = () => {\n if (!subheader && !icon) {\n return null;\n }\n return /* @__PURE__ */ jsxs(\"div\", { \"data-testid\": \"info-card-subheader\", children: [\n subheader && /* @__PURE__ */ jsx(\"div\", { className: classes.subheader, children: subheader }),\n icon\n ] });\n };\n const errProps = errorBoundaryProps || (slackChannel ? { slackChannel } : {});\n return /* @__PURE__ */ jsx(Card, { style: calculatedStyle, className, children: /* @__PURE__ */ jsxs(ErrorBoundary, { ...errProps, children: [\n title && /* @__PURE__ */ jsx(\n CardHeader,\n {\n classes: {\n root: classNames(classes.header),\n title: classes.headerTitle,\n subheader: classes.headerSubheader,\n avatar: classes.headerAvatar,\n action: classes.headerAction,\n content: classes.headerContent\n },\n title,\n subheader: cardSubTitle(),\n action,\n style: { ...headerStyle },\n titleTypographyProps,\n subheaderTypographyProps,\n ...headerProps\n }\n ),\n actionsTopRight && /* @__PURE__ */ jsx(CardActionsTopRight, { children: actionsTopRight }),\n divider && /* @__PURE__ */ jsx(Divider, {}),\n /* @__PURE__ */ jsx(\n CardContent,\n {\n className: classNames(cardClassName, {\n [classes.noPadding]: noPadding,\n [classes.contentAlignBottom]: alignContent === \"bottom\"\n }),\n style: calculatedCardStyle,\n children\n }\n ),\n actions && /* @__PURE__ */ jsx(CardActions, { className: actionsClassName, children: actions }),\n deepLink && /* @__PURE__ */ jsx(BottomLink, { ...deepLink })\n ] }) });\n}\n\nexport { InfoCard };\n//# sourceMappingURL=InfoCard.esm.js.map\n"],"names":["Skeleton","props","ref","_props$animation","animation","classes","className","_props$component","component","Component","height","_props$variant","variant","width","other","hasChildren","Boolean","children","root","withChildren","fitContent","heightAuto","style","withStyles","theme","display","backgroundColor","alpha","palette","text","primary","type","marginTop","marginBottom","transformOrigin","transform","borderRadius","shape","content","rect","circle","pulse","opacity","wave","position","overflow","background","concat","action","hover","bottom","left","right","top","visibility","maxWidth","name","_interopRequireDefault","_interopRequireWildcard","exports","React","_default","default","createElement","d","useEntity","versionedHolder","useVersionedContext","Error","value","atVersion","entity","createVersionedContext","useAsync","fn","deps","_a","initialState","loading","lastCallId","useRef","isMounted","useMountedState","useState","state","set","callback","useCallback","args","_i","arguments","length","callId","current","prevState","__assign","apply","then","error","useAsyncFn","useEffect","useStyles","makeStyles","visuallyHidden","clip","clipPath","userSelect","whiteSpace","externalLink","externalLinkIcon","verticalAlign","marginLeft","spacing","ExternalLinkIcon","Icon","useApp","getSystemIcon","jsx","isExternalUri","uri","test","scriptProtocolPattern","originalWindowOpen","window","open","__backstage","newOpen","url","String","this","getNodeText","node","Array","map","join","trim","includes","Link","forwardRef","onClick","noTrack","analytics","useAnalytics","to","obj","createRoutesFromChildren","Route","index","element","isReactRouterBeta","resolvedPath","basePath","useApi","configApiRef","getOptionalString","useBaseUrl","pathname","URL","trimEnd","useBasePath","external","startsWithBasePath","startsWith","useResolvedPath","linkText","newWindow","exec","handleClick","event","captureEvent","attributes","jsxs","target","rel","href","padding","boxTitle","margin","color","textSubtle","arrow","BottomLink","link","title","Box","Divider","underline","alignItems","fontWeight","m","Typography","A","LinkWrapper","LinkButton","Button","SlackLink","slackChannel","t","ErrorBoundary","constructor","super","errorInfo","componentDidCatch","console","setState","render","noPadding","paddingBottom","contentAlignBottom","header","headerTitle","typography","fontWeightBold","headerSubheader","paddingTop","headerAvatar","headerAction","headerContent","subheader","CardActionsTopRight","float","CardActions","VARIANT_STYLES","card","flex","flexDirection","fullHeight","gridItem","breakInside","cardContent","InfoCard","divider","deepLink","errorBoundaryProps","alignContent","headerStyle","headerProps","icon","actionsClassName","actions","cardClassName","actionsTopRight","titleTypographyProps","subheaderTypographyProps","calculatedStyle","calculatedCardStyle","split","forEach","errProps","Card","CardHeader","avatar","CardContent"],"sourceRoot":""}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[5289],{24170:(e,t,a)=>{a.d(t,{o:()=>l,q:()=>i});const l=e=>e&&e.trim()?e.length>253?"Must be 253 characters or less":/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/.test(e)?null:"Must be lowercase alphanumeric with hyphens, start and end with alphanumeric":"Name is required",i=e=>{if(!e)return null;try{const t=new URL(e);return["http:","https:"].includes(t.protocol)?null:"Must be a valid HTTP or HTTPS URL"}catch{return"Must be a valid URL"}}},26997:(e,t,a)=>{a.d(t,{C:()=>D});var l=a(31085),i=a(95478),s=a(76891),n=a(61477),o=a(46805),r=a(10394),d=a(72501),c=a(42899),u=a(16249),m=a(34839),h=a(29365),x=a(67720),p=a(71677),A=a(26343),v=a(95061),j=a(29635),g=a(86901),y=a(30285),f=a(93453),b=a(64947),P=a(78467),C=a(58837),S=a(89031),T=a(18466),I=a(22097),N=a(64047),R=a(48351),k=a(91638),L=a(86687),B=a(86197),w=a(24170),z=a(97859);const W=(0,C.A)(e=>({asterisk:{color:"#f44336"},sectionHeader:{display:"flex",alignItems:"center",gap:e.spacing(.5),marginTop:e.spacing(2),marginBottom:e.spacing(1)},infoIcon:{fontSize:18,color:e.palette.text.secondary},tagChip:{marginRight:e.spacing(.5),marginBottom:e.spacing(.5)}})),D=({open:e,onClose:t,onSuccess:a,namespace:C,name:D})=>{var H,q;const F=W(),M=(0,I.useApi)(N.s),[U,E]=(0,i.useState)(!1),[$,K]=(0,i.useState)(""),[_,G]=(0,i.useState)(""),[V,O]=(0,i.useState)("v1"),[J,Q]=(0,i.useState)("Draft"),[X,Y]=(0,i.useState)("production"),[Z,ee]=(0,i.useState)("manual"),[te,ae]=(0,i.useState)([]),[le,ie]=(0,i.useState)(null),[se,ne]=(0,i.useState)(""),[oe,re]=(0,i.useState)(""),[de,ce]=(0,i.useState)(""),[ue,me]=(0,i.useState)(""),[he,xe]=(0,i.useState)(""),[pe,Ae]=(0,i.useState)(null),[ve,je]=(0,i.useState)(null),[ge,ye]=(0,i.useState)(""),[fe,be]=(0,i.useState)(!1),[Pe,Ce]=(0,i.useState)(null);(0,i.useEffect)(()=>{e&&C&&D&&(E(!0),ye(""),M.getApiProduct(C,D).then(e=>{var t,a,l,i,s,n,o,r,d,c;K(e.spec.displayName||""),G(e.spec.description||""),O(e.spec.version||"v1"),Q(e.spec.publishStatus||"Draft"),Y((null===(t=e.metadata.labels)||void 0===t?void 0:t.lifecycle)||"production"),ee(e.spec.approvalMode||"manual"),ae(e.spec.tags||[]),ie(e.spec.targetRef||null),re((null===(a=e.spec.contact)||void 0===a?void 0:a.email)||""),ce((null===(l=e.spec.contact)||void 0===l?void 0:l.team)||""),me((null===(i=e.spec.documentation)||void 0===i?void 0:i.docsURL)||""),xe((null===(s=e.spec.documentation)||void 0===s?void 0:s.openAPISpecURL)||"");const u=(null===(o=e.status)||void 0===o||null===(n=o.conditions)||void 0===n?void 0:n.find(e=>"PlanPolicyDiscovered"===e.type))||null;Ae({statusCondition:u,discoveredPlans:(null===(r=e.status)||void 0===r?void 0:r.discoveredPlans)||null});const m=(null===(c=e.status)||void 0===c||null===(d=c.conditions)||void 0===d?void 0:d.find(e=>"AuthPolicyDiscovered"===e.type))||null;var h;const x="True"===(null==m?void 0:m.status)?(e=>{const t=e.split(" ");return t.length>=3?t[2]:""})(null!==(h=m.message)&&void 0!==h?h:""):"";je({statusCondition:m,namespacedName:{name:x,namespace:e.metadata.namespace}}),Ce(null),E(!1)}).catch(e=>{ye(e.message||"Failed to load API product"),E(!1)}))},[e,C,D,M]),(0,i.useEffect)(()=>{e&&Ce(null)},[e]);const{value:Se,error:Te}=(0,k.A)(async()=>await M.getRateLimitPolicies(),[M,e]),Ie=le?(0,z.d)(null==Se?void 0:Se.items,C,le.name):null,Ne=null==Ie||null===(q=Ie.status)||void 0===q||null===(H=q.conditions)||void 0===H?void 0:H.find(e=>"Accepted"===e.type),Re={namespacedName:{namespace:null==Ie?void 0:Ie.metadata.namespace,name:null==Ie?void 0:Ie.metadata.name},statusCondition:Ne},ke=()=>{se.trim()&&!te.includes(se.trim())&&(ae([...te,se.trim()]),ne(""))};return(0,l.jsxs)(s.A,{open:e,onClose:t,maxWidth:"md",fullWidth:!0,children:[(0,l.jsx)(n.A,{children:"Edit API Product"}),(0,l.jsxs)(o.A,{children:[ge&&(0,l.jsx)(R.A,{severity:"error",style:{marginBottom:16},children:ge}),Te&&(0,l.jsxs)(R.A,{severity:"error",style:{marginBottom:16},children:[(0,l.jsx)("strong",{children:"Failed to load RateLimitPolicies:"})," ",Te.message]}),U?(0,l.jsx)(L.k,{}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.A,{className:F.sectionHeader,children:(0,l.jsx)(d.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"API product info"})})}),(0,l.jsxs)(c.A,{container:!0,spacing:2,children:[(0,l.jsx)(c.A,{item:!0,xs:6,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"API product name",value:$,onChange:e=>K(e.target.value),placeholder:"My API",helperText:"Give a unique name for your API product",margin:"normal",required:!0,disabled:fe,InputLabelProps:{classes:{asterisk:F.asterisk}}})}),(0,l.jsx)(c.A,{item:!0,xs:6,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"Resource name",value:D,disabled:!0,helperText:"Kubernetes resource name (immutable)",margin:"normal"})}),(0,l.jsx)(c.A,{item:!0,xs:6,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"Version",value:V,onChange:e=>O(e.target.value),placeholder:"v1",helperText:"Give a version to your API product",margin:"normal",disabled:fe})}),(0,l.jsx)(c.A,{item:!0,xs:6,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"Tag",value:se,onChange:e=>ne(e.target.value),onKeyPress:e=>{"Enter"===e.key&&(e.preventDefault(),ke())},placeholder:"Add tag",helperText:"Add a tag to your API product",margin:"normal",disabled:fe,InputProps:{endAdornment:se?(0,l.jsx)(m.A,{position:"end",children:(0,l.jsx)(h.A,{size:"small",onClick:ke,disabled:fe,children:(0,l.jsx)(T.A,{fontSize:"small"})})}):void 0}})}),te.length>0&&(0,l.jsx)(c.A,{item:!0,xs:12,children:(0,l.jsx)(r.A,{display:"flex",flexWrap:"wrap",children:te.map(e=>(0,l.jsx)(x.A,{label:e,onDelete:fe?void 0:()=>{return t=e,void ae(te.filter(e=>e!==t));var t},size:"small",className:F.tagChip,disabled:fe},e))})}),(0,l.jsx)(c.A,{item:!0,xs:12,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"Description",value:_,onChange:e=>G(e.target.value),placeholder:"API description",margin:"normal",multiline:!0,rows:2,required:!0,disabled:fe,InputLabelProps:{classes:{asterisk:F.asterisk}}})})]}),(0,l.jsxs)(r.A,{className:F.sectionHeader,children:[(0,l.jsx)(d.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"Associated route"})}),(0,l.jsx)(p.Ay,{title:"The HTTPRoute this API product is associated with",children:(0,l.jsx)(S.A,{className:F.infoIcon})})]}),(0,l.jsxs)(c.A,{container:!0,spacing:2,children:[(0,l.jsx)(c.A,{item:!0,xs:12,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"OpenAPI Spec URL",value:he,onChange:e=>{return t=e.target.value,xe(t),void Ce((0,w.q)(t));var t},placeholder:"https://api.example.com/openapi.json",helperText:Pe||"Enter the full path to your API spec file",error:!!Pe,margin:"normal",disabled:fe})}),(0,l.jsx)(c.A,{item:!0,xs:12,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"Documentation URL",value:ue,onChange:e=>me(e.target.value),placeholder:"https://docs.example.com/api",helperText:"Link to external documentation for this API",margin:"normal",disabled:fe})}),le&&(0,l.jsx)(c.A,{item:!0,xs:12,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"HTTPRoute",value:`${le.namespace||C}/${le.name}`,disabled:!0,helperText:"Target HTTPRoute (immutable)",margin:"normal"})})]}),le&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(r.A,{className:F.sectionHeader,children:[(0,l.jsx)(d.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"HTTPRoute policies"})}),(0,l.jsx)(p.Ay,{title:"Shows the associated policies and rate limit tiers for the HTTPRoute",children:(0,l.jsx)(S.A,{className:F.infoIcon})})]}),(0,l.jsx)(B.K,{planPolicy:pe,authPolicy:ve,rateLimitPolicy:Re,includeTopMargin:!1})]}),(0,l.jsxs)(r.A,{className:F.sectionHeader,children:[(0,l.jsx)(d.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"Lifecycle and Visibility"})}),(0,l.jsx)(p.Ay,{title:"Control the lifecycle state and catalog visibility of this API product",children:(0,l.jsx)(S.A,{className:F.infoIcon})})]}),(0,l.jsxs)(c.A,{container:!0,spacing:2,children:[(0,l.jsx)(c.A,{item:!0,xs:6,children:(0,l.jsxs)(u.A,{fullWidth:!0,select:!0,label:"Lifecycle",value:X,onChange:e=>Y(e.target.value),margin:"normal",helperText:"API lifecycle state",disabled:fe,children:[(0,l.jsx)(A.A,{value:"experimental",children:"Experimental"}),(0,l.jsx)(A.A,{value:"production",children:"Production"}),(0,l.jsx)(A.A,{value:"deprecated",children:"Deprecated"}),(0,l.jsx)(A.A,{value:"retired",children:"Retired"})]})}),(0,l.jsx)(c.A,{item:!0,xs:6,children:(0,l.jsxs)(u.A,{fullWidth:!0,select:!0,label:"Publish Status",value:J,onChange:e=>Q(e.target.value),margin:"normal",helperText:"Controls catalog visibility",disabled:fe,children:[(0,l.jsx)(A.A,{value:"Draft",children:"Draft"}),(0,l.jsx)(A.A,{value:"Published",children:"Published"})]})})]}),(0,l.jsxs)(r.A,{className:F.sectionHeader,children:[(0,l.jsx)(d.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"API Key approval"})}),(0,l.jsx)(p.Ay,{title:"Choose how API key requests are handled for this product",children:(0,l.jsx)(S.A,{className:F.infoIcon})})]}),(0,l.jsx)(v.A,{component:"fieldset",disabled:fe,children:(0,l.jsxs)(j.A,{row:!0,value:Z,onChange:e=>ee(e.target.value),children:[(0,l.jsx)(g.A,{value:"manual",control:(0,l.jsx)(y.A,{color:"primary"}),label:(0,l.jsxs)(r.A,{children:[(0,l.jsx)(d.A,{variant:"body2",children:"Need manual approval"}),(0,l.jsx)(d.A,{variant:"caption",color:"textSecondary",children:"Requires approval for requesting this API"})]})}),(0,l.jsx)(g.A,{value:"automatic",control:(0,l.jsx)(y.A,{color:"primary"}),label:(0,l.jsxs)(r.A,{children:[(0,l.jsx)(d.A,{variant:"body2",children:"Automatic"}),(0,l.jsx)(d.A,{variant:"caption",color:"textSecondary",children:"Keys are created without need to be approved"})]})})]})})]})]}),(0,l.jsxs)(f.A,{children:[(0,l.jsx)(b.A,{onClick:t,disabled:fe,children:"Cancel"}),(0,l.jsx)(b.A,{onClick:async()=>{if(ye(""),be(!0),"retired"===X&&"Published"===J)return ye("Cannot publish a retired API product. Please set publish status to Draft."),void be(!1);try{const e={metadata:{labels:{lifecycle:X}},spec:{displayName:$,description:_,version:V,publishStatus:J,approvalMode:Z,tags:te,targetRef:le,...oe||de?{contact:{...oe&&{email:oe},...de&&{team:de}}}:{},...ue||he?{documentation:{...ue&&{docsURL:ue},...he&&{openAPISpecURL:he}}}:{}}};await M.updateApiProduct(C,D,e),a(),t()}catch(e){ye(e instanceof Error?e.message:String(e))}finally{be(!1)}},color:"primary",variant:"contained",disabled:fe||U||!$||!_||!!Pe,startIcon:fe?(0,l.jsx)(P.A,{size:16,color:"inherit"}):void 0,children:fe?"Saving...":"Save"})]})]})}},63221:(e,t,a)=>{a.d(t,{K:()=>A});var l=a(31085),i=a(95478),s=a(76891),n=a(61477),o=a(10394),r=a(46805),d=a(59461),c=a(72501),u=a(16249),m=a(93453),h=a(64947),x=a(78467),p=a(77225);const A=({open:e,title:t,description:a,confirmText:A,severity:v="normal",deleting:j=!1,onConfirm:g,onCancel:y})=>{const[f,b]=(0,i.useState)("");(0,i.useEffect)(()=>{e||b("")},[e]);const P="high"===v&&A,C=!P||f===A;return(0,l.jsxs)(s.A,{open:e,onClose:j?void 0:y,maxWidth:"sm",fullWidth:!0,children:[(0,l.jsxs)(n.A,{children:["high"===v&&(0,l.jsxs)(o.A,{display:"flex",alignItems:"center",style:{gap:8},children:[(0,l.jsx)(p.A,{color:"error"}),(0,l.jsx)("span",{children:t})]}),"high"!==v&&t]}),(0,l.jsxs)(r.A,{children:[(0,l.jsx)(d.A,{style:{whiteSpace:"pre-line"},children:a}),P&&(0,l.jsxs)(o.A,{mt:2,children:[(0,l.jsxs)(c.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:["Type ",(0,l.jsx)("strong",{children:A})," to confirm:"]}),(0,l.jsx)(u.A,{fullWidth:!0,variant:"outlined",size:"small",value:f,onChange:e=>b(e.target.value),disabled:j,autoFocus:!0,placeholder:A})]})]}),(0,l.jsxs)(m.A,{children:[(0,l.jsx)(h.A,{onClick:y,disabled:j,children:"Cancel"}),(0,l.jsx)(h.A,{onClick:()=>{C&&g()},color:"secondary",variant:"contained",disabled:j||!C,startIcon:j?(0,l.jsx)(x.A,{size:16,color:"inherit"}):void 0,children:j?"Deleting...":"Delete"})]})]})}},86197:(e,t,a)=>{a.d(t,{K:()=>d});var l=a(31085),i=(a(95478),a(10394)),s=a(42899),n=a(72501),o=a(67720),r=a(54917);const d=({planPolicy:e,authPolicy:t,rateLimitPolicy:a,includeTopMargin:d=!0})=>{var c,u,m,h;const x=(0,r.A)();return(0,l.jsx)(i.A,{mt:d?1:0,p:0,bgcolor:x.palette.background.default,children:(0,l.jsxs)(s.A,{container:!0,spacing:2,children:[(null==e?void 0:e.statusCondition)&&"True"===e.statusCondition.status||!(null==a?void 0:a.statusCondition)?(0,l.jsxs)(s.A,{item:!0,xs:12,md:6,children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Plan Policy"}),(null==e?void 0:e.statusCondition)?(0,l.jsxs)(i.A,{children:[(0,l.jsx)(o.A,{label:e.statusCondition.reason,size:"small",style:{backgroundColor:"True"===e.statusCondition.status?"#4caf50":"#ff9800",color:"#fff",marginBottom:8}}),e.discoveredPlans&&e.discoveredPlans.length>0&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.A,{variant:"caption",display:"block",gutterBottom:!0,color:"textSecondary",style:{marginTop:8},children:"Available PlanPolicy Tiers:"}),(0,l.jsx)(i.A,{display:"flex",flexWrap:"wrap",mt:1,style:{gap:8},children:e.discoveredPlans.map((e,t)=>{var a,i,s;const n=(null===(a=e.limits)||void 0===a?void 0:a.daily)?`${e.limits.daily}/day`:(null===(i=e.limits)||void 0===i?void 0:i.monthly)?`${e.limits.monthly}/month`:(null===(s=e.limits)||void 0===s?void 0:s.yearly)?`${e.limits.yearly}/year`:"No limit";return(0,l.jsx)(o.A,{label:`${e.tier}: ${n}`,size:"small",variant:"outlined",color:"primary"},t)})})]})]}):(0,l.jsx)(o.A,{label:"NotFound",size:"small",style:{backgroundColor:"#ff9800",color:"#fff",marginBottom:8}})]}):(0,l.jsxs)(s.A,{item:!0,xs:12,md:6,children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"RateLimitPolicy"}),(null==a?void 0:a.statusCondition)?(0,l.jsxs)(i.A,{children:[(0,l.jsx)(o.A,{label:a.statusCondition.reason,size:"small",style:{backgroundColor:"True"===a.statusCondition.status?"#4caf50":"#ff9800",color:"#fff",marginBottom:8}}),"True"===a.statusCondition.status&&(0,l.jsxs)(s.A,{container:!0,spacing:2,children:[(0,l.jsx)(s.A,{item:!0,xs:12,md:6,children:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Resource Name"}),(0,l.jsx)(n.A,{variant:"body2",children:(null===(c=a.namespacedName)||void 0===c?void 0:c.name)||"No RateLimit Policy name available"})]})}),(0,l.jsx)(s.A,{item:!0,xs:12,md:6,children:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Resource Namespace"}),(0,l.jsx)(n.A,{variant:"body2",children:(null===(u=a.namespacedName)||void 0===u?void 0:u.namespace)||"No RateLimit Policy namespace available"})]})})]})]}):(0,l.jsx)(o.A,{label:"NotFound",size:"small",style:{backgroundColor:"#ff9800",color:"#fff",marginBottom:8}})]}),(0,l.jsxs)(s.A,{item:!0,xs:12,md:6,children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Auth Policy"}),(null==t?void 0:t.statusCondition)?(0,l.jsxs)(i.A,{children:[(0,l.jsx)(o.A,{label:t.statusCondition.reason,size:"small",style:{backgroundColor:"True"===t.statusCondition.status?"#4caf50":"#ff9800",color:"#fff",marginBottom:8}}),"True"===t.statusCondition.status&&(0,l.jsxs)(s.A,{container:!0,spacing:2,children:[(0,l.jsx)(s.A,{item:!0,xs:12,md:6,children:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Resource Name"}),(0,l.jsx)(n.A,{variant:"body2",children:(null===(m=t.namespacedName)||void 0===m?void 0:m.name)||"No Auth Policy name available"})]})}),(0,l.jsx)(s.A,{item:!0,xs:12,md:6,children:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Resource Namespace"}),(0,l.jsx)(n.A,{variant:"body2",children:(null===(h=t.namespacedName)||void 0===h?void 0:h.namespace)||"No Auth Policy namespace available"})]})})]})]}):(0,l.jsx)(o.A,{label:"NotFound",size:"small",style:{backgroundColor:"#ff9800",color:"#fff",marginBottom:8}})]})]})})}},97859:(e,t,a)=>{a.d(t,{d:()=>l});const l=(e,t,a)=>e&&e.find(e=>{const l=e.spec.targetRef;var i;const s=null!==(i=null==l?void 0:l.namespace)&&void 0!==i?i:e.metadata.namespace;return"HTTPRoute"===(null==l?void 0:l.kind)&&(null==l?void 0:l.name)===a&&s===t})||null}}]);
|
|
2
|
-
//# sourceMappingURL=5289.
|
|
1
|
+
"use strict";(self.webpackChunkinternal_plugin_kuadrant=self.webpackChunkinternal_plugin_kuadrant||[]).push([[5289],{24170:(e,t,a)=>{a.d(t,{o:()=>l,q:()=>i});const l=e=>e&&e.trim()?e.length>253?"Must be 253 characters or less":/^[a-z0-9]([-a-z0-9]*[a-z0-9])?$/.test(e)?null:"Must be lowercase alphanumeric with hyphens, start and end with alphanumeric":"Name is required",i=e=>{if(!e)return null;try{const t=new URL(e);return["http:","https:"].includes(t.protocol)?null:"Must be a valid HTTP or HTTPS URL"}catch{return"Must be a valid URL"}}},26997:(e,t,a)=>{a.d(t,{C:()=>D});var l=a(31085),i=a(95478),s=a(76891),n=a(61477),o=a(46805),r=a(10394),d=a(72501),c=a(42899),u=a(16249),m=a(34839),h=a(29365),x=a(67720),p=a(71677),A=a(26343),v=a(95061),j=a(29635),g=a(86901),y=a(30285),f=a(93453),b=a(64947),P=a(78467),C=a(58837),S=a(89031),T=a(18466),I=a(22097),N=a(70980),R=a(48351),k=a(91638),L=a(86687),B=a(86197),w=a(24170),z=a(97859);const W=(0,C.A)(e=>({asterisk:{color:"#f44336"},sectionHeader:{display:"flex",alignItems:"center",gap:e.spacing(.5),marginTop:e.spacing(2),marginBottom:e.spacing(1)},infoIcon:{fontSize:18,color:e.palette.text.secondary},tagChip:{marginRight:e.spacing(.5),marginBottom:e.spacing(.5)}})),D=({open:e,onClose:t,onSuccess:a,namespace:C,name:D})=>{var H,q;const F=W(),M=(0,I.useApi)(N.s),[U,E]=(0,i.useState)(!1),[$,K]=(0,i.useState)(""),[_,G]=(0,i.useState)(""),[V,O]=(0,i.useState)("v1"),[J,Q]=(0,i.useState)("Draft"),[X,Y]=(0,i.useState)("production"),[Z,ee]=(0,i.useState)("manual"),[te,ae]=(0,i.useState)([]),[le,ie]=(0,i.useState)(null),[se,ne]=(0,i.useState)(""),[oe,re]=(0,i.useState)(""),[de,ce]=(0,i.useState)(""),[ue,me]=(0,i.useState)(""),[he,xe]=(0,i.useState)(""),[pe,Ae]=(0,i.useState)(null),[ve,je]=(0,i.useState)(null),[ge,ye]=(0,i.useState)(""),[fe,be]=(0,i.useState)(!1),[Pe,Ce]=(0,i.useState)(null);(0,i.useEffect)(()=>{e&&C&&D&&(E(!0),ye(""),M.getApiProduct(C,D).then(e=>{var t,a,l,i,s,n,o,r,d,c;K(e.spec.displayName||""),G(e.spec.description||""),O(e.spec.version||"v1"),Q(e.spec.publishStatus||"Draft"),Y((null===(t=e.metadata.labels)||void 0===t?void 0:t.lifecycle)||"production"),ee(e.spec.approvalMode||"manual"),ae(e.spec.tags||[]),ie(e.spec.targetRef||null),re((null===(a=e.spec.contact)||void 0===a?void 0:a.email)||""),ce((null===(l=e.spec.contact)||void 0===l?void 0:l.team)||""),me((null===(i=e.spec.documentation)||void 0===i?void 0:i.docsURL)||""),xe((null===(s=e.spec.documentation)||void 0===s?void 0:s.openAPISpecURL)||"");const u=(null===(o=e.status)||void 0===o||null===(n=o.conditions)||void 0===n?void 0:n.find(e=>"PlanPolicyDiscovered"===e.type))||null;Ae({statusCondition:u,discoveredPlans:(null===(r=e.status)||void 0===r?void 0:r.discoveredPlans)||null});const m=(null===(c=e.status)||void 0===c||null===(d=c.conditions)||void 0===d?void 0:d.find(e=>"AuthPolicyDiscovered"===e.type))||null;var h;const x="True"===(null==m?void 0:m.status)?(e=>{const t=e.split(" ");return t.length>=3?t[2]:""})(null!==(h=m.message)&&void 0!==h?h:""):"";je({statusCondition:m,namespacedName:{name:x,namespace:e.metadata.namespace}}),Ce(null),E(!1)}).catch(e=>{ye(e.message||"Failed to load API product"),E(!1)}))},[e,C,D,M]),(0,i.useEffect)(()=>{e&&Ce(null)},[e]);const{value:Se,error:Te}=(0,k.A)(async()=>await M.getRateLimitPolicies(),[M,e]),Ie=le?(0,z.d)(null==Se?void 0:Se.items,C,le.name):null,Ne=null==Ie||null===(q=Ie.status)||void 0===q||null===(H=q.conditions)||void 0===H?void 0:H.find(e=>"Accepted"===e.type),Re={namespacedName:{namespace:null==Ie?void 0:Ie.metadata.namespace,name:null==Ie?void 0:Ie.metadata.name},statusCondition:Ne},ke=()=>{se.trim()&&!te.includes(se.trim())&&(ae([...te,se.trim()]),ne(""))};return(0,l.jsxs)(s.A,{open:e,onClose:t,maxWidth:"md",fullWidth:!0,children:[(0,l.jsx)(n.A,{children:"Edit API Product"}),(0,l.jsxs)(o.A,{children:[ge&&(0,l.jsx)(R.A,{severity:"error",style:{marginBottom:16},children:ge}),Te&&(0,l.jsxs)(R.A,{severity:"error",style:{marginBottom:16},children:[(0,l.jsx)("strong",{children:"Failed to load RateLimitPolicies:"})," ",Te.message]}),U?(0,l.jsx)(L.k,{}):(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(r.A,{className:F.sectionHeader,children:(0,l.jsx)(d.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"API product info"})})}),(0,l.jsxs)(c.A,{container:!0,spacing:2,children:[(0,l.jsx)(c.A,{item:!0,xs:6,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"API product name",value:$,onChange:e=>K(e.target.value),placeholder:"My API",helperText:"Give a unique name for your API product",margin:"normal",required:!0,disabled:fe,InputLabelProps:{classes:{asterisk:F.asterisk}}})}),(0,l.jsx)(c.A,{item:!0,xs:6,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"Resource name",value:D,disabled:!0,helperText:"Kubernetes resource name (immutable)",margin:"normal"})}),(0,l.jsx)(c.A,{item:!0,xs:6,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"Version",value:V,onChange:e=>O(e.target.value),placeholder:"v1",helperText:"Give a version to your API product",margin:"normal",disabled:fe})}),(0,l.jsx)(c.A,{item:!0,xs:6,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"Tag",value:se,onChange:e=>ne(e.target.value),onKeyPress:e=>{"Enter"===e.key&&(e.preventDefault(),ke())},placeholder:"Add tag",helperText:"Add a tag to your API product",margin:"normal",disabled:fe,InputProps:{endAdornment:se?(0,l.jsx)(m.A,{position:"end",children:(0,l.jsx)(h.A,{size:"small",onClick:ke,disabled:fe,children:(0,l.jsx)(T.A,{fontSize:"small"})})}):void 0}})}),te.length>0&&(0,l.jsx)(c.A,{item:!0,xs:12,children:(0,l.jsx)(r.A,{display:"flex",flexWrap:"wrap",children:te.map(e=>(0,l.jsx)(x.A,{label:e,onDelete:fe?void 0:()=>{return t=e,void ae(te.filter(e=>e!==t));var t},size:"small",className:F.tagChip,disabled:fe},e))})}),(0,l.jsx)(c.A,{item:!0,xs:12,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"Description",value:_,onChange:e=>G(e.target.value),placeholder:"API description",margin:"normal",multiline:!0,rows:2,required:!0,disabled:fe,InputLabelProps:{classes:{asterisk:F.asterisk}}})})]}),(0,l.jsxs)(r.A,{className:F.sectionHeader,children:[(0,l.jsx)(d.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"Associated route"})}),(0,l.jsx)(p.Ay,{title:"The HTTPRoute this API product is associated with",children:(0,l.jsx)(S.A,{className:F.infoIcon})})]}),(0,l.jsxs)(c.A,{container:!0,spacing:2,children:[(0,l.jsx)(c.A,{item:!0,xs:12,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"OpenAPI Spec URL",value:he,onChange:e=>{return t=e.target.value,xe(t),void Ce((0,w.q)(t));var t},placeholder:"https://api.example.com/openapi.json",helperText:Pe||"Enter the full path to your API spec file",error:!!Pe,margin:"normal",disabled:fe})}),(0,l.jsx)(c.A,{item:!0,xs:12,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"Documentation URL",value:ue,onChange:e=>me(e.target.value),placeholder:"https://docs.example.com/api",helperText:"Link to external documentation for this API",margin:"normal",disabled:fe})}),le&&(0,l.jsx)(c.A,{item:!0,xs:12,children:(0,l.jsx)(u.A,{fullWidth:!0,label:"HTTPRoute",value:`${le.namespace||C}/${le.name}`,disabled:!0,helperText:"Target HTTPRoute (immutable)",margin:"normal"})})]}),le&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(r.A,{className:F.sectionHeader,children:[(0,l.jsx)(d.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"HTTPRoute policies"})}),(0,l.jsx)(p.Ay,{title:"Shows the associated policies and rate limit tiers for the HTTPRoute",children:(0,l.jsx)(S.A,{className:F.infoIcon})})]}),(0,l.jsx)(B.K,{planPolicy:pe,authPolicy:ve,rateLimitPolicy:Re,includeTopMargin:!1})]}),(0,l.jsxs)(r.A,{className:F.sectionHeader,children:[(0,l.jsx)(d.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"Lifecycle and Visibility"})}),(0,l.jsx)(p.Ay,{title:"Control the lifecycle state and catalog visibility of this API product",children:(0,l.jsx)(S.A,{className:F.infoIcon})})]}),(0,l.jsxs)(c.A,{container:!0,spacing:2,children:[(0,l.jsx)(c.A,{item:!0,xs:6,children:(0,l.jsxs)(u.A,{fullWidth:!0,select:!0,label:"Lifecycle",value:X,onChange:e=>Y(e.target.value),margin:"normal",helperText:"API lifecycle state",disabled:fe,children:[(0,l.jsx)(A.A,{value:"experimental",children:"Experimental"}),(0,l.jsx)(A.A,{value:"production",children:"Production"}),(0,l.jsx)(A.A,{value:"deprecated",children:"Deprecated"}),(0,l.jsx)(A.A,{value:"retired",children:"Retired"})]})}),(0,l.jsx)(c.A,{item:!0,xs:6,children:(0,l.jsxs)(u.A,{fullWidth:!0,select:!0,label:"Publish Status",value:J,onChange:e=>Q(e.target.value),margin:"normal",helperText:"Controls catalog visibility",disabled:fe,children:[(0,l.jsx)(A.A,{value:"Draft",children:"Draft"}),(0,l.jsx)(A.A,{value:"Published",children:"Published"})]})})]}),(0,l.jsxs)(r.A,{className:F.sectionHeader,children:[(0,l.jsx)(d.A,{variant:"subtitle1",children:(0,l.jsx)("strong",{children:"API Key approval"})}),(0,l.jsx)(p.Ay,{title:"Choose how API key requests are handled for this product",children:(0,l.jsx)(S.A,{className:F.infoIcon})})]}),(0,l.jsx)(v.A,{component:"fieldset",disabled:fe,children:(0,l.jsxs)(j.A,{row:!0,value:Z,onChange:e=>ee(e.target.value),children:[(0,l.jsx)(g.A,{value:"manual",control:(0,l.jsx)(y.A,{color:"primary"}),label:(0,l.jsxs)(r.A,{children:[(0,l.jsx)(d.A,{variant:"body2",children:"Need manual approval"}),(0,l.jsx)(d.A,{variant:"caption",color:"textSecondary",children:"Requires approval for requesting this API"})]})}),(0,l.jsx)(g.A,{value:"automatic",control:(0,l.jsx)(y.A,{color:"primary"}),label:(0,l.jsxs)(r.A,{children:[(0,l.jsx)(d.A,{variant:"body2",children:"Automatic"}),(0,l.jsx)(d.A,{variant:"caption",color:"textSecondary",children:"Keys are created without need to be approved"})]})})]})})]})]}),(0,l.jsxs)(f.A,{children:[(0,l.jsx)(b.A,{onClick:t,disabled:fe,children:"Cancel"}),(0,l.jsx)(b.A,{onClick:async()=>{if(ye(""),be(!0),"retired"===X&&"Published"===J)return ye("Cannot publish a retired API product. Please set publish status to Draft."),void be(!1);try{const e={metadata:{labels:{lifecycle:X}},spec:{displayName:$,description:_,version:V,publishStatus:J,approvalMode:Z,tags:te,targetRef:le,...oe||de?{contact:{...oe&&{email:oe},...de&&{team:de}}}:{},...ue||he?{documentation:{...ue&&{docsURL:ue},...he&&{openAPISpecURL:he}}}:{}}};await M.updateApiProduct(C,D,e),a(),t()}catch(e){ye(e instanceof Error?e.message:String(e))}finally{be(!1)}},color:"primary",variant:"contained",disabled:fe||U||!$||!_||!!Pe,startIcon:fe?(0,l.jsx)(P.A,{size:16,color:"inherit"}):void 0,children:fe?"Saving...":"Save"})]})]})}},63221:(e,t,a)=>{a.d(t,{K:()=>A});var l=a(31085),i=a(95478),s=a(76891),n=a(61477),o=a(10394),r=a(46805),d=a(59461),c=a(72501),u=a(16249),m=a(93453),h=a(64947),x=a(78467),p=a(77225);const A=({open:e,title:t,description:a,confirmText:A,severity:v="normal",deleting:j=!1,onConfirm:g,onCancel:y})=>{const[f,b]=(0,i.useState)("");(0,i.useEffect)(()=>{e||b("")},[e]);const P="high"===v&&A,C=!P||f===A;return(0,l.jsxs)(s.A,{open:e,onClose:j?void 0:y,maxWidth:"sm",fullWidth:!0,children:[(0,l.jsxs)(n.A,{children:["high"===v&&(0,l.jsxs)(o.A,{display:"flex",alignItems:"center",style:{gap:8},children:[(0,l.jsx)(p.A,{color:"error"}),(0,l.jsx)("span",{children:t})]}),"high"!==v&&t]}),(0,l.jsxs)(r.A,{children:[(0,l.jsx)(d.A,{style:{whiteSpace:"pre-line"},children:a}),P&&(0,l.jsxs)(o.A,{mt:2,children:[(0,l.jsxs)(c.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:["Type ",(0,l.jsx)("strong",{children:A})," to confirm:"]}),(0,l.jsx)(u.A,{fullWidth:!0,variant:"outlined",size:"small",value:f,onChange:e=>b(e.target.value),disabled:j,autoFocus:!0,placeholder:A})]})]}),(0,l.jsxs)(m.A,{children:[(0,l.jsx)(h.A,{onClick:y,disabled:j,children:"Cancel"}),(0,l.jsx)(h.A,{onClick:()=>{C&&g()},color:"secondary",variant:"contained",disabled:j||!C,startIcon:j?(0,l.jsx)(x.A,{size:16,color:"inherit"}):void 0,children:j?"Deleting...":"Delete"})]})]})}},86197:(e,t,a)=>{a.d(t,{K:()=>d});var l=a(31085),i=(a(95478),a(10394)),s=a(42899),n=a(72501),o=a(67720),r=a(54917);const d=({planPolicy:e,authPolicy:t,rateLimitPolicy:a,includeTopMargin:d=!0})=>{var c,u,m,h;const x=(0,r.A)();return(0,l.jsx)(i.A,{mt:d?1:0,p:0,bgcolor:x.palette.background.default,children:(0,l.jsxs)(s.A,{container:!0,spacing:2,children:[(null==e?void 0:e.statusCondition)&&"True"===e.statusCondition.status||!(null==a?void 0:a.statusCondition)?(0,l.jsxs)(s.A,{item:!0,xs:12,md:6,children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Plan Policy"}),(null==e?void 0:e.statusCondition)?(0,l.jsxs)(i.A,{children:[(0,l.jsx)(o.A,{label:e.statusCondition.reason,size:"small",style:{backgroundColor:"True"===e.statusCondition.status?"#4caf50":"#ff9800",color:"#fff",marginBottom:8}}),e.discoveredPlans&&e.discoveredPlans.length>0&&(0,l.jsxs)(l.Fragment,{children:[(0,l.jsx)(n.A,{variant:"caption",display:"block",gutterBottom:!0,color:"textSecondary",style:{marginTop:8},children:"Available PlanPolicy Tiers:"}),(0,l.jsx)(i.A,{display:"flex",flexWrap:"wrap",mt:1,style:{gap:8},children:e.discoveredPlans.map((e,t)=>{var a,i,s;const n=(null===(a=e.limits)||void 0===a?void 0:a.daily)?`${e.limits.daily}/day`:(null===(i=e.limits)||void 0===i?void 0:i.monthly)?`${e.limits.monthly}/month`:(null===(s=e.limits)||void 0===s?void 0:s.yearly)?`${e.limits.yearly}/year`:"No limit";return(0,l.jsx)(o.A,{label:`${e.tier}: ${n}`,size:"small",variant:"outlined",color:"primary"},t)})})]})]}):(0,l.jsx)(o.A,{label:"NotFound",size:"small",style:{backgroundColor:"#ff9800",color:"#fff",marginBottom:8}})]}):(0,l.jsxs)(s.A,{item:!0,xs:12,md:6,children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"RateLimitPolicy"}),(null==a?void 0:a.statusCondition)?(0,l.jsxs)(i.A,{children:[(0,l.jsx)(o.A,{label:a.statusCondition.reason,size:"small",style:{backgroundColor:"True"===a.statusCondition.status?"#4caf50":"#ff9800",color:"#fff",marginBottom:8}}),"True"===a.statusCondition.status&&(0,l.jsxs)(s.A,{container:!0,spacing:2,children:[(0,l.jsx)(s.A,{item:!0,xs:12,md:6,children:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Resource Name"}),(0,l.jsx)(n.A,{variant:"body2",children:(null===(c=a.namespacedName)||void 0===c?void 0:c.name)||"No RateLimit Policy name available"})]})}),(0,l.jsx)(s.A,{item:!0,xs:12,md:6,children:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Resource Namespace"}),(0,l.jsx)(n.A,{variant:"body2",children:(null===(u=a.namespacedName)||void 0===u?void 0:u.namespace)||"No RateLimit Policy namespace available"})]})})]})]}):(0,l.jsx)(o.A,{label:"NotFound",size:"small",style:{backgroundColor:"#ff9800",color:"#fff",marginBottom:8}})]}),(0,l.jsxs)(s.A,{item:!0,xs:12,md:6,children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Auth Policy"}),(null==t?void 0:t.statusCondition)?(0,l.jsxs)(i.A,{children:[(0,l.jsx)(o.A,{label:t.statusCondition.reason,size:"small",style:{backgroundColor:"True"===t.statusCondition.status?"#4caf50":"#ff9800",color:"#fff",marginBottom:8}}),"True"===t.statusCondition.status&&(0,l.jsxs)(s.A,{container:!0,spacing:2,children:[(0,l.jsx)(s.A,{item:!0,xs:12,md:6,children:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Resource Name"}),(0,l.jsx)(n.A,{variant:"body2",children:(null===(m=t.namespacedName)||void 0===m?void 0:m.name)||"No Auth Policy name available"})]})}),(0,l.jsx)(s.A,{item:!0,xs:12,md:6,children:(0,l.jsxs)(i.A,{children:[(0,l.jsx)(n.A,{variant:"body2",color:"textSecondary",gutterBottom:!0,children:"Resource Namespace"}),(0,l.jsx)(n.A,{variant:"body2",children:(null===(h=t.namespacedName)||void 0===h?void 0:h.namespace)||"No Auth Policy namespace available"})]})})]})]}):(0,l.jsx)(o.A,{label:"NotFound",size:"small",style:{backgroundColor:"#ff9800",color:"#fff",marginBottom:8}})]})]})})}},97859:(e,t,a)=>{a.d(t,{d:()=>l});const l=(e,t,a)=>e&&e.find(e=>{const l=e.spec.targetRef;var i;const s=null!==(i=null==l?void 0:l.namespace)&&void 0!==i?i:e.metadata.namespace;return"HTTPRoute"===(null==l?void 0:l.kind)&&(null==l?void 0:l.name)===a&&s===t})||null}}]);
|
|
2
|
+
//# sourceMappingURL=5289.55069930.chunk.js.map
|