@veecode-platform/plugin-veecode-homepage-dynamic 0.2.0 → 0.2.2
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/assets/Docs.esm.js +2 -2
- package/dist/assets/Docs.esm.js.map +1 -1
- package/dist/components/VeeCodeHomePage.esm.js +2 -8
- package/dist/components/VeeCodeHomePage.esm.js.map +1 -1
- package/dist-scalprum/plugin-manifest.json +3 -3
- package/dist-scalprum/static/1645.4e532199.chunk.js +3 -0
- package/dist-scalprum/static/1645.4e532199.chunk.js.map +1 -0
- package/dist-scalprum/static/{8819.a0205f1d.chunk.js → 1853.9c4997f9.chunk.js} +2 -2
- package/dist-scalprum/static/1853.9c4997f9.chunk.js.map +1 -0
- package/dist-scalprum/static/3007.a2931d13.chunk.js +2 -0
- package/dist-scalprum/static/3007.a2931d13.chunk.js.map +1 -0
- package/dist-scalprum/static/4026.247ddcd8.chunk.js +2 -0
- package/dist-scalprum/static/4026.247ddcd8.chunk.js.map +1 -0
- package/dist-scalprum/static/4570.e8ea2b1b.chunk.js +3 -0
- package/dist-scalprum/static/{7524.b179cb10.chunk.js.LICENSE.txt → 4570.e8ea2b1b.chunk.js.LICENSE.txt} +8 -0
- package/dist-scalprum/static/4570.e8ea2b1b.chunk.js.map +1 -0
- package/dist-scalprum/static/5211.b1dc9542.chunk.js +3 -0
- package/dist-scalprum/static/5211.b1dc9542.chunk.js.map +1 -0
- package/dist-scalprum/static/{5571.096199d4.chunk.js → 5571.73942ff6.chunk.js} +3 -3
- package/dist-scalprum/static/5571.73942ff6.chunk.js.map +1 -0
- package/dist-scalprum/static/6460.86145f5a.chunk.js +2 -0
- package/dist-scalprum/static/6460.86145f5a.chunk.js.map +1 -0
- package/dist-scalprum/static/7354.a59ca9b4.chunk.js +3 -0
- package/dist-scalprum/static/7354.a59ca9b4.chunk.js.map +1 -0
- package/dist-scalprum/static/exposed-PluginRoot.bf5e0b03.chunk.js +2 -0
- package/dist-scalprum/static/{exposed-PluginRoot.28a57811.chunk.js.map → exposed-PluginRoot.bf5e0b03.chunk.js.map} +1 -1
- package/dist-scalprum/veecode-platform.plugin-veecode-homepage.52a7b0ce89460aa40ee1.js +2 -0
- package/dist-scalprum/veecode-platform.plugin-veecode-homepage.52a7b0ce89460aa40ee1.js.map +1 -0
- package/package.json +1 -1
- package/dist-scalprum/static/2435.ed5faea3.chunk.js +0 -2
- package/dist-scalprum/static/2435.ed5faea3.chunk.js.map +0 -1
- package/dist-scalprum/static/4656.e80c73a4.chunk.js +0 -3
- package/dist-scalprum/static/4656.e80c73a4.chunk.js.LICENSE.txt +0 -8
- package/dist-scalprum/static/4656.e80c73a4.chunk.js.map +0 -1
- package/dist-scalprum/static/4816.6f8976cb.chunk.js +0 -3
- package/dist-scalprum/static/4816.6f8976cb.chunk.js.map +0 -1
- package/dist-scalprum/static/5091.dc1a9c0f.chunk.js +0 -3
- package/dist-scalprum/static/5091.dc1a9c0f.chunk.js.map +0 -1
- package/dist-scalprum/static/5571.096199d4.chunk.js.map +0 -1
- package/dist-scalprum/static/6338.37bbe4bd.chunk.js +0 -3
- package/dist-scalprum/static/6338.37bbe4bd.chunk.js.LICENSE.txt +0 -7
- package/dist-scalprum/static/6338.37bbe4bd.chunk.js.map +0 -1
- package/dist-scalprum/static/6460.b727a14c.chunk.js +0 -2
- package/dist-scalprum/static/6460.b727a14c.chunk.js.map +0 -1
- package/dist-scalprum/static/7524.b179cb10.chunk.js +0 -3
- package/dist-scalprum/static/7524.b179cb10.chunk.js.map +0 -1
- package/dist-scalprum/static/7996.1d65dbec.chunk.js +0 -3
- package/dist-scalprum/static/7996.1d65dbec.chunk.js.map +0 -1
- package/dist-scalprum/static/8819.a0205f1d.chunk.js.map +0 -1
- package/dist-scalprum/static/9315.3aed9231.chunk.js +0 -3
- package/dist-scalprum/static/9315.3aed9231.chunk.js.LICENSE.txt +0 -9
- package/dist-scalprum/static/9315.3aed9231.chunk.js.map +0 -1
- package/dist-scalprum/static/exposed-PluginRoot.28a57811.chunk.js +0 -2
- package/dist-scalprum/veecode-platform.plugin-veecode-homepage.c0e148296c7bf186a8d0.js +0 -2
- package/dist-scalprum/veecode-platform.plugin-veecode-homepage.c0e148296c7bf186a8d0.js.map +0 -1
- /package/dist-scalprum/static/{4816.6f8976cb.chunk.js.LICENSE.txt → 1645.4e532199.chunk.js.LICENSE.txt} +0 -0
- /package/dist-scalprum/static/{7996.1d65dbec.chunk.js.LICENSE.txt → 5211.b1dc9542.chunk.js.LICENSE.txt} +0 -0
- /package/dist-scalprum/static/{5571.096199d4.chunk.js.LICENSE.txt → 5571.73942ff6.chunk.js.LICENSE.txt} +0 -0
- /package/dist-scalprum/static/{5091.dc1a9c0f.chunk.js.LICENSE.txt → 7354.a59ca9b4.chunk.js.LICENSE.txt} +0 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkveecode_platform_plugin_veecode_homepage=self.webpackChunkveecode_platform_plugin_veecode_homepage||[]).push([[6460],{46373:(e,t,n)=>{n.r(t),n.d(t,{VeeCodeHomePage:()=>Be});var i=n(31085),r=n(95478),l=n(21976),s=n(23630),o=n(75342),a=n(6530),d=n(46121),c=n(13295),u=n(9490),x=n(78722),h=n(47086),p=n(42469);const g=({title:e,label:t,color:n,handleClick:r,link:l,children:s})=>{const o=(0,i.jsx)(x.A,{size:"small","aria-label":t,color:n,"aria-controls":`${t}-menu`,"aria-haspopup":"true",sx:{width:"42px",height:"42px",borderRadius:"50%"},onClick:r,children:s});return(0,i.jsx)(h.A,{title:e,children:l?(0,i.jsx)(p.Link,{to:l,children:o}):o})},v=()=>{const e=(0,u.useApi)(u.appThemeApiRef),t="dark"===(0,a.A)().palette.mode,n=t?"Select theme Light Theme":"Select theme Dark Theme",r=e.getInstalledThemes();return(0,i.jsx)(g,{title:n,handleClick:n=>{const i=t?"light":"dark";n.preventDefault(),n.stopPropagation(),r.some(e=>e.id===i)?e.setActiveThemeId(i):e.setActiveThemeId(void 0)},color:"inherit",label:"Toggle-theme",children:t?(0,i.jsx)(d.A,{}):(0,i.jsx)(c.A,{})})};var m=n(69385),j=n(62958),f=n(9988),A=n(65990);const y=(e,t)=>{if(!t)return(0,i.jsx)(i.Fragment,{children:e});const n=t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),r=new RegExp(`(${n})`,"i"),l=e.split(r);return(0,i.jsx)(i.Fragment,{children:l.map((e,t)=>r.test(e)?(0,i.jsx)(A.A,{component:"span",sx:{fontWeight:"normal"},children:e},`${e}-${t}`):(0,i.jsx)(A.A,{component:"span",sx:{fontWeight:"bold"},children:e},`${e}-${t}`))})};var w=n(14538),b=n(17628),C=n(55330);const k=({params:e,error:t,helperText:n})=>(0,i.jsx)(w.A,{...e,placeholder:"Search...",variant:"standard",error:t,helperText:n,InputProps:{...e.InputProps,disableUnderline:!0,startAdornment:(0,i.jsx)(b.A,{position:"start",children:(0,i.jsx)(C.A,{style:{color:"#ffffff"}})})},sx:{input:{color:"#CDCDCD"},button:{color:"inherit"},"& fieldset":{border:"none"}}});var S=n(27502),I=n(39970),L=n(90606),z=n(50232);const F=({option:e,query:t,result:n,renderProps:r})=>{const l="No results found"===e,o=(0,u.useAnalytics)();var a;return(0,i.jsx)(s.A,{component:l?"div":I.N_,to:null==n?void 0:n.document.location,underline:"none",sx:{width:"100%",...l?{}:{cursor:"pointer"}},children:(0,i.jsx)(L.Ay,{...r,sx:{py:1},onClick:e=>{var t,i,l;o.captureEvent("discover",null!==(i=null==n?void 0:n.document.title)&&void 0!==i?i:"",{attributes:{to:null!==(l=null==n?void 0:n.document.location)&&void 0!==l?l:"#"},value:null==n?void 0:n.rank}),null==r||null===(t=r.onClick)||void 0===t||t.call(r,e)},children:(0,i.jsx)(A.A,{sx:{color:"text.primary",flexGrow:1},children:l?e:y(e,null!==(a=null==t?void 0:t.term)&&void 0!==a?a:"")})})})},T=({option:e,index:t,options:n,query:r,results:l,renderProps:o,searchLink:a})=>{if(e===(null==r?void 0:r.term)&&t===n.length-1)return(0,i.jsxs)(s.A,{id:"all-results",children:[(0,i.jsx)(S.A,{sx:{my:.5}}),(0,i.jsx)(I.N_,{to:a,underline:"none",children:(0,i.jsx)(L.Ay,{...o,sx:{my:0},className:"allResultsOption",children:(0,i.jsxs)(s.A,{sx:{display:"flex",alignItems:"center"},children:[(0,i.jsx)(A.A,{sx:{flexGrow:1},children:"All results"}),(0,i.jsx)(z.A,{fontSize:"small"})]})})})]},"all-results");const d=l.find(t=>t.document.title===e);return(0,i.jsx)(F,{option:e,query:r,result:d,renderProps:o},t)},D=e=>{const{query:t,setSearchTerm:n}=e,l=(0,p.useNavigate)(),[s,o]=(0,r.useState)(-1),d=(0,r.useRef)(s),{setTerm:c}=(0,m.SQ)(),u=(0,a.A)(),x=(e=>{const t=(0,r.useRef)(null);return(0,r.useEffect)(()=>()=>{t.current&&clearTimeout(t.current)},[]),(0,r.useCallback)((...n)=>{t.current&&clearTimeout(t.current),t.current=setTimeout(()=>{e(...n)},300)},[e,300])})((e,t)=>{n(t),c(t)});return(0,r.useEffect)(()=>{d.current=s},[s]),(0,i.jsx)(j.z1,{...e,children:({loading:e,error:n,value:r})=>{var a;const c=(null==t?void 0:t.term)&&null!==(a=null==r?void 0:r.results)&&void 0!==a?a:[];let h=[];var p;(null==t?void 0:t.term)&&0===c.length&&(h=["No results found"]),c.length>0&&(h=[...c.map(e=>e.document.title),`${null==t?void 0:t.term}`]);const g=(v=null!==(p=null==t?void 0:t.term)&&void 0!==p?p:"",`/search?query=${encodeURIComponent(v)}`);var v,m;return(0,i.jsx)(f.A,{freeSolo:!0,options:h,loading:e,value:null!==(m=null==t?void 0:t.term)&&void 0!==m?m:"",getOptionLabel:e=>null!=e?e:"",onInputChange:x,onHighlightChange:(e,t)=>o(h.indexOf(null!=t?t:"")),componentsProps:{paper:{sx:{borderRadius:"4px",outline:"unset"}}},sx:{width:"100%",background:"dark"===u.palette.mode?"#FFFFFF10":"#CDCDCD10",'& [class*="MuiAutocomplete-clearIndicator"]':{visibility:(null==t?void 0:t.term)?"visible":"hidden"},padding:".2rem",borderRadius:"8px","&:hover":{background:"dark"===u.palette.mode?"#FFFFFF25":"#CDCDCD25"}},filterOptions:e=>e,onKeyDown:e=>{const n=d.current;if("Enter"===e.key){if(e.preventDefault(),-1===n&&(null==t?void 0:t.term))l(g);else if(-1!==n){var i,r,a;l(null!==(a=null===(r=c[s])||void 0===r||null===(i=r.document)||void 0===i?void 0:i.location)&&void 0!==a?a:g)}o(-1)}},renderInput:e=>(0,i.jsx)(k,{params:e,error:!!n,helperText:n?"Error fetching results":""}),renderOption:(e,n,{index:r})=>(0,i.jsx)(T,{option:n,index:r,options:h,query:t,results:c,renderProps:e,searchLink:g}),ListboxProps:{sx:{maxHeight:"60vh"}}})}})};var R=n(81270);const M=()=>{const[e,t]=(0,r.useState)("");return(0,i.jsx)(m.Lt,{children:(0,i.jsx)(R.Box,{component:"div",sx:{width:"100%",maxWidth:"50vw"},children:(0,i.jsx)(D,{query:{term:e},setSearchTerm:t})})})};var $=n(49915),E=n(94087),O=n(49446),P=n(36521),H=n(23386),N=n(62142);const W=n.p+"static/avatar.70448f05..svg",B=({width:e,height:t})=>{const{profile:n,loading:r}=(0,P.s)();var l;return(0,i.jsx)(i.Fragment,{children:r?(0,i.jsx)(N.A,{variant:"circular",sx:{width:e,height:t}}):(0,i.jsx)(H.A,{src:null!==(l=n.picture)&&void 0!==l?l:W,sx:{width:e,height:t,objectFit:"cover"},alt:"Profile picture"})})};var _=n(30043),G=n(24640),U=n(57368);const V=()=>{const e=(0,u.useApi)(u.identityApiRef);return(0,i.jsxs)(s.A,{component:"div",onClick:async()=>{await e.signOut()},sx:{display:"flex",alignItems:"center",justifyContent:"flex-start"},children:[(0,i.jsx)(G.A,{children:(0,i.jsx)(U.A,{fontSize:"small"})}),"Log out"]})};var q=n(63549);const Y=({handleClose:e,link:t,children:n})=>(0,i.jsx)(R.MenuItem,{onClick:e,children:(0,i.jsx)(p.Link,{to:t,children:(0,i.jsx)(s.A,{component:"div",sx:{display:"flex",alignItems:"center",justifyContent:"flex-start",padding:".1rem 0"},children:n})})}),J=({anchorEl:e,menuId:t,isOpen:n,handleClose:l})=>{var o,d;const c=(0,a.A)(),{displayName:x,backstageIdentity:h}=(0,P.s)(),p=(0,u.useApi)(_.v);var g;const v=null!==(g=null===(d=(0,u.useApi)(u.configApiRef).app)||void 0===d||null===(o=d.support)||void 0===o?void 0:o.url)&&void 0!==g?g:"https://github.com/orgs/veecode-platform/discussions";return(0,r.useEffect)(()=>{(async()=>{let e;try{return(null==h?void 0:h.userEntityRef)&&(e=await p.getEntityByRef(h.userEntityRef)),e}catch(e){return null}})()},[h,p]),(0,i.jsxs)(O.A,{anchorEl:e,anchorOrigin:{vertical:"bottom",horizontal:"right"},transformOrigin:{vertical:"top",horizontal:"right"},id:t,keepMounted:!0,open:n,onClose:l,slotProps:{paper:{sx:{width:250,borderRadius:2,mt:.8,mr:-.5,boxShadow:3,background:`${c.palette.background.default} !important`,border:`1px solid ${c.palette.grey[600]}`}}},children:[(0,i.jsxs)(s.A,{sx:{px:2,py:1.5,display:"flex",alignItems:"center",gap:1.5},children:[(0,i.jsx)(B,{}),(0,i.jsxs)(s.A,{children:[(0,i.jsx)(A.A,{variant:"subtitle1",children:(()=>{const e=x;return/^[^:/]+:[^/]+\/[^/]+$/.test(e)?e.charAt(e.indexOf("/")+1).toLocaleUpperCase("en-US").concat(e.substring(e.indexOf("/")+2)):e})()}),(0,i.jsx)(q.A,{size:"small",variant:"outlined",label:null==h?void 0:h.ownershipEntityRefs[0].split("/")[1]})]})]}),(0,i.jsx)(R.Divider,{}),(0,i.jsx)(Y,{handleClose:l,link:v,children:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(R.ListItemIcon,{children:(0,i.jsx)($.A,{fontSize:"small"})}),"Help"]})}),(0,i.jsx)(Y,{handleClose:l,link:"/settings",children:(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(R.ListItemIcon,{children:(0,i.jsx)(E.A,{fontSize:"small"})}),"Settings"]})}),(0,i.jsx)(R.Divider,{}),(0,i.jsx)(R.MenuItem,{children:(0,i.jsx)(V,{})})]})};var K=n(41425),Q=n(52452),X=n(42804),Z=n(87094),ee=n(16294),te=n(97331),ne=n.n(te);const ie=()=>{var e;const[t]=(0,r.useState)(!0),[n]=(0,r.useState)(void 0),[l]=(0,r.useState)("low"),[s]=(0,r.useState)(),{lastSignal:o}=(0,ee.U)("notifications"),{error:a,value:d,retry:c,loading:u}=(0,Z.s)(e=>{const i={minimumSeverity:l};return void 0!==t&&(i.read=!t),void 0!==n&&(i.saved=n),void 0!==s&&(i.topic=s),Promise.all([e.getNotifications(i),e.getStatus(),e.getTopics(i)])},[t,l,n,s]),x=(0,r.useMemo)(()=>ne()(()=>c(),2e3),[]);var h;const p=null!==(h=null==d||null===(e=d[1])||void 0===e?void 0:e.unread)&&void 0!==h?h:0;return(0,r.useEffect)(()=>{(null==o?void 0:o.action)&&x()},[o,x]),(0,i.jsx)(g,{title:"Notifications",label:`Mostrar ${p} notificações não lidas`,color:"inherit",link:"/notifications",children:(0,i.jsx)(K.A,{badgeContent:p,color:"error",invisible:u||!!a||0===p,children:u?(0,i.jsx)(X.A,{size:20,color:"inherit"}):(0,i.jsx)(Q.A,{})})})},re=({handleOpenMenu:e})=>(0,i.jsx)(g,{title:"",label:"profile-menu",handleClick:e,color:"inherit",children:(0,i.jsx)(B,{width:"42px",height:"42px"})}),le=()=>{const e=(0,a.A)(),[t,n]=r.useState(null),d=Boolean(t);return(0,i.jsxs)(s.A,{sx:{position:"relative"},children:[(0,i.jsx)(l.A,{position:"sticky",component:"nav",style:{zIndex:e.zIndex.appBar-1},children:(0,i.jsxs)(o.A,{children:[(0,i.jsx)(M,{}),(0,i.jsx)(s.A,{sx:{flexGrow:1}}),(0,i.jsxs)(s.A,{sx:{display:{xs:"none",md:"flex",alignItems:"center",gap:".5rem"}},children:[(0,i.jsx)(ie,{}),(0,i.jsx)(v,{}),(0,i.jsx)(re,{handleOpenMenu:e=>{n(e.currentTarget)}})]})]})}),(0,i.jsx)(J,{anchorEl:t,menuId:"profile-menu",isOpen:d,handleClose:()=>{n(null)}})]})},se=n.p+"static/waves.6d6cf859..svg",oe=()=>{var e,t,n,l,o,d,c,x,h,p,g,v,m,j,f,y;const[w,b]=(0,r.useState)(!1),{displayName:C}=(0,P.s)(),k=(0,a.A)(),S="dark"===k.palette.mode,I=(0,u.useApi)(u.configApiRef);var L;const z=null!==(L=S?null===(l=I.app)||void 0===l||null===(n=l.branding)||void 0===n||null===(t=n.theme)||void 0===t||null===(e=t.dark)||void 0===e?void 0:e.headerColor1:null===(x=I.app)||void 0===x||null===(c=x.branding)||void 0===c||null===(d=c.theme)||void 0===d||null===(o=d.light)||void 0===o?void 0:o.headerColor1)&&void 0!==L?L:"#45556D";var F;const T=null!==(F=S?null===(v=I.app)||void 0===v||null===(g=v.branding)||void 0===g||null===(p=g.theme)||void 0===p||null===(h=p.dark)||void 0===h?void 0:h.headerColor2:null===(y=I.app)||void 0===y||null===(f=y.branding)||void 0===f||null===(j=f.theme)||void 0===j||null===(m=j.light)||void 0===m?void 0:m.headerColor2)&&void 0!==F?F:"#86F4CE";return(0,r.useEffect)(()=>{b(!0),setTimeout(()=>b(!1),1e3)},[]),(0,i.jsxs)(s.A,{sx:{background:`linear-gradient(90deg, ${z} 0%, ${T} 100%)`,width:"100%",minHeight:"210px",display:"flex",alignItems:"center",justifyContent:"center",position:"relative",overflow:"hidden",[k.breakpoints.only("xs")]:{height:"380px",padding:"1rem 0"}},children:[(0,i.jsxs)(s.A,{sx:{width:"90%",margin:"auto",display:"flex",alignItems:"center",gap:"2rem",[k.breakpoints.only("xs")]:{flexDirection:"column",padding:"1rem 0"}},children:[(0,i.jsx)(s.A,{children:(0,i.jsx)(B,{width:"120px",height:"120px"})}),(0,i.jsxs)(s.A,{sx:{[k.breakpoints.only("xs")]:{textAlign:"center",color:k.palette.grey[100],maxWidth:"70vw"}},children:[(0,i.jsxs)(A.A,{variant:"h3",color:"#FAFAFA",children:["Welcome back",w?(0,i.jsx)(N.A,{variant:"rectangular",width:150,height:80,style:{display:"inline"}}):(0,i.jsxs)(i.Fragment,{children:[", ",(()=>{const e=C;return/^[^:/]+:[^/]+\/[^/]+$/.test(e)?e.charAt(e.indexOf("/")+1).toLocaleUpperCase("en-US").concat(e.substring(e.indexOf("/")+2)):e})()," 👋"]})," "]}),(0,i.jsx)(A.A,{variant:"h6",color:"#FAFAFA",children:"Let's get started."})]})]}),(0,i.jsx)("img",{src:se,alt:"",style:{width:"100%",height:"250px",objectFit:"cover",position:"absolute",top:"-20%",left:"0",opacity:"0.7"}})]})};var ae=n(6505),de=n(82971),ce=n(16454);const ue=()=>{const e=(0,a.A)();return(0,i.jsx)("svg",{height:"45px",width:"45px",version:"1.1",id:"Capa_1",xmlns:"http://www.w3.org/2000/svg",xmlnsXlink:"http://www.w3.org/1999/xlink",viewBox:"0 0 502.648 502.648",xmlSpace:"preserve",style:{cursor:"pointer "},children:(0,i.jsxs)("g",{children:[(0,i.jsx)("g",{children:(0,i.jsxs)("g",{children:[(0,i.jsx)("circle",{style:{fill:e.palette.grey[600]},cx:"250.399",cy:"91.549",r:"58.694"}),(0,i.jsx)("path",{style:{fill:e.palette.grey[600]},d:"M455.861,253.028l-54.703-11.411c-18.637-3.904-37.037,4.638-46.765,19.824 c-9.448-4.853-19.608-9.038-30.415-12.511v-32.529c0.022-24.612-20.126-44.738-44.651-44.738h-55.933 c-24.655,0-44.716,20.126-44.716,44.738v32.701c-10.699,3.408-20.751,7.593-30.264,12.468 c-9.728-15.251-28.15-23.857-46.809-19.953l-54.747,11.411c-24.03,5.026-39.626,28.862-34.6,52.978l13.741,65.64 c4.983,24.051,28.84,39.647,52.892,34.621l17.321-3.624c8.671,12.813,20.665,24.569,36.023,34.621 c31.989,20.967,74.247,32.529,119.092,32.529c68.617,0,127.721-27.589,154.943-67.215l17.602,3.689 c24.03,5.004,47.887-10.57,52.87-34.621l13.762-65.64C495.508,281.89,479.912,258.054,455.861,253.028z M251.305,447.381 c-40.51,0-78.475-10.203-106.797-28.862c-9.707-6.342-17.753-13.395-24.202-20.945l13.266-2.783 c24.073-5.004,39.669-28.84,34.643-52.913l-12.317-59.018c7.183-3.861,14.733-7.248,22.757-10.138v10.764 c0,24.569,20.104,44.695,44.716,44.695h55.933c24.548,0,44.652-20.147,44.652-44.695v-11.325 c8.175,2.912,15.854,6.256,22.973,10.052L334.439,341.9c-4.983,24.073,10.591,47.909,34.664,52.913l13.395,2.804 C357.52,427.191,308.101,447.381,251.305,447.381z"}),(0,i.jsx)("circle",{style:{fill:e.palette.grey[600]},cx:"443.954",cy:"168.708",r:"58.694"}),(0,i.jsx)("path",{style:{fill:e.palette.grey[600]},d:"M70.736,226.172c31.752-6.644,52.029-37.77,45.471-69.501 c-6.687-31.709-37.749-52.072-69.523-45.428c-31.709,6.622-52.072,37.727-45.428,69.458 C7.879,212.453,38.984,232.795,70.736,226.172z"})]})}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{}),(0,i.jsx)("g",{})]})})},xe=()=>{const e=(0,a.A)();return(0,i.jsx)("svg",{width:"45px",height:"45px",viewBox:"0 0 16 16",xmlns:"http://www.w3.org/2000/svg",fill:"none",style:{cursor:"pointer "},children:(0,i.jsx)("path",{fill:e.palette.grey[600],fillRule:"evenodd",d:"M4.25 1A2.25 2.25 0 002 3.25v9.5A2.25 2.25 0 004.25 15h8.5c.69 0 1.25-.56 1.25-1.25V2.25C14 1.56 13.44 1 12.75 1h-8.5zM3.5 12.75c0 .414.336.75.75.75h8.25v-2H4.25a.75.75 0 00-.75.75v.5zm0-2.622c.235-.083.487-.128.75-.128h8.25V2.5H4.25a.75.75 0 00-.75.75v6.878z",clipRule:"evenodd"})})},he=()=>{const e=(0,a.A)();return(0,i.jsxs)("svg",{width:"45px",height:"45px",viewBox:"0 0 20 20",xmlns:"http://www.w3.org/2000/svg",style:{cursor:"pointer "},children:[(0,i.jsx)("rect",{x:"0",fill:"none",width:"20",height:"20"}),(0,i.jsx)("g",{fill:e.palette.grey[600],children:(0,i.jsx)("path",{d:"M9 0C4.03 0 0 4.03 0 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9zm7.5 6.48c-.274.896-.908 1.64-1.75 2.05-.45-1.69-1.658-3.074-3.27-3.75.13-.444.41-.83.79-1.09-.43-.28-1-.42-1.34.07-.53.69 0 1.61.21 2v.14c-.555-.337-.99-.84-1.24-1.44-.966-.03-1.922.208-2.76.69-.087-.565-.032-1.142.16-1.68.733.07 1.453-.23 1.92-.8.46-.52-.13-1.18-.59-1.58h.36c1.36-.01 2.702.335 3.89 1 1.36 1.005 2.194 2.57 2.27 4.26.24 0 .7-.55.91-.92.172.34.32.69.44 1.05zM9 16.84c-2.05-2.08.25-3.75-1-5.24-.92-.85-2.29-.26-3.11-1.23-.282-1.473.267-2.982 1.43-3.93.52-.44 4-1 5.42.22.83.715 1.415 1.674 1.67 2.74.46.035.918-.066 1.32-.29.41 2.98-3.15 6.74-5.73 7.73zM5.15 2.09c.786-.3 1.676-.028 2.16.66-.42.38-.94.63-1.5.72.02-.294.085-.584.19-.86l-.85-.52z"})})]})},pe=()=>{const e=(0,a.A)();return(0,i.jsxs)("svg",{width:"45px",height:"45px",viewBox:"0 0 24 24",xmlns:"http://www.w3.org/2000/svg",style:{cursor:"pointer "},children:[(0,i.jsx)("title",{children:"support"}),(0,i.jsx)("rect",{width:"24",height:"24",fill:"none"}),(0,i.jsx)("path",{fill:e.palette.grey[600],d:"M12,2a8,8,0,0,0-8,8v1.9A2.92,2.92,0,0,0,3,14a2.88,2.88,0,0,0,1.94,2.61C6.24,19.72,8.85,22,12,22h3V20H12c-2.26,0-4.31-1.7-5.34-4.39l-.21-.55L5.86,15A1,1,0,0,1,5,14a1,1,0,0,1,.5-.86l.5-.29V11a1,1,0,0,1,1-1H17a1,1,0,0,1,1,1v5H13.91a1.5,1.5,0,1,0-1.52,2H20a2,2,0,0,0,2-2V14a2,2,0,0,0-2-2V10A8,8,0,0,0,12,2Z"})]})},ge=n.p+"static/backstage.b1940be1..png";var ve=n(36589),me=n(92742),je=n(59193),fe=n(56040),Ae=n(70246),ye=n(97134),we=n(77376),be=n(98590),Ce=n(35015);function ke(e="royalblue",t,n=70,i=30){const{h:r,s:l}=function(e){const t=document.createElement("canvas").getContext("2d");if(!t)throw new Error("Canvas not supported");t.fillStyle=e;const n=t.fillStyle.replace(/^#/,""),i=3===n.length?n.split("").map(e=>e+e).join(""):n,r=parseInt(i,16);return function(e,t,n){const i=e/255,r=t/255,l=n/255,s=Math.max(i,r,l),o=Math.min(i,r,l),a=(s+o)/2;let d=0,c=0;if(s!==o){const e=s-o;c=a>.5?e/(2-s-o):e/(s+o),d=s===i?(r-l)/e+(r<l?6:0):s===r?(l-i)/e+2:(i-r)/e+4,d*=60}return{h:Math.round(d),s:Math.round(100*c),l:Math.round(100*a)}}(r>>16&255,r>>8&255,255&r)}(e),s=(n-i)/Math.max(t-1,1);return Array.from({length:t},(e,t)=>`hsl(${r}, ${l}%, ${n-t*s}%)`)}var Se=n(61690);const Ie=(0,je.Ay)("text",{shouldForwardProp:e=>"variant"!==e})(({theme:e})=>({textAnchor:"middle",dominantBaseline:"central",fill:e.palette.text.secondary,variants:[{props:{variant:"primary"},style:{fontSize:e.typography.h5.fontSize}},{props:({variant:e})=>"primary"!==e,style:{fontSize:e.typography.body2.fontSize}},{props:{variant:"primary"},style:{fontWeight:e.typography.h5.fontWeight}},{props:({variant:e})=>"primary"!==e,style:{fontWeight:e.typography.body2.fontWeight}}]}));function Le({primaryText:e,secondaryText:t}){const{width:n,height:l,left:s,top:o}=(0,me.N)(),a=o+l/2-10,d=a+24;return(0,i.jsxs)(r.Fragment,{children:[(0,i.jsx)(Ie,{variant:"primary",x:s+n/2,y:a,children:e}),(0,i.jsx)(Ie,{variant:"secondary",x:s+n/2,y:d,children:t})]})}function ze(){var e,t,n,r,l,o,d,c;const{total:x,items:h,visits:p}=(()=>{const e=(0,u.useApi)(be.y),{value:t,loading:n,error:i}=(0,Ce.A)(async()=>{const t=await e.list();return{total:t.reduce((e,t)=>e+t.hits,0),items:t.map(e=>({label:e.name,value:e.hits})),visits:t.map(e=>({id:e.id,name:e.name,path:e.pathname,hits:e.hits}))}},[]);var r,l,s;return{loading:n,error:i,total:null!==(r=null==t?void 0:t.total)&&void 0!==r?r:0,items:null!==(l=null==t?void 0:t.items)&&void 0!==l?l:[],visits:null!==(s=null==t?void 0:t.visits)&&void 0!==s?s:[]}})(),g=(0,a.A)(),v="dark"===g.palette.mode,m=(0,u.useApi)(u.configApiRef);var j;const f=ke(null!==(j=v?null===(r=m.app)||void 0===r||null===(n=r.branding)||void 0===n||null===(t=n.theme)||void 0===t||null===(e=t.dark)||void 0===e?void 0:e.headerColor1:null===(c=m.app)||void 0===c||null===(d=c.branding)||void 0===d||null===(o=d.theme)||void 0===o||null===(l=o.light)||void 0===l?void 0:l.headerColor1)&&void 0!==j?j:"#45556D",h.length),y=e=>Number((e/(x/100)).toFixed(2));return(0,i.jsxs)(fe.A,{variant:"outlined",sx:{display:"flex",flexDirection:"column",gap:"8px",flexGrow:1,maxHeight:"900px",overfloyY:"auto"},children:[(0,i.jsx)(R.CardHeader,{title:"Top Visited"}),(0,i.jsx)(R.Divider,{}),(0,i.jsx)(Ae.A,{children:(0,i.jsx)(s.A,{sx:{display:"flex",alignItems:"center"},children:(0,i.jsx)(ve.r,{colors:f,margin:{left:80,right:80,top:80,bottom:80},series:[{data:h,innerRadius:75,outerRadius:100,paddingAngle:0,highlightScope:{fade:"global",highlight:"item"}}],height:260,width:260,hideLegend:!0,children:(0,i.jsx)(Le,{primaryText:`${x}`,secondaryText:"Total"})})})}),(0,i.jsx)(s.A,{sx:{padding:"2rem",background:g.palette.background.default},children:p.map(e=>(0,i.jsxs)(ye.A,{direction:"row",sx:{alignItems:"center",gap:2,pb:2},children:[(0,i.jsx)(Se.A,{}),(0,i.jsxs)(ye.A,{sx:{gap:1,flexGrow:1},children:[(0,i.jsxs)(ye.A,{direction:"row",sx:{justifyContent:"space-between",alignItems:"center",gap:2},children:[(0,i.jsx)(A.A,{variant:"body2",sx:{fontWeight:"500"},children:e.name}),(0,i.jsxs)(A.A,{variant:"body2",sx:{color:"text.secondary"},children:[y(e.hits),"%"]})]}),(0,i.jsx)(we.A,{variant:"determinate","aria-label":"Number of users by country",value:y(e.hits)})]})]},e.id))})]})}var Fe=n(54994);function Te({icon:e,title:t,value:n,color:r}){return(0,i.jsx)(fe.A,{variant:"outlined",sx:{width:"100%",height:"100%",flexGrow:1,background:(0,Fe.alpha)(r,.15)},children:(0,i.jsxs)(Ae.A,{children:[(0,i.jsxs)(s.A,{component:"div",sx:{display:"flex",gap:".5rem",padding:".5rem 0"},children:[(0,i.jsx)(e,{color:"secondary",style:{fontSize:"18px"}}),(0,i.jsx)(A.A,{component:"h2",variant:"subtitle1",gutterBottom:!0,children:t})]}),(0,i.jsx)(ye.A,{direction:"row",sx:{justifyContent:"space-between",alignItems:"center"},children:(0,i.jsx)(A.A,{variant:"h4",component:"div",sx:{width:"100%",textAlign:"right",padding:"0 .5rem"},children:n})})]})})}var De=n(64811),Re=n(97522),Me=n(87318);function $e(){const e=(0,a.A)();return(0,i.jsx)(fe.A,{variant:"outlined",sx:{width:"100%",height:"100%",flexGrow:1,border:"1px solid transparent",[e.breakpoints.down("lg")]:{justifyContent:"center",background:e.palette.background.default}},children:(0,i.jsxs)(Ae.A,{children:[(0,i.jsxs)(s.A,{component:"div",sx:{display:"flex",gap:".5rem",padding:".5rem 0",[e.breakpoints.down("lg")]:{justifyContent:"center"}},children:[(0,i.jsx)(Re.A,{color:"primary"}),(0,i.jsx)(A.A,{component:"h2",variant:"subtitle2",gutterBottom:!0,sx:{fontWeight:"600"},children:"Add new features"})]}),(0,i.jsx)(s.A,{sx:{[e.breakpoints.down("lg")]:{textAlign:"center"}},children:(0,i.jsxs)(Me.z,{variant:"contained",to:"/create",children:[" ",(0,i.jsx)(De.A,{})," Create"]})})]})})}var Ee=n(27732),Oe=n(97035),Pe=n(3629);function He(){var e,t,n,r,l,o,d,c;const{resources:x,apis:h,components:p}=(()=>{const e=(0,u.useApi)(_.v),{value:t,loading:n,error:i}=(0,Ce.A)(async()=>{const t=await e.getEntities();return{resources:t.items.filter(e=>"api"!==e.kind.toLocaleLowerCase()&&"Component"!==e.kind.toLocaleLowerCase()&&"group"!==e.kind.toLocaleLowerCase()&&"user"!==e.kind.toLocaleLowerCase()&&"location"!==e.kind.toLocaleLowerCase()),apis:t.items.filter(e=>"api"===e.kind.toLocaleLowerCase()),components:t.items.filter(e=>"component"===e.kind.toLocaleLowerCase())}},[]);var r,l,s;return{loading:n,error:i,resources:null!==(r=null==t?void 0:t.resources)&&void 0!==r?r:[],apis:null!==(l=null==t?void 0:t.apis)&&void 0!==l?l:[],components:null!==(s=null==t?void 0:t.components)&&void 0!==s?s:[]}})(),g=(0,a.A)(),v="dark"===g.palette.mode,m=(0,u.useApi)(u.configApiRef),j=[{icon:Ee.A,title:"Resources",value:x.length.toString()},{icon:Oe.A,title:"Components",value:p.length.toString()},{icon:Pe.A,title:"APIs",value:h.length.toString()}];var f;const A=ke(null!==(f=v?null===(r=m.app)||void 0===r||null===(n=r.branding)||void 0===n||null===(t=n.theme)||void 0===t||null===(e=t.dark)||void 0===e?void 0:e.headerColor1:null===(c=m.app)||void 0===c||null===(d=c.branding)||void 0===d||null===(o=d.theme)||void 0===o||null===(l=o.light)||void 0===l?void 0:l.headerColor1)&&void 0!==f?f:"#45556D",j.length);return(0,i.jsxs)(fe.A,{variant:"outlined",sx:{display:"flex",flexDirection:"column",gap:"8px",flexGrow:1,overfloyY:"auto"},children:[(0,i.jsx)(R.CardHeader,{title:"Summary"}),(0,i.jsx)(R.Divider,{}),(0,i.jsx)(Ae.A,{children:(0,i.jsxs)(s.A,{sx:{display:"grid",alignItems:"center",gap:"1rem",gridTemplateColumns:"repeat(4,1fr)",[g.breakpoints.down("lg")]:{gridTemplateColumns:"1fr"}},children:[j.map((e,t)=>(0,i.jsx)(Te,{...e,color:A[t]},t)),(0,i.jsx)($e,{})]})})]})}const Ne=()=>{const e=[{url:"https://docs.platform.vee.codes/",label:"Docs",icon:(0,i.jsx)(xe,{})},{url:"https://github.com/orgs/veecode-platform/discussions",label:"Community",icon:(0,i.jsx)(ue,{})},{url:"https://platform.vee.codes/",label:"Website",icon:(0,i.jsx)(he,{})},{url:"https://veecode-suporte.freshdesk.com/support/login",label:"Support",icon:(0,i.jsx)(pe,{})}];return(0,i.jsx)(m.Lt,{children:(0,i.jsx)(ce.U,{stretch:!0,children:(0,i.jsxs)(de.Ay,{container:!0,spacing:2,justifyContent:"center",children:[(0,i.jsx)(de.Ay,{item:!0,xs:12,children:(0,i.jsxs)(de.Ay,{container:!0,spacing:2,children:[(0,i.jsx)(de.Ay,{item:!0,xs:12,md:6,lg:8,children:(0,i.jsxs)(de.Ay,{container:!0,spacing:2,justifyContent:"center",children:[(0,i.jsx)(de.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,i.jsx)(He,{})}),(0,i.jsx)(de.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,i.jsx)(ae.bv,{})}),(0,i.jsx)(de.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,i.jsx)(ae.vA,{})})]})}),(0,i.jsx)(de.Ay,{item:!0,xs:12,md:6,lg:4,children:(0,i.jsxs)(de.Ay,{container:!0,spacing:2,justifyContent:"center",children:[(0,i.jsx)(de.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,i.jsx)(ze,{})}),(0,i.jsx)(de.Ay,{item:!0,xs:12,md:12,lg:12,children:(0,i.jsx)(ae.zJ,{tools:e})})]})})]})}),(0,i.jsx)(de.Ay,{item:!0,xs:12,sx:{marginTop:"7rem"},children:(0,i.jsxs)(s.A,{sx:{display:"flex",alignItems:"center",justifyContent:"center",fontSize:"1.3em",gap:"10px"},children:[(0,i.jsx)(A.A,{sx:{fontSize:"1.2em",fontWeight:"bold"},children:"Powered by"}),(0,i.jsx)("img",{src:ge,alt:"backstage logo",style:{width:"7.5em",height:"1.5em"}})]})})]})})})};var We=n(82326);const Be=()=>(0,i.jsx)(We.Y,{themeId:"home",children:(0,i.jsxs)(s.A,{sx:{backgroundColor:"background.default",display:"flex",flexDirection:"column",width:"100%",minHeight:"100vh"},children:[(0,i.jsx)(le,{}),(0,i.jsx)(oe,{}),(0,i.jsx)(Ne,{})]})})}}]);
|
|
2
|
+
//# sourceMappingURL=6460.86145f5a.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/6460.86145f5a.chunk.js","mappings":"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","sources":["webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/iconButtonComponent/IconButtonComponent.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/toggleTheme/ToggleTheme.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/utils/stringUtils.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/searchComponent/SearchInput.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/searchComponent/SearchResultItem.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/searchComponent/SearchOption.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/searchComponent/SearchBar.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/hooks/useDebouncedCallback.ts","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/searchComponent/SearchComponent.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/userAvatar/UserAvatar.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/logout/Logout.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/menuItems/MenuItems.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/notifications/Notifications.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/profile/Profle.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/headerComponent/HeaderComponent.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/homeGretting/HomeGretting.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/assets/Community.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/assets/Docs.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/assets/Website.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/assets/Support.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/utils/generateColor.ts","webpack://veecode-platform.plugin-veecode-homepage/./src/components/homeContent/VisitedCharts.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/hooks/useVisited.ts","webpack://veecode-platform.plugin-veecode-homepage/./src/components/homeContent/StatCards.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/homeContent/HighLightedCard.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/homeContent/Summary.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/hooks/useCatalog.ts","webpack://veecode-platform.plugin-veecode-homepage/./src/components/homeContent/HomeContent.tsx","webpack://veecode-platform.plugin-veecode-homepage/./src/components/VeeCodeHomePage.tsx"],"sourcesContent":["import IconButton from '@mui/material/IconButton';\nimport Tooltip from '@mui/material/Tooltip';\nimport { Link } from 'react-router-dom';\nimport { ReactElement, MouseEvent } from 'react';\n\ninterface IconButtonProps {\n title: string;\n label: string;\n color: 'warning' | 'error' | 'inherit';\n handleClick?: (e: MouseEvent<HTMLButtonElement>) => void;\n link?: string;\n children: ReactElement;\n}\n\nexport const IconButtonComponent: React.FC<IconButtonProps> = ({\n title,\n label,\n color,\n handleClick,\n link,\n children,\n}) => {\n const button = (\n <IconButton\n size=\"small\"\n aria-label={label}\n color={color}\n aria-controls={`${label}-menu`}\n aria-haspopup=\"true\"\n sx={{\n width: '42px',\n height: '42px',\n borderRadius: '50%',\n }}\n onClick={handleClick}\n >\n {children}\n </IconButton>\n );\n\n return (\n <Tooltip title={title}>\n {link ? <Link to={link}>{button}</Link> : button}\n </Tooltip>\n );\n};\n","import { useTheme } from '@mui/material/styles';\nimport LightModeOutlinedIcon from '@mui/icons-material/LightModeOutlined';\nimport DarkModeOutlinedIcon from '@mui/icons-material/DarkModeOutlined';\nimport { appThemeApiRef, useApi } from '@backstage/core-plugin-api';\nimport { IconButtonComponent } from '../iconButtonComponent/IconButtonComponent';\n\nexport const ToogleTheme = () => {\n const appThemeApi = useApi(appThemeApiRef);\n const theme = useTheme();\n const isDarkMode = theme.palette.mode === 'dark';\n const tooltipTitle = isDarkMode\n ? 'Select theme Light Theme'\n : 'Select theme Dark Theme';\n const themeIds = appThemeApi.getInstalledThemes();\n\n const handleSetTheme = (\n e: React.MouseEvent<HTMLButtonElement, MouseEvent>,\n ) => {\n const newThemeId = isDarkMode ? 'light' : 'dark';\n e.preventDefault();\n e.stopPropagation();\n if (themeIds.some(it => it.id === newThemeId)) {\n appThemeApi.setActiveThemeId(newThemeId);\n } else {\n appThemeApi.setActiveThemeId(undefined);\n }\n };\n\n return (\n <IconButtonComponent\n title={tooltipTitle}\n handleClick={handleSetTheme}\n color=\"inherit\"\n label=\"Toggle-theme\"\n >\n {isDarkMode ? <LightModeOutlinedIcon /> : <DarkModeOutlinedIcon />}\n </IconButtonComponent>\n );\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Typography from '@mui/material/Typography';\n\n/**\n * Highlights the substring that matches the query term.\n * @param text The full text to render.\n * @param query The query term to highlight.\n * @returns JSX.Element with highlighted matching substring.\n */\nexport const highlightMatch = (text: string, query: string) => {\n if (!query) return <>{text}</>;\n\n const escapeRegex = (input: string) =>\n input.replace(/[.*+?^${}()|[\\]\\\\]/g, '\\\\$&');\n const escapedQuery = escapeRegex(query);\n\n const regex = new RegExp(`(${escapedQuery})`, 'i');\n const parts = text.split(regex);\n\n return (\n <>\n {parts.map((part, index) =>\n regex.test(part) ? (\n <Typography\n key={`${part}-${index}`}\n component=\"span\"\n sx={{ fontWeight: 'normal' }}\n >\n {part}\n </Typography>\n ) : (\n <Typography\n key={`${part}-${index}`}\n component=\"span\"\n sx={{ fontWeight: 'bold' }}\n >\n {part}\n </Typography>\n ),\n )}\n </>\n );\n};\n\nexport const createSearchLink = (searchTerm: string) => {\n return `/search?query=${encodeURIComponent(searchTerm)}`;\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport TextField from '@mui/material/TextField';\nimport InputAdornment from '@mui/material/InputAdornment';\nimport SearchIcon from '@mui/icons-material/Search';\n\ninterface SearchInputProps {\n params: any;\n error: boolean;\n helperText: string;\n}\n\nexport const SearchInput = ({\n params,\n error,\n helperText,\n}: SearchInputProps) => (\n <TextField\n {...params}\n placeholder=\"Search...\"\n variant=\"standard\"\n error={error}\n helperText={helperText}\n InputProps={{\n ...params.InputProps,\n disableUnderline: true,\n startAdornment: (\n <InputAdornment position=\"start\">\n <SearchIcon style={{ color: '#ffffff' }} />\n </InputAdornment>\n ),\n }}\n sx={{\n input: { color: '#CDCDCD' },\n button: { color: 'inherit' },\n '& fieldset': { border: 'none' },\n }}\n />\n);\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { Link } from '@backstage/core-components';\nimport ListItem from '@mui/material/ListItem';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport { highlightMatch } from '../../../utils/stringUtils';\nimport { SearchResultProps } from '@backstage/plugin-search-react';\nimport { Result, SearchDocument } from '@backstage/plugin-search-common';\nimport { useAnalytics } from '@backstage/core-plugin-api';\n\ninterface SearchResultItemProps {\n option: string;\n query: SearchResultProps['query'];\n result: Result<SearchDocument> | undefined;\n renderProps: any;\n}\n\nexport const SearchResultItem = ({\n option,\n query,\n result,\n renderProps,\n}: SearchResultItemProps) => {\n const isNoResultsFound = option === 'No results found';\n const analytics = useAnalytics();\n\n return (\n <Box\n component={isNoResultsFound ? 'div' : Link}\n to={result?.document.location}\n underline=\"none\"\n sx={{ width: '100%', ...(isNoResultsFound ? {} : { cursor: 'pointer' }) }}\n >\n <ListItem\n {...renderProps}\n sx={{ py: 1 }}\n onClick={(e: any) => {\n analytics.captureEvent('discover', result?.document.title ?? '', {\n attributes: { to: result?.document.location ?? '#' },\n value: result?.rank,\n });\n renderProps?.onClick?.(e);\n }}\n >\n <Typography sx={{ color: 'text.primary', flexGrow: 1 }}>\n {isNoResultsFound\n ? option\n : highlightMatch(option, query?.term ?? '')}\n </Typography>\n </ListItem>\n </Box>\n );\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport Box from '@mui/material/Box';\nimport Divider from '@mui/material/Divider';\nimport { Link } from '@backstage/core-components';\nimport ListItem from '@mui/material/ListItem';\nimport Typography from '@mui/material/Typography';\nimport ArrowForwardIcon from '@mui/icons-material/ArrowForward';\nimport { SearchResultItem } from './SearchResultItem';\nimport { Result, SearchDocument } from '@backstage/plugin-search-common';\nimport { SearchResultProps } from '@backstage/plugin-search-react';\n\ninterface SearchOptionProps {\n option: string;\n index: number;\n options: string[];\n query: SearchResultProps['query'];\n results: Result<SearchDocument>[];\n renderProps: any;\n searchLink: string;\n}\n\nexport const SearchOption = ({\n option,\n index,\n options,\n query,\n results,\n renderProps,\n searchLink,\n}: SearchOptionProps) => {\n if (option === query?.term && index === options.length - 1) {\n return (\n <Box key=\"all-results\" id=\"all-results\">\n <Divider sx={{ my: 0.5 }} />\n <Link to={searchLink} underline=\"none\">\n <ListItem\n {...renderProps}\n sx={{ my: 0 }}\n className=\"allResultsOption\"\n >\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <Typography sx={{ flexGrow: 1 }}>All results</Typography>\n <ArrowForwardIcon fontSize=\"small\" />\n </Box>\n </ListItem>\n </Link>\n </Box>\n );\n }\n\n const result = results.find(r => r.document.title === option);\n return (\n <SearchResultItem\n key={index}\n option={option}\n query={query}\n result={result}\n renderProps={renderProps}\n />\n );\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useEffect, useRef, useState } from 'react';\nimport {\n SearchResultState,\n SearchResultProps,\n useSearch,\n} from '@backstage/plugin-search-react';\nimport Autocomplete from '@mui/material/Autocomplete';\nimport { createSearchLink } from '../../../utils/stringUtils';\nimport { useNavigate } from 'react-router-dom';\nimport { SearchInput } from './SearchInput';\nimport { SearchOption } from './SearchOption';\nimport { useDebouncedCallback } from '../../../hooks/useDebouncedCallback';\nimport { useTheme } from '@mui/material/styles';\n\ninterface SearchBarProps {\n query: SearchResultProps['query'];\n setSearchTerm: (term: string) => void;\n}\nexport const SearchBar = (props: SearchBarProps) => {\n const { query, setSearchTerm } = props;\n const navigate = useNavigate();\n const [highlightedIndex, setHighlightedIndex] = useState(-1);\n const highlightedIndexRef = useRef(highlightedIndex);\n const { setTerm } = useSearch();\n const theme = useTheme();\n\n const onInputChange = useDebouncedCallback((_, inputValue) => {\n setSearchTerm(inputValue);\n setTerm(inputValue);\n }, 300);\n\n useEffect(() => {\n highlightedIndexRef.current = highlightedIndex;\n }, [highlightedIndex]);\n\n return (\n <SearchResultState {...props}>\n {({ loading, error, value }) => {\n const results = query?.term ? value?.results ?? [] : [];\n let options: string[] = [];\n if (query?.term && results.length === 0) {\n options = ['No results found'];\n }\n if (results.length > 0) {\n options = [\n ...results.map(result => result.document.title),\n `${query?.term}`,\n ];\n }\n const searchLink = createSearchLink(query?.term ?? '');\n\n return (\n <Autocomplete\n freeSolo\n options={options}\n loading={loading}\n value={query?.term ?? ''}\n getOptionLabel={option => option ?? ''}\n onInputChange={onInputChange}\n onHighlightChange={(_, option) =>\n setHighlightedIndex(options.indexOf(option ?? ''))\n }\n componentsProps={{\n paper: {\n sx: {\n borderRadius: '4px',\n outline: 'unset',\n },\n },\n }}\n sx={{\n width: '100%',\n background:\n theme.palette.mode === 'dark' ? '#FFFFFF10' : '#CDCDCD10',\n '& [class*=\"MuiAutocomplete-clearIndicator\"]': {\n visibility: query?.term ? 'visible' : 'hidden',\n },\n padding: '.2rem',\n borderRadius: '8px',\n '&:hover': {\n background:\n theme.palette.mode === 'dark' ? '#FFFFFF25' : '#CDCDCD25',\n },\n }}\n filterOptions={x => x}\n onKeyDown={event => {\n const currentHighlight = highlightedIndexRef.current;\n if (event.key === 'Enter') {\n event.preventDefault();\n if (currentHighlight === -1 && query?.term) {\n navigate(searchLink);\n } else if (currentHighlight !== -1) {\n navigate(\n results[highlightedIndex]?.document?.location ?? searchLink,\n );\n }\n setHighlightedIndex(-1);\n }\n }}\n renderInput={params => (\n <SearchInput\n params={params}\n error={!!error}\n helperText={error ? 'Error fetching results' : ''}\n />\n )}\n renderOption={(renderProps, option, { index }) => (\n <SearchOption\n option={option}\n index={index}\n options={options}\n query={query}\n results={results}\n renderProps={renderProps}\n searchLink={searchLink}\n />\n )}\n ListboxProps={{\n sx: { maxHeight: '60vh' },\n }}\n />\n );\n }}\n </SearchResultState>\n );\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { useRef, useEffect, useCallback } from 'react';\n\nexport const useDebouncedCallback = <T extends (...args: any[]) => void>(\n callback: T,\n delay: number,\n) => {\n const timeoutRef = useRef<NodeJS.Timeout | null>(null);\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n };\n }, []);\n\n return useCallback(\n (...args: Parameters<T>) => {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n }\n timeoutRef.current = setTimeout(() => {\n callback(...args);\n }, delay);\n },\n [callback, delay],\n );\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SearchContextProvider } from '@backstage/plugin-search-react';\nimport { useState } from 'react';\nimport { SearchBar } from './SearchBar';\nimport { Box } from '@mui/material';\n\nexport const SearchComponent = () => {\n const [searchTerm, setSearchTerm] = useState<string>('');\n\n return (\n <SearchContextProvider>\n <Box component=\"div\" sx={{ width: '100%', maxWidth: '50vw' }}>\n <SearchBar query={{ term: searchTerm }} setSearchTerm={setSearchTerm} />\n </Box>\n </SearchContextProvider>\n );\n};\n","/*\n * Copyright Red Hat, Inc.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { useUserProfile } from '@backstage/plugin-user-settings';\nimport Avatar from '@mui/material/Avatar';\nimport Skeleton from '@mui/material/Skeleton';\nimport AvatarImg from '../../assets/avatar.svg';\n\ninterface UserAvatarProps {\n width?: string;\n height?: string;\n}\n\nexport const UserAvatar: React.FC<UserAvatarProps> = ({ width, height }) => {\n const { profile, loading: profileLoading } = useUserProfile();\n\n return (\n <>\n {profileLoading ? (\n <Skeleton variant=\"circular\" sx={{ width, height }} />\n ) : (\n <Avatar\n src={profile.picture ?? AvatarImg}\n sx={{ width, height, objectFit: 'cover' }}\n alt=\"Profile picture\"\n />\n )}\n </>\n );\n};\n","import { identityApiRef, useApi } from '@backstage/core-plugin-api';\nimport ListItemIcon from '@mui/material/ListItemIcon';\nimport LogoutIcon from '@mui/icons-material/Logout';\nimport Box from '@mui/material/Box';\n\nexport const Logout = () => {\n const identityApi = useApi(identityApiRef);\n\n return (\n <Box\n component=\"div\"\n onClick={async () => {\n await identityApi.signOut();\n }}\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n }}\n >\n <ListItemIcon>\n <LogoutIcon fontSize=\"small\" />\n </ListItemIcon>\n Log out\n </Box>\n );\n};\n","import { ReactElement, useEffect } from 'react';\nimport HelpOutlineIcon from '@mui/icons-material/HelpOutline';\nimport SettingsIcon from '@mui/icons-material/Settings';\nimport Menu from '@mui/material/Menu';\nimport Box from '@mui/material/Box';\nimport { useUserProfile } from '@backstage/plugin-user-settings';\nimport Typography from '@mui/material/Typography';\nimport { Divider, ListItemIcon, MenuItem } from '@mui/material';\nimport { UserAvatar } from '../../userAvatar/UserAvatar';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { catalogApiRef } from '@backstage/plugin-catalog-react';\nimport { configApiRef } from '@backstage/core-plugin-api';\nimport { UserEntity } from '@backstage/catalog-model';\nimport { Link } from 'react-router-dom';\nimport { Logout } from '../logout/Logout';\nimport Chip from '@mui/material/Chip';\nimport { useTheme } from '@mui/material/styles';\n\ninterface MenuItemsProps {\n anchorEl: HTMLElement | null;\n menuId: string;\n isOpen: boolean;\n handleClose: () => void;\n}\n\ninterface MenuItemProps {\n handleClose: () => void;\n link: string;\n children: ReactElement;\n}\n\nconst MenuItemComponent: React.FC<MenuItemProps> = ({\n handleClose,\n link,\n children,\n}) => {\n return (\n <MenuItem onClick={handleClose}>\n <Link to={link}>\n <Box\n component=\"div\"\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'flex-start',\n padding: '.1rem 0',\n }}\n >\n {children}\n </Box>\n </Link>\n </MenuItem>\n );\n};\n\nexport const MenuItems: React.FC<MenuItemsProps> = ({\n anchorEl,\n menuId,\n isOpen,\n handleClose,\n}) => {\n const theme = useTheme();\n const { displayName, backstageIdentity } = useUserProfile();\n const catalogApi = useApi(catalogApiRef);\n const config = useApi(configApiRef);\n const supportUrl =\n config.app?.support?.url ??\n // config.getOptionalString('app.support.url') ??\n 'https://github.com/orgs/veecode-platform/discussions';\n\n useEffect(() => {\n const fetchUserEntity = async () => {\n let userProfile;\n try {\n if (backstageIdentity?.userEntityRef) {\n userProfile = (await catalogApi.getEntityByRef(\n backstageIdentity.userEntityRef,\n )) as unknown as UserEntity;\n }\n return userProfile;\n } catch (_err) {\n return null;\n }\n };\n\n fetchUserEntity();\n }, [backstageIdentity, catalogApi]);\n\n const profileDisplayName = () => {\n const name = displayName;\n const regex = /^[^:/]+:[^/]+\\/[^/]+$/;\n if (regex.test(name)) {\n return name\n .charAt(name.indexOf('/') + 1)\n .toLocaleUpperCase('en-US')\n .concat(name.substring(name.indexOf('/') + 2));\n }\n return name;\n };\n\n return (\n <Menu\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'bottom', horizontal: 'right' }}\n transformOrigin={{ vertical: 'top', horizontal: 'right' }}\n id={menuId}\n keepMounted\n open={isOpen}\n onClose={handleClose}\n slotProps={{\n paper: {\n sx: {\n width: 250,\n borderRadius: 2,\n mt: 0.8,\n mr: -0.5,\n boxShadow: 3,\n background: `${theme.palette.background.default} !important`,\n border: `1px solid ${theme.palette.grey[600]}`,\n },\n },\n }}\n >\n {/* Profile */}\n <Box\n sx={{ px: 2, py: 1.5, display: 'flex', alignItems: 'center', gap: 1.5 }}\n >\n <UserAvatar />\n <Box>\n <Typography variant=\"subtitle1\">{profileDisplayName()}</Typography>\n <Chip\n size=\"small\"\n variant=\"outlined\"\n label={backstageIdentity?.ownershipEntityRefs[0].split('/')[1]}\n />\n </Box>\n </Box>\n\n <Divider />\n\n {/* Support */}\n <MenuItemComponent handleClose={handleClose} link={supportUrl}>\n <>\n <ListItemIcon>\n <HelpOutlineIcon fontSize=\"small\" />\n </ListItemIcon>\n Help\n </>\n </MenuItemComponent>\n {/* Settings */}\n <MenuItemComponent handleClose={handleClose} link=\"/settings\">\n <>\n <ListItemIcon>\n <SettingsIcon fontSize=\"small\" />\n </ListItemIcon>\n Settings\n </>\n </MenuItemComponent>\n <Divider />\n\n {/* Logout */}\n <MenuItem>\n <Logout />\n </MenuItem>\n </Menu>\n );\n};\n","/* eslint-disable no-restricted-syntax */\nimport { useState, useEffect, useMemo } from 'react';\nimport Badge from '@mui/material/Badge';\nimport NotificationsIcon from '@mui/icons-material/Notifications';\nimport CircularProgress from '@mui/material/CircularProgress';\nimport {\n GetNotificationsOptions,\n GetNotificationsResponse,\n GetTopicsResponse,\n useNotificationsApi,\n} from '@backstage/plugin-notifications';\nimport {\n NotificationSeverity,\n NotificationStatus,\n} from '@backstage/plugin-notifications-common';\nimport { useSignal } from '@backstage/plugin-signals-react';\nimport throttle from 'lodash/throttle';\nimport { IconButtonComponent } from '../iconButtonComponent/IconButtonComponent';\n\nconst ThrottleDelayMs = 2000;\n\nexport const Notifications = () => {\n const [unreadOnly] = useState<boolean | undefined>(true);\n const [saved] = useState<boolean | undefined>(undefined);\n const [severity] = useState<NotificationSeverity>('low');\n const [topic] = useState<string>();\n\n const { lastSignal } = useSignal('notifications');\n\n const { error, value, retry, loading } = useNotificationsApi<\n [GetNotificationsResponse, NotificationStatus, GetTopicsResponse]\n >(\n api => {\n const options: GetNotificationsOptions = {\n minimumSeverity: severity,\n };\n\n if (unreadOnly !== undefined) {\n options.read = !unreadOnly;\n }\n if (saved !== undefined) {\n options.saved = saved;\n }\n if (topic !== undefined) {\n options.topic = topic;\n }\n\n return Promise.all([\n api.getNotifications(options),\n api.getStatus(),\n api.getTopics(options),\n ]);\n },\n [unreadOnly, severity, saved, topic],\n );\n\n const throttledRetry = useMemo(\n () => throttle(() => retry(), ThrottleDelayMs),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n\n const totalCount = value?.[1]?.unread ?? 0;\n\n useEffect(() => {\n if (lastSignal?.action) {\n throttledRetry();\n }\n }, [lastSignal, throttledRetry]);\n\n return (\n <IconButtonComponent\n title=\"Notifications\"\n label={`Mostrar ${totalCount} notificações não lidas`}\n color=\"inherit\"\n link=\"/notifications\"\n >\n <Badge\n badgeContent={totalCount}\n color=\"error\"\n invisible={loading || !!error || totalCount === 0}\n >\n {loading ? (\n <CircularProgress size={20} color=\"inherit\" />\n ) : (\n <NotificationsIcon />\n )}\n </Badge>\n </IconButtonComponent>\n );\n};\n","import { IconButtonComponent } from '../iconButtonComponent/IconButtonComponent';\nimport { UserAvatar } from '../../userAvatar/UserAvatar';\n\ninterface ProfileProps {\n handleOpenMenu: (event: React.MouseEvent<HTMLElement>) => void;\n}\n\nexport const Profile: React.FC<ProfileProps> = ({ handleOpenMenu }) => {\n return (\n <IconButtonComponent\n title=\"\"\n label=\"profile-menu\"\n handleClick={handleOpenMenu}\n color=\"inherit\"\n >\n <UserAvatar width=\"42px\" height=\"42px\" />\n </IconButtonComponent>\n );\n};\n","// eslint-disable-next-line no-restricted-syntax\nimport * as React from 'react';\nimport AppBar from '@mui/material/AppBar';\nimport Box from '@mui/material/Box';\nimport Toolbar from '@mui/material/Toolbar';\nimport { ToogleTheme } from './toggleTheme/ToggleTheme';\nimport { SearchComponent } from './searchComponent/SearchComponent';\nimport { MenuItems } from './menuItems/MenuItems';\nimport { Notifications } from './notifications/Notifications';\nimport { Profile } from './profile/Profle';\nimport { useTheme } from '@mui/material/styles';\n\nexport const HeaderComponent = () => {\n const theme = useTheme();\n const [profileAnchorEl, setProfileAnchorEl] =\n React.useState<null | HTMLElement>(null);\n\n const isProfileMenuOpen = Boolean(profileAnchorEl);\n\n const handleProfileMenuOpen = (event: React.MouseEvent<HTMLElement>) => {\n setProfileAnchorEl(event.currentTarget);\n };\n\n const handleProfileMenuClose = () => {\n setProfileAnchorEl(null);\n };\n\n return (\n <Box sx={{ position: 'relative' }}>\n <AppBar\n position=\"sticky\"\n component=\"nav\"\n style={{ zIndex: theme.zIndex.appBar - 1 }}\n >\n <Toolbar>\n <SearchComponent />\n <Box sx={{ flexGrow: 1 }} />\n <Box\n sx={{\n display: {\n xs: 'none',\n md: 'flex',\n alignItems: 'center',\n gap: '.5rem',\n },\n }}\n >\n <Notifications />\n <ToogleTheme />\n <Profile handleOpenMenu={handleProfileMenuOpen} />\n </Box>\n </Toolbar>\n </AppBar>\n\n {/* Profile options */}\n <MenuItems\n anchorEl={profileAnchorEl}\n menuId=\"profile-menu\"\n isOpen={isProfileMenuOpen}\n handleClose={handleProfileMenuClose}\n />\n </Box>\n );\n};\n","import Box from '@mui/material/Box';\nimport { useTheme } from '@mui/material/styles';\nimport { UserAvatar } from '../userAvatar/UserAvatar';\nimport Typography from '@mui/material/Typography';\nimport { useApi, configApiRef } from '@backstage/core-plugin-api';\nimport { useUserProfile } from '@backstage/plugin-user-settings';\nimport Skeleton from '@mui/material/Skeleton';\nimport { useEffect, useState } from 'react';\nimport WavesImg from '../../assets/waves.svg';\n\nexport const HomeGreeting = () => {\n const [loading, setLoading] = useState<boolean>(false);\n const { displayName } = useUserProfile();\n const theme = useTheme();\n const isDarkMode = theme.palette.mode === 'dark';\n const configApi = useApi(configApiRef);\n const color1 =\n (isDarkMode\n ? configApi.app?.branding?.theme?.dark?.headerColor1\n : // ? configApi.getOptionalString('app.branding.theme.dark.headerColo1')\n // : configApi.getOptionalString('app.branding.theme.light.headerColo1')) ??\n configApi.app?.branding?.theme?.light?.headerColor1) ?? '#45556D';\n const color2 =\n (isDarkMode\n ? configApi.app?.branding?.theme?.dark?.headerColor2\n : // ? configApi.getOptionalString('app.branding.theme.dark.headerColo2')\n // : configApi.getOptionalString('app.branding.theme.light.headerColo2')) ??\n configApi.app?.branding?.theme?.light?.headerColor2) ?? '#86F4CE';\n\n const profileDisplayName = () => {\n const name = displayName;\n const regex = /^[^:/]+:[^/]+\\/[^/]+$/;\n if (regex.test(name)) {\n return name\n .charAt(name.indexOf('/') + 1)\n .toLocaleUpperCase('en-US')\n .concat(name.substring(name.indexOf('/') + 2));\n }\n return name;\n };\n\n useEffect(() => {\n setLoading(true);\n setTimeout(() => setLoading(false), 1000);\n }, []);\n\n return (\n <Box\n sx={{\n background: `linear-gradient(90deg, ${color1} 0%, ${color2} 100%)`,\n width: '100%',\n minHeight: '210px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n position: 'relative',\n overflow: 'hidden',\n [theme.breakpoints.only('xs')]: {\n height: '380px',\n padding: '1rem 0',\n },\n }}\n >\n <Box\n sx={{\n width: '90%',\n margin: 'auto',\n display: 'flex',\n alignItems: 'center',\n gap: '2rem',\n [theme.breakpoints.only('xs')]: {\n flexDirection: 'column',\n padding: '1rem 0',\n },\n }}\n >\n <Box>\n <UserAvatar width=\"120px\" height=\"120px\" />\n </Box>\n <Box\n sx={{\n [theme.breakpoints.only('xs')]: {\n textAlign: 'center',\n color: theme.palette.grey[100],\n maxWidth: '70vw',\n },\n }}\n >\n <Typography variant=\"h3\" color=\"#FAFAFA\">\n Welcome back\n {loading ? (\n <Skeleton\n variant=\"rectangular\"\n width={150}\n height={80}\n style={{ display: 'inline' }}\n />\n ) : (\n <>, {profileDisplayName()} 👋</>\n )}{' '}\n </Typography>\n <Typography variant=\"h6\" color=\"#FAFAFA\">\n Let's get started.\n </Typography>\n </Box>\n </Box>\n <img\n src={WavesImg}\n alt=\"\"\n style={{\n width: '100%',\n height: '250px',\n objectFit: 'cover',\n position: 'absolute',\n top: '-20%',\n left: '0',\n opacity: '0.7',\n }}\n />\n </Box>\n );\n};\n","import { useTheme } from '@mui/material/styles';\n\nconst Communitylogo = () => {\n const theme = useTheme();\n return (\n <svg\n height=\"45px\"\n width=\"45px\"\n version=\"1.1\"\n id=\"Capa_1\"\n xmlns=\"http://www.w3.org/2000/svg\"\n xmlnsXlink=\"http://www.w3.org/1999/xlink\"\n viewBox=\"0 0 502.648 502.648\"\n xmlSpace=\"preserve\"\n style={{ cursor: 'pointer ' }}\n >\n <g>\n <g>\n <g>\n <circle\n style={{ fill: theme.palette.grey[600] }}\n cx=\"250.399\"\n cy=\"91.549\"\n r=\"58.694\"\n />\n <path\n style={{ fill: theme.palette.grey[600] }}\n d=\"M455.861,253.028l-54.703-11.411c-18.637-3.904-37.037,4.638-46.765,19.824\n\t\t\t\tc-9.448-4.853-19.608-9.038-30.415-12.511v-32.529c0.022-24.612-20.126-44.738-44.651-44.738h-55.933\n\t\t\t\tc-24.655,0-44.716,20.126-44.716,44.738v32.701c-10.699,3.408-20.751,7.593-30.264,12.468\n\t\t\t\tc-9.728-15.251-28.15-23.857-46.809-19.953l-54.747,11.411c-24.03,5.026-39.626,28.862-34.6,52.978l13.741,65.64\n\t\t\t\tc4.983,24.051,28.84,39.647,52.892,34.621l17.321-3.624c8.671,12.813,20.665,24.569,36.023,34.621\n\t\t\t\tc31.989,20.967,74.247,32.529,119.092,32.529c68.617,0,127.721-27.589,154.943-67.215l17.602,3.689\n\t\t\t\tc24.03,5.004,47.887-10.57,52.87-34.621l13.762-65.64C495.508,281.89,479.912,258.054,455.861,253.028z M251.305,447.381\n\t\t\t\tc-40.51,0-78.475-10.203-106.797-28.862c-9.707-6.342-17.753-13.395-24.202-20.945l13.266-2.783\n\t\t\t\tc24.073-5.004,39.669-28.84,34.643-52.913l-12.317-59.018c7.183-3.861,14.733-7.248,22.757-10.138v10.764\n\t\t\t\tc0,24.569,20.104,44.695,44.716,44.695h55.933c24.548,0,44.652-20.147,44.652-44.695v-11.325\n\t\t\t\tc8.175,2.912,15.854,6.256,22.973,10.052L334.439,341.9c-4.983,24.073,10.591,47.909,34.664,52.913l13.395,2.804\n\t\t\t\tC357.52,427.191,308.101,447.381,251.305,447.381z\"\n />\n <circle\n style={{ fill: theme.palette.grey[600] }}\n cx=\"443.954\"\n cy=\"168.708\"\n r=\"58.694\"\n />\n <path\n style={{ fill: theme.palette.grey[600] }}\n d=\"M70.736,226.172c31.752-6.644,52.029-37.77,45.471-69.501\n\t\t\t\tc-6.687-31.709-37.749-52.072-69.523-45.428c-31.709,6.622-52.072,37.727-45.428,69.458\n\t\t\t\tC7.879,212.453,38.984,232.795,70.736,226.172z\"\n />\n </g>\n </g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n <g></g>\n </g>\n </svg>\n );\n};\n\nexport default Communitylogo;\n","import { useTheme } from '@mui/material/styles';\n\nconst DocsLogo = () => {\n const theme = useTheme();\n return (\n <svg\n width=\"45px\"\n height=\"45px\"\n viewBox=\"0 0 16 16\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n style={{ cursor: 'pointer ' }}\n >\n <path\n fill={theme.palette.grey[600]}\n fillRule=\"evenodd\"\n d=\"M4.25 1A2.25 2.25 0 002 3.25v9.5A2.25 2.25 0 004.25 15h8.5c.69 0 1.25-.56 1.25-1.25V2.25C14 1.56 13.44 1 12.75 1h-8.5zM3.5 12.75c0 .414.336.75.75.75h8.25v-2H4.25a.75.75 0 00-.75.75v.5zm0-2.622c.235-.083.487-.128.75-.128h8.25V2.5H4.25a.75.75 0 00-.75.75v6.878z\"\n clipRule=\"evenodd\"\n />\n </svg>\n );\n};\n\nexport default DocsLogo;\n","import { useTheme } from '@mui/material/styles';\n\nconst WebsiteLogo = () => {\n const theme = useTheme();\n return (\n <svg\n width=\"45px\"\n height=\"45px\"\n viewBox=\"0 0 20 20\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ cursor: 'pointer ' }}\n >\n <rect x=\"0\" fill=\"none\" width=\"20\" height=\"20\" />\n\n <g fill={theme.palette.grey[600]}>\n <path d=\"M9 0C4.03 0 0 4.03 0 9s4.03 9 9 9 9-4.03 9-9-4.03-9-9-9zm7.5 6.48c-.274.896-.908 1.64-1.75 2.05-.45-1.69-1.658-3.074-3.27-3.75.13-.444.41-.83.79-1.09-.43-.28-1-.42-1.34.07-.53.69 0 1.61.21 2v.14c-.555-.337-.99-.84-1.24-1.44-.966-.03-1.922.208-2.76.69-.087-.565-.032-1.142.16-1.68.733.07 1.453-.23 1.92-.8.46-.52-.13-1.18-.59-1.58h.36c1.36-.01 2.702.335 3.89 1 1.36 1.005 2.194 2.57 2.27 4.26.24 0 .7-.55.91-.92.172.34.32.69.44 1.05zM9 16.84c-2.05-2.08.25-3.75-1-5.24-.92-.85-2.29-.26-3.11-1.23-.282-1.473.267-2.982 1.43-3.93.52-.44 4-1 5.42.22.83.715 1.415 1.674 1.67 2.74.46.035.918-.066 1.32-.29.41 2.98-3.15 6.74-5.73 7.73zM5.15 2.09c.786-.3 1.676-.028 2.16.66-.42.38-.94.63-1.5.72.02-.294.085-.584.19-.86l-.85-.52z\" />\n </g>\n </svg>\n );\n};\n\nexport default WebsiteLogo;\n","import { useTheme } from '@mui/material/styles';\n\nconst SupportLogo = () => {\n const theme = useTheme();\n return (\n <svg\n width=\"45px\"\n height=\"45px\"\n viewBox=\"0 0 24 24\"\n xmlns=\"http://www.w3.org/2000/svg\"\n style={{ cursor: 'pointer ' }}\n >\n <title>support</title>\n <rect width=\"24\" height=\"24\" fill=\"none\" />\n <path\n fill={theme.palette.grey[600]}\n d=\"M12,2a8,8,0,0,0-8,8v1.9A2.92,2.92,0,0,0,3,14a2.88,2.88,0,0,0,1.94,2.61C6.24,19.72,8.85,22,12,22h3V20H12c-2.26,0-4.31-1.7-5.34-4.39l-.21-.55L5.86,15A1,1,0,0,1,5,14a1,1,0,0,1,.5-.86l.5-.29V11a1,1,0,0,1,1-1H17a1,1,0,0,1,1,1v5H13.91a1.5,1.5,0,1,0-1.52,2H20a2,2,0,0,0,2-2V14a2,2,0,0,0-2-2V10A8,8,0,0,0,12,2Z\"\n />\n </svg>\n );\n};\n\nexport default SupportLogo;\n","function rgbToHsl(\n rInput: number,\n gInput: number,\n bInput: number,\n): { h: number; s: number; l: number } {\n const r = rInput / 255;\n const g = gInput / 255;\n const b = bInput / 255;\n\n const max = Math.max(r, g, b);\n const min = Math.min(r, g, b);\n const l = (max + min) / 2;\n let h = 0;\n let s = 0;\n\n if (max !== min) {\n const d = max - min;\n s = l > 0.5 ? d / (2 - max - min) : d / (max + min);\n\n if (max === r) {\n h = (g - b) / d + (g < b ? 6 : 0);\n } else if (max === g) {\n h = (b - r) / d + 2;\n } else {\n h = (r - g) / d + 4;\n }\n\n h *= 60;\n }\n\n return {\n h: Math.round(h),\n s: Math.round(s * 100),\n l: Math.round(l * 100),\n };\n}\n\nexport function parseToHSL(color: string): { h: number; s: number; l: number } {\n const ctx = document.createElement('canvas').getContext('2d');\n if (!ctx) throw new Error('Canvas not supported');\n\n // forces the browser to resolve the color\n ctx.fillStyle = color;\n const resolved = ctx.fillStyle; // will be a hex color like \"#rrggbb\"\n\n const hex = resolved.replace(/^#/, '');\n const normalizedHex =\n hex.length === 3\n ? hex\n .split('')\n .map(c => c + c)\n .join('')\n : hex;\n\n const bigint = parseInt(normalizedHex, 16);\n const r = (bigint >> 16) & 255;\n const g = (bigint >> 8) & 255;\n const b = bigint & 255;\n\n return rgbToHsl(r, g, b);\n}\n\nexport function generateColorVariants(\n inputColor: string = 'royalblue',\n count: number,\n startLightness = 70,\n endLightness = 30,\n): string[] {\n const { h, s } = parseToHSL(inputColor);\n const step = (startLightness - endLightness) / Math.max(count - 1, 1);\n\n return Array.from({ length: count }, (_, i) => {\n const l = startLightness - i * step;\n return `hsl(${h}, ${s}%, ${l}%)`;\n });\n}\n","// eslint-disable-next-line no-restricted-syntax\nimport * as React from 'react';\nimport { PieChart } from '@mui/x-charts/PieChart';\nimport { useDrawingArea } from '@mui/x-charts/hooks';\nimport { styled, useTheme } from '@mui/material/styles';\nimport Typography from '@mui/material/Typography';\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Box from '@mui/material/Box';\nimport Stack from '@mui/material/Stack';\nimport LinearProgress from '@mui/material/LinearProgress';\nimport { CardHeader, Divider } from '@mui/material';\nimport { useApi, configApiRef } from '@backstage/core-plugin-api';\nimport { useVisited } from '../../hooks/useVisited';\nimport { generateColorVariants } from '../../utils/generateColor';\nimport TurnedInNotIcon from '@mui/icons-material/TurnedInNot';\n\ninterface StyledTextProps {\n variant: 'primary' | 'secondary';\n}\n\nconst StyledText = styled('text', {\n shouldForwardProp: prop => prop !== 'variant',\n})<StyledTextProps>(({ theme }) => ({\n textAnchor: 'middle',\n dominantBaseline: 'central',\n fill: theme.palette.text.secondary,\n variants: [\n {\n props: {\n variant: 'primary',\n },\n style: {\n fontSize: theme.typography.h5.fontSize,\n },\n },\n {\n props: ({ variant }) => variant !== 'primary',\n style: {\n fontSize: theme.typography.body2.fontSize,\n },\n },\n {\n props: {\n variant: 'primary',\n },\n style: {\n fontWeight: theme.typography.h5.fontWeight,\n },\n },\n {\n props: ({ variant }) => variant !== 'primary',\n style: {\n fontWeight: theme.typography.body2.fontWeight,\n },\n },\n ],\n}));\n\ninterface PieCenterLabelProps {\n primaryText: string;\n secondaryText: string;\n}\n\nfunction PieCenterLabel({ primaryText, secondaryText }: PieCenterLabelProps) {\n const { width, height, left, top } = useDrawingArea();\n const primaryY = top + height / 2 - 10;\n const secondaryY = primaryY + 24;\n\n return (\n <React.Fragment>\n <StyledText variant=\"primary\" x={left + width / 2} y={primaryY}>\n {primaryText}\n </StyledText>\n <StyledText variant=\"secondary\" x={left + width / 2} y={secondaryY}>\n {secondaryText}\n </StyledText>\n </React.Fragment>\n );\n}\n\nexport default function VisitedCharts() {\n const { total, items, visits } = useVisited();\n const theme = useTheme();\n const isDarkMode = theme.palette.mode === 'dark';\n const configApi = useApi(configApiRef);\n const color =\n (isDarkMode\n ? configApi.app?.branding?.theme?.dark?.headerColor1\n : // ? configApi.getOptionalString('app.branding.theme.dark.headerColo1')\n // : configApi.getOptionalString('app.branding.theme.light.headerColo1')) ??\n configApi.app?.branding?.theme?.light?.headerColor1) ?? '#45556D';\n const colors = generateColorVariants(color, items.length);\n const calculatePercent = (value: number) => {\n const percent = value / (total / 100);\n return Number(percent.toFixed(2));\n };\n\n return (\n <Card\n variant=\"outlined\"\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n flexGrow: 1,\n maxHeight: '900px',\n overfloyY: 'auto',\n }}\n >\n <CardHeader title=\"Top Visited\" />\n <Divider />\n <CardContent>\n <Box sx={{ display: 'flex', alignItems: 'center' }}>\n <PieChart\n colors={colors}\n margin={{\n left: 80,\n right: 80,\n top: 80,\n bottom: 80,\n }}\n series={[\n {\n data: items,\n innerRadius: 75,\n outerRadius: 100,\n paddingAngle: 0,\n highlightScope: { fade: 'global', highlight: 'item' },\n },\n ]}\n height={260}\n width={260}\n hideLegend\n >\n <PieCenterLabel primaryText={`${total}`} secondaryText=\"Total\" />\n </PieChart>\n </Box>\n </CardContent>\n <Box\n sx={{ padding: '2rem', background: theme.palette.background.default }}\n >\n {visits.map(visit => (\n <Stack\n key={visit.id}\n direction=\"row\"\n sx={{ alignItems: 'center', gap: 2, pb: 2 }}\n >\n <TurnedInNotIcon />\n <Stack sx={{ gap: 1, flexGrow: 1 }}>\n <Stack\n direction=\"row\"\n sx={{\n justifyContent: 'space-between',\n alignItems: 'center',\n gap: 2,\n }}\n >\n <Typography variant=\"body2\" sx={{ fontWeight: '500' }}>\n {visit.name}\n </Typography>\n <Typography variant=\"body2\" sx={{ color: 'text.secondary' }}>\n {calculatePercent(visit.hits)}%\n </Typography>\n </Stack>\n <LinearProgress\n variant=\"determinate\"\n aria-label=\"Number of users by country\"\n value={calculatePercent(visit.hits)}\n />\n </Stack>\n </Stack>\n ))}\n </Box>\n </Card>\n );\n}\n","import { useApi } from '@backstage/core-plugin-api';\nimport { Visit, visitsApiRef } from '@backstage/plugin-home';\nimport useAsync from 'react-use/esm/useAsync';\n\ntype VisitItem = {\n label: string;\n value: number;\n};\n\ntype VisitData = {\n id: string;\n name: string;\n path: string;\n hits: number;\n};\n\ninterface VisitType {\n total: number;\n items: VisitItem[];\n visits: VisitData[];\n}\n\nexport const useVisited = () => {\n const useVisitedApi = useApi(visitsApiRef);\n\n const { value, loading, error } = useAsync(async (): Promise<VisitType> => {\n const data = (await useVisitedApi.list()) as Visit[];\n const total = data.reduce((acc, item) => acc + item.hits, 0);\n const items = data.map(visit => ({\n label: visit.name,\n value: visit.hits,\n }));\n const visits = data.map(visit => ({\n id: visit.id,\n name: visit.name,\n path: visit.pathname,\n hits: visit.hits,\n }));\n return {\n total,\n items,\n visits,\n };\n }, []);\n\n return {\n loading,\n error,\n total: value?.total ?? 0,\n items: value?.items ?? [],\n visits: value?.visits ?? [],\n };\n};\n","import Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Stack from '@mui/material/Stack';\nimport Typography from '@mui/material/Typography';\nimport Box from '@mui/material/Box';\nimport { alpha } from '@mui/material/styles';\n\nexport type StatCardProps = {\n icon: React.ElementType;\n title: string;\n value: string;\n color: string;\n};\n\nexport default function StatCard({\n icon: Icon,\n title,\n value,\n color,\n}: StatCardProps) {\n return (\n <Card\n variant=\"outlined\"\n sx={{\n width: '100%',\n height: '100%',\n flexGrow: 1,\n background: alpha(color, 0.15),\n }}\n >\n <CardContent>\n <Box\n component=\"div\"\n sx={{\n display: 'flex',\n gap: '.5rem',\n padding: '.5rem 0',\n }}\n >\n <Icon color=\"secondary\" style={{ fontSize: '18px' }} />\n <Typography component=\"h2\" variant=\"subtitle1\" gutterBottom>\n {title}\n </Typography>\n </Box>\n\n <Stack\n direction=\"row\"\n sx={{\n justifyContent: 'space-between',\n alignItems: 'center',\n }}\n >\n <Typography\n variant=\"h4\"\n component=\"div\"\n sx={{\n width: '100%',\n textAlign: 'right',\n padding: '0 .5rem',\n }}\n >\n {value}\n </Typography>\n </Stack>\n </CardContent>\n </Card>\n );\n}\n","import Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Typography from '@mui/material/Typography';\nimport AddIcon from '@mui/icons-material/Add';\nimport InsightsRoundedIcon from '@mui/icons-material/InsightsRounded';\nimport Box from '@mui/material/Box';\nimport { LinkButton } from '@backstage/core-components';\nimport { useTheme } from '@mui/material/styles';\n\nexport default function HighlightedCard() {\n const theme = useTheme();\n return (\n <Card\n variant=\"outlined\"\n sx={{\n width: '100%',\n height: '100%',\n flexGrow: 1,\n border: '1px solid transparent',\n [theme.breakpoints.down('lg')]: {\n justifyContent: 'center',\n background: theme.palette.background.default,\n },\n }}\n >\n <CardContent>\n <Box\n component=\"div\"\n sx={{\n display: 'flex',\n gap: '.5rem',\n padding: '.5rem 0',\n [theme.breakpoints.down('lg')]: {\n justifyContent: 'center',\n },\n }}\n >\n <InsightsRoundedIcon color=\"primary\" />\n <Typography\n component=\"h2\"\n variant=\"subtitle2\"\n gutterBottom\n sx={{ fontWeight: '600' }}\n >\n Add new features\n </Typography>\n </Box>\n <Box\n sx={{\n [theme.breakpoints.down('lg')]: {\n textAlign: 'center',\n },\n }}\n >\n <LinkButton variant=\"contained\" to=\"/create\">\n {' '}\n <AddIcon /> Create\n </LinkButton>\n </Box>\n </CardContent>\n </Card>\n );\n}\n","// eslint-disable-next-line no-restricted-syntax\nimport Card from '@mui/material/Card';\nimport CardContent from '@mui/material/CardContent';\nimport Box from '@mui/material/Box';\nimport { CardHeader, Divider } from '@mui/material';\nimport StatCard from './StatCards';\nimport HighlightedCard from './HighLightedCard';\nimport { useCatalog } from '../../hooks/useCatalog';\nimport AutoAwesomeMotionIcon from '@mui/icons-material/AutoAwesomeMotion';\nimport FolderCopyIcon from '@mui/icons-material/FolderCopy';\nimport ExtensionIcon from '@mui/icons-material/Extension';\nimport { useTheme } from '@mui/material/styles';\nimport { configApiRef, useApi } from '@backstage/core-plugin-api';\nimport { generateColorVariants } from '../../utils/generateColor';\n\nexport default function Summary() {\n const { resources, apis, components } = useCatalog();\n const theme = useTheme();\n const isDarkMode = theme.palette.mode === 'dark';\n const configApi = useApi(configApiRef);\n\n const data = [\n {\n icon: AutoAwesomeMotionIcon,\n title: 'Resources',\n value: resources.length.toString(),\n },\n {\n icon: FolderCopyIcon,\n title: 'Components',\n value: components.length.toString(),\n },\n {\n icon: ExtensionIcon,\n title: 'APIs',\n value: apis.length.toString(),\n },\n ];\n\n const color =\n (isDarkMode\n ? configApi.app?.branding?.theme?.dark?.headerColor1\n : // ? configApi.getOptionalString('app.branding.theme.dark.headerColo1')\n // : configApi.getOptionalString('app.branding.theme.light.headerColo1')) ??\n configApi.app?.branding?.theme?.light?.headerColor1) ?? '#45556D';\n const colors = generateColorVariants(color, data.length);\n\n return (\n <Card\n variant=\"outlined\"\n sx={{\n display: 'flex',\n flexDirection: 'column',\n gap: '8px',\n flexGrow: 1,\n overfloyY: 'auto',\n }}\n >\n <CardHeader title=\"Summary\" />\n <Divider />\n <CardContent>\n <Box\n sx={{\n display: 'grid',\n alignItems: 'center',\n gap: '1rem',\n gridTemplateColumns: 'repeat(4,1fr)',\n [theme.breakpoints.down('lg')]: {\n gridTemplateColumns: '1fr',\n },\n }}\n >\n {data.map((card, index) => (\n <StatCard key={index} {...card} color={colors[index]} />\n ))}\n <HighlightedCard />\n </Box>\n </CardContent>\n </Card>\n );\n}\n","import { Entity } from '@backstage/catalog-model';\nimport { useApi } from '@backstage/core-plugin-api';\nimport { catalogApiRef } from '@backstage/plugin-catalog-react';\nimport useAsync from 'react-use/esm/useAsync';\n\n// type VisitItem = {\n// label: string;\n// value: number;\n// };\n\n// type VisitData = {\n// id: string;\n// name: string;\n// path: string;\n// hits: number;\n// };\ninterface GetEntitiesResponse {\n items: Entity[];\n}\ninterface UseCatalogType {\n resources: Entity[];\n apis: Entity[];\n components: Entity[];\n}\n\nexport const useCatalog = () => {\n const useCatalogApi = useApi(catalogApiRef);\n\n const { value, loading, error } =\n useAsync(async (): Promise<UseCatalogType> => {\n const response =\n (await useCatalogApi.getEntities()) as GetEntitiesResponse;\n\n const resources = response.items.filter(\n item =>\n item.kind.toLocaleLowerCase() !== 'api' &&\n item.kind.toLocaleLowerCase() !== 'Component' &&\n item.kind.toLocaleLowerCase() !== 'group' &&\n item.kind.toLocaleLowerCase() !== 'user' &&\n item.kind.toLocaleLowerCase() !== 'location',\n );\n const apis = response.items.filter(\n item => item.kind.toLocaleLowerCase() === 'api',\n );\n const components = response.items.filter(\n item => item.kind.toLocaleLowerCase() === 'component',\n );\n\n return {\n resources,\n apis,\n components,\n };\n }, []);\n\n return {\n loading,\n error,\n resources: value?.resources ?? [],\n apis: value?.apis ?? [],\n components: value?.components ?? [],\n };\n};\n","/* eslint-disable no-restricted-syntax */\nimport {\n HomePageStarredEntities,\n HomePageToolkit,\n HomePageRecentlyVisited,\n} from '@backstage/plugin-home';\nimport Grid from '@mui/material/Grid';\nimport { SearchContextProvider } from '@backstage/plugin-search-react';\nimport { Content } from '@backstage/core-components';\nimport Box from '@mui/material/Box';\nimport Typography from '@mui/material/Typography';\nimport Communitylogo from '../../assets/Community';\nimport DocsLogo from '../../assets/Docs';\nimport WebsiteLogo from '../../assets/Website';\nimport SupportLogo from '../../assets/Support';\nimport BackstageLogo from '../../assets/backstage.png';\nimport PieAnimation from './VisitedCharts';\nimport Summary from './Summary';\n\nexport const HomeContent = () => {\n const tools = [\n {\n url: 'https://docs.platform.vee.codes/',\n label: 'Docs',\n icon: <DocsLogo />,\n },\n {\n url: 'https://github.com/orgs/veecode-platform/discussions',\n label: 'Community',\n icon: <Communitylogo />,\n },\n {\n url: 'https://platform.vee.codes/',\n label: 'Website',\n icon: <WebsiteLogo />,\n },\n {\n url: 'https://veecode-suporte.freshdesk.com/support/login',\n label: 'Support',\n icon: <SupportLogo />,\n },\n ];\n\n return (\n <SearchContextProvider>\n <Content stretch>\n <Grid container spacing={2} justifyContent=\"center\">\n {/* Top & Recently Visited */}\n <Grid item xs={12}>\n <Grid container spacing={2}>\n <Grid item xs={12} md={6} lg={8}>\n <Grid container spacing={2} justifyContent=\"center\">\n <Grid item xs={12} md={12} lg={12}>\n <Summary />\n </Grid>\n <Grid item xs={12} md={12} lg={12}>\n <HomePageRecentlyVisited />\n </Grid>\n <Grid item xs={12} md={12} lg={12}>\n <HomePageStarredEntities />\n </Grid>\n </Grid>\n </Grid>\n <Grid item xs={12} md={6} lg={4}>\n <Grid container spacing={2} justifyContent=\"center\">\n <Grid item xs={12} md={12} lg={12}>\n <PieAnimation />\n </Grid>\n <Grid item xs={12} md={12} lg={12}>\n <HomePageToolkit tools={tools} />\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n {/* Footer */}\n <Grid item xs={12} sx={{ marginTop: '7rem' }}>\n <Box\n sx={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '1.3em',\n gap: '10px',\n }}\n >\n <Typography\n sx={{\n fontSize: '1.2em',\n fontWeight: 'bold',\n }}\n >\n Powered by\n </Typography>\n <img\n src={BackstageLogo}\n alt=\"backstage logo\"\n style={{ width: '7.5em', height: '1.5em' }}\n />\n </Box>\n </Grid>\n </Grid>\n </Content>\n </SearchContextProvider>\n );\n};\n","// import { makeStyles } from '@mui/styles';\nimport { HeaderComponent } from './headerComponent/HeaderComponent';\nimport { HomeGreeting } from './homeGretting/HomeGretting';\nimport { HomeContent } from './homeContent/HomeContent';\nimport { Page } from '@backstage/core-components';\nimport Box from '@mui/material/Box';\n\n// const useVeeCodeHomePageStyles = makeStyles(theme => ({\n// pageRoot: {\n// backgroundColor: theme.palette.background.default,\n// },\n// }));\n\nexport const VeeCodeHomePage = () => {\n // const { pageRoot } = useVeeCodeHomePageStyles();\n return (\n <Page themeId=\"home\">\n <Box sx={{ \n backgroundColor: 'background.default',\n display: 'flex', \n flexDirection: 'column', \n width: '100%', \n minHeight: '100vh' \n }}>\n <HeaderComponent />\n <HomeGreeting />\n <HomeContent />\n </Box>\n </Page>\n );\n};\n"],"names":["IconButtonComponent","title","label","color","handleClick","link","children","button","IconButton","size","aria-label","aria-controls","aria-haspopup","sx","width","height","borderRadius","onClick","Tooltip","Link","to","ToogleTheme","appThemeApi","useApi","appThemeApiRef","isDarkMode","useTheme","palette","mode","tooltipTitle","themeIds","getInstalledThemes","e","newThemeId","preventDefault","stopPropagation","some","it","id","setActiveThemeId","undefined","LightModeOutlinedIcon","DarkModeOutlinedIcon","highlightMatch","text","query","escapedQuery","replace","regex","RegExp","parts","split","map","part","index","test","Typography","component","fontWeight","SearchInput","params","error","helperText","TextField","placeholder","variant","InputProps","disableUnderline","startAdornment","InputAdornment","position","SearchIcon","style","input","border","SearchResultItem","option","result","renderProps","isNoResultsFound","analytics","useAnalytics","Box","document","location","underline","cursor","ListItem","py","captureEvent","attributes","value","rank","flexGrow","term","SearchOption","options","results","searchLink","length","Divider","my","className","display","alignItems","ArrowForwardIcon","fontSize","find","r","SearchBar","props","setSearchTerm","navigate","useNavigate","highlightedIndex","setHighlightedIndex","useState","highlightedIndexRef","useRef","setTerm","useSearch","theme","onInputChange","callback","timeoutRef","useEffect","current","clearTimeout","useCallback","args","setTimeout","useDebouncedCallback","_","inputValue","SearchResultState","loading","searchTerm","encodeURIComponent","Autocomplete","freeSolo","getOptionLabel","onHighlightChange","indexOf","componentsProps","paper","outline","background","visibility","padding","filterOptions","x","onKeyDown","event","currentHighlight","key","renderInput","renderOption","ListboxProps","maxHeight","SearchComponent","SearchContextProvider","maxWidth","UserAvatar","profile","profileLoading","useUserProfile","Skeleton","Avatar","src","picture","AvatarImg","objectFit","alt","Logout","identityApi","identityApiRef","async","signOut","justifyContent","ListItemIcon","LogoutIcon","MenuItemComponent","handleClose","MenuItem","MenuItems","anchorEl","menuId","isOpen","config","displayName","backstageIdentity","catalogApi","catalogApiRef","supportUrl","configApiRef","app","support","url","userProfile","userEntityRef","getEntityByRef","_err","fetchUserEntity","Menu","anchorOrigin","vertical","horizontal","transformOrigin","keepMounted","open","onClose","slotProps","mt","mr","boxShadow","default","grey","px","gap","name","charAt","toLocaleUpperCase","concat","substring","profileDisplayName","Chip","ownershipEntityRefs","HelpOutlineIcon","SettingsIcon","Notifications","unreadOnly","saved","severity","topic","lastSignal","useSignal","retry","useNotificationsApi","api","minimumSeverity","read","Promise","all","getNotifications","getStatus","getTopics","throttledRetry","useMemo","throttle","totalCount","unread","action","Badge","badgeContent","invisible","CircularProgress","NotificationsIcon","Profile","handleOpenMenu","HeaderComponent","profileAnchorEl","setProfileAnchorEl","React","isProfileMenuOpen","Boolean","AppBar","zIndex","appBar","Toolbar","xs","md","currentTarget","HomeGreeting","configApi","setLoading","color1","branding","dark","headerColor1","light","color2","headerColor2","minHeight","overflow","breakpoints","only","margin","flexDirection","textAlign","img","WavesImg","top","left","opacity","svg","version","xmlns","xmlnsXlink","viewBox","xmlSpace","g","circle","fill","cx","cy","path","d","fillRule","clipRule","rect","generateColorVariants","inputColor","count","startLightness","endLightness","h","s","ctx","createElement","getContext","Error","fillStyle","hex","normalizedHex","c","join","bigint","parseInt","rInput","gInput","bInput","b","max","Math","min","l","round","rgbToHsl","parseToHSL","step","Array","from","i","StyledText","styled","shouldForwardProp","prop","textAnchor","dominantBaseline","secondary","variants","typography","h5","body2","PieCenterLabel","primaryText","secondaryText","useDrawingArea","primaryY","secondaryY","y","VisitedCharts","total","items","visits","useVisitedApi","visitsApiRef","useAsync","data","list","reduce","acc","item","hits","visit","pathname","useVisited","colors","calculatePercent","Number","toFixed","Card","overfloyY","CardHeader","CardContent","PieChart","right","bottom","series","innerRadius","outerRadius","paddingAngle","highlightScope","fade","highlight","hideLegend","Stack","direction","pb","TurnedInNotIcon","LinearProgress","StatCard","icon","Icon","alpha","gutterBottom","HighlightedCard","down","InsightsRoundedIcon","LinkButton","AddIcon","Summary","resources","apis","components","useCatalogApi","response","getEntities","filter","kind","toLocaleLowerCase","useCatalog","AutoAwesomeMotionIcon","toString","FolderCopyIcon","ExtensionIcon","gridTemplateColumns","card","HomeContent","tools","DocsLogo","Communitylogo","WebsiteLogo","SupportLogo","Content","stretch","Grid","container","spacing","lg","HomePageRecentlyVisited","HomePageStarredEntities","PieAnimation","HomePageToolkit","marginTop","BackstageLogo","VeeCodeHomePage","Page","themeId","backgroundColor"],"sourceRoot":""}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
/*! For license information please see 7354.a59ca9b4.chunk.js.LICENSE.txt */
|
|
2
|
+
"use strict";(self.webpackChunkveecode_platform_plugin_veecode_homepage=self.webpackChunkveecode_platform_plugin_veecode_homepage||[]).push([[7354,1085],{73335:(e,r,t)=>{var n=t(95478),o=Symbol.for("react.element"),i=Symbol.for("react.fragment"),u=Object.prototype.hasOwnProperty,a=n.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,f={key:!0,ref:!0,__self:!0,__source:!0};function c(e,r,t){var n,i={},c=null,l=null;for(n in void 0!==t&&(c=""+t),void 0!==r.key&&(c=""+r.key),void 0!==r.ref&&(l=r.ref),r)u.call(r,n)&&!f.hasOwnProperty(n)&&(i[n]=r[n]);if(e&&e.defaultProps)for(n in r=e.defaultProps)void 0===i[n]&&(i[n]=r[n]);return{$$typeof:o,type:e,key:c,ref:l,props:i,_owner:a.current}}r.Fragment=i,r.jsx=c,r.jsxs=c},31085:(e,r,t)=>{e.exports=t(73335)},86284:(e,r,t)=>{function n(e,r){(null==r||r>e.length)&&(r=e.length);for(var t=0,n=Array(r);t<r;t++)n[t]=e[t];return n}t.d(r,{A:()=>n})},96488:(e,r,t)=>{function n(e){if(Array.isArray(e))return e}t.d(r,{A:()=>n})},2474:(e,r,t)=>{function n(e){if(void 0===e)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}t.d(r,{A:()=>n})},24586:(e,r,t)=>{t.d(r,{A:()=>o});var n=t(11369);function o(e,r,t){return(r=(0,n.A)(r))in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}},5405:(e,r,t)=>{function n(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}t.d(r,{A:()=>n})},1087:(e,r,t)=>{function n(e,r){return n=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(e,r){return e.__proto__=r,e},n(e,r)}t.d(r,{A:()=>n})},11369:(e,r,t)=>{t.d(r,{A:()=>o});var n=t(17545);function o(e){var r=function(e){if("object"!=(0,n.A)(e)||!e)return e;var r=e[Symbol.toPrimitive];if(void 0!==r){var t=r.call(e,"string");if("object"!=(0,n.A)(t))return t;throw new TypeError("@@toPrimitive must return a primitive value.")}return String(e)}(e);return"symbol"==(0,n.A)(r)?r:r+""}},17545:(e,r,t)=>{function n(e){return n="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},n(e)}t.d(r,{A:()=>n})},27985:(e,r,t)=>{t.d(r,{A:()=>o});var n=t(86284);function o(e,r){if(e){if("string"==typeof e)return(0,n.A)(e,r);var t={}.toString.call(e).slice(8,-1);return"Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t?Array.from(e):"Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t)?(0,n.A)(e,r):void 0}}}}]);
|
|
3
|
+
//# sourceMappingURL=7354.a59ca9b4.chunk.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"static/7354.a59ca9b4.chunk.js","mappings":"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","sources":["webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/react/cjs/react-jsx-runtime.production.min.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/react/jsx-runtime.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@babel/runtime/helpers/esm/defineProperty.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@babel/runtime/helpers/esm/typeof.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js"],"sourcesContent":["/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","function _arrayLikeToArray(r, a) {\n (null == a || a > r.length) && (a = r.length);\n for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e];\n return n;\n}\nexport { _arrayLikeToArray as default };","function _arrayWithHoles(r) {\n if (Array.isArray(r)) return r;\n}\nexport { _arrayWithHoles as default };","function _assertThisInitialized(e) {\n if (void 0 === e) throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n return e;\n}\nexport { _assertThisInitialized as default };","import toPropertyKey from \"./toPropertyKey.js\";\nfunction _defineProperty(e, r, t) {\n return (r = toPropertyKey(r)) in e ? Object.defineProperty(e, r, {\n value: t,\n enumerable: !0,\n configurable: !0,\n writable: !0\n }) : e[r] = t, e;\n}\nexport { _defineProperty as default };","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\nexport { _nonIterableRest as default };","function _setPrototypeOf(t, e) {\n return _setPrototypeOf = Object.setPrototypeOf ? Object.setPrototypeOf.bind() : function (t, e) {\n return t.__proto__ = e, t;\n }, _setPrototypeOf(t, e);\n}\nexport { _setPrototypeOf as default };","import _typeof from \"./typeof.js\";\nimport toPrimitive from \"./toPrimitive.js\";\nfunction toPropertyKey(t) {\n var i = toPrimitive(t, \"string\");\n return \"symbol\" == _typeof(i) ? i : i + \"\";\n}\nexport { toPropertyKey as default };","import _typeof from \"./typeof.js\";\nfunction toPrimitive(t, r) {\n if (\"object\" != _typeof(t) || !t) return t;\n var e = t[Symbol.toPrimitive];\n if (void 0 !== e) {\n var i = e.call(t, r || \"default\");\n if (\"object\" != _typeof(i)) return i;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (\"string\" === r ? String : Number)(t);\n}\nexport { toPrimitive as default };","function _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\nexport { _typeof as default };","import arrayLikeToArray from \"./arrayLikeToArray.js\";\nfunction _unsupportedIterableToArray(r, a) {\n if (r) {\n if (\"string\" == typeof r) return arrayLikeToArray(r, a);\n var t = {}.toString.call(r).slice(8, -1);\n return \"Object\" === t && r.constructor && (t = r.constructor.name), \"Map\" === t || \"Set\" === t ? Array.from(r) : \"Arguments\" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? arrayLikeToArray(r, a) : void 0;\n }\n}\nexport { _unsupportedIterableToArray as default };"],"names":["f","k","Symbol","for","l","m","Object","prototype","hasOwnProperty","n","__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED","ReactCurrentOwner","p","key","ref","__self","__source","q","c","a","g","b","d","e","h","call","defaultProps","$$typeof","type","props","_owner","current","exports","Fragment","jsx","jsxs","module","_arrayLikeToArray","r","length","Array","_arrayWithHoles","isArray","_assertThisInitialized","ReferenceError","_defineProperty","t","defineProperty","value","enumerable","configurable","writable","_nonIterableRest","TypeError","_setPrototypeOf","setPrototypeOf","bind","__proto__","toPropertyKey","i","toPrimitive","String","_typeof","o","iterator","constructor","_unsupportedIterableToArray","toString","slice","name","from","test"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";(self.webpackChunkveecode_platform_plugin_veecode_homepage=self.webpackChunkveecode_platform_plugin_veecode_homepage||[]).push([[879],{84390:(e,t,i)=>{i.r(t),i.d(t,{VeecodeHomepagePage:()=>p,veecodeHomepagePlugin:()=>n});var o=i(9490),a=i(98590),s=i(9353);const r=(0,o.createRouteRef)({id:"veecode-homepage"});console.log("[veecode-homepage] Initializing plugin");const n=(0,o.createPlugin)({id:"veecode-homepage",routes:{root:r},apis:[(0,o.createApiFactory)({api:a.y,deps:{storageApi:o.storageApiRef,identityApi:o.identityApiRef},factory:({storageApi:e,identityApi:t})=>(console.log("[veecode-homepage] Creating VisitsStorageApi"),s.s.create({storageApi:e,identityApi:t}))})]}),p=n.provide((0,o.createRoutableExtension)({name:"c",component:()=>(console.log("[veecode-homepage] Loading VeeCodeHomePage component"),Promise.all([i.e(2135),i.e(9996),i.e(5571),i.e(6352),i.e(1853),i.e(5211),i.e(5478),i.e(7326),i.e(484),i.e(9096),i.e(4994),i.e(1942),i.e(6460)]).then(i.bind(i,46373)).then(e=>e.VeeCodeHomePage)),mountPoint:r}))},98590:(e,t,i)=>{i.d(t,{Z:()=>a,y:()=>s});var o=i(9490);const a=e=>["<","<=","==","!=",">",">=","contains"].includes(e),s=(0,o.createApiRef)({id:"homepage.visits"})},9353:(e,t,i)=>{i.d(t,{s:()=>o});class o{limit;storageApi;storageKeyPrefix="@backstage/plugin-home:visits";identityApi;static create(e){return new o(e)}constructor(e){this.limit=Math.abs(e.limit??100),this.storageApi=e.storageApi,this.identityApi=e.identityApi}async list(e){let t=[...await this.retrieveAll()];return(e?.orderBy??[]).reverse().forEach(e=>{"asc"===e.direction?t.sort((t,i)=>this.compare(e,t,i)):t.sort((t,i)=>this.compare(e,i,t))}),(e?.filterBy??[]).reverse().forEach(e=>{t=t.filter(t=>{const i=t[e.field];return">"===e.operator?i>e.value:">="===e.operator?i>=e.value:"<"===e.operator?i<e.value:"<="===e.operator?i<=e.value:"=="===e.operator?i===e.value:"!="===e.operator?i!==e.value:"contains"===e.operator&&`${i}`.includes(`${e.value}`)})}),t.slice(0,e?.limit??8)}async save(e){const t=[...await this.retrieveAll()],i={...e.visit,id:window.crypto.randomUUID(),hits:1,timestamp:Date.now()},o=t.findIndex(e=>e.pathname===i.pathname);return o>=0?(i.id=t[o].id,i.hits=t[o].hits+1,t[o]=i):t.push(i),t.sort((e,t)=>t.timestamp-e.timestamp),await this.persistAll(t.splice(0,this.limit)),i}async persistAll(e){const t=await this.getStorageKey();return this.storageApi.set(t,e)}async retrieveAll(){const e=await this.getStorageKey(),t=this.storageApi.snapshot(e);return"unknown"!==t?.presence?t?.value??[]:new Promise((t,i)=>{const o=this.storageApi.observe$(e).subscribe({next:e=>{const i=e.value??[];o.unsubscribe(),t(i)},error:e=>{o.unsubscribe(),i(e)}})})}async getStorageKey(){const{userEntityRef:e}=await this.identityApi.getBackstageIdentity();return`${this.storageKeyPrefix}:${e}`}compare(e,t,i){return"number"==typeof t[e.field]?t[e.field]-i[e.field]:`${t[e.field]}`.localeCompare(`${i[e.field]}`)}}}}]);
|
|
2
|
+
//# sourceMappingURL=exposed-PluginRoot.bf5e0b03.chunk.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"static/exposed-PluginRoot.
|
|
1
|
+
{"version":3,"file":"static/exposed-PluginRoot.bf5e0b03.chunk.js","mappings":"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","sources":["webpack://veecode-platform.plugin-veecode-homepage/./src/routes.ts","webpack://veecode-platform.plugin-veecode-homepage/./src/plugin.ts","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@backstage/plugin-home/dist/api/VisitsApi.esm.js","webpack://veecode-platform.plugin-veecode-homepage/../../node_modules/@backstage/plugin-home/dist/api/VisitsStorageApi.esm.js"],"sourcesContent":["import { createRouteRef } from '@backstage/core-plugin-api';\n\nexport const rootRouteRef = createRouteRef({\n id: 'veecode-homepage',\n});\n","import {\n createApiFactory,\n // createComponentExtension,\n createPlugin,\n createRoutableExtension,\n identityApiRef,\n storageApiRef,\n} from '@backstage/core-plugin-api';\nimport {\n // type StarredEntitiesProps,\n // type VisitedByTypeProps,\n // type FeaturedDocsCardProps,\n visitsApiRef,\n VisitsStorageApi,\n} from '@backstage/plugin-home';\n\nimport { rootRouteRef } from './routes';\n\nconsole.log('[veecode-homepage] Initializing plugin');\n\nexport const veecodeHomepagePlugin = createPlugin({\n id: 'veecode-homepage',\n routes: {\n root: rootRouteRef,\n },\n apis: [\n createApiFactory({\n api: visitsApiRef,\n deps: {\n storageApi: storageApiRef,\n identityApi: identityApiRef,\n },\n factory: ({ storageApi, identityApi }) => {\n console.log('[veecode-homepage] Creating VisitsStorageApi');\n return VisitsStorageApi.create({ storageApi, identityApi });\n },\n }),\n ],\n});\n\nexport const VeecodeHomepagePage = veecodeHomepagePlugin.provide(\n createRoutableExtension({\n name: 'c',\n component: () => {\n console.log('[veecode-homepage] Loading VeeCodeHomePage component');\n return import('./components/VeeCodeHomePage').then(m => m.VeeCodeHomePage);\n },\n mountPoint: rootRouteRef,\n }),\n);\n","import { createApiRef } from '@backstage/core-plugin-api';\n\nconst isOperator = (s) => {\n return [\"<\", \"<=\", \"==\", \"!=\", \">\", \">=\", \"contains\"].includes(s);\n};\nconst visitsApiRef = createApiRef({\n id: \"homepage.visits\"\n});\n\nexport { isOperator, visitsApiRef };\n//# sourceMappingURL=VisitsApi.esm.js.map\n","const DEFAULT_LIST_LIMIT = 8;\nclass VisitsStorageApi {\n limit;\n storageApi;\n storageKeyPrefix = \"@backstage/plugin-home:visits\";\n identityApi;\n static create(options) {\n return new VisitsStorageApi(options);\n }\n constructor(options) {\n this.limit = Math.abs(options.limit ?? 100);\n this.storageApi = options.storageApi;\n this.identityApi = options.identityApi;\n }\n /**\n * Returns a list of visits through the visitsApi\n */\n async list(queryParams) {\n let visits = [...await this.retrieveAll()];\n (queryParams?.orderBy ?? []).reverse().forEach((order) => {\n if (order.direction === \"asc\") {\n visits.sort((a, b) => this.compare(order, a, b));\n } else {\n visits.sort((a, b) => this.compare(order, b, a));\n }\n });\n (queryParams?.filterBy ?? []).reverse().forEach((filter) => {\n visits = visits.filter((visit) => {\n const field = visit[filter.field];\n if (filter.operator === \">\") return field > filter.value;\n if (filter.operator === \">=\") return field >= filter.value;\n if (filter.operator === \"<\") return field < filter.value;\n if (filter.operator === \"<=\") return field <= filter.value;\n if (filter.operator === \"==\") return field === filter.value;\n if (filter.operator === \"!=\") return field !== filter.value;\n if (filter.operator === \"contains\")\n return `${field}`.includes(`${filter.value}`);\n return false;\n });\n });\n return visits.slice(0, queryParams?.limit ?? DEFAULT_LIST_LIMIT);\n }\n /**\n * Saves a visit through the visitsApi\n */\n async save(saveParams) {\n const visits = [...await this.retrieveAll()];\n const visit = {\n ...saveParams.visit,\n id: window.crypto.randomUUID(),\n hits: 1,\n timestamp: Date.now()\n };\n const visitIndex = visits.findIndex((e) => e.pathname === visit.pathname);\n if (visitIndex >= 0) {\n visit.id = visits[visitIndex].id;\n visit.hits = visits[visitIndex].hits + 1;\n visits[visitIndex] = visit;\n } else {\n visits.push(visit);\n }\n visits.sort((a, b) => b.timestamp - a.timestamp);\n await this.persistAll(visits.splice(0, this.limit));\n return visit;\n }\n async persistAll(visits) {\n const storageKey = await this.getStorageKey();\n return this.storageApi.set(storageKey, visits);\n }\n async retrieveAll() {\n const storageKey = await this.getStorageKey();\n const snapshot = this.storageApi.snapshot(storageKey);\n if (snapshot?.presence !== \"unknown\") {\n return snapshot?.value ?? [];\n }\n return new Promise((resolve, reject) => {\n const subscription = this.storageApi.observe$(storageKey).subscribe({\n next: (next) => {\n const visits = next.value ?? [];\n subscription.unsubscribe();\n resolve(visits);\n },\n error: (err) => {\n subscription.unsubscribe();\n reject(err);\n }\n });\n });\n }\n async getStorageKey() {\n const { userEntityRef } = await this.identityApi.getBackstageIdentity();\n const storageKey = `${this.storageKeyPrefix}:${userEntityRef}`;\n return storageKey;\n }\n // This assumes Visit fields are either numbers or strings\n compare(order, a, b) {\n const isNumber = typeof a[order.field] === \"number\";\n return isNumber ? a[order.field] - b[order.field] : `${a[order.field]}`.localeCompare(`${b[order.field]}`);\n }\n}\n\nexport { VisitsStorageApi };\n//# sourceMappingURL=VisitsStorageApi.esm.js.map\n"],"names":["rootRouteRef","createRouteRef","id","console","log","veecodeHomepagePlugin","createPlugin","routes","root","apis","createApiFactory","api","visitsApiRef","deps","storageApi","storageApiRef","identityApi","identityApiRef","factory","VisitsStorageApi","create","VeecodeHomepagePage","provide","createRoutableExtension","name","component","then","m","VeeCodeHomePage","mountPoint","isOperator","s","includes","createApiRef","limit","storageKeyPrefix","options","constructor","this","Math","abs","list","queryParams","visits","retrieveAll","orderBy","reverse","forEach","order","direction","sort","a","b","compare","filterBy","filter","visit","field","operator","value","slice","save","saveParams","window","crypto","randomUUID","hits","timestamp","Date","now","visitIndex","findIndex","e","pathname","push","persistAll","splice","storageKey","getStorageKey","set","snapshot","presence","Promise","resolve","reject","subscription","observe$","subscribe","next","unsubscribe","error","err","userEntityRef","getBackstageIdentity","localeCompare"],"sourceRoot":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
__load_plugin_entry__("veecode-platform.plugin-veecode-homepage",(()=>{"use strict";var e,h,a,g,t,i,l,r,n,s,_,c,u,o,f,d,y,x,b,p,m,v={11004:(e,h,a)=>{var g={PluginRoot:()=>Promise.all([a.e(9490),a.e(879)]).then(()=>()=>a(84390))},t=(e,h)=>(a.R=h,h=a.o(g,e)?g[e]():Promise.resolve().then(()=>{throw new Error('Module "'+e+'" does not exist in container.')}),a.R=void 0,h),i=(e,h)=>{if(a.S){var g="default",t=a.S[g];if(t&&t!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return a.S[g]=e,a.I(g,h)}};a.d(h,{get:()=>t,init:()=>i})}},k={};function P(e){var h=k[e];if(void 0!==h)return h.exports;var a=k[e]={id:e,loaded:!1,exports:{}};return v[e].call(a.exports,a,a.exports,P),a.loaded=!0,a.exports}return P.m=v,P.c=k,P.n=e=>{var h=e&&e.__esModule?()=>e.default:()=>e;return P.d(h,{a:h}),h},h=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,P.t=function(a,g){if(1&g&&(a=this(a)),8&g)return a;if("object"==typeof a&&a){if(4&g&&a.__esModule)return a;if(16&g&&"function"==typeof a.then)return a}var t=Object.create(null);P.r(t);var i={};e=e||[null,h({}),h([]),h(h)];for(var l=2&g&&a;"object"==typeof l&&!~e.indexOf(l);l=h(l))Object.getOwnPropertyNames(l).forEach(e=>i[e]=()=>a[e]);return i.default=()=>a,P.d(t,i),t},P.d=(e,h)=>{for(var a in h)P.o(h,a)&&!P.o(e,a)&&Object.defineProperty(e,a,{enumerable:!0,get:h[a]})},P.f={},P.e=e=>Promise.all(Object.keys(P.f).reduce((h,a)=>(P.f[a](e,h),h),[])),P.u=e=>"static/"+({51:"react-syntax-highlighter_languages_highlight_prolog",200:"react-syntax-highlighter_languages_highlight_mel",206:"react-syntax-highlighter_languages_highlight_gml",371:"react-syntax-highlighter_languages_highlight_excel",456:"react-syntax-highlighter_languages_highlight_roboconf",460:"react-syntax-highlighter_languages_highlight_avrasm",464:"react-syntax-highlighter_languages_highlight_shell",557:"react-syntax-highlighter_languages_highlight_oneC",579:"react-syntax-highlighter_languages_highlight_vbnet",634:"react-syntax-highlighter_languages_highlight_scilab",879:"exposed-PluginRoot",927:"react-syntax-highlighter_languages_highlight_javascript",946:"react-syntax-highlighter_languages_highlight_clojure",985:"react-syntax-highlighter_languages_highlight_monkey",1062:"react-syntax-highlighter_languages_highlight_nim",1084:"react-syntax-highlighter_languages_highlight_aspectj",1099:"react-syntax-highlighter_languages_highlight_ebnf",1173:"react-syntax-highlighter_languages_highlight_autohotkey",1177:"react-syntax-highlighter_languages_highlight_profile",1214:"react-syntax-highlighter_languages_highlight_properties",1276:"react-syntax-highlighter_languages_highlight_phpTemplate",1325:"react-syntax-highlighter_languages_highlight_actionscript",1352:"react-syntax-highlighter_languages_highlight_fortran",1362:"react-syntax-highlighter_languages_highlight_mathematica",1418:"react-syntax-highlighter_languages_highlight_pony",1441:"react-syntax-highlighter_languages_highlight_coq",1461:"react-syntax-highlighter_languages_highlight_livescript",1489:"react-syntax-highlighter_languages_highlight_reasonml",1496:"react-syntax-highlighter_languages_highlight_lua",1522:"react-syntax-highlighter_languages_highlight_dust",1679:"react-syntax-highlighter_languages_highlight_scheme",1694:"react-syntax-highlighter_languages_highlight_accesslog",1727:"react-syntax-highlighter_languages_highlight_oxygene",1750:"react-syntax-highlighter_languages_highlight_makefile",1828:"react-syntax-highlighter_languages_highlight_dockerfile",1895:"react-syntax-highlighter_languages_highlight_pythonRepl",1956:"react-syntax-highlighter_languages_highlight_puppet",1961:"react-syntax-highlighter_languages_highlight_stan",1972:"react-syntax-highlighter_languages_highlight_fsharp",2007:"react-syntax-highlighter_languages_highlight_css",2064:"react-syntax-highlighter_languages_highlight_vhdl",2108:"react-syntax-highlighter_languages_highlight_cLike",2180:"react-syntax-highlighter_languages_highlight_sqf",2234:"react-syntax-highlighter_languages_highlight_lisp",2267:"react-syntax-highlighter_languages_highlight_maxima",2346:"react-syntax-highlighter_languages_highlight_d",2362:"react-syntax-highlighter_languages_highlight_xquery",2378:"react-syntax-highlighter_languages_highlight_parser3",2383:"react-syntax-highlighter_languages_highlight_crmsh",2438:"react-syntax-highlighter_languages_highlight_haxe",2488:"react-syntax-highlighter_languages_highlight_verilog",2496:"react-syntax-highlighter_languages_highlight_erlangRepl",2512:"react-syntax-highlighter_languages_highlight_stylus",2516:"react-syntax-highlighter_languages_highlight_apache",2665:"react-syntax-highlighter_languages_highlight_powershell",2693:"react-syntax-highlighter_languages_highlight_tap",2727:"react-syntax-highlighter_languages_highlight_q",2743:"react-syntax-highlighter_languages_highlight_asciidoc",2762:"react-syntax-highlighter_languages_highlight_haskell",2795:"react-syntax-highlighter_languages_highlight_dns",2871:"react-syntax-highlighter_languages_highlight_typescript",2882:"react-syntax-highlighter_languages_highlight_sml",2979:"react-syntax-highlighter_languages_highlight_plaintext",2981:"react-syntax-highlighter_languages_highlight_ruleslanguage",2983:"react-syntax-highlighter_languages_highlight_golo",3146:"react-syntax-highlighter_languages_highlight_purebasic",3193:"react-syntax-highlighter_languages_highlight_xml",3299:"react-syntax-highlighter_languages_highlight_fix",3357:"react-syntax-highlighter_languages_highlight_x86asm",3384:"react-syntax-highlighter_languages_highlight_ini",3418:"react-syntax-highlighter_languages_highlight_ruby",3419:"react-syntax-highlighter_languages_highlight_nix",3487:"react-syntax-highlighter_languages_highlight_mipsasm",3500:"react-syntax-highlighter_languages_highlight_autoit",3540:"react-syntax-highlighter_languages_highlight_moonscript",3562:"react-syntax-highlighter_languages_highlight_gams",3580:"react-syntax-highlighter_languages_highlight_csp",3607:"react-syntax-highlighter_languages_highlight_abnf",3623:"react-syntax-highlighter_languages_highlight_yaml",3722:"react-syntax-highlighter_languages_highlight_latex",3736:"react-syntax-highlighter_languages_highlight_json",3811:"react-syntax-highlighter_languages_highlight_erb",3885:"react-syntax-highlighter_languages_highlight_stata",3923:"react-syntax-highlighter_languages_highlight_applescript",3988:"react-syntax-highlighter_languages_highlight_vala",4014:"react-syntax-highlighter_languages_highlight_scss",4075:"react-syntax-highlighter_languages_highlight_hsp",4110:"react-syntax-highlighter_languages_highlight_tp",4135:"react-syntax-highlighter_languages_highlight_mizar",4282:"react-syntax-highlighter_languages_highlight_livecodeserver",4300:"react-syntax-highlighter_languages_highlight_r",4342:"react-syntax-highlighter_languages_highlight_php",4383:"react-syntax-highlighter_languages_highlight_dsconfig",4436:"react-syntax-highlighter_languages_highlight_zephir",4446:"react-syntax-highlighter_languages_highlight_leaf",4493:"react-syntax-highlighter_languages_highlight_gauss",4575:"react-syntax-highlighter_languages_highlight_processing",4635:"react-syntax-highlighter_languages_highlight_jbossCli",4733:"react-syntax-highlighter_languages_highlight_llvm",4835:"react-syntax-highlighter_languages_highlight_cos",4931:"react-syntax-highlighter_languages_highlight_step21",4956:"react-syntax-highlighter_languages_highlight_angelscript",4971:"react-syntax-highlighter_languages_highlight_lsl",5034:"react-syntax-highlighter_languages_highlight_ada",5051:"react-syntax-highlighter_languages_highlight_coffeescript",5099:"react-syntax-highlighter_languages_highlight_nsis",5123:"react-syntax-highlighter_languages_highlight_erlang",5189:"react-syntax-highlighter_languages_highlight_dts",5251:"react-syntax-highlighter_languages_highlight_pgsql",5253:"react-syntax-highlighter_languages_highlight_clojureRepl",5286:"react-syntax-highlighter_languages_highlight_nginx",5446:"react-syntax-highlighter_languages_highlight_ocaml",5565:"react-syntax-highlighter_languages_highlight_kotlin",5613:"react-syntax-highlighter_languages_highlight_rib",5664:"react-syntax-highlighter_languages_highlight_dos",5773:"react-syntax-highlighter_languages_highlight_mojolicious",5813:"react-syntax-highlighter_languages_highlight_less",5819:"react-syntax-highlighter_languages_highlight_gradle",5868:"react-syntax-highlighter_languages_highlight_inform7",5900:"react-syntax-highlighter_languages_highlight_lasso",6057:"react-syntax-highlighter_languages_highlight_sqlMore",6152:"react-syntax-highlighter_languages_highlight_vbscriptHtml",6161:"react-syntax-highlighter_languages_highlight_clean",6177:"react-syntax-highlighter_languages_highlight_taggerscript",6195:"react-syntax-highlighter_languages_highlight_ldif",6228:"react-syntax-highlighter_languages_highlight_rust",6267:"react-syntax-highlighter_languages_highlight_swift",6354:"react-syntax-highlighter_languages_highlight_java",6501:"react-syntax-highlighter_languages_highlight_armasm",6512:"react-syntax-highlighter_languages_highlight_scala",6542:"react-syntax-highlighter_languages_highlight_vim",6555:"react-syntax-highlighter_languages_highlight_openscad",6573:"react-syntax-highlighter_languages_highlight_cpp",6780:"react-syntax-highlighter_languages_highlight_qml",6835:"react-syntax-highlighter_languages_highlight_brainfuck",6848:"react-syntax-highlighter_languages_highlight_crystal",6924:"react-syntax-highlighter_languages_highlight_isbl",6977:"react-syntax-highlighter_languages_highlight_rsl",6986:"react-syntax-highlighter_languages_highlight_capnproto",7048:"react-syntax-highlighter_languages_highlight_gherkin",7079:"react-syntax-highlighter_languages_highlight_diff",7131:"react-syntax-highlighter_languages_highlight_protobuf",7209:"react-syntax-highlighter_languages_highlight_perl",7247:"react-syntax-highlighter_languages_highlight_cmake",7254:"react-syntax-highlighter_languages_highlight_subunit",7351:"react-syntax-highlighter_languages_highlight_elixir",7401:"react-syntax-highlighter_languages_highlight_sas",7406:"react-syntax-highlighter_languages_highlight_sql",7439:"react-syntax-highlighter_languages_highlight_flix",7533:"react-syntax-highlighter_languages_highlight_awk",7572:"react-syntax-highlighter_languages_highlight_basic",7764:"react-syntax-highlighter_languages_highlight_go",7776:"react-syntax-highlighter_languages_highlight_haml",7794:"react-syntax-highlighter_languages_highlight_http",7818:"react-syntax-highlighter_languages_highlight_arduino",7879:"react-syntax-highlighter_languages_highlight_csharp",7934:"react-syntax-highlighter_languages_highlight_glsl",7959:"react-syntax-highlighter_languages_highlight_htmlbars",8001:"react-syntax-highlighter_languages_highlight_matlab",8030:"react-syntax-highlighter_languages_highlight_handlebars",8058:"react-syntax-highlighter_languages_highlight_n1ql",8078:"react-syntax-highlighter_languages_highlight_delphi",8138:"react-syntax-highlighter_languages_highlight_elm",8140:"react-syntax-highlighter_languages_highlight_pf",8216:"react-syntax-highlighter_languages_highlight_bnf",8217:"react-syntax-highlighter_languages_highlight_twig",8331:"react-syntax-highlighter_languages_highlight_thrift",8338:"react-syntax-highlighter_languages_highlight_objectivec",8549:"react-syntax-highlighter_languages_highlight_c",8595:"react-syntax-highlighter_languages_highlight_hy",8705:"react-syntax-highlighter_languages_highlight_nodeRepl",8725:"react-syntax-highlighter_languages_highlight_smalltalk",8727:"react-syntax-highlighter/lowlight-import",8753:"react-syntax-highlighter_languages_highlight_mercury",8755:"react-syntax-highlighter_languages_highlight_tcl",8763:"react-syntax-highlighter_languages_highlight_routeros",8833:"react-syntax-highlighter_languages_highlight_markdown",8874:"react-syntax-highlighter_languages_highlight_smali",8903:"react-syntax-highlighter_languages_highlight_axapta",8904:"react-syntax-highlighter_languages_highlight_python",8948:"react-syntax-highlighter_languages_highlight_groovy",9078:"react-syntax-highlighter_languages_highlight_irpf90",9118:"react-syntax-highlighter_languages_highlight_juliaRepl",9139:"react-syntax-highlighter_languages_highlight_django",9162:"react-syntax-highlighter_languages_highlight_ceylon",9175:"react-syntax-highlighter_languages_highlight_vbscript",9229:"react-syntax-highlighter_languages_highlight_julia",9265:"react-syntax-highlighter_languages_highlight_dart",9406:"react-syntax-highlighter_languages_highlight_cal",9612:"react-syntax-highlighter_languages_highlight_bash",9702:"react-syntax-highlighter_languages_highlight_gcode",9726:"react-syntax-highlighter_languages_highlight_xl",9882:"react-syntax-highlighter_languages_highlight_arcade"}[e]||e)+"."+{41:"a129355f",51:"82449626",200:"da191c74",206:"2491c613",371:"d07971c7",456:"a39072a7",460:"6228a8ff",464:"6a4ac871",484:"02afeb5e",557:"0b878501",579:"4b4b2e72",634:"9a571656",635:"e9214179",734:"9c7c31a2",879:"bf5e0b03",927:"2843c9f9",946:"731aa945",985:"26fb20be",1062:"2f06cef8",1084:"5c298a0c",1085:"887425a0",1099:"97ec452c",1173:"52322506",1177:"d20cb414",1213:"412457e8",1214:"3935dfde",1276:"6d68f38a",1325:"a70a9328",1352:"9ffbda5d",1362:"528e5849",1418:"90cf9549",1441:"daeeac07",1461:"2e81835e",1489:"8545bf14",1496:"1470e57e",1522:"c86085da",1613:"67b355f9",1645:"4e532199",1679:"644353e2",1694:"b432f6b3",1727:"828f5302",1750:"c7aed13a",1828:"e5b149f1",1853:"9c4997f9",1895:"4f5a267f",1942:"ba18e0d8",1956:"af5ab1e6",1961:"9a7b8656",1963:"6a804bff",1972:"94b8cdb7",2007:"5f6eb4d5",2064:"10c7d850",2108:"c9bae5ec",2135:"4b0b1304",2180:"167013cf",2195:"a495edf0",2203:"ea66ef58",2234:"e5644c5f",2267:"b2f1d464",2346:"30384b0a",2362:"869b4329",2378:"c994b4a2",2383:"e4ba92f2",2438:"f49de151",2464:"8f3db6d5",2488:"77c301cf",2496:"f5d75a44",2512:"b41c08ce",2516:"097c9e38",2665:"9b03871c",2693:"9dabb53a",2727:"f47c41a5",2743:"5dd7957c",2762:"d0137cd3",2795:"b4664b09",2871:"0685c296",2882:"a114454c",2952:"6f9af7a8",2976:"168b3d3b",2979:"110fa252",2981:"8942f989",2983:"67a496d9",3002:"50f4d861",3007:"a2931d13",3144:"c2487180",3146:"6589faaf",3193:"aa89b47b",3215:"311247cc",3299:"f3c6acc4",3357:"7b46a3dd",3384:"9cac05e8",3418:"7e138b83",3419:"fdcceef5",3487:"560c89d3",3500:"81d05be7",3540:"e5aa0d68",3562:"5704e1bc",3580:"93820191",3607:"3a5fbb01",3623:"224cb637",3657:"00af2154",3722:"1af47e19",3736:"171d3b66",3811:"eade8286",3822:"ef69414e",3885:"8690dae4",3923:"55db503f",3937:"22b10472",3957:"eebbeb49",3988:"0c15ee40",4014:"a58b6c08",4026:"247ddcd8",4041:"ffdec1fb",4075:"a681f63c",4110:"93cbb8dc",4135:"5b420e9f",4197:"8a8b877f",4243:"462e4585",4282:"6b2e6f02",4300:"734e698e",4342:"d2d99742",4383:"ca85f0c4",4436:"1c01aa7e",4446:"32ca9c06",4493:"9eb821d4",4570:"e8ea2b1b",4575:"c4a6a860",4635:"957809cc",4733:"ebd82e5f",4835:"32b02224",4864:"0a352dc6",4931:"4229bc3f",4956:"84b4760d",4971:"069661c7",4994:"33ca05ed",5034:"8bd1b9b4",5051:"638f6744",5099:"19fe9568",5123:"6c73fed2",5189:"1b790b3b",5199:"60afcb13",5211:"b1dc9542",5251:"22fc4c94",5253:"01a6c425",5255:"21365d93",5277:"9939a389",5286:"47407cb1",5446:"c78fd6ba",5478:"ead54b58",5565:"81954695",5571:"73942ff6",5603:"aafa8ca4",5613:"25173f89",5664:"b2a1ece5",5741:"6a870f83",5773:"38a3110a",5813:"223a7100",5819:"e8d52059",5868:"d115164a",5888:"d5ff87d6",5900:"7ad88bc3",6038:"c97ae763",6057:"b26496db",6123:"94c2f019",6152:"9474891c",6161:"f1df0acc",6177:"3bd700ef",6195:"d5874f30",6228:"4129769e",6267:"07835008",6322:"00994d32",6352:"9e636536",6354:"003d85ee",6356:"0690b575",6460:"86145f5a",6501:"2391ee0b",6512:"5147d0e4",6542:"0de38ee9",6555:"34837741",6573:"466a9d1a",6700:"f2dbf122",6780:"8c94d588",6835:"633be955",6848:"b9115fe9",6921:"efadb98d",6924:"af538a0e",6977:"83de81ff",6986:"f398aa10",7048:"c3a667d0",7079:"cf7184e9",7131:"c5b5a4cc",7164:"79e2fc46",7209:"7e0dc42c",7247:"36800c38",7254:"9aba6615",7326:"09c270ae",7351:"3c35b4c5",7354:"a59ca9b4",7401:"ea9da690",7406:"8a8a3a3f",7424:"3b7fdeff",7439:"4bab2221",7533:"a443b287",7572:"9cdaa3b3",7764:"472893e9",7776:"4a348cf1",7794:"b20fa9cd",7818:"2beb2fe3",7871:"32fe0d52",7879:"0893db4b",7934:"786d568d",7959:"8be97afb",8001:"c2b94bf6",8030:"8dd94bc5",8058:"99efbba2",8067:"c743580c",8078:"3124c66e",8138:"3c56bdbe",8140:"dc4eb0f7",8216:"776135ec",8217:"66cf90a2",8331:"bdeff115",8338:"59636d87",8354:"fabef51b",8419:"a0f7e615",8549:"9251bb45",8595:"6c599c1d",8690:"71256e00",8705:"e0a048c3",8725:"f6026b6e",8727:"0d674474",8753:"88a064db",8755:"ead6666b",8763:"724af2b5",8833:"be15b0a9",8874:"5eb2a5ce",8903:"c58d6b74",8904:"3e0c5e39",8948:"29b65bda",9078:"7f25d3e6",9096:"80e2b711",9118:"25b837e4",9139:"c3b21c7f",9162:"92fd5297",9175:"2a254595",9229:"c1801db4",9265:"0c9d6516",9406:"ffdda530",9490:"88125fe7",9612:"90218b2e",9633:"d7b4641e",9702:"66e655c1",9710:"ed3c2299",9726:"d5df7885",9829:"d665c6c5",9882:"8b413bfb",9996:"79855bb7"}[e]+".chunk.js",P.miniCssF=e=>"static/"+e+"."+e+".ca7b2450.css",P.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),P.o=(e,h)=>Object.prototype.hasOwnProperty.call(e,h),a={},g="veecode-platform.plugin-veecode-homepage:",P.l=(e,h,t,i)=>{if(a[e])a[e].push(h);else{var l,r;if(void 0!==t)for(var n=document.getElementsByTagName("script"),s=0;s<n.length;s++){var _=n[s];if(_.getAttribute("src")==e||_.getAttribute("data-webpack")==g+t){l=_;break}}l||(r=!0,(l=document.createElement("script")).charset="utf-8",l.timeout=120,P.nc&&l.setAttribute("nonce",P.nc),l.setAttribute("data-webpack",g+t),l.src=e),a[e]=[h];var c=(h,g)=>{l.onerror=l.onload=null,clearTimeout(u);var t=a[e];if(delete a[e],l.parentNode&&l.parentNode.removeChild(l),t&&t.forEach(e=>e(g)),h)return h(g)},u=setTimeout(c.bind(null,void 0,{type:"timeout",target:l}),12e4);l.onerror=c.bind(null,l.onerror),l.onload=c.bind(null,l.onload),r&&document.head.appendChild(l)}},P.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},P.nmd=e=>(e.paths=[],e.children||(e.children=[]),e),(()=>{P.S={};var e={},h={};P.I=(a,g)=>{g||(g=[]);var t=h[a];if(t||(t=h[a]={}),!(g.indexOf(t)>=0)){if(g.push(t),e[a])return e[a];P.o(P.S,a)||(P.S[a]={});var i=P.S[a],l="veecode-platform.plugin-veecode-homepage",r=(e,h,a,g)=>{var t=i[e]=i[e]||{},r=t[h];(!r||!r.loaded&&(!g!=!r.eager?g:l>r.from))&&(t[h]={get:a,from:l,eager:!!g})},n=[];return"default"===a&&(r("@backstage/core-app-api","1.19.0",()=>Promise.all([P.e(6123),P.e(3215),P.e(7424),P.e(4864),P.e(1853),P.e(5478),P.e(7326),P.e(9490),P.e(7354)]).then(()=>()=>P(14864))),r("@backstage/core-plugin-api","1.11.0",()=>Promise.all([P.e(2135),P.e(1963),P.e(5478),P.e(7326)]).then(()=>()=>P(41963))),r("@backstage/frontend-plugin-api","0.12.0",()=>Promise.all([P.e(3215),P.e(2135),P.e(7871),P.e(5478),P.e(7326),P.e(9490),P.e(3002)]).then(()=>()=>P(17871))),r("@backstage/version-bridge","1.0.11",()=>Promise.all([P.e(5478),P.e(5603)]).then(()=>()=>P(65603))),r("@emotion/cache","11.14.0",()=>P.e(7164).then(()=>()=>P(67164))),r("@emotion/react","11.14.0",()=>Promise.all([P.e(5478),P.e(6322),P.e(3657)]).then(()=>()=>P(53657))),r("@material-ui/core/styles","4.12.4",()=>Promise.all([P.e(6352),P.e(5478),P.e(1942),P.e(3937)]).then(()=>()=>P(92976))),r("@material-ui/styles","4.11.5",()=>Promise.all([P.e(4570),P.e(5478),P.e(3007)]).then(()=>()=>P(94570))),r("@mui/material","5.17.1",()=>Promise.all([P.e(5741),P.e(9996),P.e(5571),P.e(6921),P.e(5478),P.e(484),P.e(9096),P.e(4994),P.e(1085)]).then(()=>()=>P(6921))),r("@mui/private-theming","5.17.1",()=>Promise.all([P.e(5478),P.e(1645)]).then(()=>()=>P(51645))),r("@mui/styled-engine","5.18.0",()=>Promise.all([P.e(2952),P.e(5478),P.e(6322),P.e(5277),P.e(635)]).then(()=>()=>P(92952))),r("@mui/system","5.18.0",()=>Promise.all([P.e(5741),P.e(9996),P.e(9710),P.e(5478),P.e(9096),P.e(2464),P.e(1085)]).then(()=>()=>P(29710))),r("react-dom","18.3.1",()=>Promise.all([P.e(3144),P.e(5478)]).then(()=>()=>P(43144))),r("react-router-dom","6.30.1",()=>Promise.all([P.e(1613),P.e(8419),P.e(5478),P.e(484),P.e(9829)]).then(()=>()=>P(73657))),r("react-router","6.30.1",()=>Promise.all([P.e(1613),P.e(8690),P.e(5478)]).then(()=>()=>P(18690))),r("react","18.3.1",()=>P.e(4041).then(()=>()=>P(14041)))),e[a]=n.length?Promise.all(n).then(()=>e[a]=1):1}}})(),(()=>{var e;P.g.importScripts&&(e=P.g.location+"");var h=P.g.document;if(!e&&h&&(h.currentScript&&"SCRIPT"===h.currentScript.tagName.toUpperCase()&&(e=h.currentScript.src),!e)){var a=h.getElementsByTagName("script");if(a.length)for(var g=a.length-1;g>-1&&(!e||!/^http(s?):/.test(e));)e=a[g--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),P.p=e})(),t=e=>{var h=e=>e.split(".").map(e=>+e==e?+e:e),a=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),g=a[1]?h(a[1]):[];return a[2]&&(g.length++,g.push.apply(g,h(a[2]))),a[3]&&(g.push([]),g.push.apply(g,h(a[3]))),g},i=(e,h)=>{e=t(e),h=t(h);for(var a=0;;){if(a>=e.length)return a<h.length&&"u"!=(typeof h[a])[0];var g=e[a],i=(typeof g)[0];if(a>=h.length)return"u"==i;var l=h[a],r=(typeof l)[0];if(i!=r)return"o"==i&&"n"==r||"s"==r||"u"==i;if("o"!=i&&"u"!=i&&g!=l)return g<l;a++}},l=e=>{var h=e[0],a="";if(1===e.length)return"*";if(h+.5){a+=0==h?">=":-1==h?"<":1==h?"^":2==h?"~":h>0?"=":"!=";for(var g=1,t=1;t<e.length;t++)g--,a+="u"==(typeof(r=e[t]))[0]?"-":(g>0?".":"")+(g=2,r);return a}var i=[];for(t=1;t<e.length;t++){var r=e[t];i.push(0===r?"not("+n()+")":1===r?"("+n()+" || "+n()+")":2===r?i.pop()+" "+i.pop():l(r))}return n();function n(){return i.pop().replace(/^\((.+)\)$/,"$1")}},r=(e,h)=>{if(0 in e){h=t(h);var a=e[0],g=a<0;g&&(a=-a-1);for(var i=0,l=1,n=!0;;l++,i++){var s,_,c=l<e.length?(typeof e[l])[0]:"";if(i>=h.length||"o"==(_=(typeof(s=h[i]))[0]))return!n||("u"==c?l>a&&!g:""==c!=g);if("u"==_){if(!n||"u"!=c)return!1}else if(n)if(c==_)if(l<=a){if(s!=e[l])return!1}else{if(g?s>e[l]:s<e[l])return!1;s!=e[l]&&(n=!1)}else if("s"!=c&&"n"!=c){if(g||l<=a)return!1;n=!1,l--}else{if(l<=a||_<c!=g)return!1;n=!1}else"s"!=c&&"n"!=c&&(n=!1,l--)}}var u=[],o=u.pop.bind(u);for(i=1;i<e.length;i++){var f=e[i];u.push(1==f?o()|o():2==f?o()&o():f?r(f,h):!o())}return!!o()},n=(e,h)=>e&&P.o(e,h),s=e=>(e.loaded=1,e.get()),_=e=>Object.keys(e).reduce((h,a)=>(e[a].eager&&(h[a]=e[a]),h),{}),c=(e,h,a)=>{var g=a?_(e[h]):e[h];return Object.keys(g).reduce((e,h)=>!e||!g[e].loaded&&i(e,h)?h:e,0)},u=(e,h,a,g)=>"Unsatisfied version "+a+" from "+(a&&e[h][a].from)+" of shared singleton module "+h+" (required "+l(g)+")",o=e=>{throw new Error(e)},f=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},d=(e,h,a)=>a?a():((e,h)=>o("Shared module "+h+" doesn't exist in shared scope "+e))(e,h),y=(e=>function(h,a,g,t,i){var l=P.I(h);return l&&l.then&&!g?l.then(e.bind(e,h,P.S[h],a,!1,t,i)):e(h,P.S[h],a,g,t,i)})((e,h,a,g,t,i)=>{if(!n(h,a))return d(e,a,i);var l=c(h,a,g);return r(t,l)||f(u(h,a,l,t)),s(h[a][l])}),x={},b={9490:()=>y("default","@backstage/core-plugin-api",!1,[0],()=>Promise.all([P.e(2135),P.e(1963),P.e(5478),P.e(7326)]).then(()=>()=>P(41963))),95478:()=>y("default","react",!1,[0],()=>P.e(4041).then(()=>()=>P(14041))),42469:()=>y("default","react-router-dom",!1,[0],()=>Promise.all([P.e(1613),P.e(8419),P.e(484),P.e(9829)]).then(()=>()=>P(73657))),64218:()=>y("default","@backstage/version-bridge",!1,[0],()=>P.e(5603).then(()=>()=>P(65603))),76322:()=>y("default","@emotion/cache",!1,[0],()=>P.e(7164).then(()=>()=>P(67164))),11942:()=>y("default","@material-ui/styles",!1,[0],()=>P.e(4570).then(()=>()=>P(94570))),40484:()=>y("default","react-dom",!1,[0],()=>P.e(3144).then(()=>()=>P(43144))),79096:()=>y("default","@mui/styled-engine",!1,[0],()=>Promise.all([P.e(2952),P.e(6322),P.e(5277)]).then(()=>()=>P(92952))),54994:()=>y("default","@mui/system",!1,[0],()=>Promise.all([P.e(5741),P.e(9710),P.e(2464)]).then(()=>()=>P(29710))),5277:()=>y("default","@emotion/react",!1,[0],()=>P.e(6038).then(()=>()=>P(53657))),22464:()=>y("default","@mui/private-theming",!1,[0],()=>P.e(4026).then(()=>()=>P(51645))),9829:()=>y("default","react-router",!1,[0],()=>P.e(8690).then(()=>()=>P(18690))),28890:()=>y("default","@backstage/core-app-api",!1,[0],()=>Promise.all([P.e(6123),P.e(3215),P.e(7424),P.e(4864)]).then(()=>()=>P(14864))),37976:()=>y("default","@material-ui/core/styles",!1,[0],()=>P.e(2976).then(()=>()=>P(92976))),81270:()=>y("default","@mui/material",!1,[0],()=>Promise.all([P.e(5741),P.e(6921)]).then(()=>()=>P(6921))),98254:()=>y("default","@backstage/frontend-plugin-api",!1,[0],()=>Promise.all([P.e(3215),P.e(7871)]).then(()=>()=>P(17871)))},p={484:[40484],1942:[11942],2464:[22464],4994:[54994],5277:[5277],5478:[95478],6322:[76322],6460:[28890,37976,81270,98254],7326:[42469,64218],9096:[79096],9490:[9490],9829:[9829]},m={},P.f.consumes=(e,h)=>{P.o(p,e)&&p[e].forEach(e=>{if(P.o(x,e))return h.push(x[e]);if(!m[e]){var a=h=>{x[e]=0,P.m[e]=a=>{delete P.c[e],a.exports=h()}};m[e]=!0;var g=h=>{delete x[e],P.m[e]=a=>{throw delete P.c[e],h}};try{var t=b[e]();t.then?h.push(x[e]=t.then(a).catch(g)):a(t)}catch(e){g(e)}}})},(()=>{if("undefined"!=typeof document){var e={3786:0};P.f.miniCss=(h,a)=>{e[h]?a.push(e[h]):0!==e[h]&&{4243:1}[h]&&a.push(e[h]=(e=>new Promise((h,a)=>{var g=P.miniCssF(e),t=P.p+g;if(((e,h)=>{for(var a=document.getElementsByTagName("link"),g=0;g<a.length;g++){var t=(l=a[g]).getAttribute("data-href")||l.getAttribute("href");if("stylesheet"===l.rel&&(t===e||t===h))return l}var i=document.getElementsByTagName("style");for(g=0;g<i.length;g++){var l;if((t=(l=i[g]).getAttribute("data-href"))===e||t===h)return l}})(g,t))return h();((e,h,a,g,t)=>{var i=document.createElement("link");i.rel="stylesheet",i.type="text/css",P.nc&&(i.nonce=P.nc),i.onerror=i.onload=a=>{if(i.onerror=i.onload=null,"load"===a.type)g();else{var l=a&&a.type,r=a&&a.target&&a.target.href||h,n=new Error("Loading CSS chunk "+e+" failed.\n("+l+": "+r+")");n.name="ChunkLoadError",n.code="CSS_CHUNK_LOAD_FAILED",n.type=l,n.request=r,i.parentNode&&i.parentNode.removeChild(i),t(n)}},i.href=h,function(e){const h=document.head,a=h.querySelector("style[data-jss]");a?h.insertBefore(e,a):h.appendChild(e)}(i)})(e,t,0,h,a)}))(h).then(()=>{e[h]=0},a=>{throw delete e[h],a}))}}})(),(()=>{var e={3786:0};P.f.j=(h,a)=>{var g=P.o(e,h)?e[h]:void 0;if(0!==g)if(g)a.push(g[2]);else if(/^(4(243|84|994)|9(096|490|829)|1942|2464|5277|5478|6322|7326)$/.test(h))e[h]=0;else{var t=new Promise((a,t)=>g=e[h]=[a,t]);a.push(g[2]=t);var i=P.p+P.u(h),l=new Error;P.l(i,a=>{if(P.o(e,h)&&(0!==(g=e[h])&&(e[h]=void 0),g)){var t=a&&("load"===a.type?"missing":a.type),i=a&&a.target&&a.target.src;l.message="Loading chunk "+h+" failed.\n("+t+": "+i+")",l.name="ChunkLoadError",l.type=t,l.request=i,g[1](l)}},"chunk-"+h,h)}};var h=(h,a)=>{var g,t,[i,l,r]=a,n=0;if(i.some(h=>0!==e[h])){for(g in l)P.o(l,g)&&(P.m[g]=l[g]);r&&r(P)}for(h&&h(a);n<i.length;n++)t=i[n],P.o(e,t)&&e[t]&&e[t][0](),e[t]=0},a=self.webpackChunkveecode_platform_plugin_veecode_homepage=self.webpackChunkveecode_platform_plugin_veecode_homepage||[];a.forEach(h.bind(null,0)),a.push=h.bind(null,a.push.bind(a))})(),P(11004)})());
|
|
2
|
+
//# sourceMappingURL=veecode-platform.plugin-veecode-homepage.52a7b0ce89460aa40ee1.js.map
|