@everymatrix/casino-games-category-section 0.0.189 → 0.0.193
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@everymatrix/casino-games-category-section",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.193",
|
|
4
4
|
"main": "dist/casino-games-category-section.js",
|
|
5
5
|
"svelte": "src/index.ts",
|
|
6
6
|
"scripts": {
|
|
7
7
|
"start": "sirv public",
|
|
8
|
-
"build": "cross-env NODE_ENV
|
|
8
|
+
"build": "cross-env NODE_ENV=production rollup -c",
|
|
9
9
|
"dev": "cross-env NODE_ENV=\"development\" rollup -c -w",
|
|
10
10
|
"validate": "svelte-check",
|
|
11
11
|
"test": "echo"
|
|
@@ -36,5 +36,5 @@
|
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"access": "public"
|
|
38
38
|
},
|
|
39
|
-
"gitHead": "
|
|
39
|
+
"gitHead": "0960983a499b8cd9494500f0f36058fdc61fbead"
|
|
40
40
|
}
|
package/rollup.config.js
CHANGED
|
@@ -6,8 +6,11 @@ import livereload from 'rollup-plugin-livereload';
|
|
|
6
6
|
import { terser } from 'rollup-plugin-terser';
|
|
7
7
|
import sveltePreprocess from 'svelte-preprocess';
|
|
8
8
|
import typescript from '@rollup/plugin-typescript';
|
|
9
|
-
|
|
10
|
-
|
|
9
|
+
import uglify from 'rollup-plugin-uglify';
|
|
10
|
+
import image from '@rollup/plugin-image';
|
|
11
|
+
|
|
12
|
+
const production = process.env.NODE_ENV == 'production';
|
|
13
|
+
const dev = process.env.NODE_ENV == 'development';
|
|
11
14
|
|
|
12
15
|
export default {
|
|
13
16
|
input: 'src/index.ts',
|
|
@@ -15,17 +18,21 @@ export default {
|
|
|
15
18
|
sourcemap: true,
|
|
16
19
|
format: 'umd',
|
|
17
20
|
name: 'app',
|
|
18
|
-
file: 'dist/casino-games-category-section.js'
|
|
21
|
+
file: 'dist/casino-games-category-section.js',
|
|
19
22
|
},
|
|
20
23
|
plugins: [
|
|
21
24
|
svelte({
|
|
22
25
|
preprocess: sveltePreprocess(),
|
|
23
26
|
compilerOptions: {
|
|
27
|
+
// @TODO check generate and hydratable
|
|
28
|
+
// generate: 'ssr',
|
|
29
|
+
// hydratable: true,
|
|
24
30
|
// enable run-time checks when not in production
|
|
25
31
|
customElement: true,
|
|
26
32
|
dev: !production
|
|
27
33
|
}
|
|
28
34
|
}),
|
|
35
|
+
image(),
|
|
29
36
|
commonjs(),
|
|
30
37
|
resolve({
|
|
31
38
|
browser: true,
|
|
@@ -46,12 +53,13 @@ export default {
|
|
|
46
53
|
}),
|
|
47
54
|
// If we're building for production (npm run build
|
|
48
55
|
// instead of npm run dev), minify
|
|
49
|
-
production &&
|
|
56
|
+
production &&
|
|
50
57
|
terser({
|
|
51
58
|
output: {
|
|
52
59
|
comments: "all"
|
|
53
60
|
},
|
|
54
|
-
})
|
|
61
|
+
}),
|
|
62
|
+
production && uglify.uglify()
|
|
55
63
|
],
|
|
56
64
|
watch: {
|
|
57
65
|
clearScreen: false
|
|
@@ -71,6 +71,9 @@
|
|
|
71
71
|
let getFavoredGamesCache:any = undefined;
|
|
72
72
|
let mostPlayedScreen:Boolean = false;
|
|
73
73
|
let customStylingContainer:HTMLElement;
|
|
74
|
+
let validObservers:boolean = false;
|
|
75
|
+
|
|
76
|
+
let thumbnailContainer:Array<HTMLElement> = new Array(1000);
|
|
74
77
|
|
|
75
78
|
let favoriteGamesData:any = {
|
|
76
79
|
items: [],
|
|
@@ -83,6 +86,19 @@
|
|
|
83
86
|
addNewMessages(item, GamesCategorySectionTranslations[item]);
|
|
84
87
|
});
|
|
85
88
|
|
|
89
|
+
// IntersectionObserver used for loading more games
|
|
90
|
+
let observer = new IntersectionObserver((entries, observerRef) => {
|
|
91
|
+
entries.forEach(async (entry) => {
|
|
92
|
+
let index = entry.target.elems_index; // eslint-disable-line
|
|
93
|
+
|
|
94
|
+
if (entry.isIntersecting) {
|
|
95
|
+
if (index * 1.2 > limit ) {
|
|
96
|
+
loadMoreGames(categoryid);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
});
|
|
100
|
+
});
|
|
101
|
+
|
|
86
102
|
// Start favored games section
|
|
87
103
|
const getFavoredGames = (url:string, sessionId:string, userId:string) => {
|
|
88
104
|
let options = {
|
|
@@ -241,6 +257,7 @@
|
|
|
241
257
|
showLoadCategory = true;
|
|
242
258
|
searchItem = false;
|
|
243
259
|
mostPlayedScreen = false;
|
|
260
|
+
validObservers = false;
|
|
244
261
|
|
|
245
262
|
if (e.data.receivedFavoriteResults) {
|
|
246
263
|
favoriteGames = e.data.receivedFavoriteResults.items;
|
|
@@ -268,6 +285,7 @@
|
|
|
268
285
|
searchItem = false;
|
|
269
286
|
mostPlayedScreen = false;
|
|
270
287
|
showLoadCategory = false;
|
|
288
|
+
validObservers = true;
|
|
271
289
|
categoryid = e.data.itemId;
|
|
272
290
|
|
|
273
291
|
getData(categoryid, 0, limit).then((res:any) => {
|
|
@@ -345,9 +363,9 @@
|
|
|
345
363
|
|
|
346
364
|
// @TODO categoryId type fix
|
|
347
365
|
const loadMoreGames = (categoryId:any) => {
|
|
348
|
-
limit +=
|
|
349
|
-
if (limit <= maxTotal) {
|
|
366
|
+
limit += 10;
|
|
350
367
|
|
|
368
|
+
if (limit <= maxTotal) {
|
|
351
369
|
getData(categoryId, offset, limit).then((res:any) => {
|
|
352
370
|
categoryData = res;
|
|
353
371
|
// @TODO categoryData type fix
|
|
@@ -410,36 +428,28 @@
|
|
|
410
428
|
});
|
|
411
429
|
}
|
|
412
430
|
|
|
413
|
-
|
|
414
|
-
|
|
415
|
-
|
|
416
|
-
|
|
417
|
-
|
|
418
|
-
|
|
419
|
-
|
|
420
|
-
const containerDimensions = container.getBoundingClientRect();
|
|
421
|
-
|
|
422
|
-
intersecting = (
|
|
423
|
-
(containerDimensions.bottom + bottom) > 0 &&
|
|
424
|
-
(containerDimensions.right + right) > 0 &&
|
|
425
|
-
(containerDimensions.top - top) < window.innerHeight &&
|
|
426
|
-
(containerDimensions.left - left) < window.innerWidth
|
|
427
|
-
);
|
|
428
|
-
|
|
429
|
-
if (intersecting && once && !lobbyView) {
|
|
430
|
-
loadMoreGames(categoryid);
|
|
431
|
+
const setupObserver = () => {
|
|
432
|
+
if (validObservers) {
|
|
433
|
+
thumbnailContainer.forEach((item, index) => {
|
|
434
|
+
if (item) {
|
|
435
|
+
// Hack to make sure that I can identify the thumbnail index
|
|
436
|
+
item.elems_index = index;
|
|
437
|
+
observer.observe(item);
|
|
431
438
|
}
|
|
432
|
-
}
|
|
439
|
+
});
|
|
433
440
|
}
|
|
441
|
+
}
|
|
434
442
|
|
|
435
|
-
|
|
443
|
+
onMount(() => {
|
|
444
|
+
window.addEventListener('message', messageHandler, false);
|
|
445
|
+
window.postMessage({ type: 'GetFavoredGame' }, window.location.href);
|
|
436
446
|
|
|
437
447
|
return () => {
|
|
438
|
-
window.removeEventListener('scroll', handler);
|
|
439
448
|
window.removeEventListener('message', messageHandler);
|
|
440
449
|
}
|
|
441
450
|
});
|
|
442
451
|
|
|
452
|
+
$: thumbnailContainer && setupObserver();
|
|
443
453
|
$: lang && initialSetup();
|
|
444
454
|
$: clientstyling && setClientStyling();
|
|
445
455
|
$: clientstylingurl && setClientStylingURL();
|
|
@@ -517,9 +527,9 @@
|
|
|
517
527
|
{#if showLoadCategory}
|
|
518
528
|
<!-- svelte-ignore a11y-missing-attribute -->
|
|
519
529
|
<a class="CategoryNameLink" on:click="{e => showCategory(categoryData.id, categoryData)}">
|
|
520
|
-
<
|
|
530
|
+
<span class="CategoryLoadMore">
|
|
521
531
|
{$_('gamesCategorySection.viewAll')} ({categoryData.games.total})
|
|
522
|
-
</
|
|
532
|
+
</span>
|
|
523
533
|
</a>
|
|
524
534
|
{/if}
|
|
525
535
|
</div>
|
|
@@ -542,6 +552,7 @@
|
|
|
542
552
|
gameid={gameprops.id}
|
|
543
553
|
gamefunmode={gameprops.hasFunMode}
|
|
544
554
|
gamefavorite={gameprops.isFavorite}
|
|
555
|
+
bind:this={thumbnailContainer[index]}
|
|
545
556
|
{clientstyling}
|
|
546
557
|
{clientstylingurl}
|
|
547
558
|
{endpoint}
|
|
@@ -667,10 +678,14 @@
|
|
|
667
678
|
$grid-cell-size: ttp(12);
|
|
668
679
|
|
|
669
680
|
.CategoryName,
|
|
670
|
-
.CategoryLoadMore ,
|
|
671
681
|
.StatusText {
|
|
672
682
|
color: #fff;
|
|
673
|
-
font-size:
|
|
683
|
+
font-size: 22px;
|
|
684
|
+
}
|
|
685
|
+
|
|
686
|
+
.CategoryLoadMore {
|
|
687
|
+
font-size: 14px;
|
|
688
|
+
color: #fff;
|
|
674
689
|
}
|
|
675
690
|
|
|
676
691
|
.NoSearchResults {
|