@everymatrix/casino-game-thumb-view 1.32.4 → 1.33.0

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 (131) hide show
  1. package/dist/assets/baccarat.svg +43 -0
  2. package/dist/assets/fav.svg +9 -0
  3. package/dist/assets/favorite.svg +12 -0
  4. package/dist/assets/seat.svg +6 -0
  5. package/dist/assets/unfav.svg +20 -0
  6. package/dist/casino-game-thumb-view/casino-game-thumb-view.esm.js +1 -0
  7. package/dist/casino-game-thumb-view/index.esm.js +0 -0
  8. package/dist/casino-game-thumb-view/p-1bbf4b70.entry.js +1 -0
  9. package/dist/casino-game-thumb-view/p-1e63a1ab.js +1 -0
  10. package/dist/casino-game-thumb-view/p-2d5f59fe.js +1 -0
  11. package/dist/casino-game-thumb-view/p-42bf2034.entry.js +1 -0
  12. package/dist/casino-game-thumb-view/p-46dbb1cb.js +1 -0
  13. package/dist/casino-game-thumb-view/p-6a6b2a78.js +8 -0
  14. package/dist/casino-game-thumb-view/p-7ae107ed.entry.js +1 -0
  15. package/dist/casino-game-thumb-view/p-9cbfffbc.entry.js +1 -0
  16. package/dist/casino-game-thumb-view/p-d961aec4.entry.js +1 -0
  17. package/dist/casino-game-thumb-view/p-db43bb56.entry.js +7 -0
  18. package/dist/cjs/casino-extrainfo-baccarat.cjs.entry.js +366 -0
  19. package/dist/cjs/casino-extrainfo-blackjack.cjs.entry.js +58 -0
  20. package/dist/cjs/casino-extrainfo-roulette.cjs.entry.js +45 -0
  21. package/dist/cjs/casino-game-thumb-view.cjs.js +19 -0
  22. package/dist/cjs/casino-game-thumb-view_2.cjs.entry.js +1612 -0
  23. package/dist/cjs/casino-game-thumbnail-betlimit_2.cjs.entry.js +278 -0
  24. package/dist/cjs/casino-normal-game-thumbnail.cjs.entry.js +23 -0
  25. package/dist/cjs/game-thumbnail-31d518f0.js +78 -0
  26. package/dist/cjs/index-65a1d768.js +1796 -0
  27. package/dist/cjs/index.cjs.js +2 -0
  28. package/dist/cjs/loader.cjs.js +21 -0
  29. package/dist/cjs/locale.utils-aa160787.js +132 -0
  30. package/dist/cjs/utils-a0afc0a9.js +5745 -0
  31. package/dist/collection/collection-manifest.json +19 -0
  32. package/dist/collection/components/casino-extrainfo-baccarat/casino-extrainfo-baccarat.css +116 -0
  33. package/dist/collection/components/casino-extrainfo-baccarat/casino-extrainfo-baccarat.js +240 -0
  34. package/dist/collection/components/casino-extrainfo-blackjack/casino-extrainfo-blackjack.css +64 -0
  35. package/dist/collection/components/casino-extrainfo-blackjack/casino-extrainfo-blackjack.js +119 -0
  36. package/dist/collection/components/casino-extrainfo-roulette/casino-extrainfo-roulette.css +40 -0
  37. package/dist/collection/components/casino-extrainfo-roulette/casino-extrainfo-roulette.js +123 -0
  38. package/dist/collection/components/casino-game-thumb-view/casino-game-thumb-view.css +361 -0
  39. package/dist/collection/components/casino-game-thumb-view/casino-game-thumb-view.js +1064 -0
  40. package/dist/collection/components/casino-game-thumbnail-betlimit/casino-game-thumbnail-betlimit.css +3 -0
  41. package/dist/collection/components/casino-game-thumbnail-betlimit/casino-game-thumbnail-betlimit.js +86 -0
  42. package/dist/collection/components/casino-game-thumbnail-extrainfo/casino-game-thumbnail-extrainfo.css +154 -0
  43. package/dist/collection/components/casino-game-thumbnail-extrainfo/casino-game-thumbnail-extrainfo.js +158 -0
  44. package/dist/collection/components/casino-game-thumbnail-overlay/casino-game-thumbnail-overlay.css +58 -0
  45. package/dist/collection/components/casino-game-thumbnail-overlay/casino-game-thumbnail-overlay.js +209 -0
  46. package/dist/collection/components/casino-normal-game-thumbnail/casino-normal-game-thumbnail.css +3 -0
  47. package/dist/collection/components/casino-normal-game-thumbnail/casino-normal-game-thumbnail.js +62 -0
  48. package/dist/collection/constants/game-thumbnail.js +85 -0
  49. package/dist/collection/index.js +1 -0
  50. package/dist/collection/models/casino-game-thumb-view.js +12 -0
  51. package/dist/collection/models/currency-symbols.js +173 -0
  52. package/dist/collection/static/baccarat.svg +43 -0
  53. package/dist/collection/static/fav.svg +9 -0
  54. package/dist/collection/static/favorite.svg +12 -0
  55. package/dist/collection/static/seat.svg +6 -0
  56. package/dist/collection/static/unfav.svg +20 -0
  57. package/dist/collection/utils/baccarat-board-svg.js +234 -0
  58. package/dist/collection/utils/locale.utils.js +128 -0
  59. package/dist/collection/utils/utils.js +65 -0
  60. package/dist/components/casino-extrainfo-baccarat.d.ts +11 -0
  61. package/dist/components/casino-extrainfo-baccarat.js +400 -0
  62. package/dist/components/casino-extrainfo-blackjack.d.ts +11 -0
  63. package/dist/components/casino-extrainfo-blackjack.js +92 -0
  64. package/dist/components/casino-extrainfo-roulette.d.ts +11 -0
  65. package/dist/components/casino-extrainfo-roulette.js +78 -0
  66. package/dist/components/casino-game-thumb-view.d.ts +11 -0
  67. package/dist/components/casino-game-thumb-view.js +1625 -0
  68. package/dist/components/casino-game-thumbnail-betlimit.d.ts +11 -0
  69. package/dist/components/casino-game-thumbnail-betlimit.js +6 -0
  70. package/dist/components/casino-game-thumbnail-betlimit2.js +227 -0
  71. package/dist/components/casino-game-thumbnail-extrainfo.d.ts +11 -0
  72. package/dist/components/casino-game-thumbnail-extrainfo.js +6 -0
  73. package/dist/components/casino-game-thumbnail-extrainfo2.js +96 -0
  74. package/dist/components/casino-game-thumbnail-overlay.d.ts +11 -0
  75. package/dist/components/casino-game-thumbnail-overlay.js +6 -0
  76. package/dist/components/casino-game-thumbnail-overlay2.js +69 -0
  77. package/dist/components/casino-normal-game-thumbnail.d.ts +11 -0
  78. package/dist/components/casino-normal-game-thumbnail.js +52 -0
  79. package/dist/components/game-thumbnail.js +72 -0
  80. package/dist/components/index.d.ts +26 -0
  81. package/dist/components/index.js +1 -0
  82. package/dist/components/locale.utils.js +130 -0
  83. package/dist/components/utils.js +5739 -0
  84. package/dist/esm/casino-extrainfo-baccarat.entry.js +362 -0
  85. package/dist/esm/casino-extrainfo-blackjack.entry.js +54 -0
  86. package/dist/esm/casino-extrainfo-roulette.entry.js +41 -0
  87. package/dist/esm/casino-game-thumb-view.js +17 -0
  88. package/dist/esm/casino-game-thumb-view_2.entry.js +1607 -0
  89. package/dist/esm/casino-game-thumbnail-betlimit_2.entry.js +273 -0
  90. package/dist/esm/casino-normal-game-thumbnail.entry.js +19 -0
  91. package/dist/esm/game-thumbnail-0a56ee03.js +72 -0
  92. package/dist/esm/index-1e44dd9f.js +1769 -0
  93. package/dist/esm/index.js +1 -0
  94. package/dist/esm/loader.js +17 -0
  95. package/dist/esm/locale.utils-e0cf897e.js +130 -0
  96. package/dist/esm/polyfills/core-js.js +11 -0
  97. package/dist/esm/polyfills/css-shim.js +1 -0
  98. package/dist/esm/polyfills/dom.js +79 -0
  99. package/dist/esm/polyfills/es5-html-element.js +1 -0
  100. package/dist/esm/polyfills/index.js +34 -0
  101. package/dist/esm/polyfills/system.js +6 -0
  102. package/dist/esm/utils-e9314132.js +5739 -0
  103. package/dist/index.cjs.js +1 -0
  104. package/dist/index.js +1 -0
  105. package/dist/stencil.config.js +40 -0
  106. package/dist/types/Users/adrian.pripon/Documents/Work/widgets-stencil/packages/casino-game-thumb-view/.stencil/packages/casino-game-thumb-view/stencil.config.d.ts +2 -0
  107. package/dist/types/components/casino-extrainfo-baccarat/casino-extrainfo-baccarat.d.ts +40 -0
  108. package/dist/types/components/casino-extrainfo-blackjack/casino-extrainfo-blackjack.d.ts +36 -0
  109. package/dist/types/components/casino-extrainfo-roulette/casino-extrainfo-roulette.d.ts +21 -0
  110. package/dist/types/components/casino-game-thumb-view/casino-game-thumb-view.d.ts +221 -0
  111. package/dist/types/components/casino-game-thumbnail-betlimit/casino-game-thumbnail-betlimit.d.ts +17 -0
  112. package/dist/types/components/casino-game-thumbnail-extrainfo/casino-game-thumbnail-extrainfo.d.ts +16 -0
  113. package/dist/types/components/casino-game-thumbnail-overlay/casino-game-thumbnail-overlay.d.ts +31 -0
  114. package/dist/types/components/casino-normal-game-thumbnail/casino-normal-game-thumbnail.d.ts +7 -0
  115. package/dist/types/components.d.ts +480 -0
  116. package/dist/types/constants/game-thumbnail.d.ts +83 -0
  117. package/dist/types/index.d.ts +1 -0
  118. package/dist/types/models/casino-game-thumb-view.d.ts +132 -0
  119. package/dist/types/models/currency-symbols.d.ts +172 -0
  120. package/dist/types/stencil-public-runtime.d.ts +1565 -0
  121. package/dist/types/utils/baccarat-board-svg.d.ts +31 -0
  122. package/dist/types/utils/locale.utils.d.ts +1 -0
  123. package/dist/types/utils/utils.d.ts +19 -0
  124. package/loader/cdn.js +3 -0
  125. package/loader/index.cjs.js +3 -0
  126. package/loader/index.d.ts +12 -0
  127. package/loader/index.es2017.js +3 -0
  128. package/loader/index.js +4 -0
  129. package/loader/package.json +10 -0
  130. package/package.json +2 -3
  131. package/LICENSE +0 -21
