PageSourceSearch

https://www.tracklib.com/assets/LayoutAudioGlue-DXa4f4DO.js

js tracklib.com collected 2026-09-24 20:24:41 UTC 5,291 bytes, 1 lines download raw bytes

1import{r as S,j as h}from"./react-B62KX_yh.js";import{a as p}from"./tanstack-c3473pde.js";import{a as d,u as P,f as A}from"./engine-CG6FHmfo.js";import{u as w}from"./streaming-lock-BNrFkD-U.js";import{ax as o,N as x,eP as L,dm as B,ci as C,ef as R,eR as v,bH as D,O as N,T as F,fB as K,bY as O}from"./tanstack-start-N_noiGjL.js";import{u as H,a as M,p as U}from"./use-play-loop-C_mTAVSc.js";import{u as j,a as G,b as Y,c as q}from"./use-playlist-controls-DE_g5FCE.js";import{a as Q}from"./tanstack-query-C282WS1z.js";import"./radix-accordion-BojWFHKe.js";import"./radix-dialog-0ISVFfye.js";import"./radix-menu-BWvfNzDR.js";import"./radix-select-CoJcTNwl.js";import"./radix-navigation-menu-BMIVaaWL.js";import"./sonner-Cuj23odt.js";import"./lucide-3XnZ2Rrp.js";import"./tanstack-router-kwsmQtzq.js";import"./ui-utils-DwKoTZwY.js";import"./unpic-CvTVdNXZ.js";import"./waveform-D04i_Fso.js";import"./use-play-sound-BnNbkCCY.js";import"./scroll-now-playing-into-view-6pLRXbbn.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{};t.SENTRY_RELEASE={id:"[email protected]"};var r=new t.Error().stack;r&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[r]="9633d8e7-abf1-4025-abb3-9ca84cd5cb4d",t._sentryDebugIdIdentifier="sentry-dbid-9633d8e7-abf1-4025-abb3-9ca84cd5cb4d")}catch{}})();const z=()=>{const t=H(M());S.useEffect(()=>d.onEnded(()=>{const r=o.getState();if(r.currentItem?.kind!=="song"||r.tracks.length>1)return;const{entries:c,index:u,setIndex:l,clear:i}=P.getState(),f=c[u+1];if(f?.kind==="song"){l(u+1),t.current(f.track).catch(()=>{});return}i(),o.getState().reset()}),[t])},V=()=>{if(typeof navigator>"u")return!0;const t=navigator.connection;return!!t?.saveData||/(^|-)2g$/.test(t?.effectiveType??"")},X=()=>{const t=Q(),r=x(),{mutateAsync:m}=L();return S.useCallback((c,u)=>{if(!c||V())return;(async()=>{const i=await t.ensureQueryData({queryKey:["song-tracks",c],queryFn:()=>B(0,r,{song:c},void 0,100)});if(u?.aborted)return;const f=i.results.some(a=>a.aligned_track_count!=null),k=i.results.filter(a=>!C(a)&&(!f||a.is_aligned_to_master));for(const a of k)U(a.id,async()=>{const g=await R("track",a.id,()=>m(a.id));return(await fetch(g,{mode:"cors",cache:"no-cache",referrerPolicy:"unsafe-url",signal:u})).arrayBuffer()})})().catch(()=>{})},[t,r,m])},_=10,T=30,$=4e3,J=1,W=new Set(["button","submit","reset","checkbox","radio"]),Z=t=>{if(!(t instanceof HTMLElement))return!1;if(t.isContentEditable)return!0;const r=t.tagName;return r==="TEXTAREA"||r==="SELECT"?!0:r==="INPUT"?!W.has(t.type):!1},tt=()=>{const t=o(e=>e.currentItem!==null),r=o(e=>e.currentItem?.kind==="song"),m=o(e=>e.currentItem?.kind==="sound"),c=w()!==null,u=P(e=>{const n=e.entries[e.index];if(n?.kind==="song")return v(n.track);if(n?.kind==="loop"){const y=D(n.tracks);return y?v(y):0}return 0}),l=j(),i=G(),f=Y(),k=q(),a=o(e=>e.currentItem?.kind==="song"&&(e.currentItem.trackCount??0)>1?e.currentItem.songSlug:null),g=o(e=>e.isLoading),b=X();S.useEffect(()=>{if(!a||g)return;const e=new AbortController,n=setTimeout(()=>{const y=o.getState();y.stemsOpen||y.tracks.length>1||b(a,e.signal)},$);return()=>{clearTimeout(n),e.abort()}},[a,g,b]);const s=S.useCallback(e=>{const n=d.getCurrentTime()??0,{currentItem:y,duration:E}=o.getState();if(e<0){if(y?.kind==="sound"){d.seek(0);return}if(n<J&&k){i();return}d.seek(Math.max(0,n+e));return}if(E>0&&E-n<e){f?l():d.stop();return}d.seek(n+e)},[f,k,l,i]);return p("ArrowDown",l,{enabled:t}),p("ArrowUp",i,{enabled:t}),p("L",()=>{const e=o.getState();if(e.currentItem?.kind==="sound"){d.setSoundRepeat(!e.soundRepeat);return}d.toggleLoop()},{enabled:(r||m)&&!c}),p("T",()=>{d.toggleStems()},{enabled:r&&u>1}),p("Space",()=>{const e=o.getState();e.isPlaying||e.pendingPlay?d.pause():d.play()},{enabled:t}),p("ArrowLeft",()=>s(-_),{enabled:t}),p("ArrowRight",()=>s(_),{enabled:t}),p("Shift+ArrowLeft",()=>s(-T),{enabled:t}),p("Shift+ArrowRight",()=>s(T),{enabled:t}),S.useEffect(()=>{const e=n=>{if(n.key!=="ArrowLeft"&&n.key!=="ArrowRight"||n.metaKey||n.ctrlKey)return;const{loopEnabled:y,currentItem:E}=o.getState();if(!(y&&E?.kind==="song")||Z(n.target)||n.shiftKey&&n.altKey)return;const I=n.key==="ArrowRight"?1:-1;
1n.shiftKey?d.nudgeBarGridByBeats(I):n.altKey?d.resizeLoopByBars(I):d.shiftLoopByBars(I),n.preventDefault(),n.stopPropagation(),n.stopImmediatePropagation()};return document.addEventListener("keydown",e,!0),()=>document.removeEventListener("keydown",e,!0)},[]),z(),null},et=t=>{const r=o(s=>s.currentItem),m=o(s=>s.loopEnabled),c=o(s=>s.loopStart),u=o(s=>s.loopEnd),l=o(s=>s.barPositions),i=o(s=>s.beatsPerBar),f=o(s=>s.firstBarAtBeat);if(!(r?.kind==="song"&&r.songId===t&&m)||l.length<2||u<=c)return;const a=A(c,l),g=A(u,l),b=Math.max(1,g-a);return{time_start:c,time_end:u,beat_start:f+a*i,beat_count:b*i}},nt=()=>{const t=N(),r=o(g=>g.currentItem?.kind==="song"),{data:m}=F(),c=P(g=>g.entries[g.index]),u=c?.kind==="song"?c:null,l=u?.track.song.id??-1,i=u?.track.id,f=et(l),k=K(i,f),{mutateAsync:a}=O();return p("F",()=>{m&&i&&a({collectionId:m.favorites_collection_id,method:k?"remove":"add",data:{tracks:[{track_id:i,...f??{}}]}})},{enabled:r&&t&&!!i}),null},At=()=>h.jsxs(h.Fragment,{children:[h.jsx(tt,{}),h.jsx(nt,{})]});export{At as LayoutAudioGlue};

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.