@everymatrix/general-player-register-form 1.0.15 → 1.0.69
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/es2015/general-player-register-form.cjs +1 -0
- package/es2015/general-player-register-form.js +16 -0
- package/package.json +19 -33
- package/README.md +0 -30
- package/dist/general-player-register-form.js +0 -2
- package/dist/general-player-register-form.js.map +0 -1
- package/index.html +0 -37
- package/index.js +0 -1
- package/public/favicon.png +0 -0
- package/public/reset.css +0 -48
- package/rollup.config.js +0 -67
- package/src/GeneralPlayerRegisterForm.svelte +0 -590
- package/src/i18n.js +0 -27
- package/src/index.ts +0 -4
- package/src/translations.js +0 -37
- package/stories/GeneralPlayerRegisterForm.stories.js +0 -13
- package/tsconfig.json +0 -6
|
@@ -1,590 +0,0 @@
|
|
|
1
|
-
<svelte:options tag={null} />
|
|
2
|
-
|
|
3
|
-
<script lang="ts">
|
|
4
|
-
import { getDevice } from 'rvhelper';
|
|
5
|
-
import { onMount } from "svelte";
|
|
6
|
-
import { _, addNewMessages, setLocale, setupI18n } from './i18n';
|
|
7
|
-
import { RegisterFormTranslations } from './translations';
|
|
8
|
-
|
|
9
|
-
// Native bridge
|
|
10
|
-
import { isNative, call as callNative, registerEventListener as registerNativeEventListener } from 'js-native-bridge';
|
|
11
|
-
|
|
12
|
-
import '@everymatrix/general-player-register-form-step1';
|
|
13
|
-
import '@everymatrix/general-player-register-form-step2';
|
|
14
|
-
import '@everymatrix/general-player-register-form-step3';
|
|
15
|
-
import '@everymatrix/general-player-sms-verification-form';
|
|
16
|
-
|
|
17
|
-
export let endpoint:string = '';
|
|
18
|
-
export let cmsendpoint:string = '';
|
|
19
|
-
export let env:string = '';
|
|
20
|
-
export let imagedesktop:string = '';
|
|
21
|
-
export let session:string = '';
|
|
22
|
-
export let trackedanalyticsdata:string = '';
|
|
23
|
-
export let captchakey:string = '';
|
|
24
|
-
export let lang:string = '';
|
|
25
|
-
export let licenseyears:string = '';
|
|
26
|
-
export let disabledfields:string = '';
|
|
27
|
-
export let dummydata:string = '';
|
|
28
|
-
export let smsverification = 'false';
|
|
29
|
-
export let simplepasswordvalidation:string = 'false';
|
|
30
|
-
export let userroles:string = '';
|
|
31
|
-
export let translationUrl:string = '';
|
|
32
|
-
|
|
33
|
-
let isLoading:boolean = false;
|
|
34
|
-
|
|
35
|
-
let disabledFieldsList:Array<string> = [];
|
|
36
|
-
|
|
37
|
-
let playerid:string = '';
|
|
38
|
-
let showRegisterStepOne:boolean = true;
|
|
39
|
-
let showRegisterStepTwo:boolean = false;
|
|
40
|
-
let showRegisterStepThree:boolean = false;
|
|
41
|
-
let showSmsVerification: boolean = false;
|
|
42
|
-
let showConfirmation:boolean = false;
|
|
43
|
-
let cmsData:any;
|
|
44
|
-
let showError:boolean = false;
|
|
45
|
-
|
|
46
|
-
let accountCreationTitle:string = '';
|
|
47
|
-
let accountCreationSubTitle:string = '';
|
|
48
|
-
let accountCreationMessage:string = '';
|
|
49
|
-
let image:Object = {};
|
|
50
|
-
|
|
51
|
-
let userAgent:string = window.navigator.userAgent;
|
|
52
|
-
let isMobile:boolean = (getDevice(userAgent) === 'PC') ? false : true;
|
|
53
|
-
|
|
54
|
-
// @TODO typescript model type for userData
|
|
55
|
-
let userData:any = {};
|
|
56
|
-
let stepTwoVisited:boolean = false;
|
|
57
|
-
let stepThreeVisited:boolean = false;
|
|
58
|
-
let userconsentsexist:string = 'false';
|
|
59
|
-
let termsconditions:string = 'false';
|
|
60
|
-
let smsoffers:string = 'false';
|
|
61
|
-
let emailmarketing:string = 'false';
|
|
62
|
-
let error:string = '';
|
|
63
|
-
let smsTemplate: string = 'Please use this code {0} to activate your account';
|
|
64
|
-
let smstokenid;
|
|
65
|
-
let smsSendApiFailed = false;
|
|
66
|
-
let number;
|
|
67
|
-
|
|
68
|
-
let scrollSteps:HTMLElement;
|
|
69
|
-
|
|
70
|
-
// Native bridge
|
|
71
|
-
let isOnNative:boolean = false;
|
|
72
|
-
|
|
73
|
-
// @TODO typescript model for loginFields
|
|
74
|
-
let loginFields:any = {
|
|
75
|
-
username: '',
|
|
76
|
-
password: '',
|
|
77
|
-
};
|
|
78
|
-
|
|
79
|
-
// setupI18n({ withLocale: 'en', translations: {}});
|
|
80
|
-
|
|
81
|
-
const setTranslationUrl = ():void => {
|
|
82
|
-
let url:string = translationUrl;
|
|
83
|
-
|
|
84
|
-
fetch(url).then((res:any) => res.json())
|
|
85
|
-
.then((res) => {
|
|
86
|
-
Object.keys(res).forEach((item:any):void => {
|
|
87
|
-
addNewMessages(item, res[item]);
|
|
88
|
-
});
|
|
89
|
-
}).catch((err:any) => {
|
|
90
|
-
console.log(err);
|
|
91
|
-
});
|
|
92
|
-
}
|
|
93
|
-
|
|
94
|
-
Object.keys(RegisterFormTranslations).forEach((item:any) => {
|
|
95
|
-
addNewMessages(item, RegisterFormTranslations[item]);
|
|
96
|
-
});
|
|
97
|
-
|
|
98
|
-
const verifyUserConsents = ():void => {
|
|
99
|
-
fetch(`${endpoint}/player/consentRequirements`)
|
|
100
|
-
.then((res:any) => res.json())
|
|
101
|
-
.then(data => {
|
|
102
|
-
if(data.items.length > 0) {
|
|
103
|
-
userconsentsexist = 'true';
|
|
104
|
-
data.items.forEach((item) => {
|
|
105
|
-
switch(item.tagCode) {
|
|
106
|
-
case 'termsandconditions':
|
|
107
|
-
termsconditions = 'true';
|
|
108
|
-
break;
|
|
109
|
-
|
|
110
|
-
case 'sms':
|
|
111
|
-
smsoffers = 'true';
|
|
112
|
-
break;
|
|
113
|
-
|
|
114
|
-
case 'emailmarketing':
|
|
115
|
-
emailmarketing = 'true';
|
|
116
|
-
break;
|
|
117
|
-
}
|
|
118
|
-
});
|
|
119
|
-
} else {
|
|
120
|
-
userconsentsexist = 'false';
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
const getCmsData = ():void => {
|
|
126
|
-
let url:URL = new URL(`${cmsendpoint}/${lang}/login-register-content?env=${env}`);
|
|
127
|
-
|
|
128
|
-
let device = getDevice(userAgent)
|
|
129
|
-
|
|
130
|
-
if(device){
|
|
131
|
-
if(device === 'PC'){
|
|
132
|
-
url.searchParams.append('device', 'dk')
|
|
133
|
-
} else if(device === 'iPad' || device === 'iPhone') {
|
|
134
|
-
url.searchParams.append('device', 'ios')
|
|
135
|
-
} else {
|
|
136
|
-
url.searchParams.append('device', 'mtWeb')
|
|
137
|
-
}
|
|
138
|
-
}
|
|
139
|
-
|
|
140
|
-
fetch(url.href)
|
|
141
|
-
.then((res: any) => res.json())
|
|
142
|
-
.then((data: any) => {
|
|
143
|
-
cmsData = data.registerData;
|
|
144
|
-
|
|
145
|
-
accountCreationTitle = cmsData.title;
|
|
146
|
-
accountCreationSubTitle = cmsData.subtitle;
|
|
147
|
-
accountCreationMessage = cmsData.content;
|
|
148
|
-
|
|
149
|
-
})
|
|
150
|
-
.catch((err: any) => {
|
|
151
|
-
console.error(err);
|
|
152
|
-
});
|
|
153
|
-
};
|
|
154
|
-
|
|
155
|
-
const scrollTop = ():void => {
|
|
156
|
-
scrollSteps.scrollIntoView();
|
|
157
|
-
}
|
|
158
|
-
|
|
159
|
-
// @TODO data typescript
|
|
160
|
-
const createData = (step:string, data:any):void => {
|
|
161
|
-
if (step === 'RegisterStepOne') {
|
|
162
|
-
userData.email = disabledFieldsList.indexOf('email') >= 0 ? 'dummy@dummy.com' : data.userEmail;
|
|
163
|
-
userData.username = disabledFieldsList.indexOf('username') >= 0 ? 'dummyUsername' : data.userValue;
|
|
164
|
-
userData.password = disabledFieldsList.indexOf('password') >= 0 ? 'dummyPassword01!' : data.userPassword;
|
|
165
|
-
userData.securityQuestion = disabledFieldsList.indexOf('securityQuestion') >= 0 ? 'dummy question' : data.securityQuestion;
|
|
166
|
-
userData.securityAnswer = disabledFieldsList.indexOf('securityAnswer') >= 0 ? 'dummy answer' : data.securityAnswer;
|
|
167
|
-
}
|
|
168
|
-
if (step === 'RegisterStepTwo') {
|
|
169
|
-
userData.title = data.userTitleSelected;
|
|
170
|
-
userData.firstname = disabledFieldsList.indexOf('firstName') >= 0 ? 'dummy first name' : data.userFirstName;
|
|
171
|
-
userData.lastname = disabledFieldsList.indexOf('lastName') >= 0 ? 'dummy last name' : data.userLastName;
|
|
172
|
-
if (disabledFieldsList.indexOf('birthDate') >= 0) {
|
|
173
|
-
userData.birth = {
|
|
174
|
-
day: 1,
|
|
175
|
-
month: 1,
|
|
176
|
-
year: 2000
|
|
177
|
-
};
|
|
178
|
-
} else {
|
|
179
|
-
userData.birth = {};
|
|
180
|
-
userData.birth.day = data.birthDaySelected;
|
|
181
|
-
userData.birth.month = data.birthMonthSelected;
|
|
182
|
-
userData.birth.year = data.birthYearSelected;
|
|
183
|
-
}
|
|
184
|
-
userData.birthPlace = disabledFieldsList.indexOf('birthPlace') >= 0 ? 'ngenge' : data.birthPlace;
|
|
185
|
-
userData.currency = data.currencySelected;
|
|
186
|
-
}
|
|
187
|
-
if (step === 'RegisterStepThree') {
|
|
188
|
-
userData.address1 = disabledFieldsList.indexOf('address') >= 0 ? 'dummy address' : data.address;
|
|
189
|
-
userData.postalCode = disabledFieldsList.indexOf('postalCode') >= 0 ? '000000' : data.postalCode;
|
|
190
|
-
userData.city = disabledFieldsList.indexOf('city') >= 0 ? 'dummy city' : data.city;
|
|
191
|
-
userData.country = disabledFieldsList.indexOf('country') >= 0 ? 'dummy country' : data.countrySelected;
|
|
192
|
-
userData.nationality = disabledFieldsList.indexOf('nationality') >= 0 ? 'dummy nationality' : data.nationalitySelected;
|
|
193
|
-
if (disabledFieldsList.indexOf('mobile') >= 0) {
|
|
194
|
-
userData.mobile = {
|
|
195
|
-
prefix: '0040',
|
|
196
|
-
number: '1234123412'
|
|
197
|
-
};
|
|
198
|
-
} else {
|
|
199
|
-
userData.mobile = {};
|
|
200
|
-
userData.mobile.prefix = data.mobilePrefixSelected;
|
|
201
|
-
userData.mobile.number = data.mobile;
|
|
202
|
-
number = `${data.mobilePrefixSelected}${data.mobile}`
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
userData.userConsents = {};
|
|
206
|
-
// analytics data
|
|
207
|
-
userData.affiliateMarker = trackedanalyticsdata;
|
|
208
|
-
|
|
209
|
-
if (userconsentsexist == 'true') {
|
|
210
|
-
userData.userConsents.sms = data.consentOffersSms;
|
|
211
|
-
userData.userConsents.emailmarketing = data.consentOffersEmail;
|
|
212
|
-
userData.userConsents.termsandconditions = data.consentTerms;
|
|
213
|
-
}
|
|
214
|
-
|
|
215
|
-
userData.token = data.token;
|
|
216
|
-
}
|
|
217
|
-
}
|
|
218
|
-
|
|
219
|
-
const messageHandler = (e:any):void => {
|
|
220
|
-
if (e.data) {
|
|
221
|
-
switch(e.data.type) {
|
|
222
|
-
case 'RegisterStepOne':
|
|
223
|
-
createData('RegisterStepOne', e.data.registerStepOneData);
|
|
224
|
-
scrollTop();
|
|
225
|
-
showRegisterStepOne = false;
|
|
226
|
-
showRegisterStepTwo = true;
|
|
227
|
-
if (stepTwoVisited == false) {
|
|
228
|
-
stepTwoVisited = true;
|
|
229
|
-
} else {
|
|
230
|
-
window.postMessage({ type: 'StepTwoDataBackup', userData }, window.location.href);
|
|
231
|
-
}
|
|
232
|
-
break;
|
|
233
|
-
|
|
234
|
-
case 'RegisterStepTwo':
|
|
235
|
-
createData('RegisterStepTwo', e.data.registerStepTwoData);
|
|
236
|
-
scrollTop();
|
|
237
|
-
showRegisterStepTwo = false;
|
|
238
|
-
showRegisterStepThree = true;
|
|
239
|
-
if (stepThreeVisited == false) {
|
|
240
|
-
stepThreeVisited = true;
|
|
241
|
-
} else {
|
|
242
|
-
window.postMessage({ type: 'StepThreeDataBackup', userData }, window.location.href);
|
|
243
|
-
}
|
|
244
|
-
break;
|
|
245
|
-
|
|
246
|
-
case 'RegisterStepThree':
|
|
247
|
-
createData('RegisterStepThree', e.data.registerStepThreeData);
|
|
248
|
-
sendData(userData);
|
|
249
|
-
break;
|
|
250
|
-
|
|
251
|
-
case 'SmsHasBeenValidated':
|
|
252
|
-
showConfirmation = true;
|
|
253
|
-
showSmsVerification = false;
|
|
254
|
-
break;
|
|
255
|
-
|
|
256
|
-
case 'GoBackStepTwo':
|
|
257
|
-
createData('RegisterStepTwo', e.data.registerStepTwoData);
|
|
258
|
-
scrollTop();
|
|
259
|
-
showRegisterStepOne = true;
|
|
260
|
-
showRegisterStepTwo = false;
|
|
261
|
-
window.postMessage({ type: 'StepOneDataBackup', userData }, window.location.href);
|
|
262
|
-
break;
|
|
263
|
-
|
|
264
|
-
case 'GoBackStepThree':
|
|
265
|
-
createData('RegisterStepThree', e.data.registerStepThreeData);
|
|
266
|
-
scrollTop();
|
|
267
|
-
showRegisterStepTwo = true;
|
|
268
|
-
showRegisterStepThree = false;
|
|
269
|
-
window.postMessage({ type: 'StepTwoDataBackup', userData }, window.location.href);
|
|
270
|
-
break;
|
|
271
|
-
|
|
272
|
-
default:
|
|
273
|
-
// do nothing
|
|
274
|
-
break;
|
|
275
|
-
}
|
|
276
|
-
}
|
|
277
|
-
}
|
|
278
|
-
|
|
279
|
-
const handlePostRegister = ():void => {
|
|
280
|
-
if (isOnNative) {
|
|
281
|
-
registerNativeEventListener(
|
|
282
|
-
'BIOMETRICS_ENABLED',
|
|
283
|
-
() => {
|
|
284
|
-
},
|
|
285
|
-
);
|
|
286
|
-
|
|
287
|
-
const { username, password } = loginFields;
|
|
288
|
-
|
|
289
|
-
const methodFound = callNative('ENABLE_BIOMETRICS', { username, password });
|
|
290
|
-
|
|
291
|
-
if (!methodFound) {
|
|
292
|
-
// Nothing to do here
|
|
293
|
-
}
|
|
294
|
-
}
|
|
295
|
-
|
|
296
|
-
//Analytics event
|
|
297
|
-
if(typeof gtag == 'function'){
|
|
298
|
-
gtag('event', 'Register', {
|
|
299
|
-
'context': 'GeneralPlayerRegisterForm'
|
|
300
|
-
});
|
|
301
|
-
}
|
|
302
|
-
}
|
|
303
|
-
|
|
304
|
-
// @TODO typescript data model for userData
|
|
305
|
-
const sendData = async (userData:any):Promise<any> => {
|
|
306
|
-
let sendRegistrationData = {
|
|
307
|
-
method: "PUT",
|
|
308
|
-
headers: {
|
|
309
|
-
'g-recaptcha-response': userData.token,
|
|
310
|
-
'Content-Type': "application/json",
|
|
311
|
-
'Accept': 'application/json',
|
|
312
|
-
},
|
|
313
|
-
body: JSON.stringify(userData)
|
|
314
|
-
};
|
|
315
|
-
|
|
316
|
-
let response:any = await fetch(`${endpoint}/player/register`, sendRegistrationData);
|
|
317
|
-
let data:any = await response.json();
|
|
318
|
-
|
|
319
|
-
if (response.ok) {
|
|
320
|
-
showRegisterStepThree = false;
|
|
321
|
-
if(smsverification === 'false') {
|
|
322
|
-
showConfirmation = true;
|
|
323
|
-
} else {
|
|
324
|
-
playerid = data.id;
|
|
325
|
-
sendSmsToken(userData, data.id);
|
|
326
|
-
}
|
|
327
|
-
|
|
328
|
-
loginFields = {
|
|
329
|
-
username: userData.username,
|
|
330
|
-
password: userData.password
|
|
331
|
-
};
|
|
332
|
-
|
|
333
|
-
handlePostRegister();
|
|
334
|
-
} else {
|
|
335
|
-
// Parsing GMCore message 'cuz it's stupid and it doesn't know how to send error messages in 2021...2022 already ffs
|
|
336
|
-
// I really hope this piece of code won't survive long enough so that the years above will reach 2025 or something ... like, for real, please ... some real errors? plox ...
|
|
337
|
-
error = data.error.substring(data.error.indexOf('errorMessage') + 13, data.error.length);
|
|
338
|
-
showError = true;
|
|
339
|
-
window.postMessage({ type: "ShowRegistrationError", showError, error }, window.location.href);
|
|
340
|
-
}
|
|
341
|
-
}
|
|
342
|
-
|
|
343
|
-
const sendSmsToken = async (userData, playerId) => {
|
|
344
|
-
try {
|
|
345
|
-
const res = await fetch(`${endpoint}/player/sms/token`,{
|
|
346
|
-
method: 'POST',
|
|
347
|
-
headers: {
|
|
348
|
-
'Content-Type': 'application/json',
|
|
349
|
-
accept: 'application/json',
|
|
350
|
-
},
|
|
351
|
-
body: JSON.stringify(
|
|
352
|
-
{
|
|
353
|
-
userId: playerId,
|
|
354
|
-
messageTemplate: smsTemplate,
|
|
355
|
-
destination: `${userData.mobile.prefix}${userData.mobile.number}`,
|
|
356
|
-
}
|
|
357
|
-
),
|
|
358
|
-
});
|
|
359
|
-
|
|
360
|
-
const data = await res.json();
|
|
361
|
-
|
|
362
|
-
if(res.ok) {
|
|
363
|
-
smstokenid = data.id;
|
|
364
|
-
let smsMaxValidations = data.maxValidationAttempts;
|
|
365
|
-
showSmsVerification = true;
|
|
366
|
-
smsSendApiFailed = false;
|
|
367
|
-
} else {
|
|
368
|
-
smsSendApiFailed = true;
|
|
369
|
-
throw new Error("Failed to fetch");
|
|
370
|
-
}
|
|
371
|
-
} catch(err) {
|
|
372
|
-
smsSendApiFailed = true;
|
|
373
|
-
console.error(err);
|
|
374
|
-
}
|
|
375
|
-
}
|
|
376
|
-
|
|
377
|
-
const formatDisabledFields = ():void => {
|
|
378
|
-
disabledFieldsList = disabledfields.split(',');
|
|
379
|
-
}
|
|
380
|
-
|
|
381
|
-
const switchToLogin = ():void => {
|
|
382
|
-
window.postMessage({ type: "ToLogin" }, window.location.href);
|
|
383
|
-
}
|
|
384
|
-
|
|
385
|
-
const setActiveLanguage = ():void => {
|
|
386
|
-
setLocale(lang);
|
|
387
|
-
}
|
|
388
|
-
|
|
389
|
-
onMount(() => {
|
|
390
|
-
window.addEventListener('message', messageHandler, false);
|
|
391
|
-
|
|
392
|
-
verifyUserConsents();
|
|
393
|
-
isOnNative = !!isNative(userAgent);
|
|
394
|
-
|
|
395
|
-
return () => {
|
|
396
|
-
window.removeEventListener('message', messageHandler);
|
|
397
|
-
}
|
|
398
|
-
});
|
|
399
|
-
|
|
400
|
-
$: cmsendpoint && lang && env && userroles && getCmsData();
|
|
401
|
-
$: playerid && session;
|
|
402
|
-
$: lang && setActiveLanguage();
|
|
403
|
-
$: disabledfields && formatDisabledFields();
|
|
404
|
-
$: translationUrl && setTranslationUrl();
|
|
405
|
-
</script>
|
|
406
|
-
|
|
407
|
-
{#if isLoading}
|
|
408
|
-
<div class="ModalLoader" part="ModalLoader"></div>
|
|
409
|
-
{:else}
|
|
410
|
-
<div class="RegisterFormWrapper" part="RegisterFormWrapper">
|
|
411
|
-
{#if !isMobile}
|
|
412
|
-
<div class="RegisterFormImage" part="RegisterFormImage" style="background-image: url('{imagedesktop}')"></div>
|
|
413
|
-
{/if}
|
|
414
|
-
<div class="RegisterFormContainer {isMobile ? 'RegisterFormContainerMobile' : ''}" part="RegisterFormContainer {isMobile ? 'RegisterFormContainerMobile' : ''}">
|
|
415
|
-
{#if showRegisterStepOne || showRegisterStepTwo || showRegisterStepThree}
|
|
416
|
-
<div class="RegisterSteps" part="RegisterSteps" bind:this={scrollSteps}>
|
|
417
|
-
<div class="RegisterFirstStepDash {showRegisterStepOne || (!showRegisterStepOne && showRegisterStepTwo) || (!showRegisterStepOne && !showRegisterStepTwo && showRegisterStepThree) ? 'RegisterStepDashColor' : ''}"
|
|
418
|
-
part="RegisterFirstStepDash {showRegisterStepOne || (!showRegisterStepOne && showRegisterStepTwo) || (!showRegisterStepOne && !showRegisterStepTwo && showRegisterStepThree) ? 'RegisterStepDashColor' : ''}"></div>
|
|
419
|
-
<div class="RegisterSecondStepDash {showRegisterStepTwo || (!showRegisterStepOne && !showRegisterStepTwo && showRegisterStepThree) ? 'RegisterStepDashColor' : ''}"
|
|
420
|
-
part="RegisterSecondStepDash {showRegisterStepTwo || (!showRegisterStepOne && !showRegisterStepTwo && showRegisterStepThree) ? 'RegisterStepDashColor' : ''}"></div>
|
|
421
|
-
<div class="RegisterThirdStepDash {showRegisterStepThree ? 'RegisterStepDashColor' : ''}" part="RegisterThirdStepDash {showRegisterStepThree ? 'RegisterStepDashColor' : ''}"></div>
|
|
422
|
-
</div>
|
|
423
|
-
{/if}
|
|
424
|
-
{#if showRegisterStepOne}
|
|
425
|
-
<div class="RegisterFormStep1" part="RegisterFormStep1">
|
|
426
|
-
<general-player-register-form-step1 {lang} {disabledfields} {dummydata} {simplepasswordvalidation} />
|
|
427
|
-
</div>
|
|
428
|
-
{/if}
|
|
429
|
-
{#if showRegisterStepTwo}
|
|
430
|
-
<div class="RegisterFormStep2" part="RegisterFormStep2">
|
|
431
|
-
<general-player-register-form-step2 {endpoint} {lang} {licenseyears} {disabledfields} {dummydata} />
|
|
432
|
-
</div>
|
|
433
|
-
{/if}
|
|
434
|
-
{#if showRegisterStepThree}
|
|
435
|
-
<div class="RegisterFormStep3" part="RegisterFormStep3">
|
|
436
|
-
<general-player-register-form-step3 {userconsentsexist} {termsconditions} {smsoffers} {emailmarketing} {endpoint} {captchakey} {lang} {disabledfields} {dummydata} />
|
|
437
|
-
</div>
|
|
438
|
-
{/if}
|
|
439
|
-
{#if smsverification && showSmsVerification}
|
|
440
|
-
{#if !smsSendApiFailed}
|
|
441
|
-
<general-player-sms-verification-form
|
|
442
|
-
{endpoint}
|
|
443
|
-
{session}
|
|
444
|
-
{number}
|
|
445
|
-
{playerid}
|
|
446
|
-
tokenid={smstokenid}>
|
|
447
|
-
</general-player-sms-verification-form>
|
|
448
|
-
{:else}
|
|
449
|
-
<p>
|
|
450
|
-
We encountered an issue sending the sms to your number,
|
|
451
|
-
you can verify your number while loging in
|
|
452
|
-
</p>
|
|
453
|
-
{/if}
|
|
454
|
-
{/if}
|
|
455
|
-
{#if showConfirmation}
|
|
456
|
-
<div class="RegisterConfirmation" part="RegisterConfirmation">
|
|
457
|
-
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 73.95 51"><defs><style>.a{fill:#16ce16;}</style></defs><path class="a" d="M29.325,51,0,21.675l5.95-5.95,23.375,22.95L68,0l5.95,5.95Z"/></svg>
|
|
458
|
-
<h2 class="RegisterConfirmationTitle" part="RegisterConfirmationTitle">{accountCreationTitle}</h2>
|
|
459
|
-
<p class="RegisterConfirmationSubtitle" part="RegisterConfirmationSubtitle">{accountCreationSubTitle}</p>
|
|
460
|
-
<p class="RegisterConfirmationNote" part="RegisterConfirmationNote">{accountCreationMessage}</p>
|
|
461
|
-
<button class="RegisterConfirmationGoToLogin" part="RegisterConfirmationGoToLogin" on:click={switchToLogin}>{$_('registerForm.goToLoginButton')}</button>
|
|
462
|
-
</div>
|
|
463
|
-
{/if}
|
|
464
|
-
</div>
|
|
465
|
-
</div>
|
|
466
|
-
{/if}
|
|
467
|
-
|
|
468
|
-
<style lang="scss">
|
|
469
|
-
|
|
470
|
-
:host {
|
|
471
|
-
font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
|
|
472
|
-
}
|
|
473
|
-
|
|
474
|
-
.RegisterFormWrapper {
|
|
475
|
-
background: var(--emfe-w-color-gray-50, #F9F8F8);
|
|
476
|
-
display: inline-flex;
|
|
477
|
-
width: 100%;
|
|
478
|
-
}
|
|
479
|
-
|
|
480
|
-
.RegisterFormImage {
|
|
481
|
-
background-position: center;
|
|
482
|
-
background-size: cover;
|
|
483
|
-
background-repeat: no-repeat;
|
|
484
|
-
flex: 1 1 100%;
|
|
485
|
-
}
|
|
486
|
-
|
|
487
|
-
.RegisterFormContainer {
|
|
488
|
-
flex: 1 1 100%;
|
|
489
|
-
padding: 25px;
|
|
490
|
-
height: 404px;
|
|
491
|
-
overflow-y: auto;
|
|
492
|
-
scrollbar-color: var(--emfe-w-color-gray-100, #E6E6E6) var(--emfe-w-color-gray-50, #F9F8F8);
|
|
493
|
-
scrollbar-width: thin;
|
|
494
|
-
&.RegisterFormContainerMobile {
|
|
495
|
-
padding: 40px 20px;
|
|
496
|
-
height: auto;
|
|
497
|
-
overflow-y: initial;
|
|
498
|
-
}
|
|
499
|
-
}
|
|
500
|
-
|
|
501
|
-
.RegisterFormContainer::-webkit-scrollbar {
|
|
502
|
-
width: 6px;
|
|
503
|
-
}
|
|
504
|
-
|
|
505
|
-
/* Track */
|
|
506
|
-
.RegisterFormContainer::-webkit-scrollbar-track {
|
|
507
|
-
background: var(--emfe-w-color-gray-50, #F9F8F8);
|
|
508
|
-
}
|
|
509
|
-
|
|
510
|
-
/* Handle */
|
|
511
|
-
.RegisterFormContainer::-webkit-scrollbar-thumb {
|
|
512
|
-
background: var(--emfe-w-color-gray-100, #E6E6E6);
|
|
513
|
-
}
|
|
514
|
-
|
|
515
|
-
.RegisterSteps {
|
|
516
|
-
display: flex;
|
|
517
|
-
gap: 10px;
|
|
518
|
-
padding: 20px 0 30px;
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
.RegisterFirstStepDash,
|
|
522
|
-
.RegisterSecondStepDash,
|
|
523
|
-
.RegisterThirdStepDash {
|
|
524
|
-
width: 50px;
|
|
525
|
-
height: 2px;
|
|
526
|
-
background-color: var(--emfe-w-color-gray-100, #E6E6E6);
|
|
527
|
-
}
|
|
528
|
-
|
|
529
|
-
.RegisterStepDashColor {
|
|
530
|
-
background-color: var(--emfe-w-color-primary, #D0046C);
|
|
531
|
-
}
|
|
532
|
-
|
|
533
|
-
.RegisterStepNext {
|
|
534
|
-
color: var(--emfe-w-color-white, #FFFFFF);
|
|
535
|
-
background: var(--emfe-w-color-primary, #D0046C);
|
|
536
|
-
border: 1px solid var(--emfe-w-color-primary, #D0046C);
|
|
537
|
-
border-radius: 5px;
|
|
538
|
-
width: 100%;
|
|
539
|
-
height: 60px;
|
|
540
|
-
padding: 0;
|
|
541
|
-
text-transform: uppercase;
|
|
542
|
-
font-size: 18px;
|
|
543
|
-
cursor: pointer;
|
|
544
|
-
margin-top: 24px;
|
|
545
|
-
}
|
|
546
|
-
|
|
547
|
-
.RegisterConfirmation {
|
|
548
|
-
display: flex;
|
|
549
|
-
flex-direction: column;
|
|
550
|
-
align-items: center;
|
|
551
|
-
justify-content: center;
|
|
552
|
-
text-align: center;
|
|
553
|
-
margin-top: 60px;
|
|
554
|
-
svg {
|
|
555
|
-
width: 74px;
|
|
556
|
-
}
|
|
557
|
-
.RegisterConfirmationTitle {
|
|
558
|
-
color: var(--emfe-w-color-green, #48952a);
|
|
559
|
-
font-size: 24px;
|
|
560
|
-
font-weight: 400;
|
|
561
|
-
text-transform: uppercase;
|
|
562
|
-
margin-bottom: 0;
|
|
563
|
-
}
|
|
564
|
-
.RegisterConfirmationSubtitle {
|
|
565
|
-
color: var(--emfe-w-color-gray-300, #58586B);
|
|
566
|
-
font-size: 16px;
|
|
567
|
-
line-height: 19px;
|
|
568
|
-
margin-bottom: 24px;
|
|
569
|
-
}
|
|
570
|
-
.RegisterConfirmationNote {
|
|
571
|
-
color: var(--emfe-w-color-black, #000000);
|
|
572
|
-
font-size: 18px;
|
|
573
|
-
line-height: 22px;
|
|
574
|
-
}
|
|
575
|
-
}
|
|
576
|
-
|
|
577
|
-
.RegisterConfirmationGoToLogin {
|
|
578
|
-
color: var(--emfe-w-color-white, #FFFFFF);
|
|
579
|
-
background: var(--emfe-w-color-primary, #D0046C);
|
|
580
|
-
border: 1px solid var(--emfe-w-color-primary, #D0046C);
|
|
581
|
-
border-radius: 5px;
|
|
582
|
-
width: 100%;
|
|
583
|
-
height: 60px;
|
|
584
|
-
padding: 0;
|
|
585
|
-
text-transform: uppercase;
|
|
586
|
-
font-size: 18px;
|
|
587
|
-
cursor: pointer;
|
|
588
|
-
margin-top: 24px;
|
|
589
|
-
}
|
|
590
|
-
</style>
|
package/src/i18n.js
DELETED
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
import {
|
|
2
|
-
dictionary,
|
|
3
|
-
locale,
|
|
4
|
-
addMessages,
|
|
5
|
-
_
|
|
6
|
-
} from 'svelte-i18n';
|
|
7
|
-
|
|
8
|
-
function setupI18n({ withLocale: _locale, translations }) {
|
|
9
|
-
locale.subscribe((data) => {
|
|
10
|
-
if (data == null) {
|
|
11
|
-
dictionary.set(translations);
|
|
12
|
-
locale.set(_locale);
|
|
13
|
-
}
|
|
14
|
-
}); // maybe we will need this to make sure that the i18n is set up only once
|
|
15
|
-
/*dictionary.set(translations);
|
|
16
|
-
locale.set(_locale);*/
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
function addNewMessages(lang, dict) {
|
|
20
|
-
addMessages(lang, dict);
|
|
21
|
-
}
|
|
22
|
-
|
|
23
|
-
function setLocale(_locale) {
|
|
24
|
-
locale.set(_locale);
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
export { _, setupI18n, addNewMessages, setLocale };
|
package/src/index.ts
DELETED
package/src/translations.js
DELETED
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
export const RegisterFormTranslations = {
|
|
2
|
-
en: {
|
|
3
|
-
registerForm: {
|
|
4
|
-
goToLoginButton: 'Go To Login',
|
|
5
|
-
}
|
|
6
|
-
},
|
|
7
|
-
zhs: {
|
|
8
|
-
registerForm: {
|
|
9
|
-
goToLoginButton: '去登錄',
|
|
10
|
-
}
|
|
11
|
-
},
|
|
12
|
-
fr: {
|
|
13
|
-
registerForm: {
|
|
14
|
-
goToLoginButton: 'Aller à la connexion',
|
|
15
|
-
}
|
|
16
|
-
},
|
|
17
|
-
tr: {
|
|
18
|
-
registerForm: {
|
|
19
|
-
goToLoginButton: 'Giriş Yap',
|
|
20
|
-
}
|
|
21
|
-
},
|
|
22
|
-
ro: {
|
|
23
|
-
registerForm: {
|
|
24
|
-
goToLoginButton: 'Catre Autentificare',
|
|
25
|
-
}
|
|
26
|
-
},
|
|
27
|
-
es: {
|
|
28
|
-
registerForm: {
|
|
29
|
-
goToLoginButton: 'Ir a Iniciar sesión',
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
pt: {
|
|
33
|
-
registerForm: {
|
|
34
|
-
goToLoginButton: 'Ir para o Login',
|
|
35
|
-
}
|
|
36
|
-
},
|
|
37
|
-
};
|
|
@@ -1,13 +0,0 @@
|
|
|
1
|
-
import { html } from 'lit-element';
|
|
2
|
-
|
|
3
|
-
import GeneralPlayerRegisterForm from '../src/GeneralPlayerRegisterForm';
|
|
4
|
-
|
|
5
|
-
// This default export determines where your story goes in the story list
|
|
6
|
-
export default {
|
|
7
|
-
title: 'GeneralPlayerRegisterForm',
|
|
8
|
-
};
|
|
9
|
-
|
|
10
|
-
// 👇 We create a “template” of how args map to rendering
|
|
11
|
-
const GeneralPlayerRegisterForm = ({ aProperty }) => html`<general-player-register-form></general-player-register-form>`;
|
|
12
|
-
|
|
13
|
-
export const FirstStory = GeneralPlayerRegisterForm.bind({});
|