@everymatrix/casino-hamburger-menu-nd 1.44.0 → 1.45.2

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.
@@ -1,820 +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 { TRANSLATIONS } from './translations';
8
-
9
- import * as countryFlags from 'country-flag-icons/string/3x2';
10
-
11
- export let menuitemsurl:string = '';
12
- export let cmsendpoint: string;
13
- export let cmsenv: string = 'stage';
14
- export let userroles: string;
15
- export let lang:string = 'en';
16
- export let activecategory:string = '';
17
- export let languageslist:string = '';
18
- export let translationurl:string = '';
19
- export let clientstyling:string = '';
20
- export let clientstylingurl:string = '';
21
- export let customlocaleidentifier:string = '';
22
- export let countryflaghamburger:string = '';
23
-
24
- let modalElement:any;
25
- // let isLoggedIn:Boolean = false;
26
- let mobileView:Boolean = false;
27
- let userAgent:String = window.navigator.userAgent;
28
- let HamburgerMenuItems:Array<Object> = [];
29
- let HamburgerMenuData:any;
30
- let activeMenuItemId:any = '';
31
- let activeMenuItemChildren:Array<Object> = [];
32
- let modalIsOpen:boolean = false;
33
- let show:boolean = false;
34
- let isLoading:boolean = true;
35
- let languagesArray:Array<string> = [];
36
- let languageChanged:boolean = false;
37
- let isOptionsListVisible:boolean = false;
38
- let languageListOpen: boolean = false;
39
- let isClosing: boolean = false;
40
- let navIconClosing: boolean = true;
41
- let hamburgerURL: URL;
42
-
43
- let selectedLanguage = '';
44
- let customStylingContainer:HTMLElement;
45
-
46
- // setupI18n({ withLocale: 'en', translations: {}});
47
-
48
- const setTranslationUrl = (): void => {
49
- fetch(translationurl).then((res: any): void => res.json())
50
- .then((res: any): void => {
51
- Object.keys(res).forEach((item: any): void => {
52
- addNewMessages(item, res[item]);
53
- });
54
- }).catch((err: any) => {
55
- console.log(err);
56
- });
57
- }
58
-
59
- Object.keys(TRANSLATIONS).forEach((item: any): void => {
60
- addNewMessages(item, TRANSLATIONS[item]);
61
- });
62
-
63
- const createCMSUrl = (): void => {
64
- hamburgerURL = new URL(`${cmsendpoint}/${selectedLanguage.toLowerCase()}/hamburger-menu`);
65
-
66
- let device = getDevice(userAgent);
67
-
68
- if (device) {
69
- if (device === 'PC'){
70
- hamburgerURL.searchParams.append('device', 'dk');
71
- } else if (device === 'iPad' || device === 'iPhone') {
72
- hamburgerURL.searchParams.append('device', 'mtWeb'); // replace with ios when we will have a native ios up for this
73
- } else {
74
- hamburgerURL.searchParams.append('device', 'mtWeb');
75
- }
76
- }
77
- hamburgerURL.searchParams.append('env', cmsenv);
78
- hamburgerURL.searchParams.append('language', selectedLanguage.toLowerCase());
79
- hamburgerURL.searchParams.append('userRoles', userroles);
80
- }
81
-
82
- const close = (): void => {
83
- isClosing = true;
84
- navIconClosing = true;
85
- isOptionsListVisible = false;
86
- languageListOpen = false;
87
- setTimeout(() => {
88
- show = false;
89
- modalIsOpen = false;
90
- }, 850)
91
- window.postMessage({ type: 'CloseHamburgerMenu', showhamburger: true }, window.location.href);
92
- };
93
-
94
- const messageHandler = (e: any): void => {
95
- if (e.data.type === 'OpenHamburgerMenuModal') {
96
- window.postMessage({ type: 'DisableScroll'}, window.location.href);
97
- isClosing = false;
98
- setTimeout(() => {
99
- navIconClosing = false;
100
- }, 125);
101
- show = true;
102
- modalIsOpen = true;
103
-
104
- createCMSUrl();
105
- getHamburgerMenuData(hamburgerURL);
106
- }
107
-
108
- if (e.data.type === 'LanguageChanged') {
109
- languageChanged = true;
110
- createCMSUrl();
111
- getHamburgerMenuData(hamburgerURL);
112
- }
113
- }
114
-
115
- const changeMenu = (id: number, children: any): void => {
116
- activeMenuItemId = id;
117
- // check first if primary menu item has children
118
- activeMenuItemChildren = children ? children : [];
119
-
120
- //Analytics event
121
- if(typeof gtag == 'function'){
122
- gtag('event', 'ChangeMenu', {
123
- 'context': 'HamburgerMenu',
124
- 'menuItem' : `${activeMenuItemId}`
125
- });
126
- }
127
- }
128
-
129
- const setActiveIndex = ():void => {
130
- let activeMenu: any = HamburgerMenuItems.filter((item: any): boolean => {
131
- let confirmActiveMenu: boolean = false;
132
-
133
- item.children?.forEach(element => {
134
- if (element.path.includes(activecategory)) confirmActiveMenu = true;
135
- });
136
-
137
- return confirmActiveMenu;
138
- });
139
-
140
- if (activeMenu.length > 0) {
141
- changeMenu(activeMenu[0].id, activeMenu[0].children);
142
- }
143
- }
144
-
145
- const getHamburgerMenuData = (url: URL): void => {
146
- if (!(HamburgerMenuData && !languageChanged)) {
147
- updateMenus(url);
148
- }
149
- }
150
-
151
- const updateMenus = (url: URL): void => {
152
- fetch(url)
153
- .then((res: any): void => res.json())
154
- .then((data: any): void => {
155
- HamburgerMenuItems = data.filter(menuItems => menuItems?.type !== 'banner');
156
- setActiveIndex();
157
- isLoading = false;
158
-
159
- HamburgerMenuData = data;
160
- languageChanged = false;
161
- }, (err: any): void => {
162
- console.error(err);
163
- });
164
- }
165
-
166
- let handleClick = (item: any): void => {
167
- window.postMessage({ type: 'NavigateTo', path: item.path, externalLink: item.externalLink || false, target: item.attrs.target || null }, window.location.href);
168
- close();
169
- };
170
-
171
- const sendLangChange = (): void => {
172
- languageChanged = true;
173
- window.postMessage({type: 'LanguageChanged', selectedLanguage}, window.location.href);
174
- }
175
-
176
- const initialLoad = (): void => {
177
- setLocale(lang);
178
- createCMSUrl();
179
- if (languageChanged) {
180
- updateMenus(hamburgerURL);
181
- }
182
-
183
- languagesArray = languageslist.replace(/ /g,'').split(',');
184
- languagesArray = languagesArray.map((language:string) => language.toUpperCase());
185
-
186
- selectedLanguage = lang.toUpperCase();
187
- }
188
-
189
- const selectLanguage = (operatorLanguage:string): void => {
190
- selectedLanguage = operatorLanguage;
191
- setTimeout(() => {
192
- languageListOpen = false;
193
- }, 250)
194
- setTimeout(() => {
195
- isOptionsListVisible = false;
196
- }, 500);
197
- sendLangChange();
198
- }
199
-
200
- const toggleLanguageDropdown = (): void => {
201
- if (isOptionsListVisible) {
202
- setTimeout(() => {
203
- isOptionsListVisible = false;
204
- }, 250);
205
- languageListOpen = false;
206
- } else {
207
- isOptionsListVisible = true;
208
-
209
- setTimeout(() => {
210
- languageListOpen = true;
211
- }, 250);
212
- }
213
- }
214
-
215
- const determineFlag = (operatorLanguage?: string): string => {
216
- let flag = operatorLanguage ? operatorLanguage.slice(-2) : selectedLanguage.slice(-2);
217
-
218
- if (customlocaleidentifier) {
219
- flag =
220
- customlocaleidentifier.includes(flag.toLowerCase()) ?
221
- customlocaleidentifier.slice(-2) :
222
- flag;
223
- }
224
-
225
- return flag == 'EN' ? 'US' : flag.toUpperCase();
226
- }
227
-
228
- const setClientStyling = ():void => {
229
- let sheet = document.createElement('style');
230
- sheet.innerHTML = clientstyling;
231
- customStylingContainer.appendChild(sheet);
232
- }
233
-
234
- const setClientStylingURL = ():void => {
235
- let url:URL = new URL(clientstylingurl);
236
- let cssFile:HTMLElement = document.createElement('style');
237
-
238
- fetch(url.href)
239
- .then((res:any) => res.text())
240
- .then((data:any) => {
241
- cssFile.innerHTML = data
242
-
243
- setTimeout(() => { customStylingContainer.appendChild(cssFile) }, 1);
244
- });
245
- }
246
-
247
- onMount(() => {
248
- window.addEventListener('message', messageHandler, false);
249
- if(isMobile(userAgent)) {
250
- mobileView = true;
251
- }
252
- return () => {
253
- window.removeEventListener('message', messageHandler);
254
- }
255
- });
256
-
257
- $: cmsendpoint && cmsenv && lang && languageslist && initialLoad();
258
- $: activecategory && !isLoading && setActiveIndex();
259
- $: translationurl && setTranslationUrl();
260
- $: clientstyling && customStylingContainer && setClientStyling();
261
- $: clientstylingurl && customStylingContainer && setClientStylingURL();
262
- </script>
263
-
264
- <div bind:this={customStylingContainer}>
265
- {#if show === true}
266
- <div bind:this={modalElement} class="HamburgerModalWindow {isClosing ? ' Closing' : ''}">
267
- <div class="HamburgerModalContainer {modalIsOpen ? 'ActiveHamburgerMenu' : ''} {isClosing ? 'Closing' : ''}">
268
- <ul class="HamburgerPrimaryMenu">
269
- {#if HamburgerMenuItems.length > 0}
270
- {#each HamburgerMenuItems as mainItem}
271
- <!-- svelte-ignore a11y-click-events-have-key-events -->
272
- <li class="{activeMenuItemId === mainItem.id ? 'ActiveItem' : ''}" on:click={()=>changeMenu(mainItem.id, mainItem.children)}>
273
- <div class="HamburgerItemContainer">
274
- <img src={mainItem.img} alt="menu icon" />
275
- <p>{mainItem.label}</p>
276
- </div>
277
- </li>
278
- {/each}
279
- {:else}
280
- {#each new Array(5) as item}
281
- <div class="Loading Skeleton">
282
- </div>
283
- {/each}
284
- {/if}
285
- </ul>
286
- <div class="Separator"></div>
287
- <ul class="HamburgerSecondaryMenu {isOptionsListVisible ? 'Overlay' : ''}">
288
- {#each activeMenuItemChildren as secondaryItem}
289
- <!-- svelte-ignore a11y-click-events-have-key-events -->
290
- <li on:click={e => { handleClick(secondaryItem); e.preventDefault()}}>
291
- <img src={secondaryItem.img} alt="menu icon" />
292
- <p>{secondaryItem.label}</p>
293
- </li>
294
- {/each}
295
- </ul>
296
- {#if (languagesArray.length > 1) }
297
- <!-- svelte-ignore a11y-click-events-have-key-events -->
298
- <div class="LanguageSelector {isOptionsListVisible ? 'Open' : ''}" on:click={toggleLanguageDropdown}>
299
- <span class="LanguageSelectorTitle">{$_('language')}</span>
300
- {#if countryflaghamburger !== 'true'}
301
- <select bind:value={selectedLanguage} class="Item ItemLanguage NoFlag" on:change={()=>sendLangChange()}>
302
- {#each languagesArray as lang}
303
- <option value={lang} selected>{lang.slice(-2)}</option>
304
- {/each}
305
- </select>
306
- {:else}
307
- <div class="LanguageDropdown">
308
- <div class="SelectedOption Item ItemLanguage">
309
- <span class="FlagIcon">
310
- {@html countryFlags[determineFlag(selectedLanguage)]}
311
- </span>
312
- <span class="LanguageName">{selectedLanguage.slice(-2)}</span>
313
- <span class="TriangleInactive {isOptionsListVisible ? 'TriangleActive' : ''}">
314
- <svg xmlns="http://www.w3.org/2000/svg" width="14" height="6.835" viewBox="0 0 14 6.835">
315
- <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"/>
316
- </svg>
317
- </span>
318
- </div>
319
- {#if isOptionsListVisible}
320
- <div class="OptionList {languageListOpen ? 'Open' : ''}">
321
- {#each languagesArray as operatorLanguage}
322
- <!-- svelte-ignore a11y-click-events-have-key-events -->
323
- <div class="LanguageOption {languageListOpen ? 'Open' : ''}" on:click={() => selectLanguage(operatorLanguage)}>
324
- <span class="FlagIcon">
325
- {@html countryFlags[determineFlag(operatorLanguage)]}
326
- </span>
327
- <span class="LanguageName">{operatorLanguage}</span>
328
- </div>
329
- {/each}
330
- </div>
331
- {/if}
332
- </div>
333
- {/if}
334
- </div>
335
- {/if}
336
- </div>
337
- <!-- svelte-ignore a11y-interactive-supports-focus -->
338
- <!-- svelte-ignore a11y-click-events-have-key-events -->
339
- <span class="{modalIsOpen ? 'ModalCloseBtn' : ''}" on:click={close} role="button">
340
- <div class="NavIcon {!navIconClosing ? 'Open' : ''}">
341
- <span></span>
342
- <span></span>
343
- <span></span>
344
- </div>
345
- </span>
346
- </div>
347
- {/if}
348
- </div>
349
-
350
- <style lang="scss">
351
- *,
352
- *::before,
353
- *::after {
354
- margin: 0;
355
- padding: 0;
356
- box-sizing: border-box;
357
- font-family: inherit
358
- }
359
-
360
- :host {
361
- font-family: inherit;
362
- }
363
-
364
- input,
365
- textarea,
366
- button {font-family: inherit}
367
-
368
- .Skeleton {
369
- animation: skeleton-loading .6s linear infinite alternate;
370
- }
371
-
372
- @keyframes skeleton-loading {
373
- 0% {
374
- background: linear-gradient(0deg, rgba(35, 178, 78, .2) 0%, rgba(0, 61, 93, .2) 100%);
375
- }
376
- 12% {
377
- background: linear-gradient(0deg, rgba(35, 178, 78, .225) 0%, rgba(0, 61, 93, .225) 100%);
378
- }
379
- 25% {
380
- background: linear-gradient(0deg, rgba(35, 178, 78, .25) 0%, rgba(0, 61, 93, .25) 100%);
381
- }
382
- 33% {
383
- background: linear-gradient(0deg, rgba(35, 178, 78, .275) 0%, rgba(0, 61, 93, .275) 100%);
384
- }
385
- 50% {
386
- background: linear-gradient(0deg, rgba(35, 178, 78, .3) 0%, rgba(0, 61, 93, .3) 100%);
387
- }
388
- 63% {
389
- background: linear-gradient(0deg, rgba(35, 178, 78, .325) 0%, rgba(0, 61, 93, .325) 100%);
390
- }
391
- 75% {
392
- background: linear-gradient(0deg, rgba(35, 178, 78, .35) 0%, rgba(0, 61, 93, .35) 100%);
393
- }
394
- 88% {
395
- background: linear-gradient(0deg, rgba(35, 178, 78, .375) 0%, rgba(0, 61, 93, .375) 100%);
396
- }
397
- 100% {
398
- background: linear-gradient(0deg, rgba(35, 178, 78, .4) 0%, rgba(0, 61, 93, .4) 100%);
399
- }
400
- }
401
-
402
- @keyframes decreaseTranspancy {
403
- 0% {
404
- opacity: 1;
405
- }
406
- 60% {
407
- opacity: 1;
408
- }
409
- 75% {
410
- opacity: 0;
411
- }
412
- 100% {
413
- opacity: 0;
414
- }
415
- }
416
-
417
- @keyframes growHeightPercent {
418
- 0% {
419
- height: 0;
420
- }
421
- 25% {
422
- height: 25%;
423
- }
424
- 50% {
425
- height: 50%;
426
- }
427
- 75% {
428
- height: 75%;
429
- }
430
- 100% {
431
- height: 100%;
432
- }
433
- }
434
-
435
- @keyframes growWidthPercent {
436
- from {
437
- width: 0;
438
- }
439
- to {
440
- width: 100%;
441
- }
442
- }
443
- @keyframes growWidth {
444
- from {
445
- width: 0;
446
- }
447
- to {
448
- width: 90vh;
449
- }
450
- }
451
- @keyframes decreaseWidth {
452
- from {
453
- width: 100%;
454
- }
455
- to {
456
- width: 0%;
457
- }
458
- }
459
-
460
- .NavIcon {
461
- width: 30px;
462
- height: 28px;
463
- position: relative;
464
- margin: 3px auto;
465
- -webkit-transform: rotate(0deg);
466
- -moz-transform: rotate(0deg);
467
- -o-transform: rotate(0deg);
468
- transform: rotate(0deg);
469
- -webkit-transition: .5s ease-in-out;
470
- -moz-transition: .5s ease-in-out;
471
- -o-transition: .5s ease-in-out;
472
- transition: .5s ease-in-out;
473
- cursor: pointer;
474
-
475
- span {
476
- display: block;
477
- position: absolute;
478
- height: 3px;
479
- width: 100%;
480
- background: #ffffff;
481
- border-radius: 9px;
482
- opacity: 1;
483
- left: 0;
484
- -webkit-transform: rotate(0deg);
485
- -moz-transform: rotate(0deg);
486
- -o-transform: rotate(0deg);
487
- transform: rotate(0deg);
488
- -webkit-transition: .25s ease-in-out;
489
- -moz-transition: .25s ease-in-out;
490
- -o-transition: .25s ease-in-out;
491
- transition: .25s ease-in-out;
492
- }
493
-
494
- span:nth-child(1) {
495
- top: 0px;
496
- width: 80%;
497
- }
498
-
499
- span:nth-child(2) {
500
- top: 9px;
501
- }
502
-
503
- span:nth-child(3) {
504
- top: 18px;
505
- }
506
-
507
- &.Open span:nth-child(1) {
508
- top: 9px;
509
- width: 100%;
510
- -webkit-transform: rotate(135deg);
511
- -moz-transform: rotate(135deg);
512
- -o-transform: rotate(135deg);
513
- transform: rotate(135deg);
514
- }
515
-
516
- &.Open span:nth-child(2) {
517
- opacity: 0;
518
- left: -60px;
519
- }
520
-
521
- &.Open span:nth-child(3) {
522
- top: 9px;
523
- -webkit-transform: rotate(-135deg);
524
- -moz-transform: rotate(-135deg);
525
- -o-transform: rotate(-135deg);
526
- transform: rotate(-135deg);
527
- }
528
- }
529
-
530
- .SelectedOption {
531
- display: flex;
532
- align-items: center;
533
- justify-content: center;
534
-
535
- .TriangleActive, .TriangleInactive {
536
- display: block;
537
- margin: 0 0 0 10px;
538
- transition: all .2s;
539
- transform: rotateX(0deg);
540
-
541
- svg{
542
- margin: -2px 0px;
543
- fill: white;
544
- }
545
- }
546
-
547
- .TriangleActive {
548
- transform: rotateX(180deg);
549
-
550
- &:hover {
551
- transform: rotateX(180deg);
552
- }
553
- }
554
- }
555
-
556
- .FlagIcon {
557
- width: 20px;
558
- height: 14px;
559
- margin-right: 8px;
560
- border-radius: 2px;
561
- }
562
-
563
-
564
- .LanguageSelector {
565
- padding: 5px 0;
566
- margin-bottom: 0;
567
- display: flex;
568
- justify-content: space-between;
569
- background: linear-gradient(90deg, rgba(35,178,78,.9) 0%, rgba(0,61,93,.9) 100%);
570
- transition: all .2s linear;
571
- span {
572
- display: inline;
573
- color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
574
- opacity: .8;
575
- padding: 5px 0;
576
- display: flex;
577
- align-items: center;
578
- gap: 15px;
579
- font-size: 14px;
580
- }
581
- &:active {
582
- transition: all .2s ease;
583
- span {
584
- transition: all .1s linear;
585
- opacity: 1;
586
- }
587
- }
588
- &.Open {
589
- box-shadow: inset 0 -3.25em 0 0 var(--emw-color-primary);
590
- }
591
-
592
- .LanguageSelectorTitle {
593
- margin: 0 20px;
594
- }
595
-
596
- .LanguageDropdown {
597
- margin-right: 16px;
598
- display: inline-block;
599
- }
600
-
601
- .OptionList {
602
- position: absolute;
603
- background: linear-gradient(90deg, rgba(35, 178, 78, .1) 0%, rgba(0, 61, 93, .1) 100%);
604
- min-width: 180px;
605
- z-index: 1;
606
- overflow-y: auto;
607
- display: flex;
608
- flex-direction: column-reverse;
609
- bottom: 44px;
610
- left: 0;
611
- gap: 5px;
612
- padding-bottom: 5px;
613
- width: 100%;
614
- height: 0px;
615
- transition: all .2s linear;
616
-
617
- &.Open {
618
- transition: all .2s linear;
619
- height: auto;
620
- background-color: var(--emw-color-background-secondary, #000000);
621
- overflow: auto;
622
- }
623
-
624
- .LanguageOption {
625
- display: flex;
626
- border: 2px solid #22B04E;
627
- border-radius: 13px;
628
- align-items: center;
629
- opacity: 0.2;
630
- height: 0px;
631
- background: linear-gradient(90deg, rgba(35, 178, 78, .2) 0%, rgba(0, 61, 93, .2) 100%);
632
- margin: 0 5px;
633
- transition: all .3s linear;
634
-
635
- &.Open {
636
- height: 50px;
637
- opacity: 1;
638
- padding: 10px 5px;
639
- }
640
-
641
- &:active,&:hover {
642
- background: linear-gradient(90deg, rgba(35,178,78,1) 0%, rgba(0,61,93,1) 100%);
643
- transform: scale(1.03);
644
- span {
645
- color: black;
646
- }
647
- }
648
- }
649
- }
650
- }
651
-
652
- .ItemLanguage {
653
- height: 34px;
654
- width: 100%;
655
- text-align: left;
656
- line-height: 34px;
657
- background: transparent;
658
- color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
659
- border: none;
660
- option { color: var(--emw-header-contrast, var(--emw-color-contrast, #07072A)); }
661
- }
662
-
663
- .HamburgerModalWindow {
664
- display: flex;
665
- align-items: flex-start;
666
- position: fixed;
667
- width: 100%;
668
- height: 100%;
669
- z-index: 150;
670
- top: 0;
671
- left: 0;
672
- background-color: rgba(0, 0, 0, .7);
673
- transition: all .3s linear;
674
- &.Closing {
675
- animation: decreaseTranspancy 1s backwards;
676
- }
677
- &>span { opacity: 0; }
678
- .HamburgerModalContainer {
679
- max-width: 992px;
680
- position: relative;
681
- background: var(--emw-header-color-secondary-menu-bg, var(--emw-color-background-secondary, rgb(0, 0, 0)));
682
- display: flex;
683
- flex-direction: column;
684
- justify-content: space-between;
685
- width: 0vw;
686
- height: 100%;
687
- padding: 0;
688
- border-top: 0;
689
- border-radius: 0;
690
- overflow-x: hidden;
691
- overflow-y: scroll;
692
- &.ActiveHamburgerMenu {
693
- animation: growWidth .8s forwards;
694
- }
695
- &.Closing {
696
- animation: decreaseWidth .8s backwards;
697
- }
698
- .Separator {
699
- width: 100%;
700
- height: 5px;
701
- background: rgb(0,0,0);
702
- background: linear-gradient(90deg, rgb(13, 78, 2) 0%, rgba(35,172,77,1) 50%, rgb(13, 78, 2) 100%);
703
- z-index: 3;
704
- }
705
- }
706
- .ModalCloseBtn {
707
- position: relative;
708
- top: 25px;
709
- width: 30px;
710
- height: 30px;
711
- opacity: 1;
712
- cursor: pointer;
713
- .NavIcon {
714
- .Open {
715
- width: 90vw;
716
- }
717
- }
718
- svg {
719
- width: 20px;
720
- height: 20px;
721
- padding: 2px;
722
- }
723
- }
724
- .HamburgerPrimaryMenu, .HamburgerSecondaryMenu {
725
- font-size: 12px;
726
- display: flex;
727
- color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
728
- li {
729
- transition: all 150ms ease-in-out;
730
- }
731
- img {
732
- max-width: 40px;
733
- }
734
- animation: growWidthPercent 1s forwards;
735
- }
736
- .HamburgerPrimaryMenu {
737
- background: var(--emw-header-color-menu-bg, var(--emw-color-background-secondary, #000000));
738
- white-space: nowrap;
739
- overflow-x: scroll;
740
- list-style: none;
741
- width: 90vw;
742
- text-transform: uppercase;
743
- font-size: 11px;
744
- transition: all .5s;
745
- &>li {
746
- &:active {
747
- transform: scale(1.1);
748
- }
749
- max-width: 125px;
750
- padding: 14px 25px;
751
- display: inline-block;
752
- &.ActiveItem {
753
- background: var(--emw-header-color-primary, var(--emw-color-primary, #22B04F));
754
- color: black;
755
- }
756
- }
757
- .Loading {
758
- width: 150px;
759
- height: 86px;
760
- margin: 0 2px;
761
- }
762
- .HamburgerItemContainer {
763
- display: flex;
764
- flex-direction: column;
765
- justify-content: center;
766
- align-items: center;
767
- gap: 14px;
768
- }
769
- }
770
- .HamburgerSecondaryMenu {
771
- margin-top: 10px;
772
- list-style: none;
773
- height: 85%;
774
- overflow: auto;
775
- width: 90vw;
776
- display: flex;
777
- flex-direction: column;
778
-
779
- &.Overlay {
780
- opacity: 0.5;
781
- transition: opacity 0.3s ease-in-out;
782
- }
783
- li {
784
- padding: 15px;
785
- display: flex;
786
- align-items: center;
787
- gap: 15px;
788
- transition: all .3s linear;
789
- &:active {
790
- background-color: var(--emw-color-primary);
791
- transform: scale(1.1);
792
- }
793
- a {
794
- text-decoration: none;
795
- display: flex;
796
- align-items: center;
797
- gap: 15px;
798
- color: var(--emw-header-typography, var(--emw-color-white, #FFFFFF));
799
- font-size: 14px;
800
- }
801
- &:not(:last-child) {
802
- border-bottom: 1px solid var(--emw-color-gray-300, #58586B);
803
- }
804
- &:active {
805
- a {
806
- color: var(--emw-color-primary, #22B04F);
807
- }
808
- }
809
- }
810
- }
811
- }
812
- .FlagIcon{
813
- margin-left: 12px;
814
- }
815
-
816
- .NoFlag{
817
- width: 88%;
818
- margin: 0 20px;
819
- }
820
- </style>