1import{r as d,j as a}from"./vendor-react-QBdHTLhB.js";import{u}from"./vendor-query-DvxQDmy6.js";import{l as b,E as p,L as h,i,m as o,n as m,f,k as x}from"./index-DanONFSR.js";import{u as c}from"./vendor-i18n-D25i1uPq.js";function j(r){const e=r.split("/").filter(Boolean).map(decodeURIComponent);if(e[0]!=="embed")return null;const l=e[1];if(l!=="github"||e.length<4)return null;const n=e.slice(2,-1).join("/"),s=e[e.length-1];return!n||!s?null:{provider:l,owner:n,repo:s}}function y(){const{t:r}=c(),e=d.useMemo(()=>j(window.location.pathname),[]);d.useEffect(()=>(document.documentElement.classList.add("embed-mode"),document.body.classList.add("embed-mode"),()=>{document.documentElement.classList.remove("embed-mode"),document.body.classList.remove("embed-mode")}),[]);const l=u({queryKey:["embed-report",e==null?void 0:e.provider,e==null?void 0:e.owner,e==null?void 0:e.repo],enabled:!!e,staleTime:3600*1e3,retry:0,queryFn:()=>{const t=new URLSearchParams({provider:e.provider,owner:e.owner,repo:e.repo});return x(`/api/seo/report?${t.toString()}`)}}),n=l.data??null,s=n?`${window.location.origin}${n.publicPath}`:e?b(e.owner,e.repo,""):window.location.origin;return d.useEffect(()=>{document.title=n?`${n.repoFullName} SLOC card | OctoCounts`:r("embedCard.loading")},[n,r]),e?a.jsx("main",{className:"embed-page",children:n?a.jsx(g,{report:n,reportUrl:s}):a.jsx("div",{className:"embed-card embed-state",role:"status",children:l.isError?a.jsxs(a.Fragment,{children:[a.jsx("span",{children:r("embedCard.unavailable")}),a.jsxs("a",{href:s,target:"_blank",rel:"noreferrer",children:[r("embedCard.viewReport")," ",a.jsx(p,{size:11,"aria-hidden":"true"})]})]}):a.jsxs(a.Fragment,{children:[a.jsx(h,{className:"spin",size:14,"aria-hidden":"true"})," ",r("embedCard.loading")]})})}):a.jsx("main",{className:"embed-page",children:a.jsx("div",{className:"embed-card embed-state",role:"alert",children:r("embedCard.unavailable")})})}function g({report:r,reportUrl:e}){const{t:l}=c(),n=N(r.languages),s=Math.max(r.total.lines,1);return a.jsxs("div",{className:"embed-card",role:"group","aria-label":l("embedCard.ariaLabel",{repo:r.repoFullName}),children:[a.jsxs("div",{className:"embed-card-head",children:[a.jsx("a",{className:"embed-card-repo",href:e,target:"_blank",rel:"noreferrer",children:r.repoFullName}),a.jsx("span",{className:"embed-card-ref",children:r.refName})]}),a.jsxs("div",{className:"embed-card-stats",children:[a.jsxs("span",{children:[a.jsx("strong",{children:i(r.total.lines)})," ",l("embedCard.lines")]}),a.jsxs("span",{children:[a.jsx("strong",{children:i(r.total.code)})," ",l("embedCard.code")]})]}),a.jsx("div",{className:"embed-card-bar",role:"img","aria-label":n.map(t=>`${t.name} ${m(t.lines,s)}`).join(", "),children:n.map(t=>a.jsx("i",{style:{width:`${Math.max(t.lines/s*100,.5)}%`,background:o(t.name)}},t.name))}),a.jsx("div",{className:"embed-card-legend",children:n.slice(0,3).map(t=>a.jsxs("span",{children:[a.jsx("b",{style:{background:o(t.name)}}),t.name," ",m(t.lines,s)]},t.name))}),a.jsx("a",{className:"embed-card-powered",href:e,target:"_blank",rel:"noreferrer",title:f(r.total.lines),children:l("embedCard.poweredBy")})]})}function N(r){const e=[...r].filter(s=>s.stats.lines>0).sort((s,t)=>t.stats.lines-s.stats.lines),l=e.slice(0,5).map(s=>({name:s.name,lines:s.stats.lines})),n=e.slice(5).reduce((s,t)=>s+t.stats.lines,0);return n>0&&l.push({name:"Other",lines:n}),l}export{y as EmbedPage,j as parseEmbedPath};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.