@robot-admin/naive-ui-components 0.13.1 → 0.13.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (234) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +4 -0
  3. package/README_EN.md +4 -0
  4. package/dist/C_ActionBar.css +75 -63
  5. package/dist/C_ActionBar2.cjs +1 -1
  6. package/dist/C_ActionBar2.js +1 -1
  7. package/dist/C_AntV.css +249 -79
  8. package/dist/C_AntV2.cjs +3 -3
  9. package/dist/C_AntV2.js +2 -2
  10. package/dist/C_AudioPlayer.css +88 -76
  11. package/dist/C_AudioPlayer2.cjs +1 -1
  12. package/dist/C_AudioPlayer2.js +1 -1
  13. package/dist/C_AvatarGroup.css +32 -28
  14. package/dist/C_AvatarGroup2.cjs +1 -1
  15. package/dist/C_AvatarGroup2.js +1 -1
  16. package/dist/C_Breadcrumb.css +35 -17
  17. package/dist/C_Breadcrumb2.cjs +1 -1
  18. package/dist/C_Breadcrumb2.js +1 -1
  19. package/dist/C_Captcha.css +66 -53
  20. package/dist/C_Captcha2.cjs +1 -1
  21. package/dist/C_Captcha2.js +1 -1
  22. package/dist/C_Cascade.css +6 -2
  23. package/dist/C_Cascade2.cjs +1 -1
  24. package/dist/C_Cascade2.js +1 -1
  25. package/dist/C_Chat.css +40 -33
  26. package/dist/C_City.css +37 -32
  27. package/dist/C_City2.cjs +1 -1
  28. package/dist/C_City2.js +1 -1
  29. package/dist/C_Code.css +53 -40
  30. package/dist/C_Code2.cjs +1 -1
  31. package/dist/C_Code2.js +1 -1
  32. package/dist/C_CollapsePanel.css +68 -55
  33. package/dist/C_CollapsePanel2.cjs +1 -1
  34. package/dist/C_CollapsePanel2.js +1 -1
  35. package/dist/C_ContextMenu.css +68 -26
  36. package/dist/C_ContextMenu2.cjs +1 -1
  37. package/dist/C_ContextMenu2.js +1 -1
  38. package/dist/C_Cron.css +95 -68
  39. package/dist/C_Cron2.cjs +1 -1
  40. package/dist/C_Cron2.js +1 -1
  41. package/dist/C_Date.css +8 -1
  42. package/dist/C_Date2.cjs +1 -1
  43. package/dist/C_Date2.js +1 -1
  44. package/dist/C_Draggable.css +60 -51
  45. package/dist/C_Draggable2.cjs +1 -1
  46. package/dist/C_Draggable2.js +1 -1
  47. package/dist/C_Editor.css +23 -15
  48. package/dist/C_Editor2.cjs +1 -1
  49. package/dist/C_Editor2.js +1 -1
  50. package/dist/C_FilePreview.css +200 -90
  51. package/dist/C_FilePreview2.cjs +1 -1
  52. package/dist/C_FilePreview2.js +1 -1
  53. package/dist/C_Form.base.css +284 -224
  54. package/dist/C_Form.css +307 -239
  55. package/dist/C_Form2.cjs +1 -1
  56. package/dist/C_Form2.js +1 -1
  57. package/dist/C_FormModal.css +18 -8
  58. package/dist/C_FormModal2.cjs +1 -1
  59. package/dist/C_FormModal2.js +1 -1
  60. package/dist/C_FormSearch.css +58 -45
  61. package/dist/C_FormSearch2.cjs +1 -1
  62. package/dist/C_FormSearch2.js +1 -1
  63. package/dist/C_FormulaEditor.css +62 -37
  64. package/dist/C_FormulaEditor2.cjs +1 -1
  65. package/dist/C_FormulaEditor2.js +1 -1
  66. package/dist/C_FullCalendar.css +16 -3
  67. package/dist/C_FullCalendar2.cjs +1 -1
  68. package/dist/C_FullCalendar2.js +1 -1
  69. package/dist/C_GlobalSearch.css +121 -112
  70. package/dist/C_GlobalSearch2.cjs +1 -1
  71. package/dist/C_GlobalSearch2.js +1 -1
  72. package/dist/C_Guide.css +30 -18
  73. package/dist/C_Guide2.cjs +1 -1
  74. package/dist/C_Guide2.js +1 -1
  75. package/dist/C_Icon.css +24 -17
  76. package/dist/C_Icon2.cjs +1 -1
  77. package/dist/C_Icon2.js +1 -1
  78. package/dist/C_ImageCropper.css +39 -22
  79. package/dist/C_ImageCropper2.cjs +1 -1
  80. package/dist/C_ImageCropper2.js +1 -1
  81. package/dist/C_Language.css +30 -17
  82. package/dist/C_Language2.cjs +1 -1
  83. package/dist/C_Language2.js +1 -1
  84. package/dist/C_Login.css +162 -137
  85. package/dist/C_Login2.cjs +1 -1
  86. package/dist/C_Login2.js +1 -1
  87. package/dist/C_Map.css +25 -4
  88. package/dist/C_Map2.cjs +1 -1
  89. package/dist/C_Map2.js +1 -1
  90. package/dist/C_Markdown.css +47 -42
  91. package/dist/C_Markdown2.cjs +1 -1
  92. package/dist/C_Markdown2.js +1 -1
  93. package/dist/C_Menu.css +7 -1
  94. package/dist/C_Menu2.cjs +1 -1
  95. package/dist/C_Menu2.js +1 -1
  96. package/dist/C_NotificationCenter.css +134 -90
  97. package/dist/C_NotificationCenter2.cjs +1 -1
  98. package/dist/C_NotificationCenter2.js +1 -1
  99. package/dist/C_OrgChart.css +10 -0
  100. package/dist/C_OrgChart2.cjs +1 -1
  101. package/dist/C_OrgChart2.js +1 -1
  102. package/dist/C_QRCode.css +12 -8
  103. package/dist/C_QRCode2.cjs +1 -1
  104. package/dist/C_QRCode2.js +1 -1
  105. package/dist/C_Signature.css +18 -14
  106. package/dist/C_Signature2.cjs +1 -1
  107. package/dist/C_Signature2.js +1 -1
  108. package/dist/C_Skeleton.css +5 -0
  109. package/dist/C_Skeleton2.cjs +1 -1
  110. package/dist/C_Skeleton2.js +1 -1
  111. package/dist/C_SplitPane.css +61 -39
  112. package/dist/C_SplitPane2.cjs +1 -1
  113. package/dist/C_SplitPane2.js +1 -1
  114. package/dist/C_Steps.css +42 -38
  115. package/dist/C_Steps2.cjs +1 -1
  116. package/dist/C_Steps2.js +1 -1
  117. package/dist/C_Table.base.css +465 -352
  118. package/dist/C_Table.css +488 -367
  119. package/dist/C_TagsView.css +93 -55
  120. package/dist/C_TagsView2.cjs +1 -1
  121. package/dist/C_TagsView2.js +1 -1
  122. package/dist/C_Theme.css +24 -17
  123. package/dist/C_Timeline.css +47 -36
  124. package/dist/C_Transfer.css +86 -67
  125. package/dist/C_Transfer2.cjs +1 -1
  126. package/dist/C_Transfer2.js +1 -1
  127. package/dist/C_Tree.css +48 -33
  128. package/dist/C_Tree2.cjs +1 -1
  129. package/dist/C_Tree2.js +1 -1
  130. package/dist/C_Upload.css +104 -51
  131. package/dist/C_Upload2.cjs +1 -1
  132. package/dist/C_Upload2.js +1 -1
  133. package/dist/C_VideoPlayer.css +140 -69
  134. package/dist/C_VideoPlayer2.cjs +1 -1
  135. package/dist/C_VideoPlayer2.js +1 -1
  136. package/dist/C_VtableGantt.css +42 -19
  137. package/dist/C_VtableGantt2.cjs +1 -1
  138. package/dist/C_VtableGantt2.js +1 -1
  139. package/dist/C_WaterFall.css +32 -16
  140. package/dist/C_WaterFall2.cjs +1 -1
  141. package/dist/C_WaterFall2.js +1 -1
  142. package/dist/C_WorkFlow.css +332 -221
  143. package/dist/C_WorkFlow2.cjs +1 -1
  144. package/dist/C_WorkFlow2.js +1 -1
  145. package/dist/constants.d.cts +4 -4
  146. package/dist/constants.d.ts +4 -4
  147. package/dist/constants2.d.cts +3 -3
  148. package/dist/constants2.d.ts +3 -3
  149. package/dist/constants3.d.cts +2 -2
  150. package/dist/constants3.d.ts +2 -2
  151. package/dist/constants4.d.cts +5 -5
  152. package/dist/constants4.d.ts +5 -5
  153. package/dist/constants5.d.cts +4 -4
  154. package/dist/constants5.d.ts +4 -4
  155. package/dist/data.d.cts +9 -9
  156. package/dist/data.d.ts +9 -9
  157. package/dist/data2.cjs +1 -1
  158. package/dist/data2.js +1 -1
  159. package/dist/index.vue.d.cts +3 -3
  160. package/dist/index.vue.d.ts +3 -3
  161. package/dist/index10.vue.d.cts +3 -3
  162. package/dist/index10.vue.d.ts +3 -3
  163. package/dist/index11.vue.d.cts +3 -3
  164. package/dist/index11.vue.d.ts +1 -1
  165. package/dist/index12.vue.d.cts +1 -1
  166. package/dist/index12.vue.d.ts +2 -2
  167. package/dist/index13.vue.d.cts +2 -2
  168. package/dist/index13.vue.d.ts +2 -2
  169. package/dist/index14.vue.d.cts +2 -2
  170. package/dist/index14.vue.d.ts +14 -12
  171. package/dist/index15.vue.d.cts +14 -12
  172. package/dist/index15.vue.d.ts +2 -2
  173. package/dist/index16.vue.d.cts +2 -2
  174. package/dist/index16.vue.d.ts +11 -2
  175. package/dist/index17.vue.d.cts +11 -2
  176. package/dist/index17.vue.d.ts +5 -5
  177. package/dist/index18.vue.d.cts +5 -5
  178. package/dist/index2.vue.d.cts +1 -1
  179. package/dist/index2.vue.d.ts +1 -1
  180. package/dist/index20.vue.d.cts +1 -1
  181. package/dist/index20.vue.d.ts +1 -1
  182. package/dist/index21.vue.d.cts +2 -2
  183. package/dist/index21.vue.d.ts +2 -2
  184. package/dist/index24.vue.d.cts +4 -4
  185. package/dist/index24.vue.d.ts +4 -4
  186. package/dist/index26.vue.d.cts +1 -1
  187. package/dist/index26.vue.d.ts +1 -1
  188. package/dist/index27.vue.d.cts +3 -3
  189. package/dist/index27.vue.d.ts +3 -3
  190. package/dist/index3.vue.d.cts +4 -4
  191. package/dist/index3.vue.d.ts +4 -4
  192. package/dist/index5.vue.d.ts +2 -2
  193. package/dist/index6.vue.d.cts +2 -2
  194. package/dist/index6.vue.d.ts +2 -2
  195. package/dist/index7.vue.d.cts +2 -2
  196. package/dist/index7.vue.d.ts +2 -2
  197. package/dist/index8.vue.d.cts +2 -2
  198. package/dist/index8.vue.d.ts +3 -3
  199. package/dist/index9.vue.d.cts +3 -3
  200. package/dist/index9.vue.d.ts +3 -3
  201. package/dist/mapUtils.d.cts +4 -4
  202. package/dist/mapUtils.d.ts +4 -4
  203. package/dist/presets.d.cts +1 -1
  204. package/dist/presets.d.ts +1 -1
  205. package/dist/style.css +3083 -1982
  206. package/dist/useCollapsePanel.d.cts +7 -7
  207. package/dist/useCollapsePanel.d.ts +7 -7
  208. package/dist/useCropperCore.d.cts +10 -10
  209. package/dist/useCropperCore.d.ts +10 -10
  210. package/dist/useDraggableLayout.d.cts +5 -5
  211. package/dist/useDraggableLayout.d.ts +5 -5
  212. package/dist/useEdgeInteraction.d.cts +1 -1
  213. package/dist/useEdgeInteraction.d.ts +1 -1
  214. package/dist/useFullscreen.d.cts +2 -2
  215. package/dist/useFullscreen.d.ts +2 -2
  216. package/dist/useInfiniteScroll.d.cts +3 -3
  217. package/dist/useInfiniteScroll.d.ts +3 -3
  218. package/dist/useQRCode.d.cts +4 -4
  219. package/dist/useQRCode.d.ts +4 -4
  220. package/dist/useSearchState.d.cts +27 -27
  221. package/dist/useSearchState.d.ts +27 -27
  222. package/dist/useSignatureHistory.d.cts +3 -3
  223. package/dist/useSignatureHistory.d.ts +3 -3
  224. package/dist/useSplitResize.d.cts +6 -6
  225. package/dist/useSplitResize.d.ts +6 -6
  226. package/dist/useTableQuery.cjs +1 -1
  227. package/dist/useTableQuery.js +1 -1
  228. package/dist/useTimeSelection.d.cts +4 -4
  229. package/dist/useTimeSelection.d.ts +4 -4
  230. package/dist/useTreeOperations.d.cts +5 -5
  231. package/dist/useTreeOperations.d.ts +5 -5
  232. package/dist/useWorkflowValidation.d.cts +2 -2
  233. package/dist/useWorkflowValidation.d.ts +2 -2
  234. package/package.json +8 -1
