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

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,362 @@
1
+ import { r as registerInstance, h, H as Host } from './index-1e44dd9f.js';
2
+ import { b as WINNER_COLOR } from './game-thumbnail-0a56ee03.js';
3
+
4
+ var CasinoGameCategory;
5
+ (function (CasinoGameCategory) {
6
+ CasinoGameCategory["ROULETTE"] = "ROULETTE";
7
+ CasinoGameCategory["POKER"] = "POKER";
8
+ CasinoGameCategory["BLACKJACK"] = "BLACKJACK";
9
+ })(CasinoGameCategory || (CasinoGameCategory = {}));
10
+ var BaccaratWinner;
11
+ (function (BaccaratWinner) {
12
+ BaccaratWinner["PLAYER"] = "Player";
13
+ BaccaratWinner["WINNER"] = "Banker";
14
+ BaccaratWinner["TIE"] = "Tie";
15
+ })(BaccaratWinner || (BaccaratWinner = {}));
16
+
17
+ const BACCARAT_ROW = 6;
18
+ const BACCARTAT_COLUMN = 40;
19
+ const TIE_ANGLE = 135;
20
+ const PLAYER_ANGLE = 45;
21
+ class BaccaratSvg {
22
+ constructor() {
23
+ this.svgNS = 'http://www.w3.org/2000/svg';
24
+ this.svgVersion = '1.1';
25
+ this.markGroupExtraClass = {
26
+ name: '',
27
+ strokeWidth: 1.8,
28
+ cellPadding: 6
29
+ };
30
+ }
31
+ resetSvg() {
32
+ this.svgGroupObj.innerHTML = '';
33
+ }
34
+ createTag(tag, attrs) {
35
+ let oTag = document.createElementNS(this.svgNS, tag);
36
+ Object.keys(attrs).forEach((attr) => {
37
+ oTag.setAttribute(attr, attrs[attr]);
38
+ });
39
+ return oTag;
40
+ }
41
+ ;
42
+ //Y1 = Y2, X1=0;
43
+ createHLine(lineIdx) {
44
+ return this.createTag('line', {
45
+ 'x1': 0,
46
+ 'x2': this.svgWidth,
47
+ 'y1': lineIdx * this.cellHeight,
48
+ 'y2': lineIdx * this.cellHeight
49
+ });
50
+ }
51
+ createVLine(lineIdx) {
52
+ return this.createTag('line', {
53
+ 'x1': lineIdx * this.cellWidth,
54
+ 'x2': lineIdx * this.cellWidth,
55
+ 'y1': 0,
56
+ 'y2': this.svgHeight
57
+ });
58
+ }
59
+ createBaccaratBoard(parentEle) {
60
+ this.parentEle = parentEle;
61
+ this.svgWidth = parentEle.clientWidth;
62
+ this.cellWidth = this.svgWidth / BACCARTAT_COLUMN;
63
+ this.cellHeight = this.cellWidth;
64
+ this.svgHeight = this.cellHeight * BACCARAT_ROW;
65
+ let dynamicStyles = {};
66
+ if (this.svgWidth < 300) {
67
+ dynamicStyles = {
68
+ name: 'Min',
69
+ strokeWidth: 0.8,
70
+ cellPadding: 2
71
+ };
72
+ }
73
+ else if (this.svgWidth >= 300 && this.svgWidth < 500) {
74
+ dynamicStyles = {
75
+ name: 'Mid',
76
+ strokeWidth: 1.5,
77
+ cellPadding: 3.8
78
+ };
79
+ }
80
+ this.markGroupExtraClass = Object.assign(Object.assign({}, this.markGroupExtraClass), dynamicStyles);
81
+ this.markGroupExtraClass.fontSize = this.cellWidth - this.markGroupExtraClass.cellPadding * 0.8;
82
+ this.markGroupExtraClass.pairDotR = this.markGroupExtraClass.strokeWidth / 2;
83
+ this.markGroupExtraClass.pairBackDotR = this.markGroupExtraClass.pairDotR + 0.4;
84
+ let svgObj = this.createTag('svg', { 'xmlns': this.svgNS, 'version': this.svgVersion, 'width': '100%' });
85
+ let svgGroup = this.createTag('g', {
86
+ 'style': 'cursor: pointer',
87
+ 'stroke': '#a1acb696',
88
+ 'stroke-width': '0.6px',
89
+ 'fill': 'transparent'
90
+ });
91
+ let markGroup = this.createTag('g', {
92
+ 'style': 'cursor: pointer', 'class': `BoardRoundsGroup ${this.markGroupExtraClass.name}`,
93
+ 'stroke-width': this.markGroupExtraClass.strokeWidth, 'fill': 'transparent'
94
+ });
95
+ for (let i = 0; i < BACCARAT_ROW + 1; i++) {
96
+ svgGroup.appendChild(this.createHLine(i));
97
+ }
98
+ for (let i = 0; i < BACCARTAT_COLUMN + 1; i++) {
99
+ svgGroup.appendChild(this.createVLine(i));
100
+ }
101
+ parentEle.setAttribute('style', `height: ${this.svgHeight}px`);
102
+ svgObj.appendChild(svgGroup);
103
+ svgObj.appendChild(markGroup);
104
+ parentEle.replaceChildren(svgObj);
105
+ this.svgGroupObj = markGroup;
106
+ }
107
+ getRadius() {
108
+ return (this.cellHeight - this.markGroupExtraClass.cellPadding) / 2;
109
+ }
110
+ addAnimate(objToAddAnimate) {
111
+ let animate = this.createTag('animate', {
112
+ 'attributeName': 'opacity', attributeType: 'XML', 'from': '0', to: 0.8, repeatCount: '5',
113
+ begin: '0s', dur: '1.5s', 'calcMode': 'spline', keySplines: "0.1 0.8 0.9 0.1", fill: 'freeze'
114
+ });
115
+ objToAddAnimate.appendChild(animate);
116
+ }
117
+ markNewRound(x, y, options, markNew = false) {
118
+ let centre = this.getCenterPoint(x, y);
119
+ let svgG = this.createTag('g', {
120
+ 'class': `Round ${markNew ? 'NewRound' : ''} ${options.winner === BaccaratWinner.TIE ? 'Tie' : ''}`,
121
+ 'part': `Round ${markNew ? 'NewRound' : ''}`, 'opacity': markNew ? 0.1 : 1
122
+ });
123
+ //RoundWinner: TIE
124
+ if (options.winner === BaccaratWinner.TIE) {
125
+ svgG.appendChild(this.createTieSvg(x, y));
126
+ this.svgGroupObj.appendChild(svgG);
127
+ if (options.ties && options.ties > 1) {
128
+ let text = this.createTag('text', {
129
+ 'x': centre.cx - 1.5,
130
+ 'y': centre.cy + this.markGroupExtraClass.fontSize / 2 - 1.1,
131
+ 'fill': '#12153d',
132
+ 'class': 'TieNumber',
133
+ 'font-size': `${this.markGroupExtraClass.fontSize}px`,
134
+ 'font-weight': this.markGroupExtraClass.fontSize > 7 ? 'bold' : ''
135
+ });
136
+ text.innerHTML = options.ties;
137
+ svgG.appendChild(text);
138
+ }
139
+ this.svgGroupObj.appendChild(svgG);
140
+ return;
141
+ }
142
+ svgG.appendChild(this.createTag('circle', {
143
+ r: this.getRadius(),
144
+ 'class': 'Round',
145
+ 'stroke': options.color,
146
+ 'cx': x * this.cellHeight + (this.cellHeight) / 2,
147
+ 'cy': y * this.cellHeight + (this.cellHeight) / 2
148
+ }));
149
+ if (options.ties) {
150
+ svgG.appendChild(this.createTieSvg(x, y));
151
+ if (options.ties > 1) {
152
+ let text = this.createTag('text', {
153
+ 'x': centre.cx - 1.5,
154
+ 'y': centre.cy + this.markGroupExtraClass.fontSize / 2 - 1.1,
155
+ 'fill': '#12153d',
156
+ 'class': 'TieNumber',
157
+ 'font-size': `${this.markGroupExtraClass.fontSize}px`,
158
+ 'font-weight': this.markGroupExtraClass.fontSize > 7 ? 'bold' : ''
159
+ });
160
+ text.innerHTML = options.ties;
161
+ svgG.appendChild(text);
162
+ }
163
+ this.svgGroupObj.appendChild(svgG);
164
+ }
165
+ if (options.bankerPair) {
166
+ let dots = this.createPairDot(x, y, options.pairColor.banker, PLAYER_ANGLE + 180);
167
+ dots.forEach(dot => svgG.appendChild(dot));
168
+ }
169
+ if (options.playerPair) {
170
+ let dots = this.createPairDot(x, y, options.pairColor.player, PLAYER_ANGLE);
171
+ dots.forEach(dot => svgG.appendChild(dot));
172
+ }
173
+ if (options.includeAnimate) {
174
+ this.addAnimate(svgG);
175
+ }
176
+ this.svgGroupObj.appendChild(svgG);
177
+ }
178
+ markRound(x, y, color, includeAnimate = false) {
179
+ let circleSvg = this.createTag('circle', {
180
+ r: this.getRadius(),
181
+ 'class': 'Round',
182
+ 'stroke': color,
183
+ 'cx': x * this.cellHeight + (this.cellHeight) / 2,
184
+ 'cy': y * this.cellHeight + (this.cellHeight) / 2
185
+ });
186
+ if (includeAnimate) {
187
+ this.addAnimate(circleSvg);
188
+ }
189
+ this.svgGroupObj.appendChild(circleSvg);
190
+ }
191
+ getCenterPoint(x, y) {
192
+ return {
193
+ 'cx': x * this.cellHeight + (this.cellHeight) / 2,
194
+ 'cy': y * this.cellHeight + (this.cellHeight) / 2
195
+ };
196
+ }
197
+ createTieSvg(x, y) {
198
+ let centerXY = this.getCenterPoint(x, y), angle = TIE_ANGLE, r = (this.cellHeight) / 2;
199
+ const x1 = centerXY.cx + r * Math.cos(angle * Math.PI / 180);
200
+ const y1 = centerXY.cy + r * Math.sin(angle * Math.PI / 180);
201
+ const x2 = centerXY.cx + r * Math.cos((angle + 180) * Math.PI / 180);
202
+ const y2 = centerXY.cy + r * Math.sin((angle + 180) * Math.PI / 180);
203
+ return this.createTag('line', {
204
+ x1, y1, x2, y2, 'class': 'Tie',
205
+ 'stroke': 'green', 'opacity': '0.8', 'stroke-width': '1.8px'
206
+ });
207
+ }
208
+ createPairDot(x, y, pairColor, angle) {
209
+ let centerXY = this.getCenterPoint(x, y), r = this.getRadius() + this.markGroupExtraClass.pairDotR;
210
+ const cx = centerXY.cx + r * Math.cos(angle * Math.PI / 180);
211
+ const cy = centerXY.cy + r * Math.sin(angle * Math.PI / 180);
212
+ return [
213
+ this.createTag('circle', {
214
+ cx, cy, r: this.markGroupExtraClass.pairBackDotR, 'class': 'DotBack',
215
+ 'stroke': '#fff'
216
+ }),
217
+ this.createTag('circle', {
218
+ cx, cy, r: this.markGroupExtraClass.pairDotR, 'class': 'Dot',
219
+ 'stroke': pairColor, 'stroke-width': '0.8px', 'fill': pairColor
220
+ })
221
+ ];
222
+ }
223
+ markTie(x, y, includeAnimate = false) {
224
+ let line = this.createTieSvg(x, y);
225
+ if (includeAnimate) {
226
+ this.addAnimate(line);
227
+ }
228
+ this.svgGroupObj.appendChild(line);
229
+ }
230
+ markPair(x, y, pairColor, angle) {
231
+ let centerXY = this.getCenterPoint(x, y), r = this.getRadius() + this.markGroupExtraClass.pairDotR;
232
+ const cx = centerXY.cx + r * Math.cos(angle * Math.PI / 180);
233
+ const cy = centerXY.cy + r * Math.sin(angle * Math.PI / 180);
234
+ this.svgGroupObj.appendChild(this.createTag('circle', {
235
+ cx, cy, r: this.markGroupExtraClass.pairBackDotR, 'class': 'DotBack',
236
+ 'stroke': '#fff'
237
+ }));
238
+ this.svgGroupObj.appendChild(this.createTag('circle', {
239
+ cx, cy, r: this.markGroupExtraClass.pairDotR, 'class': 'Dot',
240
+ 'stroke': pairColor, 'stroke-width': '0.8px', 'fill': pairColor
241
+ }));
242
+ }
243
+ markBankerPair(x, y, pairColor) {
244
+ this.markPair(x, y, pairColor, 225);
245
+ }
246
+ markPlayerPair(x, y, pairColor) {
247
+ this.markPair(x, y, pairColor, 45);
248
+ }
249
+ }
250
+
251
+ 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}";
252
+
253
+ const CasinoExtrainfoBaccarat = class {
254
+ constructor(hostRef) {
255
+ registerInstance(this, hostRef);
256
+ this.baccaratSvg = new BaccaratSvg();
257
+ this.isBoardInited = false;
258
+ this.filledCells = [];
259
+ }
260
+ gameDetailsHandler(newVal, oldVal) {
261
+ if (newVal.isOpen && (!oldVal || !oldVal.isOpen)) {
262
+ if (this.showRoundBoard) {
263
+ setTimeout(() => {
264
+ this.initBaccaratRoundsBoard();
265
+ }, 100);
266
+ }
267
+ }
268
+ }
269
+ async onGameLoaded(gameInfo) {
270
+ var _a;
271
+ this.gameInfo = gameInfo;
272
+ this.gameDetails = this.gameInfo.details;
273
+ (_a = this.infoWrapperRef) === null || _a === void 0 ? void 0 : _a.onGameLoaded(this.gameInfo);
274
+ }
275
+ /**
276
+ * Called when received update from updater
277
+ * @param details
278
+ */
279
+ async onGameDetailUpdated(details) {
280
+ var _a;
281
+ this.gameInfo.details = this.gameDetails = details;
282
+ this.gameDetails = Object.assign({}, this.gameDetails);
283
+ (_a = this.infoWrapperRef) === null || _a === void 0 ? void 0 : _a.onGameDetailUpdated(details);
284
+ // init board when the svg board init finished
285
+ setTimeout(() => {
286
+ this.isBoardInited = true;
287
+ }, 200);
288
+ }
289
+ async onBaccaratResultChanged(result) {
290
+ if (!result || !this.baccaratRef || this.isResetingRoundBoard) {
291
+ return;
292
+ }
293
+ // For Tie round to mark, latestRound
294
+ let latestRound, resetRoundBoardCells = () => {
295
+ console.log('Reset Baccarat Board.');
296
+ this.filledCells = [];
297
+ this.baccaratSvg.resetSvg();
298
+ latestRound = null;
299
+ };
300
+ // Reset round board to avoid the reset(result==[]) update come earlier than last round,
301
+ // Ignore if the result.length == 0 for temporary
302
+ if (this.isBoardInited &&
303
+ (result.length == 0 ||
304
+ (result.length == 1 &&
305
+ (result[0].winner == BaccaratWinner.TIE ||
306
+ (result[0].location.column == 0 && result[0].location.row == 0))))) {
307
+ this.isResetingRoundBoard = true;
308
+ resetRoundBoardCells();
309
+ setTimeout(() => {
310
+ this.isResetingRoundBoard = false;
311
+ }, 1000);
312
+ }
313
+ result.forEach((item, i) => {
314
+ //Mark the Tie when Tie round is the first cell(0,0)
315
+ if (item.winner == BaccaratWinner.TIE) {
316
+ if (i == result.length - 1 &&
317
+ (!latestRound ||
318
+ (latestRound &&
319
+ latestRound.location.column == 0 &&
320
+ latestRound.location.row == 0))) {
321
+ let firstTieCellKey = '0-0-T';
322
+ if (this.filledCells.indexOf(firstTieCellKey) == -1) {
323
+ this.baccaratSvg.markNewRound(0, 0, Object.assign(Object.assign({}, item), { pairColor: WINNER_COLOR }), this.isBoardInited);
324
+ this.filledCells.push(firstTieCellKey);
325
+ }
326
+ }
327
+ return;
328
+ }
329
+ //cellKey to mark if a round has been marked
330
+ const cellKey = `${item.location.column}-${item.location.row}`;
331
+ const tCellKey = `${cellKey}-T`;
332
+ if (item.ties > 0 && this.filledCells.indexOf(tCellKey) == -1) {
333
+ this.baccaratSvg.markNewRound(item.location.column, item.location.row, Object.assign(Object.assign({}, item), { winner: BaccaratWinner.TIE }), this.isBoardInited);
334
+ this.filledCells.push(tCellKey);
335
+ }
336
+ latestRound = item;
337
+ //If current cell has been filled,duplicated data
338
+ if (this.filledCells.indexOf(cellKey) == -1) {
339
+ this.baccaratSvg.markNewRound(item.location.column, item.location.row, Object.assign(Object.assign({}, item), { pairColor: WINNER_COLOR }), this.isBoardInited);
340
+ this.filledCells.push(cellKey);
341
+ }
342
+ });
343
+ return;
344
+ }
345
+ initBaccaratRoundsBoard() {
346
+ var _a;
347
+ this.baccaratSvg.createBaccaratBoard(this.baccaratRef);
348
+ if (((_a = this.gameDetails.results) === null || _a === void 0 ? void 0 : _a.length) > 0) {
349
+ this.onBaccaratResultChanged(this.gameDetails.results);
350
+ }
351
+ }
352
+ render() {
353
+ var _a;
354
+ return (h(Host, null, 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 && (h("div", { slot: "category-details", class: "LiveIcons", part: "LiveIcons" }, h("div", { id: "boardContainer", part: "BaccaratBoard", class: "BaccaratBoard", ref: (el) => (this.baccaratRef = el) }))))));
355
+ }
356
+ static get watchers() { return {
357
+ "gameDetails": ["gameDetailsHandler"]
358
+ }; }
359
+ };
360
+ CasinoExtrainfoBaccarat.style = casinoExtrainfoBaccaratCss;
361
+
362
+ export { CasinoExtrainfoBaccarat as casino_extrainfo_baccarat };
@@ -0,0 +1,54 @@
1
+ import { r as registerInstance, h, H as Host } from './index-1e44dd9f.js';
2
+ import { D as DEFAULT_BLACKJACK_TOTAL_SEATS } from './game-thumbnail-0a56ee03.js';
3
+ import { t as translate } from './locale.utils-e0cf897e.js';
4
+
5
+ const SeatSvg = `<svg xmlns="http://www.w3.org/2000/svg" width="13" height="14" viewBox="0 0 13 14">
6
+ <path
7
+ 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"/>
8
+ <path
9
+ 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"/>
10
+ </svg>
11
+ `;
12
+
13
+ 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}";
14
+
15
+ const CasinoExtrainfoBlackjack = class {
16
+ constructor(hostRef) {
17
+ registerInstance(this, hostRef);
18
+ }
19
+ /**
20
+ * Generate Jackpot live seats info
21
+ * @param totalSeats
22
+ * @param occupiedSeats
23
+ */
24
+ generateBlackJackSeats(totalSeats = DEFAULT_BLACKJACK_TOTAL_SEATS, occupiedSeats = []) {
25
+ let seatsStatus = [];
26
+ for (let i = 0; i < totalSeats; i++) {
27
+ seatsStatus.push({
28
+ seatNo: i,
29
+ isClosed: occupiedSeats.indexOf((i + 1).toString()) > -1,
30
+ });
31
+ }
32
+ this.isTableFull = totalSeats == occupiedSeats.length;
33
+ return seatsStatus;
34
+ }
35
+ async onGameLoaded(gameInfo) {
36
+ var _a, _b, _c;
37
+ this.gameInfo = gameInfo;
38
+ this.gameDetails = this.gameInfo.details;
39
+ 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);
40
+ (_c = this.infoWrapperRef) === null || _c === void 0 ? void 0 : _c.onGameLoaded(gameInfo);
41
+ }
42
+ async onGameDetailUpdated(details) {
43
+ var _a, _b;
44
+ this.gameInfo.details = this.gameDetails = details;
45
+ 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);
46
+ this.gameDetails = Object.assign({}, this.gameDetails);
47
+ }
48
+ render() {
49
+ return (h(Host, null, h("casino-game-thumbnail-extrainfo", { ref: (el) => (this.infoWrapperRef = el), language: this.language }, this.gameDetails && this.gameDetails.isOpen && (h("div", { slot: "category-details", class: "LiveIcons", part: "LiveIcons" }, this.isTableFull ? (h("span", { class: "FullTable", part: "FullTable" }, translate('full', this.language))) : (this.seatsStatus.map((seatStatus) => (h("span", { class: `${seatStatus.isClosed ? 'ClosedSeat' : 'OpenSeat'} svg-container`, id: `s${seatStatus.seatNo}`, part: `${seatStatus.isClosed ? 'ClosedSeat' : 'OpenSeat'} svg-container`, innerHTML: SeatSvg })))))))));
50
+ }
51
+ };
52
+ CasinoExtrainfoBlackjack.style = casinoExtrainfoBlackjackCss;
53
+
54
+ export { CasinoExtrainfoBlackjack as casino_extrainfo_blackjack };
@@ -0,0 +1,41 @@
1
+ import { r as registerInstance, h, H as Host } from './index-1e44dd9f.js';
2
+ import { R as ROULETTE_COLOR_MAP, W as WIDGETTYPE_GAMECATEGORY } from './game-thumbnail-0a56ee03.js';
3
+
4
+ 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}";
5
+
6
+ const CasinoExtrainfoRoulette = class {
7
+ constructor(hostRef) {
8
+ registerInstance(this, hostRef);
9
+ /**
10
+ * Language
11
+ */
12
+ this.language = 'en';
13
+ }
14
+ async onGameLoaded(gameInfo) {
15
+ var _a;
16
+ this.gameInfo = Object.assign({}, gameInfo);
17
+ this.gameDetails = this.gameInfo.details ? Object.assign({}, this.gameInfo.details) : null;
18
+ (_a = this.infoWrapperRef) === null || _a === void 0 ? void 0 : _a.onGameLoaded(gameInfo);
19
+ }
20
+ async onGameDetailUpdated(details) {
21
+ this.gameInfo.details = this.gameDetails = details;
22
+ this.gameInfo = Object.assign({}, this.gameInfo);
23
+ this.gameDetails = Object.assign({}, this.gameDetails);
24
+ }
25
+ getRouletteNumberColor(value) {
26
+ return ROULETTE_COLOR_MAP[value];
27
+ }
28
+ render() {
29
+ var _a, _b, _c, _d;
30
+ const isDouble = this.gameDetails ?
31
+ this.gameDetails.category.toLowerCase() ===
32
+ WIDGETTYPE_GAMECATEGORY.doubleballroulette : false;
33
+ let rouletteNumbers = (isDouble
34
+ ? (_a = this.gameDetails) === null || _a === void 0 ? void 0 : _a.currentDoubleBallRouletteNumbers
35
+ : (_b = this.gameDetails) === null || _b === void 0 ? void 0 : _b.currentRouletteNumbers) || [];
36
+ return (h(Host, null, h("casino-game-thumbnail-extrainfo", { ref: (el) => (this.infoWrapperRef = el), language: this.language }, 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 ? (h("div", { class: "Double", part: "Double" }, h("span", { id: `s${idx}0`, class: `LatestResult ${idx == 0 ? 'First' : ''} ${this.showLiveClass ? 'FirstElementAnimated' : ''} ${this.getRouletteNumberColor(rNum[0])}` }, ' ', rNum[0]), h("span", { id: `s${idx}1`, class: `LatestResult ${idx == 0 ? 'First' : ''} ${this.showLiveClass ? 'FirstElementAnimated' : ''} ${this.getRouletteNumberColor(rNum[1])}` }, ' ', rNum[1]))) : (h("span", { id: `s${idx}`, class: `LatestResult ${idx == 0 ? 'First' : ''} ${this.showLiveClass ? 'FirstElementAnimated' : ''} ${this.getRouletteNumberColor(rNum)}` }, ' ', rNum)))))));
37
+ }
38
+ };
39
+ CasinoExtrainfoRoulette.style = casinoExtrainfoRouletteCss;
40
+
41
+ export { CasinoExtrainfoRoulette as casino_extrainfo_roulette };
@@ -0,0 +1,17 @@
1
+ import { p as promiseResolve, b as bootstrapLazy } from './index-1e44dd9f.js';
2
+
3
+ /*
4
+ Stencil Client Patch Browser v2.15.2 | MIT Licensed | https://stenciljs.com
5
+ */
6
+ const patchBrowser = () => {
7
+ const importMeta = import.meta.url;
8
+ const opts = {};
9
+ if (importMeta !== '') {
10
+ opts.resourcesUrl = new URL('.', importMeta).href;
11
+ }
12
+ return promiseResolve(opts);
13
+ };
14
+
15
+ patchBrowser().then(options => {
16
+ return bootstrapLazy([["casino-game-thumbnail-betlimit_2",[[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",[[0,"casino-extrainfo-baccarat",{"language":[1],"showRoundBoard":[4,"show-round-board"],"gameInfo":[32],"gameDetails":[32],"onGameLoaded":[64],"onGameDetailUpdated":[64],"onBaccaratResultChanged":[64]}]]],["casino-extrainfo-blackjack",[[0,"casino-extrainfo-blackjack",{"language":[1],"gameInfo":[32],"gameDetails":[32],"seatsStatus":[32],"isTableFull":[32],"onGameLoaded":[64],"onGameDetailUpdated":[64]}]]],["casino-extrainfo-roulette",[[0,"casino-extrainfo-roulette",{"language":[1],"gameInfo":[32],"gameDetails":[32],"showLiveClass":[32],"onGameLoaded":[64],"onGameDetailUpdated":[64]}]]],["casino-normal-game-thumbnail",[[0,"casino-normal-game-thumbnail",{"language":[1],"onGameLoaded":[64]}]]],["casino-game-thumb-view_2",[[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);
17
+ });