@bigbinary/neeto-editor 1.47.83 → 1.47.85

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 (64) hide show
  1. package/dist/Attachments.js +3 -1
  2. package/dist/Attachments.js.map +1 -1
  3. package/dist/Editor.js +4 -1
  4. package/dist/Editor.js.map +1 -1
  5. package/dist/FormikEditor.js +2 -1
  6. package/dist/FormikEditor.js.map +1 -1
  7. package/dist/{chunk-DwCDGDWR.js → chunk-Ce_9AGLE.js} +102 -45
  8. package/dist/chunk-Ce_9AGLE.js.map +1 -0
  9. package/dist/{chunk-Cnu9vwgs.js → chunk-kmQw9kVc.js} +4 -2
  10. package/dist/{chunk-Cnu9vwgs.js.map → chunk-kmQw9kVc.js.map} +1 -1
  11. package/dist/cjs/Attachments.cjs.js +3 -1
  12. package/dist/cjs/Attachments.cjs.js.map +1 -1
  13. package/dist/cjs/Editor.cjs.js +4 -1
  14. package/dist/cjs/Editor.cjs.js.map +1 -1
  15. package/dist/cjs/FormikEditor.cjs.js +2 -1
  16. package/dist/cjs/FormikEditor.cjs.js.map +1 -1
  17. package/dist/cjs/{chunk-B2gYqWRO.cjs.js → chunk-C55HeN4C.cjs.js} +101 -44
  18. package/dist/cjs/chunk-C55HeN4C.cjs.js.map +1 -0
  19. package/dist/cjs/{chunk-DXgrw9IN.cjs.js → chunk-CfoukJwM.cjs.js} +4 -2
  20. package/dist/cjs/{chunk-DXgrw9IN.cjs.js.map → chunk-CfoukJwM.cjs.js.map} +1 -1
  21. package/dist/cjs/index.cjs.js +3 -2
  22. package/dist/cjs/index.cjs.js.map +1 -1
  23. package/dist/editor-stats.html +1 -1
  24. package/dist/index.js +3 -2
  25. package/dist/index.js.map +1 -1
  26. package/package.json +1 -1
  27. package/src/translations/ar.json +2 -1
  28. package/src/translations/bg.json +2 -1
  29. package/src/translations/ca.json +2 -1
  30. package/src/translations/cs.json +2 -1
  31. package/src/translations/da.json +2 -1
  32. package/src/translations/de.json +2 -1
  33. package/src/translations/en.json +2 -1
  34. package/src/translations/es-MX.json +2 -1
  35. package/src/translations/es.json +2 -1
  36. package/src/translations/et.json +2 -1
  37. package/src/translations/fi.json +2 -1
  38. package/src/translations/fil.json +2 -1
  39. package/src/translations/fr.json +2 -1
  40. package/src/translations/he.json +2 -1
  41. package/src/translations/hi.json +2 -1
  42. package/src/translations/hr.json +2 -1
  43. package/src/translations/id.json +2 -1
  44. package/src/translations/it.json +2 -1
  45. package/src/translations/ja.json +2 -1
  46. package/src/translations/ko.json +2 -1
  47. package/src/translations/nl.json +2 -1
  48. package/src/translations/pl.json +2 -1
  49. package/src/translations/pt-BR.json +2 -1
  50. package/src/translations/pt.json +2 -1
  51. package/src/translations/ro.json +2 -1
  52. package/src/translations/ru.json +2 -1
  53. package/src/translations/sk.json +2 -1
  54. package/src/translations/sl.json +2 -1
  55. package/src/translations/sv.json +2 -1
  56. package/src/translations/th.json +2 -1
  57. package/src/translations/tr.json +2 -1
  58. package/src/translations/uk.json +2 -1
  59. package/src/translations/vi.json +2 -1
  60. package/src/translations/zh-CN.json +2 -1
  61. package/src/translations/zh-TW.json +2 -1
  62. package/types.d.ts +1 -0
  63. package/dist/chunk-DwCDGDWR.js.map +0 -1
  64. package/dist/cjs/chunk-B2gYqWRO.cjs.js.map +0 -1
package/dist/index.js CHANGED
@@ -3,7 +3,7 @@ export { D as DEFAULT_EDITOR_OPTIONS } from './chunk-DxGDZoUl.js';
3
3
  export { i as isEditorOverlaysActive, a as isEmojiSuggestionsMenuActive, t as transformEditorContent } from './chunk-BOAmmpv4.js';
4
4
  export { s as substituteVariables } from './chunk-2Y0OJ9hf.js';
5
5
  export { a as isEditorContentWithinLimit, i as isEditorEmpty, r as removeEmptyTags } from './chunk-BtgLcjAt.js';
6
- export { A as Attachments } from './chunk-DwCDGDWR.js';
6
+ export { A as Attachments } from './chunk-Ce_9AGLE.js';
7
7
  export { default as Editor } from './Editor.js';
8
8
  export { default as FormikEditor } from './FormikEditor.js';
