(self.webpackChunk_N_E = self.webpackChunk_N_E || []).push([
[405], {
5557: function(i, a, n) {
(window.__NEXT_P = window.__NEXT_P || []).push(["/", function() {
return n(7697)
}])
},
7697: function(i, a, n) {
"use strict";
n.r(a), n.d(a, {
default: function() {
return T
}
});
var t = n(5893),
e = n(7294),
l = n(9008),
s = n.n(l),
r = n(1664),
g = n.n(r),
o = n(5675),
u = n.n(o),
d = n(214),
p = n.n(d),
_ = (n(993), n(682)),
m = n(4051),
k = n(1555),
c = n(5005),
x = n(2914),
y = n(5147),
B = n(4077),
V = n(782),
D = n(640),
I = n.n(D),
h = JSON.parse('[{\"index\":1,\"song_name\":\"On s\'aimera\",\"artist\":\"Ridsa\",\"language\":\"\u82f1\u8bed\",\"remarks\":null,\"initial\":\"O\",\"sticky_top\":0,\"paid\":0,\"BVID\":\"\",\"st\":\"https:\/\/singchun.love\/song\/53205.aac\"}]');
function j(i) {
var a = i.filteredSongList,
n = i.handleClickToCopy,
l = i.setBVID,
s = i.setPlayerModalShow,
r = i.setPlayerModalSongName,
g = (0, e.useDeferredValue)(a);
// 当前播放状态
var _useState = (0, e.useState)(null),
playingId = _useState[0],
setPlayingId = _useState[1];
var _useState2 = (0, e.useState)(0),
progress = _useState2[0],
setProgress = _useState2[1];
var _useState3 = (0, e.useState)(0),
duration = _useState3[0],
setDuration = _useState3[1];
// 当前播放的歌名
var _useState4 = (0, e.useState)(""),
currentSongName = _useState4[0],
setCurrentSongName = _useState4[1];
// 是否暂停状态
var _useState5 = (0, e.useState)(true),
isPaused = _useState5[0],
setIsPaused = _useState5[1];
// 是否缓冲中
var _useState6 = (0, e.useState)(false),
isBuffering = _useState6[0],
setIsBuffering = _useState6[1];
// 格式化时间
function formatTime(seconds) {
if (!seconds || isNaN(seconds)) return "0:00";
var mins = Math.floor(seconds / 60);
var secs = Math.floor(seconds % 60);
return mins + ":" + (secs < 10 ? "0" : "") + secs;
}
// 调整返回顶部按钮位置
function adjustBackToTopButton(playerVisible) {
var backToTopBtn = document.querySelector('.Home_backToTopBtn__IkJo2');
if (backToTopBtn) {
if (playerVisible) {
backToTopBtn.style.transition = 'bottom 0.3s ease';
backToTopBtn.style.bottom = 'calc(70px + 20px + env(safe-area-inset-bottom, 0px))';
} else {
backToTopBtn.style.transition = 'bottom 0.3s ease';
backToTopBtn.style.bottom = '';
}
}
}
// 注入缓冲动画 CSS
function injectBufferingCSS() {
if (document.getElementById('st-buffering-styles')) return;
var style = document.createElement('style');
style.id = 'st-buffering-styles';
style.textContent = '@keyframes st-spin { 0% { transform: rotate(0deg); } 100% { transform: rotate(360deg); } } .st-buffering-icon { animation: st-spin 1s linear infinite; }';
document.head.appendChild(style);
}
// 获取或创建全局 audio
function getGlobalAudio() {
var el = document.getElementById("st-global-audio");
if (!el) {
el = document.createElement("audio");
el.id = "st-global-audio";
el.preload = "none";
el.style.display = "none";
document.body.appendChild(el);
el.addEventListener("timeupdate", function() {
setProgress(el.currentTime);
});
el.addEventListener("loadedmetadata", function() {
setDuration(el.duration);
});
el.addEventListener("durationchange", function() {
setDuration(el.duration);
});
el.addEventListener("play", function() {
setIsPaused(false);
});
el.addEventListener("pause", function() {
setIsPaused(true);
});
// 缓冲相关事件
el.addEventListener("waiting", function() {
setIsBuffering(true);
});
el.addEventListener("canplay", function() {
setIsBuffering(false);
});
el.addEventListener("playing", function() {
setIsBuffering(false);
});
el.addEventListener("error", function() {
setIsBuffering(false);
});
}
return el;
}
function pauseAllAudios() {
var ga = document.getElementById("st-global-audio");
if (ga) {
try { ga.pause(); } catch (_) {}
}
}
function playRowSt(rowKey, stUrl, songName) {
var ga = getGlobalAudio();
try { ga.pause(); } catch (_) {}
var currentSrc = ga.src;
var newSrc = new URL(stUrl, location.href).href;
// 立即设置缓冲状态
setIsBuffering(true);
if (currentSrc !== newSrc) {
ga.src = "";
ga.load();
setProgress(0);
setDuration(0);
ga.src = stUrl;
ga.load();
}
setCurrentSongName(songName);
ga.onended = function () {
setPlayingId(null);
setProgress(0);
setIsPaused(true);
setIsBuffering(false);
};
ga.oncanplay = function() {
setIsBuffering(false);
ga.play().then(function(){}).catch(function(){
setIsBuffering(false);
});
};
if (ga.readyState >= 3) {
setIsBuffering(false);
ga.play().then(function(){}).catch(function(){
setIsBuffering(false);
});
}
}
function pauseRowSt() {
var ga = document.getElementById("st-global-audio");
if (ga) try { ga.pause(); } catch (_) {}
}
function togglePlayPause() {
var ga = document.getElementById("st-global-audio");
if (ga) {
if (ga.paused) {
setIsBuffering(true);
ga.play().then(function() {
setIsBuffering(false);
}).catch(function(){
setIsBuffering(false);
});
} else {
ga.pause();
setIsBuffering(false);
}
}
}
function closePlayer() {
pauseAllAudios();
setPlayingId(null);
setCurrentSongName("");
setProgress(0);
setDuration(0);
setIsBuffering(false);
}
function seekTo(e) {
var ga = document.getElementById("st-global-audio");
if (ga && duration > 0) {
var rect = e.currentTarget.getBoundingClientRect();
var clickX = e.clientX - rect.left;
var percent = clickX / rect.width;
ga.currentTime = percent * duration;
}
}
// 获取按钮图标 - 三种状态
function getButtonIcon(isPlaying, isPaused, isBuffering, size, color) {
size = size || 18;
color = color || "#1D0C26";
// 缓冲中 - 显示旋转加载图标
if (isBuffering) {
return (0, t.jsx)("svg", {
xmlns: "http://www.w3.org/2000/svg",
width: size,
height: size,
fill: color,
viewBox: "0 0 16 16",
className: "st-buffering-icon",
children: (0, t.jsx)("path", {
d: "M11.534 7h3.932a.25.25 0 0 1 .192.41l-1.966 2.36a.25.25 0 0 1-.384 0l-1.966-2.36a.25.25 0 0 1 .192-.41zm-11 2h3.932a.25.25 0 0 0 .192-.41L2.692 6.23a.25.25 0 0 0-.384 0L.342 8.59A.25.25 0 0 0 .534 9z"
})
});
}
// 正在播放(非暂停)- 显示暂停图标
if (isPlaying && !isPaused) {
return (0, t.jsx)("svg", {
xmlns: "http://www.w3.org/2000/svg",
width: size,
height: size,
fill: color,
viewBox: "0 0 16 16",
children: (0, t.jsx)("path", {
d: "M5.5 3.5A1.5 1.5 0 0 1 7 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5zm5 0A1.5 1.5 0 0 1 12 5v6a1.5 1.5 0 0 1-3 0V5a1.5 1.5 0 0 1 1.5-1.5z"
})
});
}
// 默认/暂停 - 显示播放图标
return (0, t.jsx)("svg", {
xmlns: "http://www.w3.org/2000/svg",
width: size,
height: size,
fill: color,
viewBox: "0 0 16 16",
children: (0, t.jsx)("path", {
d: "m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z"
})
});
}
// 获取悬浮播放器按钮图标 HTML(用于 innerHTML)
function getFloatingPlayerIconHTML(isPaused, isBuffering) {
// 缓冲中
if (isBuffering) {
return '';
}
// 暂停状态 - 显示播放图标
if (isPaused) {
return '';
}
// 播放中 - 显示暂停图标
return '';
}
// 注入 CSS
(0, e.useEffect)(function() {
injectBufferingCSS();
}, []);
// 创建/更新悬浮播放器 DOM
(0, e.useEffect)(function() {
var floatingPlayer = document.getElementById("st-floating-player");
if (!floatingPlayer) {
floatingPlayer = document.createElement("div");
floatingPlayer.id = "st-floating-player";
floatingPlayer.style.cssText = "position: fixed; bottom: 0; left: 0; right: 0; background: linear-gradient(to top, rgba(255,255,255,0.98), rgba(255,255,255,0.95)); backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px); box-shadow: 0 -2px 20px rgba(0,0,0,0.1); padding: 12px 16px; padding-bottom: calc(12px + env(safe-area-inset-bottom, 0)); z-index: 9999; display: none; transition: transform 0.3s ease, opacity 0.3s ease; border-top: 1px solid rgba(0,0,0,0.05);";
floatingPlayer.innerHTML = '
';
document.body.appendChild(floatingPlayer);
// 绑定事件
document.getElementById("st-fp-play-btn").addEventListener("click", function() {
var ga = document.getElementById("st-global-audio");
if (ga) {
if (ga.paused) {
setIsBuffering(true);
ga.play().then(function() {
setIsBuffering(false);
}).catch(function(){
setIsBuffering(false);
});
} else {
ga.pause();
setIsBuffering(false);
}
}
});
document.getElementById("st-fp-close-btn").addEventListener("click", function() {
var ga = document.getElementById("st-global-audio");
if (ga) ga.pause();
floatingPlayer.style.display = "none";
adjustBackToTopButton(false);
setPlayingId(null);
setCurrentSongName("");
setIsBuffering(false);
});
document.getElementById("st-fp-progress-bar").addEventListener("click", function(ev) {
var ga = document.getElementById("st-global-audio");
if (ga && ga.duration > 0) {
var rect = ev.currentTarget.getBoundingClientRect();
var clickX = ev.clientX - rect.left;
var percent = clickX / rect.width;
setIsBuffering(true);
ga.currentTime = percent * ga.duration;
}
});
}
// 更新内容
if (playingId && currentSongName) {
var progressPercent = duration > 0 ? (progress / duration) * 100 : 0;
document.getElementById("st-fp-song-name").textContent = currentSongName;
document.getElementById("st-fp-progress-fill").style.width = progressPercent + "%";
document.getElementById("st-fp-current-time").textContent = formatTime(progress);
document.getElementById("st-fp-total-time").textContent = formatTime(duration);
// 更新播放按钮图标 - 支持三种状态
var playBtn = document.getElementById("st-fp-play-btn");
playBtn.innerHTML = getFloatingPlayerIconHTML(isPaused, isBuffering);
floatingPlayer.style.display = "block";
adjustBackToTopButton(true);
} else {
floatingPlayer.style.display = "none";
adjustBackToTopButton(false);
}
}, [playingId, currentSongName, progress, duration, isPaused, isBuffering]);
// 清理
(0, e.useEffect)(function() {
return function() {
var floatingPlayer = document.getElementById("st-floating-player");
if (floatingPlayer) {
floatingPlayer.style.display = "none";
}
adjustBackToTopButton(false);
};
}, []);
return a.length !== 0
? g.map(function (row) {
var rowKey = row.index;
var isPlaying = playingId === rowKey;
return (0, t.jsxs)(
"tr",
{
className: row.paid
? p().songRowPaid
: row.sticky_top
? p().songRowTop
: p().songRow,
onClick: function (ev) {
var targetTd =
ev.target.parentNode.firstChild.nodeName === "TD"
? ev.target.parentNode.childNodes[2]
: ev.target.parentNode.parentNode.childNodes[2];
n(targetTd);
},
children: [
// ① 置顶/付费
(0, t.jsxs)("td", {
className: p().tableIconTd,
style: { verticalAlign: "middle" },
children: [
1 == row.sticky_top
? (0, t.jsx)("img", {
src: "up_arrow.png",
alt: "置顶",
className: p().tableIcons,
title: "置顶曲目",
})
: (0, t.jsx)("div", {}),
1 == row.paid
? (0, t.jsx)("img", {
src: "orb.png",
alt: "付费",
className: p().tableIcons,
title: "付费曲目",
})
: (0, t.jsx)("div", {}),
],
}),
// ② 试听按钮 - 三种状态
(0, t.jsx)("td", {
className: p().tableIconTd,
style: {
verticalAlign: "middle",
width: "60px",
minWidth: "60px",
textAlign: "center"
},
children: row.st
? (0, t.jsx)(c.Z, {
className: p().customRandomButton,
title: isPlaying && isBuffering ? "加载中..." : (isPlaying && !isPaused ? "暂停" : "试听"),
style: {
marginTop: 0,
padding: "6px",
width: "36px",
height: "36px",
minWidth: "36px",
minHeight: "36px",
display: "inline-flex",
alignItems: "center",
justifyContent: "center",
borderRadius: "50%"
},
onClick: function (ev) {
ev.stopPropagation();
if (isPlaying) {
togglePlayPause();
} else {
pauseAllAudios();
setPlayingId(null);
setIsBuffering(true);
setTimeout(function() {
playRowSt(rowKey, row.st, row.song_name);
setPlayingId(rowKey);
}, 10);
}
},
// 使用 getButtonIcon 函数获取图标
children: getButtonIcon(isPlaying, isPaused, isPlaying && isBuffering, 18, "#1D0C26")
})
: (0, t.jsx)("div", {}),
}),
// ③ 歌名
(0, t.jsx)("td", {
className: p().noWrapForce,
style: { verticalAlign: "middle" },
id: row.paid ? "paid ".concat(rowKey) : rowKey,
children: row.song_name,
}),
// ④ BVID 播放按钮
(0, t.jsx)("td", {
className: p().tableIconTd,
style: { verticalAlign: "middle" },
children: row.BVID
? (0, t.jsx)(c.Z, {
className: p().customRandomButton,
title: "投稿歌切试听",
style: { marginTop: 0, padding: "0.25rem" },
onClick: function (aEv) {
aEv.stopPropagation();
pauseAllAudios();
setPlayingId(null);
setIsBuffering(false);
i.setBVID(row.BVID);
i.setPlayerModalShow(!0);
i.setPlayerModalSongName(row.song_name);
},
children: (0, t.jsx)("svg", {
xmlns: "http://www.w3.org/2000/svg",
width: "24",
height: "24",
fill: "#1D0C26",
viewBox: "0 0 16 16",
children: (0, t.jsx)("path", {
d: "m11.596 8.697-6.363 3.692c-.54.313-1.233-.066-1.233-.697V4.308c0-.63.692-1.01 1.233-.696l6.363 3.692a.802.802 0 0 1 0 1.393z"
})
}),
})
: (0, t.jsx)("div", {}),
}),
// ⑤ 歌手
(0, t.jsx)("td", {
className: p().noWrapForce,
style: { verticalAlign: "middle" },
children: row.artist
}),
// ⑥ 语言
(0, t.jsx)("td", {
className: p().noWrapForce,
style: { verticalAlign: "middle" },
children: row.language
}),
// ⑦ 备注
(0, t.jsx)("td", {
className: p().noWrapForce,
style: { verticalAlign: "middle" },
children: row.remarks
}),
],
},
rowKey
);
})
: (0, t.jsx)("tr", {
children: (0, t.jsx)("td", {
className: "display-6 text-center",
colSpan: "7",
id: "noSongInList",
children: "歌单里没有哟~隐藏歌单碰碰运气!",
}),
});
}
var f = n(2805),
v = n(184);
function C(i) {
var a = i.languageFilter,
n = i.initialFilter,
e = i.setLanguageState,
l = i.setInitialState,
s = "#BEA5C1";
return (0, t.jsx)("div", {
className: "d-grid",
children: (0, t.jsxs)(f.Z, {
title: "\u56fd\u8bed",
className: "\u56fd\u8bed" == a ? p().splitBtnActive : p().splitBtn,
onClick: function(i) {
e("\u56fd\u8bed" == a ? "" : "\u56fd\u8bed")
},
children: [(0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("A" == n ? "" : "A")
},
style: "A" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-A"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("B" == n ? "" : "B")
},
style: "B" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-B"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("C" == n ? "" : "C")
},
style: "C" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-C"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("D" == n ? "" : "D")
},
style: "D" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-D"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("E" == n ? "" : "E")
},
style: "E" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-E"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("F" == n ? "" : "F")
},
style: "F" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-F"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("G" == n ? "" : "G")
},
style: "G" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-G"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("H" == n ? "" : "H")
},
style: "H" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-H"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("I" == n ? "" : "I")
},
style: "I" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-I"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("J" == n ? "" : "J")
},
style: "J" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-J"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("K" == n ? "" : "K")
},
style: "K" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-K"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("L" == n ? "" : "L")
},
style: "L" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-L"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("M" == n ? "" : "M")
},
style: "M" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-M"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("N" == n ? "" : "N")
},
style: "N" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-N"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("O" == n ? "" : "O")
},
style: "O" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-O"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("P" == n ? "" : "P")
},
style: "P" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-P"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("Q" == n ? "" : "Q")
},
style: "Q" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-Q"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("R" == n ? "" : "R")
},
style: "R" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-R"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("S" == n ? "" : "S")
},
style: "S" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-S"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("T" == n ? "" : "T")
},
style: "T" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-T"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("U" == n ? "" : "U")
},
style: "U" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-U"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("W" == n ? "" : "W")
},
style: "W" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-W"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("X" == n ? "" : "X")
},
style: "X" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-X"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("Y" == n ? "" : "Y")
},
style: "Y" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-Y"
}), (0, t.jsx)(v.Z.Item, {
onClick: function(i) {
l("Z" == n ? "" : "Z")
},
style: "Z" == n ? {
backgroundColor: s,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u9996\u5b57\u6bcd-Z"
})]
})
})
}
function b(i) {
var a = i.remarkFilter,
n = i.setRemarkState,
e = "#BEA5C1";
return (0, t.jsx)("div", {
className: "d-grid",
children:
(0, t.jsxs)(f.Z, {
title: "\u94a2\u7434",
className: a.includes("\u94a2\u7434") ? p().splitBtnActive : p().splitBtn,
onClick: function(i) {
a.includes("\u94a2\u7434") ? n("") : n("\u94a2\u7434")
},
children: [(0, t.jsx)(v.Z.Item, {
onClick: function(i) {
n("\u94a2\u7434\u5f39\u5531" == a ? "" : "\u94a2\u7434\u5f39\u5531")
},
style: "\u94a2\u7434\u5f39\u5531" == a ? {
backgroundColor: e,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u5f39\u5531"
}),
(0, t.jsx)(v.Z.Item, {
onClick: function(i) {
n("\u94a2\u7434\u5f39\u594f" == a ? "" : "\u94a2\u7434\u5f39\u594f")
},
style: "\u94a2\u7434\u5f39\u594f" == a ? {
backgroundColor: e,
cursor: 'url("/cursor_pointer.gif"), pointer'
} : {
cursor: 'url("/cursor_pointer.gif"), pointer'
},
children: "\u5f39\u594f"
})
]
})
})
}
function S() {
return (0, t.jsx)("svg", {
xmlns: "http://www.w3.org/2000/svg",
width: "20",
height: "20",
fill: "currentColor",
className: "bi bi-chevron-right",
viewBox: "0 0 20 20",
children: (0, t.jsx)("path", {
fillRule: "evenodd",
d: "M4.646 1.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1 0 .708l-6 6a.5.5 0 0 1-.708-.708L10.293 8 4.646 2.354a.5.5 0 0 1 0-.708z"
})
})
}
var w = n(6212);
function P(i) {
var a = i.show,
n = i.onHide,
e = i.BVID,
l = i.modalPlayerSongName;
return (0, t.jsxs)(w.Z, {
show: a,
onHide: n,
fullscreen: "xl-down",
size: "xl",
centered: !0,
children: [(0, t.jsx)(w.Z.Header, {
closeButton: !0,
children: (0, t.jsx)(w.Z.Title, {
children: l
})
}), (0, t.jsx)(w.Z.Body, {
children: (0, t.jsx)("div", {
className: p().biliPlayerDiv,
children: (0, t.jsx)("iframe", {
src: "//player.bilibili.com/player.html?bvid=" + e,
height: "100%",
width: "100%",
scrolling: "no",
border: "0",
frameBorder: "no",
framespacing: "0",
allowFullScreen: !0,
children: " "
})
})
})]
})
}
var N = n(3485),
A = n.n(N);
function T() {
var i = (0, e.useState)({
lang: "",
initial: "",
paid: !1,
remark: ""
}),
a = i[0],
n = i[1],
l = (0, e.useState)(""),
r = l[0],
o = l[1],
d = (0, e.useState)(!1),
D = d[0],
f = d[1],
v = (0, e.useState)(!1),
w = v[0],
N = v[1],
T = (0, e.useState)(!1),
Y = T[0],
Z = T[1],
H = (0, e.useState)(""),
M = H[0],
L = H[1],
R = (0, e.useState)(""),
W = R[0],
F = R[1];
(0, e.useEffect)((function() {
window.addEventListener("scroll", (function() {
window.pageYOffset > 600 ? f(!0) : f(!1)
}))
}), []);
var E = h.filter((function(i) {
var n, t, e, l, s, g, o;
return ((null === (n = i.song_name) || void 0 === n ? void 0 : n.toString().toLowerCase().includes(r ? r.toLowerCase() : "")) || (null === (t = i.language) || void 0 === t ? void 0 : t.toString().toLowerCase().includes(r ? r.toLowerCase() : "")) || (null === (e = i.remarks) || void 0 === e ? void 0 : e.toString().toLowerCase().includes(r ? r.toLowerCase() : "")) || (null === (l = i.artist) || void 0 === l ? void 0 : l.toString().toLowerCase().includes(r ? r.toLowerCase() : ""))) && ("" == a.lang || (null === (s = i.language) || void 0 === s ? void 0 : s.includes(a.lang))) && ("" == a.initial || (null === (g = i.initial) || void 0 === g ? void 0 : g.includes(a.initial))) && ("" == a.remark || (null === (o = i.remarks) || void 0 === o ? void 0 : o.toLowerCase().includes(a.remark))) && (!a.paid || 1 == i.paid)
})),
O = function(i) {
n({
lang: i,
initial: "",
paid: !1,
remark: ""
})
},
X = function(i) {
n({
lang: "",
initial: "",
paid: !1,
remark: i
})
},
G = function(i) {
n({
lang: "",
initial: "",
paid: i,
remark: ""
})
};
return (0, t.jsxs)("div", {
className: p().outerContainer,
children: [(0, t.jsx)(g(), {
href: "https://live.bilibili.com/22320946",
passHref: !0,
children: (0, t.jsx)("a", {
target: "_blank",
style: {
textDecoration: "none",
color: "#1D0C26"
},
children: (0, t.jsx)("div", {
className: p().goToLiveDiv,
children: (0, t.jsxs)("div", {
className: p().cornerToggle,
children: [(0, t.jsx)(u(), {
loader: A(),
src: "bilibili_logo_padded.png",
alt: "\u6253\u5f00\u81ea\u6211\u4ecb\u7ecd",
width: 50,
height: 50
}), (0, t.jsx)("b", {
children: (0, t.jsx)("i", {
children: "\u53bb\u76f4\u64ad\u95f4"
})
})]
})
})
})
}), (0, t.jsx)("div", {
className: p().offCanvasToggleDiv,
onClick: function() {
return N(!0)
},
children: (0, t.jsxs)("div", {
className: p().cornerToggle,
children: [(0, t.jsx)(u(), {
loader: A(),
src: "ayu_bqb.webp",
alt: "\u6253\u5f00\u81ea\u6211\u4ecb\u7ecd",
width: 50,
height: 50
}), (0, t.jsx)("b", {
children: (0, t.jsx)("i", {
children: "\u81ea\u6211\u4ecb\u7ecd"
})
})]
})
}), (0, t.jsxs)(_.Z, {
children: [(0, t.jsxs)(s(), {
children: [(0, t.jsx)("title", {
children: "江壹纯の歌单"
}), (0, t.jsx)("meta", {
name: "keywords",
content: "江壹纯,B\u7ad9,bilibili,\u54d4\u54e9\u54d4\u54e9,\u7535\u53f0\u5531\u89c1,\u6b4c\u5355"
}), (0, t.jsx)("meta", {
name: "description",
content: "江壹纯の歌单"
}), (0, t.jsx)("meta", {
name: "theme-color",
content: "#1d0c26"
})]
}), (0, t.jsxs)("section", {
className: p().main,
children: [(0, t.jsx)(m.Z, {
children: (0, t.jsxs)(k.Z, {
className: p().titleCol,
children: [(0, t.jsxs)("div", {
className: "pt-3 " + p().titleBox,
children: [(0, t.jsx)(u(), {
loader: A(),
className: p().avatar,
src: "face.php?url=https://i1.hdslb.com/bfs/face/df86d637f8891f92a23bad4a61425212d40e4dea.jpg",
alt: "江壹纯の\u7684\u5934\u50cf",
width: 250,
height: 250
}), (0, t.jsx)("h1", {
className: "display-6 text-center pt-3 " + p().grandTitle,
children: "江壹纯"
}), (0, t.jsxs)("h1", {
className: "display-6 text-center " + p().grandTitle,
children: ["\u548c\u5979\u62ff\u624b\u7684", (0, t.jsx)("b", {
children: E.length
}), "\u9996\u6b4c"]
}), (0, t.jsx)("p", {
className: "text-center py-3 mb-xl-5 text-muted",
children: "\u8f7b\u70b9\u6b4c\u540d\u53ef\u4ee5\u590d\u5236\u54e6"
})]
}), (0, t.jsx)("div", {
className: p().introBox,
children: (0, t.jsxs)("div", {
className: p().introBoxInnerDiv,
children: [(0, t.jsxs)("div", {
className: p().introTitle,
children: [(0, t.jsx)("h5", {
children: "江壹纯の自我介绍"
}), (0, t.jsxs)("div", {
className: "d-flex",
children: [,(0, t.jsx)(g(), {
href: "https://music.163.com/#/artist?id=36020661",
passHref: !0,
children: (0, t.jsx)("a", {
target: "_blank",
style: {
marginRight: "1rem",
cursor: 'url("/cursor_pointer.gif"), pointer'
},
title: "江壹纯の网易云",
children: (0, t.jsx)(u(), {
loader: A(),
src: "163music.ico",
alt: "江壹纯の网易云",
width: 26,
height: 26
})
})
})]
})]
}),
(0, t.jsx)("p", {
className: p().introParagraph,
children: "个人势精灵VUP,谢谢你能听我唱歌。 / 开播通知群:883462470 ❥ 网易yun:江壹纯"
}), (0, t.jsxs)("div", {
className: "d-flex flex-nowrap justify-content-evenly",
children: []
})]
})
})]
})
}), (0, t.jsx)(m.Z, {
children: (0, t.jsx)(k.Z, {
children: (0, t.jsxs)("div", {
className: p().categorySelectionContainer,
children: [(0, t.jsxs)("h5", {
className: p().categorySelectionTitle,
children: [(0, t.jsx)("svg", {
xmlns: "http://www.w3.org/2000/svg",
width: "16",
height: "16",
fill: "currentColor",
className: "bi bi-search",
viewBox: "0 0 16 16",
style: {
verticalAlign: "baseline"
},
children: (0, t.jsx)("path", {
d: "M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z"
})
}), " ", "\u6311\u4e2a\u60f3\u542c\u7684\u7c7b\u522b\u5457~"]
}), (0, t.jsx)(_.Z, {
fluid: !0,
children: (0, t.jsxs)(m.Z, {
children: [
(0, t.jsx)(k.Z, {
xs: 6,
md: 3,
children: (0, t.jsx)("div", {
className: "d-grid",
children: (0, t.jsx)(c.Z, {
className: "英语" == a.lang ? p().customCategoryButtonActive : p().customCategoryButton,
onClick: function(i) {
"英语" == a.lang ? O("") : O("英语")
},
children: "英语"
})
})
}), ]
})
})]
})
})
}), (0, t.jsxs)(m.Z, {
children: [(0, t.jsx)(k.Z, {
xs: 12,
md: 9,
children: (0, t.jsx)(x.Z.Control, {
className: p().filters,
type: "search",
"aria-label": "\u641c\u7d22",
placeholder: "\u641c\u7d22",
onChange: function(i) {
return o(i.target.value)
}
})
}), (0, t.jsx)(k.Z, {
xs: 12,
md: 3,
children: (0, t.jsx)("div", {
className: "d-grid",
children: (0, t.jsx)(c.Z, {
title: "\u4ece\u4e0b\u9762\u7684\u6b4c\u5355\u91cc\u968f\u673a\u6311\u4e00\u9996",
className: p().customRandomButton,
onClick: function() {
var i = document.querySelector(".songList"),
a = Math.floor(1 + Math.random() * i.childElementCount),
n = document.querySelector(".songList>tr:nth-child(" + a + ")").childNodes[2];
n ? n.id.includes("paid") ? (I()("\u70b9\u6b4c\uffe5" + n.innerText), V.Am.success('\u4ed8\u8d39\u66f2\u76ee"' + n.innerText + '"\u6210\u529f\u590d\u5236\u5230\u526a\u8d34\u677f!')) : (I()("\u70b9\u6b4c " + n.innerText), V.Am.success('"' + n.innerText + '"\u6210\u529f\u590d\u5236\u5230\u526a\u8d34\u677f!')) : V.Am.info("\u6b4c\u5355\u5df2\u7ecf\u6ca1\u6b4c\u4e86!")
},
children: "\u968f\u4fbf\u542c\u542c"
})
})
})]
}), (0, t.jsx)(m.Z, {
children: (0, t.jsx)(k.Z, {
children: (0, t.jsx)("div", {
className: p().songListMarco,
children: (0, t.jsx)(_.Z, {
fluid: !0,
children: (0, t.jsxs)(y.Z, {
responsive: !0,
children: [(0, t.jsx)("thead", {
children: (0, t.jsxs)("tr", {
children: [
(0, t.jsx)("th", {}),
(0, t.jsx)("th", {
style: { width: "50px", textAlign: "center" },
children: "\u8bd5\u542c"
}),
(0, t.jsx)("th", { children: "\u6b4c\u540d" }),
(0, t.jsx)("th", {}),
(0, t.jsx)("th", { children: "\u6b4c\u624b" }),
(0, t.jsx)("th", { children: "\u8bed\u8a00" }),
(0, t.jsx)("th", { children: "\u5907\u6ce8" })
]
})
}), (0, t.jsx)("tbody", {
className: "songList",
children: (0, t.jsx)(j, {
filteredSongList: E,
handleClickToCopy: function(i) {
i.id.includes("paid") ? (I()("\u70b9\u6b4c \uffe5" + i.innerText), V.Am.success('\u4ed8\u8d39\u66f2\u76ee"' + i.innerText + '"\u6210\u529f\u590d\u5236\u5230\u526a\u8d34\u677f!')) : (I()("\u70b9\u6b4c " + i.innerText), V.Am.success('"' + i.innerText + '"\u6210\u529f\u590d\u5236\u5230\u526a\u8d34\u677f!'))
},
setBVID: F,
setPlayerModalShow: Z,
setPlayerModalSongName: L
})
})]
})
})
})
})
})]
}), D ? (0, t.jsx)("button", {
onClick: function() {
window.scrollTo({
top: 0,
behavior: "smooth"
})
},
className: p().backToTopBtn,
title: "\u8fd4\u56de\u9876\u90e8",
children: (0, t.jsx)("svg", {
xmlns: "http://www.w3.org/2000/svg",
width: "16",
height: "16",
fill: "currentColor",
className: "bi bi-chevron-up",
viewBox: "0 0 16 16",
children: (0, t.jsx)("path", {
fillRule: "evenodd",
d: "M7.646 4.646a.5.5 0 0 1 .708 0l6 6a.5.5 0 0 1-.708.708L8 5.707l-5.646 5.647a.5.5 0 0 1-.708-.708l6-6z"
})
})
}) : (0, t.jsx)("div", {}), (0, t.jsx)("footer", {
className: p().footer,
children: "Copyright \xa9 2026 江壹纯和她的家人们"
})]
}), (0, t.jsxs)(B.Z, {
show: w,
onHide: function() {
return N(!1)
},
children: [(0, t.jsx)(B.Z.Header, {
closeButton: !0,
children: (0, t.jsx)(B.Z.Title, {
children: "江壹纯の自我介绍"
})
}), (0, t.jsxs)(B.Z.Body, {
children: [
(0, t.jsx)("p", {
className: p().introParagraph,
children: "个人势精灵VUP,谢谢你能听我唱歌。 / 开播通知群:883462470 ❥ 网易yun:江壹纯"
}), ]
})]
}), (0, t.jsx)(P, {
show: Y,
onHide: function() {
return Z(!1)
},
BVID: W,
modalPlayerSongName: M
})]
})
}
},
3485: function(i) {
"use strict";
i.exports = function(i) {
var a = i.src;
return "/".concat(a)
}
},
214: function(i) {
i.exports = {
footer: "Home_footer____T7K",
main: "Home_main__nLjiQ",
grandTitle: "Home_grandTitle__vj4bo",
songListMarco: "Home_songListMarco__E7n36",
noWrapForce: "Home_noWrapForce__ZVcGp",
avatar: "Home_avatar__Nx8VL",
songRow: "Home_songRow__oXk35",
songRowTop: "Home_songRowTop__lBxZI",
songRowPaid: "Home_songRowPaid__CF84t",
filters: "Home_filters__bAJEh",
customRandomButton: "Home_customRandomButton__etExJ",
customCategoryButton: "Home_customCategoryButton__Wj433",
splitBtn: "Home_splitBtn__agq3N",
customCategoryButtonActive: "Home_customCategoryButtonActive__EyYqP",
splitBtnActive: "Home_splitBtnActive__oWBxn",
backToTopBtn: "Home_backToTopBtn__IkJo2",
tableIconTd: "Home_tableIconTd__XPlmO",
tableIcons: "Home_tableIcons__NIcFZ",
biliIcon: "Home_biliIcon__vAY_x",
categorySelectionContainer: "Home_categorySelectionContainer__xmJCY",
outerContainer: "Home_outerContainer__cYXfd",
categorySelectionTitle: "Home_categorySelectionTitle__k_0l3",
introBox: "Home_introBox__95Aha",
introBoxInnerDiv: "Home_introBoxInnerDiv__7rfuV",
titleCol: "Home_titleCol__7_LXx",
titleBox: "Home_titleBox__Q6Ce_",
offCanvasToggleDiv: "Home_offCanvasToggleDiv__hsudI",
goToLiveDiv: "Home_goToLiveDiv__UfCoe",
biliPlayerDiv: "Home_biliPlayerDiv__mbFbX",
introTitle: "Home_introTitle__gStVp",
introParagraph: "Home_introParagraph__A_Arp",
cornerToggle: "Home_cornerToggle__SpF89"
}
}
},
function(i) {
i.O(0, [658, 774, 888, 179], (function() {
return a = 5557, i(i.s = a);
var a
}));
var a = i.O();
_N_E = a
}
]);