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