@@ -0,0 +1,366 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-65a1d768.js');
6
+ const gameThumbnail = require('./game-thumbnail-31d518f0.js');
7
+
8
+ var CasinoGameCategory;
9
+ (function (CasinoGameCategory) {
10
+ CasinoGameCategory["ROULETTE"] = "ROULETTE";
11
+ CasinoGameCategory["POKER"] = "POKER";
12
+ CasinoGameCategory["BLACKJACK"] = "BLACKJACK";
13
+ })(CasinoGameCategory || (CasinoGameCategory = {}));
14
+ var BaccaratWinner;
15
+ (function (BaccaratWinner) {
16
+ BaccaratWinner["PLAYER"] = "Player";
17
+ BaccaratWinner["WINNER"] = "Banker";
18
+ BaccaratWinner["TIE"] = "Tie";
19
+ })(BaccaratWinner || (BaccaratWinner = {}));
20
+
21
+ const BACCARAT_ROW = 6;
22
+ const BACCARTAT_COLUMN = 40;
23
+ const TIE_ANGLE = 135;
24
+ const PLAYER_ANGLE = 45;
25
+ class BaccaratSvg {
26
+ constructor() {
27
+ this.svgNS = 'http://www.w3.org/2000/svg';
28
+ this.svgVersion = '1.1';
29
+ this.markGroupExtraClass = {
30
+ name: '',
31
+ strokeWidth: 1.8,
32
+ cellPadding: 6
33
+ };
34
+ }
35
+ resetSvg() {
36
+ this.svgGroupObj.innerHTML = '';
37
+ }
38
+ createTag(tag, attrs) {
39
+ let oTag = document.createElementNS(this.svgNS, tag);
40
+ Object.keys(attrs).forEach((attr) => {
41
+ oTag.setAttribute(attr, attrs[attr]);
42
+ });
43
+ return oTag;
44
+ }
45
+ ;
46
+ //Y1 = Y2, X1=0;
47
+ createHLine(lineIdx) {
48
+ return this.createTag('line', {
49
+ 'x1': 0,
50
+ 'x2': this.svgWidth,
51
+ 'y1': lineIdx * this.cellHeight,
52
+ 'y2': lineIdx * this.cellHeight
53
+ });
54
+ }
55
+ createVLine(lineIdx) {
56
+ return this.createTag('line', {
57
+ 'x1': lineIdx * this.cellWidth,
58
+ 'x2': lineIdx * this.cellWidth,
59
+ 'y1': 0,
60
+ 'y2': this.svgHeight
61
+ });
62
+ }
63
+ createBaccaratBoard(parentEle) {
64
+ this.parentEle = parentEle;
65
+ this.svgWidth = parentEle.clientWidth;
66
+ this.cellWidth = this.svgWidth / BACCARTAT_COLUMN;
67
+ this.cellHeight = this.cellWidth;
68
+ this.svgHeight = this.cellHeight * BACCARAT_ROW;
69
+ let dynamicStyles = {};
70
+ if (this.svgWidth < 300) {
71
+ dynamicStyles = {
72
+ name: 'Min',
73
+ strokeWidth: 0.8,
74
+ cellPadding: 2
75
+ };
76
+ }
77
+ else if (this.svgWidth >= 300 && this.svgWidth < 500) {
78
+ dynamicStyles = {
79
+ name: 'Mid',
80
+ strokeWidth: 1.5,
81
+ cellPadding: 3.8
82
+ };
83
+ }
84
+ this.markGroupExtraClass = Object.assign(Object.assign({}, this.markGroupExtraClass), dynamicStyles);
85
+ this.markGroupExtraClass.fontSize = this.cellWidth - this.markGroupExtraClass.cellPadding * 0.8;
86
+ this.markGroupExtraClass.pairDotR = this.markGroupExtraClass.strokeWidth / 2;
87
+ this.markGroupExtraClass.pairBackDotR = this.markGroupExtraClass.pairDotR + 0.4;
88
+ let svgObj = this.createTag('svg', { 'xmlns': this.svgNS, 'version': this.svgVersion, 'width': '100%' });
89
+ let svgGroup = this.createTag('g', {
90
+ 'style': 'cursor: pointer',
91
+ 'stroke': '#a1acb696',
92
+ 'stroke-width': '0.6px',
93
+ 'fill': 'transparent'
94
+ });
95
+ let markGroup = this.createTag('g', {
96
+ 'style': 'cursor: pointer', 'class': `BoardRoundsGroup ${this.markGroupExtraClass.name}`,
97
+ 'stroke-width': this.markGroupExtraClass.strokeWidth, 'fill': 'transparent'
98
+ });
99
+ for (let i = 0; i < BACCARAT_ROW + 1; i++) {
100
+ svgGroup.appendChild(this.createHLine(i));
101
+ }
102
+ for (let i = 0; i < BACCARTAT_COLUMN + 1; i++) {
103
+ svgGroup.appendChild(this.createVLine(i));
104
+ }
105
+ parentEle.setAttribute('style', `height: ${this.svgHeight}px`);
106
+ svgObj.appendChild(svgGroup);
107
+ svgObj.appendChild(markGroup);
108
+ parentEle.replaceChildren(svgObj);
109
+ this.svgGroupObj = markGroup;
110
+ }
111
+ getRadius() {
112
+ return (this.cellHeight - this.markGroupExtraClass.cellPadding) / 2;
113
+ }
114
+ addAnimate(objToAddAnimate) {
115
+ let animate = this.createTag('animate', {
116
+ 'attributeName': 'opacity', attributeType: 'XML', 'from': '0', to: 0.8, repeatCount: '5',
117
+ begin: '0s', dur: '1.5s', 'calcMode': 'spline', keySplines: "0.1 0.8 0.9 0.1", fill: 'freeze'
118
+ });
119
+ objToAddAnimate.appendChild(animate);
120
+ }
121
+ markNewRound(x, y, options, markNew = false) {
122
+ let centre = this.getCenterPoint(x, y);
123
+ let svgG = this.createTag('g', {
124
+ 'class': `Round ${markNew ? 'NewRound' : ''} ${options.winner === BaccaratWinner.TIE ? 'Tie' : ''}`,
125
+ 'part': `Round ${markNew ? 'NewRound' : ''}`, 'opacity': markNew ? 0.1 : 1
126
+ });
127
+ //RoundWinner: TIE
128
+ if (options.winner === BaccaratWinner.TIE) {
129
+ svgG.appendChild(this.createTieSvg(x, y));
130
+ this.svgGroupObj.appendChild(svgG);
131
+ if (options.ties && options.ties > 1) {
132
+ let text = this.createTag('text', {
133
+ 'x': centre.cx - 1.5,
134
+ 'y': centre.cy + this.markGroupExtraClass.fontSize / 2 - 1.1,
135
+ 'fill': '#12153d',
136
+ 'class': 'TieNumber',
137
+ 'font-size': `${this.markGroupExtraClass.fontSize}px`,
138
+ 'font-weight': this.markGroupExtraClass.fontSize > 7 ? 'bold' : ''
139
+ });
140
+ text.innerHTML = options.ties;
141
+ svgG.appendChild(text);
142
+ }
143
+ this.svgGroupObj.appendChild(svgG);
144
+ return;
145
+ }
146
+ svgG.appendChild(this.createTag('circle', {
147
+ r: this.getRadius(),
148
+ 'class': 'Round',
149
+ 'stroke': options.color,
150
+ 'cx': x * this.cellHeight + (this.cellHeight) / 2,
151
+ 'cy': y * this.cellHeight + (this.cellHeight) / 2
152
+ }));
153
+ if (options.ties) {
154
+ svgG.appendChild(this.createTieSvg(x, y));
155
+ if (options.ties > 1) {
156
+ let text = this.createTag('text', {
157
+ 'x': centre.cx - 1.5,
158
+ 'y': centre.cy + this.markGroupExtraClass.fontSize / 2 - 1.1,
159
+ 'fill': '#12153d',
160
+ 'class': 'TieNumber',
161
+ 'font-size': `${this.markGroupExtraClass.fontSize}px`,
162
+ 'font-weight': this.markGroupExtraClass.fontSize > 7 ? 'bold' : ''
163
+ });
164
+ text.innerHTML = options.ties;
165
+ svgG.appendChild(text);
166
+ }
167
+ this.svgGroupObj.appendChild(svgG);
168
+ }
169
+ if (options.bankerPair) {
170
+ let dots = this.createPairDot(x, y, options.pairColor.banker, PLAYER_ANGLE + 180);
171
+ dots.forEach(dot => svgG.appendChild(dot));
172
+ }
173
+ if (options.playerPair) {
174
+ let dots = this.createPairDot(x, y, options.pairColor.player, PLAYER_ANGLE);
175
+ dots.forEach(dot => svgG.appendChild(dot));
176
+ }
177
+ if (options.includeAnimate) {
178
+ this.addAnimate(svgG);
179
+ }
180
+ this.svgGroupObj.appendChild(svgG);
181
+ }
182
+ markRound(x, y, color, includeAnimate = false) {
183
+ let circleSvg = this.createTag('circle', {
184
+ r: this.getRadius(),
185
+ 'class': 'Round',
186
+ 'stroke': color,
187
+ 'cx': x * this.cellHeight + (this.cellHeight) / 2,
188
+ 'cy': y * this.cellHeight + (this.cellHeight) / 2
189
+ });
190
+ if (includeAnimate) {
191
+ this.addAnimate(circleSvg);
192
+ }
193
+ this.svgGroupObj.appendChild(circleSvg);
194
+ }
195
+ getCenterPoint(x, y) {
196
+ return {
197
+ 'cx': x * this.cellHeight + (this.cellHeight) / 2,
198
+ 'cy': y * this.cellHeight + (this.cellHeight) / 2
199
+ };
200
+ }
201
+ createTieSvg(x, y) {
202
+ let centerXY = this.getCenterPoint(x, y), angle = TIE_ANGLE, r = (this.cellHeight) / 2;
203
+ const x1 = centerXY.cx + r * Math.cos(angle * Math.PI / 180);
204
+ const y1 = centerXY.cy + r * Math.sin(angle * Math.PI / 180);
205
+ const x2 = centerXY.cx + r * Math.cos((angle + 180) * Math.PI / 180);
206
+ const y2 = centerXY.cy + r * Math.sin((angle + 180) * Math.PI / 180);
207
+ return this.createTag('line', {
208
+ x1, y1, x2, y2, 'class': 'Tie',
209
+ 'stroke': 'green', 'opacity': '0.8', 'stroke-width': '1.8px'
210
+ });
211
+ }
212
+ createPairDot(x, y, pairColor, angle) {
213
+ let centerXY = this.getCenterPoint(x, y), r = this.getRadius() + this.markGroupExtraClass.pairDotR;
214
+ const cx = centerXY.cx + r * Math.cos(angle * Math.PI / 180);
215
+ const cy = centerXY.cy + r * Math.sin(angle * Math.PI / 180);
216
+ return [
217
+ this.createTag('circle', {
218
+ cx, cy, r: this.markGroupExtraClass.pairBackDotR, 'class': 'DotBack',
219
+ 'stroke': '#fff'
220
+ }),
221
+ this.createTag('circle', {
222
+ cx, cy, r: this.markGroupExtraClass.pairDotR, 'class': 'Dot',
223
+ 'stroke': pairColor, 'stroke-width': '0.8px', 'fill': pairColor
224
+ })
225
+ ];
226
+ }
227
+ markTie(x, y, includeAnimate = false) {
228
+ let line = this.createTieSvg(x, y);
229
+ if (includeAnimate) {
230
+ this.addAnimate(line);
231
+ }
232
+ this.svgGroupObj.appendChild(line);
233
+ }
234
+ markPair(x, y, pairColor, angle) {
235
+ let centerXY = this.getCenterPoint(x, y), r = this.getRadius() + this.markGroupExtraClass.pairDotR;
236
+ const cx = centerXY.cx + r * Math.cos(angle * Math.PI / 180);
237
+ const cy = centerXY.cy + r * Math.sin(angle * Math.PI / 180);
238
+ this.svgGroupObj.appendChild(this.createTag('circle', {
239
+ cx, cy, r: this.markGroupExtraClass.pairBackDotR, 'class': 'DotBack',
240
+ 'stroke': '#fff'
241
+ }));
242
+ this.svgGroupObj.appendChild(this.createTag('circle', {
243
+ cx, cy, r: this.markGroupExtraClass.pairDotR, 'class': 'Dot',
244
+ 'stroke': pairColor, 'stroke-width': '0.8px', 'fill': pairColor
245
+ }));
246
+ }
247
+ markBankerPair(x, y, pairColor) {
248
+ this.markPair(x, y, pairColor, 225);
249
+ }
250
+ markPlayerPair(x, y, pairColor) {
251
+ this.markPair(x, y, pairColor, 45);
252
+ }
253
+ }
254
+
255
+ const casinoExtrainfoBaccaratCss = ":host {\n display: block;\n}\n\n.BaccaratBoard {\n container-type: inline-size;\n min-height: 30px;\n width: 100%;\n}\n.BaccaratBoard svg {\n background: #fff;\n opacity: 0.99;\n height: 100%;\n}\n\n.LiveProps.BaccaratProps div.LiveIcons {\n margin-bottom: 0px;\n padding: 0px;\n width: 100%;\n}\n\nsvg circle {\n transition: stroke-dashoffset 0s ease 2s;\n}\n\ng.BoardRoundsGroup {\n stroke-width: 1.8px;\n}\n\n@container (max-width: 300px) {\n g.BoardRoundsGroup {\n stroke-width: 0.9px;\n }\n}\nsvg .Round.NewRound {\n opacity: 1;\n -webkit-animation-name: fadeInFromNone;\n animation-name: fadeInFromNone;\n -webkit-animation-duration: 1.5s;\n animation-duration: 1.5s;\n -webkit-animation-fill-mode: both;\n animation-fill-mode: both;\n}\n\n@-webkit-keyframes fadeInFromNone {\n 0% {\n display: none;\n opacity: 0;\n }\n 1% {\n display: block;\n opacity: 0;\n }\n 100% {\n display: block;\n opacity: 1;\n }\n}\n@-moz-keyframes fadeInFromNone {\n 0% {\n display: none;\n opacity: 0;\n }\n 1% {\n display: block;\n opacity: 0;\n }\n 100% {\n display: block;\n opacity: 1;\n }\n}\n@-o-keyframes fadeInFromNone {\n 0% {\n display: none;\n opacity: 0;\n }\n 1% {\n display: block;\n opacity: 0;\n }\n 30% {\n display: block;\n opacity: 1;\n }\n 60% {\n display: block;\n opacity: 0;\n }\n 100% {\n display: block;\n opacity: 1;\n }\n}\n@keyframes fadeInFromNone {\n 0% {\n display: none;\n opacity: 0;\n }\n 1% {\n display: block;\n opacity: 0;\n }\n 30% {\n display: block;\n opacity: 1;\n }\n 60% {\n display: block;\n opacity: 0;\n }\n 100% {\n display: block;\n opacity: 1;\n }\n}";
256
+
257
+ const CasinoExtrainfoBaccarat = class {
258
+ constructor(hostRef) {
259
+ index.registerInstance(this, hostRef);
260
+ this.baccaratSvg = new BaccaratSvg();
261
+ this.isBoardInited = false;
262
+ this.filledCells = [];
263
+ }
264
+ gameDetailsHandler(newVal, oldVal) {
265
+ if (newVal.isOpen && (!oldVal || !oldVal.isOpen)) {
266
+ if (this.showRoundBoard) {
267
+ setTimeout(() => {
268
+ this.initBaccaratRoundsBoard();
269
+ }, 100);
270
+ }
271
+ }
272
+ }
273
+ async onGameLoaded(gameInfo) {
274
+ var _a;
275
+ this.gameInfo = gameInfo;
276
+ this.gameDetails = this.gameInfo.details;
277
+ (_a = this.infoWrapperRef) === null || _a === void 0 ? void 0 : _a.onGameLoaded(this.gameInfo);
278
+ }
279
+ /**
280
+ * Called when received update from updater
281
+ * @param details
282
+ */
283
+ async onGameDetailUpdated(details) {
284
+ var _a;
285
+ this.gameInfo.details = this.gameDetails = details;
286
+ this.gameDetails = Object.assign({}, this.gameDetails);
287
+ (_a = this.infoWrapperRef) === null || _a === void 0 ? void 0 : _a.onGameDetailUpdated(details);
288
+ // init board when the svg board init finished
289
+ setTimeout(() => {
290
+ this.isBoardInited = true;
291
+ }, 200);
292
+ }
293
+ async onBaccaratResultChanged(result) {
294
+ if (!result || !this.baccaratRef || this.isResetingRoundBoard) {
295
+ return;
296
+ }
297
+ // For Tie round to mark, latestRound
298
+ let latestRound, resetRoundBoardCells = () => {
299
+ console.log('Reset Baccarat Board.');
300
+ this.filledCells = [];
301
+ this.baccaratSvg.resetSvg();
302
+ latestRound = null;
303
+ };
304
+ // Reset round board to avoid the reset(result==[]) update come earlier than last round,
305
+ // Ignore if the result.length == 0 for temporary
306
+ if (this.isBoardInited &&
307
+ (result.length == 0 ||
308
+ (result.length == 1 &&
309
+ (result[0].winner == BaccaratWinner.TIE ||
310
+ (result[0].location.column == 0 && result[0].location.row == 0))))) {
311
+ this.isResetingRoundBoard = true;
312
+ resetRoundBoardCells();
313
+ setTimeout(() => {
314
+ this.isResetingRoundBoard = false;
315
+ }, 1000);
316
+ }
317
+ result.forEach((item, i) => {
318
+ //Mark the Tie when Tie round is the first cell(0,0)
319
+ if (item.winner == BaccaratWinner.TIE) {
320
+ if (i == result.length - 1 &&
321
+ (!latestRound ||
322
+ (latestRound &&
323
+ latestRound.location.column == 0 &&
324
+ latestRound.location.row == 0))) {
325
+ let firstTieCellKey = '0-0-T';
326
+ if (this.filledCells.indexOf(firstTieCellKey) == -1) {
327
+ this.baccaratSvg.markNewRound(0, 0, Object.assign(Object.assign({}, item), { pairColor: gameThumbnail.WINNER_COLOR }), this.isBoardInited);
328
+ this.filledCells.push(firstTieCellKey);
329
+ }
330
+ }
331
+ return;
332
+ }
333
+ //cellKey to mark if a round has been marked
334
+ const cellKey = `${item.location.column}-${item.location.row}`;
335
+ const tCellKey = `${cellKey}-T`;
336
+ if (item.ties > 0 && this.filledCells.indexOf(tCellKey) == -1) {
337
+ this.baccaratSvg.markNewRound(item.location.column, item.location.row, Object.assign(Object.assign({}, item), { winner: BaccaratWinner.TIE }), this.isBoardInited);
338
+ this.filledCells.push(tCellKey);
339
+ }
340
+ latestRound = item;
341
+ //If current cell has been filled,duplicated data
342
+ if (this.filledCells.indexOf(cellKey) == -1) {
343
+ this.baccaratSvg.markNewRound(item.location.column, item.location.row, Object.assign(Object.assign({}, item), { pairColor: gameThumbnail.WINNER_COLOR }), this.isBoardInited);
344
+ this.filledCells.push(cellKey);
345
+ }
346
+ });
347
+ return;
348
+ }
349
+ initBaccaratRoundsBoard() {
350
+ var _a;
351
+ this.baccaratSvg.createBaccaratBoard(this.baccaratRef);
352
+ if (((_a = this.gameDetails.results) === null || _a === void 0 ? void 0 : _a.length) > 0) {
353
+ this.onBaccaratResultChanged(this.gameDetails.results);
354
+ }
355
+ }
356
+ render() {
357
+ var _a;
358
+ return (index.h(index.Host, null, index.h("casino-game-thumbnail-extrainfo", { ref: (el) => (this.infoWrapperRef = el), language: this.language }, ((_a = this.gameDetails) === null || _a === void 0 ? void 0 : _a.isOpen) && this.showRoundBoard && (index.h("div", { slot: "category-details", class: "LiveIcons", part: "LiveIcons" }, index.h("div", { id: "boardContainer", part: "BaccaratBoard", class: "BaccaratBoard", ref: (el) => (this.baccaratRef = el) }))))));
359
+ }
360
+ static get watchers() { return {
361
+ "gameDetails": ["gameDetailsHandler"]
362
+ }; }
363
+ };
364
+ CasinoExtrainfoBaccarat.style = casinoExtrainfoBaccaratCss;
365
+
366
+ exports.casino_extrainfo_baccarat = CasinoExtrainfoBaccarat;
@@ -0,0 +1,58 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-65a1d768.js');
6
+ const gameThumbnail = require('./game-thumbnail-31d518f0.js');
7
+ const locale_utils = require('./locale.utils-aa160787.js');
8
+
9
+ const SeatSvg = `<svg xmlns="http://www.w3.org/2000/svg" width="13" height="14" viewBox="0 0 13 14">
10
+ <path
11
+ d="M11.58 6c-1.17 0-2.13.95-2.13 2.12v.4a8.82 8.82 0 00-2.92-.4c-1.54 0-2.45.22-2.92.4v-.4A2.136 2.136 0 001.48 6a1.33 1.33 0 00-.5 2.55c.14.07.24.21.24.37l.26 1.06c0 .96.73 1.75 1.65 1.85a.65.65 0 00.28 1.23.65.65 0 00.3-1.22h5.64a.65.65 0 00.3 1.22.65.65 0 00.28-1.23c.93-.1 1.65-.9 1.65-1.85l.27-1.06c0-.16.1-.3.24-.37A1.33 1.33 0 0011.58 6z"/>
12
+ <path
13
+ d="M4.34 7.5c.55-.1 1.27-.17 2.2-.17.91 0 1.63.07 2.18.17.21-.96.9-1.74 1.8-2.1V4a3.99 3.99 0 00-7.97 0v1.4c.9.36 1.58 1.14 1.79 2.1z"/>
14
+ </svg>
15
+ `;
16
+
17
+ const casinoExtrainfoBlackjackCss = ":host{display:block}.OpenSeat,.ClosedSeat{display:inline-block;width:16px;height:16px;margin-right:4px}.OpenSeat svg,.ClosedSeat svg{width:100%;height:100%}.OpenSeat{animation:flip-closed-seat 2s both;-webkit-animation:flip-closed-seat 2s both;-webkit-backface-visibility:visible;backface-visibility:visible}.ClosedSeat{animation:flip-open 2s both;-webkit-animation:flip-open 2s both;-webkit-backface-visibility:visible;backface-visibility:visible}.OpenSeat svg{fill:transparent;stroke:var(--emfe-w-color-white, #FFFFFF)}.ClosedSeat svg{fill:var(--emfe-w-color-white, #FFFFFF)}.FullTable{display:flex;position:relative;z-index:10;height:20px;padding:1px 4px 1px 0;align-items:center;border-radius:3px;font-size:12px;white-space:normal;text-transform:uppercase;-webkit-animation-name:silde-in-from-left;animation-name:silde-in-from-left;-webkit-animation-duration:1s;animation-duration:1s;-webkit-animation-fill-mode:both;animation-fill-mode:both}.FullTable svg{width:100%;height:100%;fill:var(--emfe-w-color-white, #FFFFFF)}.FullTable.ClosedSeat{margin-right:-3px}";
18
+
19
+ const CasinoExtrainfoBlackjack = class {
20
+ constructor(hostRef) {
21
+ index.registerInstance(this, hostRef);
22
+ }
23
+ /**
24
+ * Generate Jackpot live seats info
25
+ * @param totalSeats
26
+ * @param occupiedSeats
27
+ */
28
+ generateBlackJackSeats(totalSeats = gameThumbnail.DEFAULT_BLACKJACK_TOTAL_SEATS, occupiedSeats = []) {
29
+ let seatsStatus = [];
30
+ for (let i = 0; i < totalSeats; i++) {
31
+ seatsStatus.push({
32
+ seatNo: i,
33
+ isClosed: occupiedSeats.indexOf((i + 1).toString()) > -1,
34
+ });
35
+ }
36
+ this.isTableFull = totalSeats == occupiedSeats.length;
37
+ return seatsStatus;
38
+ }
39
+ async onGameLoaded(gameInfo) {
40
+ var _a, _b, _c;
41
+ this.gameInfo = gameInfo;
42
+ this.gameDetails = this.gameInfo.details;
43
+ this.seatsStatus = this.generateBlackJackSeats((_a = this.gameDetails) === null || _a === void 0 ? void 0 : _a.totalSeats, (_b = this.gameDetails) === null || _b === void 0 ? void 0 : _b.currentOccupiedSeats);
44
+ (_c = this.infoWrapperRef) === null || _c === void 0 ? void 0 : _c.onGameLoaded(gameInfo);
45
+ }
46
+ async onGameDetailUpdated(details) {
47
+ var _a, _b;
48
+ this.gameInfo.details = this.gameDetails = details;
49
+ this.seatsStatus = this.generateBlackJackSeats((_a = this.gameDetails) === null || _a === void 0 ? void 0 : _a.totalSeats, (_b = this.gameDetails) === null || _b === void 0 ? void 0 : _b.currentOccupiedSeats);
50
+ this.gameDetails = Object.assign({}, this.gameDetails);
51
+ }
52
+ render() {
53
+ return (index.h(index.Host, null, index.h("casino-game-thumbnail-extrainfo", { ref: (el) => (this.infoWrapperRef = el), language: this.language }, this.gameDetails && this.gameDetails.isOpen && (index.h("div", { slot: "category-details", class: "LiveIcons", part: "LiveIcons" }, this.isTableFull ? (index.h("span", { class: "FullTable", part: "FullTable" }, locale_utils.translate('full', this.language))) : (this.seatsStatus.map((seatStatus) => (index.h("span", { class: `${seatStatus.isClosed ? 'ClosedSeat' : 'OpenSeat'} svg-container`, id: `s${seatStatus.seatNo}`, part: `${seatStatus.isClosed ? 'ClosedSeat' : 'OpenSeat'} svg-container`, innerHTML: SeatSvg })))))))));
54
+ }
55
+ };
56
+ CasinoExtrainfoBlackjack.style = casinoExtrainfoBlackjackCss;
57
+
58
+ exports.casino_extrainfo_blackjack = CasinoExtrainfoBlackjack;
@@ -0,0 +1,45 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ const index = require('./index-65a1d768.js');
6
+ const gameThumbnail = require('./game-thumbnail-31d518f0.js');
7
+
8
+ const casinoExtrainfoRouletteCss = ":host{display:block;font-family:system-ui, -apple-system, \"Segoe UI\", Roboto, Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\"}.Blue{color:#4d90a7}.Red{background-color:red}.Black{background-color:var(--emfe-w-color-black, #000000)}.Green{background-color:#56A80A}.White{background-color:var(--emfe-w-color-white, #FFFFFF)}.Yellow{background-color:#eeca3d}.Gold{background-color:#866d0c}.Orange{background-color:#574708}.Purple{background-color:#330033}";
9
+
10
+ const CasinoExtrainfoRoulette = class {
11
+ constructor(hostRef) {
12
+ index.registerInstance(this, hostRef);
13
+ /**
14
+ * Language
15
+ */
16
+ this.language = 'en';
17
+ }
18
+ async onGameLoaded(gameInfo) {
19
+ var _a;
20
+ this.gameInfo = Object.assign({}, gameInfo);
21
+ this.gameDetails = this.gameInfo.details ? Object.assign({}, this.gameInfo.details) : null;
22
+ (_a = this.infoWrapperRef) === null || _a === void 0 ? void 0 : _a.onGameLoaded(gameInfo);
23
+ }
24
+ async onGameDetailUpdated(details) {
25
+ this.gameInfo.details = this.gameDetails = details;
26
+ this.gameInfo = Object.assign({}, this.gameInfo);
27
+ this.gameDetails = Object.assign({}, this.gameDetails);
28
+ }
29
+ getRouletteNumberColor(value) {
30
+ return gameThumbnail.ROULETTE_COLOR_MAP[value];
31
+ }
32
+ render() {
33
+ var _a, _b, _c, _d;
34
+ const isDouble = this.gameDetails ?
35
+ this.gameDetails.category.toLowerCase() ===
36
+ gameThumbnail.WIDGETTYPE_GAMECATEGORY.doubleballroulette : false;
37
+ let rouletteNumbers = (isDouble
38
+ ? (_a = this.gameDetails) === null || _a === void 0 ? void 0 : _a.currentDoubleBallRouletteNumbers
39
+ : (_b = this.gameDetails) === null || _b === void 0 ? void 0 : _b.currentRouletteNumbers) || [];
40
+ return (index.h(index.Host, null, index.h("casino-game-thumbnail-extrainfo", { ref: (el) => (this.infoWrapperRef = el), language: this.language }, index.h("div", { slot: "category-details", class: `LiveIcons ${((_c = this.gameDetails) === null || _c === void 0 ? void 0 : _c.isOpen) ? 'GameBackdrop' : ''}`, part: `LiveIcons ${((_d = this.gameDetails) === null || _d === void 0 ? void 0 : _d.isOpen) ? 'GameBackdrop' : ''}` }, rouletteNumbers.slice(0, 5).map((rNum, idx) => isDouble === true ? (index.h("div", { class: "Double", part: "Double" }, index.h("span", { id: `s${idx}0`, class: `LatestResult ${idx == 0 ? 'First' : ''} ${this.showLiveClass ? 'FirstElementAnimated' : ''} ${this.getRouletteNumberColor(rNum[0])}` }, ' ', rNum[0]), index.h("span", { id: `s${idx}1`, class: `LatestResult ${idx == 0 ? 'First' : ''} ${this.showLiveClass ? 'FirstElementAnimated' : ''} ${this.getRouletteNumberColor(rNum[1])}` }, ' ', rNum[1]))) : (index.h("span", { id: `s${idx}`, class: `LatestResult ${idx == 0 ? 'First' : ''} ${this.showLiveClass ? 'FirstElementAnimated' : ''} ${this.getRouletteNumberColor(rNum)}` }, ' ', rNum)))))));
41
+ }
42
+ };
43
+ CasinoExtrainfoRoulette.style = casinoExtrainfoRouletteCss;
44
+
45
+ exports.casino_extrainfo_roulette = CasinoExtrainfoRoulette;
@@ -0,0 +1,19 @@
1
+ 'use strict';
2
+
3
+ const index = require('./index-65a1d768.js');
4
+
5
+ /*
6
+ Stencil Client Patch Browser v2.15.2 | MIT Licensed | https://stenciljs.com
7
+ */
8
+ const patchBrowser = () => {
9
+ const importMeta = (typeof document === 'undefined' ? new (require('u' + 'rl').URL)('file:' + __filename).href : (document.currentScript && document.currentScript.src || new URL('casino-game-thumb-view.cjs.js', document.baseURI).href));
10
+ const opts = {};
11
+ if (importMeta !== '') {
12
+ opts.resourcesUrl = new URL('.', importMeta).href;
13
+ }
14
+ return index.promiseResolve(opts);
15
+ };
16
+
17
+ patchBrowser().then(options => {
18
+ return index.bootstrapLazy([["casino-game-thumbnail-betlimit_2.cjs",[[4,"casino-game-thumbnail-extrainfo",{"language":[1],"betLimit":[32],"gameInfo":[32],"gameDetails":[32],"onGameLoaded":[64],"onGameDetailUpdated":[64]}],[0,"casino-game-thumbnail-betlimit",{"betLimit":[16],"numberOfPlayers":[2,"number-of-players"]}]]],["casino-extrainfo-baccarat.cjs",[[0,"casino-extrainfo-baccarat",{"language":[1],"showRoundBoard":[4,"show-round-board"],"gameInfo":[32],"gameDetails":[32],"onGameLoaded":[64],"onGameDetailUpdated":[64],"onBaccaratResultChanged":[64]}]]],["casino-extrainfo-blackjack.cjs",[[0,"casino-extrainfo-blackjack",{"language":[1],"gameInfo":[32],"gameDetails":[32],"seatsStatus":[32],"isTableFull":[32],"onGameLoaded":[64],"onGameDetailUpdated":[64]}]]],["casino-extrainfo-roulette.cjs",[[0,"casino-extrainfo-roulette",{"language":[1],"gameInfo":[32],"gameDetails":[32],"showLiveClass":[32],"onGameLoaded":[64],"onGameDetailUpdated":[64]}]]],["casino-normal-game-thumbnail.cjs",[[0,"casino-normal-game-thumbnail",{"language":[1],"onGameLoaded":[64]}]]],["casino-game-thumb-view_2.cjs",[[1,"casino-game-thumb-view",{"language":[1],"endpoint":[1],"userId":[8,"user-id"],"showGameName":[4,"show-game-name"],"session":[1],"showFavoredCategory":[4,"show-favored-category"],"clientStyling":[1,"client-styling"],"clientStylingUrl":[1,"client-styling-url"],"integratedGameframeMobile":[4,"integrated-gameframe-mobile"],"gamepageModalurl":[1,"gamepage-modalurl"],"integratedGameframeDesktop":[4,"integrated-gameframe-desktop"],"loadDetails":[4,"load-details"],"showRoundBoard":[4,"show-round-board"],"visibilityConnect":[1,"visibility-connect"],"connectLive":[1,"connect-live"],"gameCategory":[1,"game-category"],"livelobbyEndpoint":[1,"livelobby-endpoint"],"gameId":[8,"game-id"],"gameName":[1,"game-name"],"subVendor":[1,"sub-vendor"],"gameVendor":[1,"game-vendor"],"hasFunMode":[4,"has-fun-mode"],"hasAnonymousFunMode":[4,"has-anonymous-fun-mode"],"platform":[1],"thumbnail":[1],"isFavorite":[4,"is-favorite"],"isNew":[4,"is-new"],"cellSize":[1,"cell-size"],"gameTag":[1,"game-tag"],"type":[1],"gameInfo":[32],"isTableFull":[32],"hover":[32]},[[1,"mouseenter","handleMouseOver"],[1,"mouseleave","handleMouseOver"],[4,"gameFavorited","gameFavoritedHandler"],[0,"gameDetailChange","gameDetailChangeHandler"]]],[4,"casino-game-thumbnail-overlay",{"gamepageModalurl":[1,"gamepage-modalurl"],"integratedGameframeMobile":[4,"integrated-gameframe-mobile"],"integratedGameframeDesktop":[4,"integrated-gameframe-desktop"],"language":[1],"gameName":[1,"game-name"],"gameVendor":[1,"game-vendor"],"gameId":[8,"game-id"],"hasFunMode":[4,"has-fun-mode"]}]]]], options);
19
+ });