@everymatrix/casino-header-controller 1.36.1 → 1.37.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -11,137 +11,127 @@
11
11
  import '@everymatrix/player-account-balance-modal';
12
12
  import '@everymatrix/player-deposit';
13
13
 
14
+ import * as countryFlags from 'country-flag-icons/string/3x2';
15
+
16
+ // @ts-ignore
14
17
  import everymatrixLogo from './images/everymatrix-logo-white.png';
15
18
 
16
- export let session:string = '';
17
- export let userid:string = '';
18
- export let endpoint:string = '';
19
- export let cmsendpoint:string = '';
20
- export let cmsenv:string = 'stage';
21
- export let lang:string = 'en';
22
- export let languageslist:string = 'en, ro';
23
- export let activecategory:string = '';
24
- export let translationurl:string = '';
25
- export let customlocaleidentifier:string = '';
26
- export let gmversion:string = '';
27
- export let countryflagheader:string = 'false';
28
- export let displaybalanceoption:string = 'All';
29
- export let countryflaghamburger:string = 'false';
30
- export let hasdefaultamount:string = '';
19
+ export let session: string = '';
20
+ export let userid: string = '';
21
+ export let endpoint: string = '';
22
+ export let cmsendpoint: string = '';
23
+ export let cmsenv: string = 'stage';
24
+ export let lang: string = 'en';
25
+ export let languageslist: string = 'en, ro';
26
+ export let activecategory: string = '';
27
+ export let translationurl: string = '';
28
+ export let customlocaleidentifier: string = '';
29
+ export let gmversion: string = '';
30
+ export let countryflagheader: string = 'false';
31
+ export let displaybalanceoption: string = 'All';
32
+ export let countryflaghamburger: string = 'false';
33
+ export let hasdefaultamount: string = '';
31
34
  export let playercurrency: string ='';
32
35
 
33
36
  //short cashier
34
- export let shortcashierenabled:string = '';
35
- export let producttype:string = '';
36
- export let successurl:string = '';
37
- export let failurl:string = '';
38
- export let cancelurl:string = '';
39
- export let sportsurl:string = '';
40
- export let casinourl:string = '';
41
- export let contacturl:string = '';
42
- export let homeurl:string = '';
43
- export let depositurl:string = '';
44
-
45
- export let actionevent:string = '';
46
-
47
- export let userroles:string = '';
48
- export let showsubgroups:string = 'false';
49
- export let clientstyling:string = '';
50
- export let clientstylingurl:string = '';
51
-
52
- export let currencyseparator:string = '';
53
- export let currencydecimal:string = '';
54
- export let currencyprecision:string = '';
55
-
56
-
57
- let primaryActiveIndex:string;
58
- let secondaryActiveIndex:string;
59
- let identity:string = "HeaderMenu";
60
- let customStylingContainer:HTMLElement;
37
+ export let shortcashierenabled: string = '';
38
+ export let producttype: string = '';
39
+ export let successurl: string = '';
40
+ export let failurl: string = '';
41
+ export let cancelurl: string = '';
42
+ export let sportsurl: string = '';
43
+ export let casinourl: string = '';
44
+ export let contacturl: string = '';
45
+ export let homeurl: string = '';
46
+ export let depositurl: string = '';
47
+
48
+ export let actionevent: string = '';
49
+
50
+ export let userroles: string = '';
51
+ export let showsubgroups: string = 'false';
52
+ export let clientstyling: string = '';
53
+ export let clientstylingurl: string = '';
54
+
55
+ export let currencyseparator: string = '';
56
+ export let currencydecimal: string = '';
57
+ export let currencyprecision: string = '';
58
+
59
+ let activeIndex: number;
60
+ let customStylingContainer: HTMLElement;
61
61
 
62
62
  setupI18n({ withLocale: 'en', translations: {}});
63
63
 
