@everymatrix/casino-lobby 0.0.367 → 0.0.369

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,358 +1,358 @@
1
- <svelte:options tag={null} />
2
-
3
- <script lang="ts">
4
- import { onMount } from "svelte";
5
- import { getDevice, checkSession } from 'rvhelper';
6
- import { setupI18n, setLocale } from './i18n';
7
-
8
- import '@everymatrix/casino-categories-slider';
9
- import '@everymatrix/casino-page';
10
- import '@everymatrix/casino-modal';
11
- // import '@everymatrix/casino-game-page-2';
12
- import '@everymatrix/casino-game-page';
13
- import '@everymatrix/casino-filter-modal';
14
- import '@everymatrix/casino-filter-page';
15
- import '@everymatrix/casino-integrated-game-page';
16
-
17
- export let endpoint:string = '';
18
- export let datasource:string = '';
19
- export let lang:string = ''; // Language
20
- export let session:string = ''; // Value for sessionID
21
- export let userid:string = '';
22
- export let opsession:string = '';
23
- export let clientstyling:string = '';
24
- export let clientstylingurl:string = '';
25
- export let clockformat:string = '';
26
- export let lobbyid:string = '';
27
- export let currency:string = '';
28
-
29
- export let loginurl:string = '';
30
- export let registerurl:string = '';
31
- export let depositurl:string = '';
32
- export let loginevent:string = '';
33
- export let registerevent:string = '';
34
- export let depositevent:string = '';
35
-
36
- export let mostplayed:string = '';
37
- export let mostplayedrounds:string = '';
38
- export let favorites:string = '';
39
-
40
- export let desktopoffset:string = '0';
41
- export let mobileoffset:string = '0';
42
- export let alternativesearch:string = 'false';
43
-
44
- export let containermaxwidth:string = '';
45
- export let haspanicbutton:string = 'false';
46
-
47
- export let activecategory:string = 'LOBBY';
48
- export let actionevent:string = 'CategoryChange';
49
- export let livecasino:string = 'false';
50
- export let playforfun:string = 'true';
51
- export let gamemodal:string = 'true';
52
- export let playrandomgame:string = 'false';
53
- export let visiblegames:string = '10';
54
- export let integratedgameframedesktop:string = 'false';
55
- export let integratedgameframemobile:string = 'false';
56
- export let gamepagemodalurl:string = 'false';
57
- export let enablecasinowinners:string = 'true';
58
- export let enablejackpotbanner:string = 'true';
59
-
60
- export let tabsorder:string = '';
61
- export let enableautoscroll:string = '';
62
- export let istopavailable:string = '';
63
- export let isrecentavailable:string = '';
64
-
65
- export let showsubgroups:string = '';
66
-
67
- // Button icon for random game widget
68
- export let randombuttonicon:string = '';
69
-
70
- let endpointURL:string;
71
- let DS:string;
72
- let language:string;
73
- let displayNone:boolean = false;
74
- let hasErrors:boolean = false;
75
- let error:string = 'Loading, please wait ...';
76
- let isLoggedIn:boolean = false;
77
- let sessionID:string = '';
78
- let playerID:string = '';
79
- let userAgent:string = window.navigator.userAgent;
80
- let isLoading:boolean = true;
81
-
82
- let headerPlaceholderSize:number = 0;
83
- let scrollTop:boolean = false;
84
- let customStylingContainer:HTMLElement;
85
- let mostPlayed;
86
- let fav;
87
-
88
- setupI18n({ withLocale: 'en', translations: {}});
89
-
90
- const messageHandler = (e:any):void => {
91
- if (e.data) {
92
- switch(e.data.type) {
93
- case 'WidgetTopReference':
94
- scrollTop = e.data.scrollTop;
95
- // check if the category has been changed and the scroll top
96
- if (scrollTop) {
97
- if (!headerPlaceholderSize) {
98
- headerPlaceholderSize = (getDevice(userAgent) === 'PC') ? parseInt(desktopoffset) : parseInt(mobileoffset);
99
- }
100
- window.scrollTo({ top: headerPlaceholderSize });
101
- }
102
- break;
103
-
104
- case 'UserSessionID':
105
- sessionID = e.data.session;
106
- playerID = e.data.userID;
107
- break;
108
-
109
- case 'CategoryChange':
110
- activecategory = e.data.itemId;
111
- break;
112
- }
113
- }
114
- }
115
-
116
- const checkAttrs = ():boolean => {
117
- if (!endpoint) {
118
- error = "Endpoint is missing! Please provide a valid endpointURL.";
119
- hasErrors = true;
120
-
121
- console.error(error);
122
- }
123
-
124
- if (!datasource) {
125
- error = "Datasource is missing! Please provide a valid datasource.";
126
- hasErrors = true;
127
-
128
- console.error(error);
129
- }
130
-
131
- if (!lang || lang.length < 2) {
132
- error = "Language is missing! Please provide a valid language (alpha2code)";
133
- hasErrors = true;
134
-
135
- console.error(error);
136
- }
137
-
138
- return hasErrors;
139
- }
140
-
141
- const setActiveLanguage = ():void => {
142
- setLocale(lang);
143
- }
144
-
145
- const initialSetup = ():void => {
146
- checkAttrs();
147
- setLocale(lang);
148
- endpointURL = endpoint;
149
- DS = datasource;
150
- language = lang;
151
-
152
- mostPlayed = mostplayed;
153
- fav = favorites;
154
-
155
- hasErrors = false;
156
- isLoading = false;
157
- }
158
-
159
- const setSession = ():void => {
160
- checkSession(endpoint, session).then((res:any) => {
161
- sessionID = res.Guid;
162
- playerID = res.UserID;
163
- currency = res.Currency;
164
- isLoggedIn = true;
165
- }, (err:any) => {
166
- isLoggedIn = false;
167
- console.error('Error while checking the session - ', err)
168
- });
169
- }
170
-
171
- const setOpSession = ():void => {
172
- isLoggedIn = true;
173
- sessionID = opsession;
174
- }
175
-
176
- const setClientStyling = ():void => {
177
- let sheet = document.createElement('style');
178
- sheet.innerHTML = clientstyling;
179
- customStylingContainer.appendChild(sheet);
180
- }
181
-
182
- const setClientStylingURL = ():void => {
183
- displayNone = true;
184
-
185
- let url:URL = new URL(clientstylingurl);
186
- let cssFile:HTMLElement = document.createElement('style');
187
-
188
- fetch(url.href)
189
- .then((res:any) => res.text())
190
- .then((data:any) => {
191
- cssFile.innerHTML = data
192
-
193
- if (customStylingContainer) {
194
- setTimeout(() => { customStylingContainer.appendChild(cssFile) }, 1);
195
- setTimeout(() => { displayNone = false; }, 500);
196
- }
197
- });
198
- }
199
-
200
- onMount(() => {
201
- window.addEventListener('message', messageHandler, false);
202
-
203
- headerPlaceholderSize = (getDevice(userAgent) === 'PC') ? parseInt(desktopoffset) : parseInt(mobileoffset);
204
-
205
- return () => {
206
- window.removeEventListener('message', messageHandler);
207
- }
208
- });
209
-
210
- $: lang && setActiveLanguage();
211
- $: session && userid && endpoint && setSession();
212
- $: endpoint && datasource && lang && mostplayed && favorites && initialSetup();
213
- $: opsession && setOpSession();
214
- $: clientstyling && setClientStyling();
215
- $: clientstylingurl && setClientStylingURL();
216
- </script>
217
-
218
- <div bind:this={customStylingContainer} class={displayNone ? 'DisplayNone' : ''} part="{displayNone ? 'DisplayNone' : ''}">
219
- {#if hasErrors}
220
- <p style="color:var(--emfe-w-color-white, #FFFFFF)">{error}</p>
221
- {:else}
222
- <div class="CasinoLobby" part="CasinoLobby">
223
- <div class="WidgetsSection" part="WidgetsSection">
224
- <div class="HeaderPlaceholder" part="HeaderPlaceholder" style="height:{headerPlaceholderSize}px"></div>
225
- <div class="ScrollTop" part="ScrollTop"></div>
226
- <casino-categories-slider
227
- endpoint={endpointURL}
228
- datasource={DS}
229
- lang={language}
230
- session={sessionID}
231
- userid={userid}
232
- sessioncheck="false"
233
- {actionevent}
234
- {mostplayed}
235
- {mostplayedrounds}
236
- {favorites}
237
- {activecategory}
238
- {clientstyling}
239
- {clientstylingurl}
240
- {containermaxwidth}
241
- {showsubgroups}
242
- ></casino-categories-slider>
243
- <casino-page
244
- session={sessionID}
245
- userid={userid}
246
- endpoint={endpointURL}
247
- datasource={DS}
248
- lang={language}
249
- {visiblegames}
250
- {playrandomgame}
251
- {activecategory}
252
- {alternativesearch}
253
- {favorites}
254
- {mostplayedrounds}
255
- {mostplayed}
256
- {clientstyling}
257
- {clientstylingurl}
258
- {lobbyid}
259
- {containermaxwidth}
260
- {haspanicbutton}
261
- {livecasino}
262
- {currency}
263
- {gamepagemodalurl}
264
- {randombuttonicon}
265
- {enablecasinowinners}
266
- {enablejackpotbanner}
267
- {enableautoscroll}
268
- {tabsorder}
269
- {isrecentavailable}
270
- {istopavailable}
271
- ></casino-page>
272
- {#if gamemodal == 'true'}
273
- <casino-modal
274
- session={sessionID}
275
- userid={userid}
276
- endpoint={endpointURL}
277
- datasource={DS}
278
- lang={language}
279
- sessioncheck="false"
280
- {clientstyling}
281
- {clientstylingurl}
282
- {gamepagemodalurl}
283
- {haspanicbutton}
284
- >
285
- <casino-game-page
286
- session={sessionID}
287
- userid={userid}
288
- endpoint={endpointURL}
289
- datasource={DS}
290
- lang={language}
291
- loginevent={loginevent}
292
- registerevent={registerevent}
293
- depositevent={depositevent}
294
- checksession="false"
295
- {playforfun}
296
- {favorites}
297
- {clientstyling}
298
- {clientstylingurl}
299
- {clockformat}
300
- {haspanicbutton}
301
- {currency}
302
- {integratedgameframedesktop}
303
- {integratedgameframemobile}
304
- />
305
- </casino-modal>
306
- {/if}
307
- <casino-filter-modal
308
- {clientstylingurl}
309
- session={sessionID}
310
- userid={userid}
311
- endpoint={endpointURL}
312
- datasource={DS}
313
- lang={language}
314
- sessioncheck="false"
315
- {clientstyling}>
316
- <casino-filter-page
317
- session={sessionID}
318
- userid={userid}
319
- endpoint={endpointURL}
320
- datasource={DS}
321
- lang={language}
322
- {clientstylingurl}
323
- {clientstyling}>
324
- </casino-filter-page>
325
- </casino-filter-modal>
326
- </div>
327
- </div>
328
- {/if}
329
- </div>
330
-
331
- <style lang="scss">
332
- * {
333
- /* Display & Box Model */
334
- margin: 0;
335
- padding: 0;
336
- box-sizing: border-box;
337
- }
338
-
339
- :host {
340
- font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
341
- }
342
-
343
- .CasinoLobby {
344
- background-color: var(--emfe-w-color-contrast, #07072A);
345
- width: 100%;
346
- margin: 0 auto;
347
- min-height: 100vh;
348
- /*padding: 0 1em;*/
349
- }
350
-
351
- .DisplayNone {
352
- display: none;
353
- }
354
-
355
- .WidgetsSection {
356
- padding-bottom: 40px;
357
- }
358
- </style>
1
+ <svelte:options tag={null} />
2
+
3
+ <script lang="ts">
4
+ import { onMount } from "svelte";
5
+ import { getDevice, checkSession } from 'rvhelper';
6
+ import { setupI18n, setLocale } from './i18n';
7
+
8
+ import '@everymatrix/casino-categories-slider';
9
+ import '@everymatrix/casino-page';
10
+ import '@everymatrix/casino-modal';
11
+ // import '@everymatrix/casino-game-page-2';
12
+ import '@everymatrix/casino-game-page';
13
+ import '@everymatrix/casino-filter-modal';
14
+ import '@everymatrix/casino-filter-page';
15
+ import '@everymatrix/casino-integrated-game-page';
16
+
17
+ export let endpoint:string = '';
18
+ export let datasource:string = '';
19
+ export let lang:string = ''; // Language
20
+ export let session:string = ''; // Value for sessionID
21
+ export let userid:string = '';
22
+ export let opsession:string = '';
23
+ export let clientstyling:string = '';
24
+ export let clientstylingurl:string = '';
25
+ export let clockformat:string = '';
26
+ export let lobbyid:string = '';
27
+ export let currency:string = '';
28
+
29
+ export let loginurl:string = '';
30
+ export let registerurl:string = '';
31
+ export let depositurl:string = '';
32
+ export let loginevent:string = '';
33
+ export let registerevent:string = '';
34
+ export let depositevent:string = '';
35
+
36
+ export let mostplayed:string = '';
37
+ export let mostplayedrounds:string = '';
38
+ export let favorites:string = '';
39
+
40
+ export let desktopoffset:string = '0';
41
+ export let mobileoffset:string = '0';
42
+ export let alternativesearch:string = 'false';
43
+
44
+ export let containermaxwidth:string = '';
45
+ export let haspanicbutton:string = 'false';
46
+
47
+ export let activecategory:string = 'LOBBY';
48
+ export let actionevent:string = 'CategoryChange';
49
+ export let livecasino:string = 'false';
50
+ export let playforfun:string = 'true';
51
+ export let gamemodal:string = 'true';
52
+ export let playrandomgame:string = 'false';
53
+ export let visiblegames:string = '10';
54
+ export let integratedgameframedesktop:string = 'false';
55
+ export let integratedgameframemobile:string = 'false';
56
+ export let gamepagemodalurl:string = 'false';
57
+ export let enablecasinowinners:string = 'true';
58
+ export let enablejackpotbanner:string = 'true';
59
+
60
+ export let tabsorder:string = '';
61
+ export let enableautoscroll:string = '';
62
+ export let istopavailable:string = '';
63
+ export let isrecentavailable:string = '';
64
+
65
+ export let showsubgroups:string = '';
66
+
67
+ // Button icon for random game widget
68
+ export let randombuttonicon:string = '';
69
+
70
+ let endpointURL:string;
71
+ let DS:string;
72
+ let language:string;
73
+ let displayNone:boolean = false;
74
+ let hasErrors:boolean = false;
75
+ let error:string = 'Loading, please wait ...';
76
+ let isLoggedIn:boolean = false;
77
+ let sessionID:string = '';
78
+ let playerID:string = '';
79
+ let userAgent:string = window.navigator.userAgent;
80
+ let isLoading:boolean = true;
81
+
82
+ let headerPlaceholderSize:number = 0;
83
+ let scrollTop:boolean = false;
84
+ let customStylingContainer:HTMLElement;
85
+ let mostPlayed;
86
+ let fav;
87
+
88
+ setupI18n({ withLocale: 'en', translations: {}});
89
+
90
+ const messageHandler = (e:any):void => {
91
+ if (e.data) {
92
+ switch(e.data.type) {
93
+ case 'WidgetTopReference':
94
+ scrollTop = e.data.scrollTop;
95
+ // check if the category has been changed and the scroll top
96
+ if (scrollTop) {
97
+ if (!headerPlaceholderSize) {
98
+ headerPlaceholderSize = (getDevice(userAgent) === 'PC') ? parseInt(desktopoffset) : parseInt(mobileoffset);
99
+ }
100
+ window.scrollTo({ top: headerPlaceholderSize });
101
+ }
102
+ break;
103
+
104
+ case 'UserSessionID':
105
+ sessionID = e.data.session;
106
+ playerID = e.data.userID;
107
+ break;
108
+
109
+ case 'CategoryChange':
110
+ activecategory = e.data.itemId;
111
+ break;
112
+ }
113
+ }
114
+ }
115
+
116
+ const checkAttrs = ():boolean => {
117
+ if (!endpoint) {
118
+ error = "Endpoint is missing! Please provide a valid endpointURL.";
119
+ hasErrors = true;
120
+
121
+ console.error(error);
122
+ }
123
+
124
+ if (!datasource) {
125
+ error = "Datasource is missing! Please provide a valid datasource.";
126
+ hasErrors = true;
127
+
128
+ console.error(error);
129
+ }
130
+
131
+ if (!lang || lang.length < 2) {
132
+ error = "Language is missing! Please provide a valid language (alpha2code)";
133
+ hasErrors = true;
134
+
135
+ console.error(error);
136
+ }
137
+
138
+ return hasErrors;
139
+ }
140
+
141
+ const setActiveLanguage = ():void => {
142
+ setLocale(lang);
143
+ }
144
+
145
+ const initialSetup = ():void => {
146
+ checkAttrs();
147
+ setLocale(lang);
148
+ endpointURL = endpoint;
149
+ DS = datasource;
150
+ language = lang;
151
+
152
+ mostPlayed = mostplayed;
153
+ fav = favorites;
154
+
155
+ hasErrors = false;
156
+ isLoading = false;
157
+ }
158
+
159
+ const setSession = ():void => {
160
+ checkSession(endpoint, session).then((res:any) => {
161
+ sessionID = res.Guid;
162
+ playerID = res.UserID;
163
+ currency = res.Currency;
164
+ isLoggedIn = true;
165
+ }, (err:any) => {
166
+ isLoggedIn = false;
167
+ console.error('Error while checking the session - ', err)
168
+ });
169
+ }
170
+
171
+ const setOpSession = ():void => {
172
+ isLoggedIn = true;
173
+ sessionID = opsession;
174
+ }
175
+
176
+ const setClientStyling = ():void => {
177
+ let sheet = document.createElement('style');
178
+ sheet.innerHTML = clientstyling;
179
+ customStylingContainer.appendChild(sheet);
180
+ }
181
+
182
+ const setClientStylingURL = ():void => {
183
+ displayNone = true;
184
+
185
+ let url:URL = new URL(clientstylingurl);
186
+ let cssFile:HTMLElement = document.createElement('style');
187
+
188
+ fetch(url.href)
189
+ .then((res:any) => res.text())
190
+ .then((data:any) => {
191
+ cssFile.innerHTML = data
192
+
193
+ if (customStylingContainer) {
194
+ setTimeout(() => { customStylingContainer.appendChild(cssFile) }, 1);
195
+ setTimeout(() => { displayNone = false; }, 500);
196
+ }
197
+ });
198
+ }
199
+
200
+ onMount(() => {
201
+ window.addEventListener('message', messageHandler, false);
202
+
203
+ headerPlaceholderSize = (getDevice(userAgent) === 'PC') ? parseInt(desktopoffset) : parseInt(mobileoffset);
204
+
205
+ return () => {
206
+ window.removeEventListener('message', messageHandler);
207
+ }
208
+ });
209
+
210
+ $: lang && setActiveLanguage();
211
+ $: session && userid && endpoint && setSession();
212
+ $: endpoint && datasource && lang && mostplayed && favorites && initialSetup();
213
+ $: opsession && setOpSession();
214
+ $: clientstyling && setClientStyling();
215
+ $: clientstylingurl && setClientStylingURL();
216
+ </script>
217
+
218
+ <div bind:this={customStylingContainer} class={displayNone ? 'DisplayNone' : ''} part="{displayNone ? 'DisplayNone' : ''}">
219
+ {#if hasErrors}
220
+ <p style="color:var(--emfe-w-color-white, #FFFFFF)">{error}</p>
221
+ {:else}
222
+ <div class="CasinoLobby" part="CasinoLobby">
223
+ <div class="WidgetsSection" part="WidgetsSection">
224
+ <div class="HeaderPlaceholder" part="HeaderPlaceholder" style="height:{headerPlaceholderSize}px"></div>
225
+ <div class="ScrollTop" part="ScrollTop"></div>
226
+ <casino-categories-slider
227
+ endpoint={endpointURL}
228
+ datasource={DS}
229
+ lang={language}
230
+ session={sessionID}
231
+ userid={userid}
232
+ sessioncheck="false"
233
+ {actionevent}
234
+ {mostplayed}
235
+ {mostplayedrounds}
236
+ {favorites}
237
+ {activecategory}
238
+ {clientstyling}
239
+ {clientstylingurl}
240
+ {containermaxwidth}
241
+ {showsubgroups}
242
+ ></casino-categories-slider>
243
+ <casino-page
244
+ session={sessionID}
245
+ userid={userid}
246
+ endpoint={endpointURL}
247
+ datasource={DS}
248
+ lang={language}
249
+ {visiblegames}
250
+ {playrandomgame}
251
+ {activecategory}
252
+ {alternativesearch}
253
+ {favorites}
254
+ {mostplayedrounds}
255
+ {mostplayed}
256
+ {clientstyling}
257
+ {clientstylingurl}
258
+ {lobbyid}
259
+ {containermaxwidth}
260
+ {haspanicbutton}
261
+ {livecasino}
262
+ {currency}
263
+ {gamepagemodalurl}
264
+ {randombuttonicon}
265
+ {enablecasinowinners}
266
+ {enablejackpotbanner}
267
+ {enableautoscroll}
268
+ {tabsorder}
269
+ {isrecentavailable}
270
+ {istopavailable}
271
+ ></casino-page>
272
+ {#if gamemodal == 'true'}
273
+ <casino-modal
274
+ session={sessionID}
275
+ userid={userid}
276
+ endpoint={endpointURL}
277
+ datasource={DS}
278
+ lang={language}
279
+ sessioncheck="false"
280
+ {clientstyling}
281
+ {clientstylingurl}
282
+ {gamepagemodalurl}
283
+ {haspanicbutton}
284
+ >
285
+ <casino-game-page
286
+ session={sessionID}
287
+ userid={userid}
288
+ endpoint={endpointURL}
289
+ datasource={DS}
290
+ lang={language}
291
+ loginevent={loginevent}
292
+ registerevent={registerevent}
293
+ depositevent={depositevent}
294
+ checksession="false"
295
+ {playforfun}
296
+ {favorites}
297
+ {clientstyling}
298
+ {clientstylingurl}
299
+ {clockformat}
300
+ {haspanicbutton}
301
+ {currency}
302
+ {integratedgameframedesktop}
303
+ {integratedgameframemobile}
304
+ />
305
+ </casino-modal>
306
+ {/if}
307
+ <casino-filter-modal
308
+ {clientstylingurl}
309
+ session={sessionID}
310
+ userid={userid}
311
+ endpoint={endpointURL}
312
+ datasource={DS}
313
+ lang={language}
314
+ sessioncheck="false"
315
+ {clientstyling}>
316
+ <casino-filter-page
317
+ session={sessionID}
318
+ userid={userid}
319
+ endpoint={endpointURL}
320
+ datasource={DS}
321
+ lang={language}
322
+ {clientstylingurl}
323
+ {clientstyling}>
324
+ </casino-filter-page>
325
+ </casino-filter-modal>
326
+ </div>
327
+ </div>
328
+ {/if}
329
+ </div>
330
+
331
+ <style lang="scss">
332
+ * {
333
+ /* Display & Box Model */
334
+ margin: 0;
335
+ padding: 0;
336
+ box-sizing: border-box;
337
+ }
338
+
339
+ :host {
340
+ font-family: system-ui, -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif, 'Apple Color Emoji', 'Segoe UI Emoji';
341
+ }
342
+
343
+ .CasinoLobby {
344
+ background-color: var(--emfe-w-color-contrast, #07072A);
345
+ width: 100%;
346
+ margin: 0 auto;
347
+ min-height: 100vh;
348
+ /*padding: 0 1em;*/
349
+ }
350
+
351
+ .DisplayNone {
352
+ display: none;
353
+ }
354
+
355
+ .WidgetsSection {
356
+ padding-bottom: 40px;
357
+ }
358
+ </style>