@everymatrix/casino-header-controller 1.0.16 → 1.0.69

Sign up to get free protection for your applications and to get access to all the features.
@@ -1,759 +0,0 @@
1
- <svelte:options tag={null} />
2
-
3
- <script lang="ts">
4
- import { onMount } from "svelte";
5
- import { isMobile, getDevice } from 'rvhelper';
6
- import { _, addNewMessages, setLocale, setupI18n } from './i18n';
7
- import { CasinoHeaderController } from './translations';
8
-
9
- import '@everymatrix/casino-slider';
10
- import '@everymatrix/casino-hamburger-menu';
11
- import '@everymatrix/player-account-balance-modal';
12
- import everymatrixLogo from './images/everymatrix-logo-white.png';
13
-
14
- export let session:string = '';
15
- export let userid:string = '';
16
- export let endpoint:string = '';
17
- export let cmsendpoint:string = '';
18
- export let cmsenv:string = 'stage';
19
- export let lang:string = 'en';
20
- export let languageslist:string = 'en, ro';
21
- export let activecategory:string = '';
22
- export let translationUrl:string = '';
23
-
24
- export let operatorid:string = '';
25
- export let pagetag:string = '';
26
- export let positiontag:string = '';
27
-
28
- export let actionevent:string = '';
29
-
30
- export let userroles:string = '';
31
- export let showsubgroups:string = 'false';
32
- export let clientstyling:string = '';
33
- export let clientstylingurl:string = '';
34
-
35
- let activeIndex:string;
36
- let identity:string = "HeaderMenu";
37
- let customStylingContainer:HTMLElement;
38
-
39
- setupI18n({ withLocale: 'en', translations: {}});
40
-
41
- const setTranslationUrl = ():void => {
42
- let url:string = translationUrl;
43
-
44
- fetch(url).then((res:any) => res.json())
45
- .then((res) => {
46
- Object.keys(res).forEach((item:any):void => {
47
- addNewMessages(item, res[item]);
48
- });
49
- }).catch((err:any) => {
50
- console.log(err);
51
- });
52
- }
53
-
54
-
55
- Object.keys(CasinoHeaderController).forEach((item:any) => {
56
- addNewMessages(item, CasinoHeaderController[item]);
57
- });
58
-
59
- const genericIcon:string = `<svg version="1.1" fill="#fff" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" style="width: 30px; color: #fff;" x="0px" y="0px"
60
- viewBox="0 0 384.971 384.971" style="enable-background:new 0 0 384.971 384.971;" xml:space="preserve">
61
- <path style="color: var(--emfe-w-color-white, #FFFFFF)" d="M180.455,360.91H24.061V24.061h156.394c6.641,0,12.03-5.39,12.03-12.03s-5.39-12.03-12.03-12.03H12.03
62
- C5.39,0.001,0,5.39,0,12.031V372.94c0,6.641,5.39,12.03,12.03,12.03h168.424c6.641,0,12.03-5.39,12.03-12.03
63
- C192.485,366.299,187.095,360.91,180.455,360.91z"/>
64
- <path style="color: var(--emfe-w-color-white, #FFFFFF)" d="M381.481,184.088l-83.009-84.2c-4.704-4.752-12.319-4.74-17.011,0c-4.704,4.74-4.704,12.439,0,17.179l62.558,63.46H96.279
65
- c-6.641,0-12.03,5.438-12.03,12.151c0,6.713,5.39,12.151,12.03,12.151h247.74l-62.558,63.46c-4.704,4.752-4.704,12.439,0,17.179
66
- c4.704,4.752,12.319,4.752,17.011,0l82.997-84.2C386.113,196.588,386.161,188.756,381.481,184.088z"/>
67
- </svg>`;
68
-
69
- let mainMenuArray:Array<any> = [];
70
- let secondaryMenuArray:Array<any> = [];
71
- let selectedLanguage:string = '';
72
- let hamburgerURL:URL;
73
- let headerURL:URL;
74
- let logoURL:URL;
75
- let isLoading:boolean = true;
76
- let logoFromCms:boolean = false;
77
-
78
- let mobileView:boolean = false;
79
- let userAgent:string = window.navigator.userAgent;
80
- let isLoggedIn:boolean = false;
81
- let playerID:string = '';
82
- let sessionID:string = '';
83
- let loginActive:boolean = true;
84
- let language:string = '';
85
- let languagesArray:Array<string> = [];
86
- let hamburgerMenuActive:boolean = false;
87
- let logoPath:string = '';
88
-
89
- const menuAction = (data: any) => {
90
- switch (data) {
91
- case 'login':
92
- loginActive = true;
93
- window.postMessage({type: 'OpenLoginRegisterModal', transition: 'Login' }, window.location.href);
94
-
95
- //Analytics event
96
- if(typeof gtag == 'function'){
97
- gtag('event', 'OpenLoginModal', {
98
- 'context': 'HeaderController'
99
- });
100
- }
101
- break;
102
-
103
- case 'register':
104
- loginActive = false;
105
- window.postMessage({type: 'OpenLoginRegisterModal', transition: 'Register'}, window.location.href);
106
-
107
- //Analytics event
108
- if(typeof gtag == 'function'){
109
- gtag('event', 'OpenRegisterModal', {
110
- 'context': 'HeaderController'
111
- });
112
- }
113
- break;
114
-
115
- case 'lobby':
116
- window.postMessage({type: 'GoToHomepage'}, window.location.href);
117
- break;
118
-
119
- case 'myaccount':
120
- window.postMessage({type: 'PlayerAccountMenuActive', isMobile: isMobile(userAgent)}, window.location.href);
121
- break;
122
-
123
- case 'deposit':
124
- window.postMessage({type: 'GoToDeposit'}, window.location.href);
125
-
126
- //Analytics event
127
- if(typeof gtag == 'function'){
128
- gtag('event', 'GoToDeposit', {
129
- 'context': 'HeaderController'
130
- });
131
- }
132
- break;
133
-
134
- case 'language':
135
- window.postMessage({type: 'LanguageChanged', selectedLanguage}, window.location.href);
136
- break;
137
- }
138
- }
139
-
140
- const toggleMenu = () => {
141
- hamburgerMenuActive = true;
142
- window.postMessage({type: 'OpenHamburgerMenuModal'}, window.location.href);
143
- }
144
-
145
- const messageHandler = (e: any) => {
146
- if (e.data) {
147
- switch (e.data.type) {
148
- case 'UserSessionID':
149
- playerID = e.data.userid;
150
- sessionID = e.data.session;
151
- isLoggedIn = true;
152
- break;
153
-
154
- case 'CloseHamburgerMenu':
155
- window.postMessage({ type: 'EnableScroll'}, window.location.href);
156
- if (e.data.showhamburger) {
157
- hamburgerMenuActive = false;
158
- }
159
- break;
160
-
161
- case 'LogoutSuccessfull':
162
- isLoggedIn = false;
163
- break;
164
-
165
- case 'LanguageChanged':
166
- createCMSUrls();
167
- getHeaderMenusData(headerURL);
168
- break;
169
- }
170
- }
171
- }
172
-
173
- const setSession = () => {
174
- isLoggedIn = true;
175
- sessionID = session;
176
- }
177
-
178
- const createCMSUrls = () => {
179
- headerURL = new URL(`${cmsendpoint}/${selectedLanguage.toLowerCase()}/menu`)
180
- hamburgerURL = new URL(`${cmsendpoint}/${selectedLanguage.toLowerCase()}/hamburger-menu`);
181
- logoURL = new URL(`${cmsendpoint}/${selectedLanguage.toLowerCase()}/op-options/style`);
182
-
183
- let device = getDevice(userAgent)
184
-
185
- headerURL.searchParams.append('env', cmsenv);
186
- headerURL.searchParams.append('language', selectedLanguage.toLowerCase());
187
- //headerURL.searchParams.append('platform', 'dk');
188
- headerURL.searchParams.append('userRoles', userroles);
189
-
190
- if(device){
191
- if(device === 'PC'){
192
- hamburgerURL.searchParams.append('device', 'dk')
193
- headerURL.searchParams.append('device', 'dk')
194
- } else if(device === 'iPad' || device === 'iPhone') {
195
- hamburgerURL.searchParams.append('device', 'ios')
196
- headerURL.searchParams.append('device', 'ios')
197
- } else {
198
- hamburgerURL.searchParams.append('device', 'mtWeb')
199
- headerURL.searchParams.append('device', 'mtWeb')
200
- }
201
- }
202
- hamburgerURL.searchParams.append('env', cmsenv);
203
- hamburgerURL.searchParams.append('language', selectedLanguage.toLowerCase());
204
- //hamburgerURL.searchParams.append('platform', 'dk');
205
- hamburgerURL.searchParams.append('userRoles', userroles);
206
-
207
- }
208
-
209
- const setActiveLanguage = ():void => {
210
- setLocale(lang);
211
- }
212
-
213
- const initialLoad = ():void => {
214
- languagesArray = languageslist.replace(/ /g,'').split(',');
215
- languagesArray = languagesArray.map((language:string) => language.toUpperCase());
216
-
217
- selectedLanguage = lang.toUpperCase();
218
- createCMSUrls();
219
-
220
- getLogo(logoURL);
221
- // getHeaderMenusData need to execute after the initialLoad receives the current lang value
222
- setTimeout(() => {
223
- getHeaderMenusData(headerURL);
224
- })
225
- }
226
-
227
- const setActiveIndex = ():void => {
228
- activeIndex = mainMenuArray.findIndex(item => item.path.indexOf(activecategory) > -1).toString();
229
- }
230
-
231
- const sendSliderData = (sliderData:any):void => {
232
- window.postMessage({ type: 'SliderData', identity, data: mainMenuArray }, window.location.href);
233
- }
234
-
235
- const getHeaderMenusData = (url:any):Promise<any> => {
236
- isLoading = true;
237
-
238
- return new Promise((resolve, reject) => {
239
- fetch(url)
240
- .then((res: any) => res.json())
241
- .then((data: any) => {
242
- mainMenuArray = data.desktop.primary;
243
- secondaryMenuArray = data.desktop.secondary;
244
- isLoading = false;
245
-
246
- resolve(data);
247
- }, (err: any) => {
248
- isLoading = false;
249
- console.error(err);
250
- reject(err);
251
- });
252
- });
253
- }
254
-
255
- const getLogo = (url:any):Promise<any> => {
256
- logoFromCms = false;
257
-
258
- return new Promise((resolve, reject) => {
259
- fetch(url)
260
- .then((res: any) => res.json())
261
- .then((data: any) => {
262
- if (data.logoUrl.length > 0 && (data.logoUrl != "null" || data.logoUrl != "false")) {
263
- logoPath = data.logoUrl;
264
- logoFromCms = true;
265
- } else {
266
- logoFromCms = false;
267
- }
268
- resolve(data);
269
- }, (err: any) => {
270
- logoFromCms = false;
271
- console.error(err);
272
- reject(err);
273
- });
274
- });
275
- }
276
-
277
- const setClientStyling = ():void => {
278
- let sheet = document.createElement('style');
279
- sheet.innerHTML = clientstyling;
280
- customStylingContainer.appendChild(sheet);
281
- }
282
-
283
- const setClientStylingURL = ():void => {
284
- let url:URL = new URL(clientstylingurl);
285
- let cssFile:HTMLElement = document.createElement('style');
286
-
287
- fetch(url.href)
288
- .then((res:any) => res.text())
289
- .then((data:any) => {
290
- cssFile.innerHTML = data
291
-
292
- setTimeout(() => { customStylingContainer.appendChild(cssFile) }, 1);
293
- });
294
- }
295
-
296
- onMount(async () => {
297
- window.addEventListener('message', messageHandler, false);
298
-
299
- if (isMobile(userAgent)) {
300
- mobileView = true;
301
- }
302
-
303
- return () => {
304
- window.removeEventListener('message', messageHandler);
305
- }
306
- });
307
-
308
- $: activecategory && !isLoading && setActiveIndex();
309
- $: session && setSession();
310
- $: lang && setActiveLanguage();
311
- $: cmsendpoint && lang && languageslist && userroles && initialLoad();
312
- $: translationUrl && setTranslationUrl();
313
- $: clientstyling && customStylingContainer && setClientStyling();
314
- $: clientstylingurl && customStylingContainer && setClientStylingURL();
315
- </script>
316
-
317
- {#if isLoggedIn}
318
- {#if mobileView}
319
- <header class="HeaderWrapper HeaderMobileWrapper" part="HeaderWrapper HeaderMobileWrapper" bind:this={customStylingContainer}>
320
- <div class="HeaderContainer" part="HeaderContainer">
321
- <div class="HeaderMobileMainNav" part="HeaderMobileMainNav">
322
- {#if !hamburgerMenuActive}
323
- <svg on:click={()=>toggleMenu()} xmlns="http://www.w3.org/2000/svg" width="22" height="16"
324
- viewBox="0 0 22 16">
325
- <defs>
326
- <style>.a {
327
- fill: var(--emfe-w-color-white, #FFFFFF);
328
- }
329
- </style>
330
- </defs>
331
- <g transform="translate(-14 -13)">
332
- <rect class="a" width="18" height="2" transform="translate(14 13)"/>
333
- <rect class="a" width="22" height="2" transform="translate(14 20)"/>
334
- <rect class="a" width="22" height="2" transform="translate(14 27)"/>
335
- </g>
336
- </svg>
337
- {/if}
338
- </div>
339
- <div class="HeaderBranding" part="HeaderBranding" on:click={()=>menuAction('lobby')}>
340
- {#if logoFromCms}
341
- <img src={logoPath} alt="Logo">
342
- {:else}
343
- <img src={everymatrixLogo} alt="Logo">
344
- {/if}
345
- </div>
346
-
347
- <div class="HeaderTopActions" part="HeaderTopActions">
348
- <div class="HeaderItemsMenu PrimaryMenu" part="HeaderItemsMenu PrimaryMenu">
349
- <player-account-balance-modal {session} {userid} {endpoint} {lang}/>
350
- <div class="Item ItemDeposit" part="Item ItemDeposit" on:click={()=>menuAction('deposit')}>{$_('headerItem.deposit')}</div>
351
- <div class="Item ItemAccount" part="Item ItemAccount" on:click={()=>menuAction('myaccount')}>
352
- <svg xmlns="http://www.w3.org/2000/svg" width="15" height="16.429" viewBox="0 0 15 16.429">
353
- <defs>
354
- <style>.a {
355
- fill: var(--emfe-w-color-white, #FFFFFF);
356
- }
357
- </style>
358
- </defs>
359
- <g transform="translate(-8 -4)">
360
- <path class="a"
361
- d="M15.5,4a3.75,3.75,0,1,0,3.75,3.75A3.761,3.761,0,0,0,15.5,4Zm0,1.429A2.321,2.321,0,1,1,13.179,7.75,2.311,2.311,0,0,1,15.5,5.429Zm0,6.429A7.7,7.7,0,0,0,8,19.714a.714.714,0,0,0,.714.714H22.286A.714.714,0,0,0,23,19.714,7.7,7.7,0,0,0,15.5,11.857Zm0,1.429A6.18,6.18,0,0,1,21.5,19H9.5A6.18,6.18,0,0,1,15.5,13.286Z"
362
- transform="translate(0 0)"/>
363
- </g>
364
- </svg>
365
- </div>
366
- </div>
367
- </div>
368
- </div>
369
- </header>
370
- {:else}
371
- <header class="HeaderWrapper" part="HeaderWrapper" bind:this={customStylingContainer}>
372
- <div class="HeaderContainer" part="HeaderContainer">
373
- <div class="HeaderBranding" part="HeaderBranding" on:click={()=>menuAction('lobby')}>
374
- {#if logoFromCms}
375
- <img src={logoPath} alt="Logo">
376
- {:else}
377
- <img src={everymatrixLogo} alt="Logo">
378
- {/if}
379
- </div>
380
-
381
- <nav class="HeaderMainNav" part="HeaderMainNav">
382
- {#if !isLoading}
383
- <casino-slider
384
- class="HeaderItemsMenu"
385
- part="HeaderItemsMenu"
386
- {identity}
387
- use:sendSliderData
388
- isprimarymenu=true
389
- {actionevent}
390
- activeindex={activeIndex}
391
- {endpoint}
392
- {lang}
393
- location="headerMain"
394
- {showsubgroups}
395
- {clientstyling}
396
- {clientstylingurl}
397
- />
398
- {/if}
399
- </nav>
400
- <div class="HeaderTopActions" part="HeaderItemsMenu">
401
- <div class="HeaderItemsMenu PrimaryMenu" part="HeaderItemsMenu PrimaryMenu">
402
- <player-account-balance-modal {session} {userid} {endpoint} {lang}/>
403
- <div class="Item ItemDeposit" part="Item ItemDeposit" on:click={() => menuAction('deposit')}>{$_('headerItem.deposit')}</div>
404
- <div class="Item ItemAccount" part="Item ItemAccount" on:click={() => menuAction('myaccount')}>
405
- <svg xmlns="http://www.w3.org/2000/svg" width="15" height="16.429" viewBox="0 0 15 16.429">
406
- <defs>
407
- <style>.a {
408
- fill: var(--emfe-w-color-white, #FFFFFF);
409
- }
410
- </style>
411
- </defs>
412
- <g transform="translate(-8 -4)">
413
- <path class="a"
414
- d="M15.5,4a3.75,3.75,0,1,0,3.75,3.75A3.761,3.761,0,0,0,15.5,4Zm0,1.429A2.321,2.321,0,1,1,13.179,7.75,2.311,2.311,0,0,1,15.5,5.429Zm0,6.429A7.7,7.7,0,0,0,8,19.714a.714.714,0,0,0,.714.714H22.286A.714.714,0,0,0,23,19.714,7.7,7.7,0,0,0,15.5,11.857Zm0,1.429A6.18,6.18,0,0,1,21.5,19H9.5A6.18,6.18,0,0,1,15.5,13.286Z"
415
- transform="translate(0 0)"/>
416
- </g>
417
- </svg>
418
- </div>
419
- <select bind:value={selectedLanguage} class="Item ItemLanguage" part="Item ItemLanguage" on:change={()=>menuAction('language')}>
420
- {#each languagesArray as operatorLanguage}
421
- <option value={operatorLanguage} selected>{operatorLanguage}</option>
422
- {/each}
423
- </select>
424
- </div>
425
- </div>
426
- </div>
427
- <nav class="HeaderSecondaryNav" part="HeaderSecondaryNav">
428
- <ul class="HeaderItemsMenuSecondary" part="HeaderItemsMenuSecondary">
429
- {#each secondaryMenuArray as secondaryItem}
430
- <li class="ItemSecondary" part="ItemSecondary"><a href={secondaryItem.path}>{secondaryItem.label}</a></li>
431
- {/each}
432
- </ul>
433
- </nav>
434
- </header>
435
- {/if}
436
- {:else}
437
- {#if mobileView}
438
- <header class="HeaderWrapper HeaderMobileWrapper" part="HeaderWrapper HeaderMobileWrapper" bind:this={customStylingContainer}>
439
- <div class="HeaderContainer" part="HeaderContainer">
440
- <div class="HeaderMobileMainNav" part="HeaderMobileMainNav">
441
- <svg on:click={()=>toggleMenu()} xmlns="http://www.w3.org/2000/svg" width="22" height="16"
442
- viewBox="0 0 22 16">
443
- <defs>
444
- <style>.a {
445
- fill: var(--emfe-w-color-white, #FFFFFF);
446
- }
447
- </style>
448
- </defs>
449
- <g transform="translate(-14 -13)">
450
- <rect class="a" width="18" height="2" transform="translate(14 13)"/>
451
- <rect class="a" width="22" height="2" transform="translate(14 20)"/>
452
- <rect class="a" width="22" height="2" transform="translate(14 27)"/>
453
- </g>
454
- </svg>
455
- </div>
456
- <div class="HeaderBranding" part="HeaderBranding" on:click={()=>menuAction('lobby')}>
457
- {#if logoFromCms}
458
- <img src={logoPath} alt="Logo">
459
- {:else}
460
- <img src={everymatrixLogo} alt="Logo">
461
- {/if}
462
- </div>
463
-
464
- <div class="HeaderTopActions" part="HeaderTopActions">
465
- <div class="HeaderItemsMenu" part="HeaderItemsMenu">
466
- <div class="Item ItemLogin" part="Item ItemLogin" on:click={()=>menuAction('login')}>{$_('headerItem.login')}</div>
467
- <div class="Item ItemRegister" part="Item ItemRegister" on:click={()=>menuAction('register')}>{$_('headerItem.register')}</div>
468
- </div>
469
- </div>
470
- </div>
471
- </header>
472
- {:else}
473
- <header class="HeaderWrapper" part="HeaderWrapper" bind:this={customStylingContainer}>
474
- <div class="HeaderContainer" part="HeaderContainer">
475
- <div class="HeaderBranding" part="HeaderBranding" on:click={()=>menuAction('lobby')}>
476
- {#if logoFromCms}
477
- <img src={logoPath} alt="Logo">
478
- {:else}
479
- <img src={everymatrixLogo} alt="Logo">
480
- {/if}
481
- </div>
482
-
483
- <nav class="HeaderMainNav" part="HeaderMainNav">
484
- {#if !isLoading}
485
- <casino-slider
486
- class="HeaderItemsMenu"
487
- part="HeaderItemsMenu"
488
- {identity}
489
- use:sendSliderData
490
- isprimarymenu=true
491
- {actionevent}
492
- activeindex={activeIndex}
493
- location="headerMain"
494
- {endpoint}
495
- {lang}
496
- {clientstyling}
497
- {clientstylingurl}
498
- />
499
- {/if}
500
- </nav>
501
- <div class="HeaderTopActions" part="HeaderTopActions">
502
- <div class="HeaderItemsMenu" part="HeaderItemsMenu">
503
- <div class="Item ItemLogin" part="Item ItemLogin" tabindex="0" on:click={()=>menuAction('login')}>{$_('headerItem.login')}</div>
504
- <div class="Item ItemRegister" part="Item ItemRegister" tabindex="0" on:click={()=>menuAction('register')}>{$_('headerItem.register')}</div>
505
- <select bind:value={selectedLanguage} class="Item ItemLanguage" part="Item ItemLanguage" on:change={()=>menuAction('language')}>
506
- {#each languagesArray as operatorLanguage}
507
- <option value={operatorLanguage}>{operatorLanguage}</option>
508
- {/each}
509
- </select>
510
- </div>
511
- </div>
512
- </div>
513
- <nav class="HeaderSecondaryNav" part="HeaderSecondaryNav">
514
- <ul class="HeaderItemsMenuSecondary" part="HeaderItemsMenuSecondary">
515
- {#each secondaryMenuArray as secondaryItem}
516
- <li class="ItemSecondary" part="ItemSecondary"><a href={secondaryItem.path}>{secondaryItem.label}</a></li>
517
- {/each}
518
- </ul>
519
- </nav>
520
- </header>
521
- {/if}
522
- {/if}
523
-
524
- <casino-hamburger-menu menuitemsurl={hamburgerURL} {activecategory} {lang} {languageslist} {clientstyling} {clientstylingurl}></casino-hamburger-menu>
525
-
526
- <style lang="scss">
527
-
528
- :host {
529
- font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
530
- }
531
-
532
- .HeaderSlider {
533
- width: 100%;
534
- height: 400px;
535
- }
536
-
537
- .HeaderWrapper {
538
- background: var(--emfe-w-color-header-bg, #050518);
539
- }
540
-
541
- .HeaderContainer {
542
- max-width: 1300px;
543
- display: flex;
544
- flex-direction: row;
545
- align-items: center;
546
- height: 84px;
547
- margin: 0 auto;
548
- }
549
-
550
- .HeaderMobileMainNav {
551
- display: flex;
552
- align-items: center;
553
- }
554
-
555
- .HeaderBranding {
556
- width: 140px;
557
- margin-right: 15px;
558
- cursor: pointer;
559
- img {
560
- width: 100%;
561
- }
562
- }
563
-
564
- .HeaderMainNav {
565
- text-align: left;
566
- }
567
-
568
- .HeaderTopActions {
569
- text-align: right;
570
- margin-left: auto;
571
- }
572
-
573
- .HeaderSecondaryNav {
574
- flex-direction: row;
575
- width: 100%;
576
- background: var(--emfe-w-color-header-bg, #050518);
577
- border-top: 1px solid var(--emfe-w-color-gray-300, #58586B);
578
- }
579
-
580
- .HeaderItemsMenu {
581
- display: flex;
582
- align-content: flex-start;
583
- list-style: none;
584
- text-transform: uppercase;
585
- color: var(--emfe-w-color-white, #FFFFFF);
586
- font-size: 16px;
587
- align-items: center;
588
-
589
- .Item:hover {
590
- .HeaderSecondaryNav {
591
- display: block;
592
- }
593
- }
594
-
595
- .Item {
596
- padding: 0 12px;
597
- display: flex;
598
- align-items: center;
599
- }
600
-
601
- &.PrimaryMenu {
602
- gap: 10px;
603
- }
604
- }
605
-
606
- .Item a {
607
- color: var(--emfe-w-color-white, #FFFFFF);
608
- text-decoration: none;
609
- border-top: 1px solid transparent;
610
- }
611
-
612
- .Item a:hover {
613
- color: var(--emfe-w-color-primary, #D0046C);
614
- border-top: 1px solid var(--emfe-w-color-primary, #D0046C);
615
- padding-top: 5px;
616
- }
617
-
618
- .ItemLogin {
619
- border-radius: 5px;
620
- background: transparent;
621
- font-size: 14px;
622
- font-weight: 600;
623
- border: solid 1px var(--emfe-w-color-white, #FFFFFF);
624
- height: 44px;
625
- text-align: center;
626
- line-height: 44px;
627
- margin-right: 10px;
628
- cursor: pointer;
629
- }
630
-
631
- .ItemRegister, .ItemDeposit {
632
- border-radius: 5px;
633
- background: var(--emfe-w-color-primary, #D0046C);
634
- font-size: 14px;
635
- height: 44px;
636
- text-align: center;
637
- line-height: 44px;
638
- cursor: pointer;
639
- }
640
-
641
- .ItemDeposit {
642
- background: var(--emfe-w-color-primary, #D0046C);
643
- }
644
-
645
- .ItemLanguage {
646
- height: 44px;
647
- width: 90px;
648
- text-align: center;
649
- line-height: 44px;
650
- background: transparent;
651
- color: var(--emfe-w-color-white, #FFFFFF);
652
- border: none;
653
- cursor: pointer;
654
- outline: none;
655
- -webkit-appearance: none;
656
- -moz-appearance: none;
657
- appearance: none;
658
- background: url("data:image/svg+xml,<svg height='10px' width='10px' viewBox='0 0 16 16' fill='%23FFFFFF' xmlns='http://www.w3.org/2000/svg'><path d='M7.247 11.14 2.451 5.658C1.885 5.013 2.345 4 3.204 4h9.592a1 1 0 0 1 .753 1.659l-4.796 5.48a1 1 0 0 1-1.506 0z'/></svg>") no-repeat var(--emfe-w-color-header-bg, #050518);
659
- background-position: calc(100% - 0.75rem) center;
660
-
661
- option {
662
- color: var(--emfe-w-color-white, #FFFFFF);
663
- }
664
- }
665
-
666
- .ItemBalance {
667
- background: transparent;
668
- color: var(--emfe-w-color-white, #FFFFFF);
669
- border: 0;
670
- }
671
-
672
- .ItemAccount {
673
- cursor: pointer;
674
-
675
- svg {
676
- width: 20px;
677
- height: 20px;
678
- }
679
- }
680
-
681
- .HeaderItemsMenuSecondary {
682
- display: flex;
683
- flex-direction: row;
684
- align-content: flex-start;
685
- align-items: center;
686
- height: 60px;
687
- list-style: none;
688
- text-transform: uppercase;
689
- color: var(--emfe-w-color-white, #FFFFFF);
690
- font-size: 14px;
691
- max-width: 1280px;
692
- margin: 0 auto;
693
- overflow-y: hidden;
694
- overflow-x: auto;
695
- padding: 0;
696
- }
697
-
698
- .HeaderItemsMenuSecondary .ItemSecondary {
699
- padding: 0 15px;
700
- cursor: pointer;
701
- font-weight: 600;
702
- transition-duration: 0.15s;
703
-
704
- a {
705
- color: var(--emfe-w-color-white, #FFFFFF);
706
- text-decoration: none;
707
- }
708
-
709
- &:hover {
710
- a {
711
- color: var(--emfe-w-color-primary, #D0046C);
712
- }
713
- }
714
- }
715
-
716
- .HeaderSliderMobile {
717
- background-position: bottom;
718
- }
719
-
720
- .HeaderMobileWrapper {
721
- .HeaderContainer {
722
- height: 55px;
723
- padding: 0 15px;
724
- gap: 10px;
725
- }
726
-
727
- .HeaderBranding {
728
- width: 110px;
729
- display: flex;
730
- align-items: center;
731
- }
732
-
733
- .HeaderItemsMenu {
734
- .Item {
735
- padding: 0 10px;
736
- display: block;
737
- width: unset;
738
- }
739
-
740
- .ItemBalance {
741
- font-size: 12px;
742
- }
743
-
744
- .ItemAccount {
745
- padding: 0;
746
- }
747
- }
748
-
749
- .ItemRegister, .ItemDeposit, .ItemLogin {
750
- height: 30px;
751
- line-height: 30px;
752
- font-size: 12px;
753
- }
754
-
755
- .ItemLogin {
756
- margin-right: 10px;
757
- }
758
- }
759
- </style>