@everymatrix/casino-slider 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,614 +0,0 @@
1
- <svelte:options tag={null} />
2
-
3
- <script lang="ts">
4
- import { onMount } from 'svelte';
5
- import { getDevice } from 'rvhelper';
6
-
7
- import { _, addNewMessages, setLocale, setupI18n } from './i18n';
8
- import { TRANSLATIONS } from './translations';
9
-
10
- export let endpoint:string = '';
11
- export let datasource:string = '';
12
- export let onclickeventname:string = 'defaultEvent';
13
- export let actionevent:string = 'defaultEvent';
14
- export let favoritesnumber:string = '0';
15
- export let location:string = '';
16
- export let clientstyling:string = '';
17
- export let clientstylingurl:string = '';
18
- export let identity:string = '';
19
- export let translationurl:string = '';
20
- export let isprimarymenu:boolean = false;
21
- export let issecondarymenu:boolean = false;
22
- export let lang:string = '';
23
- export let activeindex:string = '0';
24
- export let showsubgroups:string = 'false';
25
- export let categoriesicon:string = 'false';
26
- export let lobbyiconimage:string = '';
27
- export let mygamesiconimage:string = '';
28
-
29
- setupI18n({ withLocale: 'en', translations: {}});
30
-
31
- const setTranslationUrl = ():void => {
32
- let url:string = translationurl;
33
-
34
- fetch(url).then((res:any) => res.json())
35
- .then((res) => {
36
- Object.keys(res).forEach((item:any):void => {
37
- addNewMessages(item, res[item]);
38
- });
39
- }).catch((err:any) => {
40
- console.log(err);
41
- });
42
- }
43
-
44
-
45
- Object.keys(TRANSLATIONS).forEach((item:any) => {
46
- addNewMessages(item, TRANSLATIONS[item]);
47
- });
48
-
49
- let userAgent:string = window.navigator.userAgent;
50
- let isMobile:boolean = (getDevice(userAgent) === 'PC') ? false : true;
51
-
52
- let carousel:any;
53
- let activeIndex:any;
54
- let activeSubIndex:number;
55
- let prevIndex:number;
56
- let prevSubIndex:number;
57
- let customStylingContainer:HTMLElement;
58
- let sliderdata:Array<any> = [];
59
- let subGroupsData: any[] = [];
60
- let itemsActive:Array<boolean> = [];
61
- let scroller:HTMLElement;
62
-
63
- // Clicking on the slider item will trigger this method and send a postmessage on window
64
- // @TODO itemId type fix
65
- let handleClick = (item:any, index:number, subItem:any, subIndex:number, itemType:string):void => {
66
- // guard against triggering on main categories which have subcategories, as per business requirement
67
- if (item.subGroups && subIndex === null) return;
68
-
69
- scrollHandler();
70
- activeIndex = index;
71
- activeIndex = activeIndex;
72
- prevIndex = activeIndex;
73
-
74
- if(itemType != 'secondary') {
75
- window.postMessage({ type: actionevent == 'CategoryChange' ? 'CategoryChange' : 'NavigateTo', buzz: '1', itemId: item.id, index, item, path: item.path, externalLink: item.externalLink || false, target: item.attrs?.target || null}, window.location.href);
76
- activeSubIndex = null;
77
- prevSubIndex = null;
78
- return;
79
- }
80
-
81
- activeSubIndex = subIndex;
82
- activeSubIndex = activeSubIndex;
83
- prevSubIndex = activeSubIndex;
84
- window.postMessage({ type: actionevent, itemId: subItem.id, subIndex, subItem }, window.location.href);
85
- };
86
-
87
- let scrollLeft = ():void => {
88
- scroller.scrollBy({
89
- left: -250,
90
- behavior: 'smooth'
91
- });
92
- }
93
-
94
- let scrollRight = ():void => {
95
- scroller.scrollBy({
96
- left: +250,
97
- behavior: 'smooth'
98
- });
99
- }
100
-
101
- const setActiveIndex = ():void => {
102
- if (!prevIndex || (prevIndex != activeIndex && activeIndex != -1)) {
103
- prevIndex = activeIndex;
104
- }
105
- }
106
-
107
- const messageHandler = (e:any):void => {
108
- if (e.data.type == 'SliderData' && e.data.identity == identity) {
109
- sliderdata = e.data.data;
110
- itemsActive = new Array(sliderdata.length).fill(false);
111
- if(showsubgroups == 'true') {
112
- obtainSubcategories();
113
- }
114
- }
115
-
116
- if (e.data.type == 'GoToHomepage') {
117
- sliderdata.forEach((item, index) => {
118
- if(item.path.endsWith('/casino')) {
119
- activeIndex = index;
120
- activeIndex = activeIndex;
121
- prevIndex = activeIndex;
122
- }
123
- })
124
- }}
125
-
126
-
127
- const setActiveLanguage = ():void => {
128
- setLocale(lang);
129
- }
130
-
131
- const getSubGroups = (item:string, index?:number, trigger?:string):void => {
132
- if(location == 'secondaryMenu' && endpoint && datasource && lang && item.id) {
133
- let url:URL = new URL(`${endpoint}/v1/casino/groups/${datasource}/${item.id}/subGroups?language=${lang}`);
134
- fetch(url.href)
135
- .then((res:any) => res.json())
136
- .then((data:any) => {
137
- data.index = index;
138
- subGroupsData = subGroupsData.concat(data);
139
-
140
- if(showsubgroups == 'false') {
141
- window.postMessage({ type: actionevent, itemId: item.id, index, item }, window.location.href);
142
- } else {
143
- if(trigger == 'navigation' && subGroupsData.length <= 0) {
144
- window.postMessage({ type: actionevent, itemId: item.id, index, item }, window.location.href);
145
- }
146
- }
147
-
148
- //Send list of subgroups ids
149
- const subGroupsIds: any[] = [];
150
- subGroupsData.map(subGroup => {
151
- subGroup.items.forEach(item => {
152
- if(!subGroupsIds.find(id => item.id == id)){
153
- subGroupsIds.push(item.id);
154
- }
155
- });
156
- return subGroupsIds.flat();
157
- });
158
- window.postMessage({type: 'SubgroupsIds', subGroupsIds: subGroupsIds}, window.location.href);
159
-
160
-
161
- }).then(() => {
162
- if(carousel.querySelectorAll(".DropDown")) scrollHandler();
163
- });
164
- }
165
-
166
- if(location == 'headerMain'){
167
- window.postMessage({ type: actionevent, item }, window.location.href);
168
- }
169
- }
170
-
171
-
172
- /* Listen for scroll */
173
- const scrollHandler = () => {
174
- const dropDown = carousel.querySelectorAll(".DropDown");
175
- (document.activeElement as HTMLElement).blur();
176
-
177
- scroller.classList.add("isScrolling");
178
- for (let i = 0; i < dropDown.length; i++) {
179
- dropDown[i].style.transform = "translateX(-" + scroller.scrollLeft + "px)";
180
- }
181
- scroller.classList.remove("isScrolling");
182
- }
183
-
184
- const obtainSubcategories = () => {
185
- sliderdata.forEach((category, index) => {
186
- if(category?.subGroups?.count > 0) {
187
- itemsActive[index] = true;
188
- getSubGroups(category, index);
189
- }
190
- });
191
- }
192
-
193
- const setClientStyling = ():void => {
194
- let sheet = document.createElement('style');
195
- sheet.innerHTML = clientstyling;
196
- customStylingContainer.appendChild(sheet);
197
- }
198
-
199
- const setClientStylingURL = ():void => {
200
- let cssFile = document.createElement('style');
201
- let url:URL = new URL(clientstylingurl);
202
-
203
- fetch(url.href)
204
- .then((res:any) => res.text())
205
- .then((data:any) => {
206
- cssFile.innerHTML = data
207
-
208
- setTimeout(() => { customStylingContainer.appendChild(cssFile); }, 1);
209
- });
210
- }
211
-
212
- const handleSrc = (category) => {
213
- let icon = '';
214
- if(category.id==='LOBBY') {
215
- icon = lobbyiconimage;
216
- } else if(category.id==='MYGAMES') {
217
- icon = mygamesiconimage;
218
- }
219
- return category.icon || icon;
220
- }
221
-
222
- onMount(() => {
223
- if ("ontouchstart" in document.documentElement) {
224
- document.documentElement.className += " touch-device";
225
- }
226
-
227
- window.addEventListener('message', messageHandler, false);
228
-
229
- setTimeout(() => {
230
- scroller.addEventListener('scroll', scrollHandler);
231
- }, 500);
232
-
233
- return () => {
234
- window.removeEventListener('message', messageHandler);
235
- carousel.removeEventListener('scroll', scrollHandler);
236
- }
237
- })
238
-
239
- $: activeindex && setActiveIndex();
240
- $: translationurl && setTranslationUrl();
241
- $: clientstyling && customStylingContainer && setClientStyling();
242
- $: clientstylingurl && customStylingContainer && setClientStylingURL();
243
- $: lang && setActiveLanguage();
244
- </script>
245
-
246
- <div class="CarouselWrapper { (location === 'headerMain') ? 'CarouselWrapperHeaderMain' : '' }" bind:this={customStylingContainer}>
247
- <div
248
- class={`CarouselContainer CarouselContainerMobile ${ location === 'headerMain' ? 'CarouselContainerHeaderMain' : '' }`}
249
- style="{ (location === 'headerMain') ? 'max-width: auto' : undefined }"
250
- >
251
- <div class="CarouselLeftArrow" on:click="{() => scrollLeft()}">
252
- <svg fill="none" stroke="var(--emfe-w-categories-arrows, var( --emfe-w-color-white, #FFFFFF));" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
253
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 19l-7-7 7-7"></path>
254
- </svg>
255
- </div>
256
-
257
- <div class="CarouselNavWrap" bind:this={scroller}>
258
- <ul id="CarouselNav" class="CarouselItems" bind:this={carousel}>
259
- <li class="TouchOnly"><a href="#CarouselNav">Close Subs</a></li>
260
- {#if sliderdata.length > 0}
261
-
262
- {#each sliderdata as category, index (category.id)}
263
- <li class="CarouselItem {activeindex?.toString().indexOf('$') > -1 ? (activeindex?.split("$").pop() == category.id.split("$").pop() ? 'active': '') : (activeindex == category.id ? 'active': '')}
264
- {location == 'headerMain' ? '' : 'SecondaryMenu'}"
265
- part="CarouselItem"
266
- on:click={e => { handleClick(category, index, null, null, 'main'); e.preventDefault()}}>
267
- <div class="CategoryIcon">
268
- <img class="CategoryIconImg {categoriesicon === 'true' ? '' : 'DisplayNone' }" src="{handleSrc(category)}">
269
- </div>
270
- {#if location === 'headerMain'}
271
- <a href="{category.path}">{category.label}</a>
272
- {:else}
273
- <button class="CategoryButton">{category.name}</button>
274
- {/if}
275
- {#if itemsActive[index] == true}
276
- {#if subGroupsData.length > 0 && showsubgroups == 'true'}
277
- <ul class="DropDown">
278
- {#each subGroupsData as subGroup}
279
- {#each subGroup.items as subGroupItem, subindex (subGroupItem.id)}
280
- {#if index == subGroup.index}
281
- <li on:click={e => { handleClick(category, index, subGroupItem, subindex, 'secondary'); e.stopPropagation();}}>
282
- <a class="SubDropDown {index == activeIndex && (activeSubIndex == subindex || prevSubIndex == subindex) ? 'active': ''}">{subGroupItem?.name}</a>
283
- </li>
284
- {/if}
285
- {/each}
286
- {/each}
287
- </ul>
288
- {/if}
289
- {/if}
290
- </li>
291
- {/each}
292
- {/if}
293
- </ul>
294
- </div>
295
-
296
- <div class="CarouselRightArrow" on:click="{() => scrollRight()}">
297
- <svg fill="none" stroke="currentColor" viewBox="0 0 24 24" xmlns="http://www.w3.org/2000/svg">
298
- <path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5l7 7-7 7"></path>
299
- </svg>
300
- </div>
301
- </div>
302
- </div>
303
-
304
- <style lang="scss">
305
-
306
-
307
-
308
- *, *::before, *::after {
309
- margin: 0;
310
- padding: 0;
311
- box-sizing: border-box;
312
- }
313
-
314
- .CarouselWrapper {
315
- // background: var(--emfe-w-color-primary, #D0046C); /* fallback for old browsers */
316
- background: -webkit-linear-gradient(to left, var(--emfe-w-categories-color-secondary, var(--emfe-w-color-secondary, #FD2839)), var(--emfe-w-categories-color-primary, var(--emfe-w-color-primary, #D0046C))); /* Chrome 10-25, Safari 5.1-6 */
317
- background: linear-gradient(to left, var(--emfe-w-categories-color-secondary, var(--emfe-w-color-secondary, #FD2839)), var(--emfe-w-categories-color-primary, var(--emfe-w-color-primary, #D0046C))); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
318
-
319
- &.CarouselWrapperHeaderMain {
320
- background: transparent;
321
- }
322
- }
323
-
324
- .CarouselContainer {
325
- display: flex;
326
- flex-direction: row;
327
- flex-wrap: nowrap;
328
- justify-content: space-between;
329
- width: 100%;
330
- color: var(--emfe-w-categories-typography, var(--emfe-w-color-white, #FFFFFF));
331
- margin: 0 auto;
332
- max-width: 1300px;
333
- &.CarouselContainerMobile {
334
- padding: 0;
335
- }
336
-
337
- ul {
338
- align-items: center;
339
-
340
- &::-webkit-scrollbar {
341
- display: none;
342
- }
343
- li {
344
- height: 100%;
345
- align-items: center;
346
- font-size: 15px;
347
- font-weight: 500;
348
- line-height: 26px;
349
- white-space: nowrap;
350
- display: inline-block;
351
- text-align: left;
352
- word-spacing: normal;
353
- > a {
354
- position: relative;
355
- }
356
- &.SecondaryMenu{
357
- &:hover,
358
- &.active,
359
- &:focus,
360
- &:focus-within {
361
- background: var(--emfe-w-categories-contrast, var(--emfe-w-color-background, #07072A));
362
- cursor: pointer;
363
- }
364
- }
365
- }
366
- li > a {
367
- position: relative;
368
- }
369
- }
370
-
371
- ul li:hover,
372
- ul > li > a:hover,
373
- ul li:focus,
374
- ul > li > a:focus {
375
- z-index: 105;
376
- }
377
-
378
- .CarouselItems li:hover > ul {
379
- left: auto;
380
- top: auto;
381
- opacity: 1;
382
- transition: opacity 0.5s linear;
383
- }
384
- .CarouselItems li:focus-within > ul {
385
- left: auto;
386
- top: auto;
387
- opacity: 1;
388
- transition: opacity 0.5s linear, top 0.5s;
389
- }
390
- .CarouselItems ul ul {
391
- transition: opacity 0.4s, left 0s 0.4s, margin 0s 0.4s;
392
- z-index: 103;
393
- }
394
- .CarouselItems li li:hover ul {
395
- top: auto;
396
- margin-left: 100%;
397
- transform: translateY(-2.2rem);
398
- opacity: 1;
399
- transition: opacity 0.5s linear, margin 0.5s;
400
- }
401
- .CarouselItems li li:focus-within ul {
402
- top: auto;
403
- margin-left: 100%;
404
- transform: translateY(-2.2rem);
405
- opacity: 1;
406
- transition: opacity 0.5s linear, margin 0.5s;
407
- }
408
-
409
- .CarouselLeftArrow,
410
- .CarouselRightArrow {
411
- display: flex;
412
- align-items: center;
413
- justify-content: center;
414
- width: 50%;
415
- max-width: 64px;
416
- background: var(--emfe-w-categories-arrows-bg, var(--emfe-w-color-gray-transparency-30, rgba(255, 255, 255, .3) ));
417
-
418
- svg {
419
- width: 100%;
420
- max-width: 39px;
421
- stroke: var(--emfe-w-categories-arrows, var( --emfe-w-color-white, #FFFFFF));
422
- }
423
- }
424
-
425
- h1 {
426
- text-align: center;
427
- }
428
- ul {
429
- margin: 0;
430
- padding: 0;
431
- list-style: none;
432
- }
433
- .CarouselNavWrap {
434
- overflow-y: scroll;
435
- white-space: nowrap;
436
- list-style-type: none;
437
- -ms-overflow-style: none;
438
- scrollbar-width: none;
439
- &::-webkit-scrollbar {
440
- display: none;
441
- }
442
- }
443
-
444
- .CarouselItems {
445
- display: table; /* White-space fix */
446
- width: 100%;
447
- text-align: center;
448
- li {
449
- display: inline-block;
450
- text-align: left;
451
- padding: 7px 10px;
452
- & > a {
453
- position: relative;
454
- }
455
-
456
- li {
457
- display: block;
458
- }
459
- }
460
- button {
461
- background: none;
462
- border: none;
463
- color: var(--emfe-w-categories-typography, var(--emfe-w-color-white, #FFFFFF));
464
- text-decoration: none;
465
- white-space: nowrap;
466
- position: relative;
467
- }
468
- a {
469
- display: block;
470
- color: var(--emfe-w-categories-typography, var(--emfe-w-color-white, #FFFFFF));
471
- text-decoration: none;
472
- white-space: nowrap;
473
- position: relative;
474
- }
475
- &.SecondaryMenu {
476
- li:hover > a,
477
- a:hover,
478
- li:focus > a,
479
- a:focus {
480
- background: var(--emfe-w-categories-contrast, var(--emfe-w-color-background, #07072A));
481
- }
482
- }
483
- ul {
484
- position: absolute;
485
- z-index: 104;
486
- left: -999em;
487
- top: 0;
488
- opacity: 0;
489
- transition: opacity 0.1s, left 0s 0.1s, top 0.1s;
490
- background: var(--emfe-w-categories-color-secondary, var(--emfe-w-color-secondary, #FD2839)); /* fallback for old browsers */
491
- background: -webkit-linear-gradient(var(--emfe-w-categories-color-secondary, var(--emfe-w-color-secondary, #FD2839)), var(--emfe-w-categories-color-primary, var(--emfe-w-color-primary, #D0046C))); /* Chrome 10-25, Safari 5.1-6 */
492
- background: linear-gradient(var(--emfe-w-categories-color-secondary, var(--emfe-w-color-secondary, #FD2839)), var(--emfe-w-categories-color-primary, var(--emfe-w-color-primary, #D0046C))); /* W3C, IE 10+/ Edge, Firefox 16+, Chrome 26+, Opera 12+, Safari 7+ */
493
- }
494
- }
495
-
496
- /* Allow touch to play */
497
- .CarouselItems .TouchOnly {
498
- display: none;
499
- left: -10px;
500
- }
501
- .touch-device .CarouselItems .TouchOnly {
502
- display: inline-block;
503
- }
504
- .touch-device .CarouselItems .TouchOnly a {
505
- background: var(--emfe-w-categories-contrast, var(--emfe-w-color-background, #07072A));
506
- color: var(--emfe-w-categories-typography, var(--emfe-w-color-white, #FFFFFF));
507
- }
508
-
509
- /* Remove hover when scrolling */
510
- .isScrolling .CarouselItems ul.DropDown{
511
- left: -999em;
512
- opacity:0;
513
- }
514
-
515
- .SubDropDown:hover, .SubDropDown.active {
516
- color: var(--emfe-w-categories-contrast, var(--emfe-w-color-contrast, #07072A));
517
- background: var(--emfe-w-categories-typography, var(--emfe-w-color-white, #FFFFFF));
518
- }
519
- }
520
-
521
- .CarouselContainerHeaderMain {
522
- .CarouselItems .CarouselItem {
523
- &:hover,
524
- &.active,
525
- &:focus,
526
- &:focus-within {
527
- a {
528
- border-bottom: 1px solid var(--emfe-w-header-color-primary, var(--emfe-w-color-primary, #D0046C));
529
- color: var(--emfe-w-header-color-primary, var(--emfe-w-color-primary, #D0046C));
530
- }
531
- }
532
- span {
533
- border-top: 1px solid transparent;
534
- padding-top: 5px;
535
- transition-duration: 0.3s;
536
- }
537
- }
538
- }
539
-
540
- .CarouselContainerHeaderMain {
541
- background: transparent;
542
- margin: 0;
543
- padding: 0;
544
- .CarouselLeftArrow, .CarouselRightArrow {
545
- background: transparent;
546
- width: unset;
547
- display: none;
548
- }
549
- .CarouselItem a {
550
- color: var(--emfe-w-header-typography, var(--emfe-w-color-white, #FFFFFF));
551
- text-decoration: none;
552
- }
553
- }
554
-
555
-
556
- /* Arrows */
557
- .CarouselItems {
558
- li a:first-child:not(:last-child) {
559
- padding-right: 20px; /* make space for arrows*/
560
- }
561
- li a:first-child:not(:last-child):after {
562
- content: "";
563
- position: absolute;
564
- right: 3px;
565
- top: 50%;
566
- margin-top: -6px;
567
- width: 0;
568
- height: 0;
569
- border-top: 6px solid transparent;
570
- border-bottom: 6px solid transparent;
571
- border-left: 6px solid var(--emfe-w-color-white, #FFFFFF);
572
- }
573
- &> li > a:first-child:not(:last-child):after {
574
- border-left: 6px solid transparent;
575
- border-right: 6px solid transparent;
576
- border-top: 6px solid var(--emfe-w-color-white, #FFFFFF);
577
- border-bottom: none;
578
- margin-top: -3px;
579
- }
580
- li:hover a:first-child:not(:last-child):after {
581
- border-left-color: var(--emfe-w-color-white, #FFFFFF);
582
- }
583
- li:focus-within a:first-child:not(:last-child):after {
584
- border-left-color: var(--emfe-w-color-white, #FFFFFF);
585
- }
586
- &> li:hover > a:first-child:not(:last-child):after {
587
- border-left-color: transparent;
588
- border-top-color: var(--emfe-w-color-white, #FFFFFF);
589
- }
590
- &> li:focus-within > a:first-child:not(:last-child):after {
591
- border-left-color: transparent;
592
- border-top-color: var(--emfe-w-color-white, #FFFFFF);
593
- }
594
- }
595
-
596
- @media only screen and (max-width: 1024px) {
597
- .CarouselContainerHeaderMain {
598
- .CarouselLeftArrow, .CarouselRightArrow {
599
- display: flex;
600
- }
601
- }
602
- }
603
-
604
- .CategoryIconImg {
605
- height: 20px;
606
- margin: 0 auto;
607
- display: block;
608
- }
609
-
610
- .DisplayNone {
611
- display: none;
612
- }
613
-
614
- </style>
package/src/i18n.js DELETED
@@ -1,27 +0,0 @@
1
- import {
2
- dictionary,
3
- locale,
4
- addMessages,
5
- _
6
- } from 'svelte-i18n';
7
-
8
- function setupI18n({ withLocale: _locale, translations }) {
9
- locale.subscribe((data) => {
10
- if (data == null) {
11
- dictionary.set(translations);
12
- locale.set(_locale);
13
- }
14
- }); // maybe we will need this to make sure that the i18n is set up only once
15
- /*dictionary.set(translations);
16
- locale.set(_locale);*/
17
- }
18
-
19
- function addNewMessages(lang, dict) {
20
- addMessages(lang, dict);
21
- }
22
-
23
- function setLocale(_locale) {
24
- locale.set(_locale);
25
- }
26
-
27
- export { _, setupI18n, addNewMessages, setLocale };
package/src/index.ts DELETED
@@ -1,4 +0,0 @@
1
- import CasinoSlider from './CasinoSlider.svelte';
2
-
3
- !customElements.get('casino-slider') && customElements.define('casino-slider', CasinoSlider);
4
- export default CasinoSlider;
@@ -1,52 +0,0 @@
1
- export const TRANSLATIONS = {
2
- "en": {
3
- "login": "Login",
4
- "register": "Register",
5
- "deposit": "Deposit"
6
- },
7
- "zh-hk": {
8
- "login": "登錄",
9
- "register": "登記",
10
- "deposit": "訂金"
11
- },
12
- "fr": {
13
- "login": "Connexion",
14
- "register": "Registre",
15
- "deposit": "Dépôt"
16
- },
17
- "tr": {
18
- "login": "Giriş",
19
- "register": "Kayıt",
20
- "deposit": "Para Yatır"
21
- },
22
- "ro": {
23
- "login": "Autentificare",
24
- "register": "Inregistrare",
25
- "deposit": "Depozit"
26
- },
27
- "es": {
28
- "login": "Iniciar sesión",
29
- "register": "Regístrate",
30
- "deposit": "Deposita"
31
- },
32
- "pt": {
33
- "login": "Entrar",
34
- "register": "Registro",
35
- "deposit": "Depósito"
36
- },
37
- "hr": {
38
- "login": "Prijava",
39
- "register": "Registracija",
40
- "deposit": "Uplata"
41
- },
42
- "pt-br": {
43
- "login": "Entrem",
44
- "register": "Registro",
45
- "deposit": "Depósito"
46
- },
47
- "es-mx": {
48
- "login": "Entrar",
49
- "register": "Registro",
50
- "deposit": "Depósito"
51
- }
52
- }