9
9
  export { M as Menu } from './chunk-Di54e1QH.js';
@@ -47,9 +47,11 @@ import '@bigbinary/neeto-icons/AspectRatio43';
47
47
  import '@bigbinary/neeto-icons/AspectRatio32';
48
48
  import '@bigbinary/neeto-commons-frontend/initializers';
49
49
  import 'react/jsx-runtime';
50
+ import '@bigbinary/neeto-commons-frontend/react-utils/useOnClickOutside';
50
51
  import '@bigbinary/neeto-commons-frontend/utils';
51
52
  import '@bigbinary/neeto-icons/MenuVertical';
52
53
  import '@bigbinary/neeto-icons/Close';
54
+ import '@bigbinary/neeto-icons/Check';
53
55
  import '@bigbinary/neetoui/Dropdown';
54
56
  import '@bigbinary/neetoui/Input';
55
57
  import '@bigbinary/neetoui/Spinner';
@@ -114,7 +116,6 @@ import '@bigbinary/neeto-icons/Edit';
114
116
  import '@bigbinary/neeto-icons/Articles';
115
117
  import 'formik';
116
118
  import 'tippy.js/dist/svg-arrow.css';
117
- import '@bigbinary/neeto-icons/Check';
118
119
  import '@bigbinary/neeto-icons/Quote';
119
120
  import '@bigbinary/neeto-icons/Code';
120
121
  import '@bigbinary/neeto-icons/TextCross';
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@bigbinary/neeto-editor",
3
- "version": "1.47.83",
3
+ "version": "1.47.85",
4
4
  "types": "./types.d.ts",
5
5
  "description": "neetoEditor is the library that drives the rich text experience in all neeto products built at BigBinary",
6
6
  "keywords": [
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "لا يمكن أن يكون اسم الملف فارغًا",
29
29
  "noPreview": "لا توجد معاينة متاحة، انقر لت <span>تحميل</span>.",
30
30
  "oneAttachmentAllowed": "يسمح بإرفاق مرفق واحد فقط",
31
- "uploading": "يتم التحميل"
31
+ "uploading": "يتم التحميل",
32
+ "rename": "إعادة تسمية"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "يرجى إدخال رابط صحيح.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Името на файла не може да бъде празно",
29
29
  "noPreview": "Няма наличен преглед, кликнете, за да <span>изтеглите</span>.",
30
30
  "oneAttachmentAllowed": "Позволен е само един прикачен файл",
31
- "uploading": "Качване"
31
+ "uploading": "Качване",
32
+ "rename": "Преименуване"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Моля, въведете валидна връзка.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "El nom del fitxer no pot estar buit",
29
29
  "noPreview": "No hi ha previsualització disponible, feu clic per <span>descarregar</span>.",
30
30
  "oneAttachmentAllowed": "Només es permet un fitxer adjunt",
31
- "uploading": "Pujant"
31
+ "uploading": "Pujant",
32
+ "rename": "Renomar"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Si us plau, introdueix una URL vàlida.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Název souboru nesmí být prázdný",
29
29
  "noPreview": "Není k dispozici žádný náhled, klikněte pro <span>stáhnout</span>.",
30
30
  "oneAttachmentAllowed": "Povolená je pouze jedna příloha",
31
- "uploading": "Nahrávání"
31
+ "uploading": "Nahrávání",
32
+ "rename": "P rename"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Zadejte prosím platnou URL.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Filnavn kan ikke være tomt",
29
29
  "noPreview": "Der er ingen forhåndsvisning tilgængelig, klik for at <span>downloade</span>.",
30
30
  "oneAttachmentAllowed": "Kun én vedhæftning er tilladt",
31
- "uploading": "Uploader"
31
+ "uploading": "Uploader",
32
+ "rename": "Omdøb"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Indtast venligst en gyldig URL.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Dateiname darf nicht leer sein",
29
29
  "noPreview": "Es ist keine Vorschau verfügbar, klicken Sie, um <span>herunterzuladen</span>.",
30
30
  "oneAttachmentAllowed": "Es ist nur ein Anhang erlaubt",
31
- "uploading": "Hochladen"
31
+ "uploading": "Hochladen",
32
+ "rename": "Umbenennen"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Bitte geben Sie eine gültige URL ein.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Filename cannot be empty",
29
29
  "noPreview": "There is no preview available, click to <span>download</span>.",
30
30
  "oneAttachmentAllowed": "Only one attachment is allowed",
31
- "uploading": "Uploading"
31
+ "uploading": "Uploading",
32
+ "rename": "Rename"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Please enter a valid URL.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "El nombre del archivo no puede estar vacío",
29
29
  "noPreview": "No hay vista previa disponible, haz clic para <span>descargar</span>.",
30
30
  "oneAttachmentAllowed": "Solo se permite un archivo adjunto",
31
- "uploading": "Subiendo"
31
+ "uploading": "Subiendo",
32
+ "rename": "Renombrar"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Por favor, ingresa una URL válida.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "El nombre del archivo no puede estar vacío",
29
29
  "noPreview": "No hay vista previa disponible, haga clic para <span>descargar</span>.",
30
30
  "oneAttachmentAllowed": "Solo se permite un archivo adjunto",
31
- "uploading": "Subiendo"
31
+ "uploading": "Subiendo",
32
+ "rename": "Renombrar"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Por favor, introduce una URL válida.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Failinimi ei tohi olla tühi",
29
29
  "noPreview": "Eelvaade pole saadaval, kliki, et <span>alla laadida</span>.",
30
30
  "oneAttachmentAllowed": "Lubatud on ainult üks manus",
31
- "uploading": "Laadimine"
31
+ "uploading": "Laadimine",
32
+ "rename": "Nimeta"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Palun sisestage kehtiv URL.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Tiedostonimi ei voi olla tyhjäv",
29
29
  "noPreview": "Esikatselua ei ole saatavilla, napsauta <span>lataa</span>.",
30
30
  "oneAttachmentAllowed": "Vain yksi liite on sallittu",
31
- "uploading": "Lataaminen"
31
+ "uploading": "Lataaminen",
32
+ "rename": "Nimeä"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Ole hyvä ja syötä voimassa oleva URL.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Ang filename ay hindi maaaring walang laman",
29
29
  "noPreview": "Walang available na preview, i-click upang <span>idownload</span>.",
30
30
  "oneAttachmentAllowed": "Tanging isang attachment lamang ang pinapayagan",
31
- "uploading": "Nai-upload"
31
+ "uploading": "Nai-upload",
32
+ "rename": "Palitan ang pangalan"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Mangyaring maglagay ng wastong URL.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Le nom de fichier ne peut pas être vide",
29
29
  "noPreview": "Aucun aperçu disponible, cliquez pour <span>télécharger</span>.",
30
30
  "oneAttachmentAllowed": "Une seule pièce jointe est autorisée",
31
- "uploading": "Téléchargement"
31
+ "uploading": "Téléchargement",
32
+ "rename": "Renommer"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Veuillez entrer une URL valide.",
@@ -181,7 +181,8 @@
181
181
  "nameEmpty": "שם הקובץ אינו יכול להיות ריק",
182
182
  "noPreview": "אין תצוגה מקדימה זמינה, לחץ כדי <span>להוריד</span>.",
183
183
  "oneAttachmentAllowed": "מת erlaubt רק קובץ מצורף אחד",
184
- "uploading": "מעלה"
184
+ "uploading": "מעלה",
185
+ "rename": "שנה שם"
185
186
  },
