@everymatrix/player-account-controller 1.44.0 → 1.45.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.
Files changed (79) hide show
  1. package/components/GeneralLogout-DR-XxT8N.js +4832 -0
  2. package/components/GeneralLogout-bc8vhI_H.cjs +8 -0
  3. package/components/PlayerAccountBettingHistory-BK6xPWSw.cjs +1 -0
  4. package/components/PlayerAccountBettingHistory-fca6lsNS.js +328 -0
  5. package/components/PlayerAccountBiometrics-C-3zrtyy.cjs +1 -0
  6. package/components/PlayerAccountBiometrics-CjiFJhw-.js +300 -0
  7. package/components/PlayerAccountClosure-C8BNtCld.cjs +1 -0
  8. package/components/PlayerAccountClosure-jv1Rveed.js +339 -0
  9. package/components/PlayerAccountController-B5GxyiMU.cjs +1 -0
  10. package/components/PlayerAccountController-BJBxx9xW.js +6176 -0
  11. package/components/PlayerAccountGamingLimits-D3HbxASA.js +758 -0
  12. package/components/PlayerAccountGamingLimits-a_ERECbs.cjs +1 -0
  13. package/components/PlayerAccountGamingLimitsConfirmationModal-D0i0fMnV.js +306 -0
  14. package/components/PlayerAccountGamingLimitsConfirmationModal-l6qA-tGo.cjs +1 -0
  15. package/components/PlayerAccountGamingLimitsGroupEdit-C0TmN9tW.cjs +10 -0
  16. package/components/PlayerAccountGamingLimitsGroupEdit-Ds0hHVHM.js +4148 -0
  17. package/components/PlayerAccountGamingLimitsHistory2-BQABSfo3.cjs +1 -0
  18. package/components/PlayerAccountGamingLimitsHistory2-CMLSdTnW.js +734 -0
  19. package/components/PlayerAccountGamingLimitsInfoCard-0xDp-CBL.cjs +1 -0
  20. package/components/PlayerAccountGamingLimitsInfoCard-BBL_jJC8.js +1488 -0
  21. package/components/PlayerAccountGamingLimitsPage2Gm16-B7_BHyXu.js +2794 -0
  22. package/components/PlayerAccountGamingLimitsPage2Gm16-DSOYjGfv.cjs +21 -0
  23. package/components/PlayerAccountGamingLimitsPopup-B_VQVAW1.js +339 -0
  24. package/components/PlayerAccountGamingLimitsPopup-CRCoJtQR.cjs +1 -0
  25. package/components/PlayerAccountGamingLimitsWrapper2-oY7Nyl9P.cjs +1 -0
  26. package/components/PlayerAccountGamingLimitsWrapper2-qU20DTdn.js +844 -0
  27. package/components/PlayerAccountMenu-Cguxd1Gn.js +576 -0
  28. package/components/PlayerAccountMenu-_QF6LQHb.cjs +1 -0
  29. package/components/PlayerAccountModal-BpuFEHxz.js +198 -0
  30. package/components/PlayerAccountModal-CIR41mpM.cjs +1 -0
  31. package/components/PlayerAccountNotifications-DNWMsUnC.cjs +1 -0
  32. package/components/PlayerAccountNotifications-SC-So9Ge.js +261 -0
  33. package/components/PlayerAccountSelfExclusion-DVLlbxoJ.cjs +3693 -0
  34. package/components/PlayerAccountSelfExclusion-zuKOJE1A.js +16404 -0
  35. package/components/PlayerAccountTimeout-C0nlqzAC.cjs +1 -0
  36. package/components/PlayerAccountTimeout-CMxX7J1C.js +448 -0
  37. package/components/PlayerActiveBonuses-CinsfLQL.js +986 -0
  38. package/components/PlayerActiveBonuses-bY0Y51Al.cjs +1 -0
  39. package/components/PlayerBonusCard-CQTRKi8G.js +565 -0
  40. package/components/PlayerBonusCard-DdxYH7lf.cjs +1 -0
  41. package/components/PlayerBonusHistory-CnA7jYi8.cjs +1 -0
  42. package/components/PlayerBonusHistory-Dz9N_GGZ.js +840 -0
  43. package/components/PlayerChangePassword-B9qM0mFd.js +1161 -0
  44. package/components/PlayerChangePassword-BDyXZ2_q.cjs +3 -0
  45. package/components/PlayerDeposit-CYpXuZIT.cjs +1 -0
  46. package/components/PlayerDeposit-Dvm1Z2l9.js +395 -0
  47. package/components/PlayerGamingHistory-1wUzXwQ1.js +920 -0
  48. package/components/PlayerGamingHistory-TcfH2pYz.cjs +1 -0
  49. package/components/PlayerPendingWithdrawals-DgF86kij.js +307 -0
  50. package/components/PlayerPendingWithdrawals-Dn63yKxo.cjs +1 -0
  51. package/components/PlayerProfileInfo-CsWD1vK0.cjs +1 -0
  52. package/components/PlayerProfileInfo-D-A2kQVn.js +1707 -0
  53. package/components/PlayerRealityCheck-BaBE_tNE.cjs +1 -0
  54. package/components/PlayerRealityCheck-gh3vV1ow.js +587 -0
  55. package/components/PlayerTransactionHistory-DJICk5qY.cjs +1 -0
  56. package/components/PlayerTransactionHistory-DpPF3FQq.js +311 -0
  57. package/components/PlayerWithdrawal-BHyCdUgc.js +365 -0
  58. package/components/PlayerWithdrawal-DuxGAxKs.cjs +1 -0
  59. package/es2015/player-account-controller.cjs +1 -0
  60. package/es2015/player-account-controller.js +16 -0
  61. package/package.json +38 -32
  62. package/CHANGELOG.md +0 -19
  63. package/README.md +0 -0
  64. package/assets/arrow-down.svg +0 -3
  65. package/dist/player-account-controller.js +0 -2221
  66. package/dist/player-account-controller.js.map +0 -1
  67. package/documentation.md +0 -166
  68. package/index.html +0 -46
  69. package/index.js +0 -1
  70. package/public/favicon.png +0 -0
  71. package/public/reset.css +0 -48
  72. package/rollup.config.js +0 -67
  73. package/src/PlayerAccountController.svelte +0 -732
  74. package/src/PlayerAccountController.types.ts +0 -5
  75. package/src/i18n.js +0 -27
  76. package/src/index.ts +0 -4
  77. package/src/translations.js +0 -102
  78. package/stories/PlayerAccountPage.stories.js +0 -13
  79. package/tsconfig.json +0 -6
