PageSourceSearch

https://gv-lastfm-playground.vercel.app/js/swiper.js

js gv-lastfm-playground.vercel.app collected 2026-10-03 07:02:26 UTC 6,860 bytes, 246 lines download raw bytes

1let devSpeed = () => {
2  if (location.hostname === "localhost" || location.hostname === "127.0.0.1") {
3    return 667;
4  } else {
5    return 667;
6  }
7};
8
9// Chapter 2
10const chapterTwoIds = [
11  "slide_02_01_01",
12  "slide_02_02_01",
13  "slide_02_03_01",
14  "slide_02_04_01",
15];
16let chapterTwoData = dummyData.catalogue_items;
17
18if (!chapterTwoData || chapterTwoData === null) {
19  chapterTwoIds.forEach((chapter) => {
20    document.getElementById(chapter).remove();
21  });
22} else {
23  if (!chapterTwoData.artists.total) {
24    document.getElementById("slide_02_01_01").remove();
25  }
26  if (!chapterTwoData.albums.total) {
27    document.getElementById("slide_02_02_01").remove();
28  }
29  if (!chapterTwoData.tracks.total) {
30    document.getElementById("slide_02_03_01").remove();
31  }
32  if (!dummyData.scrobble_stats && !dummyData.scrobble_stats.total_scrobbles) {
33    document.getElementById("slide_02_04_01").remove();
34  }
35}
36
37// Chapter 3
38const chapterThreeIds = [
39  "slide_03_01_01",
40  "slide_03_02_01",
41  "slide_03_03_01",
42  "slide_03_04_01",
43];
44let chapterThreeData = dummyData.scrobble_stats.listening_time;
45
46if (!chapterThreeData) {
47  chapterThreeIds.forEach((chapter) => {
48    document.getElementById(chapter).remove();
49  });
50}
51
52// Chapter 4
53const chapterFourIds = [
54  "slide_04_01_01",
55  "slide_04_02_01",
56  "slide_04_02_02",
57  "slide_04_03_01",
58  "slide_04_03_02",
59  "slide_04_04_01",
60  "slide_04_04_02",
61];
62let chapterFourData = dummyData.top_100_listener;
63
64if (!chapterFourData) {
65  chapterFourIds.forEach((chapter) => {
66    document.getElementById(chapter).remove();
67  });
68} else {
69  if (!chapterFourData.artist) {
70    document.getElementById("slide_04_02_01").remove();
71    document.getElementById("slide_04_02_02").remove();
72  }
73  if (!chapterFourData.album) {
74    document.getElementById("slide_04_03_01").remove();
75    document.getElementById("slide_04_03_02").remove();
76  }
77  if (!chapterFourData.track) {
78    document.getElementById("slide_04_04_01").remove();
79    document.getElementById("slide_04_04_02").remove();
80  }
81}
82
83// Chapter 5
84const chapterFiveIds = [
85  "slide_05_01_01",
86  "slide_05_02_01",
87  "slide_05_03_01",
88  "slide_05_04_01",
89];
90let chapterFiveTwoData = dummyData["monthly_top_tags"];
91let chapterFiveThreeDataTwo = dummyData["weekly_listening_clock"];
92let chapterFiveFourData =
93  dummyData.biggest_day &&
94  (dummyData.biggest_day.scrobble_clock ||
95    dummyData.biggest_day.unique_artist_clock ||
96    dummyData.biggest_day.unique_album_clock ||
97    dummyData.biggest_day.unique_track_clock);
98
99if (!chapterFiveTwoData && !chapterFiveThreeDataTwo && !chapterFiveFourData) {
100  chapterFiveIds.forEach((chapter) => {
101    document.getElementById(chapter).remove();
102  });
103} else {
104  if (!chapterFiveTwoData) {
105    document.getElementById("slide_05_02_01").remove();
106  }
107  if (!chapterFiveThreeDataTwo || !chapterFiveThreeDataTwo.hours_each_week) {
108    document.getElementById("slide_05_03_01").remove();
109  }
110  if (!chapterFiveFourData) {
111    document.getElementById("slide_05_04_01").remove();
112  }
113}
114
115// Chapter 6
116const chapterSixIds = [
117  "slide_06_01_01", //top artist intro
118  "slide_06_02_02", //top artist
119  "slide_06_03_01", //bubble chart
120  "slide_06_04_01", //top album intro
121  "slide_06_04_02", //top album
122  "slide_06_05_01", //quilt
123  "slide_06_06_02", //top track
124  "slide_06_07_01", //top 5 tracks
125];
126
127const chapterSixTwoData =
128  dummyData.top_item_charts && dummyData.top_item_charts.top_artists;
129const chapterSixThreeData =
130  dummyData.top_item_charts && dummyData.top_item_charts.top_artists;
131const chapterSixFourData =
132  dummyData.top_item_charts && dummyData.top_item_charts.top_albums;
133const chapterSixFiveData =
134  dummyData.top_item_charts && dummyData.top_item_charts.top_albums;
135const chapterSixSixData =
136  dummyData.top_item_charts && dummyData.top_item_charts.top_tracks;
137const chapterSixSevenData =
138  dummyData.top_item_charts && dummyData.top_item_charts.top_tracks;
139
140if (
141  !chapterSixTwoData &&
142  !chapterSixThreeData &&
143  !chapterSixFourData &&
144  !chapterSixFiveData &&
145  !chapterSixSixData &&
146  !chapterSixSevenData
147) {
148  chapterSixIds.forEach((chapter) => {
149    document.getElementById(chapter).remove();
150  });
151} else {
152  if (!chapterSixTwoData) {
153    document.getElementById("slide_06_01_01").remove();
154    document.getElementById("slide_06_01_02").remove();
155  }
156  if (!chapterSixThreeData) {
157    document.getElementById("slide_06_03_01").remove();
158    document.getElementById("slide_06_03_02").remove();
159  }
160  if (!chapterSixFourData) {
161    document.getElementById("slide_06_04_01").remove();
162    document.getElementById("slide_06_04_02").remove();
163  }
164  if (!chapterSixFiveData) {
165    document.getElementById("slide_06_05_01").remove();
166  }
167  if (!chapterSixSixData) {
168    document.getElementById("slide_06_06_02").remove();
169  }
170  if (!chapterSixSevenData) {
171    document.getElementById("slide_06_07_01").remove();
172  }
173}
174
175// Chapter 7
176const chapterSevenIds = ["slide_07_01_02"];
177
178const chapterSevenData =
179  dummyData.scrobble_stats &&
180  dummyData.catalogue_items &&
181  dummyData.catalogue_items.tracks &&
182  dummyData.catalogue_items.albums &&
183  dummyData.catalogue_items.artists &&
184  dummyData.top_item_charts;
185
186if (!chapterSevenData) {
187  document.getElementById("slide_07_01_02").remove();
188}
189
190let swiper = new Swiper(".main-slider", {
191  direction: "vertical",
192  speed: devSpeed(),
193  slidesPerView: 1,
194  initialSlide: 0,
195  spaceBetween: 0,
196  loop: false,
197  delay: 333,
198  threshold: 5,
199  init: false,
200  virtual: true,
201  mousewheel: {
202    releaseOnEdges: false,
203    thresholdTime: 2000,
204  },
205  keyboard: {
206    enabled: true,
207  },
208  navigation: {
209    nextEl: ".swiper-next-button",
210    prevEl: ".swiper-prev-button",
211  },
212});
213
214let updatePagination = (swiper) => {
215  let swiperSlides = Array.from(swiper.virtual.slides).filter((item) =>
216    item.querySelector(".pagination") !== null ? item : null
217  );
218  let paginations = Array.from(document.getElementsByClassName("pagination"));
219
220  let paginationFragment = (index) =>
221    `<div class="pagination-fragment">${index} of ${swiperSlides.length}</div>`;
222
223  // find a way to get the correct position from the swiperSlides array
224  let paginationDots = (index) => {
225    let dots = swiperSlides
226      .map((element, slideIndex) => {
227        let isActive = index === slideIndex ? "active" : "not-active";
228        return `<span class=${isActive} onclick='swiper.slideTo(${element.dataset.swiperSlideIndex}, 1000, false)'></span>`;
229      })
230      .join(" ");
231
232    return `<div class="pagination-dots">${dots}</div>`;
233  };
234
235  paginations.forEach((item) => {
236    let index = swiperSlides.indexOf(item.closest(".swiper-slide"));
237    let fragment = paginationFragment(index + 1);
238    let dots = paginationDots(index);
239    let pagination = dots + fragment;
240    item.innerHTML = pagination;
241  });
242};
243
244swiper.on("slideChangeTransitionEnd", (swiper) => {
245  updatePagination(swiper);
246});

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.