DeepLearning_2026 / lecture-02 /assets /slidev /NoteDisplay-C3x6Bkvc.js
vlbthambawita's picture
Release site-v1.0.3 (part 2)
a87c29e verified
Raw
History Blame Contribute Delete
6.06 kB
import{B as e,Ct as t,H as n,P as r,Q as i,R as a,St as o,T as s,Z as c,_ as l,b as u,bt as d,dt as f,g as p,m,ot as h,y as g,yt as _}from"../modules/shiki-CRDHBXw7.js";import{nt as v,rt as y}from"../useNav-0H1CZeft.js";import{l as b}from"./context-Dpnqq1ol.js";var x=[`title`],S={key:0,"flex-auto":``},C={"text-primary":``},w={op50:``,"text-sm":``},T={key:0,absolute:``,"inset-y-0":``,"right-0":``,"w-0.5":``,"bg-primary":``,"z-1":``},E=s({__name:`ClicksSlider`,props:{clicksContext:{},readonly:{type:Boolean},active:{type:Boolean,default:!0},resettable:{type:Boolean},compact:{type:Boolean},attached:{type:Boolean}},emits:[`activate`,`reset`],setup(r,{emit:i}){let a=r,s=i,c=p(()=>a.clicksContext.total),E=p(()=>v(0,a.clicksContext.clicksStart,c.value)),D=p(()=>c.value-E.value+1),O=p({get(){return a.resettable&&!a.active||a.clicksContext.current>c.value?-1:a.clicksContext.current},set(e){if(a.resettable&&e<0){s(`reset`),a.clicksContext.current=b;return}s(`activate`),a.clicksContext.current=e}}),k=p(()=>a.resettable&&O.value<0),A=p(()=>y(E.value,c.value+1)),j=f(),M;function N(e){let t=j.value.getBoundingClientRect();return(e.clientX-t.left)/Math.max(1,t.width)}function P(e,t){if(a.readonly||!j.value||!t&&!(e.buttons&1))return;let n=N(e);if(a.resettable&&n<0){O.value=-1;return}let r=v(0,n,t?.999999:1)*D.value,i=v(0,O.value-E.value,D.value-1),o=t?E.value+Math.floor(r):O.value;!t&&r>=i+1.5?o=E.value+Math.floor(r-.5):!t&&r<i-.5&&(o=E.value+Math.ceil(r-.5)),O.value=v(E.value,o,c.value)}function F(e){a.readonly||(j.value?.setPointerCapture(e.pointerId),M={id:e.pointerId,x:e.clientX,y:e.clientY},P(e,!0))}function I(e){if(M?.id===e.pointerId){if(Math.abs(e.clientX-M.x)<=3&&Math.abs(e.clientY-M.y)<=3)return;M=void 0}P(e,!1)}return(i,s)=>(e(),u(`div`,{class:d([`flex gap-1 select-none`,[r.attached?`items-end`:`items-center`,D.value&&a.clicksContext.isMounted?``:`op50`]]),title:`Clicks in this slide: ${D.value}`},[l(`div`,{class:d([`flex items-center font-mono`,[r.compact?`gap-1 min-w-0 mr0`:`gap-0.2 min-w-16 mr1`,r.attached?`h-[22px]`:``]])},[l(`div`,{class:d([`i-carbon:cursor-1 text-sm op50`,r.compact?`ml-1`:``])},null,2),O.value>=0&&O.value!==_(999999)&&r.active?(e(),u(m,{key:0},[r.compact?g(`v-if`,!0):(e(),u(`div`,S)),l(`span`,null,[l(`span`,C,t(O.value),1),s[2]||=l(`span`,{op25:``,"text-sm":``},`/`,-1),l(`span`,w,t(c.value),1)])],64)):(e(),u(`div`,{key:1,op50:``,class:d(r.compact?``:`flex-auto pl1`)},[l(`span`,{class:d(r.compact?`inline-block text-center`:``),style:o(r.compact?{width:`${String(c.value).length*2+1}ch`,marginLeft:`-0.25ch`}:void 0)},t(c.value),7)],2))],2),l(`div`,{ref_key:`sliderEl`,ref:j,relative:``,"flex-auto":``,"font-mono":``,flex:`~`,"touch-none":``,class:d([r.attached?`h-[22px]`:`h5`,k.value?`op80`:``]),onPointerdownCapture:F,onPointermove:I,onPointerup:s[0]||=e=>h(M)?M.value=void 0:M=void 0,onPointercancel:s[1]||=e=>h(M)?M.value=void 0:M=void 0},[(e(!0),u(m,null,n(A.value,n=>(e(),u(`div`,{key:n,border:`y main`,"of-hidden":``,relative:``,class:d([n===0?`border-l`:``,n===0?r.attached?`rounded-tl`:`rounded-l`:``,n===c.value?`border-r`:``,n===c.value&&+n!=+O.value?r.attached?`rounded-tr`:`rounded-r`:``,r.attached?`border-b-0`:``]),style:o({width:D.value>0?`${1/D.value*100}%`:`100%`})},[l(`div`,{absolute:``,"inset-0":``,class:d(n<=O.value&&r.active?`bg-primary op15`:``)},null,2),+n==+O.value&&r.active?(e(),u(`div`,T)):g(`v-if`,!0),l(`div`,{class:d([+n==+O.value&&r.active?`text-primary font-bold op100`:`op30`,n===c.value?``:`border-r-2 border-main`]),"w-full":``,"h-full":``,"text-xs":``,flex:``,"items-center":``,"justify-center":``,"z-1":``},t(n),3)],6))),128))],34)],10,x))}}),D=[`innerHTML`],O=[`textContent`],k=[`textContent`],A=`slidev-note-fade`,j=`slidev-note-click-mark`,M=s({__name:`NoteDisplay`,props:{class:{},noteHtml:{},note:{},highlight:{type:Boolean,default:!0},placeholder:{},clicksContext:{},autoScroll:{type:Boolean}},emits:[`markerDblclick`,`markerClick`],setup(n,{emit:o}){let s=n,m=o,h=p(()=>s.clicksContext!=null&&s.noteHtml?.includes(j)),g=f(null);function _(){if(!g.value||!h.value)return;let e=Array.from(g.value.querySelectorAll(`.${j}`)),t=new Map,n=new Map,r=0;for(let i of e){let e=Number(i.dataset.clicks);t.set(i,e);let a=i,o=i.parentElement;for(;o&&a!==g.value;)n.has(o)||n.set(o,[[null,r]]),n.get(o).push([a,e]),a=o,o=o.parentElement;r=e}let i=new Map;for(let[e,t]of n){let n=!1,r=0;for(let a of Array.from(e.childNodes)){let o=!1;for(;a===t[r+1]?.[0];)o=!0,r++;if(o)continue;let s=a;if(a.nodeType===3){if(!a.textContent?.trim())continue;s=document.createElement(`span`),s.textContent=a.textContent,e.insertBefore(s,a),a.remove()}n||=r===0,i.set(s,t[r][1])}n||(t[0][1]=-1)}return e=>{let r=s.highlight;for(let[t,i]of n)t.classList.toggle(A,r&&!i.some(([t,n])=>n===e));for(let[t,n]of i)t.classList.toggle(A,r&&n!==e);for(let[n,i]of t)n.classList.remove(A),n.classList.toggle(`${j}-past`,r&&i<e),n.classList.toggle(`${j}-active`,r&&i===e),n.classList.toggle(`${j}-next`,r&&i===e+1),n.classList.toggle(`${j}-future`,r&&i>e+1),n.ondblclick=e=>{r&&(m(`markerDblclick`,e,i),!e.defaultPrevented&&(s.clicksContext.current=i,e.stopPropagation(),e.stopImmediatePropagation()))},n.onclick=e=>{r&&m(`markerClick`,e,i)},r&&s.autoScroll&&i===e&&n.scrollIntoView({block:`center`,behavior:`smooth`})}}let v=f();return c(()=>[s.noteHtml,s.highlight],()=>{r(()=>{v.value=_()})},{immediate:!0}),a(()=>{_()}),i(()=>{let e=s.clicksContext?.current??999999;v.value?.(e)}),(r,i)=>n.noteHtml?(e(),u(`div`,{key:0,ref_key:`noteDisplay`,ref:g,class:d([`prose dark:prose-invert overflow-auto outline-none slidev-note`,[s.class,h.value?`slidev-note-with-clicks`:``]]),innerHTML:n.noteHtml},null,10,D)):n.note?(e(),u(`div`,{key:1,class:d([`prose dark:prose-invert overflow-auto outline-none slidev-note`,s.class])},[l(`p`,{textContent:t(n.note)},null,8,O)],2)):(e(),u(`div`,{key:2,class:d([`prose dark:prose-invert overflow-auto outline-none opacity-50 italic select-none slidev-note`,s.class])},[l(`p`,{textContent:t(s.placeholder||`No notes.`)},null,8,k)],2))}});export{E as n,M as t};