@everymatrix/casino-tournaments-customize-page-controller 1.5.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.
Files changed (48) hide show
  1. package/README.md +30 -0
  2. package/dist/casino-tournaments-customize-page-controller.js +1618 -0
  3. package/dist/casino-tournaments-customize-page-controller.js.map +1 -0
  4. package/index.html +56 -0
  5. package/index.js +1 -0
  6. package/package.json +41 -0
  7. package/public/favicon.png +0 -0
  8. package/public/reset.css +48 -0
  9. package/rollup.config.js +61 -0
  10. package/src/CasinoTournamentsCellHandler.ts +102 -0
  11. package/src/CasinoTournamentsCustomizePageController.svelte +1580 -0
  12. package/src/CasinoTournamentsDetailDataCenter.ts +51 -0
  13. package/src/Cells/BackButtonCell.svelte +37 -0
  14. package/src/Cells/Cell.svelte +7 -0
  15. package/src/Cells/CellRouter.svelte +10 -0
  16. package/src/Cells/Comonent.svelte +338 -0
  17. package/src/Cells/DescriptionCell.svelte +18 -0
  18. package/src/Cells/DurationCell.svelte +133 -0
  19. package/src/Cells/GamesCell.svelte +181 -0
  20. package/src/Cells/JoinButtonCell.svelte +218 -0
  21. package/src/Cells/LeaderboardCell.svelte +635 -0
  22. package/src/Cells/PrizesCell.svelte +160 -0
  23. package/src/Cells/ScoreCriteriaCell.svelte +49 -0
  24. package/src/Cells/SeeGamesLine.svelte +27 -0
  25. package/src/Cells/StartDateCell.svelte +78 -0
  26. package/src/Cells/StatusTag.svelte +57 -0
  27. package/src/Cells/TermsAndConditionsCell.svelte +1 -0
  28. package/src/Cells/ThumbnailCell.svelte +52 -0
  29. package/src/Cells/TitleCell.svelte +19 -0
  30. package/src/Cells/TitleTextCell.svelte +95 -0
  31. package/src/Cells/UserEnrollTag.svelte +39 -0
  32. package/src/Cells/i18n.js +29 -0
  33. package/src/Cells/img/arrow-down.svg +14 -0
  34. package/src/Cells/img/arrow-up.svg +12 -0
  35. package/src/Cells/img/calendar.svg +3 -0
  36. package/src/Cells/img/first-place1.png +0 -0
  37. package/src/Cells/img/first-place1.svg +15 -0
  38. package/src/Cells/img/first-place2.png +0 -0
  39. package/src/Cells/img/first-place2.svg +8 -0
  40. package/src/Cells/img/first-place3.png +0 -0
  41. package/src/Cells/img/first-place3.svg +15 -0
  42. package/src/Cells/translations.js +933 -0
  43. package/src/DynamicalLoader.svelte +76 -0
  44. package/src/config/layout.js +370 -0
  45. package/src/i18n.js +29 -0
  46. package/src/index.ts +5 -0
  47. package/stories/CasinoTournamentsCustomizePageController.stories.js +13 -0
  48. package/tsconfig.json +6 -0
