@everymatrix/player-profile-info 0.0.214 → 0.0.218
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
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@everymatrix/player-profile-info",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.218",
|
|
4
4
|
"main": "dist/player-profile-info.js",
|
|
5
5
|
"svelte": "src/index.ts",
|
|
6
6
|
"scripts": {
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "ae78406d20c106f1d3c352c0e97189a7bdffacfb"
|
|
40
40
|
}
|
|
@@ -1,22 +1,27 @@
|
|
|
1
1
|
<svelte:options tag={null} />
|
|
2
2
|
|
|
3
|
-
<script lang="
|
|
3
|
+
<script lang="ts">
|
|
4
4
|
import { onMount } from 'svelte';
|
|
5
5
|
import { getDevice } from 'rvhelper';
|
|
6
6
|
import { _, addNewMessages, setLocale } from './i18n';
|
|
7
7
|
import { PlayerProfileTranslations } from './translations';
|
|
8
8
|
|
|
9
|
+
// Native bridge
|
|
10
|
+
import { isNative, call as callNative, registerEventListener as registerNativeEventListener } from 'js-native-bridge';
|
|
11
|
+
|
|
12
|
+
|
|
9
13
|
export let endpoint:string = '';
|
|
10
14
|
export let lang:string = 'en';
|
|
11
15
|
|
|
12
16
|
let isLoading:boolean = false;
|
|
13
|
-
let userAgent:
|
|
14
|
-
let isMobile = (getDevice(userAgent) === 'PC') ? false : true;
|
|
17
|
+
let userAgent:string = window.navigator.userAgent;
|
|
18
|
+
let isMobile:boolean = (getDevice(userAgent) === 'PC') ? false : true;
|
|
15
19
|
let noPlayerData:boolean = true;
|
|
16
20
|
|
|
17
21
|
let playerPostalCode:HTMLElement, playerAddress:HTMLElement, playerCity:HTMLElement;
|
|
18
22
|
let giveConsentSMS:boolean = false;
|
|
19
23
|
let giveConsentEmail:boolean = false;
|
|
24
|
+
let biometricsSelection:boolean = false;
|
|
20
25
|
let playerQuestion:string = '';
|
|
21
26
|
let playerAnswer:string = '';
|
|
22
27
|
let playerPrefix:string = '';
|
|
@@ -26,15 +31,24 @@
|
|
|
26
31
|
let prefixesArray:Array<Object> = [];
|
|
27
32
|
let countriesArray:Array<Object> = []
|
|
28
33
|
|
|
34
|
+
let isValid:boolean = false;
|
|
35
|
+
|
|
29
36
|
let invalidCity:string = '';
|
|
30
37
|
let invalidPostalCode:string = '';
|
|
31
38
|
let invalidAddress:string = '';
|
|
39
|
+
let invalidSecurityQuestion:boolean = false;
|
|
40
|
+
let invalidSecurityAnswer:boolean = false;
|
|
41
|
+
let invalidMobile:boolean;
|
|
32
42
|
|
|
33
43
|
let showConfirmSave:boolean = false;
|
|
34
44
|
|
|
45
|
+
// Native bridge
|
|
46
|
+
let isOnNative:boolean = false;
|
|
47
|
+
|
|
35
48
|
Object.keys(PlayerProfileTranslations).forEach((item:any) => {
|
|
36
49
|
addNewMessages(item, PlayerProfileTranslations[item]);
|
|
37
50
|
});
|
|
51
|
+
|
|
38
52
|
const mediaQuery = window.matchMedia('(min-width: 768px)');
|
|
39
53
|
|
|
40
54
|
// needed to keep track of data changes
|
|
@@ -49,6 +63,7 @@
|
|
|
49
63
|
securityAnswer: '',
|
|
50
64
|
securityQuestion: '',
|
|
51
65
|
}
|
|
66
|
+
|
|
52
67
|
// needed to keep track of data changes
|
|
53
68
|
let initialValuesArray:any = {
|
|
54
69
|
acceptNewsEmail: false,
|
|
@@ -61,6 +76,7 @@
|
|
|
61
76
|
securityAnswer: '',
|
|
62
77
|
securityQuestion: ''
|
|
63
78
|
}
|
|
79
|
+
|
|
64
80
|
// placeholder field values
|
|
65
81
|
let profileDetails:any = {
|
|
66
82
|
address1: "i.e.: Glanmire Rd.",
|
|
@@ -83,7 +99,7 @@
|
|
|
83
99
|
|
|
84
100
|
let {address1, birth, city, country, currency, mobile, email, firstname, userTitles, language, lastname, postalCode, securityAnswer, securityQuestion, username, consents} = profileDetails;
|
|
85
101
|
|
|
86
|
-
const messageHandler = (e:any) => {
|
|
102
|
+
const messageHandler = (e:any):void => {
|
|
87
103
|
if (e.data) {
|
|
88
104
|
switch(e.data.type) {
|
|
89
105
|
case 'ProfileDetailsData':
|
|
@@ -124,22 +140,37 @@
|
|
|
124
140
|
securityAnswer: profileDetails.securityAnswer,
|
|
125
141
|
securityQuestion: profileDetails.securityQuestion,
|
|
126
142
|
}
|
|
127
|
-
|
|
128
143
|
break;
|
|
129
144
|
|
|
130
145
|
case 'ConfirmProfileInfoSave':
|
|
146
|
+
if (isOnNative) {
|
|
147
|
+
registerNativeEventListener(
|
|
148
|
+
'BIOMETRICS_ENABLED',
|
|
149
|
+
(biometricsEnabled) => {
|
|
150
|
+
if (biometricsEnabled !== biometricsSelection) {
|
|
151
|
+
biometricsSelection = biometricsEnabled;
|
|
152
|
+
}
|
|
153
|
+
},
|
|
154
|
+
);
|
|
155
|
+
|
|
156
|
+
const methodFound = callNative(
|
|
157
|
+
biometricsSelection ? 'ENABLE_BIOMETRICS' : 'DISABLE_BIOMETRICS',
|
|
158
|
+
);
|
|
159
|
+
|
|
160
|
+
if (!methodFound) {
|
|
161
|
+
// Nothing to do here yet
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
|
|
131
165
|
differencesExist = false;
|
|
132
|
-
showConfirmMessage();
|
|
133
|
-
break;
|
|
134
166
|
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
break;
|
|
167
|
+
showConfirmMessage();
|
|
168
|
+
break;
|
|
138
169
|
}
|
|
139
170
|
}
|
|
140
171
|
}
|
|
141
172
|
|
|
142
|
-
const getCountriesList = () => {
|
|
173
|
+
const getCountriesList = ():void => {
|
|
143
174
|
fetch(`${endpoint}/player/countries`)
|
|
144
175
|
.then((res:any) => res.json())
|
|
145
176
|
.then(data => {
|
|
@@ -147,7 +178,7 @@
|
|
|
147
178
|
});
|
|
148
179
|
}
|
|
149
180
|
|
|
150
|
-
const getPhoneCodes = () => {
|
|
181
|
+
const getPhoneCodes = ():void => {
|
|
151
182
|
fetch(`${endpoint}/player/phonecodes`)
|
|
152
183
|
.then((res:any) => res.json())
|
|
153
184
|
.then(data => {
|
|
@@ -155,15 +186,14 @@
|
|
|
155
186
|
});
|
|
156
187
|
}
|
|
157
188
|
|
|
158
|
-
const showConfirmMessage = () => {
|
|
189
|
+
const showConfirmMessage = ():void => {
|
|
159
190
|
showConfirmSave = true;
|
|
160
191
|
setTimeout(() => {showConfirmSave = false;}, 3000);
|
|
161
192
|
}
|
|
162
193
|
|
|
163
|
-
let isValid:Boolean = false;
|
|
164
194
|
|
|
165
|
-
const checkIsValid = () => {
|
|
166
|
-
if (
|
|
195
|
+
const checkIsValid = ():void => {
|
|
196
|
+
if (invalidSecurityQuestion || invalidSecurityAnswer || invalidCity || invalidAddress || invalidPostalCode || invalidMobile) {
|
|
167
197
|
isValid = false;
|
|
168
198
|
}
|
|
169
199
|
else {
|
|
@@ -171,33 +201,72 @@
|
|
|
171
201
|
}
|
|
172
202
|
}
|
|
173
203
|
|
|
174
|
-
const
|
|
175
|
-
if(
|
|
204
|
+
const checkMobile = ():boolean => {
|
|
205
|
+
if(playerMobileNumber && playerMobileNumber.length >= 5 && playerMobileNumber.length <= 30) {
|
|
206
|
+
return true;
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
return false;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
const validateMobile = ():void => {
|
|
213
|
+
invalidMobile = !checkMobile();
|
|
214
|
+
checkIsValid();
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
const checkSecurityQuestion = ():boolean => {
|
|
218
|
+
if (playerQuestion && playerQuestion.length <= 120) {
|
|
219
|
+
return true;
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
return false;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
const validateSecurityQuestion = ():void => {
|
|
226
|
+
invalidSecurityQuestion = !checkSecurityQuestion();
|
|
227
|
+
checkIsValid();
|
|
228
|
+
}
|
|
229
|
+
|
|
230
|
+
const checkSecurityAnswer = ():boolean => {
|
|
231
|
+
if (playerAnswer && playerAnswer.length <= 120) {
|
|
232
|
+
return true;
|
|
233
|
+
}
|
|
234
|
+
|
|
235
|
+
return false;
|
|
236
|
+
}
|
|
237
|
+
|
|
238
|
+
const validateSecurityAnswer = ():void => {
|
|
239
|
+
invalidSecurityAnswer = !checkSecurityAnswer();
|
|
240
|
+
checkIsValid();
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
const checkCity = ():boolean => {
|
|
244
|
+
if (playerCity.value && playerCity.value.length <= 50) {
|
|
176
245
|
return true;
|
|
177
246
|
}
|
|
178
247
|
|
|
179
248
|
return false;
|
|
180
249
|
}
|
|
181
250
|
|
|
182
|
-
const validateCity = () => {
|
|
251
|
+
const validateCity = ():void => {
|
|
183
252
|
invalidCity = !checkCity();
|
|
184
253
|
checkIsValid();
|
|
185
254
|
}
|
|
186
255
|
|
|
187
|
-
const checkPostalCode = () => {
|
|
188
|
-
if(playerPostalCode.value && playerPostalCode.value.length <= 20) {
|
|
256
|
+
const checkPostalCode = ():boolean => {
|
|
257
|
+
if (playerPostalCode.value && playerPostalCode.value.length <= 20) {
|
|
189
258
|
return true;
|
|
190
259
|
}
|
|
191
260
|
|
|
192
261
|
return false;
|
|
193
262
|
}
|
|
194
263
|
|
|
195
|
-
const validatePostalCode = () => {
|
|
264
|
+
const validatePostalCode = ():void => {
|
|
196
265
|
invalidPostalCode = !checkPostalCode();
|
|
197
266
|
checkIsValid();
|
|
198
267
|
}
|
|
199
268
|
|
|
200
|
-
const checkAddress = () => {
|
|
269
|
+
const checkAddress = ():boolean => {
|
|
201
270
|
if(playerAddress.value && playerAddress.value.length <= 100) {
|
|
202
271
|
return true;
|
|
203
272
|
}
|
|
@@ -205,23 +274,22 @@
|
|
|
205
274
|
return false;
|
|
206
275
|
}
|
|
207
276
|
|
|
208
|
-
const validateAddress = () => {
|
|
277
|
+
const validateAddress = ():void => {
|
|
209
278
|
invalidAddress = !checkAddress();
|
|
210
279
|
checkIsValid();
|
|
211
280
|
}
|
|
212
281
|
|
|
213
|
-
const updatePlayerInfo = () => {
|
|
282
|
+
const updatePlayerInfo = ():void => {
|
|
214
283
|
if (differencesExist == true && isValid == true) {
|
|
215
284
|
window.postMessage({ type: 'UpdatePlayerInfo', provisionalArray }, window.location.href);
|
|
216
285
|
}
|
|
217
286
|
}
|
|
218
287
|
|
|
219
|
-
const toggleScreen = () => {
|
|
288
|
+
const toggleScreen = ():void => {
|
|
220
289
|
window.postMessage({ type: 'ReturnToMenu' }, window.location.href);
|
|
221
290
|
}
|
|
222
291
|
|
|
223
|
-
const checkForChanges = () => {
|
|
224
|
-
|
|
292
|
+
const checkForChanges = ():void => {
|
|
225
293
|
provisionalArray = {
|
|
226
294
|
acceptNewsEmail: giveConsentEmail,
|
|
227
295
|
acceptSMSOffers: giveConsentSMS,
|
|
@@ -238,9 +306,7 @@
|
|
|
238
306
|
checkIsValid();
|
|
239
307
|
}
|
|
240
308
|
|
|
241
|
-
const resetPlayerInfo = () => {
|
|
242
|
-
// provisionalArray = initialValuesArray;
|
|
243
|
-
|
|
309
|
+
const resetPlayerInfo = ():void => {
|
|
244
310
|
playerAddress.value = initialValuesArray.address;
|
|
245
311
|
playerCity.value = initialValuesArray.city;
|
|
246
312
|
giveConsentEmail = initialValuesArray.acceptNewsEmail;
|
|
@@ -254,7 +320,7 @@
|
|
|
254
320
|
toggleScreen();
|
|
255
321
|
}
|
|
256
322
|
|
|
257
|
-
const checkEquality = (a, b) => {
|
|
323
|
+
const checkEquality = (a, b):void => {
|
|
258
324
|
if(JSON.stringify(a) === JSON.stringify(b)) {
|
|
259
325
|
differencesExist = false;
|
|
260
326
|
} else {
|
|
@@ -262,18 +328,32 @@
|
|
|
262
328
|
}
|
|
263
329
|
}
|
|
264
330
|
|
|
265
|
-
const
|
|
331
|
+
const setActiveLanguage = ():void => {
|
|
266
332
|
setLocale(lang);
|
|
267
333
|
}
|
|
268
334
|
|
|
269
335
|
onMount(() => {
|
|
270
336
|
window.addEventListener('message', messageHandler, false);
|
|
337
|
+
|
|
338
|
+
isOnNative = !!isNative(userAgent);
|
|
339
|
+
|
|
340
|
+
if (isOnNative) {
|
|
341
|
+
registerNativeEventListener(
|
|
342
|
+
'BIOMETRICS_ENABLED',
|
|
343
|
+
(biometricsEnabled) => {
|
|
344
|
+
biometricsSelection = !!biometricsEnabled
|
|
345
|
+
},
|
|
346
|
+
);
|
|
347
|
+
|
|
348
|
+
callNative('BIOMETRICS_ENABLED');
|
|
349
|
+
}
|
|
350
|
+
|
|
271
351
|
return () => {
|
|
272
352
|
window.removeEventListener('message', messageHandler);
|
|
273
353
|
}
|
|
274
354
|
});
|
|
275
355
|
|
|
276
|
-
$: lang &&
|
|
356
|
+
$: lang && setActiveLanguage();
|
|
277
357
|
$: endpoint && getCountriesList();
|
|
278
358
|
$: endpoint && getPhoneCodes();
|
|
279
359
|
</script>
|
|
@@ -304,7 +384,7 @@
|
|
|
304
384
|
<label>{$_('playerProfile.userName')}</label>
|
|
305
385
|
<input type="text" class="FieldDisabled" value={username} readonly />
|
|
306
386
|
</div>
|
|
307
|
-
<div class="PlayerInfoBox">
|
|
387
|
+
<div class="PlayerInfoBox {invalidMobile ? 'InvalidField' : ''}">
|
|
308
388
|
<label>{$_('playerProfile.userPhone')}</label>
|
|
309
389
|
<div class="PlayerPhoneNumber">
|
|
310
390
|
<select bind:value={playerPrefix} on:change={() => checkForChanges()}>
|
|
@@ -316,41 +396,50 @@
|
|
|
316
396
|
{/if}
|
|
317
397
|
{/each}
|
|
318
398
|
</select>
|
|
319
|
-
<input bind:value={playerMobileNumber} type="text" oninput="this.value = this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');" placeholder={noPlayerData ? mobile.number : ''} on:keyup={() => checkForChanges()}/>
|
|
399
|
+
<input bind:value={playerMobileNumber} on:keyup={validateMobile} type="text" oninput="this.value = this.value.replace(/[^0-9.]/g, ''); this.value = this.value.replace(/(\..*)\./g, '$1');" placeholder={noPlayerData ? mobile.number : ''} on:keyup={() => checkForChanges()}/>
|
|
320
400
|
</div>
|
|
401
|
+
{#if invalidMobile}
|
|
402
|
+
<p class="InvalidInput">{$_('playerProfile.userPhoneError')}</p>
|
|
403
|
+
{/if}
|
|
404
|
+
</div>
|
|
405
|
+
<div class="PlayerInfoBox {invalidSecurityQuestion ? 'InvalidField' : ''}">
|
|
406
|
+
<label>{$_('playerProfile.securityQuestion')}</label>
|
|
407
|
+
<input type="text" bind:value={playerQuestion} on:keyup={() => checkForChanges()} on:blur={validateSecurityQuestion} placeholder={noPlayerData ? securityQuestion : ''} />
|
|
408
|
+
{#if invalidSecurityQuestion}
|
|
409
|
+
<p class="InvalidInput">{$_('playerProfile.securityQuestionError')}</p>
|
|
410
|
+
{/if}
|
|
411
|
+
</div>
|
|
412
|
+
<div class="PlayerInfoBox {invalidSecurityAnswer ? 'InvalidField' : ''}">
|
|
413
|
+
<label>{$_('playerProfile.securityAnswer')}</label>
|
|
414
|
+
<input type="text" bind:value={playerAnswer} on:keyup={() => checkForChanges()} on:blur={validateSecurityAnswer} placeholder={noPlayerData ? securityAnswer : ''} />
|
|
415
|
+
{#if invalidSecurityAnswer}
|
|
416
|
+
<p class="InvalidInput">{$_('playerProfile.securityAnswerError')}</p>
|
|
417
|
+
{/if}
|
|
321
418
|
</div>
|
|
322
419
|
<div class="PlayerInfoBox">
|
|
323
420
|
<label>{$_('playerProfile.userEmail')}</label>
|
|
324
421
|
<input type="email" class="FieldDisabled" value={email} readonly />
|
|
325
422
|
</div>
|
|
326
423
|
<div class="PlayerInfoBox">
|
|
327
|
-
<label>{$_('playerProfile.
|
|
328
|
-
<input type="text"
|
|
424
|
+
<label>{$_('playerProfile.dateOfBirth')}</label>
|
|
425
|
+
<input type="text" class="FieldDisabled" value={birth} readonly />
|
|
329
426
|
</div>
|
|
330
427
|
<div class="PlayerInfoBox">
|
|
331
428
|
<label>{$_('playerProfile.firstName')}</label>
|
|
332
429
|
<input type="text" class="FieldDisabled" value={firstname} readonly />
|
|
333
430
|
</div>
|
|
334
|
-
<div class="PlayerInfoBox">
|
|
335
|
-
<label>{$_('playerProfile.securityAnswer')}</label>
|
|
336
|
-
<input type="text" bind:value={playerAnswer} on:keyup={() => checkForChanges()} placeholder={noPlayerData ? securityAnswer : ''} />
|
|
337
|
-
</div>
|
|
338
431
|
<div class="PlayerInfoBox">
|
|
339
432
|
<label>{$_('playerProfile.lastName')}</label>
|
|
340
433
|
<input type="text" class="FieldDisabled" value={lastname} readonly />
|
|
341
434
|
</div>
|
|
342
435
|
<div class="PlayerInfoBox">
|
|
343
|
-
<label>{$_('playerProfile.
|
|
344
|
-
|
|
436
|
+
<label>{$_('playerProfile.userTitle')}</label>
|
|
437
|
+
<input type="text" class="FieldDisabled" value={userTitles} readonly />
|
|
345
438
|
</div>
|
|
346
439
|
<div class="PlayerInfoBox">
|
|
347
440
|
<label>{$_('playerProfile.currency')}</label>
|
|
348
441
|
<input type="text" class="FieldDisabled" value={currency} readonly />
|
|
349
442
|
</div>
|
|
350
|
-
<div class="PlayerInfoBox">
|
|
351
|
-
<label>{$_('playerProfile.userTitle')}</label>
|
|
352
|
-
<input type="text" class="FieldDisabled" value={userTitles} readonly />
|
|
353
|
-
</div>
|
|
354
443
|
</section>
|
|
355
444
|
|
|
356
445
|
<div class="PlayerLocationHeader">
|
|
@@ -365,21 +454,21 @@
|
|
|
365
454
|
<label>{$_('playerProfile.userCity')}</label>
|
|
366
455
|
<input bind:this={playerCity} type="text" on:blur={validateCity} on:keyup={() => checkForChanges()} placeholder={noPlayerData ? city : ''} value={noPlayerData ? '' : initialValuesArray.city} />
|
|
367
456
|
{#if invalidCity}
|
|
368
|
-
<p class="InvalidInput">
|
|
457
|
+
<p class="InvalidInput">{$_('playerProfile.userCityError')}</p>
|
|
369
458
|
{/if}
|
|
370
459
|
</div>
|
|
371
460
|
<div class="PlayerInfoBox {invalidAddress ? 'InvalidField' : ''}">
|
|
372
461
|
<label>{$_('playerProfile.userAddress')}</label>
|
|
373
462
|
<input bind:this={playerAddress} placeholder={address1} type="text" on:blur={validateAddress} on:keyup={() => checkForChanges()} value={noPlayerData ? '' : initialValuesArray.address} />
|
|
374
463
|
{#if invalidAddress}
|
|
375
|
-
<p class="InvalidInput">
|
|
464
|
+
<p class="InvalidInput">{$_('playerProfile.userAddressError')}</p>
|
|
376
465
|
{/if}
|
|
377
466
|
</div>
|
|
378
467
|
<div class="PlayerInfoBox {invalidPostalCode ? 'InvalidField' : ''}">
|
|
379
468
|
<label>{$_('playerProfile.userPostalCode')}</label>
|
|
380
469
|
<input bind:this={playerPostalCode} type="number" on:blur={validatePostalCode} on:keyup={() => checkForChanges()} placeholder={noPlayerData ? postalCode : ''} value={noPlayerData ? '' : initialValuesArray.postalCode} />
|
|
381
470
|
{#if invalidPostalCode}
|
|
382
|
-
<p class="InvalidInput">
|
|
471
|
+
<p class="InvalidInput">{$_('playerProfile.userPostalCodeError')}</p>
|
|
383
472
|
{/if}
|
|
384
473
|
</div>
|
|
385
474
|
</section>
|
|
@@ -403,6 +492,20 @@
|
|
|
403
492
|
</label>
|
|
404
493
|
</div>
|
|
405
494
|
</section>
|
|
495
|
+
{#if isOnNative}
|
|
496
|
+
<div class="PlayerNotificationsHeader">
|
|
497
|
+
<h3>{$_('playerProfile.userAppSettings')}</h3>
|
|
498
|
+
</div>
|
|
499
|
+
<section class="PlayerNotificationsCheckboxArea">
|
|
500
|
+
<div class="PlayerNotificationBox">
|
|
501
|
+
<label for="Biometrics">
|
|
502
|
+
<input bind:checked={biometricsSelection} on:change={checkForChanges} type="checkbox" id="BiometricsEnabled" name="Biometric Enabled" />
|
|
503
|
+
<span class="Checkmark"></span>
|
|
504
|
+
<span>{$_('playerProfile.userBiometrics')}</span>
|
|
505
|
+
</label>
|
|
506
|
+
</div>
|
|
507
|
+
</section>
|
|
508
|
+
{/if}
|
|
406
509
|
<section class="PlayerDetailsButtonsArea {isMobile ? 'PlayerDetailsButtonsAreaMobile' : ''}">
|
|
407
510
|
<div class="PlayerDetailsSaveButton {differencesExist && isValid ? '' : 'PlayerButtonDisabled'}" on:click={() => updatePlayerInfo()}>{$_('playerProfile.userProfileSaveChanges')}</div>
|
|
408
511
|
</section>
|
package/src/translations.js
CHANGED
|
@@ -5,10 +5,13 @@ export const PlayerProfileTranslations = {
|
|
|
5
5
|
personalDetails: `Personal Details`,
|
|
6
6
|
userName: `User name:`,
|
|
7
7
|
userPhone: `Phone:`,
|
|
8
|
+
userPhoneError: 'Mobile must be at least 5 character long and 20 characters maximum.',
|
|
8
9
|
userEmail: `Email:`,
|
|
9
10
|
securityQuestion: `Security Question:`,
|
|
11
|
+
securityQuestionError: 'Security question must be at least 1 character long and maximum 120 characters.',
|
|
10
12
|
firstName: `First name:`,
|
|
11
13
|
securityAnswer: `Security Answer:`,
|
|
14
|
+
securityAnswerError: 'Security answer must be at least 1 character long and maximum 120 characters.',
|
|
12
15
|
lastName: `Last Name:`,
|
|
13
16
|
dateOfBirth: `Date of birth:`,
|
|
14
17
|
currency: `Currency:`,
|
|
@@ -16,10 +19,15 @@ export const PlayerProfileTranslations = {
|
|
|
16
19
|
locationDetails: `Location Details`,
|
|
17
20
|
userCountry: `Country:`,
|
|
18
21
|
userCity: `City:`,
|
|
22
|
+
userCityError: 'City must be at least 1 character long and 50 characters maximum.',
|
|
19
23
|
userAddress: `Address:`,
|
|
24
|
+
userAddressError: 'Address must be at least 1 character long and 100 characters maximum.',
|
|
20
25
|
userPostalCode: `Postal Code:`,
|
|
26
|
+
userPostalCodeError: 'Postal Code must be at least 1 character long and 20 characters maximum.',
|
|
21
27
|
userNotifications: `Notifications`,
|
|
28
|
+
userAppSettings: `Biometrics`,
|
|
22
29
|
userSMSNotification: `Enable SMS notifications`,
|
|
30
|
+
userBiometrics: `Enable biometrics`,
|
|
23
31
|
userEmailNotification: `Enable Emails`,
|
|
24
32
|
userProfileSaveChanges: `Save Changes`,
|
|
25
33
|
userProfileConfirmationMessage: `Your changes have been saved!`
|
|
@@ -31,24 +39,62 @@ export const PlayerProfileTranslations = {
|
|
|
31
39
|
personalDetails: `Detalii Personale`,
|
|
32
40
|
userName: `Nume utilizator:`,
|
|
33
41
|
userPhone: `Telefon:`,
|
|
42
|
+
userPhoneError: 'Telefon-ul trebuie să aibă cel puțin 5 caractere și maximum 20 de caractere.',
|
|
34
43
|
userEmail: `E-mail:`,
|
|
35
44
|
securityQuestion: `Întrebare securitate:`,
|
|
45
|
+
securityQuestionError: 'Întrebarea de securitate trebuie să aibă cel puțin 1 caracter și maximum 120 de caractere.',
|
|
36
46
|
firstName: `Prenume:`,
|
|
37
47
|
securityAnswer: `Răspuns securitate:`,
|
|
48
|
+
securityAnswerError: 'Security answer must be at least 1 character long and maximum 120 characters.',
|
|
38
49
|
lastName: `Nume:`,
|
|
39
50
|
dateOfBirth: `Data nașterii:`,
|
|
40
51
|
currency: `Monedă:`,
|
|
41
52
|
userTitle: `Titlu:`,
|
|
42
53
|
locationDetails: `Detalii de Localizare`,
|
|
43
54
|
userCountry: `Țară:`,
|
|
55
|
+
userCityError: 'Orașul trebuie să aibă cel puțin 1 caracter și maximum 50 de caractere.',
|
|
44
56
|
userCity: `Oraș:`,
|
|
45
57
|
userAddress: `Adresă:`,
|
|
58
|
+
userAddressError: 'Address must be at least 1 character long and 100 characters maximum.',
|
|
46
59
|
userPostalCode: `Cod poștal:`,
|
|
60
|
+
userPostalCodeError: 'Codul poștal trebuie să aibă cel puțin 1 caracter și maximum 20 de caractere.',
|
|
47
61
|
userNotifications: `Notificări`,
|
|
48
62
|
userSMSNotification: `Activează notificări prin SMS`,
|
|
49
63
|
userEmailNotification: `Activează notificări prin E-mail`,
|
|
50
64
|
userProfileSaveChanges: `Salvează`,
|
|
51
65
|
userProfileConfirmationMessage: `Modificările au fost salvate!`
|
|
52
66
|
}
|
|
67
|
+
},
|
|
68
|
+
tr: {
|
|
69
|
+
playerProfile: {
|
|
70
|
+
title: `Profil bilgisi`,
|
|
71
|
+
personalDetails: `Kişisel detaylar`,
|
|
72
|
+
userName: `Kullanıcı adı:`,
|
|
73
|
+
userPhone: `Telefon:`,
|
|
74
|
+
userPhoneError: 'Mobil en az 5 karakter uzunluğunda ve en fazla 20 karakter olmalıdır.',
|
|
75
|
+
userEmail: `E-posta:`,
|
|
76
|
+
securityQuestion: `Güvenlik Sorusu:`,
|
|
77
|
+
securityQuestionError: 'Güvenlik sorusu en az 1, en fazla 120 karakter uzunluğunda olmalıdır.',
|
|
78
|
+
firstName: `First name:`,
|
|
79
|
+
securityAnswer: `İlk adı:`,
|
|
80
|
+
securityAnswerError: 'Güvenlik cevabı en az 1 karakter uzunluğunda ve en fazla 120 karakter olmalıdır.',
|
|
81
|
+
lastName: `Soyadı:`,
|
|
82
|
+
dateOfBirth: `Doğum tarihi:`,
|
|
83
|
+
currency: `Para birimi:`,
|
|
84
|
+
userTitle: `Başlık:`,
|
|
85
|
+
locationDetails: `Konum Ayrıntıları`,
|
|
86
|
+
userCountry: `Ülke:`,
|
|
87
|
+
userCity: `Şehir:`,
|
|
88
|
+
userCityError: 'Şehir en az 1 karakter uzunluğunda ve en fazla 50 karakter olmalıdır.',
|
|
89
|
+
userAddress: `Adres:`,
|
|
90
|
+
userAddressError: 'Adres en az 1 karakter uzunluğunda ve en fazla 100 karakter olmalıdır.',
|
|
91
|
+
userPostalCode: `Posta kodu:`,
|
|
92
|
+
userPostalCodeError: 'Posta Kodu en az 1 karakter uzunluğunda ve en fazla 20 karakter olmalıdır.',
|
|
93
|
+
userNotifications: `Bildirimler`,
|
|
94
|
+
userSMSNotification: `SMS bildirimlerini etkinleştir`,
|
|
95
|
+
userEmailNotification: `E-postaları Etkinleştir`,
|
|
96
|
+
userProfileSaveChanges: `Değişiklikleri Kaydet`,
|
|
97
|
+
userProfileConfirmationMessage: `Değişiklikleriniz kaydedildi!`
|
|
98
|
+
}
|
|
53
99
|
}
|
|
54
100
|
};
|