@@ -1,732 +0,0 @@
1
- <svelte:options tag={null} />
2
-
3
- <script lang="ts">
4
- import { onMount, tick } from 'svelte';
5
- import { getDevice } from 'rvhelper';
6
- import { _, addNewMessages, setLocale, setupI18n } from './i18n';
7
- import { TRANSLATIONS } from './translations';
8
-
9
- import '@everymatrix/player-account-menu';
10
- import '@everymatrix/player-account-notifications';
11
- import '@everymatrix/player-account-timeout';
12
- import '@everymatrix/player-account-self-exclusion';
13
- import '@everymatrix/player-account-closure';
14
- import '@everymatrix/player-account-gaming-limits';
15
- import '@everymatrix/player-active-bonuses';
16
- import '@everymatrix/player-profile-info';
17
- import '@everymatrix/player-change-password';
18
- import '@everymatrix/player-reality-check';
19
- import '@everymatrix/player-bonus-history';
20
- import '@everymatrix/player-deposit';
21
- import '@everymatrix/player-withdrawal';
22
- import '@everymatrix/player-pending-withdrawals';
23
- import '@everymatrix/player-transaction-history';
24
- import '@everymatrix/player-gaming-history';
25
- import '@everymatrix/player-account-betting-history';
26
- import '@everymatrix/player-account-gaming-limits-wrapper-2';
27
- import '@everymatrix/player-account-biometrics';
28
-
29
- export let cmsendpoint:string = '';
30
- export let env:string = '';
31
- export let customnotifications:string = '';
32
- export let playerid:string = '';
33
- export let session:string = '';
34
- export let endpoint:string = '';
35
- export let lang:string = '';
36
- export let operator:string = 'Everymatrix';
37
- export let supportemail:string = '';
38
- export let separatelimits:string = 'true';
39
- export let hasdefaultamount:string = 'false';
40
- export let userroles:string = '';
41
- export let simplepasswordvalidation:string = 'false';
42
- export let tablabels:string = '';
43
- export let historyenabled:string = '';
44
- export let deletelimit:string = '';
45
- export let limitsamount:string = '';
46
- export let limitsperiods:string = '';
47
- export let numberofentries:string = '';
48
- export let customcurrencysymbols:string = '';
49
- export let currency:string = '';
50
- export let apiversion:string = '';
51
- export let clientstyling:string = '';
52
- export let clientstylingurl:string = '';
53
- export let translationurl:string = '';
54
- export let custominputtextswitch:string = 'false'; // used by playzonbet for switching input field texts and validation for register and player profile widgets: security question, answer, error messages and validation
55
- export let gmversion:string = '';
56
- export let producttype:string = '';
57
- export let successurl:string = '';
58
- export let failurl:string = '';
59
- export let cancelurl:string = '';
60
- export let sportsurl:string = '';
61
- export let casinourl:string = '';
62
- export let contacturl:string = '';
63
- export let homeurl:string = '';
64
- export let depositurl:string = '';
65
- export let showcashierbonus:string = '';
66
- export let biometricsenabled:string = 'false';
67
- export let activepage:string = '';
68
- export let bonushistorystatus:string = 'closed,forfeited,released,expired';
69
- export let bonushistorytype:string = 'standard,freeround,freebet';
70
-
71
- setupI18n({ withLocale: 'en', translations: {}});
72
-
73
- let customStylingContainer:HTMLElement;
74
- let isLoading:boolean = false;
75
- let userAgent:string = window.navigator.userAgent;
76
- let isMobile:boolean = (getDevice(userAgent) === 'PC') ? false : true;
77
- let userId:string = '';
78
- let sessionId:string = '';
79
- let countrycode:string = '';
80
- let playercurrency: string = null;
81
- // limits variables
82
- let playerlimits: any = {};
83
- let depositlimit:any;
84
- let wageringlimit:any;
85
- let losslimit:any;
86
- let timelimit:any;
87
- let showsuccessnotification:boolean = false;
88
- let showdeletenotification:boolean = false;
89
- let errorPasswordChanged:string = '';
90
- let showErrorPasswordChanged:boolean = false;
91
- let selected:string;
92
- let ChangePasswordEvent: CustomEvent;
93
- let activeMenuItem:string = '/profile-info';
94
-
95
- const widgetPath = ['/profile-info',
96
- '/change-password',
97
- '/reality-check',
98
- '/timeout',
99
- '/account-closure',
100
- '/gaming-limits',
101
- '/self-exclusion',
102
- '/active-bonuses',
103
- '/bonus-history',
104
- '/gaming-history',
105
- '/deposit',
106
- '/withdrawal',
107
- '/pending-withdrawals',
108
- '/transaction-history',
109
- '/betting-history',
110
- '/limits',
111
- '/account-verification',
112
- '/cashier-deposit',
113
- '/cashier-withdrawal',
114
- '/transactions-history',
115
- '/biometrics'];
116
-
117
- const initialLoad = ():void => {
118
- userId = playerid;
119
- sessionId = session;
120
- getUserProfileInfo();
121
- setActivePage();
122
- }
123
-
124
- const setActivePage = ():void => {
125
- if(!activepage && !isMobile) { activepage = widgetPath[0]; }
126
-
127
- activeMenuItem = activepage;
128
- }
129
-
130
- const setActiveLanguage = ():void => {
131
- setLocale(lang);
132
- }
133
-
134
- const setTranslationUrl = ():void => {
135
- let url:string = translationurl;
136
-
137
- fetch(url).then((res:any) => res.json())
138
- .then((res) => {
139
- Object.keys(res).forEach((item:any):void => {
140
- addNewMessages(item, res[item]);
141
- });
142
- }).catch((err:any) => {
143
- console.log(err);
144
- });
145
- }
146
-
147
- Object.keys(TRANSLATIONS).forEach((item:any) => {
148
- addNewMessages(item, TRANSLATIONS[item]);
149
- }
150
- );
151
-
152
- const messageHandler = (e:any):void => {
153
- let url:URL;
154
- if (e.data) {
155
- switch(e.data.type) {
156
-
157
- case 'ChangeAccountPage':
158
- activepage = e.data.page.path;
159
-
160
- if(activepage == '/deposit'){
161
- //Analytics event
162
- if(typeof gtag == 'function'){
163
- gtag('event', 'GoToDeposit', {
164
- 'context': 'PlayerAccountController'
165
- });
166
- }
167
- }
168
-
169
- if(activepage == '/withdrawal'){
170
- //Analytics event
171
- if(typeof gtag == 'function'){
172
- gtag('event', 'GoToWithdrawal', {
173
- 'context': 'PlayerAccountController'
174
- });
175
- }
176
- }
177
-
178
- break;
179
-
180
- case 'PlayerAccountMenuActive':
181
- case 'GoToPreviousRoute':
182
- if (e.data.isMobile) {
183
- activepage = '';
184
- initialLoad();
185
- }
186
- break;
187
-
188
- case 'ChangePassword':
189
- sendChangePassword(e.data.userCurrentPassword, e.data.userNewPassword);
190
- break;
191
-
192
- case 'SetPlayerAccountTimeout':
193
- url = new URL(`/v2/player/${userId}/limits${gmversion === 'gm16' ? '/session' : ''}`, endpoint);
194
-
195
- let timeoutValue = e.data.timeoutSelected;
196
-
197
- let dataTimeout = {
198
- coolOff: {
199
- period: timeoutValue
200
- }
201
- };
202
- let setTimeout = {
203
- method: "PUT",
204
- headers: {
205
- 'X-SessionID': sessionId,
206
- 'Content-Type': "application/json",
207
- 'Accept': 'application/json',
208
- },
209
- body: JSON.stringify(dataTimeout)
210
- };
211
-
212
- fetch(url.href, setTimeout)
213
- .then((res:any) => {
214
- if (res.status == 200) {
215
- window.postMessage({ type: 'WidgetNotification', data: {
216
- type: 'success',
217
- message: $_('timeoutSuccess')
218
- }}, window.location.href);
219
- window.postMessage({ type: 'LogoutSuccessfull' }, window.location.href);
220
- } else {
221
- throw new Error('Failed to fetch')
222
- }
223
- }).catch((err) => console.error(err))
224
- break;
225
-
226
- case 'SetSelfExclusion':
227
- url = new URL(`/v2/player/${userId}/limits${gmversion === 'gm16' ? '/session' : ''}`, endpoint);
228
-
229
- let selfExclusionPeriod = e.data.selfExclusionPeriod;
230
- let selfExclusionExpiryDate = e.data.selfExclusionExpiryDate;
231
-
232
- let dataSelfExclusion = {
233
- selfExclusion: {
234
- period: selfExclusionPeriod,
235
- expiryDate: selfExclusionExpiryDate,
236
- selfExclusionReason: 'UserRequest',
237
- }
238
- };
239
- let setSelfExclusion = {
240
- method: "PUT",
241
- headers: {
242
- 'X-SessionID': sessionId,
243
- 'Content-Type': "application/json",
244
- 'Accept': 'application/json',
245
- },
246
- body: JSON.stringify(dataSelfExclusion)
247
- };
248
-
249
- fetch(url.href, setSelfExclusion)
250
- .then((res:any):void => {
251
- if (res.status == 200) {
252
- window.postMessage({ type: 'WidgetNotification', data: {
253
- type: 'success',
254
- message: $_('selfExclusionSuccess')
255
- }}, window.location.href);
256
- window.postMessage({ type: 'LogoutSuccessfull'}, window.location.href);
257
- } else {
258
- // ERROR
259
- }
260
- });
261
- break;
262
-
263
- case 'AccountClosure':
264
- url = new URL(`/v2/player/${userId}/limits${gmversion === 'gm16' ? '/session' : ''}`, endpoint)
265
-
266
- let accountClosureData = 'UserRequest';
267
- let accountClosureSelection = {
268
- selfExclusion: {
269
- period: "SelfExclusionPermanent",
270
- sendNotificationEmail: true,
271
- selfExclusionReason: accountClosureData
272
- }
273
- };
274
-
275
- let optionsAccountClosure = {
276
- method: "PUT",
277
- headers: {
278
- 'X-SessionID': sessionId,
279
- 'Content-Type': "application/json",
280
- 'Accept': 'application/json',
281
- },
282
- body: JSON.stringify(accountClosureSelection)
283
- };
284
-
285
- fetch(url.href, optionsAccountClosure)
286
- .then((res:any):void => {
287
- if (res.status == 200) {
288
- window.postMessage({ type: 'WidgetNotification', data: {
289
- type: 'success',
290
- message: $_('accountClosureSuccess')
291
- }}, window.location.href);
292
- window.postMessage({ type: 'LogoutSuccessfull'}, window.location.href);
293
- } else {
294
- // ERROR
295
- }
296
- });
297
- break;
298
-
299
- case 'UserSessionID':
300
- sessionId = e.data.session;
301
- userId = e.data.userid;
302
- getUserProfileInfo();
303
-
304
- break;
305
-
306
- case 'PlayerAccountGamingLimitsUpdate':
307
- url = new URL(`/v2/player/${userId}/limits`, endpoint);
308
-
309
- let limitsData = e.data.payload;
310
- let optionsEditLimits = {
311
- method: "PUT",
312
- headers: {
313
- 'X-SessionID': sessionId,
314
- 'Content-Type': "application/json",
315
- 'Accept': 'application/json',
316
- },
317
- body: JSON.stringify(limitsData)
318
- };
319
-
320
- fetch(url.href, optionsEditLimits)
321
- .then((res:any):void => {
322
- if (res.status == 200) {
323
- showsuccessnotification = true;
324
-
325
- window.postMessage({ type: 'WidgetNotification', data: {
326
- type: 'success',
327
- message: $_('limitsUpdateSuccess')
328
- }}, window.location.href);
329
- getGamingLimits(new URL(`/v2/player/${userId}/limits`, endpoint));
330
- } else {
331
- // ERROR
332
- }
333
- });
334
- break;
335
-
336
- case 'PlayerAccountGamingLimitDelete':
337
- let limitsDeleteData:any = e.data.limit ? e.data.limit : {};
338
- let deletedPeriodLimit:any;
339
-
340
- if (Array.isArray(limitsDeleteData)) {
341
- deletedPeriodLimit = limitsDeleteData.map((item) => item.period);
342
- } else {
343
- deletedPeriodLimit = limitsDeleteData.period;
344
- }
345
- let limitsCategoryTitle = e.data.name;
346
- let limitName:string = '';
347
-
348
- switch (limitsCategoryTitle) {
349
- case 'depositLimits':
350
- limitName = 'deposit';
351
- break;
352
-
353
- case 'cumulativeSessionLimits':
354
- limitName = 'cumulativeSession';
355
- break;
356
-
357
- case 'wageringLimit':
358
- limitName = 'wagering';
359
- break;
360
-
361
- case 'lossLimit':
362
- limitName = 'loss';
363
- break;
364
- }
365
-
366
- let deleteOptions = {
367
- method: "DELETE",
368
- headers: {
369
- 'X-SessionID': sessionId,
370
- },
371
- body: JSON.stringify(limitsDeleteData)
372
- };
373
-
374
- url = new URL(`/v2/player/${userId}/limits/${limitName}`, endpoint)
375
-
376
- //if single limit send string
377
- if (Array.isArray(deletedPeriodLimit)) {
378
- deletedPeriodLimit.forEach((item) => {
379
- url.searchParams.append('periods', item);
380
- });
381
- } else {
382
- url.searchParams.append('periods', deletedPeriodLimit);
383
- }
384
-
385
- fetch(url.href, deleteOptions)
386
- .then((res:any):void => {
387
- if (res.status == 200) {
388
- showdeletenotification = true;
389
- window.postMessage({ type: 'WidgetNotification', data: {
390
- type: 'success',
391
- message: $_('limitsDeleteSuccess')
392
- }}, window.location.href);
393
- } else {
394
- // ERROR
395
- }
396
- }).then((res:any):void => {
397
- getGamingLimits(new URL(`/v2/player/${userId}/limits`, endpoint));
398
- });
399
-
400
-
401
- break;
402
-
403
- case 'GamingLimitsConfirmChanges':
404
- getGamingLimits(new URL(`/v2/player/${userId}/limits`, endpoint));
405
- break;
406
-
407
- case 'CancelGamingLimitsChanges':
408
- getGamingLimits(new URL(`/v2/player/${userId}/limits`, endpoint));
409
- break;
410
- }
411
- }
412
- }
413
-
414
- const getUserProfileInfo = ():void => {
415
- let url:URL = new URL(`${endpoint}/v1/player/${userId}/profile`);
416
- let options = {
417
- method: "GET",
418
- headers: {
419
- 'X-SessionID': sessionId,
420
- }
421
- };
422
-
423
- fetch(url.href, options)
424
- .then((res:any) => { return res.json(); })
425
- .then((data:any) => {
426
- countrycode = data.country;
427
- playercurrency = data.currency;
428
-
429
- window.postMessage({ type: 'ProfileDetailsData', profileDetails: data }, window.location.href);
430
- }, (err:any) => {
431
- console.error(err);
432
- });
433
- }
434
-
435
- const sendChangePassword = async (playerCurrentPassword:string, playerNewPassword:string) => {
436
- let url:URL = new URL(`${endpoint}/v1/player/${userId}/password`)
437
- let data = {
438
- currentPassword: playerCurrentPassword,
439
- newPassword: playerNewPassword
440
- };
441
- let optionsChangePassword = {
442
- method: "POST",
443
- headers: {
444
- 'X-SessionID': sessionId,
445
- 'Content-Type': "application/json",
446
- 'Accept': 'application/json',
447
- },
448
- body: JSON.stringify(data)
449
- };
450
-
451
- let response:any = await fetch(url.href, optionsChangePassword);
452
-
453
- if (response.ok) {
454
- window.postMessage({ type: 'PasswordChangedSuccessfully' }, window.location.href);
455
- window.postMessage({ type: 'WidgetNotification', data: {
456
- type: 'success',
457
- message: $_('passwordChangedSuccess')
458
- }}, window.location.href);
459
-
460
- ChangePasswordEvent = new CustomEvent('ChangePassword', { detail: { userPassword: data.newPassword }});
461
- window.dispatchEvent(ChangePasswordEvent);
462
-
463
- } else {
464
- let dataResponse:any = await response.json();
465
- // Parsing GMCore message 'cuz it's stupid and it doesn't know how to send error messages in 2021 ffs
466
- // 2024 and still counting
467
- errorPasswordChanged = dataResponse.error.substring(dataResponse.error.indexOf('errorMessage') + 13, dataResponse.error.length);
468
- showErrorPasswordChanged = true;
469
- window.postMessage({ type: "ShowPasswordChangedError", showErrorPasswordChanged, errorPasswordChanged }, window.location.href);
470
- window.postMessage({ type: 'WidgetNotification', data: {
471
- type: 'error',
472
- message: errorPasswordChanged
473
- }}, window.location.href);
474
- }
475
- }
476
-
477
- const getGamingLimits = (url:URL):void => {
478
- if (showsuccessnotification === true) {
479
- setTimeout(() => {showsuccessnotification = false; }, 3000);
480
- } else if(showdeletenotification === true) {
481
- setTimeout(() => {showdeletenotification = false; }, 3000);
482
- }
483
-
484
- let options = {
485
- method: "GET",
486
- headers: {
487
- 'X-SessionID': sessionId,
488
- }
489
- };
490
-
491
- fetch(url.href, options)
492
- .then((res:any) => res.json())
493
- .then((data:any):void => {
494
- playerlimits = data;
495
- // add name property for info boxes
496
- if (Object.keys(playerlimits).length !== 0) {
497
- depositlimit = playerlimits.depositLimits ?? [];
498
- wageringlimit = playerlimits.wageringLimits ?? [];
499
- losslimit = playerlimits.lossLimits ?? [];
500
-
501
- if (playerlimits.hasOwnProperty('cumulativeSessionLimits')) {
502
- timelimit = playerlimits.timeLimit;
503
- timelimit = playerlimits.cumulativeSessionLimits.map((item) => {
504
- item.amount = item.minutes;
505
- return item;
506
- });
507
- } else {
508
- timelimit = [];
509
- }
510
-
511
- window.postMessage({ type: 'PlayerLimitsData', limits: {
512
- playercurrency,
513
- depositlimit,
514
- wageringlimit,
515
- losslimit,
516
- timelimit,
517
- showsuccessnotification,
518
- showdeletenotification,
519
- lang,
520
- }}, window.location.href);
521
-
522
- } else {
523
- depositlimit = [];
524
- wageringlimit = [];
525
- losslimit = [];
526
- timelimit = [];
527
- }
528
-
529
- tick();
530
- }, (err:any) => {
531
- console.error(err);
532
- });
533
- }
534
-
535
- const sendLimitsData = (e:any):void => {
536
- getGamingLimits(new URL(`/v2/player/${userId}/limits`, endpoint));
537
- }
538
-
539
- const setClientStyling = ():void => {
540
- let sheet = document.createElement('style');
541
- sheet.innerHTML = clientstyling;
542
- customStylingContainer.appendChild(sheet);
543
- }
544
-
545
- const setClientStylingURL = ():void => {
546
- let url:URL = new URL(clientstylingurl);
547
- let cssFile:HTMLElement = document.createElement('style');
548
-
549
- fetch(url.href)
550
- .then((res:any) => res.text())
551
- .then((data:any) => {
552
- cssFile.innerHTML = data
553
-
554
- setTimeout(() => { customStylingContainer.appendChild(cssFile) }, 1);
555
- });
556
- }
557
-
558
- onMount(() => {
559
- window.addEventListener('message', messageHandler, false);
560
-
561
- return () => {
562
- window.removeEventListener('message', messageHandler);
563
- }
564
- });
565
-
566
- $: lang && setActiveLanguage();
567
- $: cmsendpoint && endpoint && customnotifications && playerid && session && lang && env && userroles && initialLoad();
568
- $: depositlimit && wageringlimit && losslimit && timelimit;
569
- $: clientstyling && customStylingContainer && setClientStyling();
570
- $: clientstylingurl && customStylingContainer && setClientStylingURL();
571
- $: translationurl && setTranslationUrl();
572
- $: activepage && setActivePage();
573
- </script>
574
-
575
- <svelte:head>
576
- <script type="module" src="https://unpkg.com/@everymatrix/user-deposit-withdrawal"></script>
577
- <script type="module" src="https://unpkg.com/@everymatrix/player-kyc-verification"></script>
578
- <script type="module" src="https://unpkg.com/@everymatrix/user-transaction-history"></script>
579
- </svelte:head>
580
-
581
- <div bind:this={customStylingContainer}>
582
-
583
- {#if isLoading}
584
- <div class="ModalLoader"></div>
585
- {:else}
586
- <section class="PlayerAccountPage {isMobile ? 'PlayerAccountMobilePage' : ''}">
587
- {#if isMobile}
588
- {#if !activeMenuItem}
589
- <nav class="PlayerAccountMobile">
590
- <player-account-menu {endpoint} {session} {playerid} {cmsendpoint} {lang} {env} {translationurl} {userroles} {clientstyling} {clientstylingurl}></player-account-menu>
591
- <player-account-notifications {lang} {cmsendpoint} {env} {userroles} {customnotifications} {clientstyling} {clientstylingurl}></player-account-notifications>
592
- </nav>
593
- {:else}
594
- {#if activeMenuItem === widgetPath[0]}
595
- <player-profile-info userid={userId} sessionid={sessionId} {endpoint} {lang} {translationurl} {clientstyling} {clientstylingurl} {custominputtextswitch}></player-profile-info>
596
- {:else if activeMenuItem === widgetPath[1]}
597
- <player-change-password {simplepasswordvalidation} {translationurl} {lang} {clientstyling} {clientstylingurl}></player-change-password>
598
- {:else if activeMenuItem === widgetPath[2]}
599
- <player-reality-check {endpoint} {translationurl} {playerid} {session} {lang} {clientstyling} {clientstylingurl}></player-reality-check>
600
- {:else if activeMenuItem === widgetPath[3]}
601
- <player-account-timeout {lang} {operator} {supportemail} {translationurl} {clientstyling} {clientstylingurl}></player-account-timeout>
602
- {:else if activeMenuItem === widgetPath[4]}
603
- <player-account-closure {lang} {clientstyling} {clientstylingurl} {translationurl}></player-account-closure>
604
- {:else if activeMenuItem === widgetPath[5]}
605
- <player-account-gaming-limits use:sendLimitsData {playercurrency} {separatelimits} {translationurl} {clientstyling} {clientstylingurl}></player-account-gaming-limits>
606
- {:else if activeMenuItem === widgetPath[6]}
607
- <player-account-self-exclusion {lang} {operator} {supportemail} {clientstyling} {clientstylingurl} {translationurl}></player-account-self-exclusion>
608
- {:else if activeMenuItem === widgetPath[7]}
609
- <player-active-bonuses {endpoint} {session} {playerid} {lang} {translationurl} {playercurrency} {clientstyling} {clientstylingurl}></player-active-bonuses>
610
- {:else if activeMenuItem === widgetPath[8]}
611
- <player-bonus-history {bonushistorystatus} {bonushistorytype} {endpoint} {session} {playerid} {lang} {translationurl} {clientstyling} {clientstylingurl}></player-bonus-history>
612
- {:else if activeMenuItem === widgetPath[9]}
613
- <player-gaming-history {endpoint} {session} {playerid} {lang} {translationurl} {clientstyling} {clientstylingurl} {gmversion}></player-gaming-history>
614
- {:else if activeMenuItem === widgetPath[10]}
615
- <player-deposit {endpoint} {session} {playerid} {lang} {hasdefaultamount} {translationurl} {clientstyling} {clientstylingurl} {playercurrency}></player-deposit>
616
- {:else if activeMenuItem === widgetPath[11]}
617
- <player-withdrawal {endpoint} {session} {playerid} {lang} {hasdefaultamount} {translationurl} {clientstyling} {clientstylingurl} {playercurrency}></player-withdrawal>
618
- {:else if activeMenuItem === widgetPath[12]}
619
- <player-pending-withdrawals {endpoint} {session} {playerid} {lang} {translationurl} {clientstyling} {clientstylingurl}></player-pending-withdrawals>
620
- {:else if activeMenuItem === widgetPath[13]}
621
- <player-transaction-history {endpoint} {session} {playerid} {lang} {translationurl} {clientstyling} {clientstylingurl}></player-transaction-history>
622
- {:else if activeMenuItem === widgetPath[14]}
623
- <player-account-betting-history {endpoint} {session} {playerid} {lang} {translationurl} {clientstyling} {clientstylingurl}></player-account-betting-history>
624
- {:else if activeMenuItem === widgetPath[15]}
625
- <player-account-gaming-limits-wrapper-2 {endpoint} userid={playerid} {session} {lang} {tablabels} {historyenabled} {deletelimit} {limitsamount} {limitsperiods} {numberofentries} {customcurrencysymbols} {currency} {apiversion} {translationurl} {clientstyling} {clientstylingurl}></player-account-gaming-limits-wrapper-2>
626
- {:else if activeMenuItem === widgetPath[16]}
627
- <player-kyc-verification {endpoint} {session} user-id={playerid} language={lang} translation-url={translationurl} client-styling={clientstyling} client-styling-url={clientstylingurl}></player-kyc-verification>
628
- {:else if activeMenuItem === widgetPath[17] }
629
- <user-deposit-withdrawal {endpoint} type="deposit" channel="Mobile" language={lang} {translationurl} {currency} show-bonus-selection-input={showcashierbonus} product-type={producttype} user-id={playerid} {session} success-url={'https://' + window.location.hostname + '/' + lang + successurl} cancel-url={'https://' + window.location.hostname + '/' + lang + cancelurl} fail-url={'https://' + window.location.hostname + '/' + lang + failurl} sports-url={'https://' + window.location.hostname + '/' + lang + sportsurl} casino-url={'https://' + window.location.hostname + '/' + lang + casinourl} contact-url={'https://' + window.location.hostname + '/' + lang + contacturl} home-url={'https://' + window.location.hostname + '/' + lang + homeurl} deposit-url={'https://' + window.location.hostname + '/' + lang + depositurl} client-styling={clientstyling} client-styling-url={clientstylingurl}></user-deposit-withdrawal>
630
- {:else if activeMenuItem === widgetPath[18] }
631
- <user-deposit-withdrawal {endpoint} type="withdraw" channel="Mobile" language={lang} {translationurl} {currency} show-bonus-selection-input={showcashierbonus} product-type={producttype} user-id={playerid} {session} success-url={'https://' + window.location.hostname + '/' + lang + successurl} cancel-url={'https://' + window.location.hostname + '/' + lang + cancelurl} fail-url={'https://' + window.location.hostname + '/' + lang + failurl} sports-url={'https://' + window.location.hostname + '/' + lang + sportsurl} casino-url={'https://' + window.location.hostname + '/' + lang + casinourl} contact-url={'https://' + window.location.hostname + '/' + lang + contacturl} home-url={'https://' + window.location.hostname + '/' + lang + homeurl} deposit-url={'https://' + window.location.hostname + '/' + lang + depositurl} client-styling={clientstyling} client-styling-url={clientstylingurl}></user-deposit-withdrawal>
632
- {:else if activeMenuItem === widgetPath[19] }
633
- <user-transaction-history endpoint={endpoint} user-id={playerid} session={session} mobile={isMobile} translation-url={translationurl} language={lang}></user-transaction-history>
634
- {:else if activeMenuItem === widgetPath[20] }
635
- <player-account-biometrics {biometricsenabled} {lang} {clientstyling} {clientstylingurl} {translationurl}></player-account-biometrics>
636
- {/if}
637
- {/if}
638
- {:else}
639
- <nav>
640
- <player-account-menu {endpoint} {session} {playerid} {lang} {env} activemenuitem={activeMenuItem} {cmsendpoint} selecteditem={selected} {userroles} {clientstyling} {clientstylingurl}></player-account-menu>
641
- </nav>
642
- <main>
643
- {#if activeMenuItem === widgetPath[0]}
644
- <player-profile-info userid={userId} sessionid={sessionId} {endpoint} {lang} {translationurl} {clientstyling} {clientstylingurl} {custominputtextswitch}></player-profile-info>
645
- {:else if activeMenuItem === widgetPath[1]}
646
- <player-change-password {simplepasswordvalidation}{lang} {translationurl} {clientstyling} {clientstylingurl}></player-change-password>
647
- {:else if activeMenuItem === widgetPath[2]}
648
- <player-reality-check {endpoint} {translationurl} {playerid} {session} {lang} {clientstyling} {clientstylingurl}></player-reality-check>
649
- {:else if activeMenuItem === widgetPath[3]}
650
- <player-account-timeout {lang} {operator} {supportemail} {translationurl} {clientstyling} {clientstylingurl}></player-account-timeout>
651
- {:else if activeMenuItem === widgetPath[4]}
652
- <player-account-closure {lang} {clientstyling} {translationurl} {clientstylingurl}></player-account-closure>
653
- {:else if activeMenuItem == widgetPath[5]}
654
- <player-account-gaming-limits use:sendLimitsData {playercurrency} {translationurl} {separatelimits} {clientstyling} {clientstylingurl}></player-account-gaming-limits>
655
- {:else if activeMenuItem === widgetPath[6]}
656
- <player-account-self-exclusion {lang} {operator} {supportemail} {translationurl} {clientstyling} {clientstylingurl}></player-account-self-exclusion>
657
- {:else if activeMenuItem === widgetPath[7]}
658
- <player-active-bonuses {endpoint} {session} {playerid} {lang} {translationurl} {playercurrency} {clientstyling} {clientstylingurl}></player-active-bonuses>
659
- {:else if activeMenuItem === widgetPath[8]}
660
- <player-bonus-history {bonushistorystatus} {bonushistorytype} {endpoint} {session} {playerid} {lang} {translationurl} {clientstyling} {clientstylingurl}></player-bonus-history>
661
- {:else if activeMenuItem === widgetPath[9]}
662
- <player-gaming-history {endpoint} {session} {playerid} {lang} {translationurl} {clientstyling} {clientstylingurl} {gmversion}></player-gaming-history>
663
- {:else if activeMenuItem === widgetPath[10]}
664
- <player-deposit {endpoint} {session} {playerid} {lang} {hasdefaultamount} {translationurl} {clientstyling} {clientstylingurl} {playercurrency}></player-deposit>
665
- {:else if activeMenuItem === widgetPath[11]}
666
- <player-withdrawal {endpoint} {session} {playerid} {lang} {hasdefaultamount} {translationurl} {clientstyling} {clientstylingurl} {playercurrency}></player-withdrawal>
667
- {:else if activeMenuItem === widgetPath[12]}
668
- <player-pending-withdrawals {endpoint} {session} {playerid} {lang} {translationurl} {clientstyling} {clientstylingurl}></player-pending-withdrawals>
669
- {:else if activeMenuItem === widgetPath[13]}
670
- <player-transaction-history {endpoint} {session} {playerid} {lang} {translationurl} {clientstyling} {clientstylingurl}></player-transaction-history>
671
- {:else if activeMenuItem === widgetPath[14]}
672
- <player-account-betting-history {endpoint} {session} {playerid} {lang} {translationurl} {clientstyling} {clientstylingurl}></player-account-betting-history>
673
- {:else if activeMenuItem === widgetPath[15]}
674
- <player-account-gaming-limits-wrapper-2 {endpoint} userid={playerid} {session} {tablabels} {lang} {historyenabled} {deletelimit} {limitsamount} {limitsperiods} {numberofentries} {customcurrencysymbols} {currency} {apiversion} {translationurl} {clientstyling} {clientstylingurl}></player-account-gaming-limits-wrapper-2>
675
- {:else if activeMenuItem === widgetPath[16]}
676
- <player-kyc-verification {endpoint} {session} user-id={playerid} language={lang} translation-url={translationurl} client-styling={clientstyling} client-styling-url={clientstylingurl}></player-kyc-verification>
677
- {:else if activeMenuItem === widgetPath[17] }
678
- <user-deposit-withdrawal endpoint={endpoint} type="deposit" channel="Desktop" language={lang} {translationurl} {currency} show-bonus-selection-input={showcashierbonus} product-type={producttype} user-id={playerid} {session} success-url={'https://' + window.location.hostname + '/' + lang + successurl} cancel-url={'https://' + window.location.hostname + '/' + lang + cancelurl} fail-url={'https://' + window.location.hostname + '/' + lang + failurl} sports-url={'https://' + window.location.hostname + '/' + lang + sportsurl} casino-url={'https://' + window.location.hostname + '/' + lang + casinourl} contact-url={'https://' + window.location.hostname + '/' + lang + contacturl} home-url={'https://' + window.location.hostname + '/' + lang + homeurl} deposit-url={'https://' + window.location.hostname + '/' + lang + depositurl} client-styling={clientstyling} client-styling-url={clientstylingurl}></user-deposit-withdrawal>
679
- {:else if activeMenuItem === widgetPath[18] }
680
- <user-deposit-withdrawal endpoint={endpoint} type="withdraw" channel="Desktop" language={lang} {translationurl} {currency} show-bonus-selection-input={showcashierbonus} product-type={producttype} user-id={playerid} {session} success-url={'https://' + window.location.hostname + '/' + lang + successurl} cancel-url={'https://' + window.location.hostname + '/' + lang + cancelurl} fail-url={'https://' + window.location.hostname + '/' + lang + failurl} sports-url={'https://' + window.location.hostname + '/' + lang + sportsurl} casino-url={'https://' + window.location.hostname + '/' + lang + casinourl} contact-url={'https://' + window.location.hostname + '/' + lang + contacturl} home-url={'https://' + window.location.hostname + '/' + lang + homeurl} deposit-url={'https://' + window.location.hostname + '/' + lang + depositurl} client-styling={clientstyling} client-styling-url={clientstylingurl}></user-deposit-withdrawal>
681
- {:else if activeMenuItem === widgetPath[19] }
682
- <user-transaction-history endpoint={endpoint} user-id={playerid} session={session} mobile={isMobile} translation-url={translationurl} language={lang}></user-transaction-history>
683
- {/if}
684
- </main>
685
- <aside>
686
- <player-account-notifications {lang} {cmsendpoint} {env} {userroles} {customnotifications} {clientstyling} {clientstylingurl}></player-account-notifications>
687
- </aside>
688
- {/if}
689
- </section>
690
- {/if}
691
- </div>
692
-
693
- <style lang="scss">
694
-
695
-
696
-
697
- *, *::before, *::after, body {
698
- margin: 0;
699
- padding: 0;
700
- box-sizing: border-box;
701
- }
702
-
703
- .PlayerAccountPage {
704
- display: grid;
705
- width: 100%;
706
- grid-template-areas: "nav main aside";
707
- grid-template-rows: auto;
708
- grid-template-columns: 250px 1fr 230px;
709
- background: var(--emfe-w-pam-color-bg, var(--emfe-w-color-gray-50, #F9F8F8));
710
- padding-right: 30px;
711
- &.PlayerAccountMobilePage {
712
- display: block;
713
- background: var(--emfe-w-pam-color-bg, var(--emfe-w-color-gray-50, #F9F8F8));
714
- padding-right: 0px;
715
- }
716
- }
717
- .PlayerAccountPage > nav {
718
- grid-area: nav;
719
- color:red;
720
- background: var(--emfe-w-pam-color-nav-desktop-bg, var(--emfe-w-color-gray-300, #58586B));
721
- &.PlayerAccountMobile {
722
- background: var(--emfe-w-pam-color-nav-mobile-bg, var(--emfe-w-color-background, #07072A));
723
- color: var(--emfe-w-pam-typography-color-nav-bg, var(--emfe-w-color-contrast, #FFFFFF));
724
- }
725
- }
726
- .PlayerAccountPage > main {
727
- grid-area: main;
728
- }
729
- .PlayerAccountPage > aside {
730
- grid-area: aside;
731
- }
732
- </style>