Forráskód Böngészése

ref: remove whitespace-only lines

Sv443 7 hónapja
szülő
commit
c6db570558

+ 7 - 7
.dependency-cruiser.cjs

@@ -1,4 +1,4 @@
-/** @type {import('dependency-cruiser').IConfiguration} */
+/** @type {import("dependency-cruiser").IConfiguration} */
 module.exports = {
 module.exports = {
   forbidden: [
   forbidden: [
     {
     {
@@ -125,7 +125,7 @@ module.exports = {
     },
     },
 
 
     /* rules you might want to tweak for your specific situation: */
     /* rules you might want to tweak for your specific situation: */
-    
+
     {
     {
       name: "not-to-spec",
       name: "not-to-spec",
       comment:
       comment:
@@ -220,11 +220,11 @@ module.exports = {
        module systems it knows of. It's the default because it's the safe option
        module systems it knows of. It's the default because it's the safe option
        It might come at a performance penalty, though.
        It might come at a performance penalty, though.
        moduleSystems: ['amd', 'cjs', 'es6', 'tsd']
        moduleSystems: ['amd', 'cjs', 'es6', 'tsd']
-      
+
        As in practice only commonjs ('cjs') and ecmascript modules ('es6')
        As in practice only commonjs ('cjs') and ecmascript modules ('es6')
        are widely used, you can limit the moduleSystems to those.
        are widely used, you can limit the moduleSystems to those.
      */
      */
-    
+
     // moduleSystems: ['cjs', 'es6'],
     // moduleSystems: ['cjs', 'es6'],
 
 
     /* prefix for links in html and svg output (e.g. 'https://github.com/you/yourrepo/blob/main/'
     /* prefix for links in html and svg output (e.g. 'https://github.com/you/yourrepo/blob/main/'
@@ -238,7 +238,7 @@ module.exports = {
        "specify": for each dependency identify whether it only exists before compilation or also after
        "specify": for each dependency identify whether it only exists before compilation or also after
      */
      */
     tsPreCompilationDeps: true,
     tsPreCompilationDeps: true,
-    
+
     /* list of extensions to scan that aren't javascript or compile-to-javascript.
     /* list of extensions to scan that aren't javascript or compile-to-javascript.
        Empty by default. Only put extensions in here that you want to take into
        Empty by default. Only put extensions in here that you want to take into
        account that are _not_ parsable.
        account that are _not_ parsable.
@@ -295,7 +295,7 @@ module.exports = {
        a hack.
        a hack.
     */
     */
     // exoticRequireStrings: [],
     // exoticRequireStrings: [],
-    
+
     /* options to pass on to enhanced-resolve, the package dependency-cruiser
     /* options to pass on to enhanced-resolve, the package dependency-cruiser
        uses to resolve module references to disk. The values below should be
        uses to resolve module references to disk. The values below should be
        suitable for most situations
        suitable for most situations
@@ -325,7 +325,7 @@ module.exports = {
          See [this specification](https://github.com/defunctzombie/package-browser-field-spec) and
          See [this specification](https://github.com/defunctzombie/package-browser-field-spec) and
          the webpack [resolve.alias](https://webpack.js.org/configuration/resolve/#resolvealiasfields)
          the webpack [resolve.alias](https://webpack.js.org/configuration/resolve/#resolvealiasfields)
          documentation 
          documentation 
-         
+
          Defaults to an empty array (= don't use alias fields).
          Defaults to an empty array (= don't use alias fields).
        */
        */
       // aliasFields: ["browser"],
       // aliasFields: ["browser"],

+ 1 - 1
assets/translations/de_DE.json

@@ -267,7 +267,7 @@
     "feature_desc_setInitialTabVolume": "Setze den Lautstärkepegel auf einen bestimmten Wert, wenn die Seite geöffnet wird",
     "feature_desc_setInitialTabVolume": "Setze den Lautstärkepegel auf einen bestimmten Wert, wenn die Seite geöffnet wird",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "Diese Funktion ist mit der Funktion \"Lautstärke zwischen Tabs teilen\" nicht kompatibel und wird ignoriert, während die Funktion zum Teilen der Lautstärke aktiviert ist.",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "Diese Funktion ist mit der Funktion \"Lautstärke zwischen Tabs teilen\" nicht kompatibel und wird ignoriert, während die Funktion zum Teilen der Lautstärke aktiviert ist.",
     "feature_desc_initialTabVolumeLevel": "Der Wert, auf den die Lautstärke eingestellt werden soll, wenn die Seite geöffnet wird",
     "feature_desc_initialTabVolumeLevel": "Der Wert, auf den die Lautstärke eingestellt werden soll, wenn die Seite geöffnet wird",
-  
+
     "feature_desc_lyricsQueueButton": "Füge einen Knopf zu jedem Song in einer Liste hinzu, um die Songtext-Seite zu öffnen",
     "feature_desc_lyricsQueueButton": "Füge einen Knopf zu jedem Song in einer Liste hinzu, um die Songtext-Seite zu öffnen",
     "feature_desc_deleteFromQueueButton": "Füge einen Knopf zu jedem Song in einer Liste hinzu, um ihn schnell zu entfernen",
     "feature_desc_deleteFromQueueButton": "Füge einen Knopf zu jedem Song in einer Liste hinzu, um ihn schnell zu entfernen",
     "feature_desc_listButtonsPlacement": "Wo sollen die Listen-Knöpfe erscheinen?",
     "feature_desc_listButtonsPlacement": "Wo sollen die Listen-Knöpfe erscheinen?",

+ 1 - 1
assets/translations/en_US.json

@@ -267,7 +267,7 @@
     "feature_desc_setInitialTabVolume": "Sets the volume level to a specific value once when opening the site",
     "feature_desc_setInitialTabVolume": "Sets the volume level to a specific value once when opening the site",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "This feature is incompatible with the \"Volume level shared between tabs\" feature and will be ignored while using the shared volume feature!",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "This feature is incompatible with the \"Volume level shared between tabs\" feature and will be ignored while using the shared volume feature!",
     "feature_desc_initialTabVolumeLevel": "The value to set the volume level to when opening the site",
     "feature_desc_initialTabVolumeLevel": "The value to set the volume level to when opening the site",
-  
+
     "feature_desc_lyricsQueueButton": "Add a button to each song in a list to open its lyrics page",
     "feature_desc_lyricsQueueButton": "Add a button to each song in a list to open its lyrics page",
     "feature_desc_deleteFromQueueButton": "Add a button to each song in a list to quickly remove it",
     "feature_desc_deleteFromQueueButton": "Add a button to each song in a list to quickly remove it",
     "feature_desc_listButtonsPlacement": "Where should the list buttons show up?",
     "feature_desc_listButtonsPlacement": "Where should the list buttons show up?",

+ 1 - 1
assets/translations/es_ES.json

@@ -267,7 +267,7 @@
     "feature_desc_setInitialTabVolume": "Establece el nivel de volumen en un valor específico una vez al abrir el sitio",
     "feature_desc_setInitialTabVolume": "Establece el nivel de volumen en un valor específico una vez al abrir el sitio",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "Esta función es incompatible con la función \"Volumen compartido entre pestañas\" y se ignorará mientras se use la función de volumen compartido!",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "Esta función es incompatible con la función \"Volumen compartido entre pestañas\" y se ignorará mientras se use la función de volumen compartido!",
     "feature_desc_initialTabVolumeLevel": "El valor para establecer el nivel de volumen al abrir el sitio",
     "feature_desc_initialTabVolumeLevel": "El valor para establecer el nivel de volumen al abrir el sitio",
-  
+
     "feature_desc_lyricsQueueButton": "Agregue un botón a cada canción en una lista para abrir su página de letras",
     "feature_desc_lyricsQueueButton": "Agregue un botón a cada canción en una lista para abrir su página de letras",
     "feature_desc_deleteFromQueueButton": "Agregue un botón a cada canción en una lista para eliminarla rápidamente",
     "feature_desc_deleteFromQueueButton": "Agregue un botón a cada canción en una lista para eliminarla rápidamente",
     "feature_desc_listButtonsPlacement": "¿Dónde deberían aparecer los botones de la lista?",
     "feature_desc_listButtonsPlacement": "¿Dónde deberían aparecer los botones de la lista?",

+ 1 - 1
assets/translations/fr_FR.json

@@ -267,7 +267,7 @@
     "feature_desc_setInitialTabVolume": "Définir le niveau de volume sur une valeur spécifique une fois lors de l'ouverture du site",
     "feature_desc_setInitialTabVolume": "Définir le niveau de volume sur une valeur spécifique une fois lors de l'ouverture du site",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "Cette fonctionnalité est incompatible avec la fonctionnalité \"Niveau de volume partagé entre les onglets\" et sera ignorée lors de l'utilisation de la fonctionnalité de volume partagé!",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "Cette fonctionnalité est incompatible avec la fonctionnalité \"Niveau de volume partagé entre les onglets\" et sera ignorée lors de l'utilisation de la fonctionnalité de volume partagé!",
     "feature_desc_initialTabVolumeLevel": "La valeur à définir pour le niveau de volume lors de l'ouverture du site",
     "feature_desc_initialTabVolumeLevel": "La valeur à définir pour le niveau de volume lors de l'ouverture du site",
-  
+
     "feature_desc_lyricsQueueButton": "Ajouter un bouton à chaque chanson dans une liste pour ouvrir sa page de paroles",
     "feature_desc_lyricsQueueButton": "Ajouter un bouton à chaque chanson dans une liste pour ouvrir sa page de paroles",
     "feature_desc_deleteFromQueueButton": "Ajouter un bouton à chaque chanson dans une liste pour la supprimer rapidement",
     "feature_desc_deleteFromQueueButton": "Ajouter un bouton à chaque chanson dans une liste pour la supprimer rapidement",
     "feature_desc_listButtonsPlacement": "Où les boutons de liste doivent-ils apparaître?",
     "feature_desc_listButtonsPlacement": "Où les boutons de liste doivent-ils apparaître?",

+ 1 - 1
assets/translations/hi_IN.json

@@ -267,7 +267,7 @@
     "feature_desc_setInitialTabVolume": "साइट खोलने पर वॉल्यूम स्तर को एक विशिष्ट मान पर सेट करें",
     "feature_desc_setInitialTabVolume": "साइट खोलने पर वॉल्यूम स्तर को एक विशिष्ट मान पर सेट करें",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "यह सुविधा \"टैब के बीच साझा वॉल्यूम स्तर\" सुविधा के साथ असंगत है और साझा वॉल्यूम सुविधा का उपयोग करते समय नजरअंदाज किया जाएगा!",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "यह सुविधा \"टैब के बीच साझा वॉल्यूम स्तर\" सुविधा के साथ असंगत है और साझा वॉल्यूम सुविधा का उपयोग करते समय नजरअंदाज किया जाएगा!",
     "feature_desc_initialTabVolumeLevel": "साइट खोलने पर वॉल्यूम स्तर को सेट करने के लिए मान",
     "feature_desc_initialTabVolumeLevel": "साइट खोलने पर वॉल्यूम स्तर को सेट करने के लिए मान",
-  
+
     "feature_desc_lyricsQueueButton": "प्रत्येक गीत में एक बटन जोड़ें जो इसके बोल वेबपृष्ठ को खोलता है",
     "feature_desc_lyricsQueueButton": "प्रत्येक गीत में एक बटन जोड़ें जो इसके बोल वेबपृष्ठ को खोलता है",
     "feature_desc_deleteFromQueueButton": "प्रत्येक गीत में एक बटन जोड़ें जो इसे त्वरित रूप से कतार से हटाता है",
     "feature_desc_deleteFromQueueButton": "प्रत्येक गीत में एक बटन जोड़ें जो इसे त्वरित रूप से कतार से हटाता है",
     "feature_desc_listButtonsPlacement": "कतार में बटन कहाँ दिखाएं?",
     "feature_desc_listButtonsPlacement": "कतार में बटन कहाँ दिखाएं?",

+ 1 - 1
assets/translations/ja_JA.json

@@ -266,7 +266,7 @@
     "feature_desc_setInitialTabVolume": "サイトを開いたときに音量レベルを特定の値に設定する",
     "feature_desc_setInitialTabVolume": "サイトを開いたときに音量レベルを特定の値に設定する",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "この機能は「タブ間で音量を共有する」機能と互換性がなく、共有音量機能を使用している間は無視されます!",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "この機能は「タブ間で音量を共有する」機能と互換性がなく、共有音量機能を使用している間は無視されます!",
     "feature_desc_initialTabVolumeLevel": "サイトを開いたときに音量レベルを設定する値",
     "feature_desc_initialTabVolumeLevel": "サイトを開いたときに音量レベルを設定する値",
-  
+
     "feature_desc_lyricsQueueButton": "リスト内の各曲にボタンを追加して、歌詞ページを開く",
     "feature_desc_lyricsQueueButton": "リスト内の各曲にボタンを追加して、歌詞ページを開く",
     "feature_desc_deleteFromQueueButton": "リスト内の各曲にボタンを追加して、すばやく削除する",
     "feature_desc_deleteFromQueueButton": "リスト内の各曲にボタンを追加して、すばやく削除する",
     "feature_desc_listButtonsPlacement": "リストボタンの配置場所",
     "feature_desc_listButtonsPlacement": "リストボタンの配置場所",

+ 1 - 1
assets/translations/pt_BR.json

@@ -267,7 +267,7 @@
     "feature_desc_setInitialTabVolume": "Definir o nível de volume para um valor específico ao abrir o site",
     "feature_desc_setInitialTabVolume": "Definir o nível de volume para um valor específico ao abrir o site",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "Este recurso é incompatível com o recurso \"Volume compartilhado entre guias\" e será ignorado ao usar o recurso de volume compartilhado!",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "Este recurso é incompatível com o recurso \"Volume compartilhado entre guias\" e será ignorado ao usar o recurso de volume compartilhado!",
     "feature_desc_initialTabVolumeLevel": "O valor para definir o nível de volume ao abrir o site",
     "feature_desc_initialTabVolumeLevel": "O valor para definir o nível de volume ao abrir o site",
-  
+
     "feature_desc_lyricsQueueButton": "Adicionar um botão a cada música em uma lista para abrir sua página de letras",
     "feature_desc_lyricsQueueButton": "Adicionar um botão a cada música em uma lista para abrir sua página de letras",
     "feature_desc_deleteFromQueueButton": "Adicionar um botão a cada música em uma lista para removê-la rapidamente",
     "feature_desc_deleteFromQueueButton": "Adicionar um botão a cada música em uma lista para removê-la rapidamente",
     "feature_desc_listButtonsPlacement": "Onde os botões da lista devem aparecer?",
     "feature_desc_listButtonsPlacement": "Onde os botões da lista devem aparecer?",

+ 1 - 1
assets/translations/zh_CN.json

@@ -267,7 +267,7 @@
     "feature_desc_setInitialTabVolume": "打开网站时将音量级别设置为特定值",
     "feature_desc_setInitialTabVolume": "打开网站时将音量级别设置为特定值",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "此功能与 \"音量级别在标签页之间共享\" 功能不兼容,将在使用共享音量功能时被忽略!",
     "feature_warning_setInitialTabVolume_volumeSharedBetweenTabs_incompatible": "此功能与 \"音量级别在标签页之间共享\" 功能不兼容,将在使用共享音量功能时被忽略!",
     "feature_desc_initialTabVolumeLevel": "打开网站时将音量级别设置为的值",
     "feature_desc_initialTabVolumeLevel": "打开网站时将音量级别设置为的值",
-  
+
     "feature_desc_lyricsQueueButton": "在每首歌曲的列表中添加一个按钮,以打开其歌词页面",
     "feature_desc_lyricsQueueButton": "在每首歌曲的列表中添加一个按钮,以打开其歌词页面",
     "feature_desc_deleteFromQueueButton": "在每首歌曲的列表中添加一个按钮,以快速删除它",
     "feature_desc_deleteFromQueueButton": "在每首歌曲的列表中添加一个按钮,以快速删除它",
     "feature_desc_listButtonsPlacement": "列表按钮应该显示在哪里?",
     "feature_desc_listButtonsPlacement": "列表按钮应该显示在哪里?",

+ 1 - 1
src/dialogs/autoLike.ts

@@ -50,7 +50,7 @@ export async function getAutoLikeDialog() {
 
 
     autoLikeDialog.on("close", () => emitSiteEvent("autoLikeChannelsUpdated"));
     autoLikeDialog.on("close", () => emitSiteEvent("autoLikeChannelsUpdated"));
   }
   }
-  
+
   if(!autoLikeImExDialog) {
   if(!autoLikeImExDialog) {
     autoLikeImExDialog = new ExImDialog({
     autoLikeImExDialog = new ExImDialog({
       id: "auto-like-channels-export-import",
       id: "auto-like-channels-export-import",

+ 1 - 1
src/dialogs/changelog.ts

@@ -30,7 +30,7 @@ export async function getChangelogDialog() {
         anchor.ariaLabel = anchor.title = anchor.href;
         anchor.ariaLabel = anchor.title = anchor.href;
         anchor.target = "_blank";
         anchor.target = "_blank";
       }
       }
-  
+
       const firstDetails = mdContElem.querySelector<HTMLDetailsElement>("details");
       const firstDetails = mdContElem.querySelector<HTMLDetailsElement>("details");
       if(firstDetails)
       if(firstDetails)
         firstDetails.open = true;
         firstDetails.open = true;

+ 2 - 2
src/features/input.ts

@@ -40,9 +40,9 @@ export async function initArrowKeySkip() {
       skipBy *= -1;
       skipBy *= -1;
 
 
     log(`Captured arrow key '${evt.code}' - skipping by ${skipBy} seconds`);
     log(`Captured arrow key '${evt.code}' - skipping by ${skipBy} seconds`);
-    
+
     const vidElem = getVideoElement();
     const vidElem = getVideoElement();
-    
+
     if(vidElem)
     if(vidElem)
       vidElem.currentTime = clamp(vidElem.currentTime + skipBy, 0, vidElem.duration);
       vidElem.currentTime = clamp(vidElem.currentTime + skipBy, 0, vidElem.duration);
   });
   });

+ 7 - 7
src/features/layout.ts

@@ -572,13 +572,13 @@ export async function initThumbnailOverlay() {
           indicatorElem.style.display = "none";
           indicatorElem.style.display = "none";
           indicatorElem.style.opacity = String(getFeature("thumbnailOverlayIndicatorOpacity") / 100);
           indicatorElem.style.opacity = String(getFeature("thumbnailOverlayIndicatorOpacity") / 100);
         }
         }
-      
+
         const thumbImgElem = document.createElement("img");
         const thumbImgElem = document.createElement("img");
         thumbImgElem.id = "bytm-thumbnail-overlay-img";
         thumbImgElem.id = "bytm-thumbnail-overlay-img";
         thumbImgElem.role = "presentation";
         thumbImgElem.role = "presentation";
         thumbImgElem.ariaHidden = "true";
         thumbImgElem.ariaHidden = "true";
         thumbImgElem.style.objectFit = getFeature("thumbnailOverlayImageFit");
         thumbImgElem.style.objectFit = getFeature("thumbnailOverlayImageFit");
-      
+
         overlayElem.appendChild(thumbImgElem);
         overlayElem.appendChild(thumbImgElem);
         playerEl.appendChild(overlayElem);
         playerEl.appendChild(overlayElem);
         indicatorElem && playerEl.appendChild(indicatorElem);
         indicatorElem && playerEl.appendChild(indicatorElem);
@@ -595,7 +595,7 @@ export async function initThumbnailOverlay() {
           applyThumbUrl(params.get("v")!);
           applyThumbUrl(params.get("v")!);
           updateOverlayVisibility();
           updateOverlayVisibility();
         }
         }
-      
+
         // toggle button
         // toggle button
         if(toggleBtnShown) {
         if(toggleBtnShown) {
           const toggleBtnElem = createRipple(document.createElement("a"));
           const toggleBtnElem = createRipple(document.createElement("a"));
@@ -603,19 +603,19 @@ export async function initThumbnailOverlay() {
           toggleBtnElem.role = "button";
           toggleBtnElem.role = "button";
           toggleBtnElem.tabIndex = 0;
           toggleBtnElem.tabIndex = 0;
           toggleBtnElem.classList.add("ytmusic-player-bar", "bytm-generic-btn", "bytm-no-select");
           toggleBtnElem.classList.add("ytmusic-player-bar", "bytm-generic-btn", "bytm-no-select");
-      
+
           onInteraction(toggleBtnElem, (e) => {
           onInteraction(toggleBtnElem, (e) => {
             if(e.shiftKey)
             if(e.shiftKey)
               return openInTab(toggleBtnElem.href, false);
               return openInTab(toggleBtnElem.href, false);
             invertOverlay = !invertOverlay;
             invertOverlay = !invertOverlay;
             updateOverlayVisibility();
             updateOverlayVisibility();
           });
           });
-      
+
           const imgElem = document.createElement("img");
           const imgElem = document.createElement("img");
           imgElem.classList.add("bytm-generic-btn-img");
           imgElem.classList.add("bytm-generic-btn-img");
-      
+
           toggleBtnElem.appendChild(imgElem);
           toggleBtnElem.appendChild(imgElem);
-      
+
           addSelectorListener("playerBarMiddleButtons", "ytmusic-like-button-renderer#like-button-renderer", {
           addSelectorListener("playerBarMiddleButtons", "ytmusic-like-button-renderer#like-button-renderer", {
             listener: (likeContainer) => likeContainer.insertAdjacentElement("afterend", toggleBtnElem),
             listener: (likeContainer) => likeContainer.insertAdjacentElement("afterend", toggleBtnElem),
           });
           });

+ 1 - 1
src/features/songLists.ts

@@ -136,7 +136,7 @@ async function addQueueButtons(
         const songInfo = queueItem.querySelector<HTMLElement>(".song-info");
         const songInfo = queueItem.querySelector<HTMLElement>(".song-info");
         if(!songInfo)
         if(!songInfo)
           return;
           return;
-      
+
         const [songEl, artistEl] = songInfo.querySelectorAll<HTMLElement>("yt-formatted-string");
         const [songEl, artistEl] = songInfo.querySelectorAll<HTMLElement>("yt-formatted-string");
         song = songEl?.textContent;
         song = songEl?.textContent;
         artist = artistEl?.textContent;
         artist = artistEl?.textContent;

+ 6 - 6
src/menu/menu_old.ts

@@ -218,9 +218,9 @@ async function mountCfgMenu() {
           let newData = JSON.parse(JSON.stringify(parsed.data));
           let newData = JSON.parse(JSON.stringify(parsed.data));
           const sortedMigrations = Object.entries(migrations)
           const sortedMigrations = Object.entries(migrations)
             .sort(([a], [b]) => Number(a) - Number(b));
             .sort(([a], [b]) => Number(a) - Number(b));
-  
+
           let curFmtVer = Number(parsed.formatVersion);
           let curFmtVer = Number(parsed.formatVersion);
-  
+
           for(const [fmtVer, migrationFunc] of sortedMigrations) {
           for(const [fmtVer, migrationFunc] of sortedMigrations) {
             const ver = Number(fmtVer);
             const ver = Number(fmtVer);
             if(curFmtVer < formatVersion && curFmtVer < ver) {
             if(curFmtVer < formatVersion && curFmtVer < ver) {
@@ -239,9 +239,9 @@ async function mountCfgMenu() {
         }
         }
         else if(parsed.formatVersion !== formatVersion)
         else if(parsed.formatVersion !== formatVersion)
           return await showPrompt({ type: "alert", message: t("import_error_wrong_format_version", formatVersion, parsed.formatVersion) });
           return await showPrompt({ type: "alert", message: t("import_error_wrong_format_version", formatVersion, parsed.formatVersion) });
-  
+
         await setFeatures({ ...getFeatures(), ...parsed.data });
         await setFeatures({ ...getFeatures(), ...parsed.data });
-  
+
         if(await showPrompt({ type: "confirm", message: t("import_success_confirm_reload") })) {
         if(await showPrompt({ type: "confirm", message: t("import_success_confirm_reload") })) {
           disableBeforeUnload();
           disableBeforeUnload();
           return location.reload();
           return location.reload();
@@ -891,7 +891,7 @@ export function closeCfgMenu(evt?: MouseEvent | KeyboardEvent, enableScroll = tr
   const menuBg = document.querySelector<HTMLElement>("#bytm-cfg-menu-bg");
   const menuBg = document.querySelector<HTMLElement>("#bytm-cfg-menu-bg");
 
 
   clearTimeout(hiddenCopiedTxtTimeout);
   clearTimeout(hiddenCopiedTxtTimeout);
-  
+
   openDialogs.splice(openDialogs.indexOf("cfg-menu"), 1);
   openDialogs.splice(openDialogs.indexOf("cfg-menu"), 1);
   setCurrentDialogId(openDialogs?.[0] ?? null);
   setCurrentDialogId(openDialogs?.[0] ?? null);
 
 
@@ -942,7 +942,7 @@ export async function openCfgMenu() {
 function checkToggleScrollIndicator() {
 function checkToggleScrollIndicator() {
   const featuresCont = document.querySelector<HTMLElement>("#bytm-menu-opts");
   const featuresCont = document.querySelector<HTMLElement>("#bytm-menu-opts");
   const scrollIndicator = document.querySelector<HTMLElement>("#bytm-menu-scroll-indicator");
   const scrollIndicator = document.querySelector<HTMLElement>("#bytm-menu-scroll-indicator");
-  
+
   // disable scroll indicator if container doesn't scroll
   // disable scroll indicator if container doesn't scroll
   if(featuresCont && scrollIndicator) {
   if(featuresCont && scrollIndicator) {
     const verticalScroll = isScrollable(featuresCont).vertical;
     const verticalScroll = isScrollable(featuresCont).vertical;