1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[9003],{9003:(e,t,r)=>{r.r(t),r.d(t,{TopicsSection:()=>u});var l=r(95155),n=r(52619),a=r.n(n),s=r(12115),i=r(20063),o=r(63892),c=r(19191),d=r(14476),p=r(27761);let u=(0,s.memo)(function(e){var t;let{onToggle:r}=e,n=(0,i.usePathname)(),{expandedState:a,toggleExpandedState:u}=(0,c.D)(),h=null==(t=a.topics)||t,{data:m,isLoading:g}=(0,d.M$)(void 0,{skip:!h}),f=(0,s.useMemo)(()=>{var e,t;return(0,p.W)(null!=(t=null==m||null==(e=m.data)?void 0:e.topics)?t:[])},[m]),[b,v]=(0,s.useState)({}),y=e=>v(t=>({...t,[e]:!t[e]}));(0,s.useEffect)(()=>{let e=(e=>{if(!e||!e.startsWith("/topics/"))return null;let t=e.replace(/^\/topics\//,"");return t?t.split("/").filter(Boolean).map(decodeURIComponent).join("."):null})(n);if(!e)return;let t=e.split(".").filter(Boolean);0!==t.length&&v(e=>{let r={...e};for(let e=1;e<=t.length;e++)r[t.slice(0,e).join(".")]=!0;return r})},[n]);let j=()=>{window.innerWidth<1024&&r&&r()};return(0,l.jsxs)("div",{className:"sidebar-section relative @container",children:[(0,l.jsx)("div",{className:"sidebar-section-header",children:(0,l.jsxs)("div",{className:"flex items-center justify-between px-6 py-2",children:[(0,l.jsxs)("div",{className:"flex items-center gap-1.5",children:[(0,l.jsx)("span",{className:"font-semibold text-[11px] uppercase tracking-[0.06em] text-gray-500 dark:text-gray-400",children:"Topics"}),(0,l.jsx)("span",{className:"text-[9px] font-bold tracking-wider text-[#0D99FF] bg-[#0D99FF]/10 px-1.5 py-0.5 rounded",children:"BETA"}),(0,l.jsx)("span",{className:"text-[9px] font-bold tracking-wider text-[#D97706] bg-[#D97706]/10 px-1.5 py-0.5 rounded",children:"PRO"})]}),(0,l.jsx)("div",{className:"flex items-center gap-2",children:(0,l.jsx)("button",{onClick:()=>u("topics"),className:"w-6 h-6 flex items-center justify-center transition-transform duration-200 cursor-pointer hover:bg-gray-100 dark:hover:bg-gray-600 rounded-md p-0.5",children:(0,l.jsx)("div",{className:"transition-transform duration-200",style:{transform:h?"rotate(0deg)":"rotate(-90deg)"},children:(0,l.jsx)(o.A,{name:"ArrowDown",width:18,height:18,color:"#5d5d5d"})})})})]})}),h&&(0,l.jsx)("div",{className:"sidebar-section-content",children:(0,l.jsx)("div",{className:"pb-2",children:g?(0,l.jsx)("div",{className:"h-[32px] flex items-center px-[24px]",children:(0,l.jsx)("span",{className:"text-gray-500 dark:text-gray-200 text-sm",children:"Loading topics..."})}):f.length>0?f.map(e=>(0,l.jsx)(x,{node:e,depth:0,expanded:b,onToggleNode:y,pathname:n,onNavClick:j},e.fullPath)):(0,l.jsx)("div",{className:"h-[32px] flex items-center px-[24px]",children:(0,l.jsx)("span",{className:"text-gray-500 dark:text-gray-200 text-sm",children:"No topics yet"})})})})]})});function x(e){var t;let r,{node:n,depth:s,expanded:i,onToggleNode:c,pathname:d,onNavClick:p}=e,u=null!=(t=i[n.fullPath])&&t,h=n.children.length>0,m=(r=n.fullPath,"/topics/".concat(r.split(".").filter(Boolean).map(encodeURIComponent).join("/"))),g=d===m,f=e=>{e.preventDefault(),e.stopPropagation(),c(n.fullPath)};return(0,l.jsxs)(l.Fragment,{children:[(0,l.jsxs)(a(),{href:m,onClick:()=>{h&&!u&&c(n.fullPath),p()},className:"h-[32px] sidebar-item select-none mx-[12px] rounded-[8px] py-1 hover:bg-[#ececec] dark:hover:bg-gray-600 flex justify-between cursor-pointer ".concat(g?"bg-[#ececec] dark:bg-gray-600":""),children:[(0,l.jsxs)("div",{className:"flex items-center min-w-0 flex-1",style:{paddingLeft:12+14*s},children:[(0,l.jsx)("span",{className:"w-[6px] h-[6px] rounded-full bg-gray-500 dark:bg-gray-400 flex-shrink-0 mr-[10px]","aria-hidden":!0}),(0,l.jsx)("span",{className:"text-gray-800 dark:text-gray-200 font-medium text-sm truncate",children:n.label})]}),h&&(0,l.jsx)("div",{role:"button",tabIndex:0,"aria-label":u?"Collapse":"Expand",onClick:f,onKeyDown:e=>{("Enter"===e.key||" "===e.key)&&f(e)},className:"p-1 mr-[8px] flex items-center justify-center cursor-pointer rounded-sm hover:bg-[#d9d9d9] dark:hover:bg-gray-700 flex-shrink-0",children:(0,l.jsx)("div",{className:"transform transition-transform duration-200 ".concat(u?"":"-rotate-90"),children:(0,l.jsx)(o.A,{name:"ArrowDown",color:"#5d5d5d",width:16,height:16})})})]}),h&&u&&n.children.map(e=>(0,l.jsx)(x,{node:e,depth:s+1,expanded:i,onToggleNode:c,pathname:d,onNavClick:p},e.fullPath))]})}},14476:(e,t,r)=>{r.d(t,{$x:()=>o,BV:()=>a,M$:()=>s,i6:()=>i});var l=r(61321),n=r(49973);let a=(0,l.xP)({reducerPath:"topicsApi",baseQuery:n.W,tagTypes:["Topics","TopicResources"],endpoints:e=>({getTopics:e.query({query:()=>({url:"topics"}),providesTags:["Topics"]}),getTopicResources:e.query({query:e=>{let{path:t,limit:r=20,cursor:l}=e,n=new URLSearchParams;return n.set("limit",String(r)),l&&n.set("cursor",l),{url:"topics/".concat(encodeURIComponent(t),"/resources?").concat(n.toString())}},providesTags:(e,t,r)=>{let{path:l}=r;return[{type:"TopicResources",id:l}]}}),updateTopicPreferences:e.mutation({query:e=>({url:"preferences/topics",method:"PATCH",body:e}),invalidatesTags:["TopicResources"]})})}
1),{useGetTopicsQuery:s,useGetTopicResourcesQuery:i,useUpdateTopicPreferencesMutation:o}=a},19191:(e,t,r)=>{r.d(t,{D:()=>i,SelectedCollectionProvider:()=>s});var l=r(95155),n=r(12115);let a=(0,n.createContext)(void 0),s=e=>{let{children:t}=e,[r,s]=(0,n.useState)(null),[i,o]=(0,n.useState)({}),c=(0,n.useRef)({}),d=(0,n.useCallback)(function(e,t){let r=arguments.length>2&&void 0!==arguments[2]&&arguments[2];if(c.current[e]&&clearTimeout(c.current[e]),r)return void localStorage.setItem(e,t);if("requestIdleCallback"in window){let r=window.requestIdleCallback(()=>{localStorage.setItem(e,t),delete c.current[e]});c.current[e]=r}else{let r=window.setTimeout(()=>{localStorage.setItem(e,t),delete c.current[e]},50);c.current[e]=r}},[]);(0,n.useEffect)(()=>{let e=localStorage.getItem("selectedCollectionId");e&&s(parseInt(e,10));let t=localStorage.getItem("expandedState");t&&o(JSON.parse(t))},[]);let p=(0,n.useCallback)(e=>{s(e),d("selectedCollectionId",e.toString())},[d]),u=(0,n.useCallback)(e=>{o(t=>{let r={...t,[e]:!t[e]};return d("expandedState",JSON.stringify(r)),r})},[d]),x=(0,n.useCallback)(()=>{let e=Object.keys(i).reduce((e,t)=>{if("collections"===t){var r;e[t]=null==(r=i[t])||r}else e[t]=!1;return e},{});o(e),d("expandedState",JSON.stringify(e))},[i,d]),h=(0,n.useMemo)(()=>({selectedCollectionId:r,updateSelectedCollectionId:p,expandedState:i,toggleExpandedState:u,collapseAllCollections:x}),[r,p,i,u,x]);return(0,l.jsx)(a.Provider,{value:h,children:t})},i=()=>{let e=(0,n.useContext)(a);if(void 0===e)throw Error("useSelectedCollection must be used within a SelectedCollectionProvider");return e}},27761:(e,t,r)=>{r.d(t,{W:()=>l});function l(e){let t=[],r=new Map,l=e=>{let n=e.join("."),a=r.get(n);if(a)return a;let s=e[e.length-1],i={segment:s,fullPath:n,label:s.split("_").filter(Boolean).map(e=>e.charAt(0).toUpperCase()+e.slice(1)).join(" "),children:[]};return r.set(n,i),1===e.length?t.push(i):l(e.slice(0,-1)).children.push(i),i};for(let t of e){let e=t.path.split(".").filter(Boolean);if(0===e.length)continue;let r=l(e);r.entry=t,r.label=t.label?t.label.charAt(0).toUpperCase()+t.label.slice(1):r.label}let n=e=>{e.sort((e,t)=>e.label.localeCompare(t.label)),e.forEach(e=>n(e.children))};return n(t),t}}}]);
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.