186
187
  "error": {
187
188
  "invalidUrl": "נא להזין כתובת אתר חוקית.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "फ़ाइल का नाम खाली नहीं हो सकता",
29
29
  "noPreview": "कोई पूर्वावलोकन उपलब्ध नहीं है, डाउनलोड करने के लिए क्लिक करें <span>डाउनलोड</span>।",
30
30
  "oneAttachmentAllowed": "केवल एक अटैचमेंट की अनुमति है",
31
- "uploading": "अपलोड हो रहा है"
31
+ "uploading": "अपलोड हो रहा है",
32
+ "rename": "नाम बदलें"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "कृपया एक मान्य URL दर्ज करें।",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Naziv datoteke ne može biti prazan",
29
29
  "noPreview": "Pregled nije dostupan, kliknite za <span>preuzi</span>.",
30
30
  "oneAttachmentAllowed": "Dozvoljen je samo jedan privitak",
31
- "uploading": "Otpremanje"
31
+ "uploading": "Otpremanje",
32
+ "rename": "Preimenuj"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Unesite valjanu URL adresu.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Nama file tidak boleh kosong",
29
29
  "noPreview": "Tidak ada pratinjau yang tersedia, klik untuk <span>download</span>.",
30
30
  "oneAttachmentAllowed": "Hanya satu lampiran yang diizinkan",
31
- "uploading": "Mengunggah"
31
+ "uploading": "Mengunggah",
32
+ "rename": "Ganti nama"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Silakan masukkan URL yang valid.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Il nome del file non può essere vuoto",
29
29
  "noPreview": "Non è disponibile nessuna anteprima, clicca per <span>scari</span>.",
30
30
  "oneAttachmentAllowed": "È consentito solo un allegato",
31
- "uploading": "Caricamento"
31
+ "uploading": "Caricamento",
32
+ "rename": "Rinomina"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Si prega di inserire un URL valido.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "ファイル名は空にできません",
29
29
  "noPreview": "プレビューは利用できません。クリックして<span>ダウンロード</span>してください。",
30
30
  "oneAttachmentAllowed": "添付ファイルは1つのみ許可されています",
31
- "uploading": "アップロード中"
31
+ "uploading": "アップロード中",
32
+ "rename": "名前を変更"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "有効なURLを入力してください。",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "파일 이름은 비워둘 수 없습니다.",
29
29
  "noPreview": "미리보기가 제공되지 않습니다. 클릭하여 <span>다운로드</span>하십시오.",
30
30
  "oneAttachmentAllowed": "하나의 첨부 파일만 허용됩니다.",
31
- "uploading": "업로드 중"
31
+ "uploading": "업로드 중",
32
+ "rename": "이름 바꾸기"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "유효한 URL을 입력하십시오.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Bestandsnaam kan niet leeg zijn",
29
29
  "noPreview": "Er is geen voorbeeld beschikbaar, klik om te <span>downloaden</span>.",
30
30
  "oneAttachmentAllowed": "Slechts één bijlage is toegestaan",
31
- "uploading": "Uploaden"
31
+ "uploading": "Uploaden",
32
+ "rename": "Hernoemen"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Voer een geldige URL in.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Nazwa pliku nie może być pusta",
29
29
  "noPreview": "Brak dostępnego podglądu, kliknij, aby <span>pobrać</span>.",
30
30
  "oneAttachmentAllowed": "Dozwolony jest tylko jeden załącznik",
31
- "uploading": "Przesyłanie"
31
+ "uploading": "Przesyłanie",
32
+ "rename": "Zmień nazwę"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Wprowadź prawidłowy adres URL.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "O nome do arquivo não pode estar vazio",
29
29
  "noPreview": "Não há pré-visualização disponível, clique para <span>download</span>.",
30
30
  "oneAttachmentAllowed": "Apenas um anexo é permitido",
31
- "uploading": "Fazendo upload"
31
+ "uploading": "Fazendo upload",
32
+ "rename": "Renomear"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Por favor, insira uma URL válida.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "O nome do arquivo não pode estar vazio",
29
29
  "noPreview": "Não há visualização disponível, clique para <span>download</span>.",
30
30
  "oneAttachmentAllowed": "Apenas um anexo é permitido",
31
- "uploading": "Carregando"
31
+ "uploading": "Carregando",
32
+ "rename": "Renomear"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Por favor, insira uma URL válida.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Numele fișierului nu poate fi gol",
29
29
  "noPreview": "Nu este disponibilă o previzualizare, fă clic pentru <span>descarcă</span>.",
30
30
  "oneAttachmentAllowed": "Este permis doar un atașament",
31
- "uploading": "Se încarcă"
31
+ "uploading": "Se încarcă",
32
+ "rename": "Renumește"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Te rugăm să introduci un URL valid.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Имя файла не может быть пустым",
29
29
  "noPreview": "Предварительный просмотр недоступен, нажмите, чтобы <span>скачать</span>.",
30
30
  "oneAttachmentAllowed": "Разрешено только одно вложение",
31
- "uploading": "Загрузка"
31
+ "uploading": "Загрузка",
32
+ "rename": "Переименовать"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Пожалуйста, введите корректный URL.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Názov súboru nemôže byť prázdny",
29
29
  "noPreview": "Náhľad nie je dostupný, kliknite na <span>stiahnuť</span>.",
30
30
  "oneAttachmentAllowed": "Povolená je iba jedna príloha",
31
- "uploading": "Nahrávanie"
31
+ "uploading": "Nahrávanie",
32
+ "rename": "Premenovať"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Zadajte platnú URL.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Ime datoteke ne sme biti prazno",
29
29
  "noPreview": "Predogled ni na voljo, kliknite za <span>prenos</span>.",
30
30
  "oneAttachmentAllowed": "Dovoljena je le ena priloga",
31
- "uploading": "Nalaganje"
31
+ "uploading": "Nalaganje",
32
+ "rename": "Preimenuj"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Prosimo, vnesite veljavno povezavo.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Filnamnet kan inte vara tomt",
29
29
  "noPreview": "Ingen förhandsgranskning är tillgänglig, klicka för att <span>ladda ner</span>.",
30
30
  "oneAttachmentAllowed": "Bara en bilaga är tillåten",
31
- "uploading": "Laddar upp"
31
+ "uploading": "Laddar upp",
32
+ "rename": "Byt namn"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Vänligen ange en giltig URL.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "ชื่อไฟล์ไม่สามารถเว้นว่างได้",
29
29
  "noPreview": "ไม่มีตัวอย่างให้ แคลิกเพื่อ <span>ดาวน์โหลด</span>",
30
30
  "oneAttachmentAllowed": "อนุญาตให้มีไฟล์แนบเพียง 1 ไฟล์เท่านั้น",
31
- "uploading": "กำลังอัปโหลด"
31
+ "uploading": "กำลังอัปโหลด",
32
+ "rename": "เปลี่ยนชื่อ"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "กรุณาใส่ URL ที่ถูกต้อง",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Dosya adı boş olamaz",
29
29
  "noPreview": "Önizleme mevcut değil, <span>indir</span>'ye tıklayın.",
30
30
  "oneAttachmentAllowed": "Sadece bir ek dosyaya izin verilmektedir",
31
- "uploading": "Yükleniyor"
31
+ "uploading": "Yükleniyor",
32
+ "rename": "Yeniden Adlandır"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Lütfen geçerli bir URL girin.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Ім'я файлу не може бути порожнім",
29
29
  "noPreview": "Попередній перегляд недоступний, натисніть для <span>завантаження</span>.",
30
30
  "oneAttachmentAllowed": "Дозволено лише одне вкладення",
31
- "uploading": "Завантаження"
31
+ "uploading": "Завантаження",
32
+ "rename": "Перейменувати"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Будь ласка, введіть дійсне URL.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "Tên tệp không được để trống",
29
29
  "noPreview": "Không có bản xem trước, nhấn để <span>tải xuống</span>.",
30
30
  "oneAttachmentAllowed": "Chỉ được phép một đính kèm",
31
- "uploading": "Đang tải lên"
31
+ "uploading": "Đang tải lên",
32
+ "rename": "Đổi tên"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "Vui lòng nhập một URL hợp lệ.",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "文件名不能为空",
29
29
  "noPreview": "没有可用的预览,点击 <span>下载</span>。",
30
30
  "oneAttachmentAllowed": "只允许一个附件",
31
- "uploading": "上传中"
31
+ "uploading": "上传中",
32
+ "rename": "重命名"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "请输入有效的网址。",
@@ -28,7 +28,8 @@
28
28
  "nameEmpty": "檔名不能為空",
29
29
  "noPreview": "沒有可用的預覽,點擊以<span>下載</span>。",
30
30
  "oneAttachmentAllowed": "只允許一個附件",
31
- "uploading": "上傳中"
31
+ "uploading": "上傳中",
32
+ "rename": "重命名"
32
33
  },
