@everymatrix/player-profile-info 1.0.16 → 1.1.0

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": "1.0.16",
3
+ "version": "1.1.0",
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": "526e9d4877d11a6372af0e39b2c9db7c8b640737"
39
+ "gitHead": "62036ada223f2b4f7b64d99a81ab2229ecba3cf1"
40
40
  }
@@ -13,8 +13,11 @@
13
13
  export let endpoint:string = '';
14
14
  export let lang:string = 'en';
15
15
  export let countrycode:string = 'IR';
16
+ export let clientstyling:string = '';
17
+ export let clientstylingurl:string = '';
16
18
  export let translationUrl:string = '';
17
19
 
20
+ let customStylingContainer:HTMLElement;
18
21
  let isLoading:boolean = true;
19
22
  let userAgent:string = window.navigator.userAgent;
20
23
  let isMobile:boolean = (getDevice(userAgent) === 'PC') ? false : true;
@@ -396,6 +399,25 @@
396
399
  setLocale(lang);
397
400
  }
398
401
 
402
+ const setClientStyling = ():void => {
403
+ let sheet:HTMLElement = document.createElement('style');
404
+ sheet.innerHTML = clientstyling;
405
+ customStylingContainer.appendChild(sheet);
406
+ }
407
+
408
+ const setClientStylingURL = ():void => {
409
+ let url:URL = new URL(clientstylingurl);
410
+ let cssFile:HTMLElement = document.createElement('style');
411
+
412
+ fetch(url.href)
413
+ .then((res:any) => res.text())
414
+ .then((data:any) => {
415
+ cssFile.innerHTML = data
416
+
417
+ setTimeout(() => { customStylingContainer.appendChild(cssFile) }, 1);
418
+ });
419
+ }
420
+
399
421
  onMount(() => {
400
422
  window.addEventListener('message', messageHandler, false);
401
423
 
@@ -420,173 +442,177 @@
420
442
  $: lang && setActiveLanguage();
421
443
  $: endpoint && countrycode && getCountriesList();
422
444
  $: endpoint && getPhoneCodes();
445
+ $: clientstylingurl && customStylingContainer && setClientStylingURL();
446
+ $: clientstyling && customStylingContainer && setClientStyling();
423
447
  $: translationUrl && setTranslationUrl();
424
448
  </script>
425
449
 
426
- {#if isLoading}
427
- <div class="ModalLoader" part="ModalLoader"></div>
428
- {:else}
429
- <form class="PlayerInfoWrapper {isMobile ? 'PlayerInfoWrapperMobile' : ''} {mediaQuery.matches && isMobile ? 'PlayerInfoWrapperTablet' : ''}" part="PlayerInfoWrapper {isMobile ? 'PlayerInfoWrapperMobile' : ''} {mediaQuery.matches && isMobile ? 'PlayerInfoWrapperTablet' : ''}">
430
-
431
- {#if isMobile}
432
- <div class="MenuReturnButton" part="MenuReturnButton" on:click={() => toggleScreen()}>
433
- <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 15 15"><defs><style>.aaa{fill:var(--emfe-w-color-primary, #D0046C);}</style></defs><g transform="translate(-20 -158)">
434
- <g transform="translate(20 158)">
435
- <path class="aaa" d="M7.5,0,6.136,1.364,11.3,6.526H0V8.474H11.3L6.136,13.636,7.5,15,15,7.5Z" transform="translate(15 15) rotate(180)"/>
436
- </g></g>
437
- </svg>
438
- <h2 class="MyAccountCategoryTitleMobile" part="MyAccountCategoryTitleMobile">{$_('playerProfile.title')}</h2>
439
- </div>
440
- {/if}
450
+ <div bind:this={customStylingContainer}>
451
+ {#if isLoading}
452
+ <div class="ModalLoader" part="ModalLoader"></div>
453
+ {:else}
454
+ <form class="PlayerInfoWrapper {isMobile ? 'PlayerInfoWrapperMobile' : ''} {mediaQuery.matches && isMobile ? 'PlayerInfoWrapperTablet' : ''}" part="PlayerInfoWrapper {isMobile ? 'PlayerInfoWrapperMobile' : ''} {mediaQuery.matches && isMobile ? 'PlayerInfoWrapperTablet' : ''}">
455
+
456
+ {#if isMobile}
457
+ <div class="MenuReturnButton" part="MenuReturnButton" on:click={() => toggleScreen()}>
458
+ <svg xmlns="http://www.w3.org/2000/svg" width="15" height="15" viewBox="0 0 15 15"><defs><style>.aaa{fill:var(--emfe-w-color-primary, #D0046C);}</style></defs><g transform="translate(-20 -158)">
459
+ <g transform="translate(20 158)">
460
+ <path class="aaa" d="M7.5,0,6.136,1.364,11.3,6.526H0V8.474H11.3L6.136,13.636,7.5,15,15,7.5Z" transform="translate(15 15) rotate(180)"/>
461
+ </g></g>
462
+ </svg>
463
+ <h2 class="MyAccountCategoryTitleMobile" part="MyAccountCategoryTitleMobile">{$_('playerProfile.title')}</h2>
464
+ </div>
465
+ {/if}
441
466
 
442
- <h2 class="MyAccountCategoryTitle {isMobile ? 'MyAccountCategoryTitleNone' : ''}" part="MyAccountCategoryTitle {isMobile ? 'MyAccountCategoryTitleNone' : ''}">{$_('playerProfile.title')}</h2>
467
+ <h2 class="MyAccountCategoryTitle {isMobile ? 'MyAccountCategoryTitleNone' : ''}" part="MyAccountCategoryTitle {isMobile ? 'MyAccountCategoryTitleNone' : ''}">{$_('playerProfile.title')}</h2>
443
468
 
444
- <div class="PlayerNotificationsHeader" part="PlayerNotificationsHeader">
445
- <h3>{$_('playerProfile.personalDetails')}</h3>
446
- </div>
447
- <section class="PlayerDetailsContent" part="PlayerDetailsContent">
448
- <div class="PlayerInfoBox" part="PlayerInfoBox">
449
- <label>{$_('playerProfile.userName')}</label>
450
- <input type="text" class="FieldDisabled" part="FieldDisabled" value={username} readonly />
469
+ <div class="PlayerNotificationsHeader" part="PlayerNotificationsHeader">
470
+ <h3>{$_('playerProfile.personalDetails')}</h3>
451
471
  </div>
452
- <div class="PlayerInfoBox {invalidMobile ? 'InvalidField' : ''}" part="PlayerInfoBox {invalidMobile ? 'InvalidField' : ''}">
453
- <label>{$_('playerProfile.userPhone')}</label>
454
- <div class="PlayerPhoneNumber" part="PlayerPhoneNumber">
455
- <select bind:value={playerPrefix} on:change={() => checkForChanges()}>
456
- {#each prefixesArray as pref}
457
- {#if pref.Prefix === initialValuesArray.mobiePrefix}
458
- <option selected>{pref.Prefix}</option>
459
- {:else}
460
- <option>{pref.Prefix}</option>
461
- {/if}
462
- {/each}
463
- </select>
464
- <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()}/>
472
+ <section class="PlayerDetailsContent" part="PlayerDetailsContent">
473
+ <div class="PlayerInfoBox" part="PlayerInfoBox">
474
+ <label>{$_('playerProfile.userName')}</label>
475
+ <input type="text" class="FieldDisabled" part="FieldDisabled" value={username} readonly />
465
476
  </div>
466
- {#if invalidMobile}
467
- <p class="InvalidInput" part="InvalidInput">{$_('playerProfile.userPhoneError')}</p>
468
- {/if}
469
- </div>
470
- <div class="PlayerInfoBox {invalidSecurityQuestion ? 'InvalidField' : ''}" part="PlayerInfoBox {invalidSecurityQuestion ? 'InvalidField' : ''}">
471
- <label>{$_('playerProfile.securityQuestion')}</label>
472
- <input type="text" bind:value={playerQuestion} on:keyup={() => checkForChanges()} on:blur={validateSecurityQuestion} placeholder={noPlayerData ? securityQuestion : ''} />
473
- {#if invalidSecurityQuestion}
474
- <p class="InvalidInput" part="InvalidInput">{$_('playerProfile.securityQuestionError')}</p>
475
- {/if}
476
- </div>
477
- <div class="PlayerInfoBox {invalidSecurityAnswer ? 'InvalidField' : ''}" part="PlayerInfoBox {invalidSecurityAnswer ? 'InvalidField' : ''}">
478
- <label>{$_('playerProfile.securityAnswer')}</label>
479
- <input type="text" bind:value={playerAnswer} on:keyup={() => checkForChanges()} on:blur={validateSecurityAnswer} placeholder={noPlayerData ? securityAnswer : ''} />
480
- {#if invalidSecurityAnswer}
481
- <p class="InvalidInput" part="InvalidInput">{$_('playerProfile.securityAnswerError')}</p>
482
- {/if}
483
- </div>
484
- <div class="PlayerInfoBox" part="PlayerInfoBox">
485
- <label>{$_('playerProfile.userEmail')}</label>
486
- <input type="email" class="FieldDisabled" part="FieldDisabled" value={email} readonly />
487
- </div>
488
- <div class="PlayerInfoBox" part="PlayerInfoBox">
489
- <label>{$_('playerProfile.dateOfBirth')}</label>
490
- <input type="text" class="FieldDisabled" part="FieldDisabled" value={birth} readonly />
491
- </div>
492
- <div class="PlayerInfoBox" part="PlayerInfoBox">
493
- <label>{$_('playerProfile.firstName')}</label>
494
- <input type="text" class="FieldDisabled" part="FieldDisabled" value={firstname} readonly />
495
- </div>
496
- <div class="PlayerInfoBox" part="PlayerInfoBox">
497
- <label>{$_('playerProfile.lastName')}</label>
498
- <input type="text" class="FieldDisabled" part="FieldDisabled" value={lastname} readonly />
499
- </div>
500
- <div class="PlayerInfoBox" part="PlayerInfoBox">
501
- <label>{$_('playerProfile.userTitle')}</label>
502
- <input type="text" class="FieldDisabled" part="FieldDisabled" value={userTitles} readonly />
503
- </div>
504
- <div class="PlayerInfoBox" part="PlayerInfoBox">
505
- <label>{$_('playerProfile.currency')}</label>
506
- <input type="text" class="FieldDisabled" part="FieldDisabled" value={currency} readonly />
507
- </div>
508
- </section>
509
-
510
- <div class="PlayerLocationHeader" part="PlayerLocationHeader">
511
- <h3>{$_('playerProfile.locationDetails')}</h3>
512
- </div>
513
- <section class="PlayerLocationContent" part="PlayerLocationContent">
514
- <div class="PlayerInfoBox" part="PlayerInfoBox">
515
- <label>{$_('playerProfile.userCountry')}</label>
516
- <input type="text" class="PlayerCountry FieldDisabled" part="PlayerCountry FieldDisabled" placeholder={countrycode} value={selectedCountry.Name} readonly />
517
- </div>
518
- <div class="PlayerInfoBox {invalidCity ? 'InvalidField' : ''}" part="PlayerInfoBox {invalidCity ? 'InvalidField' : ''}">
519
- <label>{$_('playerProfile.userCity')}</label>
520
- <input bind:this={playerCity} type="text" on:blur={validateCity} on:keyup={() => checkForChanges()} placeholder={noPlayerData ? city : ''} value={noPlayerData ? '' : initialValuesArray.city} />
521
- {#if invalidCity}
522
- <p class="InvalidInput" part="InvalidInput">{$_('playerProfile.userCityError')}</p>
523
- {/if}
524
- </div>
525
- <div class="PlayerInfoBox {invalidAddress ? 'InvalidField' : ''}" part="PlayerInfoBox {invalidAddress ? 'InvalidField' : ''}">
526
- <label>{$_('playerProfile.userAddress')}</label>
527
- <input bind:this={playerAddress} placeholder={address1} type="text" on:blur={validateAddress} on:keyup={() => checkForChanges()} value={noPlayerData ? '' : initialValuesArray.address} />
528
- {#if invalidAddress}
529
- <p class="InvalidInput" part="InvalidInput">{$_('playerProfile.userAddressError')}</p>
530
- {/if}
531
- </div>
532
- <div class="PlayerInfoBox {invalidPostalCode ? 'InvalidField' : ''}" part="PlayerInfoBox {invalidPostalCode ? 'InvalidField' : ''}">
533
- <label>{$_('playerProfile.userPostalCode')}</label>
534
- <input bind:this={playerPostalCode} type="text" on:blur={validatePostalCode} on:keyup={() => checkForChanges()} placeholder={noPlayerData ? postalCode : ''} value={noPlayerData ? '' : initialValuesArray.postalCode} />
535
- {#if invalidPostalCode}
536
- <p class="InvalidInput" part="InvalidInput">{$_('playerProfile.userPostalCodeError')}</p>
537
- {/if}
538
- </div>
539
- </section>
477
+ <div class="PlayerInfoBox {invalidMobile ? 'InvalidField' : ''}" part="PlayerInfoBox {invalidMobile ? 'InvalidField' : ''}">
478
+ <label>{$_('playerProfile.userPhone')}</label>
479
+ <div class="PlayerPhoneNumber" part="PlayerPhoneNumber">
480
+ <select bind:value={playerPrefix} on:change={() => checkForChanges()}>
481
+ {#each prefixesArray as pref}
482
+ {#if pref.Prefix === initialValuesArray.mobiePrefix}
483
+ <option selected>{pref.Prefix}</option>
484
+ {:else}
485
+ <option>{pref.Prefix}</option>
486
+ {/if}
487
+ {/each}
488
+ </select>
489
+ <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()}/>
490
+ </div>
491
+ {#if invalidMobile}
492
+ <p class="InvalidInput" part="InvalidInput">{$_('playerProfile.userPhoneError')}</p>
493
+ {/if}
494
+ </div>
495
+ <div class="PlayerInfoBox {invalidSecurityQuestion ? 'InvalidField' : ''}" part="PlayerInfoBox {invalidSecurityQuestion ? 'InvalidField' : ''}">
496
+ <label>{$_('playerProfile.securityQuestion')}</label>
497
+ <input type="text" bind:value={playerQuestion} on:keyup={() => checkForChanges()} on:blur={validateSecurityQuestion} placeholder={noPlayerData ? securityQuestion : ''} />
498
+ {#if invalidSecurityQuestion}
499
+ <p class="InvalidInput" part="InvalidInput">{$_('playerProfile.securityQuestionError')}</p>
500
+ {/if}
501
+ </div>
502
+ <div class="PlayerInfoBox {invalidSecurityAnswer ? 'InvalidField' : ''}" part="PlayerInfoBox {invalidSecurityAnswer ? 'InvalidField' : ''}">
503
+ <label>{$_('playerProfile.securityAnswer')}</label>
504
+ <input type="text" bind:value={playerAnswer} on:keyup={() => checkForChanges()} on:blur={validateSecurityAnswer} placeholder={noPlayerData ? securityAnswer : ''} />
505
+ {#if invalidSecurityAnswer}
506
+ <p class="InvalidInput" part="InvalidInput">{$_('playerProfile.securityAnswerError')}</p>
507
+ {/if}
508
+ </div>
509
+ <div class="PlayerInfoBox" part="PlayerInfoBox">
510
+ <label>{$_('playerProfile.userEmail')}</label>
511
+ <input type="email" class="FieldDisabled" part="FieldDisabled" value={email} readonly />
512
+ </div>
513
+ <div class="PlayerInfoBox" part="PlayerInfoBox">
514
+ <label>{$_('playerProfile.dateOfBirth')}</label>
515
+ <input type="text" class="FieldDisabled" part="FieldDisabled" value={birth} readonly />
516
+ </div>
517
+ <div class="PlayerInfoBox" part="PlayerInfoBox">
518
+ <label>{$_('playerProfile.firstName')}</label>
519
+ <input type="text" class="FieldDisabled" part="FieldDisabled" value={firstname} readonly />
520
+ </div>
521
+ <div class="PlayerInfoBox" part="PlayerInfoBox">
522
+ <label>{$_('playerProfile.lastName')}</label>
523
+ <input type="text" class="FieldDisabled" part="FieldDisabled" value={lastname} readonly />
524
+ </div>
525
+ <div class="PlayerInfoBox" part="PlayerInfoBox">
526
+ <label>{$_('playerProfile.userTitle')}</label>
527
+ <input type="text" class="FieldDisabled" part="FieldDisabled" value={userTitles} readonly />
528
+ </div>
529
+ <div class="PlayerInfoBox" part="PlayerInfoBox">
530
+ <label>{$_('playerProfile.currency')}</label>
531
+ <input type="text" class="FieldDisabled" part="FieldDisabled" value={currency} readonly />
532
+ </div>
533
+ </section>
540
534
 
541
- {#if showEmail || showSMS}
542
- <div class="PlayerNotificationsHeader" part="PlayerNotificationsHeader">
543
- <h3>{$_('playerProfile.userNotifications')}</h3>
535
+ <div class="PlayerLocationHeader" part="PlayerLocationHeader">
536
+ <h3>{$_('playerProfile.locationDetails')}</h3>
544
537
  </div>
545
- <section class="PlayerNotificationsCheckboxArea" part="PlayerNotificationsCheckboxArea">
546
- {#if showSMS}
547
- <div class="PlayerNotificationBox" part="PlayerNotificationBox">
548
- <label for="SMSNotification">
549
- <input bind:checked={giveConsentSMS} on:change={checkForChanges} type="checkbox" id="SMSNotification" name="Enable SMS notifications" />
550
- <span class="Checkmark" part="Checkmark"></span>
551
- <span>{$_('playerProfile.userSMSNotification')}</span>
552
- </label>
553
- </div>
554
- {/if}
555
- {#if showEmail}
538
+ <section class="PlayerLocationContent" part="PlayerLocationContent">
539
+ <div class="PlayerInfoBox" part="PlayerInfoBox">
540
+ <label>{$_('playerProfile.userCountry')}</label>
541
+ <input type="text" class="PlayerCountry FieldDisabled" part="PlayerCountry FieldDisabled" placeholder={countrycode} value={selectedCountry.Name} readonly />
542
+ </div>
543
+ <div class="PlayerInfoBox {invalidCity ? 'InvalidField' : ''}" part="PlayerInfoBox {invalidCity ? 'InvalidField' : ''}">
544
+ <label>{$_('playerProfile.userCity')}</label>
545
+ <input bind:this={playerCity} type="text" on:blur={validateCity} on:keyup={() => checkForChanges()} placeholder={noPlayerData ? city : ''} value={noPlayerData ? '' : initialValuesArray.city} />
546
+ {#if invalidCity}
547
+ <p class="InvalidInput" part="InvalidInput">{$_('playerProfile.userCityError')}</p>
548
+ {/if}
549
+ </div>
550
+ <div class="PlayerInfoBox {invalidAddress ? 'InvalidField' : ''}" part="PlayerInfoBox {invalidAddress ? 'InvalidField' : ''}">
551
+ <label>{$_('playerProfile.userAddress')}</label>
552
+ <input bind:this={playerAddress} placeholder={address1} type="text" on:blur={validateAddress} on:keyup={() => checkForChanges()} value={noPlayerData ? '' : initialValuesArray.address} />
553
+ {#if invalidAddress}
554
+ <p class="InvalidInput" part="InvalidInput">{$_('playerProfile.userAddressError')}</p>
555
+ {/if}
556
+ </div>
557
+ <div class="PlayerInfoBox {invalidPostalCode ? 'InvalidField' : ''}" part="PlayerInfoBox {invalidPostalCode ? 'InvalidField' : ''}">
558
+ <label>{$_('playerProfile.userPostalCode')}</label>
559
+ <input bind:this={playerPostalCode} type="text" on:blur={validatePostalCode} on:keyup={() => checkForChanges()} placeholder={noPlayerData ? postalCode : ''} value={noPlayerData ? '' : initialValuesArray.postalCode} />
560
+ {#if invalidPostalCode}
561
+ <p class="InvalidInput" part="InvalidInput">{$_('playerProfile.userPostalCodeError')}</p>
562
+ {/if}
563
+ </div>
564
+ </section>
565
+
566
+ {#if showEmail || showSMS}
567
+ <div class="PlayerNotificationsHeader" part="PlayerNotificationsHeader">
568
+ <h3>{$_('playerProfile.userNotifications')}</h3>
569
+ </div>
570
+ <section class="PlayerNotificationsCheckboxArea" part="PlayerNotificationsCheckboxArea">
571
+ {#if showSMS}
572
+ <div class="PlayerNotificationBox" part="PlayerNotificationBox">
573
+ <label for="SMSNotification">
574
+ <input bind:checked={giveConsentSMS} on:change={checkForChanges} type="checkbox" id="SMSNotification" name="Enable SMS notifications" />
575
+ <span class="Checkmark" part="Checkmark"></span>
576
+ <span>{$_('playerProfile.userSMSNotification')}</span>
577
+ </label>
578
+ </div>
579
+ {/if}
580
+ {#if showEmail}
581
+ <div class="PlayerNotificationBox" part="PlayerNotificationBox">
582
+ <label for="EmailNotification">
583
+ <input bind:checked={giveConsentEmail} on:change={checkForChanges} type="checkbox" id="EmailNotification" name="Enable Emails" />
584
+ <span class="Checkmark" part="Checkmark"></span>
585
+ <span>{$_('playerProfile.userEmailNotification')}</span>
586
+ </label>
587
+ </div>
588
+ {/if}
589
+ </section>
590
+ {/if}
591
+ {#if isOnNative}
592
+ <div class="PlayerNotificationsHeader" part="PlayerNotificationsHeader">
593
+ <h3>{$_('playerProfile.userAppSettings')}</h3>
594
+ </div>
595
+ <section class="PlayerNotificationsCheckboxArea" part="PlayerNotificationsCheckboxArea">
556
596
  <div class="PlayerNotificationBox" part="PlayerNotificationBox">
557
- <label for="EmailNotification">
558
- <input bind:checked={giveConsentEmail} on:change={checkForChanges} type="checkbox" id="EmailNotification" name="Enable Emails" />
597
+ <label for="Biometrics">
598
+ <input bind:checked={biometricsSelection} on:change={checkForChanges} type="checkbox" id="BiometricsEnabled" name="Biometric Enabled" />
559
599
  <span class="Checkmark" part="Checkmark"></span>
560
- <span>{$_('playerProfile.userEmailNotification')}</span>
600
+ <span>{$_('playerProfile.userBiometrics')}</span>
561
601
  </label>
562
602
  </div>
563
- {/if}
564
- </section>
565
- {/if}
566
- {#if isOnNative}
567
- <div class="PlayerNotificationsHeader" part="PlayerNotificationsHeader">
568
- <h3>{$_('playerProfile.userAppSettings')}</h3>
569
- </div>
570
- <section class="PlayerNotificationsCheckboxArea" part="PlayerNotificationsCheckboxArea">
571
- <div class="PlayerNotificationBox" part="PlayerNotificationBox">
572
- <label for="Biometrics">
573
- <input bind:checked={biometricsSelection} on:change={checkForChanges} type="checkbox" id="BiometricsEnabled" name="Biometric Enabled" />
574
- <span class="Checkmark" part="Checkmark"></span>
575
- <span>{$_('playerProfile.userBiometrics')}</span>
576
- </label>
577
- </div>
578
- </section>
579
- {/if}
580
- <section class="PlayerDetailsButtonsArea {isMobile ? 'PlayerDetailsButtonsAreaMobile' : ''}" part="PlayerDetailsButtonsArea {isMobile ? 'PlayerDetailsButtonsAreaMobile' : ''}">
581
- <button class="PlayerDetailsSaveButton {differencesExist && isValid ? '' : 'PlayerButtonDisabled'}" part="PlayerDetailsSaveButton {differencesExist && isValid ? '' : 'PlayerButtonDisabled'}" on:click={(e) => updatePlayerInfo(e)}>{$_('playerProfile.userProfileSaveChanges')}</button>
582
- </section>
583
- {#if showConfirmSave}
584
- <section class="PlayerDetailsConfirmSave" part="PlayerDetailsConfirmSave">
585
- <p class="PlayerDetailsConfirmSaveText" part="PlayerDetailsConfirmSaveText">{$_('playerProfile.userProfileConfirmationMessage')}</p>
603
+ </section>
604
+ {/if}
605
+ <section class="PlayerDetailsButtonsArea {isMobile ? 'PlayerDetailsButtonsAreaMobile' : ''}" part="PlayerDetailsButtonsArea {isMobile ? 'PlayerDetailsButtonsAreaMobile' : ''}">
606
+ <button class="PlayerDetailsSaveButton {differencesExist && isValid ? '' : 'PlayerButtonDisabled'}" part="PlayerDetailsSaveButton {differencesExist && isValid ? '' : 'PlayerButtonDisabled'}" on:click={(e) => updatePlayerInfo(e)}>{$_('playerProfile.userProfileSaveChanges')}</button>
586
607
  </section>
608
+ {#if showConfirmSave}
609
+ <section class="PlayerDetailsConfirmSave" part="PlayerDetailsConfirmSave">
610
+ <p class="PlayerDetailsConfirmSaveText" part="PlayerDetailsConfirmSaveText">{$_('playerProfile.userProfileConfirmationMessage')}</p>
611
+ </section>
612
+ {/if}
613
+ </form>
587
614
  {/if}
588
- </form>
589
- {/if}
615
+ </div>
590
616
 
591
617
  <style lang="scss">
592
618