@@ -0,0 +1,1580 @@
1
+ <svelte:options tag={null} />
2
+ <script lang="ts">
3
+
4
+ import {onMount} from 'svelte';
5
+ import { get_current_component } from 'svelte/internal';
6
+
7
+ import { _, addNewMessages, setLocale,setupI18n } from './i18n';
8
+ import { getDevice, isMobile } from 'rvhelper';
9
+ import { EventSourcePolyfill } from 'event-source-polyfill';
10
+ import { Layouts,parseLayout} from './config/layout.js';
11
+ import CasinoTournamentsDetailDataCenter from "./CasinoTournamentsDetailDataCenter";
12
+ import { TournamentsPageTranslations } from '../../casino-tournaments-page-controller/src/translations';
13
+
14
+ export let layoutid = 'default';
15
+ export let session: string = '';
16
+ export let userid: string = '';
17
+ export let tourid: string = '';
18
+ export let endpoint: string = '';
19
+ export let cmsendpoint: string = '';
20
+ export let lang: string = 'en';
21
+ export let navigationbackbutton: string = 'Default';
22
+ export let currency: string = 'EUR';
23
+ export let tablelimit: string = '30';
24
+ export let namemask: string = '';
25
+ export let showunqualifiedplayer: string = 'true'
26
+ export let mobiletablelimit:string = '15';
27
+ export let updatetableintime:string = 'true';
28
+ export let viewmode:string = '';
29
+ export let minscore:string = '';
30
+ export let scorefractiondigit: string = '2';
31
+ export let loginevent:string = '';
32
+ export let registerevent:string = '';
33
+ export let loginurl:string = '';
34
+ export let registerurl:string = '';
35
+ export let limit = 30;
36
+ export let offset = 0;
37
+ export let leaderboardoffset:string = '0';
38
+ export let leaderboardlimit:string = '15';
39
+ export let keepbrowsercontext:string = 'false';
40
+ export let showrankasimage:string = 'false';
41
+
42
+ let pageDefaultParams = {
43
+ lang:'en',
44
+ layoutid: 'default',
45
+ navigationbackbutton:'Default',
46
+ currency:'EUR',
47
+ tablelimit:'30',
48
+ showunqualifiedplayer:'true',
49
+ mobiletablelimit:'15',
50
+ updatetableintime:'true',
51
+ scorefractiondigit:'2',
52
+ leaderboardoffset:'0',
53
+ leaderboardlimit:'15',
54
+ keepbrowsercontext:'false',
55
+ showenrolled: 'true',
56
+ firstrow:'true'
57
+ };
58
+ let userAgent = window.navigator.userAgent;
59
+ let mobileView = false;
60
+ let componentParams={
61
+ pageDefaultParams: pageDefaultParams,
62
+ cmsData: {},
63
+ ctrlProperties:null,
64
+ tournamentData:null
65
+ };
66
+ let tournamentUpdateEventSource:EventSourcePolyfill;
67
+ let dataCenter = new CasinoTournamentsDetailDataCenter();
68
+ let opLayout={rows:[]};
69
+ let tournamentData, errorMessage;
70
+ let isMounted =false;
71
+ let isLoading = true;
72
+
73
+ Object.keys(TournamentsPageTranslations).forEach((item:any) => {
74
+ addNewMessages(item, TournamentsPageTranslations[item]);
75
+ });
76
+ const setLangReactive = () => {
77
+ setLocale(lang);
78
+ }
79
+ setupI18n({ withLocale: lang, translations: {}});
80
+ const resetWidgetAttributes = (component, tournamentData)=>{
81
+ let cellAttributes=component.componentAttrs || {};
82
+ if(!cellAttributes){
83
+ return;
84
+ }
85
+ Object.keys(cellAttributes).forEach((attr)=>{
86
+ if(tournamentData.hasOwnProperty(attr)){
87
+ cellAttributes[attr] = tournamentData[attr];
88
+ }
89
+ });
90
+ }
91
+ const resetCMSAttributes = () =>{
92
+
93
+ let rows = opLayout.rows;
94
+ let resetCellsValues = (rowCols) =>{
95
+ if(!rowCols || !rowCols.length){
96
+ return;
97
+ }
98
+ rowCols.forEach((col)=>{
99
+
100
+ if(!col.isCellContainer){
101
+ let dataKey = col.dataKey;
102
+ if(dataKey && dataKey.source == 'cms'){
103
+ let cellAttributes=col.componentAttrs || {};
104
+ if(!cellAttributes){
105
+ return;
106
+ }
107
+ cellAttributes[dataKey.textKey] = componentParams.cmsData[dataKey.key] || null;
108
+ }
109
+ }
110
+ resetCellsValues(col.subComponents);
111
+ });
112
+ }
113
+ rows.forEach((row)=>{
114
+ resetCellsValues(row.cols);
115
+ })
116
+ }
117
+ const getDataFromCMS = () => {
118
+ fetch(`${cmsendpoint}`)
119
+ .then((res: any) => {
120
+ return res ? res.json() : {details: [{"title": "Description", text: 'DescriptionText'}]}
121
+ })
122
+ .then((data: any) => {
123
+ if (data && data.details) {
124
+ componentParams.cmsData['tournamentdescription'] = data.details;
125
+ }
126
+ resetCMSAttributes();
127
+ opLayout = {...opLayout};
128
+ });
129
+ }
130
+ const initTournamentDetails = (layout, tournamentData) =>{
131
+ let rows = layout.rows;
132
+ let resetCellsValues = (rowCols) =>{
133
+ if(!rowCols || !rowCols.length){
134
+ return;
135
+ }
136
+ rowCols.forEach((col)=>{
137
+ if(!col.isCellContainer){
138
+ resetWidgetAttributes(col, tournamentData);
139
+ }
140
+ resetCellsValues(col.subComponents);
141
+ });
142
+ }
143
+ rows.forEach((row)=>{
144
+ resetCellsValues(row.cols);
145
+ })
146
+ }
147
+ const tournamentUpdateMessageHandler= (message:any) =>{
148
+ if(!message.data){
149
+ return;
150
+ }
151
+ try{
152
+ let messagDataAsJson = JSON.parse(message.data);
153
+ if(messagDataAsJson.messageType == 'TournamentUpdate'){
154
+ window.postMessage({type: 'UpdateTournamentView', tournamentData: messagDataAsJson.item}, window.location.href);
155
+
156
+ transferTournamentData(messagDataAsJson.item);
157
+ }
158
+ }catch (e){
159
+ console.error(e);
160
+ }
161
+ },
162
+ startupTournamentUpdateListener = (tournamentID: string, searchParamsAsString:string)=>{
163
+ let endpointURL:string = `${endpoint}/tournaments/updates?filter=id=${tournamentID}&${searchParamsAsString}`;
164
+ if(tournamentUpdateEventSource){
165
+ tournamentUpdateEventSource.removeEventListener('message', tournamentUpdateMessageHandler);
166
+ tournamentUpdateEventSource.close();
167
+ }
168
+ tournamentUpdateEventSource = new EventSourcePolyfill(endpointURL,{headers: {'accept': 'text/event-stream', 'X-SessionId': session}});
169
+ if (!typeof (tournamentUpdateEventSource) != 'undefined'){
170
+ tournamentUpdateEventSource.addEventListener('message', tournamentUpdateMessageHandler);
171
+ }
172
+ }
173
+ const transferTournamentData = (rawData) =>{
174
+ tournamentData = dataCenter.transfer(rawData);
175
+ componentParams.tournamentData = tournamentData;
176
+ tournamentData.lang = lang;
177
+ opLayout = parseLayout(Layouts[layoutid]||Layouts['default'], componentParams);
178
+ }
179
+ const getData = (endpointURL: String, tourID: String) => {
180
+ let url = new URL(endpointURL + `/tournaments/${tourID}`);
181
+ let reqHeaders = new Headers({'X-SessionId': session});
182
+
183
+ url.searchParams.append('platform', getDevice(userAgent));
184
+ url.searchParams.append('language', lang);
185
+ let listenerParams = url.searchParams.toString();
186
+ let requestOptions = {
187
+ method: 'GET',
188
+ headers: reqHeaders,
189
+ };
190
+ fetch(url.href, requestOptions)
191
+ .then((res: any) => res.json())
192
+ .then((res: any) => {
193
+ if(!res.success){
194
+ errorMessage = `Faild to load data, details: ${res.errorMessage}`;
195
+ return;
196
+ }else{
197
+ errorMessage = null;
198
+ }
199
+ res.item.id = tourid;
200
+ transferTournamentData(res.item);
201
+ tournamentData.lang = lang;
202
+ initTournamentDetails(opLayout, tournamentData);
203
+ opLayout = {...opLayout};
204
+ isLoading = false;
205
+ startupTournamentUpdateListener(tourid, listenerParams);
206
+ });
207
+ }
208
+
209
+ const currentComponent = get_current_component();
210
+ const resetLayoutByType = (componentsToRender, propsToReset, isTournamentProperty)=>{
211
+ if(!opLayout.rows || opLayout.rows.length == 0)
212
+ return;
213
+ let cols = opLayout.rows[0].cols;
214
+ componentsToRender.forEach((componentType)=>{
215
+ let cellByType;
216
+ let getCellByType = (cells) =>{
217
+ cells.forEach((curCell, idx)=>{
218
+ if(cellByType){
219
+ return cellByType;
220
+ }
221
+ if(curCell.componentid == componentType){
222
+ cellByType = curCell;
223
+ return cellByType;
224
+ }else{
225
+ if(curCell.subComponents && curCell.subComponents.length > 0){
226
+ return getCellByType(curCell.subComponents );
227
+ }
228
+ }
229
+ })
230
+ }
231
+ getCellByType(cols);
232
+
233
+ let props = currentComponent.$$.props;
234
+ let valuesInCtx = currentComponent.$$.ctx;
235
+ if(cellByType){
236
+ propsToReset.forEach((propertyName)=>{
237
+ if(isTournamentProperty){
238
+ cellByType.componentAttrs[propertyName] = componentParams.tournamentData[propertyName];
239
+ return;
240
+ }
241
+ let propsIdx = props[propertyName];
242
+ let valueInCtx = valuesInCtx[propsIdx];
243
+ componentParams.ctrlProperties[propertyName] = valueInCtx;
244
+ cellByType.componentAttrs[propertyName] = valueInCtx;
245
+ });
246
+ if(!isTournamentProperty){
247
+ }
248
+ }
249
+ });
250
+ opLayout = {...opLayout};
251
+ }
252
+ const resetLayoutByLayoutid = () =>{
253
+ if(!tournamentData){
254
+ console.log('tournamentData undefined');
255
+ return;
256
+ }
257
+ layoutid =( Layouts[layoutid]?layoutid:'default' );
258
+ opLayout = parseLayout(Layouts[layoutid], componentParams);
259
+ }
260
+ const onLoadComponent = (node:any, col:any)=>{
261
+ if(col.onLoad){
262
+ col.onLoad();
263
+ }
264
+ }
265
+ const init=()=>{
266
+ getData(endpoint, tourid);
267
+ }
268
+ const messageHandler = (e:any) => {
269
+ if (e.data && e.data.type == "TournamentUserEnrolled") {
270
+ componentParams.tournamentData.userenrolled = e.data.userenrolled;
271
+ }
272
+ }
273
+ let customStylingContainer, component;
274
+ onMount(()=>{
275
+ isMounted = true;
276
+ layoutid = Layouts[layoutid] ? layoutid : 'default';
277
+ mobileView = isMobile(userAgent);
278
+ componentParams.ctrlProperties = $$props;
279
+ window.addEventListener('message', messageHandler);
280
+ return() => {
281
+ window.removeEventListener('message', messageHandler);
282
+ }
283
+ });
284
+
285
+
286
+ $: isMounted && endpoint && session && userid && lang && tourid && init();
287
+ $: isMounted && session && userid && setTimeout(()=>{//timeout: only render once if session/userid both are changed
288
+ resetLayoutByType(['LeaderboardCell', 'GamesCell'], ['session', 'userid']);
289
+ }, 100);
290
+ $: isMounted && showunqualifiedplayer && scorefractiondigit && tablelimit
291
+ && resetLayoutByType(['LeaderboardCell'], ['showunqualifiedplayer', 'scorefractiondigit', 'tablelimit']); //,
292
+ $: isMounted && layoutid && resetLayoutByLayoutid();
293
+ </script>
294
+
295
+ {#if isLoading}
296
+ <p class="LoadingMessage" part="LoadingMessage">
297
+ {$_('tournamentsPage.loading')}
298
+ </p>
299
+ {/if}
300
+ <div style="display: {isLoading ? 'none':'flex'}" class="casino-tournaments-customize-page-controller layout-{layoutid} {mobileView? 'MobileContainer':''}"
301
+ part="casino-tournaments-customize-page-controller layout-{layoutid}" bind:this={customStylingContainer}>
302
+ {#if errorMessage}
303
+ {errorMessage}
304
+ {/if}
305
+ {#each opLayout.rows as row }
306
+ {#each row.cols as col}
307
+ <div class="Cell1s {col.cellClass}" part="{col.parts}" use:onLoadComponent={col} >
308
+ {#if !col.isCellContainer}
309
+ <svelte:component this={col.component} {...col.componentAttrs} attrs={col.componentAttrs}></svelte:component>
310
+ {/if}
311
+ {#if col.isSlotCell}
312
+ <slot part="{col.slotName}" class="{col.slotName}" name="{col.slotName}"></slot>
313
+ {/if}
314
+ {#if col.subComponents && col.subComponents.length > 0}
315
+ {#each col.subComponents as subCol}
316
+ <div class="Cell2s {subCol.cellClass}" part="{subCol.parts} Cell2s" use:onLoadComponent={subCol} >
317
+ {#if !subCol.isCellContainer}
318
+ <svelte:component this={subCol.component} {...subCol.componentAttrs} attrs={subCol.componentAttrs}></svelte:component>
319
+ {/if}
320
+ {#if subCol.isSlotCell}
321
+ <slot part="{subCol.slotName}" class="{subCol.slotName}" name="{subCol.slotName}"></slot>
322
+ {/if}
323
+ {#if subCol.subComponents && subCol.subComponents.length > 0}
324
+ {#each subCol.subComponents as grandCol}
325
+ <div class="Cell3s {grandCol.cellClass}" part="{grandCol.parts} Cell3s" use:onLoadComponent={grandCol} >
326
+ {#if grandCol.isSlotCell}
327
+ <slot part="{grandCol.slotName}" class="{grandCol.slotName}" name="{grandCol.slotName}"></slot>
328
+ {:else }
329
+ <svelte:component this={grandCol.component} {...grandCol.componentAttrs}
330
+ attrs={grandCol.componentAttrs}></svelte:component>
331
+ {/if}
332
+ </div>
333
+ {/each}
334
+ {/if}
335
+ </div>
336
+ {/each}
337
+ {/if}
338
+ </div>
339
+ {/each}
340
+ {/each}
341
+ </div>
342
+ <style lang="scss" >
343
+ $primary-background-color: var(--emfe-w-color-contrast, #07072A);
344
+ $primary-font-color: var(--emfe-w-color-white, #FFFFFF);
345
+ :host {
346
+ font-size: 12px;
347
+ font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
348
+ }
349
+ *,*::before,*::after {
350
+ margin: 0;
351
+ padding: 0;
352
+ list-style: none;
353
+ text-decoration: none;
354
+ outline: none;
355
+ box-sizing: border-box;
356
+ }
357
+ a {color: var(--emfe-w-color-green, #48952a); text-decoration: underline; cursor: pointer; }
358
+ .casino-tournaments-customize-page-controller {
359
+ background: var(--emfe-w-color-black, #000000);
360
+ color: var(--emfe-w-color-white, #FFFFFF);
361
+ display: flex;
362
+ flex-direction: row;
363
+ justify-content: space-between;
364
+ flex-wrap: wrap;
365
+ padding-top: 15px;
366
+ }
367
+ .Cell1s, .Cell2s, .Cell3s{}
368
+ .BizCells{ }
369
+ .MobileContainer{
370
+ flex-wrap: nowrap;
371
+ flex-direction: column;
372
+ align-items: initial;
373
+ .Cells.RowContent{display: flex; flex-direction: column; width: 100%}
374
+ }
375
+ .row-70-center{margin: auto;width: 70%;}
376
+ .Cells.RowContent{display: flex; flex-direction: row; width: 100%}
377
+ .BackButtonCell {
378
+ .TopButtons {display: inline-flex;flex-direction: column;font-size: 10px;}
379
+ .BackButton{display: inline-flex;align-items: center;cursor: pointer;
380
+ .ButtonText {font-size: 24px;}
381
+ }
382
+ }
383
+ .DurationCell{.Remaining{text-align: center;}}
384
+ .TitleCell .Title{font-size: 18px;padding-bottom: 10px; }
385
+ .SeeGamesLine{.GamesAnchor{text-decoration: underline;}}
386
+ .JoinButtonCell{ display: flex;justify-content: center;gap: 5px;flex-direction: column;
387
+ align-items: center;
388
+ .ErrorText{color: red}
389
+
390
+
391
+ $spinnerSize: 40;
392
+
393
+ .spinner {
394
+ width: $spinnerSize + px;
395
+ height: $spinnerSize + px;
396
+ x: 0px;
397
+ y: 0px;
398
+ viewBox: 0 0 $spinnerSize $spinnerSize;
399
+
400
+ .circle {
401
+ fill: transparent;
402
+ stroke: var(--emfe-w-color-contrast, #07072A);
403
+ stroke-width: 4;
404
+ stroke-linecap: round;
405
+ stroke-dasharray: (3.14 * $spinnerSize);
406
+ -webkit-transform-origin: (0.5px * $spinnerSize) (0.5px * $spinnerSize) 0;
407
+ -moz-transform-origin: (0.5px * $spinnerSize) (0.5px * $spinnerSize) 0;
408
+ -ms-transform-origin: (0.5px * $spinnerSize) (0.5px * $spinnerSize) 0;
409
+ -o-transform-origin: (0.5px * $spinnerSize) (0.5px * $spinnerSize) 0;
410
+ transform-origin: (0.5px * $spinnerSize) (0.5px * $spinnerSize) 0;
411
+ -webkit-animation: spinner 2s linear infinite;
412
+ -moz-animation: spinner 2s linear infinite;
413
+ -ms-animation: spinner 2s linear infinite;
414
+ -o-animation: spinner 2s linear infinite;
415
+ animation: spinner 2s linear infinite;
416
+ }
417
+ }
418
+
419
+ @-webkit-keyframes spinner {
420
+ 0% {
421
+ -webkit-transform: rotate(0deg);
422
+ stroke-dashoffset: (0.66 * $spinnerSize);
423
+ } 50% {
424
+ -webkit-transform: rotate(720deg);
425
+ stroke-dashoffset: (3.14 * $spinnerSize);
426
+ } 100% {
427
+ -webkit-transform: rotate(1080deg);
428
+ stroke-dashoffset: (0.66 * $spinnerSize);
429
+ }
430
+ }
431
+
432
+ @-moz-keyframes spinner {
433
+ 0% {
434
+ -moz-transform: rotate(0deg);
435
+ stroke-dashoffset: (0.66 * $spinnerSize);
436
+ } 50% {
437
+ -moz-transform: rotate(720deg);
438
+ stroke-dashoffset: (3.14 * $spinnerSize);
439
+ } 100% {
440
+ -moz-transform: rotate(1080deg);
441
+ stroke-dashoffset: (0.66 * $spinnerSize);
442
+ }
443
+ }
444
+
445
+ @-ms-keyframes spinner {
446
+ 0% {
447
+ -ms-transform: rotate(0deg);
448
+ stroke-dashoffset: (0.66 * $spinnerSize);
449
+ } 50% {
450
+ -ms-transform: rotate(720deg);
451
+ stroke-dashoffset: (3.14 * $spinnerSize);
452
+ } 100% {
453
+ -ms-transform: rotate(1080deg);
454
+ stroke-dashoffset: (0.66 * $spinnerSize);
455
+ }
456
+ }
457
+
458
+ @-o-keyframes spinner {
459
+ 0% {
460
+ -o-transform: rotate(0deg);
461
+ stroke-dashoffset: (0.66 * $spinnerSize);
462
+ } 50% {
463
+ -o-transform: rotate(720deg);
464
+ stroke-dashoffset: (3.14 * $spinnerSize);
465
+ } 100% {
466
+ -o-transform: rotate(1080deg);
467
+ stroke-dashoffset: (0.66 * $spinnerSize);
468
+ }
469
+ }
470
+
471
+ @keyframes spinner {
472
+ 0% {
473
+ transform: rotate(0deg);
474
+ stroke-dashoffset: (0.66 * $spinnerSize);
475
+ } 50% {
476
+ transform: rotate(720deg);
477
+ stroke-dashoffset: (3.14 * $spinnerSize);
478
+ } 100% {
479
+ transform: rotate(1080deg);
480
+ stroke-dashoffset: (0.66 * $spinnerSize);
481
+ }
482
+ }
483
+ }
484
+ .Tag{position: absolute;top: 15px;font-size: 12px;}
485
+ .ThumbnailCell{
486
+ position: relative;
487
+ .CardImg {
488
+ height: 300px;
489
+ width: 100%;
490
+ background-image: url('https://breakthrough.org/wp-content/uploads/2018/10/default-placeholder-image.png');
491
+ background-repeat: no-repeat;
492
+ background-position: center;
493
+ background-size: cover;
494
+ }
495
+ .CardImg.CardImgFinished { filter: grayscale(1); }
496
+ }
497
+ .DetailInfo{
498
+ display: flex;
499
+ flex-direction: column;
500
+ padding: 8px;
501
+ min-height: 200px;
502
+ border-radius: 8px;
503
+ .TitleTextCell{
504
+ font-size: 19px;
505
+ }
506
+ }
507
+ .PrizesCell{
508
+ .PrizeRank{display: flex;padding-right: 3px}
509
+ .Prize .PrizeText{display: flex;}
510
+ }
511
+ .ScoreCriteriaCell{
512
+ font-size: 11px;
513
+ .ScoreCriteria{
514
+ }
515
+ }
516
+ .TournamentDuration{
517
+ .TournamentDates {
518
+ display: flex;
519
+ justify-content: space-between;
520
+ }
521
+
522
+ .StartDate {
523
+ font-size: 11px;
524
+ color: var(--emfe-w-color-gray-300, #58586B);
525
+ }
526
+
527
+ .EndDate {
528
+ font-size: 11px;
529
+ align-content: flex-end;
530
+ color: var(--emfe-w-color-gray-300, #58586B);
531
+ }
532
+
533
+ .ProgressBar {
534
+ height: 8px;
535
+ background: var(--emfe-w-color-white, #FFFFFF);
536
+ }
537
+
538
+
539
+ .ProgressBarInactive {
540
+ margin: 5px 20px 10px 20px;
541
+ height: 8px;
542
+ background: var(--emfe-w-color-gray-100, #E6E6E6);
543
+ }
544
+
545
+ .ProgressBarFill {
546
+ background-color: var(--emfe-w-color-green, #48952a);
547
+ height: 8px;
548
+
549
+ }
550
+ //wm
551
+ .TournamentPrizesIconSection{
552
+ display: inline-flex;
553
+ }
554
+
555
+ .ProgressBarFillEnd {
556
+ background-color: var(--emfe-w-color-green, #48952a);
557
+ height: 8px;
558
+ }
559
+
560
+ .ProgressBarFillStarting {
561
+ background-color: var(--emfe-w-color-gray-300, #58586B);
562
+ height: 8px;
563
+ }
564
+
565
+ .Remaining, .Finished {
566
+ text-align: right;
567
+ text-transform: uppercase;
568
+ }
569
+
570
+ .Finished {
571
+ color: var(--emfe-w-color-green, #48952a);
572
+ }
573
+ }
574
+ .GamesCell{
575
+ .TournamentsGamesSlider {
576
+ background: var(--emfe-w-color-contrast, #07072A);
577
+ color: var(--emfe-w-color-white, #FFFFFF);
578
+ display: flex;
579
+ justify-content: center;
580
+ align-items: center;
581
+ }
582
+ .SliderNavButton {
583
+ background: var(--emfe-w-color-contrast, #07072A);
584
+ border: 0px;
585
+ width: 25px;
586
+ cursor: pointer;
587
+ svg{width: 20px;}
588
+ }
589
+ .SliderNavButton.disabled {
590
+ color: var(--emfe-w-color-gray-150, #828282);
591
+ }
592
+ main, .main {
593
+ width: calc(100% - 50px);
594
+ overflow: hidden;
595
+ }
596
+ .items {
597
+ display: flex;
598
+ transition: transform 0.4s ease-in-out;
599
+ transform: translateX(0px);
600
+ }
601
+ .item {
602
+ min-width: 119px;
603
+ height: 96px;
604
+ margin: 0 4px;
605
+ background-color: var(--emfe-w-color-secondary, #FD2839);
606
+ color: white;
607
+ display: flex;
608
+ justify-content: center;
609
+ align-items: center;
610
+ font-weight: bold;
611
+ font-size: 10rem;
612
+ user-select: none;
613
+ overflow: hidden;
614
+ .GameThumbnail{
615
+ height: 100%;
616
+ }
617
+ }
618
+ .PlayNowButton {
619
+ position: absolute;
620
+ background: var(--emfe-w-color-green, #48952a);
621
+ display: block;
622
+ box-sizing: border-box;
623
+ padding: 0.8rem .5rem;
624
+ color: var(--emfe-w-color-white, #FFFFFF);
625
+ text-transform: uppercase;
626
+ text-align: center;
627
+ font-weight: 600;
628
+ font-size: 0.7rem;
629
+ cursor: pointer;
630
+ transition: opacity .4s linear;
631
+ opacity: 0;
632
+ text-overflow: ellipsis;
633
+ white-space: nowrap;
634
+ overflow: hidden;
635
+ }
636
+ .itemHover {opacity: 1;}
637
+ .items .item:first-child {margin-left: 0;}
638
+ .items .item:last-child {margin-right: 0;}
639
+ }
640
+ .TitleTextCell, .DescriptionCell{
641
+ .Title {
642
+ text-transform: uppercase;
643
+ }
644
+ .DetailsCard {
645
+ line-height: 18px;
646
+ border: 1px solid var(--emfe-w-color-contrast, #07072A);
647
+ color: $primary-font-color;
648
+ width: 100%;
649
+ margin: 25px 0 25px 0;
650
+ }
651
+
652
+ .DetailsTitle {
653
+ padding: 0 20px;
654
+ height: 60px;
655
+ display: flex;
656
+ align-items: center;
657
+ justify-content: space-between;
658
+ background: var(--emfe-w-color-contrast, #07072A);
659
+ }
660
+
661
+ .DetailsContent {
662
+ overflow: auto;
663
+ height: 150px;
664
+ padding: 10px 10px 10px 20px;
665
+ margin: 10px 20px 10px 0;
666
+ }
667
+
668
+ .sc::-webkit-scrollbar {
669
+ width: 5px;
670
+ height: 5px;
671
+ }
672
+ .sc::-webkit-scrollbar-track {
673
+ background-color: rgba(255, 255, 255, 0.1);
674
+ border-radius: 10px;
675
+ }
676
+ .sc::-webkit-scrollbar-thumb {
677
+ background-color: var(--emfe-w-color-white, #FFFFFF);
678
+ border-radius: 10px;
679
+ }
680
+ }
681
+ .LeaderboardCell{
682
+ .LeaderboardContainer {
683
+ background: var(--emfe-w-color-contrast, #07072A);
684
+ color: var(--emfe-w-color-white, #FFFFFF);
685
+ display: flex;
686
+ width: 100%;
687
+ height: 52px;
688
+ align-items: center;
689
+ justify-content: space-between;
690
+ gap: 20px;
691
+ }
692
+ .Leaderboard {
693
+ width: 100%;
694
+ height: 44px;
695
+ display: flex;
696
+ align-items: center;
697
+ padding-left: 20px;
698
+ }
699
+ .TableContent {
700
+ width: 100%;
701
+ font-size: 14px;
702
+ margin-bottom: 2px;
703
+ border-bottom: solid 1px var(--emfe-w-color-white, #FFFFFF);
704
+ &.TableContentFirstRow {
705
+ box-sizing: border-box;
706
+ border: 2px solid var(--emfe-w-color-green, #48952a);
707
+ }
708
+ }
709
+ .TableUser {
710
+ background: var(--emfe-w-table-bg, #282828);
711
+ height: 44px;
712
+ display: flex;
713
+ align-items: center;
714
+ border-bottom: solid 1px var(--emfe-w-table-border, #3a3a3a);
715
+ &.TableHeadRow {
716
+ background: var(--emfe-w-table-header-bg, #1c1c1c);
717
+ color: var(--emfe-w-color-white, #fff);
718
+ }
719
+ &.CurrentUserRow {
720
+ box-sizing: border-box;
721
+ background: var(--emfe-w-table-currentuser-bg, #533a34);
722
+ }
723
+ &.UnqualifiedRow {
724
+ border-bottom: 0;
725
+ }
726
+ }
727
+ .TableUserTooltips{
728
+ display: flex;
729
+ gap: 4px;
730
+ flex-direction: row;
731
+ width: 100%;
732
+ padding: 10px 0;
733
+ background: var(--emfe-w-table-currentuser-bg, #533a34);
734
+ font-size: 0.8rem;
735
+ line-height: 1.2;
736
+ }
737
+ .TooltipsRow {
738
+ border: 2px solid var(--emfe-w-tooltips-border, #fecf00);
739
+ border-top: 0;
740
+ .ExclamationMark {
741
+ fill:var(--emfe-w-color-exclamation, #fecf00);
742
+ }
743
+ .LeftTableTd {
744
+ padding: 0 0 10px 0;
745
+ font-size: 12px;
746
+ color: var(--emfe-w-color-tooltips, #fecf00);
747
+ }
748
+ }
749
+ .TableCell {
750
+ padding:10px;
751
+ flex: 2;
752
+ text-align: center;
753
+ }
754
+ .TableRank {
755
+ flex: 1 50px;
756
+ }
757
+ .TablePlayer{
758
+ flex: 5;
759
+ }
760
+ .TablePrize {
761
+ flex: 5;
762
+ }
763
+ .Qualified {
764
+ color: var(--emfe-w-highlight, #debb05);
765
+ }
766
+ .ExclamationMark {
767
+ vertical-align: text-top;
768
+ width: 14px;
769
+ height: 14px;
770
+ fill: var(--emfe-w-color-exclamation, #fecf00);
771
+ }
772
+ .TableUserDetails {
773
+ background: var(--emfe-w-color-contrast, #07072A);
774
+ display: flex;
775
+ line-height: 18px;
776
+ align-items: center;
777
+ text-align: center;
778
+ justify-content:space-around;
779
+ height: 52px;
780
+ }
781
+ .TournamentsTable {
782
+ width: 100%;
783
+ display: flex;
784
+ justify-content: space-between;
785
+ text-align: center;
786
+ margin-top: 10px;
787
+ }
788
+
789
+ .LeftTable {
790
+ width: 100%;
791
+ border-collapse: collapse;
792
+ }
793
+ .RightButton {
794
+ cursor: pointer;
795
+ background: var(--emfe-w-color-contrast, #07072A);
796
+ width: 50px;
797
+ height: 70px;
798
+ border: 2px solid var(--emfe-w-color-contrast-600, #0D0D4D);
799
+ &.MobileClass {
800
+ height: 50px;
801
+ }
802
+ }
803
+ .FirstRow {
804
+ outline: 2px solid #1B9800;
805
+ &.UnqualifiedRow {
806
+ outline: 0;
807
+ border: 2px solid var(--emfe-w-tooltips-border, #fecf00);
808
+ border-bottom: 0;
809
+ td {
810
+ border-bottom: 0;
811
+ }
812
+ }
813
+ .RankCol{
814
+ position: relative;
815
+ width: max-content;
816
+ display: inline;
817
+ .ScoreChangeFlag{
818
+ position: absolute;
819
+ top: 0px;
820
+ right: -29px;
821
+ .Arrow{
822
+ &.Up{ color: #0cdc13}
823
+ &.Down{color: #FF4500}
824
+ }
825
+ }
826
+
827
+ }
828
+ }
829
+ .Show{display: inline-flex}
830
+ .Hidden{display: none}
831
+ .svg.Arrow.Up, .svg.Arrow.Down {
832
+ &.Show{display: inline-flex}
833
+ &.Hidden{display: none}
834
+ animation-name: twinkle;
835
+ animation-duration: 1s;
836
+ animation-iteration-count: infinite;
837
+ width: 14px;
838
+ height: 14px;
839
+ }
840
+
841
+ @keyframes twinkle {
842
+ 0% {opacity: 0;}
843
+ 25% {opacity: 1;}
844
+ 100% {opacity: 0;}
845
+ }
846
+ .TournamentsTable{
847
+
848
+ .LeftTable {
849
+ width: 100%;
850
+ border-spacing: 0;
851
+ position: relative;
852
+ overflow: auto;
853
+ margin-bottom: 0.5rem;
854
+ .LeftTableThead{
855
+ }
856
+ .LeftTableTh {
857
+ padding: 0.8rem 1.25rem;
858
+ height: 30px;
859
+ top: 0;
860
+ color: var(--emfe-w-color-white, #FFFFFF);
861
+ }
862
+ .LeftTableTbody{
863
+ }
864
+ .LeftTableTd {
865
+ margin: 0;
866
+ vertical-align: top;
867
+ text-align: inherit;
868
+ font-size: 11px;
869
+ max-width: 20%;
870
+ }
871
+ .PrizeIcon{
872
+ vertical-align: middle;
873
+ }
874
+
875
+ .LeftTableTd:first-child {
876
+ left: 0;
877
+ top: auto;
878
+ width: 10rem;
879
+ }
880
+ .LeftTableTh_0{
881
+ width: 10%;
882
+ }
883
+ .LeftTableTh_1{
884
+ width: 15%;
885
+ }
886
+ }
887
+ }
888
+
889
+
890
+ svg {
891
+ width: 1.25rem;
892
+ height: 1.25rem;
893
+
894
+ fill: rgba(0, 0, 0, 0.5);
895
+ flex-shrink: 0;
896
+ }
897
+ .flex {
898
+ display: flex;
899
+ align-items: center;
900
+ }
901
+
902
+ button {
903
+ font-weight: bold;
904
+ font-size: inherit;
905
+ text-transform: capitalize;
906
+ background-color: transparent;
907
+ border: none;
908
+ cursor: pointer;
909
+ display: block;
910
+ padding: 0 1rem 0 0;
911
+ background-size: 0.75rem;
912
+ background-repeat: no-repeat;
913
+ background-position: center right;
914
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234f4f4f' d='M16.29 14.29L12 18.59l-4.29-4.3a1 1 0 00-1.42 1.42l5 5a1 1 0 001.42 0l5-5a1 1 0 00-1.42-1.42zM7.71 9.71L12 5.41l4.29 4.3a1 1 0 001.42 0 1 1 0 000-1.42l-5-5a1 1 0 00-1.42 0l-5 5a1 1 0 001.42 1.42z'/%3E%3C/svg%3E");
915
+ }
916
+
917
+ .CollapseButton {
918
+ display: flex;
919
+ align-items: center;
920
+ justify-content: center;
921
+ width: 100%;
922
+ height: 100%;
923
+ background: var(--emfe-w-color-contrast, #07072A);
924
+ color: var(--emfe-w-color-white, #FFFFFF);
925
+ }
926
+
927
+ [data-sort="ASC"],
928
+ [data-sort="DESC"] {
929
+ background-size: 1rem;
930
+ background-position: right -0.15rem center;
931
+ }
932
+
933
+ [data-sort="ASC"] {
934
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234f4f4f' d='M11.29 11.46a1 1 0 001.42 0l3-3A1 1 0 1014.29 7L12 9.34 9.71 7a1 1 0 10-1.42 1.46zm3 1.08L12 14.84l-2.29-2.3A1 1 0 008.29 14l3 3a1 1 0 001.42 0l3-3a1 1 0 00-1.42-1.42z'/%3E%3C/svg%3E");
935
+ }
936
+
937
+ [data-sort="DESC"] {
938
+ background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%234f4f4f' d='M12.71 12.54a1 1 0 00-1.42 0l-3 3A1 1 0 009.71 17L12 14.66 14.29 17a1 1 0 001.42 0 1 1 0 000-1.42zm-3-1.08L12 9.16l2.29 2.3a1 1 0 001.42 0 1 1 0 000-1.42l-3-3a1 1 0 00-1.42 0l-3 3a1 1 0 001.42 1.42z'/%3E%3C/svg%3E");
939
+ }
940
+ }
941
+
942
+ .layout-default{
943
+ &.MobileContainer{
944
+ .Cells.LeftSection {
945
+ width: auto;
946
+ }
947
+ }
948
+ .Cells{line-height: 18px}
949
+ .Cells.LeftSection {
950
+ margin: 10px;
951
+ width: calc(29%);
952
+ border: solid 1px #30313c;
953
+ }
954
+ .BackButtonCell{width: 100%}
955
+ .RightSection{flex: auto}
956
+ .Cells.ThumbnailCell{
957
+ margin: 0px;
958
+ }
959
+ .DetailInfo{padding: 12px; height: auto}
960
+ .Tag{
961
+ top: 20px;
962
+ min-height: 30px;
963
+ .TagContent{
964
+ padding: 7px 10px;
965
+ text-transform: uppercase;
966
+ font-size: 12px;
967
+ background: var(--emfe-w-color-black, #000000);
968
+ }
969
+ }
970
+
971
+ .SeeGamesLine .GamesAnchor{color: var(--emfe-w-color-green, #48952a)}
972
+ .StatusTag .Status, .UserEnrollTag .Enrolled{}
973
+ .StatusTag{right: 20px;}
974
+ .UserEnrollTag{left: 15px;
975
+ .Enrolled{
976
+ color: var(--emfe-w-color-gray-150, #828282);
977
+ }
978
+ }
979
+ .TournamentDuration {
980
+ font-size: 10px;
981
+ }
982
+ .StartDateCell{
983
+ .Date{text-transform: uppercase}
984
+ }
985
+ .PrizesCell{
986
+ padding: 10px 0px 0px;
987
+ .TournamentPrizes {
988
+ font-size: 11px;
989
+ margin-left: 20px;
990
+ margin-right: 20px;
991
+ display: flex;
992
+ gap: 5px;
993
+ }
994
+
995
+ .PrizesTitle {
996
+ padding-top: 5px;
997
+ }
998
+
999
+ .Prizes, .ColPrizes {
1000
+ padding-left: 20px;
1001
+ flex-wrap: wrap;
1002
+ display: flex;
1003
+ gap: 10px;
1004
+ width: auto;
1005
+ min-height: 50px;
1006
+ padding-top: 8px;
1007
+ }
1008
+ .Prize {
1009
+ flex-grow: 1;
1010
+ color: var(--emfe-w-color-gray-300, #58586B);
1011
+ .PrizeText { color: var(--emfe-w-color-white, #FFFFFF); }
1012
+ }
1013
+ }
1014
+ .Prize0, .Prize1, .Prize2{
1015
+ .PrizeRank{color: #FECF00};
1016
+ }
1017
+ .ScoreCriteriaCell{
1018
+ .ScoreCriteria{
1019
+ font-size: 12px;
1020
+ }
1021
+ }
1022
+ .DurationCell{margin-bottom: 25px; margin-top: 0px}
1023
+ .JoinButtonCell{
1024
+ margin-bottom: 20px;
1025
+ .TournamentButtons {
1026
+ display: flex;
1027
+ justify-content: center;
1028
+ gap: 20px;
1029
+ margin: 0px;
1030
+ width: 100%;
1031
+
1032
+ button {
1033
+ cursor: pointer;
1034
+ }
1035
+ }
1036
+
1037
+ .LoginButton {
1038
+ background: $primary-background-color;
1039
+ width: 50%;
1040
+ height: 50px;
1041
+ border: solid var(--emfe-w-color-white, #FFFFFF) 1px;
1042
+ text-align: center;
1043
+ color: var(--emfe-w-color-white, #FFFFFF);
1044
+ text-transform: uppercase;
1045
+ font-size: 15px;
1046
+ }
1047
+
1048
+ .LoginButton:hover {
1049
+ opacity: 0.7;
1050
+ }
1051
+
1052
+ .RegisterButton {
1053
+ background: $primary-background-color;
1054
+ width: 50%;
1055
+ height: 50px;
1056
+ text-align: center;
1057
+ color: var(--emfe-w-color-green, #48952a);
1058
+ border: solid var(--emfe-w-color-green, #48952a) 1px;
1059
+ text-transform: uppercase;
1060
+ font-size: 14px;
1061
+ }
1062
+
1063
+ .RegisterButton:hover {
1064
+ opacity: 0.7;
1065
+ }
1066
+
1067
+ .DetailsButton {
1068
+ background: $primary-background-color;
1069
+ width: 40%;
1070
+ height: 50px;
1071
+ border: solid var(--emfe-w-color-white, #FFFFFF) 1px;
1072
+ text-align: center;
1073
+ color: var(--emfe-w-color-white, #FFFFFF);
1074
+ text-transform: uppercase;
1075
+ font-size: 14px;
1076
+ }
1077
+
1078
+ .DetailsButton:hover {
1079
+ opacity: 0.7;
1080
+ }
1081
+
1082
+ .DetailsLargeButton {
1083
+ background: $primary-background-color;
1084
+ width: 100%;
1085
+ height: 50px;
1086
+ border: solid var(--emfe-w-color-white, #FFFFFF) 1px;
1087
+ text-align: center;
1088
+ color: var(--emfe-w-color-white, #FFFFFF);
1089
+ text-transform: uppercase;
1090
+ font-size: 14px;
1091
+ }
1092
+
1093
+ .DetailsLargeButton:hover {
1094
+ opacity: 0.7;
1095
+ }
1096
+
1097
+ .EnrolledButton {
1098
+ background: var(--emfe-w-color-contrast, #07072A);
1099
+ width: 60%;
1100
+ height: 50px;
1101
+ text-align: center;
1102
+ color: var(--emfe-w-color-green, #48952a);
1103
+ border: solid var(--emfe-w-color-green, #48952a) 1px;
1104
+ text-transform: uppercase;
1105
+ font-size: 14px;
1106
+ cursor: default;
1107
+ }
1108
+
1109
+ .JoinButton {
1110
+ background: var(--emfe-w-color-green, #48952a);
1111
+ width: 100%;
1112
+ height: 50px;
1113
+ text-align: center;
1114
+ color: var(--emfe-w-color-white, #FFFFFF);
1115
+ border: solid var(--emfe-w-color-green, #48952a) 1px;
1116
+ text-transform: uppercase;
1117
+ display: flex;
1118
+ justify-content: center;
1119
+ align-items: center;
1120
+ gap: 20px;
1121
+ font-size: 14px;
1122
+ }
1123
+
1124
+ .JoinButton:hover {
1125
+ opacity: 0.7;
1126
+ }
1127
+
1128
+ .JoinButton:disabled {
1129
+ cursor: default;
1130
+ opacity: 0.7;
1131
+ }
1132
+
1133
+ .JoinButtonFullSize {
1134
+ width: 100%;
1135
+ }
1136
+
1137
+ .ErrorText {
1138
+ margin: 0 20px;
1139
+ color: red;
1140
+ font-size: 14px;
1141
+ font-weight: bold;
1142
+ }
1143
+ }
1144
+ .LeaderboardCell{
1145
+ .Qualified {
1146
+ color: var(--emfe-w-highlight, #debb05);
1147
+ }
1148
+ .TournamentsTable{
1149
+ .LeftTableTh{
1150
+ padding: 1.5rem 1.25rem;
1151
+ height: 70px;
1152
+ background-color: var(--emfe-w-color-contrast, #07072A);
1153
+ border-bottom: 1px solid var(--emfe-w-color-contrast-600, #0D0D4D);
1154
+ top: 0;
1155
+ }
1156
+ .LeftTable {
1157
+ .LeftTableThead{
1158
+ border-bottom: 0px none;
1159
+ }
1160
+ .LeftTableTh {
1161
+ color: var(--emfe-w-color-white, #FFFFFF);
1162
+ }
1163
+ .LeftTableTd{
1164
+ margin: 0;
1165
+ padding: 0.95rem;
1166
+ vertical-align: top;
1167
+ text-align: inherit;
1168
+ font-size: 11px;
1169
+ max-width: 20%;
1170
+ background-color: var(--emfe-w-color-contrast, #07072A);
1171
+ border-bottom: 1px solid var(--emfe-w-color-contrast-600, #0D0D4D);
1172
+ }
1173
+
1174
+ .LeftTableTh_0{
1175
+ width: 10%;
1176
+ }
1177
+ //wm
1178
+ .LeftTableTh_1{
1179
+ width: 15%;
1180
+ }
1181
+ }
1182
+ }
1183
+ }
1184
+ }
1185
+ .layout-wm{
1186
+ &.MobileContainer{
1187
+ .Cells.RowContent{flex-direction: column; width: 100%}
1188
+ .StartDateCell{left: calc(35%)}
1189
+ .PrizesCell .Prizes{
1190
+ margin-bottom: 8px;
1191
+ .ColPrizes{margin: 0px}
1192
+ }
1193
+ }
1194
+ background: var(--emfe-w-color-black, #000000);
1195
+ color: var(--emfe-w-color-white, #FFFFFF);
1196
+ display: flex;
1197
+ flex-direction: column;
1198
+
1199
+ &.MobileContainer{
1200
+ .TitleCell{
1201
+ .Title{padding: 10px}
1202
+ }
1203
+ .TournamentDuration{
1204
+ .TournamentDates {
1205
+ margin-left: 0px;
1206
+ margin-right: 0px;
1207
+ }
1208
+ }
1209
+ .PrizesCell .Prizes{flex-direction: column; gap: 0px}
1210
+ }
1211
+ .Cells{line-height: 18px}
1212
+ .Cells.RowContent{flex-direction: row; width: 100%}
1213
+ .DetailInfo{
1214
+ flex: 1;
1215
+ height: 200px;
1216
+ background-color: var(--emfe-w-color-bg, #153A5C);
1217
+ border-radius: 8px;
1218
+ text-align: center;
1219
+ .TitleTextCell{
1220
+ font-size: 19px;
1221
+ }
1222
+ }
1223
+ .ThumbnailCell{
1224
+ position: relative;
1225
+ flex: 1;
1226
+ .Thumbnail{
1227
+ padding: 8px;
1228
+ }
1229
+ .CardImg{
1230
+ border-radius: 5px;
1231
+ height: 180px;
1232
+ padding: 10px 0px;
1233
+ }
1234
+ }
1235
+ .Tag .TagContent{
1236
+ box-shadow: 0px 1px 2px rgba(0, 0, 0, 0.3), 0px 1px 3px 1px rgba(0, 0, 0, 0.15);
1237
+ border-radius: 8px;
1238
+ padding: 7px;
1239
+ }
1240
+ .StartDateCell{left: calc(45%);
1241
+ .Date{color: #1A2C38;background: #FF7500;.CalendarIcon{width: 10px}}
1242
+ }
1243
+ .UserEnrollTag{right: 15px;.Enrolled{background: #24834B;}}
1244
+ .StatusTag{left: 15px;.Status{background: #D0046C;}}
1245
+
1246
+ .TournamentDuration{
1247
+ .TournamentDates {
1248
+ margin-left: 20px;
1249
+ margin-right: 20px;
1250
+ display: flex;
1251
+ justify-content: space-between;
1252
+ }
1253
+ .ProgressBarWrapper{height: 20px}
1254
+
1255
+ .StartDate {
1256
+ font-size: 11px;
1257
+ color: var(--emfe-w-color-white, #FFFFFF);
1258
+ }
1259
+
1260
+ .EndDate {
1261
+ font-size: 11px;
1262
+ align-content: flex-end;
1263
+ color: var(--emfe-w-color-white, #FFFFFF);
1264
+ }
1265
+ .ProgressBarInactive {
1266
+ margin: 5px 20px 10px 20px;
1267
+ height: 8px;
1268
+ background: var(--emfe-w-color-gray-100, #E6E6E6);
1269
+ border-radius: 3px;
1270
+ }
1271
+ //wm
1272
+ .ProgressBarFill{
1273
+ height: 6px;
1274
+ background: var(--emfe-w-color-green, #0072ED);
1275
+ border-radius: 3px;
1276
+ }
1277
+ .ProgressBar {
1278
+ margin: 5px 20px;
1279
+ border-radius: 3px;
1280
+ background-color: #0A1B2D;
1281
+ height: 6px;
1282
+ }
1283
+ //wm
1284
+ .TournamentPrizesIconSection{
1285
+ display: inline-flex;
1286
+ }
1287
+
1288
+ .ProgressBarFillEnd {
1289
+ background-color: var(--emfe-w-color-green, #48952a);
1290
+ height: 8px;
1291
+ border-radius: 3px;
1292
+ }
1293
+
1294
+ .ProgressBarFillStarting {
1295
+ background-color: var(--emfe-w-color-white, #FFFFFF);
1296
+ height: 8px;
1297
+ }
1298
+
1299
+ .PrizesCell{
1300
+ margin-top:10px;
1301
+ span {
1302
+ color: var(--emfe-w-color-gray-100, #E6E6E6);
1303
+ }
1304
+
1305
+ .TournamentPrizes {
1306
+ font-size: 11px;
1307
+ margin-left: 20px;
1308
+ margin-right: 20px;
1309
+ display: flex;
1310
+ gap: 5px;
1311
+ }
1312
+ //wm
1313
+ .TournamentPrizes{
1314
+ display: block;
1315
+ text-align: center;
1316
+ }
1317
+
1318
+ .PrizesTitle {
1319
+ padding-top: 8px;
1320
+ }
1321
+
1322
+ .ColPrizes{
1323
+ background-color: var(--emfe-w-color-bg, #153A5C);
1324
+ margin: 5px;
1325
+ .Prize{
1326
+ flex-grow: 1;
1327
+ border-bottom: 1px solid rgba(206, 210, 214, 0.15);
1328
+ margin: 2px;
1329
+ padding: 4px;
1330
+ }
1331
+ .PrizeText{
1332
+ display: flex;
1333
+ align-items: center;
1334
+ flex-direction: row;
1335
+ justify-content: space-between;
1336
+ }
1337
+ .PrizeRank{
1338
+ line-height: 18px;
1339
+ }
1340
+ }
1341
+
1342
+
1343
+ .Prizes {
1344
+ padding-left: 20px;
1345
+ flex-wrap: wrap;
1346
+ display: flex;
1347
+ gap: 20px;
1348
+ width: 100%;
1349
+ min-height: 50px;
1350
+ padding-top: 8px;
1351
+ }
1352
+
1353
+ .PrizeText{
1354
+ border-radius: 2px;
1355
+ padding: 2px;
1356
+ }
1357
+ .Prize {
1358
+ flex-grow: 1;
1359
+ color: var(--emfe-w-color-white, #FFFFFF);
1360
+ &.Prize0 span {color:#FECF00;}
1361
+ &.Prize1 span {color:#D9B206;}
1362
+ &.Prize2 span {color:#9B8007;}
1363
+ p { color: var(--emfe-w-color-white, #FFFFFF); }
1364
+
1365
+ }
1366
+ }
1367
+ .Remaining, .Finished {
1368
+ font-size: 10px;
1369
+ text-align: right;
1370
+ text-transform: uppercase;
1371
+ }
1372
+
1373
+ .Finished {
1374
+ color: var(--emfe-w-color-green, #48952a);
1375
+ }
1376
+ }
1377
+ .ScoreCriteriaCell{
1378
+ .ScoreCriteria{
1379
+ color: greenyellow;
1380
+ }
1381
+ }
1382
+ .TitleCell{
1383
+ .Title{font-weight: bold;padding: 15px}
1384
+ }
1385
+ .SeeGamesLine{
1386
+ .GamesAnchor{
1387
+ color: #fff;
1388
+ }
1389
+ }
1390
+ .PrizesCell{
1391
+ margin-top:10px;
1392
+ margin-top: 10px;
1393
+ display: flex;
1394
+ width: 100%;
1395
+ flex: 1;
1396
+
1397
+ span {
1398
+ color: var(--emfe-w-color-gray-100, #E6E6E6);
1399
+ }
1400
+
1401
+ .TournamentPrizes {
1402
+ font-size: 11px;
1403
+ width: 100%;
1404
+ .TournamentPrizesIconSection{
1405
+ display: flex;
1406
+ justify-content: center;
1407
+ flex-direction: column;
1408
+ align-items: center;
1409
+ }
1410
+ }
1411
+ .Prizes {
1412
+ justify-content: space-between;
1413
+ display: flex;
1414
+ gap: 20px;
1415
+ width: 100%;
1416
+ min-height: 50px;
1417
+ padding-top: 8px;
1418
+ flex-wrap: nowrap;
1419
+ .ColPrizes{
1420
+ flex: 1;
1421
+ background-color: var(--emfe-w-color-bg, #153A5C);
1422
+ margin: 5px;
1423
+ .Prize{
1424
+ border-bottom: 1px solid rgba(206, 210, 214, 0.15);
1425
+ margin: 2px;
1426
+ padding: 4px;
1427
+ }
1428
+ .Prize {
1429
+ color: var(--emfe-w-color-white, #FFFFFF);
1430
+ &.Prize0 span {color:#FECF00;}
1431
+ &.Prize1 span {color:#D9B206;}
1432
+ &.Prize2 span {color:#9B8007;}
1433
+ p { color: var(--emfe-w-color-white, #FFFFFF); }
1434
+
1435
+ }
1436
+ .PrizeText{
1437
+ display: flex;
1438
+ align-items: center;
1439
+ flex-direction: row;
1440
+ justify-content: space-between;
1441
+ }
1442
+ .PrizeText{
1443
+ border-radius: 2px;
1444
+ padding: 2px;
1445
+ }
1446
+ .PrizeRank{
1447
+ line-height: 18px;
1448
+ }
1449
+ }
1450
+ .Prize0 .PrizeText { background-color: var(--emfe-rank-1-color, #7E6C22);}
1451
+ .Prize1 .PrizeText {background-color: var(--emfe-rank-1-color, #666666);}
1452
+ .Prize2 .PrizeText {background-color: var(--emfe-rank-1-color, #6A5446);}
1453
+ }
1454
+ }
1455
+ .JoinButtonCell{
1456
+ margin: 7px 0px;
1457
+ .JoinButtonSvg{
1458
+ display: none
1459
+ }
1460
+ .spinner .circle{
1461
+ stroke: var(--emfe-w-color-contrast, #d5d5e4);
1462
+ }
1463
+ .LoginButton, .RegisterButton, .JoinButton {
1464
+ display: flex;
1465
+ flex-direction: row;
1466
+ justify-content: center;
1467
+ align-items: center;
1468
+ padding: 8px 16px;
1469
+ width: 104px;
1470
+ height: 36px;
1471
+
1472
+
1473
+ background: #0072ED;
1474
+ border-radius: 3px;
1475
+ border: 0px none;
1476
+
1477
+ font-style: normal;
1478
+ font-weight: 600;
1479
+ font-size: 14px;
1480
+ line-height: 20px;
1481
+ color: var(--emfe-w-color-white, #FFFFFF);
1482
+ cursor: pointer;
1483
+ .JoinButtonSvg{width: 15px;height: 15px;margin-left: 10px; }
1484
+ }
1485
+ }
1486
+ .DescriptionAndTermConditions{
1487
+ flex: 1;
1488
+ }
1489
+ .LeaderboardCell{
1490
+ flex: 1;
1491
+ .TableUserDetails {
1492
+ background: var(--emfe-w-color-contrast, #07072A);
1493
+ display: flex;
1494
+ line-height: 18px;
1495
+ align-items: center;
1496
+ text-align: center;
1497
+ justify-content:space-around;
1498
+ height: 52px;
1499
+ }
1500
+ .FirstRow {
1501
+ outline: 2px solid #1B9800;
1502
+ &.UnqualifiedRow {
1503
+ outline: 0;
1504
+ border: 2px solid var(--emfe-w-tooltips-border, #fecf00);
1505
+ border-bottom: 0;
1506
+ td {
1507
+ border-bottom: 0;
1508
+ }
1509
+ }
1510
+ .RankCol{
1511
+ position: relative;
1512
+ width: max-content;
1513
+ display: inline;
1514
+ .ScoreChangeFlag{
1515
+ position: absolute;
1516
+ top: 0px;
1517
+ right: -29px;
1518
+ .Arrow{
1519
+ &.Up{ color: #0cdc13}
1520
+ &.Down{color: #FF4500}
1521
+ }
1522
+ }
1523
+
1524
+ }
1525
+ }
1526
+ .TournamentsTable{
1527
+ .LeftTable {
1528
+ .LeftTableThead{
1529
+ background-color: var(--emfe-w-color-bg, #153A5C);
1530
+ border-bottom: 12px solid var(--emfe-w-color-black, #000000);
1531
+ }
1532
+ .LeftTableTh {
1533
+ border-bottom: 1px solid var(--emfe-w-color-contrast-600, #0D0D4D);
1534
+ color: var(--emfe-w-color-white, #FFFFFF);
1535
+ }
1536
+ .LeftTableTbody{
1537
+ background-color: var(--emfe-w-color-bg, #153A5C);
1538
+ }
1539
+ .LeftTableTd {
1540
+ color: var(--emfe-w-color-white, #FFFFFF);
1541
+ border-bottom: 1px solid rgba(206, 210, 214, 0.15);
1542
+ }
1543
+ .CellContent{
1544
+ margin: 5px 0;
1545
+ vertical-align: middle;
1546
+ line-height: 22px;
1547
+ }
1548
+ .PrizeIcon{
1549
+ vertical-align: middle;
1550
+ }
1551
+
1552
+ .Rank1Tr{.CellContent{background: var(--emfe-rank-1-color, #7E6C22)}}
1553
+ .Rank2Tr{.CellContent{background: var(--emfe-rank-2-color, #666666)}}
1554
+ .Rank3Tr{.CellContent{background: var(--emfe-rank-3-color, #6A5446)}}
1555
+ .FirstRow{.CellContent{background:var(--emfe-rank-user-color, #12753A)}}
1556
+
1557
+ .LeftTableTd:first-child {
1558
+ left: 0;
1559
+ top: auto;
1560
+ width: 10rem;
1561
+ }
1562
+ .LeftTableThead{
1563
+ border: 8px solid #153A5C;
1564
+ border-bottom: 10px solid #000;
1565
+ }
1566
+ .LeftTableTbody{
1567
+ border: 8px solid #153A5C;
1568
+ border-top: 10px solid #000;
1569
+ }
1570
+ .LeftTableTh_0{
1571
+ width: 10%;
1572
+ }
1573
+ .LeftTableTh_1{
1574
+ width: 15%;
1575
+ }
1576
+ }
1577
+ }
1578
+ }
1579
+ }
1580
+ </style>