@bigbinary/neeto-image-uploader-frontend 3.0.7 → 3.0.8-beta.1

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 (40) hide show
  1. package/app/javascript/src/translations/ar.json +2 -1
  2. package/app/javascript/src/translations/bg.json +2 -1
  3. package/app/javascript/src/translations/ca.json +2 -1
  4. package/app/javascript/src/translations/cs.json +2 -1
  5. package/app/javascript/src/translations/da.json +2 -1
  6. package/app/javascript/src/translations/de.json +2 -1
  7. package/app/javascript/src/translations/es-MX.json +2 -1
  8. package/app/javascript/src/translations/es.json +2 -1
  9. package/app/javascript/src/translations/et.json +2 -1
  10. package/app/javascript/src/translations/fi.json +2 -1
  11. package/app/javascript/src/translations/fil.json +2 -1
  12. package/app/javascript/src/translations/fr.json +2 -1
  13. package/app/javascript/src/translations/he.json +2 -1
  14. package/app/javascript/src/translations/hi.json +2 -1
  15. package/app/javascript/src/translations/hr.json +2 -1
  16. package/app/javascript/src/translations/hu.json +2 -1
  17. package/app/javascript/src/translations/id.json +2 -1
  18. package/app/javascript/src/translations/it.json +2 -1
  19. package/app/javascript/src/translations/ja.json +2 -1
  20. package/app/javascript/src/translations/ko.json +2 -1
  21. package/app/javascript/src/translations/nl.json +2 -1
  22. package/app/javascript/src/translations/pl.json +2 -1
  23. package/app/javascript/src/translations/pt-BR.json +2 -1
  24. package/app/javascript/src/translations/pt.json +2 -1
  25. package/app/javascript/src/translations/ro.json +2 -1
  26. package/app/javascript/src/translations/ru.json +2 -1
  27. package/app/javascript/src/translations/sk.json +2 -1
  28. package/app/javascript/src/translations/sl.json +2 -1
  29. package/app/javascript/src/translations/sv.json +2 -1
  30. package/app/javascript/src/translations/th.json +2 -1
  31. package/app/javascript/src/translations/tr.json +2 -1
  32. package/app/javascript/src/translations/uk.json +2 -1
  33. package/app/javascript/src/translations/vi.json +2 -1
  34. package/app/javascript/src/translations/zh-CN.json +2 -1
  35. package/app/javascript/src/translations/zh-TW.json +2 -1
  36. package/dist/ImageUploader.js +8 -3
  37. package/dist/ImageUploader.js.map +1 -1
  38. package/dist/cjs/ImageUploader.js +8 -3
  39. package/dist/cjs/ImageUploader.js.map +1 -1
  40. package/package.json +4 -4
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "الحجم المثالي للصورة: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "فشل تحميل الملف",
70
70
  "noBlobReturned": "فشل تحميل الملف: لم يتم إرجاع كائن blob",
71
- "upload": "<span>تحميل</span>"
71
+ "upload": "<span>تحميل</span>",
72
+ "fileResolutionError": "تجاوزت دقة الصورة 25 ميغابكسل. يرجى استخدام صورة أصغر."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "مفقود urlEndpoint أثناء تهيئة SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Оптимален размер на изображението: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Неуспешно качване на файл",
70
70
  "noBlobReturned": "Неуспешно качване на файл: Не е върнат blob",
71
- "upload": "<span>Качи</span>"
71
+ "upload": "<span>Качи</span>",
72
+ "fileResolutionError": "Резолюцията на изображението надвишава 25MP. Моля, използвайте по-малко изображение."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Липсва urlEndpoint по време на инициализация на SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Mida òptima de la imatge: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "La pujada de fitxers ha fallat",
70
70
  "noBlobReturned": "La pujada de fitxers ha fallat: No s'ha retornat cap blob",
71
- "upload": "<span>Puig</span>"
71
+ "upload": "<span>Puig</span>",
72
+ "fileResolutionError": "La resolució de la imatge supera els 25MP. Si us plau, utilitzeu una imatge més petita."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Faltant urlEndpoint durant la inicialització de l'SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Optimální velikost obrázku: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Nahrávání souboru selhalo",
70
70
  "noBlobReturned": "Nahrávání souboru selhalo: Nebyl vrácen žádný blob",
71
- "upload": "<span>Nahrát</span>"
71
+ "upload": "<span>Nahrát</span>",
72
+ "fileResolutionError": "Rozlišení obrázku přesahuje 25 MP. Použijte prosím menší obrázek."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Chybí urlEndpoint během inicializace SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Optimal billedstørrelse: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Filupload mislykkedes",
70
70
  "noBlobReturned": "Filupload mislykkedes: Ingen blob returneret",
71
- "upload": "<span>Upload</span>"
71
+ "upload": "<span>Upload</span>",
72
+ "fileResolutionError": "Billedopløsningen overstiger 25 MP. Brug venligst et mindre billede."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Manglende urlEndpoint under SDK-initialisering",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Optimale Bildgröße: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Datei-Upload fehlgeschlagen",
70
70
  "noBlobReturned": "Datei-Upload fehlgeschlagen: Kein Blob zurückgegeben",
71
- "upload": "<span>Hochladen</span>"
71
+ "upload": "<span>Hochladen</span>",
72
+ "fileResolutionError": "Die Bildauflösung überschreitet 25 MP. Bitte verwenden Sie ein kleineres Bild."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Fehlender urlEndpoint während der SDK-Initialisierung",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Tamaño óptimo de imagen: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Error en la carga del archivo",
70
70
  "noBlobReturned": "Error en la carga del archivo: No se devolvió ningún blob",
71
- "upload": "<span>Subir</span>"
71
+ "upload": "<span>Subir</span>",
72
+ "fileResolutionError": "La resolución de la imagen excede 25MP. Por favor, utiliza una imagen más pequeña."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Falta urlEndpoint durante la inicialización del SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Tamaño óptimo de imagen: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Error en la carga del archivo",
70
70
  "noBlobReturned": "Error en la carga del archivo: No se devolvió ningún blob",
71
- "upload": "<span>Subir</span>"
71
+ "upload": "<span>Subir</span>",
72
+ "fileResolutionError": "La resolución de la imagen excede 25MP. Por favor, utiliza una imagen más pequeña."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Falta el urlEndpoint durante la inicialización del SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Optimaalne pildi suurus: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Faili üleslaadimine ebaõnnestus",
70
70
  "noBlobReturned": "Faili üleslaadimine ebaõnnestus: Blobi ei saadud",
71
- "upload": "<span>Laadi üles</span>"
71
+ "upload": "<span>Laadi üles</span>",
72
+ "fileResolutionError": "Pildi eraldusvõime ületab 25MP. Palun kasutage väiksemat pilti."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "SDK initsialiseerimise käigus puudub urlEndpoint",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Ihanteellinen kuva koko: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Tiedoston lataaminen epäonnistui",
70
70
  "noBlobReturned": "Tiedoston lataaminen epäonnistui: Ei blobia palautettu",
71
- "upload": "<span>Lataa</span>"
71
+ "upload": "<span>Lataa</span>",
72
+ "fileResolutionError": "Kuvan tarkkuus ylittää 25MP. Käytäthän pienempää kuvaa."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Puuttuva urlEndpoint SDK:n alustamisessa",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Ideyal na sukat ng imahe: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Nabigo ang pag-upload ng file",
70
70
  "noBlobReturned": "Nabigo ang pag-upload ng file: Walang naibalik na blob",
71
- "upload": "<span>Mag-upload</span>"
71
+ "upload": "<span>Mag-upload</span>",
72
+ "fileResolutionError": "Ang resolusyon ng imahe ay lumampas sa 25MP. Mangyaring gumamit ng mas maliit na imahe."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Nawawala ang urlEndpoint sa panahon ng inisyal na SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Taille d'image optimale : {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Échec du téléchargement du fichier",
70
70
  "noBlobReturned": "Échec du téléchargement du fichier : Aucun blob renvoyé",
71
- "upload": "<span>Télécharger</span>"
71
+ "upload": "<span>Télécharger</span>",
72
+ "fileResolutionError": "La résolution de l'image dépasse 25 MP. Veuillez utiliser une image de plus petite taille."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "URLEndpoint manquant lors de l'initialisation du SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "גודל התמונה האידיאלי: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "העלאת הקובץ נכשלה",
70
70
  "noBlobReturned": "העלאת הקובץ נכשלה: לא הוחזר בלוב",
71
- "upload": "<span>העלה</span>"
71
+ "upload": "<span>העלה</span>",
72
+ "fileResolutionError": "רזולוציית התמונה עולה על 25MP. אנא השתמש בתמונה קטנה יותר."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "חסר urlEndpoint במהלך התחלת ה-SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "इष्टतम चित्र आकार: {{width}}x{{height}}px।",
69
69
  "fileUploadFailed": "फ़ाइल अपलोड विफल हो गया",
70
70
  "noBlobReturned": "फ़ाइल अपलोड विफल हो गया: कोई ब्लॉब वापस नहीं आया",
71
- "upload": "<span>अ上传</span>"
71
+ "upload": "<span>अ上传</span>",
72
+ "fileResolutionError": "छवि का रिज़ॉल्यूशन 25MP से अधिक है। कृपया एक छोटी छवि का उपयोग करें।"
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "SDK के प्रारंभिककरण के दौरान missing urlEndpoint",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Optimalna veličina slike: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Učitavanje datoteke nije uspjelo",
70
70
  "noBlobReturned": "Učitavanje datoteke nije uspjelo: Nema vraćenog bloba",
71
- "upload": "<span>Učitaj</span>"
71
+ "upload": "<span>Učitaj</span>",
72
+ "fileResolutionError": "Rezolucija slike premašuje 25MP. Molimo vas da upotrijebite manju sliku."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Nedostaje urlEndpoint tijekom inicializacije SDK",
@@ -66,7 +66,8 @@
66
66
  "idealImageSizeInfo": "Optimális képméret: {{width}}x{{height}}px.",
67
67
  "fileUploadFailed": "A fájl feltöltése meghiúsult",
68
68
  "noBlobReturned": "A fájl feltöltése meghiúsult: Nincs blob visszaadva",
69
- "upload": "<span>Feltöltés</span>"
69
+ "upload": "<span>Feltöltés</span>",
70
+ "fileResolutionError": "A kép felbontása meghaladja a 25MP-t. Kérjük, használjon kisebb képet."
70
71
  },
