@everymatrix/general-player-login-form 1.2.1 → 1.2.2
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/general-player-login-form",
|
|
3
|
-
"version": "1.2.
|
|
3
|
+
"version": "1.2.2",
|
|
4
4
|
"main": "dist/general-player-login-form.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": "02dbae5b4d167acdb57c72905b756343a318870a"
|
|
40
40
|
}
|
|
@@ -20,12 +20,11 @@
|
|
|
20
20
|
export let simplepasswordvalidation:string = 'false';
|
|
21
21
|
export let clientstyling:string = '';
|
|
22
22
|
export let clientstylingurl:string = '';
|
|
23
|
-
export let
|
|
23
|
+
export let translationurl:string = '';
|
|
24
24
|
|
|
25
25
|
let playerId;
|
|
26
26
|
let smsTokenId;
|
|
27
|
-
let
|
|
28
|
-
let smsTemplate: string = 'Please use this code {0} to activate your accout';
|
|
27
|
+
let smsTemplate: string = 'Please use this code {0} to activate your account';
|
|
29
28
|
let smsSendApiFailed = false;
|
|
30
29
|
let number;
|
|
31
30
|
let mobileView:boolean = false;
|
|
@@ -55,6 +54,9 @@
|
|
|
55
54
|
|
|
56
55
|
let customStylingContainer:HTMLElement;
|
|
57
56
|
let displayNone:boolean = false;
|
|
57
|
+
let setTimer = +localStorage.getItem('smsTimer') || 0;
|
|
58
|
+
let currentTimer = Date.now() / 1000 - setTimer;
|
|
59
|
+
let startSmsValidation = localStorage.getItem('smsValidation') == 'true' && currentTimer < 60 ? true : false;
|
|
58
60
|
|
|
59
61
|
let regexValidators = {
|
|
60
62
|
user: /^(?!(?:.*\d){9})(?=(?:.*[a-zA-Z]){4})^[a-zA-Z\d]*$/,
|
|
@@ -65,7 +67,7 @@
|
|
|
65
67
|
setupI18n({ withLocale: 'en', translations: {}});
|
|
66
68
|
|
|
67
69
|
const setTranslationUrl = ():void => {
|
|
68
|
-
let url:string =
|
|
70
|
+
let url:string = translationurl;
|
|
69
71
|
|
|
70
72
|
fetch(url).then((res:any) => res.json())
|
|
71
73
|
.then((res) => {
|
|
@@ -124,7 +126,7 @@
|
|
|
124
126
|
}
|
|
125
127
|
|
|
126
128
|
const submitLoginForm = (e):void => {
|
|
127
|
-
e
|
|
129
|
+
e?.preventDefault();
|
|
128
130
|
doRecaptcha()
|
|
129
131
|
.then((token:string) => {
|
|
130
132
|
if (checkUserIdentifier(userValue) && checkUserPassword(userPassword)) {
|
|
@@ -134,7 +136,6 @@
|
|
|
134
136
|
token: token
|
|
135
137
|
};
|
|
136
138
|
isLoading = true;
|
|
137
|
-
|
|
138
139
|
window.postMessage({ type: "SubmitLoginForm", loginData: loginFormData }, window.location.href);
|
|
139
140
|
}
|
|
140
141
|
});
|
|
@@ -187,7 +188,10 @@
|
|
|
187
188
|
number = e.data.number;
|
|
188
189
|
startSmsValidation = e.data.startSmsValidation;
|
|
189
190
|
sendSmsToken(number, playerId);
|
|
191
|
+
localStorage.setItem('smsValidation', 'true');
|
|
192
|
+
localStorage.setItem('playerData', JSON.stringify({playerid: playerId, number: number}));
|
|
190
193
|
break;
|
|
194
|
+
|
|
191
195
|
case 'SmsHasBeenValidated':
|
|
192
196
|
submitLoginForm();
|
|
193
197
|
break;
|
|
@@ -196,6 +200,7 @@
|
|
|
196
200
|
}
|
|
197
201
|
|
|
198
202
|
const sendSmsToken = async (number, playerId) => {
|
|
203
|
+
localStorage.setItem('smsTimer', JSON.stringify(Math.floor(Date.now() / 1000)));
|
|
199
204
|
try {
|
|
200
205
|
const res = await fetch(`${endpoint}/player/sms/token`,{
|
|
201
206
|
method: 'POST',
|
|
@@ -214,7 +219,7 @@
|
|
|
214
219
|
|
|
215
220
|
const data = await res.json();
|
|
216
221
|
|
|
217
|
-
if(res.ok) {
|
|
222
|
+
if (res.ok ) {
|
|
218
223
|
smsTokenId = data.id;
|
|
219
224
|
let smsMaxValidations = data.maxValidationAttempts;
|
|
220
225
|
smsSendApiFailed = false;
|
|
@@ -254,10 +259,9 @@
|
|
|
254
259
|
});
|
|
255
260
|
}
|
|
256
261
|
|
|
257
|
-
onMount(
|
|
262
|
+
onMount(() => {
|
|
258
263
|
window.addEventListener("message", messageHandler, false);
|
|
259
264
|
window.postMessage({ type: "LoginRegisterModalActive" }, window.location.href);
|
|
260
|
-
|
|
261
265
|
isOnNative = !!isNative(userAgent);
|
|
262
266
|
waitingForCredentials = isOnNative;
|
|
263
267
|
|
|
@@ -298,7 +302,7 @@
|
|
|
298
302
|
$: simplepasswordvalidation && verifyTypeOfPassword();
|
|
299
303
|
$: clientstyling && customStylingContainer && setClientStyling();
|
|
300
304
|
$: clientstylingurl && customStylingContainer && setClientStylingURL();
|
|
301
|
-
$:
|
|
305
|
+
$: translationurl && setTranslationUrl();
|
|
302
306
|
</script>
|
|
303
307
|
|
|
304
308
|
<svelte:head>
|
|
@@ -309,7 +313,7 @@
|
|
|
309
313
|
|
|
310
314
|
<div class="g-recaptcha" data-sitekey="{captchakey}" />
|
|
311
315
|
|
|
312
|
-
<div bind:this={customStylingContainer}>
|
|
316
|
+
<div class="PlayerLoginFormWrapper" bind:this={customStylingContainer}>
|
|
313
317
|
{#if isLoading}
|
|
314
318
|
<div class="ModalLoaderWrapper" part="ModalLoaderWrapper">
|
|
315
319
|
<div class="ModalLoader" part="ModalLoader"></div>
|
|
@@ -382,6 +386,11 @@
|
|
|
382
386
|
}
|
|
383
387
|
|
|
384
388
|
.grecaptcha-badge { opacity:0;}
|
|
389
|
+
|
|
390
|
+
.PlayerLoginFormWrapper {
|
|
391
|
+
height: 100%;
|
|
392
|
+
}
|
|
393
|
+
|
|
385
394
|
.FormContainer {
|
|
386
395
|
display: inline-flex;
|
|
387
396
|
width: 100%;
|
|
@@ -522,7 +531,7 @@
|
|
|
522
531
|
.FormMobileContainer {
|
|
523
532
|
height:100%;
|
|
524
533
|
.FormLeftSide {
|
|
525
|
-
padding: 40px 20px
|
|
534
|
+
padding: 40px 20px 100%;
|
|
526
535
|
}
|
|
527
536
|
.SignInButton,
|
|
528
537
|
.UserContainer input,
|
package/src/translations.js
CHANGED
|
@@ -10,7 +10,7 @@ export const LoginForm = {
|
|
|
10
10
|
loginPasswordError: 'Password must be 8-20 characters long and contain at least 1 uppercase letter, 1 number and 1 special character.',
|
|
11
11
|
loginSimplePasswordError: 'Password must be 8-20 characters long.',
|
|
12
12
|
loginButton: 'Login',
|
|
13
|
-
loginForgotPassword: 'I forgot my password'
|
|
13
|
+
loginForgotPassword: 'I forgot my password',
|
|
14
14
|
}
|
|
15
15
|
},
|
|
16
16
|
zh: {
|
|
@@ -24,7 +24,7 @@ export const LoginForm = {
|
|
|
24
24
|
loginPasswordError: '密碼長度必須為 8-20 個字符,並且至少包含 1 個大寫字母、1 個數字和 1 個特殊字符。',
|
|
25
25
|
loginSimplePasswordError: '密码长度必须为 8-20 个字符。',
|
|
26
26
|
loginButton: '登入',
|
|
27
|
-
loginForgotPassword: '我忘記了我的密碼'
|
|
27
|
+
loginForgotPassword: '我忘記了我的密碼',
|
|
28
28
|
}
|
|
29
29
|
},
|
|
30
30
|
fr: {
|
|
@@ -38,7 +38,7 @@ export const LoginForm = {
|
|
|
38
38
|
loginPasswordError: 'Le mot de passe doit comporter de 8 à 20 charactères et contenir au moins une lettre majuscule, un chiffre et un caractère spécial.',
|
|
39
39
|
loginSimplePasswordError: 'Le mot de passe doit comporter entre 8 et 20 caractères.',
|
|
40
40
|
loginButton: 'Se connecter ',
|
|
41
|
-
loginForgotPassword: 'J\'ai oublié mon mot de passe'
|
|
41
|
+
loginForgotPassword: 'J\'ai oublié mon mot de passe',
|
|
42
42
|
}
|
|
43
43
|
},
|
|
44
44
|
tr: {
|
|
@@ -52,7 +52,7 @@ export const LoginForm = {
|
|
|
52
52
|
loginPasswordError: 'Şifre 8-20 karakter uzunluğunda olmalı ve en az 1 büyük harf, 1 rakam ve 1 özel karakter içermelidir.',
|
|
53
53
|
loginSimplePasswordError: 'Şifre 8-20 karakter uzunluğunda olmalıdır.',
|
|
54
54
|
loginButton: 'Giriş yapmak',
|
|
55
|
-
loginForgotPassword: 'I forgot my password'
|
|
55
|
+
loginForgotPassword: 'I forgot my password',
|
|
56
56
|
}
|
|
57
57
|
},
|
|
58
58
|
ro: {
|
|
@@ -66,7 +66,7 @@ export const LoginForm = {
|
|
|
66
66
|
loginPasswordError: 'Parola trebuie sa aiba o lungime de 8-20 de caractere, sa contina cel putin o litera mare, o cifra si un caracter special.',
|
|
67
67
|
loginSimplePasswordError: 'Parola trebuie să aibă 8-20 de caractere.',
|
|
68
68
|
loginButton: 'Autentificare',
|
|
69
|
-
loginForgotPassword: 'Mi-am uitat parola'
|
|
69
|
+
loginForgotPassword: 'Mi-am uitat parola',
|
|
70
70
|
}
|
|
71
71
|
},
|
|
72
72
|
es: {
|
|
@@ -80,7 +80,7 @@ export const LoginForm = {
|
|
|
80
80
|
loginPasswordError: 'La contraseña debe tener de 8 a 20 caracteres y contener al menos 1 letra mayúscula, 1 número y 1 carácter especial.',
|
|
81
81
|
loginSimplePasswordError: 'La contraseña debe tener entre 8 y 20 caracteres.',
|
|
82
82
|
loginButton: 'Iniciar sesión',
|
|
83
|
-
loginForgotPassword: 'Olvidé mi contraseña'
|
|
83
|
+
loginForgotPassword: 'Olvidé mi contraseña',
|
|
84
84
|
}
|
|
85
85
|
},
|
|
86
86
|
pt: {
|
|
@@ -94,7 +94,7 @@ export const LoginForm = {
|
|
|
94
94
|
loginPasswordError: 'A senha deve ter de 8 a 20 caracteres e conter pelo menos 1 letra maiúscula, 1 número e 1 caractere especial.',
|
|
95
95
|
loginSimplePasswordError: 'A senha deve ter de 8 a 20 caracteres.',
|
|
96
96
|
loginButton: 'Entrar',
|
|
97
|
-
loginForgotPassword: 'Esqueci a minha senha'
|
|
97
|
+
loginForgotPassword: 'Esqueci a minha senha',
|
|
98
98
|
}
|
|
99
99
|
},
|
|
100
100
|
};
|