Merge branch 'master' into stable24

old_stable24
Varun Patil 2022-11-13 23:08:10 -08:00
commit 12c99cdb5c
18 changed files with 273 additions and 262 deletions

3
l10n/cs.js vendored
View File

@ -26,6 +26,8 @@ OC.L10N.register(
"Choose the root of your timeline" : "Zvolte kořen vaší časové osy",
"The selected folder does not seem to be valid. Try again." : "Vybraná složka se nezdá být platná. Zkuste to znovu.",
"Found {total} photos in {path}" : "V {path} nalezeno {total} fotek",
"Failed to get Exif data. Metadata may be lost!" : "Nepodařilo se získat Exif metadata může dojít k jejich ztrátě!",
"No Exif data found! Continue?" : "Nenalezena žádná Exif data pokračovat?",
"Image saved successfully" : "Obrázek úspěšně uložen",
"Error saving image" : "Chyb při ukládání obrázku",
"Unsaved changes" : "Neuložené změny",
@ -218,6 +220,7 @@ OC.L10N.register(
"Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Pozn.: označená oblast ořezu je menší než použitá změna rozlišení, což může způsobit snížení kvality",
"Actual size (100%)" : "Skutečná velikost (100%)",
"Fit size" : "Přizpůsobit velikost",
"Transcoding failed." : "Překódování se nezdařilo.",
"Shared Folder" : "Sdílená složka",
"Failed to create {albumName}." : "Nepodařilo se vytvořit {albumName}.",
"Failed to rename {currentAlbumName} to {newAlbumName}." : "Nepodařilo přejmenovat {currentAlbumName} to {newAlbumName}.",

3
l10n/cs.json vendored
View File

@ -24,6 +24,8 @@
"Choose the root of your timeline" : "Zvolte kořen vaší časové osy",
"The selected folder does not seem to be valid. Try again." : "Vybraná složka se nezdá být platná. Zkuste to znovu.",
"Found {total} photos in {path}" : "V {path} nalezeno {total} fotek",
"Failed to get Exif data. Metadata may be lost!" : "Nepodařilo se získat Exif metadata může dojít k jejich ztrátě!",
"No Exif data found! Continue?" : "Nenalezena žádná Exif data pokračovat?",
"Image saved successfully" : "Obrázek úspěšně uložen",
"Error saving image" : "Chyb při ukládání obrázku",
"Unsaved changes" : "Neuložené změny",
@ -216,6 +218,7 @@
"Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Pozn.: označená oblast ořezu je menší než použitá změna rozlišení, což může způsobit snížení kvality",
"Actual size (100%)" : "Skutečná velikost (100%)",
"Fit size" : "Přizpůsobit velikost",
"Transcoding failed." : "Překódování se nezdařilo.",
"Shared Folder" : "Sdílená složka",
"Failed to create {albumName}." : "Nepodařilo se vytvořit {albumName}.",
"Failed to rename {currentAlbumName} to {newAlbumName}." : "Nepodařilo přejmenovat {currentAlbumName} to {newAlbumName}.",

3
l10n/de_DE.js vendored
View File

@ -26,6 +26,8 @@ OC.L10N.register(
"Choose the root of your timeline" : "Start Ihrer Zeitleiste auswählen",
"The selected folder does not seem to be valid. Try again." : "Der ausgewählte Ordner scheint ungültig zu sein. Versuchen Sie es nochmal.",
"Found {total} photos in {path}" : "{total} Fotos gefunden in {path}",
"Failed to get Exif data. Metadata may be lost!" : "Exif-Daten konnten nicht abgerufen werden. Metadaten können verloren gehen!",
"No Exif data found! Continue?" : "Keine Exif-Daten gefunden! Fortsetzen?",
"Image saved successfully" : "Bild erfolgreich gespeichert",
"Error saving image" : "Fehler beim Speichern des Bildes",
"Unsaved changes" : "Ungespeicherte Änderungen",
@ -218,6 +220,7 @@ OC.L10N.register(
"Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Beachten Sie, dass der ausgewählte Zuschneidebereich kleiner ist als die angewendete Größenänderung, was zu Qualitätseinbußen führen kann",
"Actual size (100%)" : "Tatsächliche Größe (100%)",
"Fit size" : "Größe anpassen",
"Transcoding failed." : "Transkodierung fehlgeschlagen.",
"Shared Folder" : "Geteilter Ordner",
"Failed to create {albumName}." : "{albumName} konnte nicht erstellt werden.",
"Failed to rename {currentAlbumName} to {newAlbumName}." : "{currentAlbumName} konnte nicht in {newAlbumName} umbenannt werden.",

3
l10n/de_DE.json vendored
View File

@ -24,6 +24,8 @@
"Choose the root of your timeline" : "Start Ihrer Zeitleiste auswählen",
"The selected folder does not seem to be valid. Try again." : "Der ausgewählte Ordner scheint ungültig zu sein. Versuchen Sie es nochmal.",
"Found {total} photos in {path}" : "{total} Fotos gefunden in {path}",
"Failed to get Exif data. Metadata may be lost!" : "Exif-Daten konnten nicht abgerufen werden. Metadaten können verloren gehen!",
"No Exif data found! Continue?" : "Keine Exif-Daten gefunden! Fortsetzen?",
"Image saved successfully" : "Bild erfolgreich gespeichert",
"Error saving image" : "Fehler beim Speichern des Bildes",
"Unsaved changes" : "Ungespeicherte Änderungen",
@ -216,6 +218,7 @@
"Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Beachten Sie, dass der ausgewählte Zuschneidebereich kleiner ist als die angewendete Größenänderung, was zu Qualitätseinbußen führen kann",
"Actual size (100%)" : "Tatsächliche Größe (100%)",
"Fit size" : "Größe anpassen",
"Transcoding failed." : "Transkodierung fehlgeschlagen.",
"Shared Folder" : "Geteilter Ordner",
"Failed to create {albumName}." : "{albumName} konnte nicht erstellt werden.",
"Failed to rename {currentAlbumName} to {newAlbumName}." : "{currentAlbumName} konnte nicht in {newAlbumName} umbenannt werden.",

11
l10n/fr.js vendored
View File

@ -14,6 +14,8 @@ OC.L10N.register(
"On this day" : "Ce même jour",
"Tags" : "Étiquettes",
"Maps" : "Cartes",
"If you just installed Memories, run:" : "Si vous venez d'installer Souvenirs, exécuter :",
"Image saved successfully" : "Image enregistrée avec succès",
"Error saving image" : "Erreur lors de l'enregistrement de l'image",
"Unsaved changes" : "Modifications non enregistrées",
"Drop changes" : "Abandonner les changements",
@ -27,6 +29,7 @@ OC.L10N.register(
"Edit Date/Time" : "Éditer la Date/Heure",
"View in folder" : "Afficher dans le dossier",
"Add to album" : "Ajouter à l'album",
"Move to another person" : "Déplacer vers une autre personne",
"Remove from person" : "Retirer de la personne",
"You are about to download a large number of files. Are you sure?" : "Vous êtes sur le point de télécharger un grand nombre de fichiers. Êtes-vous certain de vouloir le faire ?",
"You are about to delete a large number of files. Are you sure?" : "Vous êtes sur le point de supprimer un grand nombre de fichiers. Êtes-vous certain⋅e de vouloir le faire ?",
@ -34,9 +37,13 @@ OC.L10N.register(
"_{n} selected_::_{n} selected_" : ["{n} sélectionné","{n} sélectionnés","{n} sélectionnés"],
"Timeline Path" : "Emplacement du Fil chronologique",
"Show hidden folders" : "Afficher les dossiers cachés",
"Your Timeline" : "Votre fil chronologique",
"Failed to load some photos" : "Échec du chargement de certaines photos",
"Share" : "Partage",
"Sidebar" : "Panneau latéral",
"Video sharing not supported yet" : "Le partage de vidéo n'est pas encore disponible",
"Cannot share this type of data" : "Impossible de partager ce type de données",
"Processing … {n}/{m}" : "En cours de traitement … {n}/{m}",
"Search for collaborators" : "Rechercher des collaborateurs",
"Search people or groups" : "Recherche des personnes ou des groupes",
"Add {collaboratorLabel} to the collaborators list" : "Ajouter {collaboratorLabel} à la liste des collaborateurs",
@ -81,6 +88,7 @@ OC.L10N.register(
"Exercise caution and make sure you have backups." : "Faites preuve de prudence et assurez-vous que vous disposez de sauvegardes.",
"Loading data … {n}/{m}" : "Chargement des données… {n}/{m}",
"Remove person" : "Retirer la personne",
"Are you sure you want to remove {name}?" : "Êtes-vous sûr de vouloir retirer {name}?",
"Name" : "Nom",
"Rename person" : "Renommer la personne",
"Update" : "Mise à jour",
@ -173,13 +181,16 @@ OC.L10N.register(
"Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Notez que la zone de recadrage sélectionnée est inférieure au redimensionnement appliqué, ce qui peut entraîner une baisse de qualité.",
"Actual size (100%)" : "Taille actuelle (100%)",
"Fit size" : "Adapter à la taille",
"Transcoding failed." : "Échec du transcodage.",
"Failed to create {albumName}." : "Échec de la création de {albumName}.",
"Failed to rename {currentAlbumName} to {newAlbumName}." : "Échec du renommage de {currentAlbumName} en {newAlbumName}.",
"General Failure" : "Échec général",
"Error: {msg}" : "Erreur : {msg}",
"Failed to delete files." : "Échec de la suppression des fichiers.",
"Failed to delete {fileName}." : "Échec de la suppression de {fileName}.",
"Failed to download some files." : "Échec du téléchargement de certains fichiers.",
"Failed to favorite files." : "Échec de la mise en favoris des fichiers.",
"Failed to favorite some files." : "Échec de l'ajout en favoris de certains fichiers.",
"Failed to favorite {fileName}." : "Échec de l'ajout aux favoris de {fileName}."
},
"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;");

11
l10n/fr.json vendored
View File

@ -12,6 +12,8 @@
"On this day" : "Ce même jour",
"Tags" : "Étiquettes",
"Maps" : "Cartes",
"If you just installed Memories, run:" : "Si vous venez d'installer Souvenirs, exécuter :",
"Image saved successfully" : "Image enregistrée avec succès",
"Error saving image" : "Erreur lors de l'enregistrement de l'image",
"Unsaved changes" : "Modifications non enregistrées",
"Drop changes" : "Abandonner les changements",
@ -25,6 +27,7 @@
"Edit Date/Time" : "Éditer la Date/Heure",
"View in folder" : "Afficher dans le dossier",
"Add to album" : "Ajouter à l'album",
"Move to another person" : "Déplacer vers une autre personne",
"Remove from person" : "Retirer de la personne",
"You are about to download a large number of files. Are you sure?" : "Vous êtes sur le point de télécharger un grand nombre de fichiers. Êtes-vous certain de vouloir le faire ?",
"You are about to delete a large number of files. Are you sure?" : "Vous êtes sur le point de supprimer un grand nombre de fichiers. Êtes-vous certain⋅e de vouloir le faire ?",
@ -32,9 +35,13 @@
"_{n} selected_::_{n} selected_" : ["{n} sélectionné","{n} sélectionnés","{n} sélectionnés"],
"Timeline Path" : "Emplacement du Fil chronologique",
"Show hidden folders" : "Afficher les dossiers cachés",
"Your Timeline" : "Votre fil chronologique",
"Failed to load some photos" : "Échec du chargement de certaines photos",
"Share" : "Partage",
"Sidebar" : "Panneau latéral",
"Video sharing not supported yet" : "Le partage de vidéo n'est pas encore disponible",
"Cannot share this type of data" : "Impossible de partager ce type de données",
"Processing … {n}/{m}" : "En cours de traitement … {n}/{m}",
"Search for collaborators" : "Rechercher des collaborateurs",
"Search people or groups" : "Recherche des personnes ou des groupes",
"Add {collaboratorLabel} to the collaborators list" : "Ajouter {collaboratorLabel} à la liste des collaborateurs",
@ -79,6 +86,7 @@
"Exercise caution and make sure you have backups." : "Faites preuve de prudence et assurez-vous que vous disposez de sauvegardes.",
"Loading data … {n}/{m}" : "Chargement des données… {n}/{m}",
"Remove person" : "Retirer la personne",
"Are you sure you want to remove {name}?" : "Êtes-vous sûr de vouloir retirer {name}?",
"Name" : "Nom",
"Rename person" : "Renommer la personne",
"Update" : "Mise à jour",
@ -171,13 +179,16 @@
"Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Notez que la zone de recadrage sélectionnée est inférieure au redimensionnement appliqué, ce qui peut entraîner une baisse de qualité.",
"Actual size (100%)" : "Taille actuelle (100%)",
"Fit size" : "Adapter à la taille",
"Transcoding failed." : "Échec du transcodage.",
"Failed to create {albumName}." : "Échec de la création de {albumName}.",
"Failed to rename {currentAlbumName} to {newAlbumName}." : "Échec du renommage de {currentAlbumName} en {newAlbumName}.",
"General Failure" : "Échec général",
"Error: {msg}" : "Erreur : {msg}",
"Failed to delete files." : "Échec de la suppression des fichiers.",
"Failed to delete {fileName}." : "Échec de la suppression de {fileName}.",
"Failed to download some files." : "Échec du téléchargement de certains fichiers.",
"Failed to favorite files." : "Échec de la mise en favoris des fichiers.",
"Failed to favorite some files." : "Échec de l'ajout en favoris de certains fichiers.",
"Failed to favorite {fileName}." : "Échec de l'ajout aux favoris de {fileName}."
},"pluralForm" :"nplurals=3; plural=(n == 0 || n == 1) ? 0 : n != 0 && n % 1000000 == 0 ? 1 : 2;"
}

9
l10n/tr.js vendored
View File

@ -14,6 +14,7 @@ OC.L10N.register(
"On this day" : "Bugün",
"Tags" : "Etiketler",
"Maps" : "Haritalar",
"EXIF" : "EXIF",
"A better photos experience awaits you" : "Daha iyi bir fotoğraf deneyimi sizi bekliyor",
"Choose the root folder of your timeline to begin" : "Zaman tünelinizin başlangıç kök klasörünü seçin",
"If you just installed Memories, run:" : "Anılar uygulamasını yeni kurduysanız şunu çalıştırın:",
@ -24,6 +25,9 @@ OC.L10N.register(
"Choose the root of your timeline" : "Zaman tünelinizin kök klasörünü seçin",
"The selected folder does not seem to be valid. Try again." : "Seçilmiş klasör geçersiz gibi görünüyor. Yeniden deneyin.",
"Found {total} photos in {path}" : "{path} yolunda {total} fotoğraf bulundu",
"Failed to get Exif data. Metadata may be lost!" : "EXIF verileri alınamadı. Üst veriler kaybolmuş olabilir!",
"No Exif data found! Continue?" : "Herhangi bir EXIF verisi bulunamadı. İlerlensin mi?",
"Image saved successfully" : "Görsel kaydedildi",
"Error saving image" : "Görsel kaydedilirken sorun çıktı",
"Unsaved changes" : "Kaydedilmemiş değişiklikler",
"Drop changes" : "Değişiklikleri yok say",
@ -54,6 +58,8 @@ OC.L10N.register(
"Failed to load some photos" : "Bazı fotoğraflar yüklenemedi",
"Share" : "Paylaş",
"Sidebar" : "Yan çubuk",
"Video sharing not supported yet" : "Görüntü paylaşımı henüz desteklenmiyor",
"Cannot share this type of data" : "Bu türdeki verileri paylaşamazsınız",
"Processing … {n}/{m}" : "İşleniyor… {n}/{m}",
"{n} photos added to album" : "{n} fotoğraf albüme eklendi",
"Search for collaborators" : "Katılımcı arama",
@ -148,7 +154,7 @@ OC.L10N.register(
"Resize" : "Yeniden boyutlandır",
"Invalid image." : "Görsel geçersiz.",
"Error while uploading the image." : "Görsel yüklenirken sorun çıktı.",
"are not images" : "görsel değil",
"are not images" : "görseller değil",
"is not an image" : "bir görsel değil",
"to be uploaded" : "yüklenecek",
"Crop" : "Kırp",
@ -213,6 +219,7 @@ OC.L10N.register(
"Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Seçilmiş kırpma alanı uygulanan yeniden boyutlandırma alanından küçük. Bu durum görsel kalitesinin düşmesine neden olabilir.",
"Actual size (100%)" : "Gerçek boyut (%100)",
"Fit size" : "Boyutu sığdır",
"Transcoding failed." : "Kod dönüştürülemedi.",
"Shared Folder" : "Paylaşılmış klasör",
"Failed to create {albumName}." : "{albumName} albümü oluşturulamadı.",
"Failed to rename {currentAlbumName} to {newAlbumName}." : "{currentAlbumName} albümünün adı {newAlbumName} olarak değiştirilemedi.",

9
l10n/tr.json vendored
View File

@ -12,6 +12,7 @@
"On this day" : "Bugün",
"Tags" : "Etiketler",
"Maps" : "Haritalar",
"EXIF" : "EXIF",
"A better photos experience awaits you" : "Daha iyi bir fotoğraf deneyimi sizi bekliyor",
"Choose the root folder of your timeline to begin" : "Zaman tünelinizin başlangıç kök klasörünü seçin",
"If you just installed Memories, run:" : "Anılar uygulamasını yeni kurduysanız şunu çalıştırın:",
@ -22,6 +23,9 @@
"Choose the root of your timeline" : "Zaman tünelinizin kök klasörünü seçin",
"The selected folder does not seem to be valid. Try again." : "Seçilmiş klasör geçersiz gibi görünüyor. Yeniden deneyin.",
"Found {total} photos in {path}" : "{path} yolunda {total} fotoğraf bulundu",
"Failed to get Exif data. Metadata may be lost!" : "EXIF verileri alınamadı. Üst veriler kaybolmuş olabilir!",
"No Exif data found! Continue?" : "Herhangi bir EXIF verisi bulunamadı. İlerlensin mi?",
"Image saved successfully" : "Görsel kaydedildi",
"Error saving image" : "Görsel kaydedilirken sorun çıktı",
"Unsaved changes" : "Kaydedilmemiş değişiklikler",
"Drop changes" : "Değişiklikleri yok say",
@ -52,6 +56,8 @@
"Failed to load some photos" : "Bazı fotoğraflar yüklenemedi",
"Share" : "Paylaş",
"Sidebar" : "Yan çubuk",
"Video sharing not supported yet" : "Görüntü paylaşımı henüz desteklenmiyor",
"Cannot share this type of data" : "Bu türdeki verileri paylaşamazsınız",
"Processing … {n}/{m}" : "İşleniyor… {n}/{m}",
"{n} photos added to album" : "{n} fotoğraf albüme eklendi",
"Search for collaborators" : "Katılımcı arama",
@ -146,7 +152,7 @@
"Resize" : "Yeniden boyutlandır",
"Invalid image." : "Görsel geçersiz.",
"Error while uploading the image." : "Görsel yüklenirken sorun çıktı.",
"are not images" : "görsel değil",
"are not images" : "görseller değil",
"is not an image" : "bir görsel değil",
"to be uploaded" : "yüklenecek",
"Crop" : "Kırp",
@ -211,6 +217,7 @@
"Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "Seçilmiş kırpma alanı uygulanan yeniden boyutlandırma alanından küçük. Bu durum görsel kalitesinin düşmesine neden olabilir.",
"Actual size (100%)" : "Gerçek boyut (%100)",
"Fit size" : "Boyutu sığdır",
"Transcoding failed." : "Kod dönüştürülemedi.",
"Shared Folder" : "Paylaşılmış klasör",
"Failed to create {albumName}." : "{albumName} albümü oluşturulamadı.",
"Failed to rename {currentAlbumName} to {newAlbumName}." : "{currentAlbumName} albümünün adı {newAlbumName} olarak değiştirilemedi.",

3
l10n/zh_HK.js vendored
View File

@ -26,6 +26,8 @@ OC.L10N.register(
"Choose the root of your timeline" : "選擇您時間線的根",
"The selected folder does not seem to be valid. Try again." : "選定的資料夾似乎是無效的。請再試一次。",
"Found {total} photos in {path}" : "在 {path} 中找到 {total} 張照片",
"Failed to get Exif data. Metadata may be lost!" : "獲取 Exif 數據失敗。元數據可能會丟失!",
"No Exif data found! Continue?" : "未找到 Exif 數據!繼續?",
"Image saved successfully" : "圖像保存成功",
"Error saving image" : "儲存圖像時發生錯誤",
"Unsaved changes" : "未儲存變更",
@ -218,6 +220,7 @@ OC.L10N.register(
"Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "請注意,選定的裁剪區域低於套用的調整大小,這可能會導致品質下降",
"Actual size (100%)" : "實際大小 (100%)",
"Fit size" : "調整大小",
"Transcoding failed." : "轉碼失敗。",
"Shared Folder" : "分享資料夾",
"Failed to create {albumName}." : "創建 {albumName} 失敗。",
"Failed to rename {currentAlbumName} to {newAlbumName}." : "重新命名 {currentAlbumName} 為 {newAlbumName} 失敗。",

3
l10n/zh_HK.json vendored
View File

@ -24,6 +24,8 @@
"Choose the root of your timeline" : "選擇您時間線的根",
"The selected folder does not seem to be valid. Try again." : "選定的資料夾似乎是無效的。請再試一次。",
"Found {total} photos in {path}" : "在 {path} 中找到 {total} 張照片",
"Failed to get Exif data. Metadata may be lost!" : "獲取 Exif 數據失敗。元數據可能會丟失!",
"No Exif data found! Continue?" : "未找到 Exif 數據!繼續?",
"Image saved successfully" : "圖像保存成功",
"Error saving image" : "儲存圖像時發生錯誤",
"Unsaved changes" : "未儲存變更",
@ -216,6 +218,7 @@
"Note that the selected crop area is lower than the applied resize which might cause quality decrease" : "請注意,選定的裁剪區域低於套用的調整大小,這可能會導致品質下降",
"Actual size (100%)" : "實際大小 (100%)",
"Fit size" : "調整大小",
"Transcoding failed." : "轉碼失敗。",
"Shared Folder" : "分享資料夾",
"Failed to create {albumName}." : "創建 {albumName} 失敗。",
"Failed to rename {currentAlbumName} to {newAlbumName}." : "重新命名 {currentAlbumName} 為 {newAlbumName} 失敗。",

View File

@ -6,6 +6,7 @@ use OCA\Files\Event\LoadSidebar;
use OCP\App\IAppManager;
use OCP\AppFramework\AuthPublicShareController;
use OCP\AppFramework\Http\ContentSecurityPolicy;
use OCP\AppFramework\Http\Template\PublicTemplateResponse;
use OCP\AppFramework\Http\TemplateResponse;
use OCP\AppFramework\Services\IInitialState;
use OCP\EventDispatcher\IEventDispatcher;
@ -121,7 +122,7 @@ class PublicController extends AuthPublicShareController
$policy->addAllowedConnectDomain('nominatim.openstreetmap.org');
$policy->addAllowedFrameDomain('www.openstreetmap.org');
$response = new TemplateResponse($this->appName, 'main');
$response = new PublicTemplateResponse($this->appName, 'main');
$response->setContentSecurityPolicy($policy);
return $response;

333
package-lock.json generated
View File

@ -19,10 +19,10 @@
"moment": "^2.29.4",
"path-posix": "^1.0.0",
"photoswipe": "^5.3.3",
"plyr": "^3.7.2",
"reflect-metadata": "^0.1.13",
"video.js": "^7.20.3",
"videojs-contrib-quality-levels": "^2.2.0",
"videojs-hls-quality-selector": "^1.1.4",
"vue": "^2.7.10",
"vue-class-component": "^7.2.6",
"vue-material-design-icons": "^5.1.2",
@ -2877,11 +2877,6 @@
"node": ">=4"
}
},
"node_modules/any-promise": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
},
"node_modules/anymatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
@ -3673,7 +3668,8 @@
"node_modules/concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
"node_modules/connect-history-api-fallback": {
"version": "2.0.0",
@ -3989,6 +3985,11 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
"integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
},
"node_modules/custom-event-polyfill": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz",
"integrity": "sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w=="
},
"node_modules/date-format-parse": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/date-format-parse/-/date-format-parse-0.2.7.tgz",
@ -4891,53 +4892,11 @@
"dev": true,
"peer": true
},
"node_modules/fs-promise": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-0.5.0.tgz",
"integrity": "sha512-Y+4F4ujhEcayCJt6JmzcOun9MYGQwz+bVUiuBmTkJImhBHKpBvmVPZR9wtfiF7k3ffwAOAuurygQe+cPLSFQhw==",
"deprecated": "Use mz or fs-extra^3.0 with Promise Support",
"dependencies": {
"any-promise": "^1.0.0",
"fs-extra": "^0.26.5",
"mz": "^2.3.1",
"thenify-all": "^1.6.0"
}
},
"node_modules/fs-promise/node_modules/fs-extra": {
"version": "0.26.7",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz",
"integrity": "sha512-waKu+1KumRhYv8D8gMRCKJGAMI9pRnPuEb1mvgYD0f7wBscg+h6bW4FDTmEZhB9VKxvoTtxW+Y7bnIlB7zja6Q==",
"dependencies": {
"graceful-fs": "^4.1.2",
"jsonfile": "^2.1.0",
"klaw": "^1.0.0",
"path-is-absolute": "^1.0.0",
"rimraf": "^2.2.8"
}
},
"node_modules/fs-promise/node_modules/jsonfile": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
"integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==",
"optionalDependencies": {
"graceful-fs": "^4.1.6"
}
},
"node_modules/fs-promise/node_modules/rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"dependencies": {
"glob": "^7.1.3"
},
"bin": {
"rimraf": "bin.js"
}
},
"node_modules/fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true
},
"node_modules/function-bind": {
"version": "1.1.1",
@ -5034,6 +4993,7 @@
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true,
"dependencies": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@ -5073,6 +5033,7 @@
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"dependencies": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@ -5082,6 +5043,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"dependencies": {
"brace-expansion": "^1.1.7"
},
@ -5109,7 +5071,8 @@
"node_modules/graceful-fs": {
"version": "4.2.10",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
"dev": true
},
"node_modules/hammerjs": {
"version": "2.0.8",
@ -5516,6 +5479,7 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
"dependencies": {
"once": "^1.3.0",
"wrappy": "1"
@ -5524,7 +5488,8 @@
"node_modules/inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
"node_modules/internal-slot": {
"version": "1.0.3",
@ -6189,18 +6154,6 @@
"resolved": "https://registry.npmjs.org/justified-layout/-/justified-layout-4.1.0.tgz",
"integrity": "sha512-M5FimNMXgiOYerVRGsXZ2YK9YNCaTtwtYp7Hb2308U1Q9TXXHx5G0p08mcVR5O53qf8bWY4NJcPBxE6zuayXSg=="
},
"node_modules/karma-safaritechpreview-launcher": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/karma-safaritechpreview-launcher/-/karma-safaritechpreview-launcher-0.0.6.tgz",
"integrity": "sha512-2QMxAGXPQ37H3KoR9SCdh0OoktQZ5MyrxkvBiZ+VVOQfYVrcyOQXGrPea0/DKvf8qoQvrvP2FHcP/BxsuxuyHw==",
"dependencies": {
"fs-promise": "^0.5.0",
"marcosc-async": "^3.0.4"
},
"engines": {
"node": ">=4"
}
},
"node_modules/keycode": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.1.tgz",
@ -6216,14 +6169,6 @@
"node": ">=0.10.0"
}
},
"node_modules/klaw": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
"integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==",
"optionalDependencies": {
"graceful-fs": "^4.1.9"
}
},
"node_modules/klona": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz",
@ -6307,6 +6252,11 @@
"node": ">=8.9.0"
}
},
"node_modules/loadjs": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/loadjs/-/loadjs-4.2.0.tgz",
"integrity": "sha512-AgQGZisAlTPbTEzrHPb6q+NYBMD+DP9uvGSIjSUM5uG+0jG15cb8axWpxuOIqrmQjn6scaaH8JwloiP27b2KXA=="
},
"node_modules/locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@ -6410,12 +6360,6 @@
"url": "https://github.com/sponsors/sindresorhus"
}
},
"node_modules/marcosc-async": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/marcosc-async/-/marcosc-async-3.0.5.tgz",
"integrity": "sha512-CCDofAatyNlbCCE1aIERplqT8r4S3LLc72pg3Bg/RilWPFqdXYO/FiDfzZ9ijf7K1P0j5mUZYCQ6eWXNuAxNBg==",
"engines": ">=4"
},
"node_modules/material-colors": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz",
@ -6675,16 +6619,6 @@
"npm": ">=5"
}
},
"node_modules/mz": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
"dependencies": {
"any-promise": "^1.0.0",
"object-assign": "^4.0.1",
"thenify-all": "^1.0.0"
}
},
"node_modules/nanoid": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
@ -6809,6 +6743,7 @@
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"peer": true,
"engines": {
"node": ">=0.10.0"
}
@ -6900,6 +6835,7 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"dependencies": {
"wrappy": "1"
}
@ -7050,6 +6986,7 @@
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true,
"engines": {
"node": ">=0.10.0"
}
@ -7175,6 +7112,18 @@
"node": ">=14"
}
},
"node_modules/plyr": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/plyr/-/plyr-3.7.2.tgz",
"integrity": "sha512-I0ZC/OI4oJ0iWG9s2rrnO0YFO6aLyrPiQBq9kum0FqITYljwTPBbYL3TZZu8UJQJUq7tUWN18Q7ACwNCkGKABQ==",
"dependencies": {
"core-js": "^3.22.0",
"custom-event-polyfill": "^1.0.7",
"loadjs": "^4.2.0",
"rangetouch": "^2.0.1",
"url-polyfill": "^1.1.12"
}
},
"node_modules/polished": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/polished/-/polished-3.7.2.tgz",
@ -7487,6 +7436,11 @@
"node": ">= 0.6"
}
},
"node_modules/rangetouch": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/rangetouch/-/rangetouch-2.0.1.tgz",
"integrity": "sha512-sln+pNSc8NGaHoLzwNBssFSf/rSYkqeBXzX1AtJlkJiUaVSJSbRAWJk+4omsXkN+EJalzkZhWQ3th1m0FpR5xA=="
},
"node_modules/raw-body": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
@ -8881,25 +8835,6 @@
"url": "https://opencollective.com/webpack"
}
},
"node_modules/thenify": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
"dependencies": {
"any-promise": "^1.0.0"
}
},
"node_modules/thenify-all": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
"dependencies": {
"thenify": ">= 3.1.0 < 4"
},
"engines": {
"node": ">=0.8"
}
},
"node_modules/thunky": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
@ -9307,6 +9242,11 @@
"requires-port": "^1.0.0"
}
},
"node_modules/url-polyfill": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/url-polyfill/-/url-polyfill-1.1.12.tgz",
"integrity": "sha512-mYFmBHCapZjtcNHW0MDq9967t+z4Dmg5CJ0KqysK3+ZbyoNOWQHksGCTWwDhxGXllkWlOc10Xfko6v4a3ucM6A=="
},
"node_modules/url-toolkit": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.5.tgz",
@ -9457,17 +9397,6 @@
"resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-3.2.0.tgz",
"integrity": "sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA=="
},
"node_modules/videojs-hls-quality-selector": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/videojs-hls-quality-selector/-/videojs-hls-quality-selector-1.1.4.tgz",
"integrity": "sha512-wWAjlLQui02gp//t9KHGd3XnbYO7wdOptskh3ZYCrbl/5Lbkveqb9yBVjH4e0zIQBPvGdWPMcOeDukf8iuYeBw==",
"dependencies": {
"global": "^4.3.2",
"karma-safaritechpreview-launcher": "0.0.6",
"video.js": "^7.5.5",
"videojs-contrib-quality-levels": "^2.0.9"
}
},
"node_modules/videojs-vtt.js": {
"version": "0.15.4",
"resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.4.tgz",
@ -10471,7 +10400,8 @@
"node_modules/wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
"node_modules/ws": {
"version": "8.10.0",
@ -12650,11 +12580,6 @@
"color-convert": "^1.9.0"
}
},
"any-promise": {
"version": "1.3.0",
"resolved": "https://registry.npmjs.org/any-promise/-/any-promise-1.3.0.tgz",
"integrity": "sha512-7UvmKalWRt1wgjL1RrGxoSJW/0QZFIegpeGvZG9kjp8vrRu55XTHbwnqq2GpXm9uLbcuhxm3IqX9OB4MZR1b2A=="
},
"anymatch": {
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz",
@ -13291,7 +13216,8 @@
"concat-map": {
"version": "0.0.1",
"resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg=="
"integrity": "sha512-/Srv4dswyQNBfohGpz9o6Yb3Gz3SrUDqBH5rTuhGR7ahtlbYKnVxw2bCFMRljaA7EXHaXZ8wsHdodFvbkhKmqg==",
"dev": true
},
"connect-history-api-fallback": {
"version": "2.0.0",
@ -13547,6 +13473,11 @@
"resolved": "https://registry.npmjs.org/csstype/-/csstype-3.1.1.tgz",
"integrity": "sha512-DJR/VvkAvSZW9bTouZue2sSxDwdTN92uHjqeKVm+0dAqdfNykRzQ95tay8aXMBAAPpUiq4Qcug2L7neoRh2Egw=="
},
"custom-event-polyfill": {
"version": "1.0.7",
"resolved": "https://registry.npmjs.org/custom-event-polyfill/-/custom-event-polyfill-1.0.7.tgz",
"integrity": "sha512-TDDkd5DkaZxZFM8p+1I3yAlvM3rSr1wbrOliG4yJiwinMZN8z/iGL7BTlDkrJcYTmgUSb4ywVCc3ZaUtOtC76w=="
},
"date-format-parse": {
"version": "0.2.7",
"resolved": "https://registry.npmjs.org/date-format-parse/-/date-format-parse-0.2.7.tgz",
@ -14265,51 +14196,11 @@
"dev": true,
"peer": true
},
"fs-promise": {
"version": "0.5.0",
"resolved": "https://registry.npmjs.org/fs-promise/-/fs-promise-0.5.0.tgz",
"integrity": "sha512-Y+4F4ujhEcayCJt6JmzcOun9MYGQwz+bVUiuBmTkJImhBHKpBvmVPZR9wtfiF7k3ffwAOAuurygQe+cPLSFQhw==",
"requires": {
"any-promise": "^1.0.0",
"fs-extra": "^0.26.5",
"mz": "^2.3.1",
"thenify-all": "^1.6.0"
},
"dependencies": {
"fs-extra": {
"version": "0.26.7",
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.26.7.tgz",
"integrity": "sha512-waKu+1KumRhYv8D8gMRCKJGAMI9pRnPuEb1mvgYD0f7wBscg+h6bW4FDTmEZhB9VKxvoTtxW+Y7bnIlB7zja6Q==",
"requires": {
"graceful-fs": "^4.1.2",
"jsonfile": "^2.1.0",
"klaw": "^1.0.0",
"path-is-absolute": "^1.0.0",
"rimraf": "^2.2.8"
}
},
"jsonfile": {
"version": "2.4.0",
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
"integrity": "sha512-PKllAqbgLgxHaj8TElYymKCAgrASebJrWpTnEkOaTowt23VKXXN0sUeriJ+eh7y6ufb/CC5ap11pz71/cM0hUw==",
"requires": {
"graceful-fs": "^4.1.6"
}
},
"rimraf": {
"version": "2.7.1",
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
"integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
"requires": {
"glob": "^7.1.3"
}
}
}
},
"fs.realpath": {
"version": "1.0.0",
"resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw=="
"integrity": "sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw==",
"dev": true
},
"function-bind": {
"version": "1.1.1",
@ -14379,6 +14270,7 @@
"version": "7.2.3",
"resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz",
"integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==",
"dev": true,
"requires": {
"fs.realpath": "^1.0.0",
"inflight": "^1.0.4",
@ -14392,6 +14284,7 @@
"version": "1.1.11",
"resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
"integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
"dev": true,
"requires": {
"balanced-match": "^1.0.0",
"concat-map": "0.0.1"
@ -14401,6 +14294,7 @@
"version": "3.1.2",
"resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz",
"integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==",
"dev": true,
"requires": {
"brace-expansion": "^1.1.7"
}
@ -14441,7 +14335,8 @@
"graceful-fs": {
"version": "4.2.10",
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz",
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA=="
"integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==",
"dev": true
},
"hammerjs": {
"version": "2.0.8",
@ -14767,6 +14662,7 @@
"version": "1.0.6",
"resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
"integrity": "sha512-k92I/b08q4wvFscXCLvqfsHCrjrF7yiXsQuIVvVE7N82W3+aqpzuUdBbfhWcy/FZR3/4IgflMgKLOsvPDrGCJA==",
"dev": true,
"requires": {
"once": "^1.3.0",
"wrappy": "1"
@ -14775,7 +14671,8 @@
"inherits": {
"version": "2.0.4",
"resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
"integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
"dev": true
},
"internal-slot": {
"version": "1.0.3",
@ -15244,15 +15141,6 @@
"resolved": "https://registry.npmjs.org/justified-layout/-/justified-layout-4.1.0.tgz",
"integrity": "sha512-M5FimNMXgiOYerVRGsXZ2YK9YNCaTtwtYp7Hb2308U1Q9TXXHx5G0p08mcVR5O53qf8bWY4NJcPBxE6zuayXSg=="
},
"karma-safaritechpreview-launcher": {
"version": "0.0.6",
"resolved": "https://registry.npmjs.org/karma-safaritechpreview-launcher/-/karma-safaritechpreview-launcher-0.0.6.tgz",
"integrity": "sha512-2QMxAGXPQ37H3KoR9SCdh0OoktQZ5MyrxkvBiZ+VVOQfYVrcyOQXGrPea0/DKvf8qoQvrvP2FHcP/BxsuxuyHw==",
"requires": {
"fs-promise": "^0.5.0",
"marcosc-async": "^3.0.4"
}
},
"keycode": {
"version": "2.2.1",
"resolved": "https://registry.npmjs.org/keycode/-/keycode-2.2.1.tgz",
@ -15265,14 +15153,6 @@
"dev": true,
"peer": true
},
"klaw": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/klaw/-/klaw-1.3.1.tgz",
"integrity": "sha512-TED5xi9gGQjGpNnvRWknrwAB1eL5GciPfVFOt3Vk1OJCVDQbzuSfrF3hkUQKlsgKrG1F+0t5W0m+Fje1jIt8rw==",
"requires": {
"graceful-fs": "^4.1.9"
}
},
"klona": {
"version": "2.0.5",
"resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz",
@ -15328,6 +15208,11 @@
"json5": "^2.1.2"
}
},
"loadjs": {
"version": "4.2.0",
"resolved": "https://registry.npmjs.org/loadjs/-/loadjs-4.2.0.tgz",
"integrity": "sha512-AgQGZisAlTPbTEzrHPb6q+NYBMD+DP9uvGSIjSUM5uG+0jG15cb8axWpxuOIqrmQjn6scaaH8JwloiP27b2KXA=="
},
"locate-path": {
"version": "5.0.0",
"resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz",
@ -15419,11 +15304,6 @@
"semver": "^6.0.0"
}
},
"marcosc-async": {
"version": "3.0.5",
"resolved": "https://registry.npmjs.org/marcosc-async/-/marcosc-async-3.0.5.tgz",
"integrity": "sha512-CCDofAatyNlbCCE1aIERplqT8r4S3LLc72pg3Bg/RilWPFqdXYO/FiDfzZ9ijf7K1P0j5mUZYCQ6eWXNuAxNBg=="
},
"material-colors": {
"version": "1.2.6",
"resolved": "https://registry.npmjs.org/material-colors/-/material-colors-1.2.6.tgz",
@ -15633,16 +15513,6 @@
"global": "^4.4.0"
}
},
"mz": {
"version": "2.7.0",
"resolved": "https://registry.npmjs.org/mz/-/mz-2.7.0.tgz",
"integrity": "sha512-z81GNO7nnYMEhrGh9LeymoE4+Yr0Wn5McHIZMK5cfQCl+NDX08sCZgUc9/6MHni9IWuFLm1Z3HTCXu2z9fN62Q==",
"requires": {
"any-promise": "^1.0.0",
"object-assign": "^4.0.1",
"thenify-all": "^1.0.0"
}
},
"nanoid": {
"version": "3.3.4",
"resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz",
@ -15742,7 +15612,8 @@
"object-assign": {
"version": "4.1.1",
"resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg=="
"integrity": "sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg==",
"peer": true
},
"object-inspect": {
"version": "1.12.2",
@ -15807,6 +15678,7 @@
"version": "1.4.0",
"resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
"integrity": "sha512-lNaJgI+2Q5URQBkccEKHTQOPaXdUxnZZElQTZY0MFUAuaEqe1E+Nyvgdz/aIyNi6Z9MzO5dv1H8n58/GELp3+w==",
"dev": true,
"requires": {
"wrappy": "1"
}
@ -15923,7 +15795,8 @@
"path-is-absolute": {
"version": "1.0.1",
"resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg=="
"integrity": "sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg==",
"dev": true
},
"path-key": {
"version": "3.1.1",
@ -16012,6 +15885,18 @@
"integrity": "sha512-9EmeXDncC2Pmp/z+teoVYlvmPWUC6ejSSYZUln7YaP89Z6lpAaiaAnqroUt/BoLo8tn7WYShcfaCh+xofZa44Q==",
"dev": true
},
"plyr": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/plyr/-/plyr-3.7.2.tgz",
"integrity": "sha512-I0ZC/OI4oJ0iWG9s2rrnO0YFO6aLyrPiQBq9kum0FqITYljwTPBbYL3TZZu8UJQJUq7tUWN18Q7ACwNCkGKABQ==",
"requires": {
"core-js": "^3.22.0",
"custom-event-polyfill": "^1.0.7",
"loadjs": "^4.2.0",
"rangetouch": "^2.0.1",
"url-polyfill": "^1.1.12"
}
},
"polished": {
"version": "3.7.2",
"resolved": "https://registry.npmjs.org/polished/-/polished-3.7.2.tgz",
@ -16245,6 +16130,11 @@
"dev": true,
"peer": true
},
"rangetouch": {
"version": "2.0.1",
"resolved": "https://registry.npmjs.org/rangetouch/-/rangetouch-2.0.1.tgz",
"integrity": "sha512-sln+pNSc8NGaHoLzwNBssFSf/rSYkqeBXzX1AtJlkJiUaVSJSbRAWJk+4omsXkN+EJalzkZhWQ3th1m0FpR5xA=="
},
"raw-body": {
"version": "2.5.1",
"resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz",
@ -17311,22 +17201,6 @@
}
}
},
"thenify": {
"version": "3.3.1",
"resolved": "https://registry.npmjs.org/thenify/-/thenify-3.3.1.tgz",
"integrity": "sha512-RVZSIV5IG10Hk3enotrhvz0T9em6cyHBLkH/YAZuKqd8hRkKhSfCGIcP2KUY0EPxndzANBmNllzWPwak+bheSw==",
"requires": {
"any-promise": "^1.0.0"
}
},
"thenify-all": {
"version": "1.6.0",
"resolved": "https://registry.npmjs.org/thenify-all/-/thenify-all-1.6.0.tgz",
"integrity": "sha512-RNxQH/qI8/t3thXJDwcstUO4zeqo64+Uy/+sNVRBx4Xn2OX+OZ9oP+iJnNFqplFra2ZUVeKCSa2oVWi3T4uVmA==",
"requires": {
"thenify": ">= 3.1.0 < 4"
}
},
"thunky": {
"version": "1.1.0",
"resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz",
@ -17633,6 +17507,11 @@
"requires-port": "^1.0.0"
}
},
"url-polyfill": {
"version": "1.1.12",
"resolved": "https://registry.npmjs.org/url-polyfill/-/url-polyfill-1.1.12.tgz",
"integrity": "sha512-mYFmBHCapZjtcNHW0MDq9967t+z4Dmg5CJ0KqysK3+ZbyoNOWQHksGCTWwDhxGXllkWlOc10Xfko6v4a3ucM6A=="
},
"url-toolkit": {
"version": "2.2.5",
"resolved": "https://registry.npmjs.org/url-toolkit/-/url-toolkit-2.2.5.tgz",
@ -17737,17 +17616,6 @@
"resolved": "https://registry.npmjs.org/videojs-font/-/videojs-font-3.2.0.tgz",
"integrity": "sha512-g8vHMKK2/JGorSfqAZQUmYYNnXmfec4MLhwtEFS+mMs2IDY398GLysy6BH6K+aS1KMNu/xWZ8Sue/X/mdQPliA=="
},
"videojs-hls-quality-selector": {
"version": "1.1.4",
"resolved": "https://registry.npmjs.org/videojs-hls-quality-selector/-/videojs-hls-quality-selector-1.1.4.tgz",
"integrity": "sha512-wWAjlLQui02gp//t9KHGd3XnbYO7wdOptskh3ZYCrbl/5Lbkveqb9yBVjH4e0zIQBPvGdWPMcOeDukf8iuYeBw==",
"requires": {
"global": "^4.3.2",
"karma-safaritechpreview-launcher": "0.0.6",
"video.js": "^7.5.5",
"videojs-contrib-quality-levels": "^2.0.9"
}
},
"videojs-vtt.js": {
"version": "0.15.4",
"resolved": "https://registry.npmjs.org/videojs-vtt.js/-/videojs-vtt.js-0.15.4.tgz",
@ -18562,7 +18430,8 @@
"wrappy": {
"version": "1.0.2",
"resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ=="
"integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==",
"dev": true
},
"ws": {
"version": "8.10.0",

View File

@ -39,10 +39,10 @@
"moment": "^2.29.4",
"path-posix": "^1.0.0",
"photoswipe": "^5.3.3",
"plyr": "^3.7.2",
"reflect-metadata": "^0.1.13",
"video.js": "^7.20.3",
"videojs-contrib-quality-levels": "^2.2.0",
"videojs-hls-quality-selector": "^1.1.4",
"vue": "^2.7.10",
"vue-class-component": "^7.2.6",
"vue-material-design-icons": "^5.1.2",

View File

@ -17,7 +17,7 @@ mv "exiftool-$exifver" exiftool
rm -rf *.zip exiftool/t exiftool/html
chmod 755 exiftool/exiftool
govod="0.0.7"
govod="0.0.9"
wget -q "https://github.com/pulsejet/go-vod/releases/download/$govod/go-vod-amd64"
wget -q "https://github.com/pulsejet/go-vod/releases/download/$govod/go-vod-aarch64"
chmod 755 go-vod-*

View File

@ -199,6 +199,7 @@ export default class App extends Mixins(GlobalMixin, UserConfig) {
const colorPrimary =
getComputedStyle(root).getPropertyValue("--color-primary");
root.style.setProperty("--color-primary-select-light", `${colorPrimary}40`);
root.style.setProperty("--plyr-color-main", colorPrimary);
// Register sidebar metadata tab
const OCA = globalThis.OCA;

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 5.6 KiB

View File

@ -6,10 +6,13 @@ import { showError } from "@nextcloud/dialogs";
import { translate as t } from "@nextcloud/l10n";
import { getCurrentUser } from "@nextcloud/auth";
import Plyr from "plyr";
import "plyr/dist/plyr.css";
import plyrsvg from "../assets/plyr.svg";
import videojs from "video.js";
import "video.js/dist/video-js.min.css";
import "videojs-contrib-quality-levels";
import "videojs-hls-quality-selector";
const config_noTranscode = loadState(
"memories",
@ -75,7 +78,7 @@ class VideoContentSetup {
origEvent.clientX,
origEvent.clientY
);
if (elems.some((el) => el.classList.contains("vjs-control-bar"))) {
if (elems.some((el) => el.classList.contains("plyr__controls"))) {
e.preventDefault();
return;
}
@ -139,8 +142,11 @@ class VideoContentSetup {
);
}
}
// Add the video element to the actual container
content.element.appendChild(content.videoElement);
// Get file id
const fileid = content.data.photo.fileid;
// Create hls sources if enabled
@ -164,7 +170,7 @@ class VideoContentSetup {
content.videojs = videojs(content.videoElement, {
fill: true,
autoplay: true,
controls: true,
controls: false,
sources: sources,
preload: "metadata",
playbackRates: [0.5, 1, 1.5, 2],
@ -198,27 +204,15 @@ class VideoContentSetup {
}
});
content.videojs.qualityLevels();
content.videojs.hlsQualitySelector({
displayCurrentQuality: true,
});
setTimeout(() => {
content.videojs
.contentEl()
.querySelectorAll("button")
.forEach((b: HTMLButtonElement) => {
b.classList.add("button-vue");
});
// iOS needs this
content.videojs.play();
}, 500);
content.videojs.play(); // iOS needs this
}, 200);
let canPlay = false;
content.videojs.on("canplay", () => {
content.videojs.on("loadedmetadata", () => {
canPlay = true;
this.updateRotation(content);
this.updateRotation(content); // also gets the correct video elem as a side effect
this.initPlyr(content);
});
// Get correct orientation
@ -242,6 +236,10 @@ class VideoContentSetup {
content.videojs.dispose();
content.videojs = null;
content.plyr?.elements?.container?.remove();
content.plyr?.destroy();
content.plyr = null;
const elem: HTMLDivElement = content.element;
while (elem.lastElementChild) {
elem.removeChild(elem.lastElementChild);
@ -250,11 +248,82 @@ class VideoContentSetup {
}
}
updateRotation(content, val?: number) {
if (!content.videojs || !content.videoElement) {
return;
initPlyr(content: any) {
if (content.plyr) return;
// Retain original parent for video element
const origParent = content.videoElement.parentElement;
// Populate quality list
const qualityList = content.videojs?.qualityLevels();
let qualityNums: number[];
if (qualityList && qualityList.length > 1) {
const s = new Set<number>();
for (let i = 0; i < qualityList?.length; i++) {
const { width, height } = qualityList[i];
s.add(Math.min(width, height));
}
qualityNums = Array.from(s).sort((a, b) => b - a);
qualityNums.unshift(0);
}
// Create the plyr instance
const opts: Plyr.Options = {
iconUrl: <any>plyrsvg,
blankVideo: "",
i18n: {
qualityLabel: {
0: t("memories", "Auto"),
},
},
fullscreen: {
enabled: true,
container: ".pswp__item",
},
};
if (qualityNums) {
opts.quality = {
default: 0,
options: qualityNums,
forced: true,
onChange: (quality: number) => {
if (!qualityList || !content.videojs) return;
for (let i = 0; i < qualityList.length; ++i) {
const { width, height } = qualityList[i];
const pixels = Math.min(width, height);
qualityList[i].enabled = pixels === quality || !quality;
}
},
};
}
const plyr = new Plyr(content.videoElement, opts);
plyr.elements.container.style.height = "100%";
plyr.elements.container.style.width = "100%";
plyr.elements.container
.querySelectorAll("button")
.forEach((el) => el.classList.add("button-vue"));
plyr.elements.container
.querySelectorAll("progress")
.forEach((el) => el.classList.add("vue"));
plyr.elements.container.style.backgroundColor = "transparent";
plyr.elements.wrapper.style.backgroundColor = "transparent";
content.plyr = plyr;
// Restore original parent of video element
origParent.appendChild(content.videoElement);
// Move plyr to the slide container
content.slide.holderElement.appendChild(plyr.elements.container);
}
updateRotation(content, val?: number) {
if (!content.videojs) return;
content.videoElement = content.videojs.el()?.querySelector("video");
if (!content.videoElement) return;
const rotation = val ?? Number(content.data.exif?.Rotation);
const shouldRotate = content.videojs?.src().includes("m3u8");

View File

@ -20,15 +20,16 @@
container=".memories_viewer .pswp"
>
<NcActionButton
v-if="canShare"
:aria-label="t('memories', 'Share')"
@click="shareCurrent"
:close-after-click="true"
v-if="canShare"
>
{{ t("memories", "Share") }}
<template #icon> <ShareIcon :size="24" /> </template>
</NcActionButton>
<NcActionButton
v-if="!routeIsPublic"
:aria-label="t('memories', 'Delete')"
@click="deleteCurrent"
:close-after-click="true"
@ -37,6 +38,7 @@
<template #icon> <DeleteIcon :size="24" /> </template>
</NcActionButton>
<NcActionButton
v-if="!routeIsPublic"
:aria-label="t('memories', 'Favorite')"
@click="favoriteCurrent"
:close-after-click="true"
@ -48,6 +50,7 @@
</template>
</NcActionButton>
<NcActionButton
v-if="!routeIsPublic"
:aria-label="t('memories', 'Sidebar')"
@click="toggleSidebar"
:close-after-click="true"
@ -58,8 +61,8 @@
</template>
</NcActionButton>
<NcActionButton
v-if="canEdit && !routeIsPublic"
:aria-label="t('memories', 'Edit')"
v-if="canEdit"
@click="openEditor"
:close-after-click="true"
>
@ -79,6 +82,7 @@
</template>
</NcActionButton>
<NcActionButton
v-if="!routeIsPublic"
:aria-label="t('memories', 'View in folder')"
@click="viewInFolder"
:close-after-click="true"
@ -195,6 +199,11 @@ export default class Viewer extends Mixins(GlobalMixin) {
}
}
/** Route is public */
get routeIsPublic() {
return this.$route.name === "folder-share";
}
/** Update the document title */
private updateTitle(photo: IPhoto | undefined) {
if (!this.originalTitle) {
@ -834,6 +843,13 @@ export default class Viewer extends Mixins(GlobalMixin) {
display: none;
}
:deep .plyr__volume {
// Cannot be vertical yet :(
@media (max-width: 768px) {
display: none;
}
}
:deep .pswp {
.pswp__zoom-wrap {
width: 100%;