71
72
  "errors": {
72
73
  "sdkKeysMissing": "Hiányzik a urlEndpoint az SDK inicializálásához",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Ukuran gambar optimal: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Unggah file gagal",
70
70
  "noBlobReturned": "Unggah file gagal: Tidak ada blob yang dikembalikan",
71
- "upload": "<span>Unggah</span>"
71
+ "upload": "<span>Unggah</span>",
72
+ "fileResolutionError": "Resolusi gambar melebihi 25MP. Harap gunakan gambar yang lebih kecil."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "URL endpoint hilang saat inisialisasi SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Dimensione ideale immagine: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Caricamento del file non riuscito",
70
70
  "noBlobReturned": "Caricamento del file non riuscito: Nessun blob restituito",
71
- "upload": "<span>Carica</span>"
71
+ "upload": "<span>Carica</span>",
72
+ "fileResolutionError": "La risoluzione dell'immagine supera i 25 MP. Si prega di utilizzare un'immagine più piccola."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Manca urlEndpoint durante l'inizializzazione del SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "最適な画像サイズ:{{width}}x{{height}}px。",
69
69
  "fileUploadFailed": "ファイルのアップロードに失敗しました",
70
70
  "noBlobReturned": "ファイルのアップロードに失敗しました: ブロブが返されませんでした",
71
- "upload": "<span>アップロード</span>"
71
+ "upload": "<span>アップロード</span>",
72
+ "fileResolutionError": "画像の解像度が25MPを超えています。より小さい画像を使用してください。"
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "SDK初期化中にurlEndpointが欠けています",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "최적 이미지 크기: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "파일 업로드 실패",
70
70
  "noBlobReturned": "파일 업로드 실패: 반환된 Blob이 없습니다",
71
- "upload": "<span>업로드</span>"
71
+ "upload": "<span>업로드</span>",
72
+ "fileResolutionError": "이미지 해상도가 25MP를 초과합니다. 더 작은 이미지를 사용해 주십시오."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "SDK 초기화 중에 urlEndpoint가 누락되었습니다.",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Optimale afbeeldingsgrootte: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Bestand upload mislukt",
70
70
  "noBlobReturned": "Bestand upload mislukt: Geen blob teruggegeven",
71
- "upload": "<span>Upload</span>"
71
+ "upload": "<span>Upload</span>",
72
+ "fileResolutionError": "De afbeeldingsresolutie overschrijdt 25MP. Gebruik alstublieft een kleinere afbeelding."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Ontbrekende urlEndpoint tijdens SDK-initialisatie",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Optymalny rozmiar obrazu: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Wysyłanie pliku nie powiodło się",
70
70
  "noBlobReturned": "Wysyłanie pliku nie powiodło się: Nie zwrócono blobu",
71
- "upload": "<span>Prześlij</span>"
71
+ "upload": "<span>Prześlij</span>",
72
+ "fileResolutionError": "Rozdzielczość obrazu przekracza 25MP. Proszę użyć mniejszego obrazu."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Brak urlEndpoint podczas inicjalizacji SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Tamanho ideal da imagem: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Falha no upload do arquivo",
70
70
  "noBlobReturned": "Falha no upload do arquivo: Nenhum blob retornado",
71
- "upload": "<span>Enviar</span>"
71
+ "upload": "<span>Enviar</span>",
72
+ "fileResolutionError": "A resolução da imagem ultrapassa 25MP. Por favor, use uma imagem menor."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Faltando urlEndpoint durante a inicialização do SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Tamanho ideal da imagem: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Falha no upload do arquivo",
70
70
  "noBlobReturned": "Falha no upload do arquivo: Nenhum blob retornado",
71
- "upload": "<span>Carregar</span>"
71
+ "upload": "<span>Carregar</span>",
72
+ "fileResolutionError": "A resolução da imagem excede 25 MP. Por favor, use uma imagem menor."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Faltando urlEndpoint durante a inicialização do SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Dimensiunea optimă a imaginii: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Încărcarea fișierului a eșuat",
70
70
  "noBlobReturned": "Încărcarea fișierului a eșuat: Nu s-a returnat niciun blob",
71
- "upload": "<span>Încărcați</span>"
71
+ "upload": "<span>Încărcați</span>",
72
+ "fileResolutionError": "Rezoluția imaginii depășește 25MP. Vă rugăm să folosiți o imagine mai mică."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Lipsesc urlEndpoint în timpul inițializării SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Оптимальный размер изображения: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Ошибка загрузки файла",
70
70
  "noBlobReturned": "Ошибка загрузки файла: не возвращён blob",
71
- "upload": "<span>Загрузить</span>"
71
+ "upload": "<span>Загрузить</span>",
72
+ "fileResolutionError": "Разрешение изображения превышает 25 МП. Пожалуйста, используйте изображение меньшего размера."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Отсутствует urlEndpoint во время инициализации SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Optimálna veľkosť obrázka: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Nahrávanie súboru zlyhalo",
70
70
  "noBlobReturned": "Nahrávanie súboru zlyhalo: Nebol vrátený blob",
71
- "upload": "<span>Nahrať</span>"
71
+ "upload": "<span>Nahrať</span>",
72
+ "fileResolutionError": "Rozlíšenie obrázka presahuje 25MP. Prosím použite menší obrázok."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Chýba urlEndpoint počas inicializácie SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Optimalna velikost slike: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Nalaganje datoteke ni uspelo",
70
70
  "noBlobReturned": "Nalaganje datoteke ni uspelo: Ni vrnjen blob",
71
- "upload": "<span>Naloži</span>"
71
+ "upload": "<span>Naloži</span>",
72
+ "fileResolutionError": "Ločljivost slike presega 25 MP. Uporabite manjšo sliko."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Manjkajoći urlEndpoint med inicializacijo SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Optimal bildstorlek: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Filöverföring misslyckades",
70
70
  "noBlobReturned": "Filöverföring misslyckades: Ingen blob returnerades",
71
- "upload": "<span>Ladda upp</span>"
71
+ "upload": "<span>Ladda upp</span>",
72
+ "fileResolutionError": "Bildens upplösning överstiger 25 MP. Vänligen använd en mindre bild."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Saknar urlEndpoint under SDK-initialisering",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "ขนาดภาพที่เหมาะสม: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "การอัปโหลดไฟล์ล้มเหลว",
70
70
  "noBlobReturned": "การอัปโหลดไฟล์ล้มเหลว: ไม่มีบลอบคืน",
71
- "upload": "<span>อัปโหลด</span>"
71
+ "upload": "<span>อัปโหลด</span>",
72
+ "fileResolutionError": "ความละเอียดของภาพเกิน 25MP กรุณาใช้ภาพที่มีขนาดเล็กกว่า"
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "ขาด urlEndpoint ในระหว่างการเริ่มต้น SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Optimal resim boyutu: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Dosya yüklemesi başarısız oldu",
70
70
  "noBlobReturned": "Dosya yüklemesi başarısız oldu: Blob dönmedi",
71
- "upload": "<span>Yükle</span>"
71
+ "upload": "<span>Yükle</span>",
72
+ "fileResolutionError": "Görüntü çözünürlüğü 25MP'yi aşıyor. Lütfen daha küçük bir görüntü kullanın."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "SDK başlatma sırasında urlEndpoint eksik",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Оптимальний розмір зображення: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Помилка завантаження файлу",
70
70
  "noBlobReturned": "Помилка завантаження файлу: Не повернуто blob",
71
- "upload": "<span>Завантажити</span>"
71
+ "upload": "<span>Завантажити</span>",
72
+ "fileResolutionError": "Роздільна здатність зображення перевищує 25 МП. Будь ласка, використовуйте менше зображення."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Відсутній urlEndpoint під час ініціалізації SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "Kích thước hình ảnh tối ưu: {{width}}x{{height}}px.",
69
69
  "fileUploadFailed": "Tải lên tệp không thành công",
70
70
  "noBlobReturned": "Tải lên tệp không thành công: Không có blob được trả về",
71
- "upload": "<span>Tải lên</span>"
71
+ "upload": "<span>Tải lên</span>",
72
+ "fileResolutionError": "Độ phân giải ảnh vượt quá 25MP. Vui lòng sử dụng ảnh có kích thước nhỏ hơn."
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "Thiếu urlEndpoint trong quá trình khởi tạo SDK",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "最佳图像尺寸:{{width}}x{{height}}px。",
69
69
  "fileUploadFailed": "文件上传失败",
70
70
  "noBlobReturned": "文件上传失败:没有返回 blob",
71
- "upload": "<span>上传</span>"
71
+ "upload": "<span>上传</span>",
72
+ "fileResolutionError": "图像分辨率超过25MP。请使用更小的图像。"
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "SDK 初始化时缺少 urlEndpoint",
@@ -68,7 +68,8 @@
68
68
  "idealImageSizeInfo": "最佳圖片大小:{{width}}x{{height}}px。",
69
69
  "fileUploadFailed": "檔案上傳失敗",
70
70
  "noBlobReturned": "檔案上傳失敗:未返回 blob",
71
- "upload": "<span>上傳</span>"
71
+ "upload": "<span>上傳</span>",
72
+ "fileResolutionError": "圖片解析度超過 25MP。請使用較小的圖片。"
72
73
  },
