1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[6472,74590],{6472:(e,t,l)=>{l.r(t),l.d(t,{default:()=>c});var n=l(37876),r=l(79547),a=l(11814),s=l(14232),i=l(74590);let c=e=>{let{toc:t}=e,l=[],c=(0,s.useRef)(null),[o,u]=(0,s.useState)(null);(0,s.useEffect)(()=>(window.addEventListener("scroll",d,{passive:!0}),d(),()=>{window.removeEventListener("scroll",d)}),[]);let d=(0,s.useCallback)((0,r.A)(()=>{var e;let t=document.getElementsByClassName("notion-h"),n=null,r=o;for(let e=0;e<t.length;++e){let l=t[e];if(!l||!(l instanceof Element))continue;r||(r=l.getAttribute("data-id"));let a=l.getBoundingClientRect(),s=Math.max(150,(n?a.top-n.bottom:0)/4);if(a.top-s<0){r=l.getAttribute("data-id"),n=a;continue}break}u(r);let a=l.indexOf(r)||0;null==c||null==(e=c.current)||e.scrollTo({top:28*a,behavior:"smooth"})},200));return!t||t.length<1?(0,n.jsx)(n.Fragment,{}):(0,n.jsxs)("div",{className:"px-3",children:[(0,n.jsx)("div",{className:"w-full mt-2 mb-4",children:(0,n.jsx)(i.default,{})}),(0,n.jsx)("div",{className:"overflow-y-auto max-h-44 overscroll-none scroll-hidden",ref:c,children:(0,n.jsx)("nav",{className:"h-full text-black",children:t.map(e=>{let t=(0,a.Qg)(e.id);return l.push(t),(0,n.jsx)("a",{href:"#".concat(t),className:"notion-table-of-contents-item duration-300 transform font-light dark:text-gray-300\n notion-table-of-contents-item-indent-level-".concat(e.indentLevel," catalog-item "),children:(0,n.jsx)("span",{style:{display:"inline-block",marginLeft:16*e.indentLevel},className:"truncate ".concat(o===t?"font-bold text-green-500 underline":""),children:e.text})},t)})})})]})}},74590:(e,t,l)=>{l.r(t),l.d(t,{default:()=>s});var n=l(37876),r=l(14232),a=l(14969);let s=e=>
1{let{targetRef:t,showPercent:l=!0}=e,s=(null==t?void 0:t.current)||t,[i,c]=(0,r.useState)(0),o=(0,r.useRef)(i),u=(0,r.useRef)(null);(0,r.useEffect)(()=>{o.current=i},[i]);let d=(0,r.useCallback)(()=>{u.current=null;let e=s||a.isBrowser&&document.getElementById("article-wrapper");if(e){let t=e.clientHeight,l=window.pageYOffset,n=t-window.innerHeight;if(!n||n<=0)return;let r=parseFloat((l/n*100).toFixed(0));r>100&&(r=100),r<0&&(r=0),r!==o.current&&(o.current=r,c(r))}},[s]),f=(0,r.useCallback)(()=>{u.current||(u.current=requestAnimationFrame(d))},[d]);return(0,r.useEffect)(()=>(document.addEventListener("scroll",f,{passive:!0}),()=>{document.removeEventListener("scroll",f),u.current&&(cancelAnimationFrame(u.current),u.current=null)}),[f]),(0,n.jsx)("div",{className:"h-4 w-full shadow-2xl bg-hexo-light-gray dark:bg-black",children:(0,n.jsx)("div",{className:"h-4 bg-gray-600 duration-200",style:{width:"".concat(i,"%")},children:l&&(0,n.jsxs)("div",{className:"text-right text-white text-xs",children:[i,"%"]})})})}},79547:(e,t,l)=>{l.d(t,{A:()=>n});function n(e){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100,l=null,n=0,r=null;return function(){for(var a=arguments.length,s=Array(a),i=0;i<a;i++)s[i]=arguments[i];let c=Date.now(),o=t-(c-n);if(r=s,o<=0){l&&(clearTimeout(l),l=null),n=c,e(...r),r=null;return}l||(l=setTimeout(()=>{l=null,n=Date.now(),r&&(e(...r),r=null)},o))}}}}]);
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.