@bigbinary/neeto-redirect-urls-frontend 2.2.13 → 2.2.14
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.
- package/app/javascript/src/translations/ar.json +2 -1
- package/app/javascript/src/translations/bg.json +2 -1
- package/app/javascript/src/translations/ca.json +2 -1
- package/app/javascript/src/translations/cs.json +2 -1
- package/app/javascript/src/translations/da.json +2 -1
- package/app/javascript/src/translations/de.json +2 -1
- package/app/javascript/src/translations/en.json +2 -1
- package/app/javascript/src/translations/es-MX.json +2 -1
- package/app/javascript/src/translations/es.json +2 -1
- package/app/javascript/src/translations/et.json +2 -1
- package/app/javascript/src/translations/fi.json +2 -1
- package/app/javascript/src/translations/fil.json +2 -1
- package/app/javascript/src/translations/fr.json +2 -1
- package/app/javascript/src/translations/hi.json +2 -1
- package/app/javascript/src/translations/hr.json +2 -1
- package/app/javascript/src/translations/id.json +2 -1
- package/app/javascript/src/translations/it.json +2 -1
- package/app/javascript/src/translations/ja.json +2 -1
- package/app/javascript/src/translations/ko.json +2 -1
- package/app/javascript/src/translations/nl.json +2 -1
- package/app/javascript/src/translations/pl.json +2 -1
- package/app/javascript/src/translations/pt-BR.json +2 -1
- package/app/javascript/src/translations/pt.json +2 -1
- package/app/javascript/src/translations/ro.json +2 -1
- package/app/javascript/src/translations/ru.json +2 -1
- package/app/javascript/src/translations/sk.json +2 -1
- package/app/javascript/src/translations/sl.json +2 -1
- package/app/javascript/src/translations/sv.json +2 -1
- package/app/javascript/src/translations/th.json +2 -1
- package/app/javascript/src/translations/tr.json +2 -1
- package/app/javascript/src/translations/uk.json +2 -1
- package/app/javascript/src/translations/vi.json +2 -1
- package/app/javascript/src/translations/zh-CN.json +2 -1
- package/app/javascript/src/translations/zh-TW.json +2 -1
- package/dist/RedirectUrls.js +103 -86
- package/dist/RedirectUrls.js.map +1 -1
- package/dist/cjs/RedirectUrls.js +102 -85
- package/dist/cjs/RedirectUrls.js.map +1 -1
- package/dist/cjs/index.js +1 -1
- package/dist/index.js +1 -1
- package/package.json +13 -12
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "يجب أن يكون عنوان URL الوجهة صالحًا",
|
|
49
49
|
"required": "{{entity}} مطلوب",
|
|
50
50
|
"duplicateDomain": "لا يمكن استخدام نفس النطاق لإعادة التوجيه",
|
|
51
|
-
"samePaths": "لا يمكن أن تكون مسارات المصدر والوجهة متطابقة"
|
|
51
|
+
"samePaths": "لا يمكن أن تكون مسارات المصدر والوجهة متطابقة",
|
|
52
|
+
"reservedPath": "لا يمكن استخدام مسار محجوز للتوجيه"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "URL адресът на дестинацията трябва да бъде валиден",
|
|
49
49
|
"required": "{{entity}} е задължителен",
|
|
50
50
|
"duplicateDomain": "Не може да се използва същият домейн за пренасочване",
|
|
51
|
-
"samePaths": "Пътищата на източника и дестинацията не могат да бъдат еднакви"
|
|
51
|
+
"samePaths": "Пътищата на източника и дестинацията не могат да бъдат еднакви",
|
|
52
|
+
"reservedPath": "Не можете да използвате запазен път за пренасочване"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "L'URL de destinació ha de ser vàlida",
|
|
49
49
|
"required": "{{entity}} és requerit",
|
|
50
50
|
"duplicateDomain": "No es pot utilitzar el mateix domini per a la redirecció",
|
|
51
|
-
"samePaths": "Els camins d'origen i destinació no poden ser els mateixos"
|
|
51
|
+
"samePaths": "Els camins d'origen i destinació no poden ser els mateixos",
|
|
52
|
+
"reservedPath": "No es pot utilitzar un camí reservat per a la redirecció"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "Cílová URL musí být platná",
|
|
49
49
|
"required": "{{entity}} je povinné",
|
|
50
50
|
"duplicateDomain": "Nelze použít stejnou doménu pro přesměrování",
|
|
51
|
-
"samePaths": "Zdrojové a cílové cesty nemohou být stejné"
|
|
51
|
+
"samePaths": "Zdrojové a cílové cesty nemohou být stejné",
|
|
52
|
+
"reservedPath": "Není možné použít rezervovanou cestu pro přesměrování"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "Destination URL'en skal være gyldig",
|
|
49
49
|
"required": "{{entity}} er påkrævet",
|
|
50
50
|
"duplicateDomain": "Kan ikke bruge samme domæne til omdirigering",
|
|
51
|
-
"samePaths": "Kilde- og destination stier kan ikke være den samme"
|
|
51
|
+
"samePaths": "Kilde- og destination stier kan ikke være den samme",
|
|
52
|
+
"reservedPath": "Kan ikke bruge reserveret sti til omdirigering"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "Die Ziel-URL muss gültig sein",
|
|
49
49
|
"required": "{{entity}} ist erforderlich",
|
|
50
50
|
"duplicateDomain": "Die gleiche Domain kann nicht für die Weiterleitung verwendet werden",
|
|
51
|
-
"samePaths": "Quell- und Zielpfade dürfen nicht identisch sein"
|
|
51
|
+
"samePaths": "Quell- und Zielpfade dürfen nicht identisch sein",
|
|
52
|
+
"reservedPath": "Kann keinen reservierten Pfad für die Weiterleitung verwenden"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "Destination URL must be valid",
|
|
49
49
|
"required": "{{entity}} is required",
|
|
50
50
|
"duplicateDomain": "Cannot use same domain for redirection",
|
|
51
|
-
"samePaths": "Source and destination paths cannot be the same"
|
|
51
|
+
"samePaths": "Source and destination paths cannot be the same",
|
|
52
|
+
"reservedPath": "Cannot use reserved path for redirection"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "La URL de destino debe ser válida",
|
|
49
49
|
"required": "{{entity}} es obligatorio",
|
|
50
50
|
"duplicateDomain": "No se puede usar el mismo dominio para la redirección",
|
|
51
|
-
"samePaths": "Los caminos de origen y destino no pueden ser iguales"
|
|
51
|
+
"samePaths": "Los caminos de origen y destino no pueden ser iguales",
|
|
52
|
+
"reservedPath": "No se puede usar una ruta reservada para la redirección"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "La URL de destino debe ser válida",
|
|
49
49
|
"required": "{{entity}} es requerido",
|
|
50
50
|
"duplicateDomain": "No se puede usar el mismo dominio para la redirección",
|
|
51
|
-
"samePaths": "Las rutas de origen y destino no pueden ser las mismas"
|
|
51
|
+
"samePaths": "Las rutas de origen y destino no pueden ser las mismas",
|
|
52
|
+
"reservedPath": "No se puede utilizar una ruta reservada para la redirección"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "Sihtkoha URL peab olema kehtiv",
|
|
49
49
|
"required": "{{entity}} on vajalik",
|
|
50
50
|
"duplicateDomain": "Ei saa kasutada sama domeeni suunamiseks",
|
|
51
|
-
"samePaths": "Allika ja sihtkoha teed ei tohi olla samad"
|
|
51
|
+
"samePaths": "Allika ja sihtkoha teed ei tohi olla samad",
|
|
52
|
+
"reservedPath": "Ei saa kasutada reserveeritud teed suunamiseks"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "Kohde-URL-osoitteen on oltava voimassa",
|
|
49
49
|
"required": "{{entity}} on pakollinen",
|
|
50
50
|
"duplicateDomain": "Samaa verkkotunnusta ei voi käyttää ohjaukseen",
|
|
51
|
-
"samePaths": "Lähde- ja kohdepolut eivät voi olla samoja"
|
|
51
|
+
"samePaths": "Lähde- ja kohdepolut eivät voi olla samoja",
|
|
52
|
+
"reservedPath": "Ei voi käyttää varattua polkua uudelleenohjauksessa"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "Dapat na wasto ang URL ng destinasyon",
|
|
49
49
|
"required": "Kinakailangan ang {{entity}}",
|
|
50
50
|
"duplicateDomain": "Hindi maaaring gumamit ng parehong domain para sa redirection",
|
|
51
|
-
"samePaths": "Hindi maaaring pareho ang mga landas ng pinagmulan at destinasyon"
|
|
51
|
+
"samePaths": "Hindi maaaring pareho ang mga landas ng pinagmulan at destinasyon",
|
|
52
|
+
"reservedPath": "Hindi maaaring gamitin ang nakalaan na landas para sa redireksyon"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "L'URL de destination doit être valide",
|
|
49
49
|
"required": "{{entity}} est requis",
|
|
50
50
|
"duplicateDomain": "Impossible d'utiliser le même domaine pour la redirection",
|
|
51
|
-
"samePaths": "Les chemins source et destination ne peuvent pas être identiques"
|
|
51
|
+
"samePaths": "Les chemins source et destination ne peuvent pas être identiques",
|
|
52
|
+
"reservedPath": "Impossible d'utiliser un chemin réservé pour la redirection"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "गंतव्य यूआरएल मान्य होना चाहिए",
|
|
49
49
|
"required": "{{entity}} आवश्यक है",
|
|
50
50
|
"duplicateDomain": "रिडायरेक्शन के लिए वही डोमेन का उपयोग नहीं कर सकते",
|
|
51
|
-
"samePaths": "स्रोत और गंतव्य पथ समान नहीं हो सकते"
|
|
51
|
+
"samePaths": "स्रोत और गंतव्य पथ समान नहीं हो सकते",
|
|
52
|
+
"reservedPath": "पुनर्दिशा के लिए आरक्षित पथ का उपयोग नहीं कर सकते"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "Odredišni URL mora biti valjan",
|
|
49
49
|
"required": "{{entity}} je obavezan",
|
|
50
50
|
"duplicateDomain": "Ne možete koristiti istu domenu za preusmjeravanje",
|
|
51
|
-
"samePaths": "Izvorne i odredišne putanje ne mogu biti iste"
|
|
51
|
+
"samePaths": "Izvorne i odredišne putanje ne mogu biti iste",
|
|
52
|
+
"reservedPath": "Ne možete koristiti rezerviranu putanju za preusmjeravanje"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "URL tujuan harus valid",
|
|
49
49
|
"required": "{{entity}} diperlukan",
|
|
50
50
|
"duplicateDomain": "Tidak dapat menggunakan domain yang sama untuk pengalihan",
|
|
51
|
-
"samePaths": "Path sumber dan tujuan tidak boleh sama"
|
|
51
|
+
"samePaths": "Path sumber dan tujuan tidak boleh sama",
|
|
52
|
+
"reservedPath": "Tidak dapat menggunakan jalur yang terdaftar untuk pengalihan"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "L'URL di destinazione deve essere valido",
|
|
49
49
|
"required": "{{entity}} è richiesto",
|
|
50
50
|
"duplicateDomain": "Non è possibile utilizzare lo stesso dominio per il reindirizzamento",
|
|
51
|
-
"samePaths": "I percorsi di origine e destinazione non possono essere gli stessi"
|
|
51
|
+
"samePaths": "I percorsi di origine e destinazione non possono essere gli stessi",
|
|
52
|
+
"reservedPath": "Non puoi utilizzare un percorso riservato per la reindirizzazione"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "宛先URLは有効でなければなりません",
|
|
49
49
|
"required": "{{entity}}は必須です",
|
|
50
50
|
"duplicateDomain": "リダイレクトに同じドメインを使用することはできません",
|
|
51
|
-
"samePaths": "ソースパスと宛先パスは同じであってはなりません"
|
|
51
|
+
"samePaths": "ソースパスと宛先パスは同じであってはなりません",
|
|
52
|
+
"reservedPath": "リダイレクトに予約されたパスを使用することはできません"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "대상 URL이 유효해야 합니다",
|
|
49
49
|
"required": "{{entity}}가 필요합니다",
|
|
50
50
|
"duplicateDomain": "리디렉션에 대해 동일한 도메인을 사용할 수 없습니다",
|
|
51
|
-
"samePaths": "출처 및 대상 경로는 동일할 수 없습니다"
|
|
51
|
+
"samePaths": "출처 및 대상 경로는 동일할 수 없습니다",
|
|
52
|
+
"reservedPath": "예약된 경로를 리디렉션에 사용할 수 없습니다."
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "Bestemmings-URL moet geldig zijn",
|
|
49
49
|
"required": "{{entity}} is vereist",
|
|
50
50
|
"duplicateDomain": "Kan dezelfde domein niet voor omleiding gebruiken",
|
|
51
|
-
"samePaths": "Bron- en bestemmingspaden kunnen niet hetzelfde zijn"
|
|
51
|
+
"samePaths": "Bron- en bestemmingspaden kunnen niet hetzelfde zijn",
|
|
52
|
+
"reservedPath": "Kan gereserveerd pad voor omleiding niet gebruiken"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "URL docelowy musi być prawidłowy",
|
|
49
49
|
"required": "{{entity}} jest wymagany",
|
|
50
50
|
"duplicateDomain": "Nie można używać tej samej domeny do przekierowania",
|
|
51
|
-
"samePaths": "Ścieżki źródłowa i docelowa nie mogą być takie same"
|
|
51
|
+
"samePaths": "Ścieżki źródłowa i docelowa nie mogą być takie same",
|
|
52
|
+
"reservedPath": "Nie można użyć zastrzeżonej ścieżki do przekierowania"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "A URL de destino deve ser válida",
|
|
49
49
|
"required": "{{entity}} é obrigatório",
|
|
50
50
|
"duplicateDomain": "Não é possível usar o mesmo domínio para redirecionamento",
|
|
51
|
-
"samePaths": "Os caminhos de origem e destino não podem ser os mesmos"
|
|
51
|
+
"samePaths": "Os caminhos de origem e destino não podem ser os mesmos",
|
|
52
|
+
"reservedPath": "Não é possível usar um caminho reservado para redirecionamento"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "A URL de destino deve ser válida",
|
|
49
49
|
"required": "{{entity}} é obrigatório",
|
|
50
50
|
"duplicateDomain": "Não é possível usar o mesmo domínio para redirecionamento",
|
|
51
|
-
"samePaths": "Os caminhos de origem e destino não podem ser os mesmos"
|
|
51
|
+
"samePaths": "Os caminhos de origem e destino não podem ser os mesmos",
|
|
52
|
+
"reservedPath": "Não é possível usar um caminho reservado para redirecionamento"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "URL-ul destinație trebuie să fie valid",
|
|
49
49
|
"required": "{{entity}} este necesar",
|
|
50
50
|
"duplicateDomain": "Nu se poate folosi același domeniu pentru redirecționare",
|
|
51
|
-
"samePaths": "Cărțile sursă și destinație nu pot fi aceleași"
|
|
51
|
+
"samePaths": "Cărțile sursă și destinație nu pot fi aceleași",
|
|
52
|
+
"reservedPath": "Nu se poate folosi un traseu rezervat pentru redirecționare"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "URL-адрес назначения должен быть действительным",
|
|
49
49
|
"required": "{{entity}} обязательна",
|
|
50
50
|
"duplicateDomain": "Нельзя использовать один и тот же домен для перенаправления",
|
|
51
|
-
"samePaths": "Источником и назначением не могут быть одинаковые пути"
|
|
51
|
+
"samePaths": "Источником и назначением не могут быть одинаковые пути",
|
|
52
|
+
"reservedPath": "Нельзя использовать зарезервированный путь для перенаправления"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "Cieľová URL musí byť platná",
|
|
49
49
|
"required": "{{entity}} je povinná",
|
|
50
50
|
"duplicateDomain": "Nemôžete použiť rovnakú doménu na presmerovanie",
|
|
51
|
-
"samePaths": "Cesty zdroja a cieľa nemôžu byť rovnaké"
|
|
51
|
+
"samePaths": "Cesty zdroja a cieľa nemôžu byť rovnaké",
|
|
52
|
+
"reservedPath": "Nie je možné použiť rezervovanú cestu na presmerovanie"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "URL cilja mora biti veljaven",
|
|
49
49
|
"required": "{{entity}} je obvezen",
|
|
50
50
|
"duplicateDomain": "Ni mogoče uporabiti iste domene za preusmeritev",
|
|
51
|
-
"samePaths": "Pot vira in poti cilja ne moreta biti enaki"
|
|
51
|
+
"samePaths": "Pot vira in poti cilja ne moreta biti enaki",
|
|
52
|
+
"reservedPath": "Rezervirana pot ne more biti uporabljena za preusmeritev"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "Destinationens URL måste vara giltig",
|
|
49
49
|
"required": "{{entity}} är obligatorisk",
|
|
50
50
|
"duplicateDomain": "Kan inte använda samma domän för omdirigering",
|
|
51
|
-
"samePaths": "Källa och destinationsvägar kan inte vara desamma"
|
|
51
|
+
"samePaths": "Källa och destinationsvägar kan inte vara desamma",
|
|
52
|
+
"reservedPath": "Kan inte använda reserverad sökväg för omdirigering"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "URL ปลายทางต้องถูกต้อง",
|
|
49
49
|
"required": "{{entity}} จำเป็นต้องใช้",
|
|
50
50
|
"duplicateDomain": "ไม่สามารถใช้โดเมนเดียวกันสำหรับการเปลี่ยนเส้นทางได้",
|
|
51
|
-
"samePaths": "เส้นทางแหล่งที่มาและเส้นทางปลายทางไม่สามารถเหมือนกันได้"
|
|
51
|
+
"samePaths": "เส้นทางแหล่งที่มาและเส้นทางปลายทางไม่สามารถเหมือนกันได้",
|
|
52
|
+
"reservedPath": "ไม่สามารถใช้เส้นทางที่สงวนไว้สำหรับการเปลี่ยนเส้นทางได้"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "Hedef URL geçerli olmalıdır",
|
|
49
49
|
"required": "{{entity}} gereklidir",
|
|
50
50
|
"duplicateDomain": "Yeniden yönlendirme için aynı alan kullanılamaz",
|
|
51
|
-
"samePaths": "Kaynak ve hedef yollar aynı olamaz"
|
|
51
|
+
"samePaths": "Kaynak ve hedef yollar aynı olamaz",
|
|
52
|
+
"reservedPath": "Yönlendirme için ayrılmış yolu kullanamazsınız"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "URL-адреса призначення повинна бути дійсною",
|
|
49
49
|
"required": "{{entity}} є обов'язковим",
|
|
50
50
|
"duplicateDomain": "Не можна використовувати той же домен для перенаправлення",
|
|
51
|
-
"samePaths": "Шляхи джерела та призначення не можуть бути однаковими"
|
|
51
|
+
"samePaths": "Шляхи джерела та призначення не можуть бути однаковими",
|
|
52
|
+
"reservedPath": "Не можна використовувати зарезервований шлях для редиректу"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
|
@@ -48,7 +48,8 @@
|
|
|
48
48
|
"destination": "URL đích phải hợp lệ",
|
|
49
49
|
"required": "{{entity}} là bắt buộc",
|
|
50
50
|
"duplicateDomain": "Không thể sử dụng cùng một miền cho chuyển hướng",
|
|
51
|
-
"samePaths": "Đường dẫn nguồn và đích không được giống nhau"
|
|
51
|
+
"samePaths": "Đường dẫn nguồn và đích không được giống nhau",
|
|
52
|
+
"reservedPath": "Không thể sử dụng đường dẫn đã được dự trữ cho việc chuyển hướng"
|
|
52
53
|
}
|
|
53
54
|
}
|
|
54
55
|
}
|
package/dist/RedirectUrls.js
CHANGED
|
@@ -6,10 +6,10 @@ import { useMutationWithInvalidation, useQueryParams } from '@bigbinary/neeto-co
|
|
|
6
6
|
import { buildUrl, showThumbsUpToastr } from '@bigbinary/neeto-commons-frontend/utils';
|
|
7
7
|
import Container from '@bigbinary/neeto-molecules/Container';
|
|
8
8
|
import Header from '@bigbinary/neeto-molecules/Header';
|
|
9
|
-
import PageLoader from '@bigbinary/neeto-molecules/PageLoader';
|
|
10
9
|
import Pane from '@bigbinary/neetoui/Pane';
|
|
11
10
|
import NoData from '@bigbinary/neetoui/NoData';
|
|
12
11
|
import Button from '@bigbinary/neetoui/Button';
|
|
12
|
+
import Spinner from '@bigbinary/neetoui/Spinner';
|
|
13
13
|
import { isEmpty, isNotNil } from 'ramda';
|
|
14
14
|
import { useTranslation, Trans } from 'react-i18next';
|
|
15
15
|
import Alert from '@bigbinary/neetoui/Alert';
|
|
@@ -19,7 +19,7 @@ import Input from '@bigbinary/neetoui/formik/Input';
|
|
|
19
19
|
import Form from '@bigbinary/neetoui/formik/Form';
|
|
20
20
|
import ActionBlock from '@bigbinary/neetoui/formik/ActionBlock';
|
|
21
21
|
import { t } from 'i18next';
|
|
22
|
-
import { VALID_URL_REGEX, DEFAULT_PAGE_SIZE } from '@bigbinary/neeto-commons-frontend/constants';
|
|
22
|
+
import { RESERVED_PATHS, VALID_URL_REGEX, DEFAULT_PAGE_SIZE } from '@bigbinary/neeto-commons-frontend/constants';
|
|
23
23
|
import * as yup from 'yup';
|
|
24
24
|
import _toConsumableArray from '@babel/runtime/helpers/toConsumableArray';
|
|
25
25
|
import { useQuery } from '@tanstack/react-query';
|
|
@@ -63,89 +63,6 @@ var DeleteRedirectUrlModal = function DeleteRedirectUrlModal(_ref) {
|
|
|
63
63
|
});
|
|
64
64
|
};
|
|
65
65
|
|
|
66
|
-
var URL_PATHNAME_REGEX = /^\/[-a-zA-Z0-9@:%_+.~#?&//=]*$/g;
|
|
67
|
-
|
|
68
|
-
var REDIRECT_URL_VALIDATION_SCHEMA = yup.object().shape({
|
|
69
|
-
fromPath: yup.string().required(t("neetoRedirectUrls.redirect.validations.required", {
|
|
70
|
-
entity: "Source"
|
|
71
|
-
})).matches(URL_PATHNAME_REGEX, t("neetoRedirectUrls.redirect.validations.source")),
|
|
72
|
-
toPath: yup.string().required(t("neetoRedirectUrls.redirect.validations.required", {
|
|
73
|
-
entity: "Destination"
|
|
74
|
-
})).matches(new RegExp("".concat(VALID_URL_REGEX.source, "|").concat(URL_PATHNAME_REGEX.source)), t("neetoRedirectUrls.redirect.validations.destination")).test("paths-not-same", t("neetoRedirectUrls.redirect.validations.samePaths"), function (value, context) {
|
|
75
|
-
var fromPath = context.parent.fromPath;
|
|
76
|
-
if (!value || !fromPath) return true;
|
|
77
|
-
return value !== fromPath;
|
|
78
|
-
})
|
|
79
|
-
});
|
|
80
|
-
|
|
81
|
-
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
82
|
-
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
83
|
-
var RedirectUrlPane = function RedirectUrlPane(_ref) {
|
|
84
|
-
var handleClose = _ref.handleClose,
|
|
85
|
-
handleSubmit = _ref.handleSubmit,
|
|
86
|
-
_ref$initialValues = _ref.initialValues,
|
|
87
|
-
initialValues = _ref$initialValues === void 0 ? {} : _ref$initialValues,
|
|
88
|
-
_ref$setInitialFocusF = _ref.setInitialFocusField,
|
|
89
|
-
setInitialFocusField = _ref$setInitialFocusF === void 0 ? noop : _ref$setInitialFocusF;
|
|
90
|
-
var _useTranslation = useTranslation(),
|
|
91
|
-
t = _useTranslation.t;
|
|
92
|
-
var redirectUrlId = initialValues === null || initialValues === void 0 ? void 0 : initialValues.id;
|
|
93
|
-
return /*#__PURE__*/jsxs(Fragment, {
|
|
94
|
-
children: [/*#__PURE__*/jsx(Pane.Header, {
|
|
95
|
-
children: /*#__PURE__*/jsx(Typography, {
|
|
96
|
-
style: "h2",
|
|
97
|
-
children: redirectUrlId ? t("neetoRedirectUrls.redirect.edit") : t("neetoRedirectUrls.redirect.add")
|
|
98
|
-
})
|
|
99
|
-
}), /*#__PURE__*/jsx(Form, {
|
|
100
|
-
formikProps: {
|
|
101
|
-
initialValues: initialValues || {
|
|
102
|
-
fromPath: "",
|
|
103
|
-
toPath: ""
|
|
104
|
-
},
|
|
105
|
-
validationSchema: REDIRECT_URL_VALIDATION_SCHEMA,
|
|
106
|
-
onSubmit: function onSubmit(values, formikBag) {
|
|
107
|
-
handleSubmit(_objectSpread$2({}, values), formikBag);
|
|
108
|
-
}
|
|
109
|
-
},
|
|
110
|
-
children: /*#__PURE__*/jsxs(Fragment, {
|
|
111
|
-
children: [/*#__PURE__*/jsx(Pane.Body, {
|
|
112
|
-
children: /*#__PURE__*/jsxs("div", {
|
|
113
|
-
className: "w-full space-y-4",
|
|
114
|
-
children: [/*#__PURE__*/jsx(Input, {
|
|
115
|
-
required: true,
|
|
116
|
-
id: "fromPath",
|
|
117
|
-
label: t("neetoRedirectUrls.redirect.source"),
|
|
118
|
-
name: "fromPath",
|
|
119
|
-
ref: setInitialFocusField,
|
|
120
|
-
placeholder: t("neetoRedirectUrls.common.placeholder.relativeUrl")
|
|
121
|
-
}), /*#__PURE__*/jsx(Input, {
|
|
122
|
-
required: true,
|
|
123
|
-
id: "toPath",
|
|
124
|
-
label: t("neetoRedirectUrls.redirect.destination"),
|
|
125
|
-
name: "toPath",
|
|
126
|
-
placeholder: window.location.origin
|
|
127
|
-
})]
|
|
128
|
-
})
|
|
129
|
-
}), /*#__PURE__*/jsx(Pane.Footer, {
|
|
130
|
-
children: /*#__PURE__*/jsx(ActionBlock, {
|
|
131
|
-
cancelButtonProps: {
|
|
132
|
-
onClick: handleClose
|
|
133
|
-
}
|
|
134
|
-
})
|
|
135
|
-
})]
|
|
136
|
-
})
|
|
137
|
-
})]
|
|
138
|
-
});
|
|
139
|
-
};
|
|
140
|
-
|
|
141
|
-
var SETTINGS_CATEGORIES = {
|
|
142
|
-
GENERAL: "GENERAL"
|
|
143
|
-
};
|
|
144
|
-
var SETTINGS_CATEGORIES_LABELS = _defineProperty({}, SETTINGS_CATEGORIES.GENERAL, t("neetoRedirectUrls.settings.general.title"));
|
|
145
|
-
var SHOW_TOASTR_CONFIG = {
|
|
146
|
-
showToastr: false
|
|
147
|
-
};
|
|
148
|
-
|
|
149
66
|
var routes = {
|
|
150
67
|
admin: {
|
|
151
68
|
index: "/admin",
|
|
@@ -198,6 +115,14 @@ var routes = {
|
|
|
198
115
|
home: "/"
|
|
199
116
|
};
|
|
200
117
|
|
|
118
|
+
var SETTINGS_CATEGORIES = {
|
|
119
|
+
GENERAL: "GENERAL"
|
|
120
|
+
};
|
|
121
|
+
var SETTINGS_CATEGORIES_LABELS = _defineProperty({}, SETTINGS_CATEGORIES.GENERAL, t("neetoRedirectUrls.settings.general.title"));
|
|
122
|
+
var SHOW_TOASTR_CONFIG = {
|
|
123
|
+
showToastr: false
|
|
124
|
+
};
|
|
125
|
+
|
|
201
126
|
var buildSettingsBreadcrumbs = function buildSettingsBreadcrumbs(category, pageTitle) {
|
|
202
127
|
return [{
|
|
203
128
|
link: routes.admin.adminPanel,
|
|
@@ -220,6 +145,93 @@ var handleError = function handleError(setStatus, error) {
|
|
|
220
145
|
setStatus(response.data.errors);
|
|
221
146
|
}
|
|
222
147
|
};
|
|
148
|
+
var isReservedPath = function isReservedPath(url) {
|
|
149
|
+
var _window$globalProps$o;
|
|
150
|
+
if (!url) return false;
|
|
151
|
+
var domainUrls = ((_window$globalProps$o = window.globalProps.organization) === null || _window$globalProps$o === void 0 || (_window$globalProps$o = _window$globalProps$o.domainUrls) === null || _window$globalProps$o === void 0 ? void 0 : _window$globalProps$o.map(normalizeURL)) || [];
|
|
152
|
+
return domainUrls.some(function (domainUrl) {
|
|
153
|
+
return RESERVED_PATHS.some(function (reservedPath) {
|
|
154
|
+
return normalizeURL(url) === normalizeURL("".concat(domainUrl, "/").concat(reservedPath));
|
|
155
|
+
});
|
|
156
|
+
});
|
|
157
|
+
};
|
|
158
|
+
|
|
159
|
+
var URL_PATHNAME_REGEX = /^\/[-a-zA-Z0-9@:%_+.~#?&//=]*$/g;
|
|
160
|
+
|
|
161
|
+
var REDIRECT_URL_VALIDATION_SCHEMA = yup.object().shape({
|
|
162
|
+
fromPath: yup.string().required(t("neetoRedirectUrls.redirect.validations.required", {
|
|
163
|
+
entity: "Source"
|
|
164
|
+
})).matches(URL_PATHNAME_REGEX, t("neetoRedirectUrls.redirect.validations.source")),
|
|
165
|
+
toPath: yup.string().required(t("neetoRedirectUrls.redirect.validations.required", {
|
|
166
|
+
entity: "Destination"
|
|
167
|
+
})).matches(new RegExp("".concat(VALID_URL_REGEX.source, "|").concat(URL_PATHNAME_REGEX.source)), t("neetoRedirectUrls.redirect.validations.destination")).test("paths-not-same", t("neetoRedirectUrls.redirect.validations.samePaths"), function (value, context) {
|
|
168
|
+
var fromPath = context.parent.fromPath;
|
|
169
|
+
if (!value || !fromPath) return true;
|
|
170
|
+
return value !== fromPath;
|
|
171
|
+
}).test("reserved-path", t("neetoRedirectUrls.redirect.validations.reservedPath"), function (value) {
|
|
172
|
+
return !isReservedPath(value);
|
|
173
|
+
})
|
|
174
|
+
});
|
|
175
|
+
|
|
176
|
+
function ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
177
|
+
function _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
178
|
+
var RedirectUrlPane = function RedirectUrlPane(_ref) {
|
|
179
|
+
var handleClose = _ref.handleClose,
|
|
180
|
+
handleSubmit = _ref.handleSubmit,
|
|
181
|
+
_ref$initialValues = _ref.initialValues,
|
|
182
|
+
initialValues = _ref$initialValues === void 0 ? {} : _ref$initialValues,
|
|
183
|
+
_ref$setInitialFocusF = _ref.setInitialFocusField,
|
|
184
|
+
setInitialFocusField = _ref$setInitialFocusF === void 0 ? noop : _ref$setInitialFocusF;
|
|
185
|
+
var _useTranslation = useTranslation(),
|
|
186
|
+
t = _useTranslation.t;
|
|
187
|
+
var redirectUrlId = initialValues === null || initialValues === void 0 ? void 0 : initialValues.id;
|
|
188
|
+
return /*#__PURE__*/jsxs(Fragment, {
|
|
189
|
+
children: [/*#__PURE__*/jsx(Pane.Header, {
|
|
190
|
+
children: /*#__PURE__*/jsx(Typography, {
|
|
191
|
+
style: "h2",
|
|
192
|
+
children: redirectUrlId ? t("neetoRedirectUrls.redirect.edit") : t("neetoRedirectUrls.redirect.add")
|
|
193
|
+
})
|
|
194
|
+
}), /*#__PURE__*/jsx(Form, {
|
|
195
|
+
formikProps: {
|
|
196
|
+
initialValues: initialValues || {
|
|
197
|
+
fromPath: "",
|
|
198
|
+
toPath: ""
|
|
199
|
+
},
|
|
200
|
+
validationSchema: REDIRECT_URL_VALIDATION_SCHEMA,
|
|
201
|
+
onSubmit: function onSubmit(values, formikBag) {
|
|
202
|
+
handleSubmit(_objectSpread$2({}, values), formikBag);
|
|
203
|
+
}
|
|
204
|
+
},
|
|
205
|
+
children: /*#__PURE__*/jsxs(Fragment, {
|
|
206
|
+
children: [/*#__PURE__*/jsx(Pane.Body, {
|
|
207
|
+
children: /*#__PURE__*/jsxs("div", {
|
|
208
|
+
className: "w-full space-y-4",
|
|
209
|
+
children: [/*#__PURE__*/jsx(Input, {
|
|
210
|
+
required: true,
|
|
211
|
+
id: "fromPath",
|
|
212
|
+
label: t("neetoRedirectUrls.redirect.source"),
|
|
213
|
+
name: "fromPath",
|
|
214
|
+
ref: setInitialFocusField,
|
|
215
|
+
placeholder: t("neetoRedirectUrls.common.placeholder.relativeUrl")
|
|
216
|
+
}), /*#__PURE__*/jsx(Input, {
|
|
217
|
+
required: true,
|
|
218
|
+
id: "toPath",
|
|
219
|
+
label: t("neetoRedirectUrls.redirect.destination"),
|
|
220
|
+
name: "toPath",
|
|
221
|
+
placeholder: window.location.origin
|
|
222
|
+
})]
|
|
223
|
+
})
|
|
224
|
+
}), /*#__PURE__*/jsx(Pane.Footer, {
|
|
225
|
+
children: /*#__PURE__*/jsx(ActionBlock, {
|
|
226
|
+
cancelButtonProps: {
|
|
227
|
+
onClick: handleClose
|
|
228
|
+
}
|
|
229
|
+
})
|
|
230
|
+
})]
|
|
231
|
+
})
|
|
232
|
+
})]
|
|
233
|
+
});
|
|
234
|
+
};
|
|
223
235
|
|
|
224
236
|
var REDIRECT_URLS_BASE_URL = "/neeto_redirect_urls_engine/api/v1/redirect_urls";
|
|
225
237
|
|
|
@@ -295,6 +307,8 @@ var DOMAIN_REDIRECTION_VALIDATION_SCHEMA = yup.object().shape({
|
|
|
295
307
|
if (!value) return true;
|
|
296
308
|
var domainUrls = ((_window$globalProps$o = window.globalProps.organization) === null || _window$globalProps$o === void 0 || (_window$globalProps$o = _window$globalProps$o.domainUrls) === null || _window$globalProps$o === void 0 ? void 0 : _window$globalProps$o.map(normalizeURL)) || [];
|
|
297
309
|
return !domainUrls.includes(normalizeURL(value));
|
|
310
|
+
}).test("reserved-path", t("neetoRedirectUrls.redirect.validations.reservedPath"), function (value) {
|
|
311
|
+
return !isReservedPath(value);
|
|
298
312
|
})
|
|
299
313
|
})
|
|
300
314
|
});
|
|
@@ -637,7 +651,10 @@ var RedirectUrls = function RedirectUrls(_ref) {
|
|
|
637
651
|
};
|
|
638
652
|
return /*#__PURE__*/jsx(Container, {
|
|
639
653
|
className: "w-full",
|
|
640
|
-
children: isLoading ? /*#__PURE__*/jsx(
|
|
654
|
+
children: isLoading ? /*#__PURE__*/jsx("div", {
|
|
655
|
+
className: "flex h-full w-full items-center justify-center",
|
|
656
|
+
children: /*#__PURE__*/jsx(Spinner, {})
|
|
657
|
+
}) : /*#__PURE__*/jsxs(Fragment, {
|
|
641
658
|
children: [/*#__PURE__*/jsx(Header, {
|
|
642
659
|
breadcrumbs: buildBreadcrumbs(pageTitle),
|
|
643
660
|
title: pageTitle,
|