73
74
  "errors": {
74
75
  "sdkKeysMissing": "SDK初始化期間缺少urlEndpoint",
@@ -113,7 +113,7 @@ var ImageUploader = /*#__PURE__*/forwardRef(function (_ref, uploaderRef) {
113
113
  };
114
114
  var handleUploadComplete = /*#__PURE__*/function () {
115
115
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(result) {
116
- var imageKitPayload, cloudFlarePayload, payload, response;
116
+ var imageKitPayload, cloudFlarePayload, payload, response, attachedImage;
117
117
  return _regeneratorRuntime.wrap(function _callee$(_context) {
118
118
  while (1) switch (_context.prev = _context.next) {
119
119
  case 0:
@@ -156,8 +156,13 @@ var ImageUploader = /*#__PURE__*/forwardRef(function (_ref, uploaderRef) {
156
156
  return createBlob(payload, {});
157
157
  case 8:
158
158
  response = _context.sent;
159
- handleSuccess(response);
160
- case 10:
159
+ attachedImage = isCloudFlareImageUploader ? response : mergeRight(response, {
160
+ metadata: {
161
+ url: result.url
162
+ }
163
+ });
164
+ handleSuccess(attachedImage);
165
+ case 11:
161
166
  case "end":
162
167
  return _context.stop();
163
168
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ImageUploader.js","sources":["../app/javascript/src/components/ImageUploader/index.jsx"],"sourcesContent":["import { forwardRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent, noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Dropdown } from \"neetoui\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ImageDirectUpload from \"components/common/ImageDirectUpload\";\nimport ImageWithFallback from \"components/common/ImageWithFallback\";\nimport { IMAGE_WRAPPER_CLASSNAME } from \"components/constants\";\nimport { isNilOrEmpty, isNotNilOrEmpty } from \"components/ImageEditor/utils\";\nimport AssetLibrary from \"components/Modal\";\nimport { constructCloudflareImageURL } from \"components/utils\";\nimport { useCreateBlob } from \"hooks/useDirectUploads\";\nimport useImageUploader from \"hooks/useImageUploader\";\nimport { generateASCIIFileName, isGif } from \"hooks/utils\";\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nimport { DEFAULT_UPLOAD_CONFIG, OPTION_KEYS } from \"./constants\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst ImageUploader = forwardRef(\n (\n {\n onUploadComplete = noop,\n className = \"\",\n src = \"\",\n uploadConfig = {},\n fixedAspectRatio = {},\n defaultImageSize = {},\n isDisabled = false,\n onDrop,\n isOptionsDisabled = false,\n },\n uploaderRef\n ) => {\n const [isAssetLibraryOpen, setIsAssetLibraryOpen] = useState(false);\n const [image, setImage] = useState({ url: src });\n\n const { t } = useTranslation();\n\n const { mutateAsync: createBlob } = useCreateBlob();\n\n const uploadConfigWithDefaults = mergeRight(\n DEFAULT_UPLOAD_CONFIG,\n uploadConfig\n );\n\n const isCloudFlareImageUploader =\n globalProps.assetsUploaderService === CLOUD_FLARE;\n\n const handleDelete = () => {\n setImage({});\n onChange({\n url: \"\",\n signedId: \"\",\n key: \"\",\n filename: \"\",\n size: \"\",\n type: \"\",\n });\n };\n\n const onChange = file => onUploadComplete(file);\n\n const handleSuccess = attachedImage => {\n setImage(mergeRight(image, { url: attachedImage.metadata.url }));\n onChange({\n id: attachedImage.id,\n filename: generateASCIIFileName(attachedImage.filename),\n key: attachedImage.key,\n url: attachedImage.blobUrl,\n signedId: attachedImage.signedId,\n size: attachedImage.byteSize,\n type: attachedImage.contentType,\n });\n };\n\n const handleImageSelectionFromLibrary = image => {\n setImage(image);\n onChange(image);\n };\n\n const handleUploadComplete = async result => {\n if (IS_DEVELOPMENT_OR_HEROKU_ENV || isGif(result)) {\n handleSuccess(mergeRight(result, { metadata: { url: result.url } }));\n\n return;\n }\n\n const imageKitPayload = () => ({\n filename: generateASCIIFileName(result.name),\n byte_size: result.size,\n content_type: result.fileType,\n checksum: result.fileId,\n metadata: result,\n service_name: \"imagekitio\",\n });\n\n const cloudFlarePayload = () => ({\n filename: generateASCIIFileName(result.filename),\n content_type: result.contentType,\n byte_size: result.byteSize,\n checksum: result.id,\n metadata: {\n ...result.metadata,\n url: constructCloudflareImageURL(result.variants[0]),\n isCropped: false,\n },\n service_name: \"cloudflare_image\",\n });\n\n const payload = isCloudFlareImageUploader\n ? cloudFlarePayload()\n : imageKitPayload();\n\n const response = await createBlob(payload, {});\n handleSuccess(response);\n };\n\n const { uploadFile } = useImageUploader({\n onUploadComplete: handleUploadComplete,\n });\n\n const options = [\n {\n key: OPTION_KEYS.asset,\n label: t(\"neetoImageUploader.imageUpload.change\"),\n onClick: () => setIsAssetLibraryOpen(true),\n \"data-testid\": \"image-uploader-open-image-library-button\",\n },\n {\n key: OPTION_KEYS.remove,\n label: t(\"neetoImageUploader.imageUpload.remove\"),\n onClick: handleDelete,\n \"data-testid\": \"image-uploader-remove-button\",\n },\n ];\n\n return (\n <div\n className={classnames(className, {\n \"cursor-pointer\": true,\n \"cursor-not-allowed\": isDisabled,\n \"opacity-70\": isDisabled && isNilOrEmpty(image.url),\n })}\n >\n {isNotNilOrEmpty(image.url) ? (\n <div\n className={IMAGE_WRAPPER_CLASSNAME}\n data-testid=\"image-uploader-wrapper\"\n >\n <ImageWithFallback\n className=\"h-full w-full\"\n data-testid=\"uploaded-image\"\n src={image.url}\n />\n {!isOptionsDisabled && (\n <Dropdown\n buttonSize=\"small\"\n buttonStyle=\"tertiary\"\n disabled={isDisabled}\n icon={MenuHorizontal}\n buttonProps={{\n // eslint-disable-next-line @bigbinary/neeto/use-neetoui-classes\n className: \"absolute end-3 top-3 rounded-full\",\n }}\n >\n <Menu>\n {options.map(({ key, label, ...otherProps }) => (\n <MenuItem.Button {...otherProps} key={key}>\n {label}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n )}\n </div>\n ) : (\n <ImageDirectUpload\n {...{ defaultImageSize, setImage, setIsAssetLibraryOpen }}\n isDisabled={isPresent(fixedAspectRatio)}\n isUploadDisabled={isDisabled}\n ref={uploaderRef}\n uploadConfig={uploadConfigWithDefaults}\n onDrop={onDrop || uploadFile}\n />\n )}\n <AssetLibrary\n {...{ defaultImageSize, fixedAspectRatio }}\n isOpen={isAssetLibraryOpen}\n uploadConfig={uploadConfigWithDefaults}\n onClose={() => setIsAssetLibraryOpen(false)}\n onUploadComplete={handleImageSelectionFromLibrary}\n />\n </div>\n );\n }\n);\n\nImageUploader.displayName = \"ImageUploader\";\n\nexport default ImageUploader;\n"],"names":["Menu","Dropdown","MenuItem","ImageUploader","forwardRef","_ref","uploaderRef","_ref$onUploadComplete","onUploadComplete","noop","_ref$className","className","_ref$src","src","_ref$uploadConfig","uploadConfig","_ref$fixedAspectRatio","fixedAspectRatio","_ref$defaultImageSize","defaultImageSize","_ref$isDisabled","isDisabled","onDrop","_ref$isOptionsDisable","isOptionsDisabled","_useState","useState","_useState2","_slicedToArray","isAssetLibraryOpen","setIsAssetLibraryOpen","_useState3","url","_useState4","image","setImage","_useTranslation","useTranslation","t","_useCreateBlob","useCreateBlob","createBlob","mutateAsync","uploadConfigWithDefaults","mergeRight","DEFAULT_UPLOAD_CONFIG","isCloudFlareImageUploader","globalProps","assetsUploaderService","CLOUD_FLARE","handleDelete","onChange","signedId","key","filename","size","type","file","handleSuccess","attachedImage","metadata","id","generateASCIIFileName","blobUrl","byteSize","contentType","handleImageSelectionFromLibrary","handleUploadComplete","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","result","imageKitPayload","cloudFlarePayload","payload","response","wrap","_callee$","_context","prev","next","IS_DEVELOPMENT_OR_HEROKU_ENV","isGif","abrupt","name","byte_size","content_type","fileType","checksum","fileId","service_name","_objectSpread","constructCloudflareImageURL","variants","isCropped","sent","stop","_x","apply","arguments","_useImageUploader","useImageUploader","uploadFile","options","OPTION_KEYS","asset","label","onClick","remove","_jsxs","classnames","isNilOrEmpty","children","isNotNilOrEmpty","IMAGE_WRAPPER_CLASSNAME","_jsx","ImageWithFallback","buttonSize","buttonStyle","disabled","icon","MenuHorizontal","buttonProps","map","_ref3","otherProps","_objectWithoutProperties","_excluded","_createElement","Button","ImageDirectUpload","isPresent","isUploadDisabled","ref","AssetLibrary","isOpen","onClose","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAQA,IAAI,GAAeC,QAAQ,CAA3BD,IAAI;EAAEE,QAAQ,GAAKD,QAAQ,CAArBC,QAAQ;AAEtB,IAAMC,aAAa,gBAAGC,UAAU,CAC9B,UAAAC,IAAA,EAYEC,WAAW,EACR;AAAA,EAAA,IAAAC,qBAAA,GAAAF,IAAA,CAXDG,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAGE,IAAI,GAAAF,qBAAA;IAAAG,cAAA,GAAAL,IAAA,CACvBM,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,cAAA;IAAAE,QAAA,GAAAP,IAAA,CACdQ,GAAG;AAAHA,IAAAA,GAAG,GAAAD,QAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,QAAA;IAAAE,iBAAA,GAAAT,IAAA,CACRU,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,iBAAA;IAAAE,qBAAA,GAAAX,IAAA,CACjBY,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAAAb,IAAA,CACrBc,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,eAAA,GAAAf,IAAA,CACrBgB,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,eAAA;IAClBE,MAAM,GAAAjB,IAAA,CAANiB,MAAM;IAAAC,qBAAA,GAAAlB,IAAA,CACNmB,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,qBAAA;AAI3B,EAAA,IAAAE,SAAA,GAAoDC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA5DI,IAAAA,kBAAkB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,qBAAqB,GAAAH,UAAA,CAAA,CAAA,CAAA;EAChD,IAAAI,UAAA,GAA0BL,QAAQ,CAAC;AAAEM,MAAAA,GAAG,EAAEnB;AAAI,KAAC,CAAC;IAAAoB,UAAA,GAAAL,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAzCG,IAAAA,KAAK,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,QAAQ,GAAAF,UAAA,CAAA,CAAA,CAAA;AAEtB,EAAA,IAAAG,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAET,EAAA,IAAAC,cAAA,GAAoCC,aAAa,EAAE;IAA9BC,UAAU,GAAAF,cAAA,CAAvBG,WAAW;AAEnB,EAAA,IAAMC,wBAAwB,GAAGC,UAAU,CACzCC,qBAAqB,EACrB9B,YACF,CAAC;AAED,EAAA,IAAM+B,yBAAyB,GAC7BC,WAAW,CAACC,qBAAqB,KAAKC,WAAW;AAEnD,EAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,GAAS;IACzBf,QAAQ,CAAC,EAAE,CAAC;AACZgB,IAAAA,QAAQ,CAAC;AACPnB,MAAAA,GAAG,EAAE,EAAE;AACPoB,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,GAAG,EAAE,EAAE;AACPC,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,IAAI,EAAE,EAAE;AACRC,MAAAA,IAAI,EAAE;AACR,KAAC,CAAC;EACJ,CAAC;AAED,EAAA,IAAML,QAAQ,GAAG,SAAXA,QAAQA,CAAGM,IAAI,EAAA;IAAA,OAAIjD,gBAAgB,CAACiD,IAAI,CAAC;AAAA,EAAA,CAAA;AAE/C,EAAA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,aAAa,EAAI;AACrCxB,IAAAA,QAAQ,CAACS,UAAU,CAACV,KAAK,EAAE;AAAEF,MAAAA,GAAG,EAAE2B,aAAa,CAACC,QAAQ,CAAC5B;AAAI,KAAC,CAAC,CAAC;AAChEmB,IAAAA,QAAQ,CAAC;MACPU,EAAE,EAAEF,aAAa,CAACE,EAAE;AACpBP,MAAAA,QAAQ,EAAEQ,qBAAqB,CAACH,aAAa,CAACL,QAAQ,CAAC;MACvDD,GAAG,EAAEM,aAAa,CAACN,GAAG;MACtBrB,GAAG,EAAE2B,aAAa,CAACI,OAAO;MAC1BX,QAAQ,EAAEO,aAAa,CAACP,QAAQ;MAChCG,IAAI,EAAEI,aAAa,CAACK,QAAQ;MAC5BR,IAAI,EAAEG,aAAa,CAACM;AACtB,KAAC,CAAC;EACJ,CAAC;AAED,EAAA,IAAMC,+BAA+B,GAAG,SAAlCA,+BAA+BA,CAAGhC,KAAK,EAAI;IAC/CC,QAAQ,CAACD,KAAK,CAAC;IACfiB,QAAQ,CAACjB,KAAK,CAAC;EACjB,CAAC;AAED,EAAA,IAAMiC,oBAAoB,gBAAA,YAAA;IAAA,IAAAC,KAAA,GAAAC,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAC,OAAAA,CAAMC,MAAM,EAAA;AAAA,MAAA,IAAAC,eAAA,EAAAC,iBAAA,EAAAC,OAAA,EAAAC,QAAA;AAAA,MAAA,OAAAP,mBAAA,CAAAQ,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,IAAA,EACnCC,4BAA4B,IAAIC,KAAK,CAACX,MAAM,CAAC,CAAA,EAAA;AAAAO,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;AAC/CxB,YAAAA,aAAa,CAACd,UAAU,CAAC6B,MAAM,EAAE;AAAEb,cAAAA,QAAQ,EAAE;gBAAE5B,GAAG,EAAEyC,MAAM,CAACzC;AAAI;AAAE,aAAC,CAAC,CAAC;YAAC,OAAAgD,QAAA,CAAAK,MAAA,CAAA,QAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YAKjEX,eAAe,GAAG,SAAlBA,eAAeA,GAAA;cAAA,OAAU;AAC7BpB,gBAAAA,QAAQ,EAAEQ,qBAAqB,CAACW,MAAM,CAACa,IAAI,CAAC;gBAC5CC,SAAS,EAAEd,MAAM,CAAClB,IAAI;gBACtBiC,YAAY,EAAEf,MAAM,CAACgB,QAAQ;gBAC7BC,QAAQ,EAAEjB,MAAM,CAACkB,MAAM;AACvB/B,gBAAAA,QAAQ,EAAEa,MAAM;AAChBmB,gBAAAA,YAAY,EAAE;eACf;YAAA,CAAC;YAEIjB,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAA;cAAA,OAAU;AAC/BrB,gBAAAA,QAAQ,EAAEQ,qBAAqB,CAACW,MAAM,CAACnB,QAAQ,CAAC;gBAChDkC,YAAY,EAAEf,MAAM,CAACR,WAAW;gBAChCsB,SAAS,EAAEd,MAAM,CAACT,QAAQ;gBAC1B0B,QAAQ,EAAEjB,MAAM,CAACZ,EAAE;AACnBD,gBAAAA,QAAQ,EAAAiC,aAAA,CAAAA,aAAA,CAAA,EAAA,EACHpB,MAAM,CAACb,QAAQ,CAAA,EAAA,EAAA,EAAA;kBAClB5B,GAAG,EAAE8D,2BAA2B,CAACrB,MAAM,CAACsB,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpDC,kBAAAA,SAAS,EAAE;iBAAK,CACjB;AACDJ,gBAAAA,YAAY,EAAE;eACf;YAAA,CAAC;YAEIhB,OAAO,GAAG9B,yBAAyB,GACrC6B,iBAAiB,EAAE,GACnBD,eAAe,EAAE;AAAAM,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,YAAA,OAEEzC,UAAU,CAACmC,OAAO,EAAE,EAAE,CAAC;AAAA,UAAA,KAAA,CAAA;YAAxCC,QAAQ,GAAAG,QAAA,CAAAiB,IAAA;YACdvC,aAAa,CAACmB,QAAQ,CAAC;AAAC,UAAA,KAAA,EAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAG,QAAA,CAAAkB,IAAA,EAAA;AAAA;AAAA,MAAA,CAAA,EAAA1B,OAAA,CAAA;IAAA,CACzB,CAAA,CAAA;IAAA,OAAA,SAnCKL,oBAAoBA,CAAAgC,EAAA,EAAA;AAAA,MAAA,OAAA/B,KAAA,CAAAgC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA,IAAA,CAAA;EAAA,CAAA,EAmCzB;EAED,IAAAC,iBAAA,GAAuBC,gBAAgB,CAAC;AACtC/F,MAAAA,gBAAgB,EAAE2D;AACpB,KAAC,CAAC;IAFMqC,UAAU,GAAAF,iBAAA,CAAVE,UAAU;EAIlB,IAAMC,OAAO,GAAG,CACd;IACEpD,GAAG,EAAEqD,WAAW,CAACC,KAAK;AACtBC,IAAAA,KAAK,EAAEtE,CAAC,CAAC,uCAAuC,CAAC;IACjDuE,OAAO,EAAE,SAATA,OAAOA,GAAA;MAAA,OAAQ/E,qBAAqB,CAAC,IAAI,CAAC;AAAA,IAAA,CAAA;AAC1C,IAAA,aAAa,EAAE;AACjB,GAAC,EACD;IACEuB,GAAG,EAAEqD,WAAW,CAACI,MAAM;AACvBF,IAAAA,KAAK,EAAEtE,CAAC,CAAC,uCAAuC,CAAC;AACjDuE,IAAAA,OAAO,EAAE3D,YAAY;AACrB,IAAA,aAAa,EAAE;AACjB,GAAC,CACF;AAED,EAAA,oBACE6D,IAAA,CAAA,KAAA,EAAA;AACEpG,IAAAA,SAAS,EAAEqG,UAAU,CAACrG,SAAS,EAAE;AAC/B,MAAA,gBAAgB,EAAE,IAAI;AACtB,MAAA,oBAAoB,EAAEU,UAAU;AAChC,MAAA,YAAY,EAAEA,UAAU,IAAI4F,YAAY,CAAC/E,KAAK,CAACF,GAAG;AACpD,KAAC,CAAE;IAAAkF,QAAA,EAAA,CAEFC,eAAe,CAACjF,KAAK,CAACF,GAAG,CAAC,gBACzB+E,IAAA,CAAA,KAAA,EAAA;AACEpG,MAAAA,SAAS,EAAEyG,uBAAwB;AACnC,MAAA,aAAA,EAAY,wBAAwB;MAAAF,QAAA,EAAA,cAEpCG,GAAA,CAACC,iBAAiB,EAAA;AAChB3G,QAAAA,SAAS,EAAC,eAAe;AACzB,QAAA,aAAA,EAAY,gBAAgB;QAC5BE,GAAG,EAAEqB,KAAK,CAACF;AAAI,OAChB,CAAC,EACD,CAACR,iBAAiB,iBACjB6F,GAAA,CAACpH,QAAQ,EAAA;AACPsH,QAAAA,UAAU,EAAC,OAAO;AAClBC,QAAAA,WAAW,EAAC,UAAU;AACtBC,QAAAA,QAAQ,EAAEpG,UAAW;AACrBqG,QAAAA,IAAI,EAAEC,cAAe;AACrBC,QAAAA,WAAW,EAAE;AACX;AACAjH,UAAAA,SAAS,EAAE;SACX;QAAAuG,QAAA,eAEFG,GAAA,CAACrH,IAAI,EAAA;AAAAkH,UAAAA,QAAA,EACFT,OAAO,CAACoB,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,YAAA,IAAGzE,GAAG,GAAAyE,KAAA,CAAHzE,GAAG;cAAEuD,KAAK,GAAAkB,KAAA,CAALlB,KAAK;AAAKmB,cAAAA,UAAU,GAAAC,wBAAA,CAAAF,KAAA,EAAAG,SAAA,CAAA;YAAA,oBACvCC,aAAA,CAAChI,QAAQ,CAACiI,MAAM,EAAAtC,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAKkC,UAAU,CAAA,EAAA,EAAA,EAAA;AAAE1E,cAAAA,GAAG,EAAEA;AAAI,aAAA,CAAA,EACvCuD,KACc,CAAC;UAAA,CACnB;SACG;AAAC,OACC,CACX;AAAA,KACE,CAAC,gBAENS,GAAA,CAACe,iBAAiB,EAAA;AACVjH,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAAEgB,MAAAA,QAAQ,EAARA,QAAQ;AAAEL,MAAAA,qBAAqB,EAArBA,qBAAqB;AACvDT,MAAAA,UAAU,EAAEgH,SAAS,CAACpH,gBAAgB,CAAE;AACxCqH,MAAAA,gBAAgB,EAAEjH,UAAW;AAC7BkH,MAAAA,GAAG,EAAEjI,WAAY;AACjBS,MAAAA,YAAY,EAAE4B,wBAAyB;MACvCrB,MAAM,EAAEA,MAAM,IAAIkF;AAAW,KAC9B,CACF,eACDa,GAAA,CAACmB,KAAY,EAAA;AACLrH,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAAEF,MAAAA,gBAAgB,EAAhBA,gBAAgB;AACxCwH,MAAAA,MAAM,EAAE5G,kBAAmB;AAC3Bd,MAAAA,YAAY,EAAE4B,wBAAyB;MACvC+F,OAAO,EAAE,SAATA,OAAOA,GAAA;QAAA,OAAQ5G,qBAAqB,CAAC,KAAK,CAAC;MAAA,CAAC;AAC5CtB,MAAAA,gBAAgB,EAAE0D;AAAgC,KACnD,CAAC;AAAA,GACC,CAAC;AAEV,CACF;AAEA/D,aAAa,CAACwI,WAAW,GAAG,eAAe;;;;"}
1
+ {"version":3,"file":"ImageUploader.js","sources":["../app/javascript/src/components/ImageUploader/index.jsx"],"sourcesContent":["import { forwardRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent, noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Dropdown } from \"neetoui\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ImageDirectUpload from \"components/common/ImageDirectUpload\";\nimport ImageWithFallback from \"components/common/ImageWithFallback\";\nimport { IMAGE_WRAPPER_CLASSNAME } from \"components/constants\";\nimport { isNilOrEmpty, isNotNilOrEmpty } from \"components/ImageEditor/utils\";\nimport AssetLibrary from \"components/Modal\";\nimport { constructCloudflareImageURL } from \"components/utils\";\nimport { useCreateBlob } from \"hooks/useDirectUploads\";\nimport useImageUploader from \"hooks/useImageUploader\";\nimport { generateASCIIFileName, isGif } from \"hooks/utils\";\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nimport { DEFAULT_UPLOAD_CONFIG, OPTION_KEYS } from \"./constants\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst ImageUploader = forwardRef(\n (\n {\n onUploadComplete = noop,\n className = \"\",\n src = \"\",\n uploadConfig = {},\n fixedAspectRatio = {},\n defaultImageSize = {},\n isDisabled = false,\n onDrop,\n isOptionsDisabled = false,\n },\n uploaderRef\n ) => {\n const [isAssetLibraryOpen, setIsAssetLibraryOpen] = useState(false);\n const [image, setImage] = useState({ url: src });\n\n const { t } = useTranslation();\n\n const { mutateAsync: createBlob } = useCreateBlob();\n\n const uploadConfigWithDefaults = mergeRight(\n DEFAULT_UPLOAD_CONFIG,\n uploadConfig\n );\n\n const isCloudFlareImageUploader =\n globalProps.assetsUploaderService === CLOUD_FLARE;\n\n const handleDelete = () => {\n setImage({});\n onChange({\n url: \"\",\n signedId: \"\",\n key: \"\",\n filename: \"\",\n size: \"\",\n type: \"\",\n });\n };\n\n const onChange = file => onUploadComplete(file);\n\n const handleSuccess = attachedImage => {\n setImage(mergeRight(image, { url: attachedImage.metadata.url }));\n onChange({\n id: attachedImage.id,\n filename: generateASCIIFileName(attachedImage.filename),\n key: attachedImage.key,\n url: attachedImage.blobUrl,\n signedId: attachedImage.signedId,\n size: attachedImage.byteSize,\n type: attachedImage.contentType,\n });\n };\n\n const handleImageSelectionFromLibrary = image => {\n setImage(image);\n onChange(image);\n };\n\n const handleUploadComplete = async result => {\n if (IS_DEVELOPMENT_OR_HEROKU_ENV || isGif(result)) {\n handleSuccess(mergeRight(result, { metadata: { url: result.url } }));\n\n return;\n }\n\n const imageKitPayload = () => ({\n filename: generateASCIIFileName(result.name),\n byte_size: result.size,\n content_type: result.fileType,\n checksum: result.fileId,\n metadata: result,\n service_name: \"imagekitio\",\n });\n\n const cloudFlarePayload = () => ({\n filename: generateASCIIFileName(result.filename),\n content_type: result.contentType,\n byte_size: result.byteSize,\n checksum: result.id,\n metadata: {\n ...result.metadata,\n url: constructCloudflareImageURL(result.variants[0]),\n isCropped: false,\n },\n service_name: \"cloudflare_image\",\n });\n\n const payload = isCloudFlareImageUploader\n ? cloudFlarePayload()\n : imageKitPayload();\n\n const response = await createBlob(payload, {});\n const attachedImage = isCloudFlareImageUploader\n ? response\n : mergeRight(response, { metadata: { url: result.url } });\n handleSuccess(attachedImage);\n };\n\n const { uploadFile } = useImageUploader({\n onUploadComplete: handleUploadComplete,\n });\n\n const options = [\n {\n key: OPTION_KEYS.asset,\n label: t(\"neetoImageUploader.imageUpload.change\"),\n onClick: () => setIsAssetLibraryOpen(true),\n \"data-testid\": \"image-uploader-open-image-library-button\",\n },\n {\n key: OPTION_KEYS.remove,\n label: t(\"neetoImageUploader.imageUpload.remove\"),\n onClick: handleDelete,\n \"data-testid\": \"image-uploader-remove-button\",\n },\n ];\n\n return (\n <div\n className={classnames(className, {\n \"cursor-pointer\": true,\n \"cursor-not-allowed\": isDisabled,\n \"opacity-70\": isDisabled && isNilOrEmpty(image.url),\n })}\n >\n {isNotNilOrEmpty(image.url) ? (\n <div\n className={IMAGE_WRAPPER_CLASSNAME}\n data-testid=\"image-uploader-wrapper\"\n >\n <ImageWithFallback\n className=\"h-full w-full\"\n data-testid=\"uploaded-image\"\n src={image.url}\n />\n {!isOptionsDisabled && (\n <Dropdown\n buttonSize=\"small\"\n buttonStyle=\"tertiary\"\n disabled={isDisabled}\n icon={MenuHorizontal}\n buttonProps={{\n // eslint-disable-next-line @bigbinary/neeto/use-neetoui-classes\n className: \"absolute end-3 top-3 rounded-full\",\n }}\n >\n <Menu>\n {options.map(({ key, label, ...otherProps }) => (\n <MenuItem.Button {...otherProps} key={key}>\n {label}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n )}\n </div>\n ) : (\n <ImageDirectUpload\n {...{ defaultImageSize, setImage, setIsAssetLibraryOpen }}\n isDisabled={isPresent(fixedAspectRatio)}\n isUploadDisabled={isDisabled}\n ref={uploaderRef}\n uploadConfig={uploadConfigWithDefaults}\n onDrop={onDrop || uploadFile}\n />\n )}\n <AssetLibrary\n {...{ defaultImageSize, fixedAspectRatio }}\n isOpen={isAssetLibraryOpen}\n uploadConfig={uploadConfigWithDefaults}\n onClose={() => setIsAssetLibraryOpen(false)}\n onUploadComplete={handleImageSelectionFromLibrary}\n />\n </div>\n );\n }\n);\n\nImageUploader.displayName = \"ImageUploader\";\n\nexport default ImageUploader;\n"],"names":["Menu","Dropdown","MenuItem","ImageUploader","forwardRef","_ref","uploaderRef","_ref$onUploadComplete","onUploadComplete","noop","_ref$className","className","_ref$src","src","_ref$uploadConfig","uploadConfig","_ref$fixedAspectRatio","fixedAspectRatio","_ref$defaultImageSize","defaultImageSize","_ref$isDisabled","isDisabled","onDrop","_ref$isOptionsDisable","isOptionsDisabled","_useState","useState","_useState2","_slicedToArray","isAssetLibraryOpen","setIsAssetLibraryOpen","_useState3","url","_useState4","image","setImage","_useTranslation","useTranslation","t","_useCreateBlob","useCreateBlob","createBlob","mutateAsync","uploadConfigWithDefaults","mergeRight","DEFAULT_UPLOAD_CONFIG","isCloudFlareImageUploader","globalProps","assetsUploaderService","CLOUD_FLARE","handleDelete","onChange","signedId","key","filename","size","type","file","handleSuccess","attachedImage","metadata","id","generateASCIIFileName","blobUrl","byteSize","contentType","handleImageSelectionFromLibrary","handleUploadComplete","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","result","imageKitPayload","cloudFlarePayload","payload","response","wrap","_callee$","_context","prev","next","IS_DEVELOPMENT_OR_HEROKU_ENV","isGif","abrupt","name","byte_size","content_type","fileType","checksum","fileId","service_name","_objectSpread","constructCloudflareImageURL","variants","isCropped","sent","stop","_x","apply","arguments","_useImageUploader","useImageUploader","uploadFile","options","OPTION_KEYS","asset","label","onClick","remove","_jsxs","classnames","isNilOrEmpty","children","isNotNilOrEmpty","IMAGE_WRAPPER_CLASSNAME","_jsx","ImageWithFallback","buttonSize","buttonStyle","disabled","icon","MenuHorizontal","buttonProps","map","_ref3","otherProps","_objectWithoutProperties","_excluded","_createElement","Button","ImageDirectUpload","isPresent","isUploadDisabled","ref","AssetLibrary","isOpen","onClose","displayName"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuBA,IAAQA,IAAI,GAAeC,QAAQ,CAA3BD,IAAI;EAAEE,QAAQ,GAAKD,QAAQ,CAArBC,QAAQ;AAEtB,IAAMC,aAAa,gBAAGC,UAAU,CAC9B,UAAAC,IAAA,EAYEC,WAAW,EACR;AAAA,EAAA,IAAAC,qBAAA,GAAAF,IAAA,CAXDG,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAGE,IAAI,GAAAF,qBAAA;IAAAG,cAAA,GAAAL,IAAA,CACvBM,SAAS;AAATA,IAAAA,SAAS,GAAAD,cAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,cAAA;IAAAE,QAAA,GAAAP,IAAA,CACdQ,GAAG;AAAHA,IAAAA,GAAG,GAAAD,QAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,QAAA;IAAAE,iBAAA,GAAAT,IAAA,CACRU,YAAY;AAAZA,IAAAA,YAAY,GAAAD,iBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,iBAAA;IAAAE,qBAAA,GAAAX,IAAA,CACjBY,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,qBAAA,GAAAb,IAAA,CACrBc,gBAAgB;AAAhBA,IAAAA,gBAAgB,GAAAD,qBAAA,KAAA,MAAA,GAAG,EAAE,GAAAA,qBAAA;IAAAE,eAAA,GAAAf,IAAA,CACrBgB,UAAU;AAAVA,IAAAA,UAAU,GAAAD,eAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,eAAA;IAClBE,MAAM,GAAAjB,IAAA,CAANiB,MAAM;IAAAC,qBAAA,GAAAlB,IAAA,CACNmB,iBAAiB;AAAjBA,IAAAA,iBAAiB,GAAAD,qBAAA,KAAA,MAAA,GAAG,KAAK,GAAAA,qBAAA;AAI3B,EAAA,IAAAE,SAAA,GAAoDC,QAAQ,CAAC,KAAK,CAAC;IAAAC,UAAA,GAAAC,cAAA,CAAAH,SAAA,EAAA,CAAA,CAAA;AAA5DI,IAAAA,kBAAkB,GAAAF,UAAA,CAAA,CAAA,CAAA;AAAEG,IAAAA,qBAAqB,GAAAH,UAAA,CAAA,CAAA,CAAA;EAChD,IAAAI,UAAA,GAA0BL,QAAQ,CAAC;AAAEM,MAAAA,GAAG,EAAEnB;AAAI,KAAC,CAAC;IAAAoB,UAAA,GAAAL,cAAA,CAAAG,UAAA,EAAA,CAAA,CAAA;AAAzCG,IAAAA,KAAK,GAAAD,UAAA,CAAA,CAAA,CAAA;AAAEE,IAAAA,QAAQ,GAAAF,UAAA,CAAA,CAAA,CAAA;AAEtB,EAAA,IAAAG,eAAA,GAAcC,cAAc,EAAE;IAAtBC,CAAC,GAAAF,eAAA,CAADE,CAAC;AAET,EAAA,IAAAC,cAAA,GAAoCC,aAAa,EAAE;IAA9BC,UAAU,GAAAF,cAAA,CAAvBG,WAAW;AAEnB,EAAA,IAAMC,wBAAwB,GAAGC,UAAU,CACzCC,qBAAqB,EACrB9B,YACF,CAAC;AAED,EAAA,IAAM+B,yBAAyB,GAC7BC,WAAW,CAACC,qBAAqB,KAAKC,WAAW;AAEnD,EAAA,IAAMC,YAAY,GAAG,SAAfA,YAAYA,GAAS;IACzBf,QAAQ,CAAC,EAAE,CAAC;AACZgB,IAAAA,QAAQ,CAAC;AACPnB,MAAAA,GAAG,EAAE,EAAE;AACPoB,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,GAAG,EAAE,EAAE;AACPC,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,IAAI,EAAE,EAAE;AACRC,MAAAA,IAAI,EAAE;AACR,KAAC,CAAC;EACJ,CAAC;AAED,EAAA,IAAML,QAAQ,GAAG,SAAXA,QAAQA,CAAGM,IAAI,EAAA;IAAA,OAAIjD,gBAAgB,CAACiD,IAAI,CAAC;AAAA,EAAA,CAAA;AAE/C,EAAA,IAAMC,aAAa,GAAG,SAAhBA,aAAaA,CAAGC,aAAa,EAAI;AACrCxB,IAAAA,QAAQ,CAACS,UAAU,CAACV,KAAK,EAAE;AAAEF,MAAAA,GAAG,EAAE2B,aAAa,CAACC,QAAQ,CAAC5B;AAAI,KAAC,CAAC,CAAC;AAChEmB,IAAAA,QAAQ,CAAC;MACPU,EAAE,EAAEF,aAAa,CAACE,EAAE;AACpBP,MAAAA,QAAQ,EAAEQ,qBAAqB,CAACH,aAAa,CAACL,QAAQ,CAAC;MACvDD,GAAG,EAAEM,aAAa,CAACN,GAAG;MACtBrB,GAAG,EAAE2B,aAAa,CAACI,OAAO;MAC1BX,QAAQ,EAAEO,aAAa,CAACP,QAAQ;MAChCG,IAAI,EAAEI,aAAa,CAACK,QAAQ;MAC5BR,IAAI,EAAEG,aAAa,CAACM;AACtB,KAAC,CAAC;EACJ,CAAC;AAED,EAAA,IAAMC,+BAA+B,GAAG,SAAlCA,+BAA+BA,CAAGhC,KAAK,EAAI;IAC/CC,QAAQ,CAACD,KAAK,CAAC;IACfiB,QAAQ,CAACjB,KAAK,CAAC;EACjB,CAAC;AAED,EAAA,IAAMiC,oBAAoB,gBAAA,YAAA;IAAA,IAAAC,KAAA,GAAAC,iBAAA,cAAAC,mBAAA,CAAAC,IAAA,CAAG,SAAAC,OAAAA,CAAMC,MAAM,EAAA;MAAA,IAAAC,eAAA,EAAAC,iBAAA,EAAAC,OAAA,EAAAC,QAAA,EAAAlB,aAAA;AAAA,MAAA,OAAAW,mBAAA,CAAAQ,IAAA,CAAA,SAAAC,SAAAC,QAAA,EAAA;AAAA,QAAA,OAAA,CAAA,EAAA,QAAAA,QAAA,CAAAC,IAAA,GAAAD,QAAA,CAAAE,IAAA;AAAA,UAAA,KAAA,CAAA;AAAA,YAAA,IAAA,EACnCC,4BAA4B,IAAIC,KAAK,CAACX,MAAM,CAAC,CAAA,EAAA;AAAAO,cAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,cAAA;AAAA,YAAA;AAC/CxB,YAAAA,aAAa,CAACd,UAAU,CAAC6B,MAAM,EAAE;AAAEb,cAAAA,QAAQ,EAAE;gBAAE5B,GAAG,EAAEyC,MAAM,CAACzC;AAAI;AAAE,aAAC,CAAC,CAAC;YAAC,OAAAgD,QAAA,CAAAK,MAAA,CAAA,QAAA,CAAA;AAAA,UAAA,KAAA,CAAA;YAKjEX,eAAe,GAAG,SAAlBA,eAAeA,GAAA;cAAA,OAAU;AAC7BpB,gBAAAA,QAAQ,EAAEQ,qBAAqB,CAACW,MAAM,CAACa,IAAI,CAAC;gBAC5CC,SAAS,EAAEd,MAAM,CAAClB,IAAI;gBACtBiC,YAAY,EAAEf,MAAM,CAACgB,QAAQ;gBAC7BC,QAAQ,EAAEjB,MAAM,CAACkB,MAAM;AACvB/B,gBAAAA,QAAQ,EAAEa,MAAM;AAChBmB,gBAAAA,YAAY,EAAE;eACf;YAAA,CAAC;YAEIjB,iBAAiB,GAAG,SAApBA,iBAAiBA,GAAA;cAAA,OAAU;AAC/BrB,gBAAAA,QAAQ,EAAEQ,qBAAqB,CAACW,MAAM,CAACnB,QAAQ,CAAC;gBAChDkC,YAAY,EAAEf,MAAM,CAACR,WAAW;gBAChCsB,SAAS,EAAEd,MAAM,CAACT,QAAQ;gBAC1B0B,QAAQ,EAAEjB,MAAM,CAACZ,EAAE;AACnBD,gBAAAA,QAAQ,EAAAiC,aAAA,CAAAA,aAAA,CAAA,EAAA,EACHpB,MAAM,CAACb,QAAQ,CAAA,EAAA,EAAA,EAAA;kBAClB5B,GAAG,EAAE8D,2BAA2B,CAACrB,MAAM,CAACsB,QAAQ,CAAC,CAAC,CAAC,CAAC;AACpDC,kBAAAA,SAAS,EAAE;iBAAK,CACjB;AACDJ,gBAAAA,YAAY,EAAE;eACf;YAAA,CAAC;YAEIhB,OAAO,GAAG9B,yBAAyB,GACrC6B,iBAAiB,EAAE,GACnBD,eAAe,EAAE;AAAAM,YAAAA,QAAA,CAAAE,IAAA,GAAA,CAAA;AAAA,YAAA,OAEEzC,UAAU,CAACmC,OAAO,EAAE,EAAE,CAAC;AAAA,UAAA,KAAA,CAAA;YAAxCC,QAAQ,GAAAG,QAAA,CAAAiB,IAAA;YACRtC,aAAa,GAAGb,yBAAyB,GAC3C+B,QAAQ,GACRjC,UAAU,CAACiC,QAAQ,EAAE;AAAEjB,cAAAA,QAAQ,EAAE;gBAAE5B,GAAG,EAAEyC,MAAM,CAACzC;AAAI;AAAE,aAAC,CAAC;YAC3D0B,aAAa,CAACC,aAAa,CAAC;AAAC,UAAA,KAAA,EAAA;AAAA,UAAA,KAAA,KAAA;YAAA,OAAAqB,QAAA,CAAAkB,IAAA,EAAA;AAAA;AAAA,MAAA,CAAA,EAAA1B,OAAA,CAAA;IAAA,CAC9B,CAAA,CAAA;IAAA,OAAA,SAtCKL,oBAAoBA,CAAAgC,EAAA,EAAA;AAAA,MAAA,OAAA/B,KAAA,CAAAgC,KAAA,CAAA,IAAA,EAAAC,SAAA,CAAA;AAAA,IAAA,CAAA;EAAA,CAAA,EAsCzB;EAED,IAAAC,iBAAA,GAAuBC,gBAAgB,CAAC;AACtC/F,MAAAA,gBAAgB,EAAE2D;AACpB,KAAC,CAAC;IAFMqC,UAAU,GAAAF,iBAAA,CAAVE,UAAU;EAIlB,IAAMC,OAAO,GAAG,CACd;IACEpD,GAAG,EAAEqD,WAAW,CAACC,KAAK;AACtBC,IAAAA,KAAK,EAAEtE,CAAC,CAAC,uCAAuC,CAAC;IACjDuE,OAAO,EAAE,SAATA,OAAOA,GAAA;MAAA,OAAQ/E,qBAAqB,CAAC,IAAI,CAAC;AAAA,IAAA,CAAA;AAC1C,IAAA,aAAa,EAAE;AACjB,GAAC,EACD;IACEuB,GAAG,EAAEqD,WAAW,CAACI,MAAM;AACvBF,IAAAA,KAAK,EAAEtE,CAAC,CAAC,uCAAuC,CAAC;AACjDuE,IAAAA,OAAO,EAAE3D,YAAY;AACrB,IAAA,aAAa,EAAE;AACjB,GAAC,CACF;AAED,EAAA,oBACE6D,IAAA,CAAA,KAAA,EAAA;AACEpG,IAAAA,SAAS,EAAEqG,UAAU,CAACrG,SAAS,EAAE;AAC/B,MAAA,gBAAgB,EAAE,IAAI;AACtB,MAAA,oBAAoB,EAAEU,UAAU;AAChC,MAAA,YAAY,EAAEA,UAAU,IAAI4F,YAAY,CAAC/E,KAAK,CAACF,GAAG;AACpD,KAAC,CAAE;IAAAkF,QAAA,EAAA,CAEFC,eAAe,CAACjF,KAAK,CAACF,GAAG,CAAC,gBACzB+E,IAAA,CAAA,KAAA,EAAA;AACEpG,MAAAA,SAAS,EAAEyG,uBAAwB;AACnC,MAAA,aAAA,EAAY,wBAAwB;MAAAF,QAAA,EAAA,cAEpCG,GAAA,CAACC,iBAAiB,EAAA;AAChB3G,QAAAA,SAAS,EAAC,eAAe;AACzB,QAAA,aAAA,EAAY,gBAAgB;QAC5BE,GAAG,EAAEqB,KAAK,CAACF;AAAI,OAChB,CAAC,EACD,CAACR,iBAAiB,iBACjB6F,GAAA,CAACpH,QAAQ,EAAA;AACPsH,QAAAA,UAAU,EAAC,OAAO;AAClBC,QAAAA,WAAW,EAAC,UAAU;AACtBC,QAAAA,QAAQ,EAAEpG,UAAW;AACrBqG,QAAAA,IAAI,EAAEC,cAAe;AACrBC,QAAAA,WAAW,EAAE;AACX;AACAjH,UAAAA,SAAS,EAAE;SACX;QAAAuG,QAAA,eAEFG,GAAA,CAACrH,IAAI,EAAA;AAAAkH,UAAAA,QAAA,EACFT,OAAO,CAACoB,GAAG,CAAC,UAAAC,KAAA,EAAA;AAAA,YAAA,IAAGzE,GAAG,GAAAyE,KAAA,CAAHzE,GAAG;cAAEuD,KAAK,GAAAkB,KAAA,CAALlB,KAAK;AAAKmB,cAAAA,UAAU,GAAAC,wBAAA,CAAAF,KAAA,EAAAG,SAAA,CAAA;YAAA,oBACvCC,aAAA,CAAChI,QAAQ,CAACiI,MAAM,EAAAtC,aAAA,CAAAA,aAAA,CAAA,EAAA,EAAKkC,UAAU,CAAA,EAAA,EAAA,EAAA;AAAE1E,cAAAA,GAAG,EAAEA;AAAI,aAAA,CAAA,EACvCuD,KACc,CAAC;UAAA,CACnB;SACG;AAAC,OACC,CACX;AAAA,KACE,CAAC,gBAENS,GAAA,CAACe,iBAAiB,EAAA;AACVjH,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAAEgB,MAAAA,QAAQ,EAARA,QAAQ;AAAEL,MAAAA,qBAAqB,EAArBA,qBAAqB;AACvDT,MAAAA,UAAU,EAAEgH,SAAS,CAACpH,gBAAgB,CAAE;AACxCqH,MAAAA,gBAAgB,EAAEjH,UAAW;AAC7BkH,MAAAA,GAAG,EAAEjI,WAAY;AACjBS,MAAAA,YAAY,EAAE4B,wBAAyB;MACvCrB,MAAM,EAAEA,MAAM,IAAIkF;AAAW,KAC9B,CACF,eACDa,GAAA,CAACmB,KAAY,EAAA;AACLrH,MAAAA,gBAAgB,EAAhBA,gBAAgB;AAAEF,MAAAA,gBAAgB,EAAhBA,gBAAgB;AACxCwH,MAAAA,MAAM,EAAE5G,kBAAmB;AAC3Bd,MAAAA,YAAY,EAAE4B,wBAAyB;MACvC+F,OAAO,EAAE,SAATA,OAAOA,GAAA;QAAA,OAAQ5G,qBAAqB,CAAC,KAAK,CAAC;MAAA,CAAC;AAC5CtB,MAAAA,gBAAgB,EAAE0D;AAAgC,KACnD,CAAC;AAAA,GACC,CAAC;AAEV,CACF;AAEA/D,aAAa,CAACwI,WAAW,GAAG,eAAe;;;;"}
@@ -115,7 +115,7 @@ var ImageUploader = /*#__PURE__*/g.forwardRef(function (_ref, uploaderRef) {
115
115
  };
116
116
  var handleUploadComplete = /*#__PURE__*/function () {
117
117
  var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime.mark(function _callee(result) {
118
- var imageKitPayload, cloudFlarePayload, payload, response;
118
+ var imageKitPayload, cloudFlarePayload, payload, response, attachedImage;
119
119
  return _regeneratorRuntime.wrap(function _callee$(_context) {
120
120
  while (1) switch (_context.prev = _context.next) {
121
121
  case 0:
@@ -158,8 +158,13 @@ var ImageUploader = /*#__PURE__*/g.forwardRef(function (_ref, uploaderRef) {
158
158
  return createBlob(payload, {});
159
159
  case 8:
160
160
  response = _context.sent;
161
- handleSuccess(response);
162
- case 10:
161
+ attachedImage = isCloudFlareImageUploader ? response : ramda.mergeRight(response, {
162
+ metadata: {
163
+ url: result.url
164
+ }
165
+ });
166
+ handleSuccess(attachedImage);
167
+ case 11:
163
168
  case "end":
164
169
  return _context.stop();
165
170
  }
@@ -1 +1 @@
1
- {"version":3,"file":"ImageUploader.js","sources":["../../app/javascript/src/components/ImageUploader/index.jsx"],"sourcesContent":["import { forwardRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent, noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Dropdown } from \"neetoui\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ImageDirectUpload from \"components/common/ImageDirectUpload\";\nimport ImageWithFallback from \"components/common/ImageWithFallback\";\nimport { IMAGE_WRAPPER_CLASSNAME } from \"components/constants\";\nimport { isNilOrEmpty, isNotNilOrEmpty } from \"components/ImageEditor/utils\";\nimport AssetLibrary from \"components/Modal\";\nimport { constructCloudflareImageURL } from \"components/utils\";\nimport { useCreateBlob } from \"hooks/useDirectUploads\";\nimport useImageUploader from \"hooks/useImageUploader\";\nimport { generateASCIIFileName, isGif } from \"hooks/utils\";\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nimport { DEFAULT_UPLOAD_CONFIG, OPTION_KEYS } from \"./constants\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst ImageUploader = forwardRef(\n (\n {\n onUploadComplete = noop,\n className = \"\",\n src = \"\",\n uploadConfig = {},\n fixedAspectRatio = {},\n defaultImageSize = {},\n isDisabled = false,\n onDrop,\n isOptionsDisabled = false,\n },\n uploaderRef\n ) => {\n const [isAssetLibraryOpen, setIsAssetLibraryOpen] = useState(false);\n const [image, setImage] = useState({ url: src });\n\n const { t } = useTranslation();\n\n const { mutateAsync: createBlob } = useCreateBlob();\n\n const uploadConfigWithDefaults = mergeRight(\n DEFAULT_UPLOAD_CONFIG,\n uploadConfig\n );\n\n const isCloudFlareImageUploader =\n globalProps.assetsUploaderService === CLOUD_FLARE;\n\n const handleDelete = () => {\n setImage({});\n onChange({\n url: \"\",\n signedId: \"\",\n key: \"\",\n filename: \"\",\n size: \"\",\n type: \"\",\n });\n };\n\n const onChange = file => onUploadComplete(file);\n\n const handleSuccess = attachedImage => {\n setImage(mergeRight(image, { url: attachedImage.metadata.url }));\n onChange({\n id: attachedImage.id,\n filename: generateASCIIFileName(attachedImage.filename),\n key: attachedImage.key,\n url: attachedImage.blobUrl,\n signedId: attachedImage.signedId,\n size: attachedImage.byteSize,\n type: attachedImage.contentType,\n });\n };\n\n const handleImageSelectionFromLibrary = image => {\n setImage(image);\n onChange(image);\n };\n\n const handleUploadComplete = async result => {\n if (IS_DEVELOPMENT_OR_HEROKU_ENV || isGif(result)) {\n handleSuccess(mergeRight(result, { metadata: { url: result.url } }));\n\n return;\n }\n\n const imageKitPayload = () => ({\n filename: generateASCIIFileName(result.name),\n byte_size: result.size,\n content_type: result.fileType,\n checksum: result.fileId,\n metadata: result,\n service_name: \"imagekitio\",\n });\n\n const cloudFlarePayload = () => ({\n filename: generateASCIIFileName(result.filename),\n content_type: result.contentType,\n byte_size: result.byteSize,\n checksum: result.id,\n metadata: {\n ...result.metadata,\n url: constructCloudflareImageURL(result.variants[0]),\n isCropped: false,\n },\n service_name: \"cloudflare_image\",\n });\n\n const payload = isCloudFlareImageUploader\n ? cloudFlarePayload()\n : imageKitPayload();\n\n const response = await createBlob(payload, {});\n handleSuccess(response);\n };\n\n const { uploadFile } = useImageUploader({\n onUploadComplete: handleUploadComplete,\n });\n\n const options = [\n {\n key: OPTION_KEYS.asset,\n label: t(\"neetoImageUploader.imageUpload.change\"),\n onClick: () => setIsAssetLibraryOpen(true),\n \"data-testid\": \"image-uploader-open-image-library-button\",\n },\n {\n key: OPTION_KEYS.remove,\n label: t(\"neetoImageUploader.imageUpload.remove\"),\n onClick: handleDelete,\n \"data-testid\": \"image-uploader-remove-button\",\n },\n ];\n\n return (\n <div\n className={classnames(className, {\n \"cursor-pointer\": true,\n \"cursor-not-allowed\": isDisabled,\n \"opacity-70\": isDisabled && isNilOrEmpty(image.url),\n })}\n >\n {isNotNilOrEmpty(image.url) ? (\n <div\n className={IMAGE_WRAPPER_CLASSNAME}\n data-testid=\"image-uploader-wrapper\"\n >\n <ImageWithFallback\n className=\"h-full w-full\"\n data-testid=\"uploaded-image\"\n src={image.url}\n />\n {!isOptionsDisabled && (\n <Dropdown\n buttonSize=\"small\"\n buttonStyle=\"tertiary\"\n disabled={isDisabled}\n icon={MenuHorizontal}\n buttonProps={{\n // eslint-disable-next-line @bigbinary/neeto/use-neetoui-classes\n className: \"absolute end-3 top-3 rounded-full\",\n }}\n >\n <Menu>\n {options.map(({ key, label, ...otherProps }) => (\n <MenuItem.Button {...otherProps} key={key}>\n {label}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n )}\n </div>\n ) : (\n <ImageDirectUpload\n {...{ defaultImageSize, setImage, setIsAssetLibraryOpen }}\n isDisabled={isPresent(fixedAspectRatio)}\n isUploadDisabled={isDisabled}\n ref={uploaderRef}\n uploadConfig={uploadConfigWithDefaults}\n onDrop={onDrop || uploadFile}\n />\n )}\n <AssetLibrary\n {...{ defaultImageSize, fixedAspectRatio }}\n isOpen={isAssetLibraryOpen}\n uploadConfig={uploadConfigWithDefaults}\n onClose={() => setIsAssetLibraryOpen(false)}\n onUploadComplete={handleImageSelectionFromLibrary}\n />\n </div>\n );\n }\n);\n\nImageUploader.displayName = \"ImageUploader\";\n\nexport default ImageUploader;\n"],"names":["Menu","Dropdown","MenuItem","ImageUploader","forwardRef","_ref","uploaderRef","_ref$onUploadComplete","onUploadComplete","noop","_ref$className","className","_ref$src","src","_ref$uploadConfig","uploadConfig","_ref$fixedAspectRatio","fixedAspectRatio","_ref$defaultImageSize","defaultImageSize","_ref$isDisabled","isDisabled","onDrop","_ref$isOptionsDisable","isOptionsDisabled","_useState","useState","_useState2","_slicedToArray","isAssetLibraryOpen","setIsAssetLibraryOpen","_useState3","url","_useState4","image","setImage","_useTranslation","useTranslation","t","_useCreateBlob","useCreateBlob","createBlob","mutateAsync","uploadConfigWithDefaults","mergeRight","DEFAULT_UPLOAD_CONFIG","isCloudFlareImageUploader","globalProps","assetsUploaderService","CLOUD_FLARE","handleDelete","onChange","signedId","key","filename","size","type","file","handleSuccess","attachedImage","metadata","id","generateASCIIFileName","blobUrl","byteSize","contentType","handleImageSelectionFromLibrary","handleUploadComplete","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","result","imageKitPayload","cloudFlarePayload","payload","response","wrap","_callee$","_context","prev","next","IS_DEVELOPMENT_OR_HEROKU_ENV","isGif","abrupt","name","byte_size","content_type","fileType","checksum","fileId","service_name","_objectSpread","constructCloudflareImageURL","variants","isCropped","sent","stop","_x","apply","arguments","_useImageUploader","useImageUploader","uploadFile","options","OPTION_KEYS","asset","label","onClick","remove","_jsxs","classnames","isNilOrEmpty","children","isNotNilOrEmpty","IMAGE_WRAPPER_CLASSNAME","_jsx","ImageWithFallback","buttonSize","buttonStyle","disabled","icon","MenuHorizontal","buttonProps","map","_ref3","otherProps","_objectWithoutProperties","_excluded","_createElement","Button","ImageDirectUpload","isPresent","isUploadDisabled","ref","AssetLibrary","isOpen","onClose","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"ImageUploader.js","sources":["../../app/javascript/src/components/ImageUploader/index.jsx"],"sourcesContent":["import { forwardRef, useState } from \"react\";\n\nimport classnames from \"classnames\";\nimport { isPresent, noop } from \"neetocist\";\nimport { globalProps } from \"neetocommons/initializers\";\nimport { MenuHorizontal } from \"neetoicons\";\nimport { Dropdown } from \"neetoui\";\nimport { mergeRight } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport ImageDirectUpload from \"components/common/ImageDirectUpload\";\nimport ImageWithFallback from \"components/common/ImageWithFallback\";\nimport { IMAGE_WRAPPER_CLASSNAME } from \"components/constants\";\nimport { isNilOrEmpty, isNotNilOrEmpty } from \"components/ImageEditor/utils\";\nimport AssetLibrary from \"components/Modal\";\nimport { constructCloudflareImageURL } from \"components/utils\";\nimport { useCreateBlob } from \"hooks/useDirectUploads\";\nimport useImageUploader from \"hooks/useImageUploader\";\nimport { generateASCIIFileName, isGif } from \"hooks/utils\";\nimport { CLOUD_FLARE, IS_DEVELOPMENT_OR_HEROKU_ENV } from \"src/constants\";\n\nimport { DEFAULT_UPLOAD_CONFIG, OPTION_KEYS } from \"./constants\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst ImageUploader = forwardRef(\n (\n {\n onUploadComplete = noop,\n className = \"\",\n src = \"\",\n uploadConfig = {},\n fixedAspectRatio = {},\n defaultImageSize = {},\n isDisabled = false,\n onDrop,\n isOptionsDisabled = false,\n },\n uploaderRef\n ) => {\n const [isAssetLibraryOpen, setIsAssetLibraryOpen] = useState(false);\n const [image, setImage] = useState({ url: src });\n\n const { t } = useTranslation();\n\n const { mutateAsync: createBlob } = useCreateBlob();\n\n const uploadConfigWithDefaults = mergeRight(\n DEFAULT_UPLOAD_CONFIG,\n uploadConfig\n );\n\n const isCloudFlareImageUploader =\n globalProps.assetsUploaderService === CLOUD_FLARE;\n\n const handleDelete = () => {\n setImage({});\n onChange({\n url: \"\",\n signedId: \"\",\n key: \"\",\n filename: \"\",\n size: \"\",\n type: \"\",\n });\n };\n\n const onChange = file => onUploadComplete(file);\n\n const handleSuccess = attachedImage => {\n setImage(mergeRight(image, { url: attachedImage.metadata.url }));\n onChange({\n id: attachedImage.id,\n filename: generateASCIIFileName(attachedImage.filename),\n key: attachedImage.key,\n url: attachedImage.blobUrl,\n signedId: attachedImage.signedId,\n size: attachedImage.byteSize,\n type: attachedImage.contentType,\n });\n };\n\n const handleImageSelectionFromLibrary = image => {\n setImage(image);\n onChange(image);\n };\n\n const handleUploadComplete = async result => {\n if (IS_DEVELOPMENT_OR_HEROKU_ENV || isGif(result)) {\n handleSuccess(mergeRight(result, { metadata: { url: result.url } }));\n\n return;\n }\n\n const imageKitPayload = () => ({\n filename: generateASCIIFileName(result.name),\n byte_size: result.size,\n content_type: result.fileType,\n checksum: result.fileId,\n metadata: result,\n service_name: \"imagekitio\",\n });\n\n const cloudFlarePayload = () => ({\n filename: generateASCIIFileName(result.filename),\n content_type: result.contentType,\n byte_size: result.byteSize,\n checksum: result.id,\n metadata: {\n ...result.metadata,\n url: constructCloudflareImageURL(result.variants[0]),\n isCropped: false,\n },\n service_name: \"cloudflare_image\",\n });\n\n const payload = isCloudFlareImageUploader\n ? cloudFlarePayload()\n : imageKitPayload();\n\n const response = await createBlob(payload, {});\n const attachedImage = isCloudFlareImageUploader\n ? response\n : mergeRight(response, { metadata: { url: result.url } });\n handleSuccess(attachedImage);\n };\n\n const { uploadFile } = useImageUploader({\n onUploadComplete: handleUploadComplete,\n });\n\n const options = [\n {\n key: OPTION_KEYS.asset,\n label: t(\"neetoImageUploader.imageUpload.change\"),\n onClick: () => setIsAssetLibraryOpen(true),\n \"data-testid\": \"image-uploader-open-image-library-button\",\n },\n {\n key: OPTION_KEYS.remove,\n label: t(\"neetoImageUploader.imageUpload.remove\"),\n onClick: handleDelete,\n \"data-testid\": \"image-uploader-remove-button\",\n },\n ];\n\n return (\n <div\n className={classnames(className, {\n \"cursor-pointer\": true,\n \"cursor-not-allowed\": isDisabled,\n \"opacity-70\": isDisabled && isNilOrEmpty(image.url),\n })}\n >\n {isNotNilOrEmpty(image.url) ? (\n <div\n className={IMAGE_WRAPPER_CLASSNAME}\n data-testid=\"image-uploader-wrapper\"\n >\n <ImageWithFallback\n className=\"h-full w-full\"\n data-testid=\"uploaded-image\"\n src={image.url}\n />\n {!isOptionsDisabled && (\n <Dropdown\n buttonSize=\"small\"\n buttonStyle=\"tertiary\"\n disabled={isDisabled}\n icon={MenuHorizontal}\n buttonProps={{\n // eslint-disable-next-line @bigbinary/neeto/use-neetoui-classes\n className: \"absolute end-3 top-3 rounded-full\",\n }}\n >\n <Menu>\n {options.map(({ key, label, ...otherProps }) => (\n <MenuItem.Button {...otherProps} key={key}>\n {label}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n )}\n </div>\n ) : (\n <ImageDirectUpload\n {...{ defaultImageSize, setImage, setIsAssetLibraryOpen }}\n isDisabled={isPresent(fixedAspectRatio)}\n isUploadDisabled={isDisabled}\n ref={uploaderRef}\n uploadConfig={uploadConfigWithDefaults}\n onDrop={onDrop || uploadFile}\n />\n )}\n <AssetLibrary\n {...{ defaultImageSize, fixedAspectRatio }}\n isOpen={isAssetLibraryOpen}\n uploadConfig={uploadConfigWithDefaults}\n onClose={() => setIsAssetLibraryOpen(false)}\n onUploadComplete={handleImageSelectionFromLibrary}\n />\n </div>\n );\n }\n);\n\nImageUploader.displayName = \"ImageUploader\";\n\nexport default ImageUploader;\n"],"names":["Menu","Dropdown","MenuItem","ImageUploader","forwardRef","_ref","uploaderRef","_ref$onUploadComplete","onUploadComplete","noop","_ref$className","className","_ref$src","src","_ref$uploadConfig","uploadConfig","_ref$fixedAspectRatio","fixedAspectRatio","_ref$defaultImageSize","defaultImageSize","_ref$isDisabled","isDisabled","onDrop","_ref$isOptionsDisable","isOptionsDisabled","_useState","useState","_useState2","_slicedToArray","isAssetLibraryOpen","setIsAssetLibraryOpen","_useState3","url","_useState4","image","setImage","_useTranslation","useTranslation","t","_useCreateBlob","useCreateBlob","createBlob","mutateAsync","uploadConfigWithDefaults","mergeRight","DEFAULT_UPLOAD_CONFIG","isCloudFlareImageUploader","globalProps","assetsUploaderService","CLOUD_FLARE","handleDelete","onChange","signedId","key","filename","size","type","file","handleSuccess","attachedImage","metadata","id","generateASCIIFileName","blobUrl","byteSize","contentType","handleImageSelectionFromLibrary","handleUploadComplete","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","result","imageKitPayload","cloudFlarePayload","payload","response","wrap","_callee$","_context","prev","next","IS_DEVELOPMENT_OR_HEROKU_ENV","isGif","abrupt","name","byte_size","content_type","fileType","checksum","fileId","service_name","_objectSpread","constructCloudflareImageURL","variants","isCropped","sent","stop","_x","apply","arguments","_useImageUploader","useImageUploader","uploadFile","options","OPTION_KEYS","asset","label","onClick","remove","_jsxs","classnames","isNilOrEmpty","children","isNotNilOrEmpty","IMAGE_WRAPPER_CLASSNAME","_jsx","ImageWithFallback","buttonSize","buttonStyle","disabled","icon","MenuHorizontal","buttonProps","map","_ref3","otherProps","_objectWithoutProperties","_excluded","_createElement","Button","ImageDirectUpload","isPresent","isUploadDisabled","ref","AssetLibrary","isOpen","onClose","displayName"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-image-uploader-frontend",
3
- "version": "3.0.7",
3
+ "version": "3.0.8-beta.1",
4
4
  "license": "UNLICENSED",
5
5
  "bugs": {
6
6
  "url": "https://github.com/bigbinary/neeto-image-uploader-nano/issues"
@@ -66,13 +66,13 @@
66
66
  "@babel/preset-typescript": "7.26.0",
67
67
  "@babel/runtime": "7.28.6",
68
68
  "@bigbinary/babel-preset-neeto": "^1.0.3",
69
- "@bigbinary/eslint-plugin-neeto": "1.8.3",
69
+ "@bigbinary/eslint-plugin-neeto": "1.9.0",
70
70
  "@bigbinary/neeto-cist": "1.0.17",
71
71
  "@bigbinary/neeto-commons-frontend": "4.13.111",
72
72
  "@bigbinary/neeto-editor": "1.47.99",
73
73
  "@bigbinary/neeto-filters-frontend": "4.3.32",
74
74
  "@bigbinary/neeto-icons": "1.20.86",
75
- "@bigbinary/neeto-molecules": "4.1.34",
75
+ "@bigbinary/neeto-molecules": "4.1.38",
76
76
  "@bigbinary/neeto-team-members-frontend": "5.0.26",
77
77
  "@bigbinary/neetoui": "8.3.78",
78
78
  "@emotion/is-prop-valid": "1.2.0",
@@ -191,7 +191,7 @@
191
191
  "@bigbinary/neeto-editor": "1.47.99",
192
192
  "@bigbinary/neeto-filters-frontend": "4.3.32",
193
193
  "@bigbinary/neeto-icons": "1.20.86",
194
- "@bigbinary/neeto-molecules": "4.1.34",
194
+ "@bigbinary/neeto-molecules": "4.1.38",
195
195
  "@bigbinary/neeto-team-members-frontend": "5.0.26",
196
196
  "@bigbinary/neetoui": "8.3.78",
197
197
  "@honeybadger-io/js": "6.10.1",