@trackunit/react-form-components 1.27.8-alpha-2189b51c981.0 → 1.27.9
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/package.json +8 -8
- package/translation.cjs.js +4 -4
- package/translation.cjs13.js +3 -3
- package/translation.cjs17.js +4 -4
- package/translation.cjs4.js +3 -3
- package/translation.cjs5.js +5 -5
- package/translation.cjs7.js +4 -4
- package/translation.cjs9.js +3 -3
- package/translation.esm.js +4 -4
- package/translation.esm13.js +3 -3
- package/translation.esm17.js +4 -4
- package/translation.esm4.js +3 -3
- package/translation.esm5.js +5 -5
- package/translation.esm7.js +4 -4
- package/translation.esm9.js +3 -3
- package/migrations/entry.js.map +0 -1
- package/migrations/utils/jsx-utils.js.map +0 -1
- package/migrations/v2-0-0/actionbutton-add-title.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@trackunit/react-form-components",
|
|
3
|
-
"version": "1.27.
|
|
3
|
+
"version": "1.27.9",
|
|
4
4
|
"repository": "https://github.com/Trackunit/manager",
|
|
5
5
|
"license": "SEE LICENSE IN LICENSE.txt",
|
|
6
6
|
"migrations": "./migrations.json",
|
|
@@ -10,17 +10,17 @@
|
|
|
10
10
|
"dependencies": {
|
|
11
11
|
"react-calendar": "^6.0.0",
|
|
12
12
|
"react-select": "^5.10.2",
|
|
13
|
-
"@trackunit/date-and-time-utils": "1.13.8
|
|
13
|
+
"@trackunit/date-and-time-utils": "1.13.8",
|
|
14
14
|
"usehooks-ts": "^3.1.0",
|
|
15
15
|
"libphonenumber-js": "^1.12.22",
|
|
16
16
|
"zod": "^3.25.76",
|
|
17
17
|
"tailwind-merge": "^2.0.0",
|
|
18
|
-
"@trackunit/css-class-variance-utilities": "1.13.8
|
|
19
|
-
"@trackunit/react-components": "1.26.
|
|
20
|
-
"@trackunit/ui-icons": "1.13.8
|
|
21
|
-
"@trackunit/shared-utils": "1.15.8
|
|
22
|
-
"@trackunit/ui-design-tokens": "1.13.8
|
|
23
|
-
"@trackunit/i18n-library-translation": "1.22.3
|
|
18
|
+
"@trackunit/css-class-variance-utilities": "1.13.8",
|
|
19
|
+
"@trackunit/react-components": "1.26.7",
|
|
20
|
+
"@trackunit/ui-icons": "1.13.8",
|
|
21
|
+
"@trackunit/shared-utils": "1.15.8",
|
|
22
|
+
"@trackunit/ui-design-tokens": "1.13.8",
|
|
23
|
+
"@trackunit/i18n-library-translation": "1.22.3",
|
|
24
24
|
"string-ts": "^2.0.0",
|
|
25
25
|
"es-toolkit": "^1.39.10"
|
|
26
26
|
},
|
package/translation.cjs.js
CHANGED
|
@@ -14,7 +14,7 @@ var translation = {
|
|
|
14
14
|
"dropzone.label.default": "<clickable>Ordner durchsuchen</clickable> oder Dateien per Drag & Drop einfügen …",
|
|
15
15
|
"emailField.error.INVALID_EMAIL": "Bitte geben Sie eine gültige E-Mail-Adresse ein",
|
|
16
16
|
"emailField.error.REQUIRED": "The email address is required",
|
|
17
|
-
"emailField.sendEmailAction.label": "
|
|
17
|
+
"emailField.sendEmailAction.label": "E‑Mail",
|
|
18
18
|
"field.notEditable.tooltip": "Dieses Feld kann nicht bearbeitet werden",
|
|
19
19
|
"field.required.asterisk.tooltip": "Dieses Feld ist ein Pflichtfeld",
|
|
20
20
|
"numberField.error.GREATER_THAN": "Value must be greater than or equal to {{min}}",
|
|
@@ -22,8 +22,8 @@ var translation = {
|
|
|
22
22
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
23
23
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
24
24
|
"numberField.error.REQUIRED": "This field is required",
|
|
25
|
-
"passwordField.tooltip.hide": "
|
|
26
|
-
"passwordField.tooltip.show": "
|
|
25
|
+
"passwordField.tooltip.hide": "Passwort ausblenden",
|
|
26
|
+
"passwordField.tooltip.show": "Passwort anzeigen",
|
|
27
27
|
"phoneField.error.INVALID_COUNTRY": "Die Ländervorwahl ist ungültig",
|
|
28
28
|
"phoneField.error.INVALID_LENGTH": "Die Telefonnummer ist ungültig",
|
|
29
29
|
"phoneField.error.INVALID_NUMBER": "Die Telefonnummer ist ungültig",
|
|
@@ -43,7 +43,7 @@ var translation = {
|
|
|
43
43
|
"select.noOptionsMessage": "No options found",
|
|
44
44
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
45
45
|
"urlField.error.REQUIRED": "The URL is required",
|
|
46
|
-
"urlField.url.label": "
|
|
46
|
+
"urlField.url.label": "Webadresse"
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
exports.default = translation;
|
package/translation.cjs13.js
CHANGED
|
@@ -22,8 +22,8 @@ var translation = {
|
|
|
22
22
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
23
23
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
24
24
|
"numberField.error.REQUIRED": "Acest câmp este obligatoriu",
|
|
25
|
-
"passwordField.tooltip.hide": "
|
|
26
|
-
"passwordField.tooltip.show": "
|
|
25
|
+
"passwordField.tooltip.hide": "Ascundere parolă",
|
|
26
|
+
"passwordField.tooltip.show": "Afișare parolă",
|
|
27
27
|
"phoneField.error.INVALID_COUNTRY": "Codul țării nu este valid",
|
|
28
28
|
"phoneField.error.INVALID_LENGTH": "Numărul de telefon nu este valid",
|
|
29
29
|
"phoneField.error.INVALID_NUMBER": "Numărul de telefon nu este valid",
|
|
@@ -43,7 +43,7 @@ var translation = {
|
|
|
43
43
|
"select.noOptionsMessage": "No options found",
|
|
44
44
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
45
45
|
"urlField.error.REQUIRED": "The URL is required",
|
|
46
|
-
"urlField.url.label": "
|
|
46
|
+
"urlField.url.label": "Adresă web"
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
exports.default = translation;
|
package/translation.cjs17.js
CHANGED
|
@@ -22,8 +22,8 @@ var translation = {
|
|
|
22
22
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
23
23
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
24
24
|
"numberField.error.REQUIRED": "This field is required",
|
|
25
|
-
"passwordField.tooltip.hide": "
|
|
26
|
-
"passwordField.tooltip.show": "
|
|
25
|
+
"passwordField.tooltip.hide": "ซ่อนรหัสผ่าน",
|
|
26
|
+
"passwordField.tooltip.show": "แสดงรหัสผ่าน",
|
|
27
27
|
"phoneField.error.INVALID_COUNTRY": "รหัสประเทศไม่ถูกต้อง",
|
|
28
28
|
"phoneField.error.INVALID_LENGTH": "หมายเลขโทรศัพท์ไม่ถูกต้อง",
|
|
29
29
|
"phoneField.error.INVALID_NUMBER": "หมายเลขโทรศัพท์ไม่ถูกต้อง",
|
|
@@ -39,11 +39,11 @@ var translation = {
|
|
|
39
39
|
"schedule.label.day": "วัน",
|
|
40
40
|
"search.placeholder": "ค้นหา",
|
|
41
41
|
"select.loadingMessage": "กำลังโหลด...",
|
|
42
|
-
"select.multiValue.remove": "
|
|
42
|
+
"select.multiValue.remove": "นำออก",
|
|
43
43
|
"select.noOptionsMessage": "No options found",
|
|
44
44
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
45
45
|
"urlField.error.REQUIRED": "The URL is required",
|
|
46
|
-
"urlField.url.label": "
|
|
46
|
+
"urlField.url.label": "ที่อยู่เว็บ"
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
exports.default = translation;
|
package/translation.cjs4.js
CHANGED
|
@@ -22,8 +22,8 @@ var translation = {
|
|
|
22
22
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
23
23
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
24
24
|
"numberField.error.REQUIRED": "Dit is een verplicht veld",
|
|
25
|
-
"passwordField.tooltip.hide": "
|
|
26
|
-
"passwordField.tooltip.show": "
|
|
25
|
+
"passwordField.tooltip.hide": "Wachtwoord verbergen",
|
|
26
|
+
"passwordField.tooltip.show": "Wachtwoord tonen",
|
|
27
27
|
"phoneField.error.INVALID_COUNTRY": "De landcode is niet geldig",
|
|
28
28
|
"phoneField.error.INVALID_LENGTH": "Het telefoonnummer is niet geldig",
|
|
29
29
|
"phoneField.error.INVALID_NUMBER": "Het telefoonnummer is niet geldig",
|
|
@@ -43,7 +43,7 @@ var translation = {
|
|
|
43
43
|
"select.noOptionsMessage": "No options found",
|
|
44
44
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
45
45
|
"urlField.error.REQUIRED": "The URL is required",
|
|
46
|
-
"urlField.url.label": "
|
|
46
|
+
"urlField.url.label": "Webadres"
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
exports.default = translation;
|
package/translation.cjs5.js
CHANGED
|
@@ -22,8 +22,8 @@ var translation = {
|
|
|
22
22
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
23
23
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
24
24
|
"numberField.error.REQUIRED": "Ce champ est obligatoire",
|
|
25
|
-
"passwordField.tooltip.hide": "
|
|
26
|
-
"passwordField.tooltip.show": "
|
|
25
|
+
"passwordField.tooltip.hide": "Masquer le mot de passe",
|
|
26
|
+
"passwordField.tooltip.show": "Afficher le mot de passe",
|
|
27
27
|
"phoneField.error.INVALID_COUNTRY": "L'indicatif du pays n'est pas valide",
|
|
28
28
|
"phoneField.error.INVALID_LENGTH": "Le numéro de téléphone n’est pas valide",
|
|
29
29
|
"phoneField.error.INVALID_NUMBER": "Le numéro de téléphone n’est pas valide",
|
|
@@ -33,17 +33,17 @@ var translation = {
|
|
|
33
33
|
"phoneField.error.TOO_LONG": "Le numéro de téléphone est trop long",
|
|
34
34
|
"phoneField.error.TOO_SHORT": "Le numéro de téléphone est trop court",
|
|
35
35
|
"phoneField.error.undefined": "",
|
|
36
|
-
"phoneField.phoneNumber.label": "
|
|
36
|
+
"phoneField.phoneNumber.label": "Numéro de téléphone",
|
|
37
37
|
"schedule.label.active": "Active",
|
|
38
38
|
"schedule.label.allDay": "All Day",
|
|
39
39
|
"schedule.label.day": "Jour",
|
|
40
40
|
"search.placeholder": "Rechercher",
|
|
41
41
|
"select.loadingMessage": "Loading...",
|
|
42
|
-
"select.multiValue.remove": "
|
|
42
|
+
"select.multiValue.remove": "Supprimer",
|
|
43
43
|
"select.noOptionsMessage": "No options found",
|
|
44
44
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
45
45
|
"urlField.error.REQUIRED": "The URL is required",
|
|
46
|
-
"urlField.url.label": "Web
|
|
46
|
+
"urlField.url.label": "Adresse Web"
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
exports.default = translation;
|
package/translation.cjs7.js
CHANGED
|
@@ -14,7 +14,7 @@ var translation = {
|
|
|
14
14
|
"dropzone.label.default": "<clickable>Keresse meg</clickable> vagy húza ide a fájlokat…",
|
|
15
15
|
"emailField.error.INVALID_EMAIL": "Please enter a valid email address",
|
|
16
16
|
"emailField.error.REQUIRED": "The email address is required",
|
|
17
|
-
"emailField.sendEmailAction.label": "
|
|
17
|
+
"emailField.sendEmailAction.label": "E-mail",
|
|
18
18
|
"field.notEditable.tooltip": "Ez a mező nem szerkeszthető",
|
|
19
19
|
"field.required.asterisk.tooltip": "A mező kitöltése kötelező",
|
|
20
20
|
"numberField.error.GREATER_THAN": "Value must be greater than or equal to {{min}}",
|
|
@@ -22,8 +22,8 @@ var translation = {
|
|
|
22
22
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
23
23
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
24
24
|
"numberField.error.REQUIRED": "A mező kitöltése kötelező",
|
|
25
|
-
"passwordField.tooltip.hide": "
|
|
26
|
-
"passwordField.tooltip.show": "
|
|
25
|
+
"passwordField.tooltip.hide": "Jelszó elrejtése",
|
|
26
|
+
"passwordField.tooltip.show": "Jelszó mutatása",
|
|
27
27
|
"phoneField.error.INVALID_COUNTRY": "Az országkód érvénytelen",
|
|
28
28
|
"phoneField.error.INVALID_LENGTH": "A telefonszám érvénytelen",
|
|
29
29
|
"phoneField.error.INVALID_NUMBER": "A telefonszám érvénytelen",
|
|
@@ -43,7 +43,7 @@ var translation = {
|
|
|
43
43
|
"select.noOptionsMessage": "No options found",
|
|
44
44
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
45
45
|
"urlField.error.REQUIRED": "The URL is required",
|
|
46
|
-
"urlField.url.label": "
|
|
46
|
+
"urlField.url.label": "Webcím"
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
exports.default = translation;
|
package/translation.cjs9.js
CHANGED
|
@@ -22,8 +22,8 @@ var translation = {
|
|
|
22
22
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
23
23
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
24
24
|
"numberField.error.REQUIRED": "Dette feltet er obligatorisk",
|
|
25
|
-
"passwordField.tooltip.hide": "
|
|
26
|
-
"passwordField.tooltip.show": "
|
|
25
|
+
"passwordField.tooltip.hide": "Skjul passord",
|
|
26
|
+
"passwordField.tooltip.show": "Vis passord",
|
|
27
27
|
"phoneField.error.INVALID_COUNTRY": "Landkoden er ikke gyldig",
|
|
28
28
|
"phoneField.error.INVALID_LENGTH": "Telefonnummeret er ikke gyldig",
|
|
29
29
|
"phoneField.error.INVALID_NUMBER": "Telefonnummeret er ikke gyldig",
|
|
@@ -43,7 +43,7 @@ var translation = {
|
|
|
43
43
|
"select.noOptionsMessage": "No options found",
|
|
44
44
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
45
45
|
"urlField.error.REQUIRED": "The URL is required",
|
|
46
|
-
"urlField.url.label": "
|
|
46
|
+
"urlField.url.label": "Nettadresse"
|
|
47
47
|
};
|
|
48
48
|
|
|
49
49
|
exports.default = translation;
|
package/translation.esm.js
CHANGED
|
@@ -12,7 +12,7 @@ var translation = {
|
|
|
12
12
|
"dropzone.label.default": "<clickable>Ordner durchsuchen</clickable> oder Dateien per Drag & Drop einfügen …",
|
|
13
13
|
"emailField.error.INVALID_EMAIL": "Bitte geben Sie eine gültige E-Mail-Adresse ein",
|
|
14
14
|
"emailField.error.REQUIRED": "The email address is required",
|
|
15
|
-
"emailField.sendEmailAction.label": "
|
|
15
|
+
"emailField.sendEmailAction.label": "E‑Mail",
|
|
16
16
|
"field.notEditable.tooltip": "Dieses Feld kann nicht bearbeitet werden",
|
|
17
17
|
"field.required.asterisk.tooltip": "Dieses Feld ist ein Pflichtfeld",
|
|
18
18
|
"numberField.error.GREATER_THAN": "Value must be greater than or equal to {{min}}",
|
|
@@ -20,8 +20,8 @@ var translation = {
|
|
|
20
20
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
21
21
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
22
22
|
"numberField.error.REQUIRED": "This field is required",
|
|
23
|
-
"passwordField.tooltip.hide": "
|
|
24
|
-
"passwordField.tooltip.show": "
|
|
23
|
+
"passwordField.tooltip.hide": "Passwort ausblenden",
|
|
24
|
+
"passwordField.tooltip.show": "Passwort anzeigen",
|
|
25
25
|
"phoneField.error.INVALID_COUNTRY": "Die Ländervorwahl ist ungültig",
|
|
26
26
|
"phoneField.error.INVALID_LENGTH": "Die Telefonnummer ist ungültig",
|
|
27
27
|
"phoneField.error.INVALID_NUMBER": "Die Telefonnummer ist ungültig",
|
|
@@ -41,7 +41,7 @@ var translation = {
|
|
|
41
41
|
"select.noOptionsMessage": "No options found",
|
|
42
42
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
43
43
|
"urlField.error.REQUIRED": "The URL is required",
|
|
44
|
-
"urlField.url.label": "
|
|
44
|
+
"urlField.url.label": "Webadresse"
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
export { translation as default };
|
package/translation.esm13.js
CHANGED
|
@@ -20,8 +20,8 @@ var translation = {
|
|
|
20
20
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
21
21
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
22
22
|
"numberField.error.REQUIRED": "Acest câmp este obligatoriu",
|
|
23
|
-
"passwordField.tooltip.hide": "
|
|
24
|
-
"passwordField.tooltip.show": "
|
|
23
|
+
"passwordField.tooltip.hide": "Ascundere parolă",
|
|
24
|
+
"passwordField.tooltip.show": "Afișare parolă",
|
|
25
25
|
"phoneField.error.INVALID_COUNTRY": "Codul țării nu este valid",
|
|
26
26
|
"phoneField.error.INVALID_LENGTH": "Numărul de telefon nu este valid",
|
|
27
27
|
"phoneField.error.INVALID_NUMBER": "Numărul de telefon nu este valid",
|
|
@@ -41,7 +41,7 @@ var translation = {
|
|
|
41
41
|
"select.noOptionsMessage": "No options found",
|
|
42
42
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
43
43
|
"urlField.error.REQUIRED": "The URL is required",
|
|
44
|
-
"urlField.url.label": "
|
|
44
|
+
"urlField.url.label": "Adresă web"
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
export { translation as default };
|
package/translation.esm17.js
CHANGED
|
@@ -20,8 +20,8 @@ var translation = {
|
|
|
20
20
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
21
21
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
22
22
|
"numberField.error.REQUIRED": "This field is required",
|
|
23
|
-
"passwordField.tooltip.hide": "
|
|
24
|
-
"passwordField.tooltip.show": "
|
|
23
|
+
"passwordField.tooltip.hide": "ซ่อนรหัสผ่าน",
|
|
24
|
+
"passwordField.tooltip.show": "แสดงรหัสผ่าน",
|
|
25
25
|
"phoneField.error.INVALID_COUNTRY": "รหัสประเทศไม่ถูกต้อง",
|
|
26
26
|
"phoneField.error.INVALID_LENGTH": "หมายเลขโทรศัพท์ไม่ถูกต้อง",
|
|
27
27
|
"phoneField.error.INVALID_NUMBER": "หมายเลขโทรศัพท์ไม่ถูกต้อง",
|
|
@@ -37,11 +37,11 @@ var translation = {
|
|
|
37
37
|
"schedule.label.day": "วัน",
|
|
38
38
|
"search.placeholder": "ค้นหา",
|
|
39
39
|
"select.loadingMessage": "กำลังโหลด...",
|
|
40
|
-
"select.multiValue.remove": "
|
|
40
|
+
"select.multiValue.remove": "นำออก",
|
|
41
41
|
"select.noOptionsMessage": "No options found",
|
|
42
42
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
43
43
|
"urlField.error.REQUIRED": "The URL is required",
|
|
44
|
-
"urlField.url.label": "
|
|
44
|
+
"urlField.url.label": "ที่อยู่เว็บ"
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
export { translation as default };
|
package/translation.esm4.js
CHANGED
|
@@ -20,8 +20,8 @@ var translation = {
|
|
|
20
20
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
21
21
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
22
22
|
"numberField.error.REQUIRED": "Dit is een verplicht veld",
|
|
23
|
-
"passwordField.tooltip.hide": "
|
|
24
|
-
"passwordField.tooltip.show": "
|
|
23
|
+
"passwordField.tooltip.hide": "Wachtwoord verbergen",
|
|
24
|
+
"passwordField.tooltip.show": "Wachtwoord tonen",
|
|
25
25
|
"phoneField.error.INVALID_COUNTRY": "De landcode is niet geldig",
|
|
26
26
|
"phoneField.error.INVALID_LENGTH": "Het telefoonnummer is niet geldig",
|
|
27
27
|
"phoneField.error.INVALID_NUMBER": "Het telefoonnummer is niet geldig",
|
|
@@ -41,7 +41,7 @@ var translation = {
|
|
|
41
41
|
"select.noOptionsMessage": "No options found",
|
|
42
42
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
43
43
|
"urlField.error.REQUIRED": "The URL is required",
|
|
44
|
-
"urlField.url.label": "
|
|
44
|
+
"urlField.url.label": "Webadres"
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
export { translation as default };
|
package/translation.esm5.js
CHANGED
|
@@ -20,8 +20,8 @@ var translation = {
|
|
|
20
20
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
21
21
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
22
22
|
"numberField.error.REQUIRED": "Ce champ est obligatoire",
|
|
23
|
-
"passwordField.tooltip.hide": "
|
|
24
|
-
"passwordField.tooltip.show": "
|
|
23
|
+
"passwordField.tooltip.hide": "Masquer le mot de passe",
|
|
24
|
+
"passwordField.tooltip.show": "Afficher le mot de passe",
|
|
25
25
|
"phoneField.error.INVALID_COUNTRY": "L'indicatif du pays n'est pas valide",
|
|
26
26
|
"phoneField.error.INVALID_LENGTH": "Le numéro de téléphone n’est pas valide",
|
|
27
27
|
"phoneField.error.INVALID_NUMBER": "Le numéro de téléphone n’est pas valide",
|
|
@@ -31,17 +31,17 @@ var translation = {
|
|
|
31
31
|
"phoneField.error.TOO_LONG": "Le numéro de téléphone est trop long",
|
|
32
32
|
"phoneField.error.TOO_SHORT": "Le numéro de téléphone est trop court",
|
|
33
33
|
"phoneField.error.undefined": "",
|
|
34
|
-
"phoneField.phoneNumber.label": "
|
|
34
|
+
"phoneField.phoneNumber.label": "Numéro de téléphone",
|
|
35
35
|
"schedule.label.active": "Active",
|
|
36
36
|
"schedule.label.allDay": "All Day",
|
|
37
37
|
"schedule.label.day": "Jour",
|
|
38
38
|
"search.placeholder": "Rechercher",
|
|
39
39
|
"select.loadingMessage": "Loading...",
|
|
40
|
-
"select.multiValue.remove": "
|
|
40
|
+
"select.multiValue.remove": "Supprimer",
|
|
41
41
|
"select.noOptionsMessage": "No options found",
|
|
42
42
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
43
43
|
"urlField.error.REQUIRED": "The URL is required",
|
|
44
|
-
"urlField.url.label": "Web
|
|
44
|
+
"urlField.url.label": "Adresse Web"
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
export { translation as default };
|
package/translation.esm7.js
CHANGED
|
@@ -12,7 +12,7 @@ var translation = {
|
|
|
12
12
|
"dropzone.label.default": "<clickable>Keresse meg</clickable> vagy húza ide a fájlokat…",
|
|
13
13
|
"emailField.error.INVALID_EMAIL": "Please enter a valid email address",
|
|
14
14
|
"emailField.error.REQUIRED": "The email address is required",
|
|
15
|
-
"emailField.sendEmailAction.label": "
|
|
15
|
+
"emailField.sendEmailAction.label": "E-mail",
|
|
16
16
|
"field.notEditable.tooltip": "Ez a mező nem szerkeszthető",
|
|
17
17
|
"field.required.asterisk.tooltip": "A mező kitöltése kötelező",
|
|
18
18
|
"numberField.error.GREATER_THAN": "Value must be greater than or equal to {{min}}",
|
|
@@ -20,8 +20,8 @@ var translation = {
|
|
|
20
20
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
21
21
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
22
22
|
"numberField.error.REQUIRED": "A mező kitöltése kötelező",
|
|
23
|
-
"passwordField.tooltip.hide": "
|
|
24
|
-
"passwordField.tooltip.show": "
|
|
23
|
+
"passwordField.tooltip.hide": "Jelszó elrejtése",
|
|
24
|
+
"passwordField.tooltip.show": "Jelszó mutatása",
|
|
25
25
|
"phoneField.error.INVALID_COUNTRY": "Az országkód érvénytelen",
|
|
26
26
|
"phoneField.error.INVALID_LENGTH": "A telefonszám érvénytelen",
|
|
27
27
|
"phoneField.error.INVALID_NUMBER": "A telefonszám érvénytelen",
|
|
@@ -41,7 +41,7 @@ var translation = {
|
|
|
41
41
|
"select.noOptionsMessage": "No options found",
|
|
42
42
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
43
43
|
"urlField.error.REQUIRED": "The URL is required",
|
|
44
|
-
"urlField.url.label": "
|
|
44
|
+
"urlField.url.label": "Webcím"
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
export { translation as default };
|
package/translation.esm9.js
CHANGED
|
@@ -20,8 +20,8 @@ var translation = {
|
|
|
20
20
|
"numberField.error.LESS_THAN": "Value must be less than or equal to {{max}}",
|
|
21
21
|
"numberField.error.NOT_IN_BETWEEN": "Must be between {{min}} and {{max}}",
|
|
22
22
|
"numberField.error.REQUIRED": "Dette feltet er obligatorisk",
|
|
23
|
-
"passwordField.tooltip.hide": "
|
|
24
|
-
"passwordField.tooltip.show": "
|
|
23
|
+
"passwordField.tooltip.hide": "Skjul passord",
|
|
24
|
+
"passwordField.tooltip.show": "Vis passord",
|
|
25
25
|
"phoneField.error.INVALID_COUNTRY": "Landkoden er ikke gyldig",
|
|
26
26
|
"phoneField.error.INVALID_LENGTH": "Telefonnummeret er ikke gyldig",
|
|
27
27
|
"phoneField.error.INVALID_NUMBER": "Telefonnummeret er ikke gyldig",
|
|
@@ -41,7 +41,7 @@ var translation = {
|
|
|
41
41
|
"select.noOptionsMessage": "No options found",
|
|
42
42
|
"urlField.error.INVALID_URL": "Please enter a valid URL",
|
|
43
43
|
"urlField.error.REQUIRED": "The URL is required",
|
|
44
|
-
"urlField.url.label": "
|
|
44
|
+
"urlField.url.label": "Nettadresse"
|
|
45
45
|
};
|
|
46
46
|
|
|
47
47
|
export { translation as default };
|
package/migrations/entry.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"entry.js","sourceRoot":"","sources":["../../../../../libs/react/form-components/migrations/entry.ts"],"names":[],"mappings":"","sourcesContent":["// Migration entry point for @nx/js:tsc build target.\n// Migrations are registered in ../migrations.json and resolved by NX at runtime.\nexport {};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"jsx-utils.js","sourceRoot":"","sources":["../../../../../../libs/react/form-components/migrations/utils/jsx-utils.ts"],"names":[],"mappings":"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","sourcesContent":["import { logger, type Tree, visitNotIgnoredFiles } from \"@nx/devkit\";\nimport { tsquery } from \"@phenomnomnominal/tsquery\";\nimport * as ts from \"typescript\";\n\nconst TSX_EXTENSIONS = [\".tsx\", \".jsx\"] as const;\nconst TS_EXTENSIONS = [\".ts\", \".tsx\", \".jsx\"] as const;\n\nconst isTsxFile = (filePath: string): boolean => TSX_EXTENSIONS.some(ext => filePath.endsWith(ext));\nconst isTsFile = (filePath: string): boolean => TS_EXTENSIONS.some(ext => filePath.endsWith(ext));\n\nconst isUnderNodeModules = (filePath: string): boolean =>\n filePath.includes(\"/node_modules/\") || filePath.startsWith(\"node_modules/\");\n\nconst isUnderDist = (filePath: string): boolean =>\n filePath.includes(\"/dist/\") || filePath.startsWith(\"dist/\") || filePath.includes(\"/.nx/\");\n\n/**\n * Visits every `.tsx`/`.jsx` file under the workspace root and invokes the\n * callback with the file path and its current contents. Files that don't\n * include the marker substring are skipped, which makes large workspaces\n * cheap to scan.\n */\nexport const visitTsxFiles = (\n tree: Tree,\n marker: string,\n callback: (filePath: string, content: string) => string | null | undefined\n): number => {\n let touched = 0;\n visitNotIgnoredFiles(tree, \"/\", filePath => {\n if (!isTsxFile(filePath)) return;\n if (isUnderNodeModules(filePath) || isUnderDist(filePath)) return;\n const content = tree.read(filePath, \"utf-8\");\n if (content === null) return;\n if (!content.includes(marker)) return;\n const updated = callback(filePath, content);\n if (updated !== null && updated !== undefined && updated !== content) {\n tree.write(filePath, updated);\n touched += 1;\n }\n });\n return touched;\n};\n\n/**\n * Same as {@link visitTsxFiles} but also includes plain `.ts` files. Use this\n * when the codemod also rewrites non-JSX files such as helpers or hooks.\n */\nexport const visitTsFiles = (\n tree: Tree,\n marker: string,\n callback: (filePath: string, content: string) => string | null | undefined\n): number => {\n let touched = 0;\n visitNotIgnoredFiles(tree, \"/\", filePath => {\n if (!isTsFile(filePath)) return;\n if (isUnderNodeModules(filePath) || isUnderDist(filePath)) return;\n const content = tree.read(filePath, \"utf-8\");\n if (content === null) return;\n if (!content.includes(marker)) return;\n const updated = callback(filePath, content);\n if (updated !== null && updated !== undefined && updated !== content) {\n tree.write(filePath, updated);\n touched += 1;\n }\n });\n return touched;\n};\n\n/**\n * Mapping of imported component aliases to their original names for a given\n * package. For `import { IconButton as Btn } from \"@trackunit/react-components\"`\n * this returns `{ Btn: \"IconButton\" }`.\n *\n * Returns `null` when the file imports nothing from the package, which lets\n * callers short-circuit before parsing JSX.\n */\nexport const getImportedAliases = (sourceFile: ts.SourceFile, packageName: string): Record<string, string> | null => {\n const result: Record<string, string> = {};\n let found = false;\n\n for (const stmt of sourceFile.statements) {\n if (!ts.isImportDeclaration(stmt)) continue;\n const moduleSpecifier = stmt.moduleSpecifier;\n if (!ts.isStringLiteral(moduleSpecifier)) continue;\n if (moduleSpecifier.text !== packageName) continue;\n\n const namedBindings = stmt.importClause?.namedBindings;\n if (namedBindings === undefined || !ts.isNamedImports(namedBindings)) continue;\n\n for (const element of namedBindings.elements) {\n const localName = element.name.text;\n const importedName = element.propertyName?.text ?? localName;\n result[localName] = importedName;\n found = true;\n }\n }\n\n return found ? result : null;\n};\n\n/**\n * Returns the local alias used in this file for `originalName` when imported\n * from `packageName`, or `null` if the component is not imported.\n */\nexport const getLocalAliasFor = (\n sourceFile: ts.SourceFile,\n packageName: string,\n originalName: string\n): string | null => {\n const aliases = getImportedAliases(sourceFile, packageName);\n if (aliases === null) return null;\n for (const [local, original] of Object.entries(aliases)) {\n if (original === originalName) return local;\n }\n return null;\n};\n\nexport type JsxElementMatch = {\n /** The opening JSX element (the one carrying the attributes). */\n openingElement: ts.JsxOpeningElement | ts.JsxSelfClosingElement;\n /** The full element including children, or the self-closing element. */\n element: ts.JsxElement | ts.JsxSelfClosingElement;\n};\n\n/**\n * Finds every JSX element whose tag name resolves to one of `tagNames`\n * (typically the local aliases returned by {@link getImportedAliases}).\n *\n * The result intentionally includes both opening and full elements so callers\n * can manipulate attributes (via `openingElement`) or wrap/replace the whole\n * element (via `element`).\n */\nexport const findJsxElements = (\n sourceFile: ts.SourceFile,\n tagNames: ReadonlyArray<string>\n): ReadonlyArray<JsxElementMatch> => {\n const matches: Array<JsxElementMatch> = [];\n const tagSet = new Set(tagNames);\n\n const visit = (node: ts.Node): void => {\n if (ts.isJsxSelfClosingElement(node)) {\n if (ts.isIdentifier(node.tagName) && tagSet.has(node.tagName.text)) {\n matches.push({ openingElement: node, element: node });\n }\n } else if (ts.isJsxElement(node)) {\n const opening = node.openingElement;\n if (ts.isIdentifier(opening.tagName) && tagSet.has(opening.tagName.text)) {\n matches.push({ openingElement: opening, element: node });\n }\n }\n ts.forEachChild(node, visit);\n };\n\n visit(sourceFile);\n return matches;\n};\n\n/**\n * Looks up a named JSX attribute on the opening element. Returns `null` when\n * the attribute is missing or part of a spread attribute (which we cannot\n * statically inspect).\n */\nexport const findJsxAttribute = (\n openingElement: ts.JsxOpeningElement | ts.JsxSelfClosingElement,\n attributeName: string\n): ts.JsxAttribute | null => {\n for (const attr of openingElement.attributes.properties) {\n if (!ts.isJsxAttribute(attr)) continue;\n if (!ts.isIdentifier(attr.name)) continue;\n if (attr.name.text === attributeName) return attr;\n }\n return null;\n};\n\n/**\n * `true` when the element forwards a spread expression such as `{...rest}`,\n * which means we can't be sure which attributes are actually set.\n */\nexport const hasSpreadAttribute = (openingElement: ts.JsxOpeningElement | ts.JsxSelfClosingElement): boolean => {\n return openingElement.attributes.properties.some(prop => ts.isJsxSpreadAttribute(prop));\n};\n\n/**\n * Parses the file as TSX so JSX is recognised. We do not need a full program\n * here; tsquery's `ast` helper produces a script-kind source file which loses\n * JSX context, so we go through `createSourceFile` directly.\n */\nexport const parseTsx = (content: string, fileName = \"file.tsx\"): ts.SourceFile =>\n ts.createSourceFile(fileName, content, ts.ScriptTarget.Latest, true, ts.ScriptKind.TSX);\n\n/** Re-exported for codemods that need direct AST queries. */\nexport { tsquery };\n\n/**\n * Helper for codemods to log a one-line summary at the end of a run. Migration\n * runners aggregate logs per migration, so this keeps output focused.\n */\nexport const logSummary = (migrationName: string, touched: number, manualReviewNeeded?: number): void => {\n if (touched === 0) {\n logger.info(` ${migrationName}: no files changed`);\n return;\n }\n const reviewSuffix =\n manualReviewNeeded !== undefined && manualReviewNeeded > 0\n ? ` (${manualReviewNeeded} location(s) need manual review)`\n : \"\";\n logger.info(` ${migrationName}: updated ${touched} file(s)${reviewSuffix}`);\n};\n\n/**\n * Inserts an attribute string immediately after the tag name (so the new\n * attribute appears first). Returns the resulting source content.\n *\n * The added attribute is rendered verbatim, so callers are responsible for\n * including the leading space (e.g. ` title=\"Close\"`).\n */\nexport const insertAttributeIntoOpeningTag = (\n content: string,\n openingElement: ts.JsxOpeningElement | ts.JsxSelfClosingElement,\n attributeText: string\n): string => {\n const tagName = openingElement.tagName;\n const insertPos = tagName.getEnd();\n return content.slice(0, insertPos) + ` ${attributeText}` + content.slice(insertPos);\n};\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"actionbutton-add-title.js","sourceRoot":"","sources":["../../../../../../libs/react/form-components/migrations/v2-0-0/actionbutton-add-title.ts"],"names":[],"mappings":"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","sourcesContent":["import { type Tree, logger } from \"@nx/devkit\";\nimport * as ts from \"typescript\";\nimport {\n findJsxAttribute,\n findJsxElements,\n getImportedAliases,\n hasSpreadAttribute,\n logSummary,\n parseTsx,\n visitTsxFiles,\n} from \"../utils/jsx-utils\";\n\nconst PACKAGE_NAME = \"@trackunit/react-form-components\";\nconst COMPONENT_NAME = \"ActionButton\";\n\nconst ACTION_TYPE_TO_TITLE: Record<string, string> = {\n COPY: \"Copy value\",\n EDIT: \"Edit value\",\n EMAIL: \"Send email\",\n PHONE_NUMBER: \"Call number\",\n WEB_ADDRESS: \"Open link\",\n};\n\nconst DEFAULT_TITLE = \"Action\";\n\nconst resolveTitleForType = (typeAttr: ts.JsxAttribute | null): string => {\n if (typeAttr === null) return DEFAULT_TITLE;\n const initializer = typeAttr.initializer;\n if (initializer === undefined) return DEFAULT_TITLE;\n if (ts.isStringLiteral(initializer)) {\n return ACTION_TYPE_TO_TITLE[initializer.text] ?? DEFAULT_TITLE;\n }\n return DEFAULT_TITLE;\n};\n\nconst transformActionButtonUsage = (filePath: string, content: string): string | null => {\n const sourceFile = parseTsx(content, filePath);\n\n const aliases = getImportedAliases(sourceFile, PACKAGE_NAME);\n if (aliases === null) return null;\n\n const localAlias = Object.entries(aliases).find(([, name]) => name === COMPONENT_NAME)?.[0];\n if (localAlias === undefined) return null;\n\n const matches = findJsxElements(sourceFile, [localAlias]);\n if (matches.length === 0) return null;\n\n type Edit = { offset: number; text: string };\n const edits: Array<Edit> = [];\n\n for (const { openingElement } of matches) {\n if (hasSpreadAttribute(openingElement)) continue;\n if (findJsxAttribute(openingElement, \"title\") !== null) continue;\n\n const typeAttr = findJsxAttribute(openingElement, \"type\");\n const title = resolveTitleForType(typeAttr);\n edits.push({\n offset: openingElement.tagName.getEnd(),\n text: ` title=\"${title}\"`,\n });\n }\n\n if (edits.length === 0) return null;\n\n edits.sort((a, b) => (a.offset === b.offset ? 0 : b.offset - a.offset));\n\n let updated = content;\n for (const { offset, text } of edits) {\n updated = updated.slice(0, offset) + text + updated.slice(offset);\n }\n return updated;\n};\n\n/**\n * Adds the now-required `title` prop to `<ActionButton>` usages that don't\n * already provide one. The default value is derived from the `type` prop when\n * possible (e.g. `COPY` → \"Copy value\"); consumers should replace the\n * placeholders with their own localized strings.\n */\nexport const actionButtonAddTitle = (tree: Tree): void => {\n const touched = visitTsxFiles(tree, \"ActionButton\", transformActionButtonUsage);\n logSummary(\"actionbutton-add-title\", touched);\n if (touched > 0) {\n logger.info(` Replace placeholder ActionButton titles with your own localized strings.`);\n }\n};\n\nexport default actionButtonAddTitle;\n"]}
|