PageSourceSearch

https://uta.inui-dondon-sukininaru.net/_nuxt/BvRtZmL8.js

js inui-dondon-sukininaru.net collected 2026-10-06 20:13:32 UTC 3,252 bytes, 1 lines download raw bytes

1import{u as f,a as h,_ as y}from"./DGrYeNIA.js";import{_ as $}from"./DDtGfScb.js";import{c as a,l as e,d as w,a as k,C,D,h as d,m as s,t as n,i as _,j as S,g as c}from"./DR38E-4v.js";import{u as A}from"./CaQdAJz9.js";import"./Bq_ZeY_s.js";function B(m){const{useApiFetch:p}=A(),l=a(()=>`/api/songs/${e(m)}/`),{data:t,status:u,error:i}=p(l);return{song:a(()=>t.value?.song??null),status:u,error:i}}const N={key:0,class:"space-y-4"},T={key:1,class:"space-y-6"},j={class:"flex flex-col gap-4 sm:flex-row sm:items-start sm:gap-6"},F=["src","alt"],I={class:"flex-1"},L={class:"text-2xl font-bold"},Q={class:"mt-1 text-gray-400"},R={class:"mt-2 text-sm text-gray-500"},U={class:"mt-4 flex flex-wrap gap-2"},V={class:"border-t border-border-default pt-4"},q={class:"text-sm font-medium"},z={class:"mt-1 text-xs text-gray-500"},E={key:2,class:"text-center text-gray-500"},O=w({__name:"[id]",setup(m){const l=k().params.id,{song:t,status:u}=B(l),i=f(),{songDuration:g}=h(),{siteUrl:r}=C().public;return D({title:a(()=>t.value?.title??"楽曲詳細"),ogTitle:a(()=>t.value?`${t.value.title} | いぬいのうた`:"いぬいのうた"),description:a(()=>t.value?`「${t.value.title}」${t.value.artist?` / ${t.value.artist}`:""}の詳細ページ。`:null),ogDescription:a(()=>t.value?`「${t.value.title}」${t.value.artist?` / ${t.value.artist}`:""}の詳細ページ。`:null),ogImage:a(()=>t.value?.video.thumbnail_path||`${r}/og-image.png`),ogUrl:a(()=>t.value?`${r}/songs/${t.value.id}`:r),twitterImage:a(()=>t.value?.video.thumbnail_path||`${r}/og-image.png`)}),(J,o)=>{const x=y,b=$;return e(u)==="pending"?(c(),d("div",N,[...o[3]||(o[3]=[s("div",{class:"h-8 w-48 animate-pulse bg-surface-raised"},null,-1),s("div",{class:"aspect-video max-w-md animate-pulse bg-surface-raised"},null,-1)])])):e(t)?(c(),d("div",T,[s("div",j,[s("img",{src:e(t).video.thumbnail_path,alt:e(t).title,class:"aspect-video w-full max-w-sm object-cover sm:w-60"},null,8,F),s("div",I,[s("h1",L,n(e(t).title),1),s("p",Q,n(e(t).artist??"不明"),1),s("p",R,n(e(g)(e(t).start_at,e(t).end_at)),1),s("div",U,[s("button",{class:"bg-action-primary px-5 py-2 text-sm font-medium text-white transition-colors hover:bg-action-primary-hover",onClick:o[0]||(o[0]=v=>e(i).playSong(e(t)))}," 再生 "),s("button",{class:"border border-border-default px-5 py-2 text-sm text-gray-300 transition-colors hover:bg-surface-overlay hover:text-white",onClick:o[1]||(o[1]=v=>e(i).playNext(e(t)))}," 次に再生 "),s("button",{class:"border border-border-default px-5 py-2 text-sm text-gray-300 transition-colors hover:bg-surface-overlay hover:text-white",onClick:o[2]||(o[2]=v=>e(i).addToQueue(e(t)))}," キューに追加 "),_(x,{"song-id":e(t).id,"song-title":e(t).title,size:"md"},null,8,["song-id","song-title"])])])]),s("section",V,[o[4]||(o[4]=s("h2",{class:"mb-2 text-sm font-bold text-gray-50"},"収録動画",-1)),_(b,{to:`/videos/${e(t).video.id}`,class:"block border border-border-default bg-surface-raised p-3 transition-colors hover:border-action-primary/40"},{default:S(()=>[s("p",q,n(e(t).video.title),1),s("p",z,n(new Date(e(t).video.published_at).toLocaleDateString("ja-JP")),1)]),_:1},8,["to"])])])):(c(),d("div",E,"楽曲が見つかりませんでした"))}}});export{O as default};

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.