@everymatrix/casino-header-controller 1.37.3 → 1.37.4

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