a simple web player for subsonic
tinysub.devins.page
subsonic
navidrome
javascript
1// css classes and ui constants
2
3const CLASSES = {
4 CONTEXT_MENU_ITEM: "context-menu-item",
5 CURRENTLY_PLAYING: "currently-playing",
6 DISABLED: "disabled",
7 DRAG_OVER_ABOVE: "drag-over-above",
8 DRAG_OVER_BELOW: "drag-over-below",
9 DRAGGING: "dragging",
10 ERROR: "error",
11 FAVORITED: "favorited",
12 NESTED_SONGS: "nested-songs",
13 NESTED: "nested",
14 QUEUE_CLEAR: "queue-clear",
15 QUEUE_COVER: "queue-cover",
16 QUEUE_FAVORITE: "queue-favorite",
17 QUEUE_MOVE_DOWN: "queue-move-down",
18 QUEUE_MOVE_UP: "queue-move-up",
19 QUEUE_PLAY_NEXT: "queue-play-next",
20 QUEUE_PLAY: "queue-play",
21 SELECTED: "selected",
22 TREE_ITEM: "tree-item",
23 TREE_NAME: "tree-name",
24 TREE_TOGGLE: "tree-toggle",
25};
26
27const DATA_ATTRS = {
28 INDEX: "data-index",
29};
30
31const DOM_IDS = {
32 AUTH_ERROR: "auth-error",
33 AUTH_MODAL: "auth-modal",
34 CLEAR_BTN: "clear-btn",
35 CONTEXT_MENU: "context-menu",
36 COVER_ART: "cover-art",
37 LIBRARY_TREE: "artists-tree",
38 LOGIN_FORM: "login-form",
39 LOOP_BTN: "loop-btn",
40 NEXT_BTN: "next-btn",
41 PASSWORD_INPUT: "password",
42 PLAY_BTN: "play-btn",
43 PLAYER: "player",
44 PLAYLISTS_TREE: "playlists-tree",
45 PREV_BTN: "prev-btn",
46 PROGRESS: "progress",
47 QUEUE_COUNT: "queue-count",
48 QUEUE_LIST: "queue-list",
49 QUEUE_TABLE: "queue-table",
50 SECTION_TOGGLE: "section-toggle",
51 SERVER_INPUT: "server",
52 SETTINGS_BTN: "settings-btn",
53 SETTINGS_MODAL: "settings-modal",
54 SORT_BTN: "sort-btn",
55 TIME_DISPLAY: "time-display",
56 TRACK_ARTIST: "track-artist",
57 TRACK_LYRIC: "track-lyric",
58 TRACK_TITLE: "track-title",
59 USERNAME_INPUT: "username",
60};
61
62const ICONS = {
63 ADD: document.getElementById("icon-add").src,
64 ARROW_DOWN: document.getElementById("icon-arrow_down").src,
65 ARROW_SWITCH: document.getElementById("icon-arrow_switch").src,
66 ARROW_UP: document.getElementById("icon-arrow_up").src,
67 CD: document.getElementById("icon-cd").src,
68 COG: document.getElementById("icon-cog").src,
69 CONTROL_FASTFORWARD: document.getElementById("icon-control_fastforward").src,
70 CONTROL_PAUSE: document.getElementById("icon-control_pause").src,
71 CONTROL_PLAY: document.getElementById("icon-control_play").src,
72 CONTROL_REPEAT: document.getElementById("icon-control_repeat").src,
73 CONTROL_REWIND: document.getElementById("icon-control_rewind").src,
74 CROSS: document.getElementById("icon-cross").src,
75 HEART: document.getElementById("icon-heart").src,
76 STAR: document.getElementById("icon-star").src,
77 USER: document.getElementById("icon-user").src,
78 TINYSUB: document.getElementById("icon-tinysub").src,
79};