33
34
  "error": {
34
35
  "invalidUrl": "請輸入有效的網址。",
package/types.d.ts CHANGED
@@ -148,6 +148,7 @@ interface AttachmentsProps {
148
148
  className?: string;
149
149
  showToastr?: boolean;
150
150
  allowDelete?: boolean;
151
+ allowOpenInNewTab?: boolean;
151
152
  }
152
153
 
153
154
  type EditorContentConfigType = {
@@ -1 +0,0 @@
1
- {"version":3,"file":"chunk-DwCDGDWR.js","sources":["../src/components/Attachments/constants.js","../src/components/Attachments/utils.js","../src/components/Attachments/Attachment.jsx","../src/components/Attachments/AttachmentProgress.jsx","../src/components/Attachments/index.jsx"],"sourcesContent":["import { globalProps } from \"neetocommons/initializers\";\n\nimport { DIRECT_UPLOAD_ENDPOINT } from \"src/common/constants\";\n\nexport const DEFAULT_FILE_UPLOAD_CONFIG = {\n directUploadEndpoint: DIRECT_UPLOAD_ENDPOINT,\n restrictions: {\n maxFileSize: globalProps.endUserUploadedFileSizeLimitInMb * 1024 * 1024,\n },\n};\n\nexport const ATTACHMENT_OPTIONS = {\n DOWNLOAD: \"Download\",\n RENAME: \"Rename\",\n DELETE: \"Delete\",\n};\n\nexport const ATTACHMENTS_PREVIEW_DATA_CY = \"ne-attachments-preview-content\";\n","import { Toastr } from \"neetoui\";\nimport { mergeRight } from \"ramda\";\n\nimport { DEFAULT_FILE_UPLOAD_CONFIG } from \"./constants\";\n\nexport const buildFileUploadConfig = config =>\n mergeRight(DEFAULT_FILE_UPLOAD_CONFIG, config);\n\nexport const downloadFile = (fileUrl, filename) => {\n try {\n const a = document.createElement(\"a\");\n a.href = fileUrl;\n a.setAttribute(\"download\", filename);\n a.setAttribute(\"target\", \"_blank\");\n\n a.style.display = \"none\";\n document.body.appendChild(a);\n\n a.click();\n\n document.body.removeChild(a);\n } catch (error) {\n Toastr.error(error);\n }\n};\n\nexport const checkPreviewAvailability = contentType =>\n contentType &&\n (contentType.startsWith(\"video/\") ||\n contentType === \"application/pdf\" ||\n contentType === \"image/jpeg\" ||\n contentType === \"image/gif\" ||\n contentType === \"image/png\" ||\n contentType === \"image/webp\" ||\n contentType === \"text/plain\" ||\n contentType === \"image/bmp\" ||\n contentType === \"application/msword\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.wordprocessingml.document\" ||\n contentType === \"image/jpg\" ||\n contentType === \"application/vnd.ms-powerpoint\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.presentationml.presentation\" ||\n contentType === \"image/tiff\" ||\n contentType === \"application/vnd.ms-excel\" ||\n contentType ===\n \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\");\n","import { useState } from \"react\";\n\nimport { removeBy } from \"neetocist\";\nimport { withEventTargetValue } from \"neetocommons/utils\";\nimport { MenuVertical, Close } from \"neetoicons\";\nimport {\n Dropdown,\n Input,\n Spinner,\n Toastr,\n Tooltip,\n Typography,\n Button,\n Alert,\n} from \"neetoui\";\nimport { isEmpty, assoc } from \"ramda\";\nimport { Trans, useTranslation } from \"react-i18next\";\n\nimport directUploadsApi from \"apis/direct_uploads\";\n\nimport { ATTACHMENT_OPTIONS } from \"./constants\";\nimport { downloadFile } from \"./utils\";\n\nimport FileIcon from \"../Common/FileIcon\";\n\nconst { Menu, MenuItem } = Dropdown;\n\nconst Attachment = ({\n attachment,\n attachments,\n disabled,\n onChange,\n setSelectedAttachment,\n isLoading,\n allowDelete,\n}) => {\n const { t } = useTranslation();\n\n const [isRenaming, setIsRenaming] = useState(false);\n const [isUpdating, setIsUpdating] = useState(false);\n const [isDeleteAlertOpen, setIsDeleteAlertOpen] = useState(false);\n const [isDeleting, setIsDeleting] = useState(false);\n const [newFilename, setNewFilename] = useState(\"\");\n\n const handleDownload = () =>\n downloadFile(attachment.url, attachment.filename);\n\n const handleRename = async () => {\n try {\n setIsUpdating(true);\n const { signedId } = attachment;\n const payload = { blob: { filename: newFilename } };\n\n const response = await directUploadsApi.update({ signedId, payload });\n const filename = response.data?.blob?.filename || response.blob.filename;\n\n onChange(\n attachments.map(attachment =>\n attachment.signedId === signedId\n ? assoc(\"filename\", filename, attachment)\n : attachment\n )\n );\n } catch (error) {\n Toastr.error(error);\n } finally {\n setIsRenaming(false);\n setIsUpdating(false);\n setNewFilename(\"\");\n }\n };\n\n const handleDelete = async () => {\n if (!allowDelete) return;\n\n setIsDeleting(true);\n try {\n const { signedId } = attachment;\n await directUploadsApi.destroy(signedId);\n onChange(removeBy({ signedId }, attachments));\n } catch (error) {\n Toastr.error(error);\n }\n };\n\n const handlers = {\n [ATTACHMENT_OPTIONS.DOWNLOAD]: handleDownload,\n [ATTACHMENT_OPTIONS.RENAME]: handleRename,\n ...(allowDelete && { [ATTACHMENT_OPTIONS.DELETE]: handleDelete }),\n };\n\n const onMenuItemClick = ({ key, handler }) => {\n if (key === ATTACHMENT_OPTIONS.RENAME) {\n setIsRenaming(true);\n setNewFilename(attachment.filename);\n } else if (key === ATTACHMENT_OPTIONS.DELETE) {\n setNewFilename(attachment.filename);\n setIsDeleteAlertOpen(true);\n } else {\n handler();\n }\n };\n\n const handleKeyDown = ({ event, key }) => {\n const handler = handlers[key];\n\n if (event.key === \"Enter\" && handler && !isEmpty(newFilename)) {\n event.stopPropagation();\n event.preventDefault();\n handler();\n }\n\n if (event.key === \"Escape\") {\n setIsRenaming(false);\n setNewFilename(\"\");\n }\n };\n\n return (\n <>\n <div className=\"ne-attachments__preview\" data-testid=\"ne-attachments-wrapper\">\n {isRenaming ? (\n <>\n <Tooltip content={newFilename} position=\"top\">\n <Input\n autoFocus\n data-testid=\"neeto-editor-preview-rename-input\"\n size=\"small\"\n value={newFilename}\n error={\n isEmpty(newFilename)\n ? t(\"neetoEditor.attachments.nameEmpty\")\n : \"\"\n }\n onChange={withEventTargetValue(setNewFilename)}\n onKeyDown={event =>\n handleKeyDown({\n event,\n key: ATTACHMENT_OPTIONS.RENAME,\n })\n }\n />\n </Tooltip>\n <Button\n data-testid=\"neeto-editor-preview-rename-cancel-button\"\n icon={Close}\n loading={isUpdating}\n size=\"small\"\n style=\"text\"\n onClick={() => setIsRenaming(false)}\n />\n </>\n ) : (\n <>\n <div\n className=\"ne-attachments__preview-wrapper\"\n onClick={() => setSelectedAttachment(attachment)}\n >\n <FileIcon\n className=\"ne-attachments__preview-wrapper__icon\"\n fileName={attachment.filename}\n />\n <Tooltip content={attachment.filename} position=\"top\">\n <Typography style=\"body2\">{attachment.filename}</Typography>\n </Tooltip>\n {isLoading && <Spinner className=\"attachment-button-loader\" />}\n </div>\n <Tooltip\n content={t(\"neetoEditor.attachments.actionsBlocked\")}\n disabled={!disabled}\n position=\"top\"\n >\n <Dropdown\n {...{ disabled }}\n buttonSize=\"small\"\n buttonStyle=\"text\"\n icon={MenuVertical}\n >\n <Menu>\n {Object.entries(handlers).map(([label, handler]) => (\n <MenuItem.Button\n data-testid={`neeto-editor-preview-${label.toLowerCase()}-button`}\n key={label}\n onClick={() => onMenuItemClick({ key: label, handler })}\n >\n {label}\n </MenuItem.Button>\n ))}\n </Menu>\n </Dropdown>\n </Tooltip>\n </>\n )}\n </div>\n <Alert\n isOpen={isDeleteAlertOpen}\n isSubmitting={isDeleting}\n submitButtonLabel={t(\"neetoEditor.menu.delete\")}\n title={t(\"neetoEditor.attachments.deleteTitle\")}\n message={\n <Trans\n i18nKey=\"neetoEditor.attachments.deleteConfirmation\"\n values={{ entity: newFilename }}\n />\n }\n onClose={() => setIsDeleteAlertOpen(false)}\n onSubmit={handleDelete}\n />\n </>\n );\n};\n\nexport default Attachment;\n","import { Close } from \"neetoicons\";\nimport { Button, Typography } from \"neetoui\";\nimport { FileIcon } from \"react-file-icon\";\n\nconst AttachmentProgress = ({ attachment, cancelUpload }) => {\n const progressPercentage = `${attachment.progress ?? 0}%`;\n\n const handleCancel = () => {\n cancelUpload(attachment.id);\n };\n\n return (\n <div className=\"ne-attachments__preview\">\n <div className=\"ne-attachments__preview__progress-icon\">\n <FileIcon />\n </div>\n <div className=\"ne-attachments__preview__progress\">\n <Typography style=\"body2\">{attachment.filename}</Typography>\n <Typography style=\"body2\">{progressPercentage}</Typography>\n </div>\n <Button\n data-testid=\"neeto-editor-preview-upload-cancel-button\"\n icon={Close}\n size=\"small\"\n style=\"text\"\n onClick={handleCancel}\n />\n </div>\n );\n};\n\nexport default AttachmentProgress;\n","import {\n forwardRef,\n useRef,\n useState,\n useImperativeHandle,\n lazy,\n Suspense,\n useMemo,\n memo,\n} from \"react\";\n\nimport classnames from \"classnames\";\nimport { isNotEmpty, isPresent, noop } from \"neetocist\";\nimport { Button, Toastr } from \"neetoui\";\nimport { isEmpty } from \"ramda\";\nimport { useTranslation } from \"react-i18next\";\n\nimport useDropFiles from \"hooks/useDropFiles\";\nimport useFileUploader from \"hooks/useFileUploader\";\nimport \"src/styles/components/attachments.scss\";\n\nimport Attachment from \"./Attachment\";\nimport AttachmentProgress from \"./AttachmentProgress\";\nimport { buildFileUploadConfig } from \"./utils\";\n\nconst Preview = lazy(() => import(\"./Preview\"));\n\nconst Attachments = (\n {\n attachments = [],\n className = \"\",\n onChange = noop,\n isIndependent = true,\n disabled = false,\n dragDropRef = null,\n config = {},\n setIsUploading = noop,\n allowDelete = true,\n },\n ref\n) => {\n const { t } = useTranslation();\n\n const [selectedAttachment, setSelectedAttachment] = useState({});\n const [didFetchPreviewBundle, setDidFetchPreviewBundle] = useState(false);\n\n const attachmentInputRef = useRef(null);\n\n const fileUploadConfig = useMemo(\n () => buildFileUploadConfig(config),\n [config]\n );\n\n const { addFiles, uploadFiles, queuedFiles, cancelUpload, isUploading } =\n useFileUploader({\n config: fileUploadConfig,\n setIsUploadingOnHost: setIsUploading,\n attachments,\n });\n\n const handleAddFile = async event => {\n addFiles(event.target.files);\n const uploadedFiles = await uploadFiles();\n isNotEmpty(uploadedFiles) && onChange([...attachments, ...uploadedFiles]);\n attachmentInputRef.current.value = null;\n };\n\n const handleUploadAttachments = () => attachmentInputRef.current.click();\n\n const handleFileInputClick = event => {\n if (!(!isEmpty(attachments) && fileUploadConfig.maxNumberOfFiles === 1)) {\n return;\n }\n event.preventDefault();\n Toastr.warning(t(\"neetoEditor.attachments.oneAttachmentAllowed\"));\n };\n\n useImperativeHandle(ref, () => ({ handleUploadAttachments }), []);\n\n const handleFilesDrop = async files => {\n addFiles(files);\n const uploadedFiles = await uploadFiles();\n isNotEmpty(uploadedFiles) && onChange([...attachments, ...uploadedFiles]);\n };\n\n useDropFiles({\n dropTargetRef: dragDropRef,\n attachments,\n onDrop: handleFilesDrop,\n });\n\n return (\n <div className={classnames(\"ne-attachments\", { [className]: className })}>\n <div className=\"ne-attachments__items\">\n {attachments.map(attachment => (\n <Attachment\n {...{\n allowDelete,\n attachment,\n attachments,\n disabled,\n onChange,\n setSelectedAttachment,\n }}\n key={attachment.signedId}\n isLoading={\n !didFetchPreviewBundle &&\n selectedAttachment.url === attachment.url\n }\n />\n ))}\n {queuedFiles.map(attachment => (\n <AttachmentProgress\n {...{ attachment, cancelUpload }}\n key={attachment.id}\n />\n ))}\n </div>\n <div>\n {isIndependent && (\n <Button\n data-testid=\"neeto-editor-attachments-upload-button\"\n disabled={isUploading}\n label={t(\"neetoEditor.attachments.add\")}\n loading={isUploading}\n size=\"medium\"\n style=\"link\"\n onClick={handleUploadAttachments}\n />\n )}\n <input\n accept={fileUploadConfig.allowedFileTypes?.join(\",\")}\n multiple={fileUploadConfig.maxNumberOfFiles !== 1}\n ref={attachmentInputRef}\n type=\"file\"\n onChange={handleAddFile}\n onClick={handleFileInputClick}\n />\n <Suspense fallback={<span />}>\n {isPresent(selectedAttachment) && (\n <Preview\n {...{\n attachments,\n selectedAttachment,\n setDidFetchPreviewBundle,\n setSelectedAttachment,\n }}\n onClose={() => setSelectedAttachment({})}\n />\n )}\n </Suspense>\n </div>\n </div>\n );\n};\n\nAttachments.displayName = \"NeetoEditorAttachments\";\n\nexport default memo(forwardRef(Attachments));\n"],"names":["DEFAULT_FILE_UPLOAD_CONFIG","directUploadEndpoint","DIRECT_UPLOAD_ENDPOINT","restrictions","maxFileSize","globalProps","endUserUploadedFileSizeLimitInMb","ATTACHMENT_OPTIONS","DOWNLOAD","RENAME","DELETE","ATTACHMENTS_PREVIEW_DATA_CY","buildFileUploadConfig","config","mergeRight","downloadFile","fileUrl","filename","a","document","createElement","href","setAttribute","style","display","body","appendChild","click","removeChild","error","Toastr","checkPreviewAvailability","contentType","startsWith","Menu","Dropdown","MenuItem","Attachment","_ref","attachment","attachments","disabled","onChange","setSelectedAttachment","isLoading","allowDelete","_useTranslation","useTranslation","t","_useState","useState","_useState2","_slicedToArray","isRenaming","setIsRenaming","_useState3","_useState4","isUpdating","setIsUpdating","_useState5","_useState6","isDeleteAlertOpen","setIsDeleteAlertOpen","_useState7","_useState8","isDeleting","setIsDeleting","_useState9","_useState10","newFilename","setNewFilename","handleDownload","url","handleRename","_ref2","_asyncToGenerator","_regeneratorRuntime","mark","_callee","_response$data","signedId","payload","response","wrap","_callee$","_context","prev","next","blob","directUploadsApi","update","sent","data","map","assoc","t0","finish","stop","apply","arguments","handleDelete","_ref3","_callee2","_callee2$","_context2","abrupt","destroy","removeBy","handlers","_objectSpread","_defineProperty","onMenuItemClick","_ref5","key","handler","handleKeyDown","_ref6","event","isEmpty","stopPropagation","preventDefault","_jsxs","_Fragment","children","_jsx","className","Tooltip","content","position","Input","autoFocus","size","value","withEventTargetValue","onKeyDown","Button","icon","Close","loading","onClick","FileIcon","fileName","Typography","Spinner","buttonSize","buttonStyle","MenuVertical","Object","entries","_ref7","_ref8","label","concat","toLowerCase","Alert","isOpen","isSubmitting","submitButtonLabel","title","message","Trans","i18nKey","values","entity","onClose","onSubmit","AttachmentProgress","_attachment$progress","cancelUpload","progressPercentage","progress","handleCancel","id","Preview","lazy","Attachments","ref","_fileUploadConfig$all","_ref$attachments","_ref$className","_ref$onChange","noop","_ref$isIndependent","isIndependent","_ref$disabled","_ref$dragDropRef","dragDropRef","_ref$config","_ref$setIsUploading","setIsUploading","_ref$allowDelete","selectedAttachment","didFetchPreviewBundle","setDidFetchPreviewBundle","attachmentInputRef","useRef","fileUploadConfig","useMemo","_useFileUploader","useFileUploader","setIsUploadingOnHost","addFiles","uploadFiles","queuedFiles","isUploading","handleAddFile","uploadedFiles","target","files","isNotEmpty","_toConsumableArray","current","_x","handleUploadAttachments","handleFileInputClick","maxNumberOfFiles","warning","useImperativeHandle","handleFilesDrop","_x2","useDropFiles","dropTargetRef","onDrop","classnames","_createElement","accept","allowedFileTypes","join","multiple","type","Suspense","fallback","isPresent","displayName","memo","forwardRef"],"mappings":"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"}