@@ -1,54 +1,55 @@
1
- /* unplugin-vue-components disabled */.c-icon[data-v-711aedcd] {
1
+ /* unplugin-vue-components disabled */.c-icon[data-v-075758a0] {
2
2
  display: inline-flex;
3
3
  align-items: center;
4
4
  justify-content: center;
5
+ position: relative;
6
+ flex-shrink: 0;
7
+ vertical-align: middle;
5
8
  user-select: none;
6
9
  transition: all 0.2s ease-in-out;
7
10
  }
8
- .c-icon--clickable[data-v-711aedcd] {
11
+ .c-icon--clickable[data-v-075758a0] {
9
12
  cursor: pointer;
10
13
  }
11
- .c-icon--clickable[data-v-711aedcd]:hover {
14
+ .c-icon--clickable[data-v-075758a0]:hover {
12
15
  opacity: 0.8;
13
16
  transform: scale(1.05);
14
17
  }
15
- .c-icon--clickable[data-v-711aedcd]:active {
18
+ .c-icon--clickable[data-v-075758a0]:active {
16
19
  transform: scale(0.95);
17
20
  }
18
- .c-icon--clickable[data-v-711aedcd]:focus-visible {
21
+ .c-icon--clickable[data-v-075758a0]:focus-visible {
19
22
  outline: 2px solid currentColor;
20
23
  outline-offset: 2px;
21
24
  border-radius: 4px;
22
25
  }
23
- .c-icon--loading[data-v-711aedcd] {
26
+ .c-icon--loading[data-v-075758a0] {
24
27
  opacity: 0.6;
25
28
  cursor: wait;
26
29
  }
27
- .c-icon--error[data-v-711aedcd] {
28
- opacity: 0.5;
29
- }
30
- .c-icon__loading[data-v-711aedcd] {
31
- position: relative;
30
+ .c-icon__loading[data-v-075758a0] {
31
+ position: absolute;
32
+ inset: 0;
32
33
  }
33
- .c-icon__spinner[data-v-711aedcd] {
34
+ .c-icon__spinner[data-v-075758a0] {
34
35
  width: 100%;
35
36
  height: 100%;
36
37
  border: 2px solid currentColor;
37
38
  border-radius: 50%;
38
39
  border-top-color: transparent;
39
- animation: spin-711aedcd 1s linear infinite;
40
+ animation: spin-075758a0 1s linear infinite;
40
41
  }
41
- .c-icon__error[data-v-711aedcd] {
42
+ .c-icon__error[data-v-075758a0] {
42
43
  font-size: 0.8em;
43
44
  opacity: 0.5;
44
45
  }
45
- .c-icon__rotatable[data-v-711aedcd] {
46
+ .c-icon__rotatable[data-v-075758a0] {
46
47
  transition: transform 0.3s ease-in-out;
47
48
  }
48
- .c-icon__flippable[data-v-711aedcd] {
49
+ .c-icon__flippable[data-v-075758a0] {
49
50
  transition: transform 0.3s ease-in-out;
50
51
  }
51
- @keyframes spin-711aedcd {
52
+ @keyframes spin-075758a0 {
52
53
  0% {
53
54
  transform: rotate(0deg);
54
55
  }
@@ -56,22 +57,28 @@
56
57
  transform: rotate(360deg);
57
58
  }
58
59
  }
60
+ /* unplugin-vue-components disabled */
61
+ /* layer: default */
62
+ .inline-flex[data-v-075758a0]{display:inline-flex;}
63
+ .transform[data-v-075758a0]{transform:translateX(var(--un-translate-x)) translateY(var(--un-translate-y)) translateZ(var(--un-translate-z)) rotate(var(--un-rotate)) rotateX(var(--un-rotate-x)) rotateY(var(--un-rotate-y)) rotateZ(var(--un-rotate-z)) skewX(var(--un-skew-x)) skewY(var(--un-skew-y)) scaleX(var(--un-scale-x)) scaleY(var(--un-scale-y)) scaleZ(var(--un-scale-z));}
64
+ .px[data-v-075758a0]{padding-left:1rem;padding-right:1rem;}
65
+
59
66
 
60
67
  /* unplugin-vue-components disabled *//**
61
68
  * C_AudioPlayer — 音频播放器样式
62
69
  */
63
- .c-audio-player[data-v-46f841a0] {
64
- --ap-bg: var(--card-color);
65
- --ap-border: var(--border-color);
66
- --ap-accent: var(--primary-color);
67
- --ap-text: var(--text-color-1);
68
- --ap-text-sub: var(--text-color-3);
70
+ .c-audio-player[data-v-5ba9d24f] {
71
+ --ap-bg: var(--c-bg-card, var(--card-color, #fff));
72
+ --ap-border: var(--c-border, var(--border-color, #e5e7eb));
73
+ --ap-accent: var(--c-primary, var(--primary-color, #2080f0));
74
+ --ap-text: var(--c-text-1, var(--text-color-1, #262626));
75
+ --ap-text-sub: var(--c-text-3, var(--text-color-3, #a3a3a3));
69
76
  --ap-progress-bg: color-mix(
70
77
  in srgb,
71
- var(--primary-color) 15%,
72
- var(--border-color)
78
+ var(--c-primary, var(--primary-color, #2080f0)) 15%,
79
+ var(--c-border, var(--border-color, #e5e7eb))
73
80
  );
74
- --ap-progress-fill: var(--primary-color);
81
+ --ap-progress-fill: var(--c-primary, var(--primary-color, #2080f0));
75
82
  display: flex;
76
83
  flex-direction: column;
77
84
  border-radius: 12px;
@@ -81,13 +88,13 @@
81
88
  box-shadow: 0 2px 12px rgba(0, 0, 0, 0.06);
82
89
  /* ======================== Now Playing ======================== */
83
90
  }
84
- .c-audio-player__now-playing[data-v-46f841a0] {
91
+ .c-audio-player__now-playing[data-v-5ba9d24f] {
85
92
  display: flex;
86
93
  align-items: center;
87
94
  gap: 16px;
88
95
  padding: 20px;
89
96
  }
90
- .c-audio-player__cover[data-v-46f841a0] {
97
+ .c-audio-player__cover[data-v-5ba9d24f] {
91
98
  flex-shrink: 0;
92
99
  width: 72px;
93
100
  height: 72px;
@@ -99,21 +106,21 @@
99
106
  justify-content: center;
100
107
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.08);
101
108
  }
102
- .c-audio-player__cover img[data-v-46f841a0] {
109
+ .c-audio-player__cover img[data-v-5ba9d24f] {
103
110
  width: 100%;
104
111
  height: 100%;
105
112
  object-fit: cover;
106
113
  }
107
- .c-audio-player__cover-placeholder[data-v-46f841a0] {
114
+ .c-audio-player__cover-placeholder[data-v-5ba9d24f] {
108
115
  font-size: 32px;
109
116
  color: var(--ap-accent);
110
117
  opacity: 0.5;
111
118
  }
112
- .c-audio-player__info[data-v-46f841a0] {
119
+ .c-audio-player__info[data-v-5ba9d24f] {
113
120
  flex: 1;
114
121
  min-width: 0;
115
122
  }
116
- .c-audio-player__title[data-v-46f841a0] {
123
+ .c-audio-player__title[data-v-5ba9d24f] {
117
124
  font-size: 15px;
118
125
  font-weight: 600;
119
126
  color: var(--ap-text);
@@ -121,7 +128,7 @@
121
128
  text-overflow: ellipsis;
122
129
  white-space: nowrap;
123
130
  }
124
- .c-audio-player__artist[data-v-46f841a0] {
131
+ .c-audio-player__artist[data-v-5ba9d24f] {
125
132
  font-size: 12px;
126
133
  color: var(--ap-text-sub);
127
134
  margin-top: 2px;
@@ -129,13 +136,13 @@
129
136
  text-overflow: ellipsis;
130
137
  white-space: nowrap;
131
138
  }
132
- .c-audio-player[data-v-46f841a0] {
139
+ .c-audio-player[data-v-5ba9d24f] {
133
140
  /* ======================== Progress ======================== */
134
141
  }
135
- .c-audio-player__progress[data-v-46f841a0] {
142
+ .c-audio-player__progress[data-v-5ba9d24f] {
136
143
  padding: 0 20px;
137
144
  }
138
- .c-audio-player__progress-bar[data-v-46f841a0] {
145
+ .c-audio-player__progress-bar[data-v-5ba9d24f] {
139
146
  position: relative;
140
147
  width: 100%;
141
148
  height: 6px;
@@ -144,17 +151,17 @@
144
151
  cursor: pointer;
145
152
  transition: height 0.15s;
146
153
  }
147
- .c-audio-player__progress-bar[data-v-46f841a0]:hover {
154
+ .c-audio-player__progress-bar[data-v-5ba9d24f]:hover {
148
155
  height: 8px;
149
156
  }
150
- .c-audio-player__progress-fill[data-v-46f841a0] {
157
+ .c-audio-player__progress-fill[data-v-5ba9d24f] {
151
158
  height: 100%;
152
159
  border-radius: 3px;
153
160
  background: var(--ap-progress-fill);
154
161
  position: relative;
155
162
  transition: width 0.1s linear;
156
163
  }
157
- .c-audio-player__progress-fill[data-v-46f841a0]::after {
164
+ .c-audio-player__progress-fill[data-v-5ba9d24f]::after {
158
165
  content: "";
159
166
  position: absolute;
160
167
  right: -5px;
@@ -168,10 +175,10 @@
168
175
  opacity: 0;
169
176
  transition: opacity 0.15s;
170
177
  }
171
- .c-audio-player__progress-bar:hover .c-audio-player__progress-fill[data-v-46f841a0]::after {
178
+ .c-audio-player__progress-bar:hover .c-audio-player__progress-fill[data-v-5ba9d24f]::after {
172
179
  opacity: 1;
173
180
  }
174
- .c-audio-player__time[data-v-46f841a0] {
181
+ .c-audio-player__time[data-v-5ba9d24f] {
175
182
  display: flex;
176
183
  justify-content: space-between;
177
184
  font-size: 11px;
@@ -179,17 +186,17 @@
179
186
  margin-top: 4px;
180
187
  padding-bottom: 4px;
181
188
  }
182
- .c-audio-player[data-v-46f841a0] {
189
+ .c-audio-player[data-v-5ba9d24f] {
183
190
  /* ======================== Controls ======================== */
184
191
  }
185
- .c-audio-player__controls[data-v-46f841a0] {
192
+ .c-audio-player__controls[data-v-5ba9d24f] {
186
193
  display: flex;
187
194
  align-items: center;
188
195
  justify-content: center;
189
196
  gap: 8px;
190
197
  padding: 12px 20px;
191
198
  }
192
- .c-audio-player__ctrl-btn[data-v-46f841a0] {
199
+ .c-audio-player__ctrl-btn[data-v-5ba9d24f] {
193
200
  display: inline-flex;
194
201
  align-items: center;
195
202
  justify-content: center;
@@ -200,46 +207,46 @@
200
207
  border-radius: 50%;
201
208
  transition: background 0.2s, color 0.2s, transform 0.15s;
202
209
  }
203
- .c-audio-player__ctrl-btn[data-v-46f841a0]:hover {
210
+ .c-audio-player__ctrl-btn[data-v-5ba9d24f]:hover {
204
211
  color: var(--ap-accent);
205
212
  background: color-mix(in srgb, var(--ap-accent) 10%, transparent);
206
213
  }
207
- .c-audio-player__ctrl-btn[data-v-46f841a0]:active {
214
+ .c-audio-player__ctrl-btn[data-v-5ba9d24f]:active {
208
215
  transform: scale(0.92);
209
216
  }
210
- .c-audio-player__ctrl-btn.is-mode[data-v-46f841a0] {
217
+ .c-audio-player__ctrl-btn.is-mode[data-v-5ba9d24f] {
211
218
  font-size: 18px;
212
219
  width: 34px;
213
220
  height: 34px;
214
221
  }
215
- .c-audio-player__ctrl-btn.is-skip[data-v-46f841a0] {
222
+ .c-audio-player__ctrl-btn.is-skip[data-v-5ba9d24f] {
216
223
  font-size: 22px;
217
224
  width: 38px;
218
225
  height: 38px;
219
226
  }
220
- .c-audio-player__ctrl-btn.is-play[data-v-46f841a0] {
227
+ .c-audio-player__ctrl-btn.is-play[data-v-5ba9d24f] {
221
228
  font-size: 28px;
222
229
  width: 48px;
223
230
  height: 48px;
224
231
  background: var(--ap-accent);
225
232
  color: #fff;
226
233
  }
227
- .c-audio-player__ctrl-btn.is-play[data-v-46f841a0]:hover {
234
+ .c-audio-player__ctrl-btn.is-play[data-v-5ba9d24f]:hover {
228
235
  background: color-mix(in srgb, var(--ap-accent) 85%, #000);
229
236
  color: #fff;
230
237
  box-shadow: 0 2px 10px color-mix(in srgb, var(--ap-accent) 35%, transparent);
231
238
  }
232
- .c-audio-player[data-v-46f841a0] {
239
+ .c-audio-player[data-v-5ba9d24f] {
233
240
  /* ======================== Volume ======================== */
234
241
  }
235
- .c-audio-player__volume[data-v-46f841a0] {
242
+ .c-audio-player__volume[data-v-5ba9d24f] {
236
243
  display: flex;
237
244
  align-items: center;
238
245
  gap: 6px;
239
246
  padding: 0 20px 12px;
240
247
  justify-content: flex-end;
241
248
  }
242
- .c-audio-player__volume-icon[data-v-46f841a0] {
249
+ .c-audio-player__volume-icon[data-v-5ba9d24f] {
243
250
  display: inline-flex;
244
251
  padding: 0;
245
252
  border: 0;
@@ -249,21 +256,21 @@
249
256
  color: var(--ap-text-sub);
250
257
  cursor: pointer;
251
258
  }
252
- .c-audio-player__volume-icon[data-v-46f841a0]:hover {
259
+ .c-audio-player__volume-icon[data-v-5ba9d24f]:hover {
253
260
  color: var(--ap-accent);
254
261
  }
255
- .c-audio-player__volume-slider[data-v-46f841a0] {
262
+ .c-audio-player__volume-slider[data-v-5ba9d24f] {
256
263
  width: 100px;
257
264
  }
258
- .c-audio-player[data-v-46f841a0] {
265
+ .c-audio-player[data-v-5ba9d24f] {
259
266
  /* ======================== Playlist ======================== */
260
267
  }
261
- .c-audio-player__playlist[data-v-46f841a0] {
268
+ .c-audio-player__playlist[data-v-5ba9d24f] {
262
269
  border-top: 1px solid var(--ap-border);
263
270
  max-height: 260px;
264
271
  overflow-y: auto;
265
272
  }
266
- .c-audio-player__playlist-header[data-v-46f841a0] {
273
+ .c-audio-player__playlist-header[data-v-5ba9d24f] {
267
274
  display: flex;
268
275
  align-items: center;
269
276
  justify-content: space-between;
@@ -277,7 +284,7 @@
277
284
  top: 0;
278
285
  z-index: 1;
279
286
  }
280
- .c-audio-player__track[data-v-46f841a0] {
287
+ .c-audio-player__track[data-v-5ba9d24f] {
281
288
  display: flex;
282
289
  width: 100%;
283
290
  border: 0;
@@ -291,48 +298,48 @@
291
298
  cursor: pointer;
292
299
  transition: background 0.15s;
293
300
  }
294
- .c-audio-player__track[data-v-46f841a0]:hover {
301
+ .c-audio-player__track[data-v-5ba9d24f]:hover {
295
302
  background: color-mix(in srgb, var(--ap-accent) 6%, var(--ap-bg));
296
303
  }
297
- .c-audio-player__track.is-active[data-v-46f841a0] {
304
+ .c-audio-player__track.is-active[data-v-5ba9d24f] {
298
305
  background: color-mix(in srgb, var(--ap-accent) 10%, var(--ap-bg));
299
306
  }
300
- .c-audio-player__track.is-active .c-audio-player__track-title[data-v-46f841a0] {
307
+ .c-audio-player__track.is-active .c-audio-player__track-title[data-v-5ba9d24f] {
301
308
  color: var(--ap-accent);
302
309
  font-weight: 600;
303
310
  }
304
- .c-audio-player__track-index[data-v-46f841a0] {
311
+ .c-audio-player__track-index[data-v-5ba9d24f] {
305
312
  font-size: 12px;
306
313
  width: 20px;
307
314
  text-align: center;
308
315
  color: var(--ap-text-sub);
309
316
  flex-shrink: 0;
310
317
  }
311
- .c-audio-player__track-info[data-v-46f841a0] {
318
+ .c-audio-player__track-info[data-v-5ba9d24f] {
312
319
  flex: 1;
313
320
  min-width: 0;
314
321
  }
315
- .c-audio-player__track-title[data-v-46f841a0] {
322
+ .c-audio-player__track-title[data-v-5ba9d24f] {
316
323
  font-size: 13px;
317
324
  color: var(--ap-text);
318
325
  overflow: hidden;
319
326
  text-overflow: ellipsis;
320
327
  white-space: nowrap;
321
328
  }
322
- .c-audio-player__track-artist[data-v-46f841a0] {
329
+ .c-audio-player__track-artist[data-v-5ba9d24f] {
323
330
  font-size: 11px;
324
331
  color: var(--ap-text-sub);
325
332
  margin-top: 1px;
326
333
  }
327
- .c-audio-player__track-duration[data-v-46f841a0] {
334
+ .c-audio-player__track-duration[data-v-5ba9d24f] {
328
335
  font-size: 11px;
329
336
  color: var(--ap-text-sub);
330
337
  flex-shrink: 0;
331
338
  }
332
- .c-audio-player[data-v-46f841a0] {
339
+ .c-audio-player[data-v-5ba9d24f] {
333
340
  /* ======================== Minimal Theme ======================== */
334
341
  }
335
- .c-audio-player.is-minimal[data-v-46f841a0] {
342
+ .c-audio-player.is-minimal[data-v-5ba9d24f] {
336
343
  border-radius: 99px;
337
344
  padding: 6px 16px;
338
345
  flex-direction: row;
@@ -340,26 +347,31 @@
340
347
  gap: 10px;
341
348
  box-shadow: 0 1px 6px rgba(0, 0, 0, 0.05);
342
349
  }
343
- .c-audio-player.is-minimal .c-audio-player__now-playing[data-v-46f841a0] {
350
+ .c-audio-player.is-minimal .c-audio-player__now-playing[data-v-5ba9d24f] {
344
351
  padding: 0;
345
352
  gap: 10px;
346
353
  }
347
- .c-audio-player.is-minimal .c-audio-player__cover[data-v-46f841a0] {
354
+ .c-audio-player.is-minimal .c-audio-player__cover[data-v-5ba9d24f] {
348
355
  width: 36px;
349
356
  height: 36px;
350
357
  border-radius: 50%;
351
358
  }
352
- .c-audio-player.is-minimal .c-audio-player__progress[data-v-46f841a0],
353
- .c-audio-player.is-minimal .c-audio-player__playlist[data-v-46f841a0],
354
- .c-audio-player.is-minimal .c-audio-player__volume[data-v-46f841a0] {
359
+ .c-audio-player.is-minimal .c-audio-player__progress[data-v-5ba9d24f],
360
+ .c-audio-player.is-minimal .c-audio-player__playlist[data-v-5ba9d24f],
361
+ .c-audio-player.is-minimal .c-audio-player__volume[data-v-5ba9d24f] {
355
362
  display: none;
356
363
  }
357
- .c-audio-player.is-minimal .c-audio-player__controls[data-v-46f841a0] {
364
+ .c-audio-player.is-minimal .c-audio-player__controls[data-v-5ba9d24f] {
358
365
  padding: 4px 0;
359
366
  gap: 2px;
360
367
  }
361
- .c-audio-player.is-minimal .c-audio-player__ctrl-btn.is-play[data-v-46f841a0] {
368
+ .c-audio-player.is-minimal .c-audio-player__ctrl-btn.is-play[data-v-5ba9d24f] {
362
369
  width: 34px;
363
370
  height: 34px;
364
371
  font-size: 20px;
365
372
  }
373
+ /* unplugin-vue-components disabled */
374
+ /* layer: default */
375
+ .static[data-v-5ba9d24f]{position:static;}
376
+ .transition[data-v-5ba9d24f]{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(0.4, 0, 0.2, 1);transition-duration:150ms;}
377
+
@@ -1 +1 @@
1
- require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);const i={initialIndex:0,showPlaylist:!0,showCover:!0,autoplay:!1,mode:`list`,theme:`default`};function a(e,t){return!Number.isFinite(e)||t<=0?0:Math.min(Math.max(Math.trunc(e),0),t-1)}const o={list:{icon:`mdi:repeat`,label:`List Loop`},loop:{icon:`mdi:repeat-once`,label:`Single Loop`},single:{icon:`mdi:numeric-1-box`,label:`Play Once`},shuffle:{icon:`mdi:shuffle-variant`,label:`Shuffle`}};function s(e){if(!Number.isFinite(e)||e<0)return`00:00`;let t=Math.floor(e/60),n=Math.floor(e%60);return`${String(t).padStart(2,`0`)}:${String(n).padStart(2,`0`)}`}const c={class:`c-audio-player__now-playing`},l={key:0,class:`c-audio-player__cover`},u=[`src`,`alt`],d={class:`c-audio-player__info`},f={class:`c-audio-player__title`},p={key:0,class:`c-audio-player__artist`},ee={key:0,class:`c-audio-player__progress`},m=[`tabindex`,`aria-valuemax`,`aria-valuenow`],h={class:`c-audio-player__time`},g={class:`c-audio-player__controls`},_=[`title`],v=[`disabled`,`title`],y={key:1,class:`c-audio-player__volume`},b=[`aria-label`],x={key:2,class:`c-audio-player__playlist`},S={class:`c-audio-player__playlist-header`},C=[`onClick`],w={class:`c-audio-player__track-index`},T={class:`c-audio-player__track-info`},E={class:`c-audio-player__track-title`},D={key:0,class:`c-audio-player__track-artist`},te={key:0,class:`c-audio-player__track-duration`},O=(0,n.defineComponent)({__name:`index`,props:{tracks:{},initialIndex:{default:i.initialIndex},showPlaylist:{type:Boolean,default:i.showPlaylist},showCover:{type:Boolean,default:!0},autoplay:{type:Boolean,default:i.autoplay},mode:{default:i.mode},theme:{default:i.theme}},emits:[`play`,`pause`,`ended`,`modeChange`,`error`],setup(t,{emit:i}){let O=t,k=i,A=null,j=0,M=e=>Number.isInteger(e)&&!!O.tracks[e],N=(e,t)=>e===j&&t===A,P=(0,n.ref)(a(O.initialIndex??0,O.tracks.length)),F=(0,n.ref)(!1),I=(0,n.ref)(0),L=(0,n.ref)(0),R=(0,n.ref)(70),z=(0,n.ref)(70),B=(0,n.ref)(O.showPlaylist),V=(0,n.ref)(O.mode??`list`),H=(0,n.computed)(()=>O.tracks[P.value]),U=(0,n.computed)(()=>L.value<=0?0:Math.min(100,I.value/L.value*100)),ne=(0,n.computed)(()=>R.value===0?`mdi:volume-off`:R.value<40?`mdi:volume-low`:R.value<70?`mdi:volume-medium`:`mdi:volume-high`),W=(0,n.computed)(()=>o[V.value]?.icon??`mdi:repeat`),G=(0,n.computed)(()=>o[V.value]?.label??`循环`);function K(){j+=1,A&&(A.pause(),A.removeEventListener(`timeupdate`,q),A.removeEventListener(`loadedmetadata`,J),A.removeEventListener(`ended`,Y)),A=null,F.value=!1,I.value=0;let e=H.value;L.value=e?.duration??0,!(!e||typeof Audio>`u`)&&(A=new Audio(e.src),A.volume=R.value/100,A.addEventListener(`timeupdate`,q),A.addEventListener(`loadedmetadata`,J),A.addEventListener(`ended`,Y))}function q(){A&&(I.value=Number.isFinite(A.currentTime)?A.currentTime:0)}function J(){A&&(L.value=Number.isFinite(A.duration)?A.duration:0)}function Y(){switch(k(`ended`,P.value),V.value){case`loop`:A&&(A.currentTime=0),X(P.value,!1);break;case`single`:F.value=!1;break;case`shuffle`:O.tracks.length&&Q(Math.floor(Math.random()*O.tracks.length));break;default:if(!O.tracks.length){F.value=!1;break}Q(P.value<O.tracks.length-1?P.value+1:0)}}async function X(e,t){if(!M(e))return;(t||!A||P.value!==e)&&(P.value=e,K());let n=A;if(!n)return;let r=++j;try{if(await n.play(),!N(r,n))return;F.value=!0,k(`play`,e)}catch(e){if(!N(r,n))return;F.value=!1,k(`error`,e)}}function Z(){if(H.value){if(!F.value){X(P.value,!1);return}j+=1,A?.pause(),F.value=!1,k(`pause`)}}function Q(e){return X(e,!0)}function re(){O.tracks.length&&Q(P.value<=0?O.tracks.length-1:P.value-1)}function ie(){O.tracks.length&&Q(P.value>=O.tracks.length-1?0:P.value+1)}function ae(e){if(!A||!L.value)return;let t=e.currentTarget.getBoundingClientRect();if(t.width<=0)return;let n=Math.max(0,Math.min(1,(e.clientX-t.left)/t.width));A.currentTime=n*L.value,I.value=A.currentTime}function oe(e){if(!A||L.value<=0)return;let t=e.key===`ArrowRight`?5:e.key===`ArrowLeft`?-5:0,n=e.key===`Home`?0:e.key===`End`?L.value:I.value+t;!t&&e.key!==`Home`&&e.key!==`End`||(e.preventDefault(),A.currentTime=Math.max(0,Math.min(L.value,n)),I.value=A.currentTime)}function se(e){R.value=e,A&&(A.volume=e/100)}function ce(){R.value>0?(z.value=R.value,R.value=0):R.value=z.value||70,A&&(A.volume=R.value/100)}let $=[`list`,`loop`,`single`,`shuffle`];function le(){V.value=$[($.indexOf(V.value)+1)%$.length],k(`modeChange`,V.value)}return(0,n.watch)(()=>O.tracks,()=>{let e=F.value;P.value=a(O.initialIndex??0,O.tracks.length),K(),e&&X(P.value,!1)}),(0,n.watch)(()=>O.initialIndex,e=>{let t=a(e??0,O.tracks.length);if(t!==P.value){let e=F.value;P.value=t,K(),e&&X(t,!1)}}),(0,n.watch)(()=>O.mode,e=>{V.value=e}),(0,n.watch)(()=>O.showPlaylist,e=>{B.value=e}),(0,n.onMounted)(()=>{O.autoplay&&H.value&&X(P.value,!1)}),(0,n.onBeforeUnmount)(()=>{j+=1,A&&=(A.pause(),A.removeEventListener(`timeupdate`,q),A.removeEventListener(`loadedmetadata`,J),A.removeEventListener(`ended`,Y),null)}),(i,a)=>{let o=r.NSlider;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)([`c-audio-player`,{"is-minimal":t.theme===`minimal`}])},[(0,n.createCommentVNode)(` ================ Now Playing ================ `),(0,n.createElementVNode)(`div`,c,[t.showCover?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,l,[H.value?.cover?((0,n.openBlock)(),(0,n.createElementBlock)(`img`,{key:0,src:H.value.cover,alt:H.value.title},null,8,u)):((0,n.openBlock)(),(0,n.createBlock)(e.t,{key:1,name:`mdi:music-note`,class:`c-audio-player__cover-placeholder`}))])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`div`,d,[(0,n.createElementVNode)(`div`,f,(0,n.toDisplayString)(H.value?.title??`未选择曲目`),1),H.value?.artist?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,p,(0,n.toDisplayString)(H.value.artist),1)):(0,n.createCommentVNode)(`v-if`,!0)])]),(0,n.createCommentVNode)(` ================ Progress ================ `),t.theme===`minimal`?(0,n.createCommentVNode)(`v-if`,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ee,[(0,n.createElementVNode)(`div`,{class:`c-audio-player__progress-bar`,role:`slider`,tabindex:H.value?0:-1,"aria-label":`播放进度`,"aria-valuemin":0,"aria-valuemax":Math.floor(L.value),"aria-valuenow":Math.floor(I.value),onClick:ae,onKeydown:oe},[(0,n.createElementVNode)(`div`,{class:`c-audio-player__progress-fill`,style:(0,n.normalizeStyle)({width:`${U.value}%`})},null,4)],40,m),(0,n.createElementVNode)(`div`,h,[(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)((0,n.unref)(s)(I.value)),1),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)((0,n.unref)(s)(L.value)),1)])])),(0,n.createCommentVNode)(` ================ Controls ================ `),(0,n.createElementVNode)(`div`,g,[(0,n.createElementVNode)(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-mode`,title:G.value,onClick:le},[(0,n.createVNode)(e.t,{name:W.value},null,8,[`name`])],8,_),(0,n.createElementVNode)(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-skip`,title:`上一曲`,onClick:re},[(0,n.createVNode)(e.t,{name:`mdi:skip-previous`})]),(0,n.createElementVNode)(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-play`,disabled:!H.value,title:F.value?`暂停`:`播放`,onClick:Z},[(0,n.createVNode)(e.t,{name:F.value?`mdi:pause`:`mdi:play`},null,8,[`name`])],8,v),(0,n.createElementVNode)(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-skip`,title:`下一曲`,onClick:ie},[(0,n.createVNode)(e.t,{name:`mdi:skip-next`})]),(0,n.createElementVNode)(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-mode`,title:`播放列表`,onClick:a[0]||=e=>B.value=!B.value},[(0,n.createVNode)(e.t,{name:`mdi:playlist-music`})])]),(0,n.createCommentVNode)(` ================ Volume ================ `),t.theme===`minimal`?(0,n.createCommentVNode)(`v-if`,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,y,[(0,n.createElementVNode)(`button`,{type:`button`,class:`c-audio-player__volume-icon`,"aria-label":R.value===0?`取消静音`:`静音`,onClick:ce},[(0,n.createVNode)(e.t,{name:ne.value},null,8,[`name`])],8,b),(0,n.createVNode)(o,{value:R.value,"onUpdate:value":[a[1]||=e=>R.value=e,se],min:0,max:100,step:1,class:`c-audio-player__volume-slider`},null,8,[`value`])])),(0,n.createCommentVNode)(` ================ Playlist ================ `),t.showPlaylist&&B.value&&t.theme!==`minimal`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,x,[(0,n.createElementVNode)(`div`,S,[a[2]||=(0,n.createElementVNode)(`span`,null,`播放列表`,-1),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(t.tracks.length)+` 首`,1)]),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.tracks,(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:t.id,type:`button`,class:(0,n.normalizeClass)([`c-audio-player__track`,{"is-active":r===P.value}]),onClick:e=>Q(r)},[(0,n.createElementVNode)(`span`,w,[r===P.value&&F.value?((0,n.openBlock)(),(0,n.createBlock)(e.t,{key:0,name:`mdi:volume-high`})):((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:1},[(0,n.createTextVNode)((0,n.toDisplayString)(r+1),1)],64))]),(0,n.createElementVNode)(`div`,T,[(0,n.createElementVNode)(`div`,E,(0,n.toDisplayString)(t.title),1),t.artist?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,D,(0,n.toDisplayString)(t.artist),1)):(0,n.createCommentVNode)(`v-if`,!0)]),t.duration?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,te,(0,n.toDisplayString)((0,n.unref)(s)(t.duration)),1)):(0,n.createCommentVNode)(`v-if`,!0)],10,C))),128))])):(0,n.createCommentVNode)(`v-if`,!0)],2)}}});var k=t.t(O,[[`__scopeId`,`data-v-46f841a0`]]);Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return k}});
1
+ require(`./chunk.cjs`);const e=require(`./C_Icon2.cjs`),t=require(`./export-helper.cjs`);let n=require(`vue`),r=require(`naive-ui`);const i={initialIndex:0,showPlaylist:!0,showCover:!0,autoplay:!1,mode:`list`,theme:`default`};function a(e,t){return!Number.isFinite(e)||t<=0?0:Math.min(Math.max(Math.trunc(e),0),t-1)}const o={list:{icon:`mdi:repeat`,label:`List Loop`},loop:{icon:`mdi:repeat-once`,label:`Single Loop`},single:{icon:`mdi:numeric-1-box`,label:`Play Once`},shuffle:{icon:`mdi:shuffle-variant`,label:`Shuffle`}};function s(e){if(!Number.isFinite(e)||e<0)return`00:00`;let t=Math.floor(e/60),n=Math.floor(e%60);return`${String(t).padStart(2,`0`)}:${String(n).padStart(2,`0`)}`}const c={class:`c-audio-player__now-playing`},l={key:0,class:`c-audio-player__cover`},u=[`src`,`alt`],d={class:`c-audio-player__info`},f={class:`c-audio-player__title`},p={key:0,class:`c-audio-player__artist`},ee={key:0,class:`c-audio-player__progress`},m=[`tabindex`,`aria-valuemax`,`aria-valuenow`],h={class:`c-audio-player__time`},g={class:`c-audio-player__controls`},_=[`title`],v=[`disabled`,`title`],y={key:1,class:`c-audio-player__volume`},b=[`aria-label`],x={key:2,class:`c-audio-player__playlist`},S={class:`c-audio-player__playlist-header`},C=[`onClick`],w={class:`c-audio-player__track-index`},T={class:`c-audio-player__track-info`},E={class:`c-audio-player__track-title`},D={key:0,class:`c-audio-player__track-artist`},te={key:0,class:`c-audio-player__track-duration`},O=(0,n.defineComponent)({__name:`index`,props:{tracks:{},initialIndex:{default:i.initialIndex},showPlaylist:{type:Boolean,default:i.showPlaylist},showCover:{type:Boolean,default:!0},autoplay:{type:Boolean,default:i.autoplay},mode:{default:i.mode},theme:{default:i.theme}},emits:[`play`,`pause`,`ended`,`modeChange`,`error`],setup(t,{emit:i}){let O=t,k=i,A=null,j=0,M=e=>Number.isInteger(e)&&!!O.tracks[e],N=(e,t)=>e===j&&t===A,P=(0,n.ref)(a(O.initialIndex??0,O.tracks.length)),F=(0,n.ref)(!1),I=(0,n.ref)(0),L=(0,n.ref)(O.tracks[P.value]?.duration??0),R=(0,n.ref)(70),z=(0,n.ref)(70),B=(0,n.ref)(O.showPlaylist),V=(0,n.ref)(O.mode??`list`),H=(0,n.computed)(()=>O.tracks[P.value]),U=(0,n.computed)(()=>L.value<=0?0:Math.min(100,I.value/L.value*100)),ne=(0,n.computed)(()=>R.value===0?`mdi:volume-off`:R.value<40?`mdi:volume-low`:R.value<70?`mdi:volume-medium`:`mdi:volume-high`),W=(0,n.computed)(()=>o[V.value]?.icon??`mdi:repeat`),G=(0,n.computed)(()=>o[V.value]?.label??`循环`);function K(){j+=1,A&&(A.pause(),A.removeEventListener(`timeupdate`,q),A.removeEventListener(`loadedmetadata`,J),A.removeEventListener(`ended`,Y)),A=null,F.value=!1,I.value=0;let e=H.value;L.value=e?.duration??0,!(!e||typeof Audio>`u`)&&(A=new Audio(e.src),A.volume=R.value/100,A.addEventListener(`timeupdate`,q),A.addEventListener(`loadedmetadata`,J),A.addEventListener(`ended`,Y))}function q(){A&&(I.value=Number.isFinite(A.currentTime)?A.currentTime:0)}function J(){A&&(L.value=Number.isFinite(A.duration)?A.duration:0)}function Y(){switch(k(`ended`,P.value),V.value){case`loop`:A&&(A.currentTime=0),X(P.value,!1);break;case`single`:F.value=!1;break;case`shuffle`:O.tracks.length&&Q(Math.floor(Math.random()*O.tracks.length));break;default:if(!O.tracks.length){F.value=!1;break}Q(P.value<O.tracks.length-1?P.value+1:0)}}async function X(e,t){if(!M(e))return;(t||!A||P.value!==e)&&(P.value=e,K());let n=A;if(!n)return;let r=++j;try{if(await n.play(),!N(r,n))return;F.value=!0,k(`play`,e)}catch(e){if(!N(r,n))return;F.value=!1,k(`error`,e)}}function Z(){if(H.value){if(!F.value){X(P.value,!1);return}j+=1,A?.pause(),F.value=!1,k(`pause`)}}function Q(e){return X(e,!0)}function re(){O.tracks.length&&Q(P.value<=0?O.tracks.length-1:P.value-1)}function ie(){O.tracks.length&&Q(P.value>=O.tracks.length-1?0:P.value+1)}function ae(e){if(!A||!L.value)return;let t=e.currentTarget.getBoundingClientRect();if(t.width<=0)return;let n=Math.max(0,Math.min(1,(e.clientX-t.left)/t.width));A.currentTime=n*L.value,I.value=A.currentTime}function oe(e){if(!A||L.value<=0)return;let t=e.key===`ArrowRight`?5:e.key===`ArrowLeft`?-5:0,n=e.key===`Home`?0:e.key===`End`?L.value:I.value+t;!t&&e.key!==`Home`&&e.key!==`End`||(e.preventDefault(),A.currentTime=Math.max(0,Math.min(L.value,n)),I.value=A.currentTime)}function se(e){R.value=e,A&&(A.volume=e/100)}function ce(){R.value>0?(z.value=R.value,R.value=0):R.value=z.value||70,A&&(A.volume=R.value/100)}let $=[`list`,`loop`,`single`,`shuffle`];function le(){V.value=$[($.indexOf(V.value)+1)%$.length],k(`modeChange`,V.value)}return(0,n.watch)(()=>O.tracks,()=>{let e=F.value;P.value=a(O.initialIndex??0,O.tracks.length),K(),e&&X(P.value,!1)}),(0,n.watch)(()=>O.initialIndex,e=>{let t=a(e??0,O.tracks.length);if(t!==P.value){let e=F.value;P.value=t,K(),e&&X(t,!1)}}),(0,n.watch)(()=>O.mode,e=>{V.value=e}),(0,n.watch)(()=>O.showPlaylist,e=>{B.value=e}),(0,n.onMounted)(()=>{O.autoplay&&H.value&&X(P.value,!1)}),(0,n.onBeforeUnmount)(()=>{j+=1,A&&=(A.pause(),A.removeEventListener(`timeupdate`,q),A.removeEventListener(`loadedmetadata`,J),A.removeEventListener(`ended`,Y),null)}),(0,n.onDeactivated)(()=>{j+=1,A?.pause(),F.value=!1}),(i,a)=>{let o=r.NSlider;return(0,n.openBlock)(),(0,n.createElementBlock)(`div`,{class:(0,n.normalizeClass)([`c-audio-player`,{"is-minimal":t.theme===`minimal`}])},[(0,n.createCommentVNode)(` ================ Now Playing ================ `),(0,n.createElementVNode)(`div`,c,[t.showCover?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,l,[H.value?.cover?((0,n.openBlock)(),(0,n.createElementBlock)(`img`,{key:0,src:H.value.cover,alt:H.value.title},null,8,u)):((0,n.openBlock)(),(0,n.createBlock)(e.t,{key:1,name:`mdi:music-note`,class:`c-audio-player__cover-placeholder`}))])):(0,n.createCommentVNode)(`v-if`,!0),(0,n.createElementVNode)(`div`,d,[(0,n.createElementVNode)(`div`,f,(0,n.toDisplayString)(H.value?.title??`未选择曲目`),1),H.value?.artist?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,p,(0,n.toDisplayString)(H.value.artist),1)):(0,n.createCommentVNode)(`v-if`,!0)])]),(0,n.createCommentVNode)(` ================ Progress ================ `),t.theme===`minimal`?(0,n.createCommentVNode)(`v-if`,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,ee,[(0,n.createElementVNode)(`div`,{class:`c-audio-player__progress-bar`,role:`slider`,tabindex:H.value?0:-1,"aria-label":`播放进度`,"aria-valuemin":0,"aria-valuemax":Math.floor(L.value),"aria-valuenow":Math.floor(I.value),onClick:ae,onKeydown:oe},[(0,n.createElementVNode)(`div`,{class:`c-audio-player__progress-fill`,style:(0,n.normalizeStyle)({width:`${U.value}%`})},null,4)],40,m),(0,n.createElementVNode)(`div`,h,[(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)((0,n.unref)(s)(I.value)),1),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)((0,n.unref)(s)(L.value)),1)])])),(0,n.createCommentVNode)(` ================ Controls ================ `),(0,n.createElementVNode)(`div`,g,[(0,n.createElementVNode)(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-mode`,title:G.value,onClick:le},[(0,n.createVNode)(e.t,{name:W.value},null,8,[`name`])],8,_),(0,n.createElementVNode)(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-skip`,title:`上一曲`,onClick:re},[(0,n.createVNode)(e.t,{name:`mdi:skip-previous`})]),(0,n.createElementVNode)(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-play`,disabled:!H.value,title:F.value?`暂停`:`播放`,onClick:Z},[(0,n.createVNode)(e.t,{name:F.value?`mdi:pause`:`mdi:play`},null,8,[`name`])],8,v),(0,n.createElementVNode)(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-skip`,title:`下一曲`,onClick:ie},[(0,n.createVNode)(e.t,{name:`mdi:skip-next`})]),(0,n.createElementVNode)(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-mode`,title:`播放列表`,onClick:a[0]||=e=>B.value=!B.value},[(0,n.createVNode)(e.t,{name:`mdi:playlist-music`})])]),(0,n.createCommentVNode)(` ================ Volume ================ `),t.theme===`minimal`?(0,n.createCommentVNode)(`v-if`,!0):((0,n.openBlock)(),(0,n.createElementBlock)(`div`,y,[(0,n.createElementVNode)(`button`,{type:`button`,class:`c-audio-player__volume-icon`,"aria-label":R.value===0?`取消静音`:`静音`,onClick:ce},[(0,n.createVNode)(e.t,{name:ne.value},null,8,[`name`])],8,b),(0,n.createVNode)(o,{value:R.value,"onUpdate:value":[a[1]||=e=>R.value=e,se],min:0,max:100,step:1,class:`c-audio-player__volume-slider`},null,8,[`value`])])),(0,n.createCommentVNode)(` ================ Playlist ================ `),t.showPlaylist&&B.value&&t.theme!==`minimal`?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,x,[(0,n.createElementVNode)(`div`,S,[a[2]||=(0,n.createElementVNode)(`span`,null,`播放列表`,-1),(0,n.createElementVNode)(`span`,null,(0,n.toDisplayString)(t.tracks.length)+` 首`,1)]),((0,n.openBlock)(!0),(0,n.createElementBlock)(n.Fragment,null,(0,n.renderList)(t.tracks,(t,r)=>((0,n.openBlock)(),(0,n.createElementBlock)(`button`,{key:t.id,type:`button`,class:(0,n.normalizeClass)([`c-audio-player__track`,{"is-active":r===P.value}]),onClick:e=>Q(r)},[(0,n.createElementVNode)(`span`,w,[r===P.value&&F.value?((0,n.openBlock)(),(0,n.createBlock)(e.t,{key:0,name:`mdi:volume-high`})):((0,n.openBlock)(),(0,n.createElementBlock)(n.Fragment,{key:1},[(0,n.createTextVNode)((0,n.toDisplayString)(r+1),1)],64))]),(0,n.createElementVNode)(`div`,T,[(0,n.createElementVNode)(`div`,E,(0,n.toDisplayString)(t.title),1),t.artist?((0,n.openBlock)(),(0,n.createElementBlock)(`div`,D,(0,n.toDisplayString)(t.artist),1)):(0,n.createCommentVNode)(`v-if`,!0)]),t.duration?((0,n.openBlock)(),(0,n.createElementBlock)(`span`,te,(0,n.toDisplayString)((0,n.unref)(s)(t.duration)),1)):(0,n.createCommentVNode)(`v-if`,!0)],10,C))),128))])):(0,n.createCommentVNode)(`v-if`,!0)],2)}}});var k=t.t(O,[[`__scopeId`,`data-v-5ba9d24f`]]);Object.defineProperty(exports,`i`,{enumerable:!0,get:function(){return s}}),Object.defineProperty(exports,`n`,{enumerable:!0,get:function(){return i}}),Object.defineProperty(exports,`r`,{enumerable:!0,get:function(){return o}}),Object.defineProperty(exports,`t`,{enumerable:!0,get:function(){return k}});
@@ -1 +1 @@
1
- import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Fragment as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,normalizeClass as d,normalizeStyle as f,onBeforeUnmount as p,onMounted as m,openBlock as h,ref as g,renderList as _,resolveComponent as v,toDisplayString as y,unref as b,watch as x}from"vue";import{NSlider as S}from"naive-ui";const C={initialIndex:0,showPlaylist:!0,showCover:!0,autoplay:!1,mode:`list`,theme:`default`};function w(e,t){return!Number.isFinite(e)||t<=0?0:Math.min(Math.max(Math.trunc(e),0),t-1)}const T={list:{icon:`mdi:repeat`,label:`List Loop`},loop:{icon:`mdi:repeat-once`,label:`Single Loop`},single:{icon:`mdi:numeric-1-box`,label:`Play Once`},shuffle:{icon:`mdi:shuffle-variant`,label:`Shuffle`}};function E(e){if(!Number.isFinite(e)||e<0)return`00:00`;let t=Math.floor(e/60),n=Math.floor(e%60);return`${String(t).padStart(2,`0`)}:${String(n).padStart(2,`0`)}`}const ee={class:`c-audio-player__now-playing`},te={key:0,class:`c-audio-player__cover`},ne=[`src`,`alt`],re={class:`c-audio-player__info`},ie={class:`c-audio-player__title`},ae={key:0,class:`c-audio-player__artist`},oe={key:0,class:`c-audio-player__progress`},se=[`tabindex`,`aria-valuemax`,`aria-valuenow`],ce={class:`c-audio-player__time`},le={class:`c-audio-player__controls`},ue=[`title`],de=[`disabled`,`title`],fe={key:1,class:`c-audio-player__volume`},pe=[`aria-label`],me={key:2,class:`c-audio-player__playlist`},he={class:`c-audio-player__playlist-header`},D=[`onClick`],O={class:`c-audio-player__track-index`},k={class:`c-audio-player__track-info`},A={class:`c-audio-player__track-title`},j={key:0,class:`c-audio-player__track-artist`},M={key:0,class:`c-audio-player__track-duration`};var N=t(u({__name:`index`,props:{tracks:{},initialIndex:{default:C.initialIndex},showPlaylist:{type:Boolean,default:C.showPlaylist},showCover:{type:Boolean,default:!0},autoplay:{type:Boolean,default:C.autoplay},mode:{default:C.mode},theme:{default:C.theme}},emits:[`play`,`pause`,`ended`,`modeChange`,`error`],setup(t,{emit:u}){let v=t,C=u,N=null,P=0,F=e=>Number.isInteger(e)&&!!v.tracks[e],I=(e,t)=>e===P&&t===N,L=g(w(v.initialIndex??0,v.tracks.length)),R=g(!1),z=g(0),B=g(0),V=g(70),H=g(70),U=g(v.showPlaylist),W=g(v.mode??`list`),G=r(()=>v.tracks[L.value]),ge=r(()=>B.value<=0?0:Math.min(100,z.value/B.value*100)),_e=r(()=>V.value===0?`mdi:volume-off`:V.value<40?`mdi:volume-low`:V.value<70?`mdi:volume-medium`:`mdi:volume-high`),ve=r(()=>T[W.value]?.icon??`mdi:repeat`),ye=r(()=>T[W.value]?.label??`循环`);function K(){P+=1,N&&(N.pause(),N.removeEventListener(`timeupdate`,q),N.removeEventListener(`loadedmetadata`,J),N.removeEventListener(`ended`,Y)),N=null,R.value=!1,z.value=0;let e=G.value;B.value=e?.duration??0,!(!e||typeof Audio>`u`)&&(N=new Audio(e.src),N.volume=V.value/100,N.addEventListener(`timeupdate`,q),N.addEventListener(`loadedmetadata`,J),N.addEventListener(`ended`,Y))}function q(){N&&(z.value=Number.isFinite(N.currentTime)?N.currentTime:0)}function J(){N&&(B.value=Number.isFinite(N.duration)?N.duration:0)}function Y(){switch(C(`ended`,L.value),W.value){case`loop`:N&&(N.currentTime=0),X(L.value,!1);break;case`single`:R.value=!1;break;case`shuffle`:v.tracks.length&&Z(Math.floor(Math.random()*v.tracks.length));break;default:if(!v.tracks.length){R.value=!1;break}Z(L.value<v.tracks.length-1?L.value+1:0)}}async function X(e,t){if(!F(e))return;(t||!N||L.value!==e)&&(L.value=e,K());let n=N;if(!n)return;let r=++P;try{if(await n.play(),!I(r,n))return;R.value=!0,C(`play`,e)}catch(e){if(!I(r,n))return;R.value=!1,C(`error`,e)}}function be(){if(G.value){if(!R.value){X(L.value,!1);return}P+=1,N?.pause(),R.value=!1,C(`pause`)}}function Z(e){return X(e,!0)}function xe(){v.tracks.length&&Z(L.value<=0?v.tracks.length-1:L.value-1)}function Se(){v.tracks.length&&Z(L.value>=v.tracks.length-1?0:L.value+1)}function Ce(e){if(!N||!B.value)return;let t=e.currentTarget.getBoundingClientRect();if(t.width<=0)return;let n=Math.max(0,Math.min(1,(e.clientX-t.left)/t.width));N.currentTime=n*B.value,z.value=N.currentTime}function we(e){if(!N||B.value<=0)return;let t=e.key===`ArrowRight`?5:e.key===`ArrowLeft`?-5:0,n=e.key===`Home`?0:e.key===`End`?B.value:z.value+t;!t&&e.key!==`Home`&&e.key!==`End`||(e.preventDefault(),N.currentTime=Math.max(0,Math.min(B.value,n)),z.value=N.currentTime)}function Q(e){V.value=e,N&&(N.volume=e/100)}function Te(){V.value>0?(H.value=V.value,V.value=0):V.value=H.value||70,N&&(N.volume=V.value/100)}let $=[`list`,`loop`,`single`,`shuffle`];function Ee(){W.value=$[($.indexOf(W.value)+1)%$.length],C(`modeChange`,W.value)}return x(()=>v.tracks,()=>{let e=R.value;L.value=w(v.initialIndex??0,v.tracks.length),K(),e&&X(L.value,!1)}),x(()=>v.initialIndex,e=>{let t=w(e??0,v.tracks.length);if(t!==L.value){let e=R.value;L.value=t,K(),e&&X(t,!1)}}),x(()=>v.mode,e=>{W.value=e}),x(()=>v.showPlaylist,e=>{U.value=e}),m(()=>{v.autoplay&&G.value&&X(L.value,!1)}),p(()=>{P+=1,N&&=(N.pause(),N.removeEventListener(`timeupdate`,q),N.removeEventListener(`loadedmetadata`,J),N.removeEventListener(`ended`,Y),null)}),(r,u)=>{let p=S;return h(),o(`div`,{class:d([`c-audio-player`,{"is-minimal":t.theme===`minimal`}])},[a(` ================ Now Playing ================ `),s(`div`,ee,[t.showCover?(h(),o(`div`,te,[G.value?.cover?(h(),o(`img`,{key:0,src:G.value.cover,alt:G.value.title},null,8,ne)):(h(),i(e,{key:1,name:`mdi:music-note`,class:`c-audio-player__cover-placeholder`}))])):a(`v-if`,!0),s(`div`,re,[s(`div`,ie,y(G.value?.title??`未选择曲目`),1),G.value?.artist?(h(),o(`div`,ae,y(G.value.artist),1)):a(`v-if`,!0)])]),a(` ================ Progress ================ `),t.theme===`minimal`?a(`v-if`,!0):(h(),o(`div`,oe,[s(`div`,{class:`c-audio-player__progress-bar`,role:`slider`,tabindex:G.value?0:-1,"aria-label":`播放进度`,"aria-valuemin":0,"aria-valuemax":Math.floor(B.value),"aria-valuenow":Math.floor(z.value),onClick:Ce,onKeydown:we},[s(`div`,{class:`c-audio-player__progress-fill`,style:f({width:`${ge.value}%`})},null,4)],40,se),s(`div`,ce,[s(`span`,null,y(b(E)(z.value)),1),s(`span`,null,y(b(E)(B.value)),1)])])),a(` ================ Controls ================ `),s(`div`,le,[s(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-mode`,title:ye.value,onClick:Ee},[l(e,{name:ve.value},null,8,[`name`])],8,ue),s(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-skip`,title:`上一曲`,onClick:xe},[l(e,{name:`mdi:skip-previous`})]),s(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-play`,disabled:!G.value,title:R.value?`暂停`:`播放`,onClick:be},[l(e,{name:R.value?`mdi:pause`:`mdi:play`},null,8,[`name`])],8,de),s(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-skip`,title:`下一曲`,onClick:Se},[l(e,{name:`mdi:skip-next`})]),s(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-mode`,title:`播放列表`,onClick:u[0]||=e=>U.value=!U.value},[l(e,{name:`mdi:playlist-music`})])]),a(` ================ Volume ================ `),t.theme===`minimal`?a(`v-if`,!0):(h(),o(`div`,fe,[s(`button`,{type:`button`,class:`c-audio-player__volume-icon`,"aria-label":V.value===0?`取消静音`:`静音`,onClick:Te},[l(e,{name:_e.value},null,8,[`name`])],8,pe),l(p,{value:V.value,"onUpdate:value":[u[1]||=e=>V.value=e,Q],min:0,max:100,step:1,class:`c-audio-player__volume-slider`},null,8,[`value`])])),a(` ================ Playlist ================ `),t.showPlaylist&&U.value&&t.theme!==`minimal`?(h(),o(`div`,me,[s(`div`,he,[u[2]||=s(`span`,null,`播放列表`,-1),s(`span`,null,y(t.tracks.length)+` 首`,1)]),(h(!0),o(n,null,_(t.tracks,(t,r)=>(h(),o(`button`,{key:t.id,type:`button`,class:d([`c-audio-player__track`,{"is-active":r===L.value}]),onClick:e=>Z(r)},[s(`span`,O,[r===L.value&&R.value?(h(),i(e,{key:0,name:`mdi:volume-high`})):(h(),o(n,{key:1},[c(y(r+1),1)],64))]),s(`div`,k,[s(`div`,A,y(t.title),1),t.artist?(h(),o(`div`,j,y(t.artist),1)):a(`v-if`,!0)]),t.duration?(h(),o(`span`,M,y(b(E)(t.duration)),1)):a(`v-if`,!0)],10,D))),128))])):a(`v-if`,!0)],2)}}}),[[`__scopeId`,`data-v-46f841a0`]]);export{E as i,C as n,T as r,N as t};
1
+ import{t as e}from"./C_Icon2.js";import{t}from"./export-helper.js";import{Fragment as n,computed as r,createBlock as i,createCommentVNode as a,createElementBlock as o,createElementVNode as s,createTextVNode as c,createVNode as l,defineComponent as u,normalizeClass as d,normalizeStyle as ee,onBeforeUnmount as f,onDeactivated as p,onMounted as te,openBlock as m,ref as h,renderList as g,resolveComponent as _,toDisplayString as v,unref as y,watch as b}from"vue";import{NSlider as x}from"naive-ui";const S={initialIndex:0,showPlaylist:!0,showCover:!0,autoplay:!1,mode:`list`,theme:`default`};function C(e,t){return!Number.isFinite(e)||t<=0?0:Math.min(Math.max(Math.trunc(e),0),t-1)}const w={list:{icon:`mdi:repeat`,label:`List Loop`},loop:{icon:`mdi:repeat-once`,label:`Single Loop`},single:{icon:`mdi:numeric-1-box`,label:`Play Once`},shuffle:{icon:`mdi:shuffle-variant`,label:`Shuffle`}};function T(e){if(!Number.isFinite(e)||e<0)return`00:00`;let t=Math.floor(e/60),n=Math.floor(e%60);return`${String(t).padStart(2,`0`)}:${String(n).padStart(2,`0`)}`}const ne={class:`c-audio-player__now-playing`},re={key:0,class:`c-audio-player__cover`},ie=[`src`,`alt`],ae={class:`c-audio-player__info`},oe={class:`c-audio-player__title`},se={key:0,class:`c-audio-player__artist`},ce={key:0,class:`c-audio-player__progress`},le=[`tabindex`,`aria-valuemax`,`aria-valuenow`],ue={class:`c-audio-player__time`},de={class:`c-audio-player__controls`},fe=[`title`],pe=[`disabled`,`title`],me={key:1,class:`c-audio-player__volume`},he=[`aria-label`],ge={key:2,class:`c-audio-player__playlist`},E={class:`c-audio-player__playlist-header`},D=[`onClick`],O={class:`c-audio-player__track-index`},k={class:`c-audio-player__track-info`},A={class:`c-audio-player__track-title`},j={key:0,class:`c-audio-player__track-artist`},M={key:0,class:`c-audio-player__track-duration`};var N=t(u({__name:`index`,props:{tracks:{},initialIndex:{default:S.initialIndex},showPlaylist:{type:Boolean,default:S.showPlaylist},showCover:{type:Boolean,default:!0},autoplay:{type:Boolean,default:S.autoplay},mode:{default:S.mode},theme:{default:S.theme}},emits:[`play`,`pause`,`ended`,`modeChange`,`error`],setup(t,{emit:u}){let _=t,S=u,N=null,P=0,F=e=>Number.isInteger(e)&&!!_.tracks[e],I=(e,t)=>e===P&&t===N,L=h(C(_.initialIndex??0,_.tracks.length)),R=h(!1),z=h(0),B=h(_.tracks[L.value]?.duration??0),V=h(70),H=h(70),U=h(_.showPlaylist),W=h(_.mode??`list`),G=r(()=>_.tracks[L.value]),_e=r(()=>B.value<=0?0:Math.min(100,z.value/B.value*100)),ve=r(()=>V.value===0?`mdi:volume-off`:V.value<40?`mdi:volume-low`:V.value<70?`mdi:volume-medium`:`mdi:volume-high`),ye=r(()=>w[W.value]?.icon??`mdi:repeat`),be=r(()=>w[W.value]?.label??`循环`);function K(){P+=1,N&&(N.pause(),N.removeEventListener(`timeupdate`,q),N.removeEventListener(`loadedmetadata`,J),N.removeEventListener(`ended`,Y)),N=null,R.value=!1,z.value=0;let e=G.value;B.value=e?.duration??0,!(!e||typeof Audio>`u`)&&(N=new Audio(e.src),N.volume=V.value/100,N.addEventListener(`timeupdate`,q),N.addEventListener(`loadedmetadata`,J),N.addEventListener(`ended`,Y))}function q(){N&&(z.value=Number.isFinite(N.currentTime)?N.currentTime:0)}function J(){N&&(B.value=Number.isFinite(N.duration)?N.duration:0)}function Y(){switch(S(`ended`,L.value),W.value){case`loop`:N&&(N.currentTime=0),X(L.value,!1);break;case`single`:R.value=!1;break;case`shuffle`:_.tracks.length&&Z(Math.floor(Math.random()*_.tracks.length));break;default:if(!_.tracks.length){R.value=!1;break}Z(L.value<_.tracks.length-1?L.value+1:0)}}async function X(e,t){if(!F(e))return;(t||!N||L.value!==e)&&(L.value=e,K());let n=N;if(!n)return;let r=++P;try{if(await n.play(),!I(r,n))return;R.value=!0,S(`play`,e)}catch(e){if(!I(r,n))return;R.value=!1,S(`error`,e)}}function xe(){if(G.value){if(!R.value){X(L.value,!1);return}P+=1,N?.pause(),R.value=!1,S(`pause`)}}function Z(e){return X(e,!0)}function Se(){_.tracks.length&&Z(L.value<=0?_.tracks.length-1:L.value-1)}function Ce(){_.tracks.length&&Z(L.value>=_.tracks.length-1?0:L.value+1)}function we(e){if(!N||!B.value)return;let t=e.currentTarget.getBoundingClientRect();if(t.width<=0)return;let n=Math.max(0,Math.min(1,(e.clientX-t.left)/t.width));N.currentTime=n*B.value,z.value=N.currentTime}function Q(e){if(!N||B.value<=0)return;let t=e.key===`ArrowRight`?5:e.key===`ArrowLeft`?-5:0,n=e.key===`Home`?0:e.key===`End`?B.value:z.value+t;!t&&e.key!==`Home`&&e.key!==`End`||(e.preventDefault(),N.currentTime=Math.max(0,Math.min(B.value,n)),z.value=N.currentTime)}function Te(e){V.value=e,N&&(N.volume=e/100)}function Ee(){V.value>0?(H.value=V.value,V.value=0):V.value=H.value||70,N&&(N.volume=V.value/100)}let $=[`list`,`loop`,`single`,`shuffle`];function De(){W.value=$[($.indexOf(W.value)+1)%$.length],S(`modeChange`,W.value)}return b(()=>_.tracks,()=>{let e=R.value;L.value=C(_.initialIndex??0,_.tracks.length),K(),e&&X(L.value,!1)}),b(()=>_.initialIndex,e=>{let t=C(e??0,_.tracks.length);if(t!==L.value){let e=R.value;L.value=t,K(),e&&X(t,!1)}}),b(()=>_.mode,e=>{W.value=e}),b(()=>_.showPlaylist,e=>{U.value=e}),te(()=>{_.autoplay&&G.value&&X(L.value,!1)}),f(()=>{P+=1,N&&=(N.pause(),N.removeEventListener(`timeupdate`,q),N.removeEventListener(`loadedmetadata`,J),N.removeEventListener(`ended`,Y),null)}),p(()=>{P+=1,N?.pause(),R.value=!1}),(r,u)=>{let f=x;return m(),o(`div`,{class:d([`c-audio-player`,{"is-minimal":t.theme===`minimal`}])},[a(` ================ Now Playing ================ `),s(`div`,ne,[t.showCover?(m(),o(`div`,re,[G.value?.cover?(m(),o(`img`,{key:0,src:G.value.cover,alt:G.value.title},null,8,ie)):(m(),i(e,{key:1,name:`mdi:music-note`,class:`c-audio-player__cover-placeholder`}))])):a(`v-if`,!0),s(`div`,ae,[s(`div`,oe,v(G.value?.title??`未选择曲目`),1),G.value?.artist?(m(),o(`div`,se,v(G.value.artist),1)):a(`v-if`,!0)])]),a(` ================ Progress ================ `),t.theme===`minimal`?a(`v-if`,!0):(m(),o(`div`,ce,[s(`div`,{class:`c-audio-player__progress-bar`,role:`slider`,tabindex:G.value?0:-1,"aria-label":`播放进度`,"aria-valuemin":0,"aria-valuemax":Math.floor(B.value),"aria-valuenow":Math.floor(z.value),onClick:we,onKeydown:Q},[s(`div`,{class:`c-audio-player__progress-fill`,style:ee({width:`${_e.value}%`})},null,4)],40,le),s(`div`,ue,[s(`span`,null,v(y(T)(z.value)),1),s(`span`,null,v(y(T)(B.value)),1)])])),a(` ================ Controls ================ `),s(`div`,de,[s(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-mode`,title:be.value,onClick:De},[l(e,{name:ye.value},null,8,[`name`])],8,fe),s(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-skip`,title:`上一曲`,onClick:Se},[l(e,{name:`mdi:skip-previous`})]),s(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-play`,disabled:!G.value,title:R.value?`暂停`:`播放`,onClick:xe},[l(e,{name:R.value?`mdi:pause`:`mdi:play`},null,8,[`name`])],8,pe),s(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-skip`,title:`下一曲`,onClick:Ce},[l(e,{name:`mdi:skip-next`})]),s(`button`,{type:`button`,class:`c-audio-player__ctrl-btn is-mode`,title:`播放列表`,onClick:u[0]||=e=>U.value=!U.value},[l(e,{name:`mdi:playlist-music`})])]),a(` ================ Volume ================ `),t.theme===`minimal`?a(`v-if`,!0):(m(),o(`div`,me,[s(`button`,{type:`button`,class:`c-audio-player__volume-icon`,"aria-label":V.value===0?`取消静音`:`静音`,onClick:Ee},[l(e,{name:ve.value},null,8,[`name`])],8,he),l(f,{value:V.value,"onUpdate:value":[u[1]||=e=>V.value=e,Te],min:0,max:100,step:1,class:`c-audio-player__volume-slider`},null,8,[`value`])])),a(` ================ Playlist ================ `),t.showPlaylist&&U.value&&t.theme!==`minimal`?(m(),o(`div`,ge,[s(`div`,E,[u[2]||=s(`span`,null,`播放列表`,-1),s(`span`,null,v(t.tracks.length)+` 首`,1)]),(m(!0),o(n,null,g(t.tracks,(t,r)=>(m(),o(`button`,{key:t.id,type:`button`,class:d([`c-audio-player__track`,{"is-active":r===L.value}]),onClick:e=>Z(r)},[s(`span`,O,[r===L.value&&R.value?(m(),i(e,{key:0,name:`mdi:volume-high`})):(m(),o(n,{key:1},[c(v(r+1),1)],64))]),s(`div`,k,[s(`div`,A,v(t.title),1),t.artist?(m(),o(`div`,j,v(t.artist),1)):a(`v-if`,!0)]),t.duration?(m(),o(`span`,M,v(y(T)(t.duration)),1)):a(`v-if`,!0)],10,D))),128))])):a(`v-if`,!0)],2)}}}),[[`__scopeId`,`data-v-5ba9d24f`]]);export{T as i,S as n,w as r,N as t};
@@ -1,17 +1,17 @@
1
1
  /* unplugin-vue-components disabled *//**
2
2
  * C_AvatarGroup — 头像组组件样式
3
3
  */
4
- .c-avatar-group[data-v-b2031360] {
4
+ .c-avatar-group[data-v-df136558] {
5
5
  display: inline-flex;
6
6
  align-items: center;
7
7
  }
8
- .c-avatar-group.is-rtl[data-v-b2031360] {
8
+ .c-avatar-group.is-rtl[data-v-df136558] {
9
9
  flex-direction: row-reverse;
10
10
  }
11
- .c-avatar-group[data-v-b2031360] {
11
+ .c-avatar-group[data-v-df136558] {
12
12
  /* ======================== 单个头像 ======================== */
13
13
  }
14
- .c-avatar-group__item[data-v-b2031360] {
14
+ .c-avatar-group__item[data-v-df136558] {
15
15
  position: relative;
16
16
  flex-shrink: 0;
17
17
  border: 2px solid var(--card-color);
@@ -23,46 +23,46 @@
23
23
  cursor: default;
24
24
  z-index: 1;
25
25
  }
26
- .c-avatar-group__item[data-v-b2031360]:focus-visible {
26
+ .c-avatar-group__item[data-v-df136558]:focus-visible {
27
27
  outline: 2px solid var(--primary-color, #2080f0);
28
28
  outline-offset: 2px;
29
29
  }
30
- .c-avatar-group__item.is-circle[data-v-b2031360] {
30
+ .c-avatar-group__item.is-circle[data-v-df136558] {
31
31
  border-radius: 50%;
32
32
  }
33
- .c-avatar-group__item.is-square[data-v-b2031360] {
33
+ .c-avatar-group__item.is-square[data-v-df136558] {
34
34
  border-radius: 6px;
35
35
  }
36
- .c-avatar-group__item.is-clickable[data-v-b2031360] {
36
+ .c-avatar-group__item.is-clickable[data-v-df136558] {
37
37
  cursor: pointer;
38
38
  }
39
- .c-avatar-group__item.is-clickable[data-v-b2031360]:hover {
39
+ .c-avatar-group__item.is-clickable[data-v-df136558]:hover {
40
40
  transform: translateY(-3px) scale(1.08);
41
41
  z-index: 10;
42
42
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15);
43
43
  }
44
- .c-avatar-group__item[data-v-b2031360]:hover {
44
+ .c-avatar-group__item[data-v-df136558]:hover {
45
45
  z-index: 10;
46
46
  }
47
- .c-avatar-group[data-v-b2031360] {
47
+ .c-avatar-group[data-v-df136558] {
48
48
  /* ---- 头像图片 ---- */
49
49
  }
50
- .c-avatar-group__img[data-v-b2031360] {
50
+ .c-avatar-group__img[data-v-df136558] {
51
51
  display: block;
52
52
  width: 100%;
53
53
  height: 100%;
54
54
  object-fit: cover;
55
55
  }
56
- .is-circle .c-avatar-group__img[data-v-b2031360] {
56
+ .is-circle .c-avatar-group__img[data-v-df136558] {
57
57
  border-radius: 50%;
58
58
  }
59
- .is-square .c-avatar-group__img[data-v-b2031360] {
59
+ .is-square .c-avatar-group__img[data-v-df136558] {
60
60
  border-radius: 4px;
61
61
  }
62
- .c-avatar-group[data-v-b2031360] {
62
+ .c-avatar-group[data-v-df136558] {
63
63
  /* ---- 首字母 fallback ---- */
64
64
  }
65
- .c-avatar-group__initials[data-v-b2031360] {
65
+ .c-avatar-group__initials[data-v-df136558] {
66
66
  display: flex;
67
67
  align-items: center;
68
68
  justify-content: center;
@@ -72,16 +72,16 @@
72
72
  font-weight: 600;
73
73
  user-select: none;
74
74
  }
75
- .is-circle .c-avatar-group__initials[data-v-b2031360] {
75
+ .is-circle .c-avatar-group__initials[data-v-df136558] {
76
76
  border-radius: 50%;
77
77
  }
78
- .is-square .c-avatar-group__initials[data-v-b2031360] {
78
+ .is-square .c-avatar-group__initials[data-v-df136558] {
79
79
  border-radius: 4px;
80
80
  }
81
- .c-avatar-group[data-v-b2031360] {
81
+ .c-avatar-group[data-v-df136558] {
82
82
  /* ---- 状态指示点 ---- */
83
83
  }
84
- .c-avatar-group__status[data-v-b2031360] {
84
+ .c-avatar-group__status[data-v-df136558] {
85
85
  position: absolute;
86
86
  bottom: 0;
87
87
  right: 0;
@@ -91,10 +91,10 @@
91
91
  font: inherit;
92
92
  z-index: 2;
93
93
  }
94
- .c-avatar-group[data-v-b2031360] {
94
+ .c-avatar-group[data-v-df136558] {
95
95
  /* ======================== 溢出 +N ======================== */
96
96
  }
97
- .c-avatar-group__overflow[data-v-b2031360] {
97
+ .c-avatar-group__overflow[data-v-df136558] {
98
98
  position: relative;
99
99
  flex-shrink: 0;
100
100
  display: flex;
@@ -106,25 +106,29 @@
106
106
  font-weight: 700;
107
107
  z-index: 0;
108
108
  }
109
- .c-avatar-group__overflow[data-v-b2031360]:focus-visible {
109
+ .c-avatar-group__overflow[data-v-df136558]:focus-visible {
110
110
  outline: 2px solid var(--primary-color, #2080f0);
111
111
  outline-offset: 2px;
112
112
  }
113
- .c-avatar-group__overflow[data-v-b2031360] {
113
+ .c-avatar-group__overflow[data-v-df136558] {
114
114
  transition: transform 0.2s, box-shadow 0.2s;
115
115
  }
116
- .c-avatar-group__overflow.is-circle[data-v-b2031360] {
116
+ .c-avatar-group__overflow.is-circle[data-v-df136558] {
117
117
  border-radius: 50%;
118
118
  }
119
- .c-avatar-group__overflow.is-square[data-v-b2031360] {
119
+ .c-avatar-group__overflow.is-square[data-v-df136558] {
120
120
  border-radius: 6px;
121
121
  }
122
- .c-avatar-group__overflow.is-clickable[data-v-b2031360] {
122
+ .c-avatar-group__overflow.is-clickable[data-v-df136558] {
123
123
  cursor: pointer;
124
124
  }
125
- .c-avatar-group__overflow.is-clickable[data-v-b2031360]:hover {
125
+ .c-avatar-group__overflow.is-clickable[data-v-df136558]:hover {
126
126
  transform: translateY(-3px) scale(1.08);
127
127
  z-index: 10;
128
128
  box-shadow: 0 4px 12px rgba(0, 0, 0, 0.12);
129
129
  background: color-mix(in srgb, var(--primary-color) 20%, var(--card-color));
130
130
  }
131
+ /* unplugin-vue-components disabled */
132
+ /* layer: default */
133
+ .px[data-v-df136558]{padding-left:1rem;padding-right:1rem;}
134
+