64
- const setTranslationUrl = ():void => {
65
- let url:string = translationurl;
66
-
67
- fetch(url).then((res:any) => res.json())
68
- .then((res) => {
69
- Object.keys(res).forEach((item:any):void => {
70
- addNewMessages(item, res[item]);
64
+ const setTranslationUrl = (): void => {
65
+ fetch(translationurl)
66
+ .then((res: any): void => res.json())
67
+ .then((res: any): void => {
68
+ Object.keys(res).forEach((item:any): void => {
69
+ addNewMessages(item, res[item]);
70
+ });
71
+ }).catch((err: any): void => {
72
+ console.log(err);
71
73
  });
72
- }).catch((err:any) => {
73
- console.log(err);
74
- });
75
74
  }
76
75
 
77
- Object.keys(TRANSLATIONS).forEach((item:any) => {
76
+ Object.keys(TRANSLATIONS).forEach((item: string): void => {
78
77
  addNewMessages(item, TRANSLATIONS[item]);
79
78
  });
80
79
 
81
- 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"
82
- viewBox="0 0 384.971 384.971" style="enable-background:new 0 0 384.971 384.971;" xml:space="preserve">
83
- <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
84
- 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
85
- C192.485,366.299,187.095,360.91,180.455,360.91z"/>
86
- <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
87
- 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
88
- 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"/>
89
- </svg>`;
90
-
91
- let mainMenuArray:Array<any> = [];
92
- let secondaryMenuArray:Array<any> = [];
93
- let selectedLanguage:string = '';
94
- let hamburgerURL:URL;
95
- let headerURL:URL;
96
- let logoURL:URL;
97
- let isLoading:boolean = true;
98
- let logoFromCms:boolean = false;
99
-
100
- let isOptionsListVisible:boolean = false;
101
- let mobileView:boolean = false;
102
- let userAgent:string = window.navigator.userAgent;
103
- let isLoggedIn:boolean = false;
104
- let playerID:string = '';
105
- let sessionID:string = '';
106
- let loginActive:boolean = true;
107
- let language:string = '';
108
- let languagesArray:Array<string> = [];
109
- let hamburgerMenuActive:boolean = false;
110
- let logoPath:string = '';
111
- let shortCashierActivated:boolean = false;
112
-
113
- const menuAction = (data: any) => {
80
+ let mainMenuArray: Array<string> = [];
81
+ let secondaryMenuArray: Array<string> = [];
82
+ let selectedLanguage: string = '';
83
+ let hamburgerURL: URL;
84
+ let headerURL: URL;
85
+ let logoURL: URL;
86
+ let isLoading: boolean = true;
87
+ let logoFromCms: boolean = false;
88
+ let primaryMenuLoading: boolean = true;
89
+
90
+ let isOptionsListVisible: boolean = false;
91
+ let mobileView: boolean = false;
92
+ let userAgent: string = window.navigator.userAgent;
93
+ let isLoggedIn: boolean = false;
94
+ let playerID: string = '';
95
+ let sessionID: string = '';
96
+ let languagesArray: Array<string> = [];
97
+ let hamburgerMenuActive: boolean = false;
98
+ let logoPath: string = '';
99
+ let shortCashierActivated: boolean = false;
100
+
101
+ const gtagCall = (eventName: string): void => {
102
+ // @ts-ignore
103
+ if (typeof gtag == 'function'){
104
+ // @ts-ignore
105
+ gtag('event', eventName, {
106
+ 'context': 'HeaderController'
107
+ });
108
+ }
109
+ }
110
+
111
+ const menuAction = (data: any): void => {
114
112
  switch (data) {
115
113
  case 'login':
116
- loginActive = true;
117
- window.postMessage({type: 'OpenLoginRegisterModal', transition: 'Login' }, window.location.href);
118
-
119
- //Analytics event
120
- if (typeof gtag == 'function'){
121
- gtag('event', 'OpenLoginModal', {
122
- 'context': 'HeaderController'
123
- });
124
- }
114
+ window.postMessage({ type: 'OpenLoginRegisterModal', transition: 'Login' }, window.location.href);
115
+
116
+ gtagCall('OpenLoginModal');
125
117
  break;
126
118
 
127
119
  case 'register':
128
- loginActive = false;
129
- window.postMessage({type: 'OpenLoginRegisterModal', transition: 'Register'}, window.location.href);
130
-
131
- //Analytics event
132
- if (typeof gtag == 'function'){
133
- gtag('event', 'OpenRegisterModal', {
134
- 'context': 'HeaderController'
135
- });
136
- }
120
+ window.postMessage({ type: 'OpenLoginRegisterModal', transition: 'Register'}, window.location.href);
121
+
122
+ gtagCall('OpenRegisterModal');
137
123
  break;
138
124
 
139
125
  case 'lobby':
140
- window.postMessage({type: 'GoToHomepage'}, window.location.href);
126
+ window.postMessage({ type: 'GoToHomepage' }, window.location.href);
127
+
128
+ gtagCall('GoToHomepage');
141
129
  break;
142
130
 
143
131
  case 'myaccount':
144
- window.postMessage({type: 'PlayerAccountMenuActive', isMobile: isMobile(userAgent)}, window.location.href);
132
+ window.postMessage({ type: 'PlayerAccountMenuActive', isMobile: isMobile(userAgent) }, window.location.href);
133
+
134
+ gtagCall('GoToMyAccount');
145
135
  break;
146
136
 
147
137
  case 'deposit':
@@ -149,29 +139,24 @@
149
139
  shortCashierActivated = true;
150
140
  window.postMessage({ type: 'DisableScroll' }, window.location.href);
151
141
  } else {
152
- window.postMessage({type: 'GoToDeposit'}, window.location.href);
142
+ window.postMessage({ type: 'GoToDeposit' }, window.location.href);
153
143
  }
154
144
 
155
- //Analytics event
156
- if (typeof gtag == 'function'){
157
- gtag('event', 'GoToDeposit', {
158
- 'context': 'HeaderController'
159
- });
160
- }
145
+ gtagCall('GoToDeposit');
161
146
  break;
162
147
 
163
148
  case 'language':
164
- window.postMessage({type: 'LanguageChanged', selectedLanguage}, window.location.href);
149
+ window.postMessage({ type: 'LanguageChanged', selectedLanguage }, window.location.href);
165
150
  break;
166
151
  }
167
152
  }
168
153
 
169
- const toggleMenu = () => {
170
- hamburgerMenuActive = true;
171
- window.postMessage({type: 'OpenHamburgerMenuModal'}, window.location.href);
154
+ const toggleMenu = (): void => {
155
+ hamburgerMenuActive = !hamburgerMenuActive;
156
+ window.postMessage({ type: 'OpenHamburgerMenuModal' }, window.location.href);
172
157
  }
173
158
 
174
- const messageHandler = (e: any) => {
159
+ const messageHandler = (e: any): void => {
175
160
  if (e.data) {
176
161
  switch (e.data.type) {
177
162
  case 'UserSessionID':
@@ -181,7 +166,7 @@
181
166
  break;
182
167
 
183
168
  case 'CloseHamburgerMenu':
184
- window.postMessage({ type: 'EnableScroll'}, window.location.href);
169
+ window.postMessage({ type: 'EnableScroll' }, window.location.href);
185
170
  if (e.data.showhamburger) {
186
171
  hamburgerMenuActive = false;
187
172
  }
@@ -203,7 +188,7 @@
203
188
  case 'CloseShortCashier':
204
189
  closeShortCashier();
205
190
  break;
206
-
191
+
207
192
  case 'RequestHeaderHeight':
208
193
  window.postMessage({ type: 'HeaderHeight', headerHeight: customStylingContainer.clientHeight }, window.location.href);
209
194
  break;
@@ -211,27 +196,26 @@
211
196
  }
212
197
  }
213
198
 
214
- const setSession = () => {
199
+ const setSession = (): void => {
215
200
  isLoggedIn = true;
216
201
  sessionID = session;
217
202
  }
218
203
 
219
- const closeShortCashier = (event?) => {
204
+ const closeShortCashier = (event?: any): void => {
220
205
  shortCashierActivated = false;
221
206
  window.postMessage({ type: 'EnableScroll' }, window.location.href);
222
207
  event?.stopPropagation();
223
208
  }
224
209
 
225
- const createCMSUrls = () => {
226
- headerURL = new URL(`${cmsendpoint}/${selectedLanguage.toLowerCase()}/menu`)
210
+ const createCMSUrls = (): void => {
211
+ headerURL = new URL(`${cmsendpoint}/${selectedLanguage.toLowerCase()}/menu`);
227
212
  hamburgerURL = new URL(`${cmsendpoint}/${selectedLanguage.toLowerCase()}/hamburger-menu`);
228
213
  logoURL = new URL(`${cmsendpoint}/${selectedLanguage.toLowerCase()}/op-options/style`);
229
214
 
230
- let device = getDevice(userAgent)
215
+ let device = getDevice(userAgent);
231
216
 
232
217
  headerURL.searchParams.append('env', cmsenv);
233
218
  headerURL.searchParams.append('language', selectedLanguage.toLowerCase());
234
- //headerURL.searchParams.append('platform', 'dk');
235
219
  headerURL.searchParams.append('userRoles', userroles);
236
220
 
237
221
  if (device) {
@@ -248,75 +232,69 @@
248
232
  }
249
233
  hamburgerURL.searchParams.append('env', cmsenv);
250
234
  hamburgerURL.searchParams.append('language', selectedLanguage.toLowerCase());
251
- //hamburgerURL.searchParams.append('platform', 'dk');
252
235
  hamburgerURL.searchParams.append('userRoles', userroles);
253
236
 
237
+ getHeaderMenusData(headerURL);
254
238
  }
255
239
 
256
- const setActiveLanguage = ():void => {
240
+ const setActiveLanguage = (): void => {
257
241
  setLocale(lang);
258
242
  }
259
243
 
260
- const initialLoad = ():void => {
244
+ const initialLoad = (): void => {
261
245
  languagesArray = languageslist.replace(/ /g,'').split(',');
262
246
  languagesArray = languagesArray.map((language:string) => language.toUpperCase());
263
247
 
264
248
  selectedLanguage = lang.toUpperCase();
265
- createCMSUrls();
266
249
 
250
+ createCMSUrls();
267
251
  getLogo(logoURL);
268
- // getHeaderMenusData need to execute after the initialLoad receives the current lang value
269
- setTimeout(() => {
270
- getHeaderMenusData(headerURL);
271
- })
272
252
  }
273
253
 
274
- const initializeMenu = ():void => {
275
- primaryActiveIndex = setActiveIndex(activecategory, mainMenuArray);
276
- secondaryActiveIndex = setActiveIndex(activecategory, secondaryMenuArray);
254
+ const initializeMenu = (): void => {
255
+ const primaryActiveIndex = setActiveIndex(activecategory, mainMenuArray);
256
+ const secondaryActiveIndex = setActiveIndex(activecategory, secondaryMenuArray);
257
+ activeIndex = primaryActiveIndex > secondaryActiveIndex ? primaryActiveIndex : secondaryActiveIndex;
277
258
  }
278
259
 
279
- const setActiveIndex = (activecategory, menuList) => {
280
- let result = menuList.find(item => {
281
- if (activecategory.indexOf('/sport') > -1) {
282
- return item.path.indexOf(activecategory) > -1;
283
- } else {
284
- if (item.path.includes(activecategory)) {
285
- return true;
260
+ const setActiveIndex = (activecategory: any, menuList: any): any => {
261
+ let result = menuList.find(item => {
262
+ if (activecategory.indexOf('/sport') > -1) {
263
+ return item.path.indexOf(activecategory) > -1;
264
+ } else {
265
+ if (item.path.includes(activecategory)) {
266
+ return true;
267
+ }
286
268
  }
287
- }
288
- });
289
-
290
- if (!result) {
291
- result = menuList.find(item => {
292
- return item.path.split('/').indexOf(activecategory.split('/')[1]) > -1;
293
269
  });
294
- }
295
270
 
296
- if (result) {
297
- return result.id;
298
- } else {
299
- return -1;
300
- }
301
- }
271
+ if (!result) {
272
+ result = menuList.find((item: any): boolean => {
273
+ return item.path.split('/').indexOf(activecategory.split('/')[1]) > -1;
274
+ });
275
+ }
302
276
 
303
- const sendSliderData = ():void => {
304
- window.postMessage({ type: 'SliderData', identity, data: mainMenuArray }, window.location.href);
277
+ if (result) {
278
+ return result.id;
279
+ } else {
280
+ return -1;
281
+ }
305
282
  }
306
283
 
307
- const getHeaderMenusData = (url:any):Promise<any> => {
284
+ const getHeaderMenusData = (url: any): Promise<any> => {
308
285
  isLoading = true;
309
-
310
- return new Promise((resolve, reject) => {
286
+
287
+ return new Promise((resolve, reject): void => {
311
288
  fetch(url)
312
- .then((res: any) => res.json())
313
- .then((data: any) => {
289
+ .then((res: any): void => res.json())
290
+ .then((data: any): void => {
314
291
  mainMenuArray = data.desktop.primary;
315
292
  secondaryMenuArray = data.desktop.secondary;
316
293
  isLoading = false;
294
+ primaryMenuLoading = false;
317
295
 
318
296
  resolve(data);
319
- }, (err: any) => {
297
+ }, (err: any): void => {
320
298
  isLoading = false;
321
299
  console.error(err);
322
300
  reject(err);
@@ -324,13 +302,13 @@
324
302
  });
325
303
  }
326
304
 
327
- const getLogo = (url:any):Promise<any> => {
305
+ const getLogo = (url: URL): Promise<any> => {
328
306
  logoFromCms = false;
329
307
 
330
- return new Promise((resolve, reject) => {
308
+ return new Promise((resolve, reject): void => {
331
309
  fetch(url)
332
- .then((res: any) => res.json())
333
- .then((data: any) => {
310
+ .then((res: any): void => res.json())
311
+ .then((data: any): void => {
334
312
  if (data.logoUrl.length > 0 && (data.logoUrl != "null" || data.logoUrl != "false")) {
335
313
  logoPath = data.logoUrl;
336
314
  logoFromCms = true;
@@ -338,7 +316,7 @@
338
316
  logoFromCms = false;
339
317
  }
340
318
  resolve(data);
341
- }, (err: any) => {
319
+ }, (err: any): void => {
342
320
  logoFromCms = false;
343
321
  console.error(err);
344
322
  reject(err);
@@ -346,11 +324,11 @@
346
324
  });
347
325
  }
348
326
 
349
- const navigationTrigger = (itemData:any) => {
327
+ const navigationTrigger = (itemData: any): void => {
350
328
  window.postMessage({ type: 'NavigateTo', itemId: itemData.id, item: itemData, path: itemData.path, externalLink: itemData.externalLink || false, target: itemData.attrs?.target || null }, window.location.href);
351
329
  }
352
330
 
353
- const selectLanguage = (operatorLanguage:string): void => {
331
+ const selectLanguage = (operatorLanguage: string): void => {
354
332
  selectedLanguage = operatorLanguage;
355
333
  isOptionsListVisible = false;
356
334
  menuAction('language');
@@ -360,30 +338,32 @@
360
338
  isOptionsListVisible = !isOptionsListVisible;
361
339
  }
362
340
 
363
- const determineFlag = (selectedLanguage: string): string => {
341
+ const determineFlag = (operatorLanguage?: string): string => {
342
+ let flag = operatorLanguage ? operatorLanguage.slice(-2) : selectedLanguage.slice(-2);
343
+
364
344
  if (customlocaleidentifier) {
365
- selectedLanguage =
366
- customlocaleidentifier.includes(selectedLanguage.toLowerCase()) ?
367
- customlocaleidentifier.slice(-2) :
368
- selectedLanguage;
345
+ flag =
346
+ customlocaleidentifier.includes(flag.toLowerCase()) ?
347
+ customlocaleidentifier.slice(-2) :
348
+ flag;
369
349
  }
370
350
 
371
- return selectedLanguage == 'EN' ? 'US' : selectedLanguage.toUpperCase();
351
+ return flag == 'EN' ? 'US' : flag.toUpperCase();
372
352
  }
373
353
 
374
- const setClientStyling = ():void => {
354
+ const setClientStyling = (): void => {
375
355
  let sheet = document.createElement('style');
376
356
  sheet.innerHTML = clientstyling;
377
357
  customStylingContainer.appendChild(sheet);
378
358
  }
379
359
 
380
- const setClientStylingURL = ():void => {
381
- let url:URL = new URL(clientstylingurl);
382
- let cssFile:HTMLElement = document.createElement('style');
360
+ const setClientStylingURL = (): void => {
361
+ let url: URL = new URL(clientstylingurl);
362
+ let cssFile: HTMLElement = document.createElement('style');
383
363
 
384
364
  fetch(url.href)
385
- .then((res:any) => res.text())
386
- .then((data:any) => {
365
+ .then((res: any): void => res.text())
366
+ .then((data: any): void => {
387
367
  cssFile.innerHTML = data
388
368
 
389
369
  setTimeout(() => { customStylingContainer.appendChild(cssFile) }, 1);
@@ -393,9 +373,8 @@
393
373
  onMount(async () => {
394
374
  window.addEventListener('message', messageHandler, false);
395
375
 
396
- if (isMobile(userAgent)) {
397
- mobileView = true;
398
- }
376
+ mobileView = isMobile(userAgent);
377
+ console.log('mobileView', mobileView)
399
378
 
400
379
  return () => {
401
380
  window.removeEventListener('message', messageHandler);
@@ -412,10 +391,200 @@
412
391
  $: clientstylingurl && customStylingContainer && setClientStylingURL();
413
392
  </script>
414
393
 
415
- <svelte:head>
416
- <script type="module" src="https://unpkg.com/@everymatrix/user-deposit-withdrawal"></script>
417
- </svelte:head>
418
-
394
+ <div class="HeaderContainer" bind:this={customStylingContainer}>
395
+ <div class="MainNav">
396
+ {#if mobileView}
397
+ <div class="HeaderMobileMainNav">
398
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
399
+ <div on:click={toggleMenu} class="NavIcon {hamburgerMenuActive ? 'Open' : ''}">
400
+ <span></span>
401
+ <span></span>
402
+ <span></span>
403
+ </div>
404
+ </div>
405
+ {/if}
406
+ <div class="Logo">
407
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
408
+ <div class="HeaderBranding" on:click={()=>menuAction('lobby')}>
409
+ {#if logoFromCms}
410
+ <img src={logoPath} alt="Logo">
411
+ {:else}
412
+ <img src={everymatrixLogo} alt="Logo">
413
+ {/if}
414
+ </div>
415
+ </div>
416
+ <nav class="PrimaryMenu">
417
+ {#if !mobileView}
418
+ {#if primaryMenuLoading}
419
+ {#each new Array(6) as item}
420
+ <div class="Skeleton SkeletonText"></div>
421
+ {/each}
422
+ {:else}
423
+ {#each mainMenuArray as menuItem}
424
+ <div class="ItemMenu {menuItem.id == activeIndex ? 'Active' : ''}">
425
+ <p>{menuItem.label}</p>
426
+ <div class="MenuHover"></div>
427
+ </div>
428
+ {/each}
429
+ {/if}
430
+ {/if}
431
+ </nav>
432
+ {#if isLoggedIn}
433
+ <div class="BalanceDepositWrapper">
434
+ <div class="Balance">
435
+ <player-account-balance-modal {session} {userid} {endpoint} {lang} {clientstyling} {clientstylingurl} {customlocaleidentifier} {gmversion} {displaybalanceoption} {currencyseparator} {currencydecimal} {currencyprecision} />
436
+ </div>
437
+ <div class="Deposit">
438
+ <div class="DepositButton">
439
+ <p>Deposit</p>
440
+ </div>
441
+ {#if shortCashierActivated}
442
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
443
+ <div class="ShortCashierWindow" on:click={(event) => closeShortCashier(event)}></div>
444
+ <div class="ShortCashierContainerWrapperMobile">
445
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
446
+ <div class="ShortCashierContainerMobile">
447
+ <div class="ClosePopUpButtonShortCashier" on:click={(event) => closeShortCashier(event)}>
448
+ <svg width="20" height="20" xmlns="http://www.w3.org/2000/svg">
449
+ <line x1="2" y1="2" x2="18" y2="18" stroke="black" stroke-width="2"/>
450
+ <line x1="18" y1="2" x2="2" y2="18" stroke="black" stroke-width="2"/>
451
+ </svg>
452
+ </div>
453
+ {#if gmversion === 'gmcore'}
454
+ <player-deposit
455
+ {endpoint}
456
+ {session}
457
+ playerid={userid}
458
+ {lang}
459
+ {hasdefaultamount}
460
+ {playercurrency}
461
+ {shortcashierenabled}
462
+ {clientstyling}
463
+ {clientstylingurl}
464
+ ></player-deposit>
465
+ {:else}
466
+ <user-deposit-withdrawal
467
+ {endpoint}
468
+ type="deposit"
469
+ channel="Mobile"
470
+ language={lang}
471
+ is-short-cashier={shortcashierenabled}
472
+ product-type={producttype}
473
+ user-id={userid}
474
+ {session}
475
+ success-url={'https://' + window.location.hostname + '/' + lang + successurl}
476
+ cancel-url={'https://' + window.location.hostname + '/' + lang + cancelurl}
477
+ fail-url={'https://' + window.location.hostname + '/' + lang + failurl}
478
+ sports-url={'https://' + window.location.hostname + '/' + lang + sportsurl}
479
+ casino-url={'https://' + window.location.hostname + '/' + lang + casinourl}
480
+ contact-url={'https://' + window.location.hostname + '/' + lang + contacturl}
481
+ home-url={'https://' + window.location.hostname + '/' + lang + homeurl}
482
+ deposit-url={'https://' + window.location.hostname + '/' + lang + depositurl}
483
+ ></user-deposit-withdrawal>
484
+ {/if}
485
+ </div>
486
+ </div>
487
+ {/if}
488
+ </div>
489
+ </div>
490
+ <div class="Profile">
491
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
492
+ <div class="ProfileWrapper" on:click={() => menuAction('myaccount')}>
493
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 15 16.429">
494
+ <g transform="translate(-8 -4)">
495
+ <path class="a"
496
+ 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"
497
+ transform="translate(0 0)"/>
498
+ </g>
499
+ </svg>
500
+ </div>
501
+ </div>
502
+ {:else}
503
+ <div class="AuthButtons">
504
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
505
+ <div class="Item ItemLogin" on:click={()=>menuAction('login')}>
506
+ <p>{$_('login')}</p>
507
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path d="M144 144v48H304V144c0-44.2-35.8-80-80-80s-80 35.8-80 80zM80 192V144C80 64.5 144.5 0 224 0s144 64.5 144 144v48h16c35.3 0 64 28.7 64 64V448c0 35.3-28.7 64-64 64H64c-35.3 0-64-28.7-64-64V256c0-35.3 28.7-64 64-64H80z"/></svg>
508
+ </div>
509
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
510
+ <div class="Item ItemRegister" on:click={()=>menuAction('register')}>
511
+ <p>{$_('register')}</p>
512
+ <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 320 512"><path d="M310.6 233.4c12.5 12.5 12.5 32.8 0 45.3l-192 192c-12.5 12.5-32.8 12.5-45.3 0s-12.5-32.8 0-45.3L242.7 256 73.4 86.6c-12.5-12.5-12.5-32.8 0-45.3s32.8-12.5 45.3 0l192 192z"/></svg>
513
+ </div>
514
+ </div>
515
+ {/if}
516
+ <div class="Slot1">
517
+ <slot name="slot1">
518
+ </slot>
519
+ </div>
520
+ <div class="Slot2">
521
+ <slot name="slot2"></slot>
522
+ </div>
523
+ <div class="Slot3">
524
+ <slot name="slot3"></slot>
525
+ </div>
526
+ {#if !mobileView}
527
+ <div class="LanguageSelector">
528
+ {#if (languagesArray.length > 1) }
529
+ {#if countryflagheader !== 'true'}
530
+ <select bind:value={selectedLanguage} class="Item ItemLanguage NoFlag" on:change={()=>menuAction('language')}>
531
+ {#each languagesArray as operatorLanguage}
532
+ <option value={operatorLanguage} selected>{operatorLanguage.slice(-2)}</option>
533
+ {/each}
534
+ </select>
535
+ {:else}
536
+ <div class="LanguageDropdown">
537
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
538
+ <div class="SelectedOption" on:click={() => toggleLanguageDropdown()}>
539
+ <span class="LanguageName">{@html countryFlags[determineFlag()]}</span>
540
+ <span class=" {isOptionsListVisible ? 'TriangleActive' : 'TriangleInactive'}">
541
+ <svg xmlns="http://www.w3.org/2000/svg" width="14" height="6.835" viewBox="0 0 14 6.835">
542
+ <path id="arrow" d="M281.541,447.921a.488.488,0,0,0,.295-.122l6.5-5.851a.488.488,0,1,0-.65-.726l-6.176,5.556-6.176-5.556h0a.488.488,0,1,0-.65.726l6.5,5.851a.488.488,0,0,0,.355.122Z" transform="translate(-274.511 -441.088)" fill="#d1d1d1"/>
543
+ </svg>
544
+ </span>
545
+ </div>
546
+ </div>
547
+ <div class="OptionList {isOptionsListVisible ? 'Active' : ''}">
548
+ {#each languagesArray as operatorLanguage}
549
+ <!-- svelte-ignore a11y-click-events-have-key-events -->
550
+ <div class="LanguageOption" on:click={() => selectLanguage(operatorLanguage)}>
551
+ <span class="FlagIcon">
552
+ {@html countryFlags[determineFlag(operatorLanguage)]}
553
+ </span>
554
+ <span class="LanguageName">{operatorLanguage.slice(-2)}</span>
555
+ </div>
556
+ {/each}
557
+ </div>
558
+ {/if}
559
+ {/if}
560
+ </div>
561
+ {/if}
562
+ </div>
563
+ <div class="Separator">
564
+
565
+ </div>
566
+ {#if !mobileView}
567
+ <div class="SecondaryNav">
568
+ <div class="LeftSpace">
569
+ <span class="fi fi-gr"></span> <span class="fi fi-gr fis"></span>
570
+ </div>
571
+ <div class="SecondaryMenuContent">
572
+ {#if primaryMenuLoading}
573
+ {#each new Array(2) as item}
574
+ <div class="Skeleton SkeletonText"></div>
575
+ {/each}
576
+ {:else}
577
+ {#each secondaryMenuArray as secondaryItem}
578
+ <span class="ItemSecondary {secondaryItem.id == activeIndex ? 'Active' : ''}">
579
+ <p on:click={() => navigationTrigger(secondaryItem)}>{secondaryItem.label}</p>
580
+ </span>
581
+ {/each}
582
+ {/if}
583
+ </div>
584
+ </div>
585
+ {/if}
586
+ </div>
587
+ <!--
419
588
  {#if isLoggedIn}
420
589
  {#if mobileView}
421
590
  <header class="HeaderWrapper HeaderMobileWrapper" bind:this={customStylingContainer}>
@@ -426,7 +595,7 @@
426
595
  viewBox="0 0 22 16">
427
596
  <defs>
428
597
  <style>.a {
429
- fill: var(--emfe-w-color-white, #FFFFFF);
598
+ fill: var(--emw-color-white, #FFFFFF);
430
599
  }
431
600
  </style>
432
601
  </defs>
@@ -438,13 +607,6 @@
438
607
  </svg>
439
608
  {/if}
440
609
  </div>
441
- <div class="HeaderBranding" on:click={()=>menuAction('lobby')}>
442
- {#if logoFromCms}
443
- <img src={logoPath} alt="Logo">
444
- {:else}
445
- <img src={everymatrixLogo} alt="Logo">
446
- {/if}
447
- </div>
448
610
 
449
611
  <div class="HeaderTopActions" part="HeaderTopActions">
450
612
  <div class="HeaderItemsMenu PrimaryMenu" part="HeaderItemsMenu PrimaryMenu">
@@ -474,23 +636,23 @@
474
636
  {clientstylingurl}
475
637
  ></player-deposit>
476
638
  {:else}
477
- <user-deposit-withdrawal
478
- {endpoint}
479
- type="deposit"
639
+ <user-deposit-withdrawal
640
+ {endpoint}
641
+ type="deposit"
480
642
  channel="Mobile"
481
- language={lang}
643
+ language={lang}
482
644
  is-short-cashier={shortcashierenabled}
483
- product-type={producttype}
484
- user-id={userid}
485
- {session}
486
- success-url={'https://' + window.location.hostname + '/' + lang + successurl}
487
- cancel-url={'https://' + window.location.hostname + '/' + lang + cancelurl}
488
- fail-url={'https://' + window.location.hostname + '/' + lang + failurl}
489
- sports-url={'https://' + window.location.hostname + '/' + lang + sportsurl}
490
- casino-url={'https://' + window.location.hostname + '/' + lang + casinourl}
491
- contact-url={'https://' + window.location.hostname + '/' + lang + contacturl}
492
- home-url={'https://' + window.location.hostname + '/' + lang + homeurl}
493
- deposit-url={'https://' + window.location.hostname + '/' + lang + depositurl}
645
+ product-type={producttype}
646
+ user-id={userid}
647
+ {session}
648
+ success-url={'https://' + window.location.hostname + '/' + lang + successurl}
649
+ cancel-url={'https://' + window.location.hostname + '/' + lang + cancelurl}
650
+ fail-url={'https://' + window.location.hostname + '/' + lang + failurl}
651
+ sports-url={'https://' + window.location.hostname + '/' + lang + sportsurl}
652
+ casino-url={'https://' + window.location.hostname + '/' + lang + casinourl}
653
+ contact-url={'https://' + window.location.hostname + '/' + lang + contacturl}
654
+ home-url={'https://' + window.location.hostname + '/' + lang + homeurl}
655
+ deposit-url={'https://' + window.location.hostname + '/' + lang + depositurl}
494
656
  ></user-deposit-withdrawal>
495
657
  {/if}
496
658
  </div>
@@ -501,7 +663,7 @@
501
663
  <svg xmlns="http://www.w3.org/2000/svg" width="15" height="16.429" viewBox="0 0 15 16.429">
502
664
  <defs>
503
665
  <style>.a {
504
- fill: var(--emfe-w-color-white, #FFFFFF);
666
+ fill: var(--emw-color-white, #FFFFFF);
505
667
  }
506
668
  </style>
507
669
  </defs>
@@ -519,13 +681,6 @@
519
681
  {:else}
520
682
  <header class="HeaderWrapper" bind:this={customStylingContainer}>
521
683
  <div class="HeaderContainer">
522
- <div class="HeaderBranding" on:click={()=>menuAction('lobby')}>
523
- {#if logoFromCms}
524
- <img src={logoPath} alt="Logo">
525
- {:else}
526
- <img src={everymatrixLogo} alt="Logo">
527
- {/if}
528
- </div>
529
684
 
530
685
  <nav class="HeaderMainNav">
531
686
  {#if !isLoading}
@@ -574,23 +729,23 @@
574
729
  {clientstylingurl}
575
730
  ></player-deposit>
576
731
  {:else}
577
- <user-deposit-withdrawal
578
- {endpoint}
579
- type="deposit"
732
+ <user-deposit-withdrawal
733
+ {endpoint}
734
+ type="deposit"
580
735
  channel="Desktop"
581
- language={lang}
736
+ language={lang}
582
737
  is-short-cashier={shortcashierenabled}
583
- product-type={producttype}
584
- user-id={userid}
585
- {session}
586
- success-url={'https://' + window.location.hostname + '/' + lang + successurl}
587
- cancel-url={'https://' + window.location.hostname + '/' + lang + cancelurl}
588
- fail-url={'https://' + window.location.hostname + '/' + lang + failurl}
589
- sports-url={'https://' + window.location.hostname + '/' + lang + sportsurl}
590
- casino-url={'https://' + window.location.hostname + '/' + lang + casinourl}
591
- contact-url={'https://' + window.location.hostname + '/' + lang + contacturl}
592
- home-url={'https://' + window.location.hostname + '/' + lang + homeurl}
593
- deposit-url={'https://' + window.location.hostname + '/' + lang + depositurl}
738
+ product-type={producttype}
739
+ user-id={userid}
740
+ {session}
741
+ success-url={'https://' + window.location.hostname + '/' + lang + successurl}
742
+ cancel-url={'https://' + window.location.hostname + '/' + lang + cancelurl}
743
+ fail-url={'https://' + window.location.hostname + '/' + lang + failurl}
744
+ sports-url={'https://' + window.location.hostname + '/' + lang + sportsurl}
745
+ casino-url={'https://' + window.location.hostname + '/' + lang + casinourl}
746
+ contact-url={'https://' + window.location.hostname + '/' + lang + contacturl}
747
+ home-url={'https://' + window.location.hostname + '/' + lang + homeurl}
748
+ deposit-url={'https://' + window.location.hostname + '/' + lang + depositurl}
594
749
  ></user-deposit-withdrawal>
595
750
  {/if}
596
751
  </div>
@@ -601,7 +756,7 @@
601
756
  <svg xmlns="http://www.w3.org/2000/svg" width="15" height="16.429" viewBox="0 0 15 16.429">
602
757
  <defs>
603
758
  <style>.a {
604
- fill: var(--emfe-w-color-white, #FFFFFF);
759
+ fill: var(--emw-color-white, #FFFFFF);
605
760
  }
606
761
  </style>
607
762
  </defs>
@@ -612,42 +767,6 @@
612
767
  </g>
613
768
  </svg>
614
769
  </div>
615
- {#if (languagesArray.length > 1) }
616
- {#if countryflagheader !== 'true'}
617
- <select bind:value={selectedLanguage} class="Item ItemLanguage NoFlag" on:change={()=>menuAction('language')}>
618
- {#each languagesArray as operatorLanguage}
619
- <option value={operatorLanguage} selected>{operatorLanguage.slice(-2)}</option>
620
- {/each}
621
- </select>
622
- {:else}
623
- <div class="LanguageDropdown">
624
- <!-- svelte-ignore a11y-click-events-have-key-events -->
625
- <div class="SelectedOption Item ItemLanguage" on:click={() => toggleLanguageDropdown()}>
626
- <span class="FlagIcon">
627
- <img src={`http://purecatamphetamine.github.io/country-flag-icons/3x2/${determineFlag(selectedLanguage.slice(-2))}.svg`}/>
628
- </span>
629
- <span class="LanguageName">{selectedLanguage.slice(-2)}</span>
630
- <span class="TriangleInactive {isOptionsListVisible ? 'TriangleActive' : ''}">
631
- <svg xmlns="http://www.w3.org/2000/svg" width="14" height="6.835" viewBox="0 0 14 6.835">
632
- <path id="arrow" d="M281.541,447.921a.488.488,0,0,0,.295-.122l6.5-5.851a.488.488,0,1,0-.65-.726l-6.176,5.556-6.176-5.556h0a.488.488,0,1,0-.65.726l6.5,5.851a.488.488,0,0,0,.355.122Z" transform="translate(-274.511 -441.088)" fill="#d1d1d1"/>
633
- </svg>
634
- </span>
635
- </div>
636
- {#if isOptionsListVisible}
637
- <div class="OptionList">
638
- {#each languagesArray as operatorLanguage}
639
- <div class="LanguageOption" on:click={() => selectLanguage(operatorLanguage)}>
640
- <span class="FlagIcon">
641
- <img src={`http://purecatamphetamine.github.io/country-flag-icons/3x2/${determineFlag(operatorLanguage.slice(-2))}.svg`}/>
642
- </span>
643
- <span class="LanguageName">{operatorLanguage.slice(-2)}</span>
644
- </div>
645
- {/each}
646
- </div>
647
- {/if}
648
- </div>
649
- {/if}
650
- {/if}
651
770
  </div>
652
771
  </div>
653
772
  </div>
@@ -671,7 +790,7 @@
671
790
  viewBox="0 0 22 16">
672
791
  <defs>
673
792
  <style>.a {
674
- fill: var(--emfe-w-color-white, #FFFFFF);
793
+ fill: var(--emw-color-white, #FFFFFF);
675
794
  }
676
795
  </style>
677
796
  </defs>
@@ -730,8 +849,8 @@
730
849
  <div class="HeaderTopActions">
731
850
  <div class="HeaderItemsMenu">
732
851
  <div class="Item ItemLogin" tabindex="0" on:click={()=>menuAction('login')}>{$_('login')}</div>
733
- <div class="Item ItemRegister" tabindex="0" on:click={()=>menuAction('register')}>{$_('register')}</div>
734
- {#if (languagesArray.length > 1) }
852
+ <div class="Item ItemRegister" tabindex="0" on:click={()=>menuAction('register')}>{$_('register')}</div>
853
+ {#if (languagesArray.length > 1) }
735
854
  {#if countryflagheader !== 'true'}
736
855
  <select bind:value={selectedLanguage} class="Item ItemLanguage NoFlag" on:change={()=>menuAction('language')}>
737
856
  {#each languagesArray as operatorLanguage}
@@ -781,12 +900,12 @@
781
900
  </header>
782
901
  {/if}
783
902
  {/if}
903
+ -->
784
904
 
785
905
  <casino-hamburger-menu menuitemsurl={hamburgerURL} {activecategory} {lang} {countryflaghamburger} {customlocaleidentifier} {languageslist} {clientstyling} {clientstylingurl}></casino-hamburger-menu>
786
906
 
787
907
  <style lang="scss">
788
-
789
- *,
908
+ *,
790
909
  *::before,
791
910
  *::after {
792
911
  font-family: inherit
@@ -796,10 +915,503 @@
796
915
  font-family: inherit;
797
916
  }
798
917
 
918
+ // ------> new stuff
919
+ .NavIcon {
920
+ width: 30px;
921
+ height: 28px;
922
+ position: relative;
923
+ margin: 50px auto;
924
+ -webkit-transform: rotate(0deg);
925
+ -moz-transform: rotate(0deg);
926
+ -o-transform: rotate(0deg);
927
+ transform: rotate(0deg);
928
+ -webkit-transition: .5s ease-in-out;
929
+ -moz-transition: .5s ease-in-out;
930
+ -o-transition: .5s ease-in-out;
931
+ transition: .5s ease-in-out;
932
+ cursor: pointer;
933
+
934
+ span {
935
+ display: block;
936
+ position: absolute;
937
+ height: 3px;
938
+ width: 100%;
939
+ background: #ffffff;
940
+ border-radius: 9px;
941
+ opacity: 1;
942
+ left: 0;
943
+ -webkit-transform: rotate(0deg);
944
+ -moz-transform: rotate(0deg);
945
+ -o-transform: rotate(0deg);
946
+ transform: rotate(0deg);
947
+ -webkit-transition: .25s ease-in-out;
948
+ -moz-transition: .25s ease-in-out;
949
+ -o-transition: .25s ease-in-out;
950
+ transition: .25s ease-in-out;
951
+ }
952
+
953
+ span:nth-child(1) {
954
+ top: 0px;
955
+ width: 80%;
956
+ }
957
+
958
+ span:nth-child(2) {
959
+ top: 9px;
960
+ }
961
+
962
+ span:nth-child(3) {
963
+ top: 18px;
964
+ }
965
+
966
+ &.Open {
967
+ // animation: growWidth 1s forwards;
968
+ }
969
+
970
+ &.Open span:nth-child(1) {
971
+ top: 9px;
972
+ width: 100%;
973
+ -webkit-transform: rotate(135deg);
974
+ -moz-transform: rotate(135deg);
975
+ -o-transform: rotate(135deg);
976
+ transform: rotate(135deg);
977
+ }
978
+
979
+ &.Open span:nth-child(2) {
980
+ opacity: 0;
981
+ left: -60px;
982
+ }
983
+
984
+ &.Open span:nth-child(3) {
985
+ top: 9px;
986
+ -webkit-transform: rotate(-135deg);
987
+ -moz-transform: rotate(-135deg);
988
+ -o-transform: rotate(-135deg);
989
+ transform: rotate(-135deg);
990
+ }
991
+ }
992
+
993
+
994
+
995
+ .Skeleton {
996
+ animation: skeleton-loading 1s linear infinite alternate;
997
+ }
998
+
999
+ @keyframes skeleton-loading {
1000
+ 0% {
1001
+ background-color: hsl(192, 2%, 45%);
1002
+ }
1003
+ 100% {
1004
+ background-color: hsl(200, 20%, 95%);
1005
+ }
1006
+ }
1007
+
1008
+ .SkeletonText {
1009
+ opacity: 0.5;
1010
+ margin: 0 15px;
1011
+ width: 125px;
1012
+ height: 15px;
1013
+ border-radius: 15px;
1014
+ }
1015
+
1016
+ .HeaderContainer {
1017
+ position: fixed;
1018
+ width: 100%;
1019
+ background-color: var(--emw-header-color-background, var(--emw-color-background, #000000));
1020
+ display: flex;
1021
+ flex-direction: column;
1022
+ align-items: center;
1023
+ user-select: none;
1024
+
1025
+ .MainNav {
1026
+ width: 99%;
1027
+ height: 84px;
1028
+ display: flex;
1029
+ gap: 5px;
1030
+ flex-direction: row;
1031
+ align-items: center;
1032
+ margin: 0 15px;
1033
+
1034
+ .HeaderMobileMainNav {
1035
+ display: flex;
1036
+ margin-left: 5px;
1037
+ }
1038
+
1039
+ .Logo {
1040
+ display: flex;
1041
+ justify-content: center;
1042
+ align-items: center;
1043
+ width: 10%;
1044
+ min-width: 75px;
1045
+ transition: all .2s;
1046
+
1047
+ .HeaderBranding {
1048
+ width: 140px;
1049
+ cursor: pointer;
1050
+ img {
1051
+ width: 100%;
1052
+ }
1053
+ @media only screen and (max-width: 360px) {
1054
+ margin-right: 0;
1055
+ }
1056
+ }
1057
+
1058
+ &:active {
1059
+ opacity: .9;
1060
+ transform: scale(1.02);
1061
+ }
1062
+ }
1063
+
1064
+ .BalanceDepositWrapper {
1065
+ height: 34px;
1066
+ background-color: white;
1067
+ display: flex;
1068
+ justify-content: center;
1069
+ align-items: center;
1070
+ border-radius: 30px;
1071
+ padding: 0 0 0 10px;
1072
+
1073
+ .Deposit {
1074
+ display: flex;
1075
+ align-items: center;
1076
+ cursor: pointer;
1077
+ justify-content: center;
1078
+
1079
+ .DepositButton {
1080
+ border-radius: 30px;
1081
+ height: 34px;
1082
+ width: 100px;
1083
+ background: linear-gradient(0deg, rgba(35,178,78,1) 0%, rgba(26,205,80,1) 100%) padding-box,
1084
+ linear-gradient(180deg, rgba(35,178,78,.2) 0%, rgba(26,205,80,.2) 100%) border-box;
1085
+ font-size: 14px;
1086
+ text-align: center;
1087
+ cursor: pointer;
1088
+ transition: all .5s linear;
1089
+ display: flex;
1090
+ justify-content: center;
1091
+ align-items: center;
1092
+ p {
1093
+ text-transform: uppercase;
1094
+ color: white;
1095
+ }
1096
+
1097
+ &:hover {
1098
+ background: linear-gradient(180deg, rgba(35,178,78,1) 0%, rgba(26,205,80,1) 100%) padding-box,
1099
+ linear-gradient(0deg, rgba(35,178,78,.2) 0%, rgba(26,205,80,.2) 100%) border-box;
1100
+ }
1101
+
1102
+ &:active {
1103
+ background: linear-gradient(0deg, rgba(35,178,78,1) 0%, rgba(26,205,80,1) 100%) padding-box,
1104
+ linear-gradient(180deg, rgba(35,178,78,.2) 0%, rgba(26,205,80,.2) 100%) border-box;
1105
+ }
1106
+ }
1107
+ }
1108
+
1109
+ .Balance {
1110
+ }
1111
+ }
1112
+
1113
+ .Profile {
1114
+ display: flex;
1115
+ justify-content: center;
1116
+ flex-direction: column;
1117
+
1118
+ .ProfileWrapper {
1119
+ width: 30px;
1120
+ height: 30px;
1121
+ background-color: orange;
1122
+ border-radius: 50px;
1123
+ display: flex;
1124
+ justify-content: center;
1125
+ align-items: center;
1126
+
1127
+ svg {
1128
+ width: 15px;
1129
+ height: 16px;
1130
+ fill: var(--emw-color-white, #FFFFFF)
1131
+ }
1132
+ }
1133
+ }
1134
+
1135
+ .PrimaryMenu {
1136
+ display: flex;
1137
+ flex-direction: row;
1138
+ align-items: center;
1139
+ width: 100%;
1140
+
1141
+ .ItemMenu {
1142
+ color: white;
1143
+ margin: 0 20px;
1144
+ text-transform: uppercase;
1145
+ height: 84px;
1146
+ transition: all .5s;
1147
+ cursor: pointer;
1148
+
1149
+ &:after {
1150
+ content: "";
1151
+ display: block;
1152
+ height: 5px;
1153
+ width: 100%;
1154
+ cursor: pointer;
1155
+ background-color: pink;
1156
+ position: relative;
1157
+ }
1158
+
1159
+ .MenuHover {
1160
+ width: 0px;
1161
+ transition: transform 0.3s ease-in-out;
1162
+ transform-origin: center;
1163
+ transform: scaleX(0);
1164
+ }
1165
+
1166
+ p {
1167
+ height: 33px;
1168
+ margin-top: 35px;
1169
+ }
1170
+
1171
+ &:hover, &.Active {
1172
+ color: #22B04F;
1173
+
1174
+ .MenuHover {
1175
+ transform: scaleX(1);
1176
+ opacity: 1;
1177
+ background-color: rgba(255, 255, 255, 0.5);
1178
+ width: 100%;
1179
+ position: relative;
1180
+ height: 5px;
1181
+ z-index: 4;
1182
+ }
1183
+ }
1184
+
1185
+ &:active {
1186
+ color: rgba(255,255,255,1);
1187
+ }
1188
+ }
1189
+ }
1190
+
1191
+ .AuthButtons {
1192
+ display: flex;
1193
+ flex-direction: row;
1194
+ justify-content: center;
1195
+ align-items: center;
1196
+
1197
+ .Item {
1198
+ gap: 5px;
1199
+ padding: 0 25px;
1200
+ display: flex;
1201
+ align-items: center;
1202
+ color: white;
1203
+
1204
+ &.ItemLogin {
1205
+ font-size: 14px;
1206
+ height: 36px;
1207
+ text-align: center;
1208
+ margin-right: 10px;
1209
+ position: relative;
1210
+ cursor: pointer;
1211
+ background: linear-gradient(0deg, rgba(231,145,28,1) 0%, rgba(224,169,76,1) 100%) padding-box,
1212
+ linear-gradient(180deg, rgba(231,145,28,.2) 0%, rgba(224,169,76,.2) 100%) border-box;
1213
+ border-radius: 30px;
1214
+ border: 2px solid transparent;
1215
+ transition: all .3s linear;
1216
+
1217
+ &:hover {
1218
+ color: white;
1219
+ background: linear-gradient(180deg, rgba(231,145,28,1) 0%, rgba(224,169,76,1) 100%) padding-box,
1220
+ linear-gradient(0deg, rgba(231,145,28,.2) 0%, rgba(224,169,76,.2) 100%) border-box;
1221
+ border: 2px solid white;
1222
+ }
1223
+
1224
+ &:active {
1225
+ background: linear-gradient(0deg, rgba(231,145,28,1) 0%, rgba(224,169,76,1) 100%) padding-box,
1226
+ linear-gradient(180deg, rgba(231,145,28,.4) 0%, rgba(224,169,76,.4) 100%) border-box;
1227
+ }
1228
+ }
1229
+
1230
+ &.ItemRegister {
1231
+ background: linear-gradient(0deg, rgba(35,178,78,1) 0%, rgba(26,205,80,1) 100%) padding-box,
1232
+ linear-gradient(180deg, rgba(35,178,78,.2) 0%, rgba(26,205,80,.2) 100%) border-box;
1233
+ border-radius: 30px;
1234
+ border: 2px solid transparent;
1235
+ font-size: 14px;
1236
+ height: 36px;
1237
+ text-align: center;
1238
+ line-height: 44px;
1239
+ cursor: pointer;
1240
+ transition: all .3s linear;
1241
+
1242
+ &:hover {
1243
+ background: linear-gradient(180deg, rgba(35,178,78,1) 0%, rgba(26,205,80,1) 100%) padding-box,
1244
+ linear-gradient(0deg, rgba(35,178,78,.2) 0%, rgba(26,205,80,.2) 100%) border-box;
1245
+ border: 2px solid white;
1246
+ }
1247
+
1248
+ &:active {
1249
+ background: linear-gradient(0deg, rgba(35,178,78,1) 0%, rgba(26,205,80,1) 100%) padding-box,
1250
+ linear-gradient(180deg, rgba(35,178,78,.2) 0%, rgba(26,205,80,.2) 100%) border-box;
1251
+ }
1252
+ }
1253
+
1254
+ svg {
1255
+ width: 15px;
1256
+ height: 15px;
1257
+ fill: white;
1258
+ padding-bottom: 2px;
1259
+ }
1260
+ }
1261
+ }
1262
+
1263
+ .Slot1 {}
1264
+ .Slot2 {}
1265
+ .Slot3 {}
1266
+ .LanguageSelector {
1267
+ align-content: center;
1268
+ height: 100%;
1269
+ cursor: pointer;
1270
+ transform: all .3s linear;
1271
+
1272
+ .SelectedOption {
1273
+ display: flex;
1274
+ align-items: center;
1275
+ justify-content: center;
1276
+
1277
+ .TriangleActive, .TriangleInactive {
1278
+ display: block;
1279
+ color: currentColor;
1280
+ margin: 0 0 0 10px;
1281
+ transition: all .2s;
1282
+ &:hover {
1283
+ transform: scale(1.2);
1284
+ }
1285
+
1286
+ svg{
1287
+ margin: 2px 0px;
1288
+ }
1289
+ }
1290
+
1291
+ .TriangleActive {
1292
+ transform: scale(1.1) rotateX(180deg);
1293
+ margin-bottom: 5px;
1294
+
1295
+ &:hover {
1296
+ transform: scale(1.1) rotateX(180deg);
1297
+ }
1298
+ }
1299
+ }
1300
+ .LanguageName {
1301
+ .ItemLanguage {
1302
+ display: flex;
1303
+ justify-content: space-around;
1304
+ }
1305
+
1306
+ svg {
1307
+ width: 30px;
1308
+ border-radius: 20px;
1309
+ }
1310
+ }
1311
+
1312
+ .OptionList {
1313
+ border: 1px solid var(--emw-header-color-primary);
1314
+ padding: 10px;
1315
+ position: absolute;
1316
+ cursor: pointer;
1317
+ display: flex;
1318
+ gap: 4px;
1319
+ flex-direction: column;
1320
+ border-radius: 10px;
1321
+ opacity: 0;
1322
+ transition: all 0.4s;
1323
+ z-index: 6;
1324
+ right: 5px;
1325
+ color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
1326
+ background: var(--emw-header-color-secondary-menu-bg, var(--emw-color-background-secondary, #050518));
1327
+
1328
+ &.Active {
1329
+ opacity: 1;
1330
+ }
1331
+
1332
+ .FlagIcon {
1333
+ width: 16px;
1334
+
1335
+ svg {
1336
+ border-radius: 5px;
1337
+ }
1338
+ }
1339
+
1340
+ .LanguageOption {
1341
+ display: flex;
1342
+ align-items: center;
1343
+ transform: scale(1.1);
1344
+ gap: 3px;
1345
+ background: black;
1346
+ padding: 7px;
1347
+
1348
+ &:hover {
1349
+ transition: all .5s;
1350
+ color: black;
1351
+ background-color: var(--emw-header-color-primary, var(--emw-color-primary, #22B04F));
1352
+ border-radius: 20px;
1353
+ }
1354
+ }
1355
+ }
1356
+ }
1357
+ }
1358
+
1359
+ .Separator {
1360
+ width: 100%;
1361
+ height: 5px;
1362
+ background: rgb(0,0,0);
1363
+ background: linear-gradient(90deg, rgba(0,0,0,1) 0%, rgba(35,172,77,1) 50%, rgba(0,0,0,1) 100%);
1364
+ z-index: 3;
1365
+ }
1366
+
1367
+ .SecondaryNav {
1368
+ width: 100%;
1369
+ height: 50px;
1370
+ display: flex;
1371
+ align-items: center;
1372
+ background: linear-gradient(90deg, rgba(35,172,77,1) 0%, rgba(18,62,33,1) 100%);
1373
+ z-index: 3;
1374
+
1375
+ .LeftSpace {
1376
+ width: 10%;
1377
+ }
1378
+
1379
+ .SecondaryMenuContent {
1380
+ text-transform: uppercase;
1381
+ margin: 0 20px;
1382
+ color: white;
1383
+ transition: all .5s;
1384
+ display: flex;
1385
+ cursor: pointer;
1386
+ user-select: none;
1387
+
1388
+ .Active {
1389
+ transition: all .5s;
1390
+ color: black;
1391
+
1392
+ &:hover {
1393
+ opacity: .5;
1394
+ color: white;
1395
+ }
1396
+ }
1397
+
1398
+ &:hover {
1399
+ color: black;
1400
+ }
1401
+
1402
+ &:active {
1403
+ color: white;
1404
+ }
1405
+ }
1406
+ }
1407
+ }
1408
+
1409
+ // ------> old stuff
1410
+
799
1411
  @keyframes ModalBounce {
800
1412
  0% {
801
1413
  opacity: 0;
802
- transform: translateY(20px);
1414
+ transform: translateY(20px);
803
1415
  }
804
1416
  50% {
805
1417
  transform: translateY(-6px);
@@ -822,11 +1434,6 @@
822
1434
  height: 400px;
823
1435
  }
824
1436
 
825
- .LanguageDropdown {
826
- margin-right: 16px;
827
- position: relative;
828
- display: inline-block;
829
- }
830
1437
 
831
1438
  .ClosePopUpButtonShortCashier{
832
1439
  margin-left: auto;
@@ -855,18 +1462,18 @@
855
1462
  right: 60%;
856
1463
  }
857
1464
  .ShortCashierContainer{
858
- background-color: var(--emfe-w-color-white, #FFFFFF);
1465
+ background-color: var(--emw-color-white, #FFFFFF);
859
1466
  position: absolute;
860
1467
  width: 360px;
861
1468
  top: 16px;
862
1469
  transform: translateX(-60%);
863
- box-shadow: 0px 30px 30px var(--emfe-w-header-color-primary, var(--emfe-w-color-primary, #D0046C));
1470
+ box-shadow: 0px 30px 30px var(--emw-header-color-primary, var(--emw-color-primary, #D0046C));
864
1471
  border-radius: 5px;
865
1472
  z-index: 17;
866
1473
  box-shadow: 0px 5px 20px 0px #191919;
867
1474
  &:before {
868
1475
  content: "";
869
- background: var(--emfe-w-color-white, #FFFFFF);
1476
+ background: var(--emw-color-white, #FFFFFF);
870
1477
  clip-path: polygon(50% 0, 0% 100%, 100% 100%);
871
1478
  position: absolute;
872
1479
  top: -8px;
@@ -875,7 +1482,7 @@
875
1482
  height: 10px;
876
1483
  transform: translateX(-50%);
877
1484
  z-index: 1;
878
- }
1485
+ }
879
1486
  }
880
1487
 
881
1488
  .ShortCashierContainerWrapperMobile{
@@ -885,19 +1492,19 @@
885
1492
  z-index: 17;
886
1493
  }
887
1494
  .ShortCashierContainerMobile {
888
- background-color: var(--emfe-w-color-white, #FFFFFF);
1495
+ background-color: var(--emw-color-white, #FFFFFF);
889
1496
  position: absolute;
890
1497
  width: 80vw;
891
1498
  top: 14px;
892
1499
  left: 50%;
893
1500
  transform: translateX(-60%);
894
- box-shadow: 0px 30px 30px var(--emfe-w-header-color-primary, var(--emfe-w-color-primary, #D0046C));
1501
+ box-shadow: 0px 30px 30px var(--emw-header-color-primary, var(--emw-color-primary, #D0046C));
895
1502
  border-radius: 5px;
896
1503
  z-index: 17;
897
1504
  box-shadow: 0px 5px 20px 0px #191919;
898
1505
  &:before {
899
1506
  content: "";
900
- background: var(--emfe-w-color-white, #FFFFFF);
1507
+ background: var(--emw-color-white, #FFFFFF);
901
1508
  clip-path: polygon(50% 0, 0% 100%, 100% 100%);
902
1509
  position: absolute;
903
1510
  top: -8px;
@@ -909,19 +1516,6 @@
909
1516
  }
910
1517
  }
911
1518
 
912
- .SelectedOption,
913
- .OptionList {
914
- border: 1px solid var(--emfe-w-header-color-primary);
915
- padding: 8px;
916
- cursor: pointer;
917
- width: 76px;
918
- border-radius: 4px;
919
- }
920
-
921
- .SelectedOption {
922
- display: flex;
923
- align-items: center;
924
- }
925
1519
 
926
1520
  .FlagIcon img {
927
1521
  width: 20px;
@@ -930,75 +1524,14 @@
930
1524
  border-radius: 2px;
931
1525
  }
932
1526
 
933
- .OptionList {
934
- position: absolute;
935
- z-index: 1;
936
- color: var(--emfe-w-header-typography, var(--emfe-w-color-white, #FFFFFF));
937
- background: var(--emfe-w-header-color-secondary-menu-bg, var(--emfe-w-color-background-secondary, #050518));
938
- max-height: 150px;
939
- overflow-y: auto;
940
- }
941
1527
 
942
- .LanguageOption {
943
- display: flex;
944
- align-items: center;
945
- padding: 4px;
946
- }
947
-
948
- .TriangleInactive {
949
- display: block;
950
- color: currentColor;
951
- margin: 0 0 0 10px;
952
- transition: all .5s;
953
-
954
- svg{
955
- margin: 2px 0px;
956
- }
957
- }
958
-
959
- .TriangleActive {
960
- transform: rotate(180deg);
961
- position: relative;
962
-
963
- svg{
964
- margin: 2px 0px;
965
- }
966
- }
967
1528
 
968
- .LanguageOption:hover {
969
- background-color: var(--emfe-w-header-color-primary, var(--emfe-w-color-primary, #D0046C));
970
- border-radius: 2px;
971
- }
972
1529
  .HeaderWrapper {
973
- background: var(--emfe-w-header-color-menu-bg, var(--emfe-w-color-background-secondary, #050518));
1530
+ background: var(--emw-header-color-menu-bg, var(--emw-color-background-secondary, #050518));
974
1531
  }
975
1532
 
976
- .HeaderContainer {
977
- max-width: 1300px;
978
- display: flex;
979
- flex-direction: row;
980
- align-items: center;
981
- height: 84px;
982
- margin: 0 auto;
983
- }
984
1533
 
985
- .HeaderMobileMainNav {
986
- display: flex;
987
- align-items: center;
988
- }
989
1534
 
990
- .HeaderBranding {
991
- width: 140px;
992
- margin-right: 15px;
993
- cursor: pointer;
994
- img {
995
- width: 100%;
996
- }
997
- @media only screen and (max-width: 360px) {
998
- margin-right: 0;
999
- }
1000
- }
1001
-
1002
1535
  .HeaderMainNav {
1003
1536
  text-align: left;
1004
1537
  }
@@ -1011,8 +1544,8 @@
1011
1544
  .HeaderSecondaryNav {
1012
1545
  flex-direction: row;
1013
1546
  width: 100%;
1014
- background: var(--emfe-w-header-color-secondary-menu-bg, var(--emfe-w-color-background-secondary, #050518));
1015
- border-top: 1px solid var(--emfe-w-color-gray-300, #58586B);
1547
+ background: var(--emw-header-color-secondary-menu-bg, var(--emw-color-background-secondary, #050518));
1548
+ border-top: 1px solid var(--emw-color-gray-300, #58586B);
1016
1549
  }
1017
1550
 
1018
1551
  .HeaderItemsMenu {
@@ -1021,7 +1554,7 @@
1021
1554
  align-content: flex-start;
1022
1555
  list-style: none;
1023
1556
  text-transform: uppercase;
1024
- color: var(--emfe-w-header-typography, var(--emfe-w-color-white, #FFFFFF));
1557
+ color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
1025
1558
  font-size: 16px;
1026
1559
  align-items: center;
1027
1560
 
@@ -1043,43 +1576,20 @@
1043
1576
  }
1044
1577
  }
1045
1578
 
1046
- .Item a {
1047
- color: var(--emfe-w-header-typography, var(--emfe-w-color-white, #FFFFFF));
1579
+ /*.Item a {
1580
+ color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
1048
1581
  text-decoration: none;
1049
1582
  border-top: 1px solid transparent;
1050
1583
  }
1051
1584
 
1052
1585
  .Item a:hover {
1053
- color: var(--emfe-w-header-color-primary, var(--emfe-w-color-primary, #D0046C));
1054
- border-top: 1px solid var(--emfe-w-header-color-primary, var(--emfe-w-color-primary, #D0046C));
1586
+ color: var(--emw-header-color-primary, var(--emw-color-primary, #D0046C));
1587
+ border-top: 1px solid var(--emw-header-color-primary, var(--emw-color-primary, #D0046C));
1055
1588
  padding-top: 5px;
1056
- }
1057
-
1058
- .ItemLogin {
1059
- border-radius: 5px;
1060
- background: transparent;
1061
- font-size: 14px;
1062
- font-weight: 600;
1063
- border: solid 1px var(--emfe-w-header-typography, var(--emfe-w-color-white, #FFFFFF));
1064
- height: 44px;
1065
- text-align: center;
1066
- line-height: 44px;
1067
- margin-right: 10px;
1068
- cursor: pointer;
1069
- }
1070
-
1071
- .ItemRegister, .ItemDeposit {
1072
- border-radius: 5px;
1073
- background: var(--emfe-w-header-color-primary, var(--emfe-w-color-primary, #D0046C));
1074
- font-size: 14px;
1075
- height: 44px;
1076
- text-align: center;
1077
- line-height: 44px;
1078
- cursor: pointer;
1079
- }
1589
+ }*/
1080
1590
 
1081
1591
  .ItemDeposit {
1082
- background: var(--emfe-w-header-color-primary, var(--emfe-w-color-primary, #D0046C));
1592
+ background: var(--emw-header-color-primary, var(--emw-color-primary, #D0046C));
1083
1593
  }
1084
1594
 
1085
1595
  .ItemLanguage {
@@ -1088,7 +1598,7 @@
1088
1598
  text-align: center;
1089
1599
  line-height: 44px;
1090
1600
  background: transparent;
1091
- color: var(--emfe-w-header-typography, var(--emfe-w-color-white, #FFFFFF));
1601
+ color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
1092
1602
  border: none;
1093
1603
  cursor: pointer;
1094
1604
  outline: none;
@@ -1097,12 +1607,12 @@
1097
1607
  appearance: none;
1098
1608
 
1099
1609
  option {
1100
- color: var(--emfe-w-header-typography, var(--emfe-w-color-white, #FFFFFF));
1610
+ color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
1101
1611
  }
1102
1612
  }
1103
1613
 
1104
1614
  .ItemLanguage.NoFlag{
1105
- 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-header-color-menu-bg, var(--emfe-w-color-background-secondary, #050518));
1615
+ 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(--emw-header-color-menu-bg, var(--emw-color-background-secondary, #050518));
1106
1616
  background-position: calc(100% - 0.75rem) center;
1107
1617
  width: 90px;
1108
1618
  margin-right: 6px;
@@ -1110,7 +1620,7 @@
1110
1620
 
1111
1621
  .ItemBalance {
1112
1622
  background: transparent;
1113
- color: var(--emfe-w-header-typography, var(--emfe-w-color-white, #FFFFFF));
1623
+ color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
1114
1624
  border: 0;
1115
1625
  }
1116
1626
 
@@ -1131,7 +1641,7 @@
1131
1641
  height: 60px;
1132
1642
  list-style: none;
1133
1643
  text-transform: uppercase;
1134
- color: var(--emfe-w-header-typography, var(--emfe-w-color-white, #FFFFFF));
1644
+ color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
1135
1645
  font-size: 14px;
1136
1646
  max-width: 1280px;
1137
1647
  margin: 0 auto;
@@ -1150,7 +1660,7 @@
1150
1660
  transition-duration: 0.15s;
1151
1661
 
1152
1662
  button {
1153
- color: var(--emfe-w-header-typography, var(--emfe-w-color-white, #FFFFFF));
1663
+ color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
1154
1664
  text-decoration: none;
1155
1665
  border: none;
1156
1666
  background: none;
@@ -1159,24 +1669,24 @@
1159
1669
  text-transform: uppercase;
1160
1670
  cursor: pointer;
1161
1671
  &:hover {
1162
- color: var(--emfe-w-header-color-primary, var(--emfe-w-color-primary, #D0046C));
1672
+ color: var(--emw-header-color-primary, var(--emw-color-primary, #D0046C));
1163
1673
  }
1164
1674
 
1165
1675
  &:focus {
1166
- color: var(--emfe-w-header-color-primary, var(--emfe-w-color-primary, #D0046C));
1676
+ color: var(--emw-header-color-primary, var(--emw-color-primary, #D0046C));
1167
1677
  }
1168
1678
 
1169
1679
  &:visited {
1170
- color: var(--emfe-w-header-typography, var(--emfe-w-color-white, #FFFFFF));
1680
+ color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
1171
1681
  }
1172
1682
 
1173
1683
  &:focus-visible {
1174
- color: var(--emfe-w-header-typography, var(--emfe-w-color-white, #FFFFFF));
1684
+ color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
1175
1685
  outline: none;
1176
1686
  }
1177
1687
  }
1178
1688
  &.active {
1179
- background: var(--emfe-w-header-color-primary, var(--emfe-w-color-primary, #D0046C));
1689
+ background: var(--emw-header-color-primary, var(--emw-color-primary, #D0046C));
1180
1690
  }
1181
1691
  }
1182
1692
 
@@ -1194,12 +1704,6 @@
1194
1704
  }
1195
1705
  }
1196
1706
 
1197
- .HeaderBranding {
1198
- width: 110px;
1199
- display: flex;
1200
- align-items: center;
1201
- }
1202
-
1203
1707
  .HeaderItemsMenu {
1204
1708
  .Item {
1205
1709
  padding: 0 10px;