@everymatrix/general-registration 1.88.12 → 1.88.13

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.
@@ -12,6 +12,7 @@ const TRANSLATIONS$1 = {
12
12
  "dateFormatError": "The selected date has a different format then the one required.",
13
13
  "numberLengthError": "The number should be between {min} and {max}",
14
14
  "lengthError": "The length should be between {minLength} and {maxLength}",
15
+ "fixedLengthError": "The length should be {length} characters",
15
16
  "requiredError": "This input is required.",
16
17
  "invalidOriginalPasswordError": "Initial password field does not validate all criteria.",
17
18
  "invalidPassword": "Password does not meet all criteria",
@@ -38,7 +39,8 @@ const TRANSLATIONS$1 = {
38
39
  "SAIdLengthError": "SA ID must be 13 digits",
39
40
  "SAIdInvalidError": "Invalid SA ID",
40
41
  "PassportLengthError": "Passport number must be 8 or 9 digits.",
41
- "PasswordMustContain": "Password must contain:"
42
+ "PasswordMustContain": "Password must contain:",
43
+ "AlphanumericalOnly": "Only alphanumerical characters are allowed"
42
44
  },
43
45
  "hu": {
44
46
  "dateError": "A választott dátumnak {min} és {max} között kell lennie",
@@ -46,6 +48,7 @@ const TRANSLATIONS$1 = {
46
48
  "dateFormatError": "A kiválasztott dátum formátuma eltér a szükségestől.",
47
49
  "numberLengthError": "A számnak {min} és {max} között kell lennie",
48
50
  "lengthError": "A hossznak {minLength} és {maxLength} között kell lennie",
51
+ "fixedLengthError": "A hossznak {length} karakternek kell lennie",
49
52
  "requiredError": "Ez a beviteli mező kötelező.",
50
53
  "invalidOriginalPasswordError": "Initial password field does not validate all criteria.",
51
54
  "invalidPassword": "A jelszó nem felel meg minden kritériumnak",
@@ -69,7 +72,8 @@ const TRANSLATIONS$1 = {
69
72
  "PassportLengthError": "Az útlevélszámnak 9 számjegyűnek kell lennie",
70
73
  "SAIdLengthError": "A dél-afrikai személyi számnak 13 számjegyűnek kell lennie",
71
74
  "SAIdInvalidError": "Érvénytelen dél-afrikai személyi szám",
72
- "PasswordMustContain": "A jelszónak tartalmaznia kell:"
75
+ "PasswordMustContain": "A jelszónak tartalmaznia kell:",
76
+ "AlphanumericalOnly": "Csak alfanumerikus karakterek engedélyezettek"
73
77
  },
74
78
  "hr": {
75
79
  "dateError": "Odabrani datum treba biti između {min} i {max}",
@@ -77,6 +81,7 @@ const TRANSLATIONS$1 = {
77
81
  "dateFormatError": "Odabrani datum je u drugačijem formatu od potrebnog.",
78
82
  "numberLengthError": "Broj bi trebao biti između {min} i {max}",
79
83
  "lengthError": "Duljina bi trebala biti između {minLength} i {maxLength}",
84
+ "fixedLengthError": "Duljina mora biti {length} znakova",
80
85
  "requiredError": "Ovaj unos je obavezan.",
81
86
  "invalidOriginalPasswordError": "Lozinke se ne podudaraju",
82
87
  "invalidPassword": "Lozinka ne zadovoljava sve kriterije",
@@ -100,7 +105,8 @@ const TRANSLATIONS$1 = {
100
105
  "PassportLengthError": "Broj putovnice mora imati 9 znamenki",
101
106
  "SAIdLengthError": "Južnoafrički osobni broj mora imati 13 znamenki",
102
107
  "SAIdInvalidError": "Nevažeći južnoafrički osobni broj",
103
- "PasswordMustContain": "Lozinka mora sadržavati:"
108
+ "PasswordMustContain": "Lozinka mora sadržavati:",
109
+ "AlphanumericalOnly": "Dopušteni su samo alfanumerički znakovi"
104
110
  },
105
111
  "tr": {
106
112
  "dateError": "Seçilen tarih {min} ve {max} arasında olmalıdır",
@@ -108,6 +114,7 @@ const TRANSLATIONS$1 = {
108
114
  "dateFormatError": "Seçilen tarihin formatı, gereken formattan farklı.",
109
115
  "numberLengthError": "Sayı {min} ve {max} arasında olmalıdır",
110
116
  "lengthError": "Uzunluk {minLength} ve {maxLength} arasında olmalıdır",
117
+ "fixedLengthError": "Uzunluk {length} karakter olmalıdır",
111
118
  "requiredError": "Bu alan zorunludur.",
112
119
  "invalidOriginalPasswordError": "İlk şifre alanı tüm kriterleri karşılamıyor.",
113
120
  "invalidPassword": "Şifre tüm kriterleri karşılamıyor",
@@ -131,7 +138,8 @@ const TRANSLATIONS$1 = {
131
138
  "PassportLengthError": "Pasaport numarası 9 haneli olmalıdır",
132
139
  "SAIdLengthError": "Güney Afrika kimlik numarası 13 haneli olmalıdır",
133
140
  "SAIdInvalidError": "Geçersiz Güney Afrika kimlik numarası",
134
- "PasswordMustContain": "Şifre şunları içermelidir:"
141
+ "PasswordMustContain": "Şifre şunları içermelidir:",
142
+ "AlphanumericalOnly": "Yalnızca alfanümerik karakterlere izin verilir"
135
143
  },
136
144
  "pt-br": {
137
145
  "dateError": "A data selecionada deve estar entre {min} e {max}",
@@ -139,6 +147,7 @@ const TRANSLATIONS$1 = {
139
147
  "dateFormatError": "A data selecionada está em um formato diferente do exigido.",
140
148
  "numberLengthError": "O número deve estar entre {min} e {max}",
141
149
  "lengthError": "O comprimento deve estar entre {minLength} e {maxLength}",
150
+ "fixedLengthError": "O comprimento deve ser de {length} caracteres",
142
151
  "requiredError": "Este campo é obrigatório",
143
152
  "invalidOriginalPasswordError": "O campo de senha inicial não faz parte dos critérios válidos",
144
153
  "invalidPassword": "A senha não atende a todos os critérios",
@@ -162,7 +171,43 @@ const TRANSLATIONS$1 = {
162
171
  "PassportLengthError": "O número do passaporte deve ter 9 dígitos",
163
172
  "SAIdLengthError": "O número de identificação da África do Sul deve ter 13 dígitos",
164
173
  "SAIdInvalidError": "Número de identificação da África do Sul inválido",
165
- "PasswordMustContain": "A senha deve conter:"
174
+ "PasswordMustContain": "A senha deve conter:",
175
+ "AlphanumericalOnly": "Apenas caracteres alfanuméricos são permitidos"
176
+ },
177
+ "pt": {
178
+ "dateError": "A data selecionada deve estar entre {min} e {max}",
179
+ "dateError2": "A data selecionada não está dentro do intervalo aceite",
180
+ "dateFormatError": "A data selecionada tem um formato diferente do exigido.",
181
+ "numberLengthError": "O número deve estar entre {min} e {max}",
182
+ "lengthError": "O comprimento deve estar entre {minLength} e {maxLength}",
183
+ "requiredError": "Este campo é obrigatório.",
184
+ "invalidOriginalPasswordError": "O campo da palavra-passe inicial não cumpre todos os critérios.",
185
+ "invalidPassword": "A palavra-passe não cumpre todos os critérios",
186
+ "passwordStrength": "Força da palavra-passe",
187
+ "passwordStrengthWeak": "não é adequada",
188
+ "passwordStrengthStrong": "é adequada",
189
+ "SpecialCharactersNotAllowed": "Não deve conter caracteres especiais",
190
+ "InvalidEmailFormat": "Formato de email inválido.",
191
+ "EmailNotMatching": "Os emails não coincidem!",
192
+ "PasswordNotMatching": "As palavras-passe não coincidem",
193
+ "MustIncludeNumber": "A palavra-passe deve incluir um número",
194
+ "MustContainCapital": "A palavra-passe deve incluir uma letra maiúscula",
195
+ "MustIncludePunctation": "A palavra-passe deve incluir pontuação",
196
+ "MustIncludeLowercase": "A palavra-passe deve incluir um caractere minúsculo",
197
+ "OnlyNumbers": "O campo deve conter apenas dígitos.",
198
+ "InvalidFieldSize": "O comprimento deve ser exatamente 11 dígitos.",
199
+ "InvalidDocumentNumber": "Apenas caracteres numéricos são permitidos.",
200
+ "twofaDescription": "<p> Enviámos o código de verificação para <p> {destination}. </p> </p> <p> Por favor, introduza o PIN abaixo. </p>",
201
+ "twofaResendMessage": "Não recebeu o código de verificação?",
202
+ "twofaResendButton": "Reenviar",
203
+ "enterIEAddressManually": "Para IRE, introduza o endereço manualmente",
204
+ "postalLookUpNoAddressFound": "Não foram encontrados endereços para este código postal",
205
+ "searchingForAddresses": "A procurar endereços...",
206
+ "SAIdLengthError": "O ID da África do Sul deve ter 13 dígitos",
207
+ "SAIdInvalidError": "ID da África do Sul inválido",
208
+ "PassportLengthError": "O número de passaporte deve ter 8 ou 9 dígitos.",
209
+ "PasswordMustContain": "A palavra-passe deve conter:",
210
+ "AlphanumericalOnly": "Apenas caracteres alfanuméricos são permitidos"
166
211
  },
167
212
  "es-mx": {
168
213
  "dateError": "La fecha seleccionada debe ser entre {min} y {max}",
@@ -170,6 +215,7 @@ const TRANSLATIONS$1 = {
170
215
  "dateFormatError": "La fecha seleccionada tiene un formato diferente al requerido.",
171
216
  "numberLengthError": "El número debe ser entre {min} y {max}",
172
217
  "lengthError": "La longitud deber ser entre {minLength} y {maxLength}",
218
+ "fixedLengthError": "La longitud debe ser de {length} caracteres",
173
219
  "requiredError": "Este campo es requerido",
174
220
  "invalidOriginalPasswordError": "El campo de contraseña inicial no es parte del criterio válido",
175
221
  "invalidPassword": "La contraseña no cumple con todos los criterios",
@@ -193,7 +239,8 @@ const TRANSLATIONS$1 = {
193
239
  "PassportLengthError": "El número de pasaporte debe tener 9 dígitos",
194
240
  "SAIdLengthError": "El número de identificación de Sudáfrica debe tener 13 dígitos",
195
241
  "SAIdInvalidError": "Número de identificación de Sudáfrica inválido",
196
- "PasswordMustContain": "La contraseña debe contener:"
242
+ "PasswordMustContain": "La contraseña debe contener:",
243
+ "AlphanumericalOnly": "Solo se permiten caracteres alfanuméricos"
197
244
  },
198
245
  "fr": {
199
246
  "dateError": "La date sélectionnée doit être comprise entre {min} et {max}",
@@ -201,6 +248,7 @@ const TRANSLATIONS$1 = {
201
248
  "dateFormatError": "Le format de la date sélectionnée est incorrect.",
202
249
  "numberLengthError": "Le nombre doit être compris entre {min} et {max}",
203
250
  "lengthError": "La longueur doit être comprise entre {minLength} et {maxLength}",
251
+ "fixedLengthError": "La longueur doit être de {length} caractères",
204
252
  "requiredError": "Ce champ est obligatoire.",
205
253
  "invalidOriginalPasswordError": "Le mot de passe initial ne respecte pas tous les critères.",
206
254
  "invalidPassword": "Le mot de passe ne respecte pas tous les critères",
@@ -227,7 +275,8 @@ const TRANSLATIONS$1 = {
227
275
  "SAIdLengthError": "L’identifiant sud-africain doit comporter 13 chiffres",
228
276
  "SAIdInvalidError": "Identifiant sud-africain invalide",
229
277
  "PassportLengthError": "Le numéro de passeport doit comporter 8 ou 9 chiffres.",
230
- "PasswordMustContain": "Le mot de passe doit contenir :"
278
+ "PasswordMustContain": "Le mot de passe doit contenir :",
279
+ "AlphanumericalOnly": "Seuls les caractères alphanumériques sont autorisés"
231
280
  }
232
281
  };
233
282
  const CONSTANTS = {
@@ -251,6 +300,7 @@ const ERROR_KEYS = {
251
300
  SA_ID_INVALID: 'SAIdInvalidError',
252
301
  REQUIRED: 'requiredError',
253
302
  LENGTH: 'lengthError',
303
+ FIXED_LENGTH: 'fixedLengthError',
254
304
  DUPLICATE: 'duplicateInputError',
255
305
  };
256
306
  const STATUS_ICONS = {
@@ -259,7 +309,7 @@ const STATUS_ICONS = {
259
309
  };
260
310
  const translate$1 = (key, customLang, values) => {
261
311
  const lang = customLang;
262
- let translation = TRANSLATIONS$1[lang !== undefined ? lang : DEFAULT_LANGUAGE$1][key];
312
+ let translation = TRANSLATIONS$1[lang] ? TRANSLATIONS$1[lang][key] : TRANSLATIONS$1[DEFAULT_LANGUAGE$1][key];
263
313
  if (values !== undefined) {
264
314
  for (const [key, value] of Object.entries(values.values)) {
265
315
  const regex = new RegExp(`{${key}}`, 'g');
@@ -275,8 +325,10 @@ const getTranslations$1 = (url) => {
275
325
  .then((res) => res.json())
276
326
  .then((data) => {
277
327
  Object.keys(data).forEach((item) => {
328
+ TRANSLATIONS$1[item] = TRANSLATIONS$1[item] || {};
278
329
  for (let key in data[item]) {
279
330
  if (typeof data[item][key] === 'string') {
331
+ TRANSLATIONS$1[item] = TRANSLATIONS$1[item] || {};
280
332
  TRANSLATIONS$1[item][key] = data[item][key];
281
333
  }
282
334
  }
@@ -14974,11 +15026,16 @@ const GeneralRegistration = class {
14974
15026
  }
14975
15027
  formatConfig(config) {
14976
15028
  this.listOfInputs = config.content.fields.flatMap((field) => {
14977
- var _a, _b;
15029
+ var _a, _b, _c;
14978
15030
  const duplicateInputRule = (_b = (_a = field.validate) === null || _a === void 0 ? void 0 : _a.custom) === null || _b === void 0 ? void 0 : _b.find(customRule => customRule.rule === 'duplicate-input');
14979
15031
  const inputElement = Object.assign({}, field);
15032
+ const translations = (_c = field.customInfo) === null || _c === void 0 ? void 0 : _c.Translations;
15033
+ if (translations) {
15034
+ inputElement.displayName = translations[this.language].DisplayName || inputElement.displayName;
15035
+ inputElement.placeholder = translations[this.language].Placeholder || inputElement.placeholder;
15036
+ }
14980
15037
  if (duplicateInputRule) {
14981
- const duplicateInput = Object.assign(Object.assign({}, field), { name: `${field.name}Duplicate`, displayName: duplicateInputRule.displayName, isDuplicateInput: true });
15038
+ const duplicateInput = Object.assign(Object.assign({}, field), { name: `${field.name}Duplicate`, displayName: (translations === null || translations === void 0 ? void 0 : translations[this.language].DisplayNameDuplicate) || duplicateInputRule.displayName, placeholder: inputElement.placeholder, isDuplicateInput: true });
14982
15039
  return [inputElement, duplicateInput];
14983
15040
  }
14984
15041
  else {
@@ -16797,11 +16854,15 @@ const TextInput = class {
16797
16854
  return translate$1(ERROR_KEYS.REQUIRED, this.language);
16798
16855
  }
16799
16856
  if (this.inputReference.validity.tooShort || this.inputReference.validity.tooLong) {
16857
+ const minLength = this.validation.minLength;
16858
+ const maxLength = this.validation.maxLength;
16859
+ if (minLength === maxLength) {
16860
+ return translate$1(ERROR_KEYS.FIXED_LENGTH, this.language, {
16861
+ values: { length: minLength }
16862
+ });
16863
+ }
16800
16864
  return translate$1(ERROR_KEYS.LENGTH, this.language, {
16801
- values: {
16802
- minLength: this.validation.minLength,
16803
- maxLength: this.validation.maxLength
16804
- }
16865
+ values: { minLength, maxLength }
16805
16866
  });
16806
16867
  }
16807
16868
  if (this.inputReference.value.match(this.validationPattern) == null) {
@@ -16827,8 +16888,8 @@ const TextInput = class {
16827
16888
  if (this.touched) {
16828
16889
  invalidClass = this.isValid == true || this.isValid == undefined ? '' : 'text__input--invalid';
16829
16890
  }
16830
- return index.h("div", { key: '7e4006b92f6c1e2d8b39694fd85fad7d672c18fd', class: `text__wrapper ${this.name}__input ${this.autofilled ? 'text__wrapper--autofilled' : ''}`, ref: el => this.stylingContainer = el }, index.h("div", { key: 'e70be4a8daef6cbaa25d438b4d1edaecf6db5159', class: 'text__wrapper--flex' }, index.h("label", { key: '0b09f624c460c9d777dd10b887430a4e6de8cacc', class: `text__label ${this.validation.mandatory ? 'text__label--required' : ''}`, htmlFor: `${this.name}__input` }, this.displayName), index.h("div", { key: 'df36d8f44540b35a65f816ade477c4f4ff077977', class: 'text__wrapper--relative' }, this.tooltip &&
16831
- index.h("img", { key: '85e25624de052cad543c883514ba0c0a522d249f', class: 'text__tooltip-icon', src: tooltipIconSvg, alt: "", ref: (el) => this.tooltipIconReference = el, onClick: () => this.showTooltip = !this.showTooltip }), this.renderTooltip())), index.h("input", { key: 'bf34796489a118f3c4849c3b8b7680fb77f5a2eb', name: this.name, id: `${this.name}__input`, value: this.value, type: 'text', class: `text__input ${invalidClass}`, placeholder: `${this.placeholder}`, ref: (el) => this.inputReference = el, readOnly: this.autofilled, required: this.validation.mandatory, minlength: this.enableSouthAfricanMode ? '' : this.validation.minLength, maxlength: this.enableSouthAfricanMode ? '' : this.validation.maxLength, onInput: this.handleInput, onBlur: this.handleBlur }), index.h("small", { key: '725e4208a8170b6cf34869c44ec8cb29c2c7c93f', class: 'text__error-message' }, this.errorMessage));
16891
+ return index.h("div", { key: '4a3851c57b50e346914a5a3c9cf1ba286e3f7aec', class: `text__wrapper ${this.name}__input ${this.autofilled ? 'text__wrapper--autofilled' : ''}`, ref: el => this.stylingContainer = el }, index.h("div", { key: '8badf61de6285389c56aceda2b57dc777eccad62', class: 'text__wrapper--flex' }, index.h("label", { key: 'ecf44727e4e536345649b0aa88f57faf63eafcb1', class: `text__label ${this.validation.mandatory ? 'text__label--required' : ''}`, htmlFor: `${this.name}__input` }, this.displayName), index.h("div", { key: '45ad8e3feed46925034aa2b3c3964ee59d6bab69', class: 'text__wrapper--relative' }, this.tooltip &&
16892
+ index.h("img", { key: '28386df278867594c5e71ab7a4b376b62031b2de', class: 'text__tooltip-icon', src: tooltipIconSvg, alt: "", ref: (el) => this.tooltipIconReference = el, onClick: () => this.showTooltip = !this.showTooltip }), this.renderTooltip())), index.h("input", { key: 'f6c63d967c6db438fa3aeaa52e14195c16dfab87', name: this.name, id: `${this.name}__input`, value: this.value, type: 'text', class: `text__input ${invalidClass}`, placeholder: `${this.placeholder}`, ref: (el) => this.inputReference = el, readOnly: this.autofilled, required: this.validation.mandatory, minlength: this.enableSouthAfricanMode ? '' : this.validation.minLength, maxlength: this.enableSouthAfricanMode ? '' : this.validation.maxLength, onInput: this.handleInput, onBlur: this.handleBlur }), index.h("small", { key: 'bfed249b930afb155f933eae8a62ada508a05de5', class: 'text__error-message' }, this.errorMessage));
16832
16893
  }
16833
16894
  static get watchers() { return {
16834
16895
  "clientStyling": ["handleStylingChange"],
@@ -758,11 +758,16 @@ export class GeneralRegistration {
758
758
  }
759
759
  formatConfig(config) {
760
760
  this.listOfInputs = config.content.fields.flatMap((field) => {
761
- var _a, _b;
761
+ var _a, _b, _c;
762
762
  const duplicateInputRule = (_b = (_a = field.validate) === null || _a === void 0 ? void 0 : _a.custom) === null || _b === void 0 ? void 0 : _b.find(customRule => customRule.rule === 'duplicate-input');
763
763
  const inputElement = Object.assign({}, field);
764
+ const translations = (_c = field.customInfo) === null || _c === void 0 ? void 0 : _c.Translations;
765
+ if (translations) {
766
+ inputElement.displayName = translations[this.language].DisplayName || inputElement.displayName;
767
+ inputElement.placeholder = translations[this.language].Placeholder || inputElement.placeholder;
768
+ }
764
769
  if (duplicateInputRule) {
765
- const duplicateInput = Object.assign(Object.assign({}, field), { name: `${field.name}Duplicate`, displayName: duplicateInputRule.displayName, isDuplicateInput: true });
770
+ const duplicateInput = Object.assign(Object.assign({}, field), { name: `${field.name}Duplicate`, displayName: (translations === null || translations === void 0 ? void 0 : translations[this.language].DisplayNameDuplicate) || duplicateInputRule.displayName, placeholder: inputElement.placeholder, isDuplicateInput: true });
766
771
  return [inputElement, duplicateInput];
767
772
  }
768
773
  else {
@@ -8,6 +8,7 @@ const TRANSLATIONS$1 = {
8
8
  "dateFormatError": "The selected date has a different format then the one required.",
9
9
  "numberLengthError": "The number should be between {min} and {max}",
10
10
  "lengthError": "The length should be between {minLength} and {maxLength}",
11
+ "fixedLengthError": "The length should be {length} characters",
11
12
  "requiredError": "This input is required.",
12
13
  "invalidOriginalPasswordError": "Initial password field does not validate all criteria.",
13
14
  "invalidPassword": "Password does not meet all criteria",
@@ -34,7 +35,8 @@ const TRANSLATIONS$1 = {
34
35
  "SAIdLengthError": "SA ID must be 13 digits",
35
36
  "SAIdInvalidError": "Invalid SA ID",
36
37
  "PassportLengthError": "Passport number must be 8 or 9 digits.",
37
- "PasswordMustContain": "Password must contain:"
38
+ "PasswordMustContain": "Password must contain:",
39
+ "AlphanumericalOnly": "Only alphanumerical characters are allowed"
38
40
  },
39
41
  "hu": {
40
42
  "dateError": "A választott dátumnak {min} és {max} között kell lennie",
@@ -42,6 +44,7 @@ const TRANSLATIONS$1 = {
42
44
  "dateFormatError": "A kiválasztott dátum formátuma eltér a szükségestől.",
43
45
  "numberLengthError": "A számnak {min} és {max} között kell lennie",
44
46
  "lengthError": "A hossznak {minLength} és {maxLength} között kell lennie",
47
+ "fixedLengthError": "A hossznak {length} karakternek kell lennie",
45
48
  "requiredError": "Ez a beviteli mező kötelező.",
46
49
  "invalidOriginalPasswordError": "Initial password field does not validate all criteria.",
47
50
  "invalidPassword": "A jelszó nem felel meg minden kritériumnak",
@@ -65,7 +68,8 @@ const TRANSLATIONS$1 = {
65
68
  "PassportLengthError": "Az útlevélszámnak 9 számjegyűnek kell lennie",
66
69
  "SAIdLengthError": "A dél-afrikai személyi számnak 13 számjegyűnek kell lennie",
67
70
  "SAIdInvalidError": "Érvénytelen dél-afrikai személyi szám",
68
- "PasswordMustContain": "A jelszónak tartalmaznia kell:"
71
+ "PasswordMustContain": "A jelszónak tartalmaznia kell:",
72
+ "AlphanumericalOnly": "Csak alfanumerikus karakterek engedélyezettek"
69
73
  },
70
74
  "hr": {
71
75
  "dateError": "Odabrani datum treba biti između {min} i {max}",
@@ -73,6 +77,7 @@ const TRANSLATIONS$1 = {
73
77
  "dateFormatError": "Odabrani datum je u drugačijem formatu od potrebnog.",
74
78
  "numberLengthError": "Broj bi trebao biti između {min} i {max}",
75
79
  "lengthError": "Duljina bi trebala biti između {minLength} i {maxLength}",
80
+ "fixedLengthError": "Duljina mora biti {length} znakova",
76
81
  "requiredError": "Ovaj unos je obavezan.",
77
82
  "invalidOriginalPasswordError": "Lozinke se ne podudaraju",
78
83
  "invalidPassword": "Lozinka ne zadovoljava sve kriterije",
@@ -96,7 +101,8 @@ const TRANSLATIONS$1 = {
96
101
  "PassportLengthError": "Broj putovnice mora imati 9 znamenki",
97
102
  "SAIdLengthError": "Južnoafrički osobni broj mora imati 13 znamenki",
98
103
  "SAIdInvalidError": "Nevažeći južnoafrički osobni broj",
99
- "PasswordMustContain": "Lozinka mora sadržavati:"
104
+ "PasswordMustContain": "Lozinka mora sadržavati:",
105
+ "AlphanumericalOnly": "Dopušteni su samo alfanumerički znakovi"
100
106
  },
101
107
  "tr": {
102
108
  "dateError": "Seçilen tarih {min} ve {max} arasında olmalıdır",
@@ -104,6 +110,7 @@ const TRANSLATIONS$1 = {
104
110
  "dateFormatError": "Seçilen tarihin formatı, gereken formattan farklı.",
105
111
  "numberLengthError": "Sayı {min} ve {max} arasında olmalıdır",
106
112
  "lengthError": "Uzunluk {minLength} ve {maxLength} arasında olmalıdır",
113
+ "fixedLengthError": "Uzunluk {length} karakter olmalıdır",
107
114
  "requiredError": "Bu alan zorunludur.",
108
115
  "invalidOriginalPasswordError": "İlk şifre alanı tüm kriterleri karşılamıyor.",
109
116
  "invalidPassword": "Şifre tüm kriterleri karşılamıyor",
@@ -127,7 +134,8 @@ const TRANSLATIONS$1 = {
127
134
  "PassportLengthError": "Pasaport numarası 9 haneli olmalıdır",
128
135
  "SAIdLengthError": "Güney Afrika kimlik numarası 13 haneli olmalıdır",
129
136
  "SAIdInvalidError": "Geçersiz Güney Afrika kimlik numarası",
130
- "PasswordMustContain": "Şifre şunları içermelidir:"
137
+ "PasswordMustContain": "Şifre şunları içermelidir:",
138
+ "AlphanumericalOnly": "Yalnızca alfanümerik karakterlere izin verilir"
131
139
  },
132
140
  "pt-br": {
133
141
  "dateError": "A data selecionada deve estar entre {min} e {max}",
@@ -135,6 +143,7 @@ const TRANSLATIONS$1 = {
135
143
  "dateFormatError": "A data selecionada está em um formato diferente do exigido.",
136
144
  "numberLengthError": "O número deve estar entre {min} e {max}",
137
145
  "lengthError": "O comprimento deve estar entre {minLength} e {maxLength}",
146
+ "fixedLengthError": "O comprimento deve ser de {length} caracteres",
138
147
  "requiredError": "Este campo é obrigatório",
139
148
  "invalidOriginalPasswordError": "O campo de senha inicial não faz parte dos critérios válidos",
140
149
  "invalidPassword": "A senha não atende a todos os critérios",
@@ -158,7 +167,43 @@ const TRANSLATIONS$1 = {
158
167
  "PassportLengthError": "O número do passaporte deve ter 9 dígitos",
159
168
  "SAIdLengthError": "O número de identificação da África do Sul deve ter 13 dígitos",
160
169
  "SAIdInvalidError": "Número de identificação da África do Sul inválido",
161
- "PasswordMustContain": "A senha deve conter:"
170
+ "PasswordMustContain": "A senha deve conter:",
171
+ "AlphanumericalOnly": "Apenas caracteres alfanuméricos são permitidos"
172
+ },
173
+ "pt": {
174
+ "dateError": "A data selecionada deve estar entre {min} e {max}",
175
+ "dateError2": "A data selecionada não está dentro do intervalo aceite",
176
+ "dateFormatError": "A data selecionada tem um formato diferente do exigido.",
177
+ "numberLengthError": "O número deve estar entre {min} e {max}",
178
+ "lengthError": "O comprimento deve estar entre {minLength} e {maxLength}",
179
+ "requiredError": "Este campo é obrigatório.",
180
+ "invalidOriginalPasswordError": "O campo da palavra-passe inicial não cumpre todos os critérios.",
181
+ "invalidPassword": "A palavra-passe não cumpre todos os critérios",
182
+ "passwordStrength": "Força da palavra-passe",
183
+ "passwordStrengthWeak": "não é adequada",
184
+ "passwordStrengthStrong": "é adequada",
185
+ "SpecialCharactersNotAllowed": "Não deve conter caracteres especiais",
186
+ "InvalidEmailFormat": "Formato de email inválido.",
187
+ "EmailNotMatching": "Os emails não coincidem!",
188
+ "PasswordNotMatching": "As palavras-passe não coincidem",
189
+ "MustIncludeNumber": "A palavra-passe deve incluir um número",
190
+ "MustContainCapital": "A palavra-passe deve incluir uma letra maiúscula",
191
+ "MustIncludePunctation": "A palavra-passe deve incluir pontuação",
192
+ "MustIncludeLowercase": "A palavra-passe deve incluir um caractere minúsculo",
193
+ "OnlyNumbers": "O campo deve conter apenas dígitos.",
194
+ "InvalidFieldSize": "O comprimento deve ser exatamente 11 dígitos.",
195
+ "InvalidDocumentNumber": "Apenas caracteres numéricos são permitidos.",
196
+ "twofaDescription": "<p> Enviámos o código de verificação para <p> {destination}. </p> </p> <p> Por favor, introduza o PIN abaixo. </p>",
197
+ "twofaResendMessage": "Não recebeu o código de verificação?",
198
+ "twofaResendButton": "Reenviar",
199
+ "enterIEAddressManually": "Para IRE, introduza o endereço manualmente",
200
+ "postalLookUpNoAddressFound": "Não foram encontrados endereços para este código postal",
201
+ "searchingForAddresses": "A procurar endereços...",
202
+ "SAIdLengthError": "O ID da África do Sul deve ter 13 dígitos",
203
+ "SAIdInvalidError": "ID da África do Sul inválido",
204
+ "PassportLengthError": "O número de passaporte deve ter 8 ou 9 dígitos.",
205
+ "PasswordMustContain": "A palavra-passe deve conter:",
206
+ "AlphanumericalOnly": "Apenas caracteres alfanuméricos são permitidos"
162
207
  },
163
208
  "es-mx": {
164
209
  "dateError": "La fecha seleccionada debe ser entre {min} y {max}",
@@ -166,6 +211,7 @@ const TRANSLATIONS$1 = {
166
211
  "dateFormatError": "La fecha seleccionada tiene un formato diferente al requerido.",
167
212
  "numberLengthError": "El número debe ser entre {min} y {max}",
168
213
  "lengthError": "La longitud deber ser entre {minLength} y {maxLength}",
214
+ "fixedLengthError": "La longitud debe ser de {length} caracteres",
169
215
  "requiredError": "Este campo es requerido",
170
216
  "invalidOriginalPasswordError": "El campo de contraseña inicial no es parte del criterio válido",
171
217
  "invalidPassword": "La contraseña no cumple con todos los criterios",
@@ -189,7 +235,8 @@ const TRANSLATIONS$1 = {
189
235
  "PassportLengthError": "El número de pasaporte debe tener 9 dígitos",
190
236
  "SAIdLengthError": "El número de identificación de Sudáfrica debe tener 13 dígitos",
191
237
  "SAIdInvalidError": "Número de identificación de Sudáfrica inválido",
192
- "PasswordMustContain": "La contraseña debe contener:"
238
+ "PasswordMustContain": "La contraseña debe contener:",
239
+ "AlphanumericalOnly": "Solo se permiten caracteres alfanuméricos"
193
240
  },
194
241
  "fr": {
195
242
  "dateError": "La date sélectionnée doit être comprise entre {min} et {max}",
@@ -197,6 +244,7 @@ const TRANSLATIONS$1 = {
197
244
  "dateFormatError": "Le format de la date sélectionnée est incorrect.",
198
245
  "numberLengthError": "Le nombre doit être compris entre {min} et {max}",
199
246
  "lengthError": "La longueur doit être comprise entre {minLength} et {maxLength}",
247
+ "fixedLengthError": "La longueur doit être de {length} caractères",
200
248
  "requiredError": "Ce champ est obligatoire.",
201
249
  "invalidOriginalPasswordError": "Le mot de passe initial ne respecte pas tous les critères.",
202
250
  "invalidPassword": "Le mot de passe ne respecte pas tous les critères",
@@ -223,7 +271,8 @@ const TRANSLATIONS$1 = {
223
271
  "SAIdLengthError": "L’identifiant sud-africain doit comporter 13 chiffres",
224
272
  "SAIdInvalidError": "Identifiant sud-africain invalide",
225
273
  "PassportLengthError": "Le numéro de passeport doit comporter 8 ou 9 chiffres.",
226
- "PasswordMustContain": "Le mot de passe doit contenir :"
274
+ "PasswordMustContain": "Le mot de passe doit contenir :",
275
+ "AlphanumericalOnly": "Seuls les caractères alphanumériques sont autorisés"
227
276
  }
228
277
  };
229
278
  const CONSTANTS = {
@@ -247,6 +296,7 @@ const ERROR_KEYS = {
247
296
  SA_ID_INVALID: 'SAIdInvalidError',
248
297
  REQUIRED: 'requiredError',
249
298
  LENGTH: 'lengthError',
299
+ FIXED_LENGTH: 'fixedLengthError',
250
300
  DUPLICATE: 'duplicateInputError',
251
301
  };
252
302
  const STATUS_ICONS = {
@@ -255,7 +305,7 @@ const STATUS_ICONS = {
255
305
  };
256
306
  const translate$1 = (key, customLang, values) => {
257
307
  const lang = customLang;
258
- let translation = TRANSLATIONS$1[lang !== undefined ? lang : DEFAULT_LANGUAGE$1][key];
308
+ let translation = TRANSLATIONS$1[lang] ? TRANSLATIONS$1[lang][key] : TRANSLATIONS$1[DEFAULT_LANGUAGE$1][key];
259
309
  if (values !== undefined) {
260
310
  for (const [key, value] of Object.entries(values.values)) {
261
311
  const regex = new RegExp(`{${key}}`, 'g');
@@ -271,8 +321,10 @@ const getTranslations$1 = (url) => {
271
321
  .then((res) => res.json())
272
322
  .then((data) => {
273
323
  Object.keys(data).forEach((item) => {
324
+ TRANSLATIONS$1[item] = TRANSLATIONS$1[item] || {};
274
325
  for (let key in data[item]) {
275
326
  if (typeof data[item][key] === 'string') {
327
+ TRANSLATIONS$1[item] = TRANSLATIONS$1[item] || {};
276
328
  TRANSLATIONS$1[item][key] = data[item][key];
277
329
  }
278
330
  }
@@ -14970,11 +15022,16 @@ const GeneralRegistration = class {
14970
15022
  }
14971
15023
  formatConfig(config) {
14972
15024
  this.listOfInputs = config.content.fields.flatMap((field) => {
14973
- var _a, _b;
15025
+ var _a, _b, _c;
14974
15026
  const duplicateInputRule = (_b = (_a = field.validate) === null || _a === void 0 ? void 0 : _a.custom) === null || _b === void 0 ? void 0 : _b.find(customRule => customRule.rule === 'duplicate-input');
14975
15027
  const inputElement = Object.assign({}, field);
15028
+ const translations = (_c = field.customInfo) === null || _c === void 0 ? void 0 : _c.Translations;
15029
+ if (translations) {
15030
+ inputElement.displayName = translations[this.language].DisplayName || inputElement.displayName;
15031
+ inputElement.placeholder = translations[this.language].Placeholder || inputElement.placeholder;
15032
+ }
14976
15033
  if (duplicateInputRule) {
14977
- const duplicateInput = Object.assign(Object.assign({}, field), { name: `${field.name}Duplicate`, displayName: duplicateInputRule.displayName, isDuplicateInput: true });
15034
+ const duplicateInput = Object.assign(Object.assign({}, field), { name: `${field.name}Duplicate`, displayName: (translations === null || translations === void 0 ? void 0 : translations[this.language].DisplayNameDuplicate) || duplicateInputRule.displayName, placeholder: inputElement.placeholder, isDuplicateInput: true });
14978
15035
  return [inputElement, duplicateInput];
14979
15036
  }
14980
15037
  else {
@@ -16793,11 +16850,15 @@ const TextInput = class {
16793
16850
  return translate$1(ERROR_KEYS.REQUIRED, this.language);
16794
16851
  }
16795
16852
  if (this.inputReference.validity.tooShort || this.inputReference.validity.tooLong) {
16853
+ const minLength = this.validation.minLength;
16854
+ const maxLength = this.validation.maxLength;
16855
+ if (minLength === maxLength) {
16856
+ return translate$1(ERROR_KEYS.FIXED_LENGTH, this.language, {
16857
+ values: { length: minLength }
16858
+ });
16859
+ }
16796
16860
  return translate$1(ERROR_KEYS.LENGTH, this.language, {
16797
- values: {
16798
- minLength: this.validation.minLength,
16799
- maxLength: this.validation.maxLength
16800
- }
16861
+ values: { minLength, maxLength }
16801
16862
  });
16802
16863
  }
16803
16864
  if (this.inputReference.value.match(this.validationPattern) == null) {
@@ -16823,8 +16884,8 @@ const TextInput = class {
16823
16884
  if (this.touched) {
16824
16885
  invalidClass = this.isValid == true || this.isValid == undefined ? '' : 'text__input--invalid';
16825
16886
  }
16826
- return h("div", { key: '7e4006b92f6c1e2d8b39694fd85fad7d672c18fd', class: `text__wrapper ${this.name}__input ${this.autofilled ? 'text__wrapper--autofilled' : ''}`, ref: el => this.stylingContainer = el }, h("div", { key: 'e70be4a8daef6cbaa25d438b4d1edaecf6db5159', class: 'text__wrapper--flex' }, h("label", { key: '0b09f624c460c9d777dd10b887430a4e6de8cacc', class: `text__label ${this.validation.mandatory ? 'text__label--required' : ''}`, htmlFor: `${this.name}__input` }, this.displayName), h("div", { key: 'df36d8f44540b35a65f816ade477c4f4ff077977', class: 'text__wrapper--relative' }, this.tooltip &&
16827
- h("img", { key: '85e25624de052cad543c883514ba0c0a522d249f', class: 'text__tooltip-icon', src: tooltipIconSvg, alt: "", ref: (el) => this.tooltipIconReference = el, onClick: () => this.showTooltip = !this.showTooltip }), this.renderTooltip())), h("input", { key: 'bf34796489a118f3c4849c3b8b7680fb77f5a2eb', name: this.name, id: `${this.name}__input`, value: this.value, type: 'text', class: `text__input ${invalidClass}`, placeholder: `${this.placeholder}`, ref: (el) => this.inputReference = el, readOnly: this.autofilled, required: this.validation.mandatory, minlength: this.enableSouthAfricanMode ? '' : this.validation.minLength, maxlength: this.enableSouthAfricanMode ? '' : this.validation.maxLength, onInput: this.handleInput, onBlur: this.handleBlur }), h("small", { key: '725e4208a8170b6cf34869c44ec8cb29c2c7c93f', class: 'text__error-message' }, this.errorMessage));
16887
+ return h("div", { key: '4a3851c57b50e346914a5a3c9cf1ba286e3f7aec', class: `text__wrapper ${this.name}__input ${this.autofilled ? 'text__wrapper--autofilled' : ''}`, ref: el => this.stylingContainer = el }, h("div", { key: '8badf61de6285389c56aceda2b57dc777eccad62', class: 'text__wrapper--flex' }, h("label", { key: 'ecf44727e4e536345649b0aa88f57faf63eafcb1', class: `text__label ${this.validation.mandatory ? 'text__label--required' : ''}`, htmlFor: `${this.name}__input` }, this.displayName), h("div", { key: '45ad8e3feed46925034aa2b3c3964ee59d6bab69', class: 'text__wrapper--relative' }, this.tooltip &&
16888
+ h("img", { key: '28386df278867594c5e71ab7a4b376b62031b2de', class: 'text__tooltip-icon', src: tooltipIconSvg, alt: "", ref: (el) => this.tooltipIconReference = el, onClick: () => this.showTooltip = !this.showTooltip }), this.renderTooltip())), h("input", { key: 'f6c63d967c6db438fa3aeaa52e14195c16dfab87', name: this.name, id: `${this.name}__input`, value: this.value, type: 'text', class: `text__input ${invalidClass}`, placeholder: `${this.placeholder}`, ref: (el) => this.inputReference = el, readOnly: this.autofilled, required: this.validation.mandatory, minlength: this.enableSouthAfricanMode ? '' : this.validation.minLength, maxlength: this.enableSouthAfricanMode ? '' : this.validation.maxLength, onInput: this.handleInput, onBlur: this.handleBlur }), h("small", { key: 'bfed249b930afb155f933eae8a62ada508a05de5', class: 'text__error-message' }, this.errorMessage));
16828
16889
  }
16829
16890
  static get watchers() { return {
16830
16891
  "clientStyling": ["handleStylingChange"],