{"version":3,"file":"js/2170.a97c21037b8fd60f.js","mappings":"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","sources":["webpack://@sazka/web/../../libs/utils/node_modules/dayjs/dayjs.min.js","webpack://@sazka/web/../../libs/utils/node_modules/dayjs/locale/cs.js","webpack://@sazka/web/./js/app/live-dealer/live-dealer-analytics.ts","webpack://@sazka/web/./js/app/live-dealer/widgets/ld-product-cards/live-dealer-cards.ts","webpack://@sazka/web/../../libs/utils/dayjs.ts","webpack://@sazka/web/../../libs/utils/string-utils.ts","webpack://@sazka/web/./js/app/live-dealer/http-client.ts","webpack://@sazka/web/./js/app/live-dealer/live-dealer-api.ts","webpack://@sazka/web/./js/workers/notifications/websocket/public-hub.ts","webpack://@sazka/web/./js/app/live-dealer/widgets/ld-product-cards/ld-product-card-capacity.vue?154d","webpack://@sazka/web/./js/app/live-dealer/widgets/ld-product-cards/ld-product-card-capacity.vue","webpack://@sazka/web/./js/app/live-dealer/widgets/ld-product-cards/ld-product-card-capacity.vue?8185","webpack://@sazka/web/./js/app/live-dealer/widgets/ld-product-cards/ld-product-card-roulette.vue?f7b5","webpack://@sazka/web/./js/app/live-dealer/widgets/ld-product-cards/ld-product-card-roulette.vue","webpack://@sazka/web/./js/app/live-dealer/widgets/ld-product-cards/ld-product-card-roulette.vue?1cda","webpack://@sazka/web/./js/app/live-dealer/widgets/ld-product-cards/_ld-product-cards.vue?5ca8","webpack://@sazka/web/./js/app/live-dealer/widgets/ld-product-cards/_ld-product-cards.vue","webpack://@sazka/web/./js/app/live-dealer/widgets/ld-product-cards/_ld-product-cards.vue?1ce2"],"sourcesContent":["!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs=e()}(this,(function(){\"use strict\";var t=1e3,e=6e4,n=36e5,r=\"millisecond\",i=\"second\",s=\"minute\",u=\"hour\",a=\"day\",o=\"week\",c=\"month\",f=\"quarter\",h=\"year\",d=\"date\",l=\"Invalid Date\",$=/^(\\d{4})[-/]?(\\d{1,2})?[-/]?(\\d{0,2})[Tt\\s]*(\\d{1,2})?:?(\\d{1,2})?:?(\\d{1,2})?[.:]?(\\d+)?$/,y=/\\[([^\\]]+)]|Y{1,4}|M{1,4}|D{1,2}|d{1,4}|H{1,2}|h{1,2}|a|A|m{1,2}|s{1,2}|Z{1,2}|SSS/g,M={name:\"en\",weekdays:\"Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday\".split(\"_\"),months:\"January_February_March_April_May_June_July_August_September_October_November_December\".split(\"_\"),ordinal:function(t){var e=[\"th\",\"st\",\"nd\",\"rd\"],n=t%100;return\"[\"+t+(e[(n-20)%10]||e[n]||e[0])+\"]\"}},m=function(t,e,n){var r=String(t);return!r||r.length>=e?t:\"\"+Array(e+1-r.length).join(n)+t},v={s:m,z:function(t){var e=-t.utcOffset(),n=Math.abs(e),r=Math.floor(n/60),i=n%60;return(e<=0?\"+\":\"-\")+m(r,2,\"0\")+\":\"+m(i,2,\"0\")},m:function t(e,n){if(e.date()<n.date())return-t(n,e);var r=12*(n.year()-e.year())+(n.month()-e.month()),i=e.clone().add(r,c),s=n-i<0,u=e.clone().add(r+(s?-1:1),c);return+(-(r+(n-i)/(s?i-u:u-i))||0)},a:function(t){return t<0?Math.ceil(t)||0:Math.floor(t)},p:function(t){return{M:c,y:h,w:o,d:a,D:d,h:u,m:s,s:i,ms:r,Q:f}[t]||String(t||\"\").toLowerCase().replace(/s$/,\"\")},u:function(t){return void 0===t}},g=\"en\",D={};D[g]=M;var p=\"$isDayjsObject\",S=function(t){return t instanceof _||!(!t||!t[p])},w=function t(e,n,r){var i;if(!e)return g;if(\"string\"==typeof e){var s=e.toLowerCase();D[s]&&(i=s),n&&(D[s]=n,i=s);var u=e.split(\"-\");if(!i&&u.length>1)return t(u[0])}else{var a=e.name;D[a]=e,i=a}return!r&&i&&(g=i),i||!r&&g},O=function(t,e){if(S(t))return t.clone();var n=\"object\"==typeof e?e:{};return n.date=t,n.args=arguments,new _(n)},b=v;b.l=w,b.i=S,b.w=function(t,e){return O(t,{locale:e.$L,utc:e.$u,x:e.$x,$offset:e.$offset})};var _=function(){function M(t){this.$L=w(t.locale,null,!0),this.parse(t),this.$x=this.$x||t.x||{},this[p]=!0}var m=M.prototype;return m.parse=function(t){this.$d=function(t){var e=t.date,n=t.utc;if(null===e)return new Date(NaN);if(b.u(e))return new Date;if(e instanceof Date)return new Date(e);if(\"string\"==typeof e&&!/Z$/i.test(e)){var r=e.match($);if(r){var i=r[2]-1||0,s=(r[7]||\"0\").substring(0,3);return n?new Date(Date.UTC(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)):new Date(r[1],i,r[3]||1,r[4]||0,r[5]||0,r[6]||0,s)}}return new Date(e)}(t),this.init()},m.init=function(){var t=this.$d;this.$y=t.getFullYear(),this.$M=t.getMonth(),this.$D=t.getDate(),this.$W=t.getDay(),this.$H=t.getHours(),this.$m=t.getMinutes(),this.$s=t.getSeconds(),this.$ms=t.getMilliseconds()},m.$utils=function(){return b},m.isValid=function(){return!(this.$d.toString()===l)},m.isSame=function(t,e){var n=O(t);return this.startOf(e)<=n&&n<=this.endOf(e)},m.isAfter=function(t,e){return O(t)<this.startOf(e)},m.isBefore=function(t,e){return this.endOf(e)<O(t)},m.$g=function(t,e,n){return b.u(t)?this[e]:this.set(n,t)},m.unix=function(){return Math.floor(this.valueOf()/1e3)},m.valueOf=function(){return this.$d.getTime()},m.startOf=function(t,e){var n=this,r=!!b.u(e)||e,f=b.p(t),l=function(t,e){var i=b.w(n.$u?Date.UTC(n.$y,e,t):new Date(n.$y,e,t),n);return r?i:i.endOf(a)},$=function(t,e){return b.w(n.toDate()[t].apply(n.toDate(\"s\"),(r?[0,0,0,0]:[23,59,59,999]).slice(e)),n)},y=this.$W,M=this.$M,m=this.$D,v=\"set\"+(this.$u?\"UTC\":\"\");switch(f){case h:return r?l(1,0):l(31,11);case c:return r?l(1,M):l(0,M+1);case o:var g=this.$locale().weekStart||0,D=(y<g?y+7:y)-g;return l(r?m-D:m+(6-D),M);case a:case d:return $(v+\"Hours\",0);case u:return $(v+\"Minutes\",1);case s:return $(v+\"Seconds\",2);case i:return $(v+\"Milliseconds\",3);default:return this.clone()}},m.endOf=function(t){return this.startOf(t,!1)},m.$set=function(t,e){var n,o=b.p(t),f=\"set\"+(this.$u?\"UTC\":\"\"),l=(n={},n[a]=f+\"Date\",n[d]=f+\"Date\",n[c]=f+\"Month\",n[h]=f+\"FullYear\",n[u]=f+\"Hours\",n[s]=f+\"Minutes\",n[i]=f+\"Seconds\",n[r]=f+\"Milliseconds\",n)[o],$=o===a?this.$D+(e-this.$W):e;if(o===c||o===h){var y=this.clone().set(d,1);y.$d[l]($),y.init(),this.$d=y.set(d,Math.min(this.$D,y.daysInMonth())).$d}else l&&this.$d[l]($);return this.init(),this},m.set=function(t,e){return this.clone().$set(t,e)},m.get=function(t){return this[b.p(t)]()},m.add=function(r,f){var d,l=this;r=Number(r);var $=b.p(f),y=function(t){var e=O(l);return b.w(e.date(e.date()+Math.round(t*r)),l)};if($===c)return this.set(c,this.$M+r);if($===h)return this.set(h,this.$y+r);if($===a)return y(1);if($===o)return y(7);var M=(d={},d[s]=e,d[u]=n,d[i]=t,d)[$]||1,m=this.$d.getTime()+r*M;return b.w(m,this)},m.subtract=function(t,e){return this.add(-1*t,e)},m.format=function(t){var e=this,n=this.$locale();if(!this.isValid())return n.invalidDate||l;var r=t||\"YYYY-MM-DDTHH:mm:ssZ\",i=b.z(this),s=this.$H,u=this.$m,a=this.$M,o=n.weekdays,c=n.months,f=n.meridiem,h=function(t,n,i,s){return t&&(t[n]||t(e,r))||i[n].slice(0,s)},d=function(t){return b.s(s%12||12,t,\"0\")},$=f||function(t,e,n){var r=t<12?\"AM\":\"PM\";return n?r.toLowerCase():r};return r.replace(y,(function(t,r){return r||function(t){switch(t){case\"YY\":return String(e.$y).slice(-2);case\"YYYY\":return b.s(e.$y,4,\"0\");case\"M\":return a+1;case\"MM\":return b.s(a+1,2,\"0\");case\"MMM\":return h(n.monthsShort,a,c,3);case\"MMMM\":return h(c,a);case\"D\":return e.$D;case\"DD\":return b.s(e.$D,2,\"0\");case\"d\":return String(e.$W);case\"dd\":return h(n.weekdaysMin,e.$W,o,2);case\"ddd\":return h(n.weekdaysShort,e.$W,o,3);case\"dddd\":return o[e.$W];case\"H\":return String(s);case\"HH\":return b.s(s,2,\"0\");case\"h\":return d(1);case\"hh\":return d(2);case\"a\":return $(s,u,!0);case\"A\":return $(s,u,!1);case\"m\":return String(u);case\"mm\":return b.s(u,2,\"0\");case\"s\":return String(e.$s);case\"ss\":return b.s(e.$s,2,\"0\");case\"SSS\":return b.s(e.$ms,3,\"0\");case\"Z\":return i}return null}(t)||i.replace(\":\",\"\")}))},m.utcOffset=function(){return 15*-Math.round(this.$d.getTimezoneOffset()/15)},m.diff=function(r,d,l){var $,y=this,M=b.p(d),m=O(r),v=(m.utcOffset()-this.utcOffset())*e,g=this-m,D=function(){return b.m(y,m)};switch(M){case h:$=D()/12;break;case c:$=D();break;case f:$=D()/3;break;case o:$=(g-v)/6048e5;break;case a:$=(g-v)/864e5;break;case u:$=g/n;break;case s:$=g/e;break;case i:$=g/t;break;default:$=g}return l?$:b.a($)},m.daysInMonth=function(){return this.endOf(c).$D},m.$locale=function(){return D[this.$L]},m.locale=function(t,e){if(!t)return this.$L;var n=this.clone(),r=w(t,e,!0);return r&&(n.$L=r),n},m.clone=function(){return b.w(this.$d,this)},m.toDate=function(){return new Date(this.valueOf())},m.toJSON=function(){return this.isValid()?this.toISOString():null},m.toISOString=function(){return this.$d.toISOString()},m.toString=function(){return this.$d.toUTCString()},M}(),k=_.prototype;return O.prototype=k,[[\"$ms\",r],[\"$s\",i],[\"$m\",s],[\"$H\",u],[\"$W\",a],[\"$M\",c],[\"$y\",h],[\"$D\",d]].forEach((function(t){k[t[1]]=function(e){return this.$g(e,t[0],t[1])}})),O.extend=function(t,e){return t.$i||(t(e,_,O),t.$i=!0),O},O.locale=w,O.isDayjs=S,O.unix=function(t){return O(1e3*t)},O.en=D[g],O.Ls=D,O.p={},O}));","!function(e,n){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=n(require(\"dayjs\")):\"function\"==typeof define&&define.amd?define([\"dayjs\"],n):(e=\"undefined\"!=typeof globalThis?globalThis:e||self).dayjs_locale_cs=n(e.dayjs)}(this,(function(e){\"use strict\";function n(e){return e&&\"object\"==typeof e&&\"default\"in e?e:{default:e}}var t=n(e);function s(e){return e>1&&e<5&&1!=~~(e/10)}function r(e,n,t,r){var d=e+\" \";switch(t){case\"s\":return n||r?\"pár sekund\":\"pár sekundami\";case\"m\":return n?\"minuta\":r?\"minutu\":\"minutou\";case\"mm\":return n||r?d+(s(e)?\"minuty\":\"minut\"):d+\"minutami\";case\"h\":return n?\"hodina\":r?\"hodinu\":\"hodinou\";case\"hh\":return n||r?d+(s(e)?\"hodiny\":\"hodin\"):d+\"hodinami\";case\"d\":return n||r?\"den\":\"dnem\";case\"dd\":return n||r?d+(s(e)?\"dny\":\"dnĂ\"):d+\"dny\";case\"M\":return n||r?\"mÄ›sĂc\":\"mÄ›sĂcem\";case\"MM\":return n||r?d+(s(e)?\"mÄ›sĂce\":\"mÄ›sĂcĹŻ\"):d+\"mÄ›sĂci\";case\"y\":return n||r?\"rok\":\"rokem\";case\"yy\":return n||r?d+(s(e)?\"roky\":\"let\"):d+\"lety\"}}var d={name:\"cs\",weekdays:\"nedÄ›le_pondÄ›lĂ_ĂşterĂ˝_stĹ™eda_ÄŤtvrtek_pátek_sobota\".split(\"_\"),weekdaysShort:\"ne_po_Ăşt_st_ÄŤt_pá_so\".split(\"_\"),weekdaysMin:\"ne_po_Ăşt_st_ÄŤt_pá_so\".split(\"_\"),months:\"leden_Ăşnor_bĹ™ezen_duben_kvÄ›ten_ÄŤerven_ÄŤervenec_srpen_zářĂ_Ĺ™Ăjen_listopad_prosinec\".split(\"_\"),monthsShort:\"led_Ăşno_bĹ™e_dub_kvÄ›_ÄŤvn_ÄŤvc_srp_zář_Ĺ™Ăj_lis_pro\".split(\"_\"),weekStart:1,yearStart:4,ordinal:function(e){return e+\".\"},formats:{LT:\"H:mm\",LTS:\"H:mm:ss\",L:\"DD.MM.YYYY\",LL:\"D. MMMM YYYY\",LLL:\"D. MMMM YYYY H:mm\",LLLL:\"dddd D. MMMM YYYY H:mm\",l:\"D. M. YYYY\"},relativeTime:{future:\"za %s\",past:\"pĹ™ed %s\",s:r,m:r,mm:r,h:r,hh:r,d:r,dd:r,M:r,MM:r,y:r,yy:r}};return t.default.locale(d,null,!0),d}));","import { LiveDealerGame } from \"./models/live-dealer-game\";\r\n\r\nexport namespace LiveDealerAnalytics {\r\n // V1.0\r\n\r\n // DL1.10\r\n export function pushPageReady() {\r\n window.dataLayer.push({\r\n page: {\r\n type: \"lobby.hryLive\",\r\n kind: \"lobby.hryLive\",\r\n verticalCode: \"hry-live\",\r\n },\r\n });\r\n }\r\n\r\n enum LiveDealerAvailability {\r\n fulltime = \"fulltime\",\r\n bounded = \"bounded\",\r\n }\r\n\r\n // DL2.10\r\n export function pushGameCardClickFeed(game: LiveDealerGame, position: string, emptySeats: string) {\r\n window.dataLayer.push({\r\n event: \"action.show.products\",\r\n action: {\r\n show: {\r\n products: [\r\n {\r\n gameCode: game.codeName ?? null,\r\n verticalCode: \"hry-live\",\r\n placement: \"allGames\",\r\n position: position,\r\n maxBet: game.maxWager?.toString() ?? null,\r\n minBet: game.minWager?.toString() ?? null,\r\n availability: game.isAvailableNonstop\r\n ? LiveDealerAvailability.fulltime\r\n : LiveDealerAvailability.bounded,\r\n croupierName: game.liveData?.dealerName ?? null,\r\n tableCapacity: emptySeats,\r\n tableName: game.name ?? null,\r\n tableProvider: game.provider ?? null,\r\n tableSeats: game.tableSeats?.toString() ?? null,\r\n tablePlayers: game.liveData?.playersCount?.toString() ?? null,\r\n operationHoursStart: game.availableFrom ?? null,\r\n operationHoursEnd: game.availableTo ?? null,\r\n },\r\n ],\r\n },\r\n },\r\n });\r\n }\r\n\r\n // DL2.10\r\n export function pushGameCardClick(\r\n gameCode: string,\r\n position: string,\r\n maxBet: string,\r\n minBet: string,\r\n availability: string\r\n ) {\r\n window.dataLayer.push({\r\n event: \"action.show.products\",\r\n action: {\r\n show: {\r\n products: [\r\n {\r\n gameCode: gameCode,\r\n verticalCode: \"hry-live\",\r\n placement: \"allGames\",\r\n position: position,\r\n maxBet: maxBet,\r\n minBet: minBet,\r\n availability: availability,\r\n },\r\n ],\r\n },\r\n },\r\n });\r\n }\r\n\r\n // DL2.35\r\n export function pushCloseOnboardingTutorial() {\r\n window.dataLayer.push({\r\n event: \"action.closeOnboarding.hryLive\",\r\n });\r\n }\r\n\r\n // DL2.40\r\n export function pushNavigationClick() {\r\n window.dataLayer.push({\r\n event: \"action.click.navigation\",\r\n action: {\r\n click: {\r\n name: \"Hry Live\",\r\n eventProperty2: \"main\",\r\n },\r\n },\r\n });\r\n }\r\n\r\n // DL2.50\r\n export function pushClickGame(gameCode: string, position: number) {\r\n window.dataLayer.push({\r\n event: \"action.show.products\",\r\n action: {\r\n show: {\r\n products: [\r\n {\r\n gameCode: gameCode,\r\n verticalCode: \"hry-live\",\r\n placement: \"bottom\",\r\n position: position,\r\n },\r\n ],\r\n },\r\n },\r\n });\r\n }\r\n\r\n // DL2.60\r\n export function pushClickMoreGames() {\r\n window.dataLayer.push({\r\n event: \"action.showSazkaHry.hryLive\",\r\n });\r\n }\r\n\r\n // DL2.70\r\n export function pushPlayVideo() {\r\n window.dataLayer.push({\r\n event: \"action.play.video\",\r\n });\r\n }\r\n\r\n // DL3.10\r\n export function pushBannerImpression(\r\n codeName1: string,\r\n height1: string,\r\n creative1: string,\r\n codeName2: string,\r\n height2: string,\r\n creative2: string\r\n ) {\r\n window.dataLayer.push({\r\n event: \"action.impress.promos\",\r\n action: {\r\n impress: {\r\n promos: [\r\n {\r\n id: codeName1,\r\n name: codeName1 + \".\" + height1,\r\n creative: creative1,\r\n position: \"hryLive\",\r\n },\r\n\r\n {\r\n id: codeName2,\r\n name: codeName2 + \".\" + height2,\r\n creative: creative2,\r\n position: \"hryLive\",\r\n },\r\n ],\r\n },\r\n },\r\n });\r\n }\r\n\r\n // DL3.20\r\n export function pushBannerClick(codeName: string, height: string, creative: string) {\r\n window.dataLayer.push({\r\n event: \"action.show.promos\",\r\n action: {\r\n show: {\r\n promos: [\r\n {\r\n id: codeName,\r\n name: codeName + \".\" + height,\r\n creative: creative,\r\n position: \"hryLive\",\r\n },\r\n ],\r\n },\r\n },\r\n });\r\n }\r\n}\r\n","import { LiveDealerGame } from \"@/live-dealer/models/live-dealer-game\";\r\nimport { LiveDealerTable } from \"../../../../workers/notifications/websocket/models/live-dealer-tables\";\r\nimport { ref } from \"vue\";\r\n\r\nconst cards = ref<LiveDealerGame[]>([]);\r\n\r\nexport function useLiveDealerCards() {\r\n function updateCards(tables: LiveDealerTable[]) {\r\n tables.forEach((tableUpdate) => {\r\n const matchingCard = cards.value.find((card) => card.tableId === tableUpdate.tableId);\r\n\r\n if (matchingCard) {\r\n matchingCard.liveData.dealerName = tableUpdate.dealerName ?? null;\r\n matchingCard.liveData.isCurrentlyAvailable = tableUpdate.isCurrentlyAvailable ?? null;\r\n matchingCard.liveData.playersCount = tableUpdate.playersCount ?? null;\r\n matchingCard.liveData.tableResults = tableUpdate.tableResults ?? null;\r\n }\r\n });\r\n }\r\n\r\n return { cards, updateCards };\r\n}\r\n","import dayjs from \"dayjs\";\r\nimport \"dayjs/locale/cs\";\r\ndayjs.locale(\"cs\");\r\n\r\n/**\r\n * Returns an object containing the dayjs library instance.\r\n *\r\n * @return {Object} The dayjs library instance\r\n */\r\nexport function useDayjs() {\r\n return {\r\n dayjs,\r\n };\r\n}\r\n","export namespace StringUtils {\r\n /**\r\n * Formats a number by adding commas for thousands separator and truncating decimal places.\r\n *\r\n * @param {number} value - The number to format.\r\n * @param {boolean} useNbsp - Optional flag to use non-breaking space as a separator. Defaults to true.\r\n * @return {string} The formatted number with commas and optional non-breaking space separator.\r\n */\r\n export const formatNumber = (value: number, useNbsp = true): string => {\r\n if (typeof value !== \"number\") {\r\n return \"---\";\r\n }\r\n const ref = value.toFixed(2).split(\".\");\r\n let preComma = ref[0] || \"\";\r\n const postComma = ref[1];\r\n preComma = stringReverse((stringReverse(preComma).match(/.{1,3}/g) || [\"\"]).join(useNbsp ? \";psbn&\" : \" \"));\r\n\r\n return postComma != \"00\" ? preComma + \",\" + postComma : preComma;\r\n };\r\n\r\n /**\r\n * Formats a currency value by calling formatNumber and appending the currency symbol.\r\n *\r\n * @param {number} value - The value to format as currency.\r\n * @param {boolean} useNbsp - Optional flag to use non-breaking space as a separator. Defaults to true.\r\n * @return {string} The formatted currency value with the currency symbol.\r\n */\r\n export const formatCurrency = (value: number, useNbsp = true): string => {\r\n // this is also case for 0\r\n if (!value || isNaN(value)) {\r\n value = 0;\r\n }\r\n return `${formatNumber(value, useNbsp)}${useNbsp ? \" \" : \" \"}KÄŤ`;\r\n };\r\n\r\n /**\r\n * Limits the length of the text if it exceeds the specified limit by truncating and adding ellipsis.\r\n *\r\n * @param {string} text - The input text to limit.\r\n * @param {number} limit - The maximum length of the text before truncation. Defaults to 50.\r\n * @return {string} The text with limited length, potentially truncated with ellipsis.\r\n */\r\n export const limitTextLength = (text: string, limit = 50) => {\r\n if (text && text.length > limit) {\r\n return text.substring(0, limit - 3) + \"...\";\r\n }\r\n return text;\r\n };\r\n\r\n /**\r\n * Reverses the given string.\r\n *\r\n * @param {string} str - The string to be reversed.\r\n * @return {string} The reversed string.\r\n */\r\n export function stringReverse(str: string): string {\r\n return str.split(\"\").reverse().join(\"\");\r\n }\r\n\r\n /**\r\n * Converts given HTML text to plain text.\r\n *\r\n * @param {string} htmlText - The HTML text to be converted to plain text.\r\n * @return {string} The plain text.\r\n */\r\n export function getPlainTextFromHtml(htmlText: string): string {\r\n const tempDiv = document.createElement(\"div\");\r\n tempDiv.innerHTML = htmlText;\r\n return tempDiv.textContent || tempDiv.innerText || \"\";\r\n }\r\n\r\n /**\r\n * Sanitizes a string by removing HTML tags and replacing multiple whitespaces/newlines with a single space.\r\n */\r\n export function sanitizeString(input: string): string {\r\n return input\r\n .replace(/<[^>]*>/g, \"\") // Remove HTML tags\r\n .replace(/\\s+/g, \" \") // Replace multiple whitespaces/newlines with a single space\r\n .trim(); // Remove leading and trailing spaces\r\n }\r\n}\r\n","import axios from \"axios\";\r\n\r\nexport const liveDealerHttpClient = axios.create({\r\n baseURL: \"/api/live-dealer\",\r\n});\r\n","import { liveDealerHttpClient } from \"./http-client\";\r\nimport { LiveDealerGame } from \"./models/live-dealer-game\";\r\n\r\nexport async function fetchLiveDealerGames() {\r\n const response = await liveDealerHttpClient.get<LiveDealerGame[]>(\"/games\");\r\n\r\n const { data } = response;\r\n\r\n // prefill with empty liveData object\r\n data.forEach((game) => {\r\n game.liveData ??= {\r\n tableId: null,\r\n isCurrentlyAvailable: null,\r\n dealerName: null,\r\n playersCount: null,\r\n tableResults: null,\r\n };\r\n });\r\n\r\n return data;\r\n}\r\n","import { ref } from \"vue\";\r\nimport { NotificationServerClient } from \"./notification-server-client\";\r\nimport { HubEndpoint } from \"./models/hub-endpoints\";\r\nimport { ServerSubscribeArguments } from \"./models/server-subscribe-argument\";\r\nimport { ServerListenDataType, ServerListenMetod } from \"./models/listen-models\";\r\n\r\nexport function usePublicHub() {\r\n const client = ref<NotificationServerClient | null>(null);\r\n const connected = ref(false);\r\n\r\n const connect = async () => {\r\n if (!client.value) {\r\n client.value = new NotificationServerClient(\r\n appSettings[\"Integrations:NotificationsServer:Domain\"],\r\n HubEndpoint.Public,\r\n environment.env\r\n );\r\n }\r\n if (!connected.value) {\r\n try {\r\n await client.value.connect();\r\n connected.value = true;\r\n console.log(\"Connected to Public Hub\");\r\n } catch (err) {\r\n console.error(\"Failed to connect to Public Hub\", err);\r\n }\r\n }\r\n };\r\n\r\n const disconnect = async () => {\r\n if (client.value && connected.value) {\r\n try {\r\n await client.value.disconnect();\r\n connected.value = false;\r\n console.log(\"Disconnected from Public Hub\");\r\n } catch (err) {\r\n console.error(\"Failed to disconnect from Public Hub\", err);\r\n }\r\n }\r\n };\r\n\r\n const subscribe = async (serverArgument: ServerSubscribeArguments) => {\r\n if (!connected.value) {\r\n await connect();\r\n }\r\n\r\n if (client.value && connected.value) {\r\n try {\r\n await client.value.invoke(\"Subscribe\", serverArgument);\r\n console.log(`Subscribed to '${serverArgument}'.`);\r\n } catch (err) {\r\n console.error(`Failed to subscribe to '${serverArgument}'.`, err);\r\n }\r\n } else {\r\n console.error(\"Public Hub client is not available or not connected\");\r\n }\r\n };\r\n\r\n const listen = <T extends ServerListenDataType>(method: ServerListenMetod, callback: (data: T) => void) => {\r\n if (!client.value) {\r\n console.warn(`Listen '${method}' didn't assign to CONNECTION!`);\r\n return;\r\n }\r\n\r\n client.value.listen(method, (data: ServerListenDataType) => {\r\n callback(data as T);\r\n });\r\n };\r\n\r\n return {\r\n client,\r\n connected,\r\n connect,\r\n disconnect,\r\n listen,\r\n subscribe,\r\n };\r\n}\r\n","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, normalizeClass as _normalizeClass, createBlock as _createBlock } from \"vue\"\n\nconst _hoisted_1 = { class: \"ld-card__capacity\" }\n\nimport { LiveDealerGame } from \"@/live-dealer/models/live-dealer-game\";\r\nimport DsIcon from \"@sazka/design-system/src/icon/ds-icon.vue\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'ld-product-card-capacity',\n props: {\n card: {}\n },\n setup(__props: any) {\n\r\n\r\n\r\nconst capacityIconIsActive = (card: LiveDealerGame, n: number) => {\r\n return card.isAvailable && card.isEnabled && card.liveData?.playersCount && n <= card.liveData?.playersCount;\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_ctx.card.tableSeats, (n) => {\n return (_openBlock(), _createBlock(DsIcon, {\n key: n,\n name: \"account\",\n width: 16,\n height: 16,\n class: _normalizeClass(['ld-card__capacity-icon', { 'ld-card__capacity-icon--active': capacityIconIsActive(_ctx.card, n) }])\n }, null, 8, [\"class\"]))\n }), 128))\n ]))\n}\n}\n\n})","<template>\r\n <div class=\"ld-card__capacity\">\r\n <DsIcon\r\n v-for=\"n in card.tableSeats\"\r\n :key=\"n\"\r\n name=\"account\"\r\n :width=\"16\"\r\n :height=\"16\"\r\n :class=\"['ld-card__capacity-icon', { 'ld-card__capacity-icon--active': capacityIconIsActive(card, n) }]\"\r\n />\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { LiveDealerGame } from \"@/live-dealer/models/live-dealer-game\";\r\nimport DsIcon from \"@sazka/design-system/src/icon/ds-icon.vue\";\r\n\r\ndefineProps<{\r\n card: LiveDealerGame;\r\n}>();\r\n\r\nconst capacityIconIsActive = (card: LiveDealerGame, n: number) => {\r\n return card.isAvailable && card.isEnabled && card.liveData?.playersCount && n <= card.liveData?.playersCount;\r\n};\r\n</script>\r\n","import script from \"./ld-product-card-capacity.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ld-product-card-capacity.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = { class: \"ld-card__roulette\" }\n\nimport { computed } from \"vue\";\r\n\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: 'ld-product-card-roulette',\n props: {\n numbers: {}\n },\n setup(__props: any) {\n\r\nconst props = __props;\r\n\r\nconst numberedItems = computed(() => {\r\n return props.numbers.map((num, index) => ({\r\n number: num,\r\n id: `${num}-${index}`,\r\n }));\r\n});\r\n\r\nconst getRouletteColor = (n: string) => {\r\n if (n === \"0\" || n === \"00\") {\r\n return \"green\";\r\n }\r\n\r\n const number = parseInt(n, 10);\r\n\r\n if ((number >= 1 && number <= 10) || (number >= 19 && number <= 28)) {\r\n return number % 2 === 0 ? \"black\" : \"red\";\r\n } else if ((number >= 11 && number <= 18) || (number >= 29 && number <= 36)) {\r\n return number % 2 === 0 ? \"red\" : \"black\";\r\n }\r\n\r\n return \"black\";\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n return (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(numberedItems.value, (item) => {\n return (_openBlock(), _createElementBlock(\"p\", {\n key: item.id,\n class: _normalizeClass(`ld-card__roulette-number ld-card__roulette-number--${getRouletteColor(item.number)}`)\n }, _toDisplayString(item.number), 3))\n }), 128))\n ]))\n}\n}\n\n})","<template>\r\n <div class=\"ld-card__roulette\">\r\n <p\r\n v-for=\"item in numberedItems\"\r\n :key=\"item.id\"\r\n :class=\"`ld-card__roulette-number ld-card__roulette-number--${getRouletteColor(item.number)}`\"\r\n >\r\n {{ item.number }}\r\n </p>\r\n </div>\r\n</template>\r\n\r\n<script setup lang=\"ts\">\r\nimport { computed } from \"vue\";\r\n\r\nconst props = defineProps<{\r\n numbers: string[];\r\n}>();\r\n\r\nconst numberedItems = computed(() => {\r\n return props.numbers.map((num, index) => ({\r\n number: num,\r\n id: `${num}-${index}`,\r\n }));\r\n});\r\n\r\nconst getRouletteColor = (n: string) => {\r\n if (n === \"0\" || n === \"00\") {\r\n return \"green\";\r\n }\r\n\r\n const number = parseInt(n, 10);\r\n\r\n if ((number >= 1 && number <= 10) || (number >= 19 && number <= 28)) {\r\n return number % 2 === 0 ? \"black\" : \"red\";\r\n } else if ((number >= 11 && number <= 18) || (number >= 29 && number <= 36)) {\r\n return number % 2 === 0 ? \"red\" : \"black\";\r\n }\r\n\r\n return \"black\";\r\n};\r\n</script>\r\n","import script from \"./ld-product-card-roulette.vue?vue&type=script&setup=true&lang=ts\"\nexport * from \"./ld-product-card-roulette.vue?vue&type=script&setup=true&lang=ts\"\n\nconst __exports__ = script;\n\nexport default __exports__","import { defineComponent as _defineComponent } from 'vue'\nimport { unref as _unref, renderList as _renderList, Fragment as _Fragment, openBlock as _openBlock, createElementBlock as _createElementBlock, toDisplayString as _toDisplayString, createElementVNode as _createElementVNode, createCommentVNode as _createCommentVNode, createVNode as _createVNode, createTextVNode as _createTextVNode, createBlock as _createBlock, normalizeClass as _normalizeClass } from \"vue\"\n\nconst _hoisted_1 = {\n key: 0,\n class: \"ld-grid\"\n}\nconst _hoisted_2 = [\"href\", \"data-game-id\", \"onClick\"]\nconst _hoisted_3 = { class: \"ld-card\" }\nconst _hoisted_4 = { class: \"ld-card__header\" }\nconst _hoisted_5 = { class: \"ld-card__header-text\" }\nconst _hoisted_6 = { class: \"ld-card__game-name\" }\nconst _hoisted_7 = { class: \"ld-card__dealer-name\" }\nconst _hoisted_8 = { class: \"ds-badge\" }\nconst _hoisted_9 = {\n key: 0,\n class: \"ds-badge__text\"\n}\nconst _hoisted_10 = {\n key: 1,\n class: \"ds-badge__text\"\n}\nconst _hoisted_11 = [\"src\"]\nconst _hoisted_12 = { class: \"ld-card__bottom\" }\nconst _hoisted_13 = { class: \"ld-card__payout\" }\nconst _hoisted_14 = { class: \"ld-card__payout-prize\" }\nconst _hoisted_15 = {\n key: 0,\n class: \"ld-card__overlay\"\n}\nconst _hoisted_16 = [\"innerHTML\"]\nconst _hoisted_17 = [\"innerHTML\"]\nconst _hoisted_18 = {\n key: 0,\n class: \"ld-card__happy-hour-bagde\"\n}\n\nimport { onMounted, onUnmounted, ref, watch } from \"vue\";\r\nimport { StringUtils } from \"@sazka/utils/string-utils\";\r\nimport { showAlert } from \"@sazka/design-system/src/modal-alert/mount-alert\";\r\nimport { fetchLiveDealerGames } from \"@/live-dealer/live-dealer-api\";\r\nimport { LiveDealerAnalytics } from \"@/live-dealer/live-dealer-analytics\";\r\nimport { LiveDealerGame } from \"@/live-dealer/models/live-dealer-game\";\r\nimport { useLiveDealerCards } from \"./live-dealer-cards\";\r\nimport { useNgSession } from \"@sazka/ng/ng-session\";\r\nimport { usePublicHub } from \"../../../../workers/notifications/websocket/public-hub\";\r\nimport { ServerSubscribeArguments } from \"../../../../workers/notifications/websocket/models/server-subscribe-argument\";\r\nimport { LiveDealerTablesDto } from \"../../../../workers/notifications/websocket/models/listen-models\";\r\nimport LdProductCardCapacity from \"./ld-product-card-capacity.vue\";\r\nimport DsIcon from \"@sazka/design-system/src/icon/ds-icon.vue\";\r\nimport LdProductCardRoulette from \"./ld-product-card-roulette.vue\";\r\nimport { useDayjs } from \"@sazka/utils/dayjs\";\r\n\r\nconst START_HOUR = 20;\r\nconst END_HOUR = 2;\r\n\nexport default /*@__PURE__*/_defineComponent({\n __name: '_ld-product-cards',\n setup(__props) {\n\r\nconst { dayjs } = useDayjs();\r\n\r\nconst { isLoggedIn } = useNgSession();\r\nconst { cards, updateCards } = useLiveDealerCards();\r\nconst publicHub = usePublicHub();\r\n\r\nconst loading = ref(true);\r\nconst error = ref();\r\n\r\nconst cardIsDisabled = (card: LiveDealerGame) => {\r\n if (!card.isEnabled) {\r\n return true;\r\n }\r\n\r\n if (card.liveData?.isCurrentlyAvailable != undefined) {\r\n return !card.liveData.isCurrentlyAvailable;\r\n }\r\n\r\n return !card.isAvailable;\r\n};\r\n\r\nconst fetchGames = async () => {\r\n try {\r\n cards.value = (await fetchLiveDealerGames()) ?? [];\r\n } catch (e) {\r\n console.error(\"Failed to fetch live dealer games:\", e);\r\n error.value = e;\r\n showAlert({\r\n title: \"Vyskytla se chyba\",\r\n subText: \"NepodaĹ™ilo se nám naÄŤĂst Hry live, zkuste to prosĂm znovu pozdÄ›ji.\",\r\n });\r\n } finally {\r\n loading.value = false;\r\n }\r\n};\r\n\r\nfetchGames();\r\n\r\nconst hideSkeletons = () => {\r\n const skeletonGrid = document.getElementById(\"ld-grid-skeletons\");\r\n if (skeletonGrid) {\r\n skeletonGrid.classList.add(\"hidden\");\r\n }\r\n};\r\n\r\nconst showHappyHourBagde = (card: LiveDealerGame): boolean => {\r\n const selectedIds = [\"113241\", \"113320\", \"113242\"];\r\n\r\n if (cardIsDisabled(card)) return false;\r\n if (!selectedIds.includes(card.tableId)) return false;\r\n return true;\r\n};\r\n\r\nconst isHappyHourTime = ref(false);\r\n\r\nconst calculateHappyHourTime = () => {\r\n const localDate = dayjs();\r\n const day = localDate.day();\r\n const hours = localDate.hour();\r\n\r\n const isTuesday = (day == 2 && hours >= START_HOUR) || (day == 3 && hours < END_HOUR);\r\n const isThursday = (day == 4 && hours >= START_HOUR) || (day == 5 && hours < END_HOUR);\r\n const isSunday = (day == 0 && hours >= START_HOUR) || (day == 1 && hours < END_HOUR);\r\n\r\n isHappyHourTime.value = isTuesday || isThursday || isSunday;\r\n};\r\n\r\ncalculateHappyHourTime();\r\nconst timer = setInterval(calculateHappyHourTime, 5000);\r\n\r\nwatch(loading, (newVal) => {\r\n if (!newVal) {\r\n hideSkeletons();\r\n }\r\n});\r\n\r\nconst getEmptySeats = (card: LiveDealerGame) => {\r\n if (typeof card.tableSeats !== \"number\" || typeof card.liveData?.playersCount !== \"number\") {\r\n return null;\r\n }\r\n return `${card.tableSeats - card.liveData.playersCount}`;\r\n};\r\n\r\nwatch(isLoggedIn, async (newVal) => {\r\n if (newVal) {\r\n console.log(\"USER IS NOT LOGGED IN, DISCONNECTING FROM PUBLIC HUB\");\r\n await publicHub.disconnect();\r\n } else {\r\n console.log(\"USER IS LOGGED IN, CONNECTING TO PUBLIC HUB\");\r\n await publicHub.connect();\r\n await publicHub.subscribe(ServerSubscribeArguments.LiveDealer);\r\n publicHub.listen<LiveDealerTablesDto>(\"LiveDealerTables\", (data) => {\r\n console.log(\"NEW 'LiveDealerTables' DATA FROM PUBLIC HUB:\", data);\r\n updateCards(data.tables);\r\n });\r\n }\r\n});\r\n\r\nonMounted(async () => {\r\n if (!isLoggedIn.value) {\r\n console.log(\"CONNECTING TO PUBLIC HUB\");\r\n await publicHub.connect();\r\n await publicHub.subscribe(ServerSubscribeArguments.LiveDealer);\r\n publicHub.listen<LiveDealerTablesDto>(\"LiveDealerTables\", (data) => {\r\n console.log(\"NEW 'LiveDealerTables' DATA FROM PUBLIC HUB:\", data);\r\n updateCards(data.tables);\r\n });\r\n }\r\n});\r\n\r\nonUnmounted(() => {\r\n clearInterval(timer);\r\n});\r\n\r\nonbeforeunload = () => {\r\n console.log(\"PAGE UNLOADING, DISCONNECTING FROM PUBLIC HUB\");\r\n publicHub.disconnect();\r\n};\r\n\r\nconst handleAnalytics = (card: LiveDealerGame, position: number) => {\r\n LiveDealerAnalytics.pushGameCardClickFeed(card, position.toString(), getEmptySeats(card));\r\n};\r\n\nreturn (_ctx: any,_cache: any) => {\n return (!loading.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_1, [\n (_openBlock(true), _createElementBlock(_Fragment, null, _renderList(_unref(cards), (card, index) => {\n return (_openBlock(), _createElementBlock(\"a\", {\n key: card.tableId,\n href: card.url,\n class: _normalizeClass([\r\n 'game-launcher ld-card__wrapper',\r\n {\r\n 'ld-card__wrapper--disabled': cardIsDisabled(card),\r\n },\r\n ]),\n \"data-game-id\": card.externalId,\n \"data-money-mode\": \"true\",\n onClick: ($event: any) => (handleAnalytics(card, index + 1))\n }, [\n _createElementVNode(\"div\", _hoisted_3, [\n _createElementVNode(\"div\", _hoisted_4, [\n _createElementVNode(\"div\", _hoisted_5, [\n _createElementVNode(\"h3\", _hoisted_6, _toDisplayString(card.name), 1),\n _createElementVNode(\"p\", _hoisted_7, _toDisplayString(card.liveData?.dealerName ?? \"\"), 1)\n ]),\n _createElementVNode(\"div\", _hoisted_8, [\n (card.isAvailableNonstop)\n ? (_openBlock(), _createElementBlock(\"p\", _hoisted_9, \"24/7\"))\n : (_openBlock(), _createElementBlock(\"p\", _hoisted_10, _toDisplayString(card.availableFrom) + \" – \" + _toDisplayString(card.availableTo), 1))\n ])\n ]),\n _createElementVNode(\"img\", {\n src: card.teaserImage,\n class: \"ld-card__img\",\n alt: \"\"\n }, null, 8, _hoisted_11),\n _createElementVNode(\"div\", _hoisted_12, [\n _createElementVNode(\"div\", _hoisted_13, [\n _createVNode(DsIcon, {\n name: \"bet-amount-thin\",\n width: 16,\n height: 16\n }),\n _createElementVNode(\"span\", _hoisted_14, [\n _createTextVNode(_toDisplayString(_unref(StringUtils).formatCurrency(card.minWager, false)) + \" \", 1),\n _cache[0] || (_cache[0] = _createElementVNode(\"span\", { class: \"ld-card__payout-hyphen\" }, \"–\", -1)),\n _createTextVNode(\" \" + _toDisplayString(_unref(StringUtils).formatCurrency(card.maxWager, false)), 1)\n ])\n ]),\n (\r\n card.liveData?.playersCount !== null &&\r\n card.liveData?.playersCount !== undefined &&\r\n card.tableSeats\r\n )\n ? (_openBlock(), _createBlock(LdProductCardCapacity, {\n key: 0,\n card: card,\n \"available-seats\": card.tableSeats\n }, null, 8, [\"card\", \"available-seats\"]))\n : (\r\n card.liveData?.tableResults !== null &&\r\n card.liveData?.tableResults !== undefined &&\r\n card.liveData?.tableResults.length\r\n )\n ? (_openBlock(), _createBlock(LdProductCardRoulette, {\n key: 1,\n numbers: card.liveData.tableResults\n }, null, 8, [\"numbers\"]))\n : _createCommentVNode(\"\", true)\n ]),\n (cardIsDisabled(card))\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_15, [\n (!card.liveData.isCurrentlyAvailable || !card.isAvailable)\n ? (_openBlock(), _createElementBlock(\"p\", {\n key: 0,\n innerHTML: card.unavailableTableText,\n class: \"ld-card__overlay-text\"\n }, null, 8, _hoisted_16))\n : (_openBlock(), _createElementBlock(\"p\", {\n key: 1,\n innerHTML: card.disabledTableText,\n class: \"ld-card__overlay-text\"\n }, null, 8, _hoisted_17))\n ]))\n : _createCommentVNode(\"\", true)\n ]),\n (showHappyHourBagde(card) && isHappyHourTime.value)\n ? (_openBlock(), _createElementBlock(\"div\", _hoisted_18, _cache[1] || (_cache[1] = [\n _createElementVNode(\"span\", { class: \"ld-card__happy-hour-bagde-text\" }, \" HAPPY HOUR: BonusovĂ˝ kĂłd najdete ve hĹ™e na TV\", -1)\n ])))\n : _createCommentVNode(\"\", true)\n ], 10, _hoisted_2))\n }), 128))\n ]))\n : _createCommentVNode(\"\", true)\n}\n}\n\n})","<template>\r\n <div v-if=\"!loading\" class=\"ld-grid\">\r\n <a\r\n v-for=\"(card, index) in cards\"\r\n :key=\"card.tableId\"\r\n :href=\"card.url\"\r\n :class=\"[\r\n 'game-launcher ld-card__wrapper',\r\n {\r\n 'ld-card__wrapper--disabled': cardIsDisabled(card),\r\n },\r\n ]\"\r\n :data-game-id=\"card.externalId\"\r\n data-money-mode=\"true\"\r\n @click=\"handleAnalytics(card, index + 1)\"\r\n >\r\n <div class=\"ld-card\">\r\n <div class=\"ld-card__header\">\r\n <div class=\"ld-card__header-text\">\r\n <h3 class=\"ld-card__game-name\">\r\n {{ card.name }}\r\n </h3>\r\n <p class=\"ld-card__dealer-name\">\r\n {{ card.liveData?.dealerName ?? \"\" }}\r\n </p>\r\n </div>\r\n <div class=\"ds-badge\">\r\n <p v-if=\"card.isAvailableNonstop\" class=\"ds-badge__text\">24/7</p>\r\n <p v-else class=\"ds-badge__text\">\r\n {{ card.availableFrom }} –\r\n {{ card.availableTo }}\r\n </p>\r\n </div>\r\n </div>\r\n\r\n <img :src=\"card.teaserImage\" class=\"ld-card__img\" alt=\"\" />\r\n\r\n <div class=\"ld-card__bottom\">\r\n <div class=\"ld-card__payout\">\r\n <DsIcon name=\"bet-amount-thin\" :width=\"16\" :height=\"16\" />\r\n <span class=\"ld-card__payout-prize\"\r\n >{{ StringUtils.formatCurrency(card.minWager, false) }}\r\n <span class=\"ld-card__payout-hyphen\">–</span>\r\n {{ StringUtils.formatCurrency(card.maxWager, false) }}</span\r\n >\r\n </div>\r\n <LdProductCardCapacity\r\n v-if=\"\r\n card.liveData?.playersCount !== null &&\r\n card.liveData?.playersCount !== undefined &&\r\n card.tableSeats\r\n \"\r\n :card=\"card\"\r\n :available-seats=\"card.tableSeats\"\r\n />\r\n <LdProductCardRoulette\r\n v-else-if=\"\r\n card.liveData?.tableResults !== null &&\r\n card.liveData?.tableResults !== undefined &&\r\n card.liveData?.tableResults.length\r\n \"\r\n :numbers=\"card.liveData.tableResults\"\r\n />\r\n </div>\r\n\r\n <div v-if=\"cardIsDisabled(card)\" class=\"ld-card__overlay\">\r\n <p\r\n v-if=\"!card.liveData.isCurrentlyAvailable || !card.isAvailable\"\r\n v-html=\"card.unavailableTableText\"\r\n class=\"ld-card__overlay-text\"\r\n ></p>\r\n <p v-else v-html=\"card.disabledTableText\" class=\"ld-card__overlay-text\"></p>\r\n </div>\r\n </div>\r\n\r\n <div v-if=\"showHappyHourBagde(card) && isHappyHourTime\" class=\"ld-card__happy-hour-bagde\">\r\n <span class=\"ld-card__happy-hour-bagde-text\"> HAPPY HOUR: BonusovĂ˝ kĂłd najdete ve hĹ™e na TV</span>\r\n </div>\r\n </a>\r\n </div>\r\n</template>\r\n\r\n<script lang=\"ts\" setup>\r\nimport { onMounted, onUnmounted, ref, watch } from \"vue\";\r\nimport { StringUtils } from \"@sazka/utils/string-utils\";\r\nimport { showAlert } from \"@sazka/design-system/src/modal-alert/mount-alert\";\r\nimport { fetchLiveDealerGames } from \"@/live-dealer/live-dealer-api\";\r\nimport { LiveDealerAnalytics } from \"@/live-dealer/live-dealer-analytics\";\r\nimport { LiveDealerGame } from \"@/live-dealer/models/live-dealer-game\";\r\nimport { useLiveDealerCards } from \"./live-dealer-cards\";\r\nimport { useNgSession } from \"@sazka/ng/ng-session\";\r\nimport { usePublicHub } from \"../../../../workers/notifications/websocket/public-hub\";\r\nimport { ServerSubscribeArguments } from \"../../../../workers/notifications/websocket/models/server-subscribe-argument\";\r\nimport { LiveDealerTablesDto } from \"../../../../workers/notifications/websocket/models/listen-models\";\r\nimport LdProductCardCapacity from \"./ld-product-card-capacity.vue\";\r\nimport DsIcon from \"@sazka/design-system/src/icon/ds-icon.vue\";\r\nimport LdProductCardRoulette from \"./ld-product-card-roulette.vue\";\r\nimport { useDayjs } from \"@sazka/utils/dayjs\";\r\n\r\nconst { dayjs } = useDayjs();\r\n\r\nconst { isLoggedIn } = useNgSession();\r\nconst { cards, updateCards } = useLiveDealerCards();\r\nconst publicHub = usePublicHub();\r\n\r\nconst loading = ref(true);\r\nconst error = ref();\r\n\r\nconst cardIsDisabled = (card: LiveDealerGame) => {\r\n if (!card.isEnabled) {\r\n return true;\r\n }\r\n\r\n if (card.liveData?.isCurrentlyAvailable != undefined) {\r\n return !card.liveData.isCurrentlyAvailable;\r\n }\r\n\r\n return !card.isAvailable;\r\n};\r\n\r\nconst fetchGames = async () => {\r\n try {\r\n cards.value = (await fetchLiveDealerGames()) ?? [];\r\n } catch (e) {\r\n console.error(\"Failed to fetch live dealer games:\", e);\r\n error.value = e;\r\n showAlert({\r\n title: \"Vyskytla se chyba\",\r\n subText: \"NepodaĹ™ilo se nám naÄŤĂst Hry live, zkuste to prosĂm znovu pozdÄ›ji.\",\r\n });\r\n } finally {\r\n loading.value = false;\r\n }\r\n};\r\n\r\nfetchGames();\r\n\r\nconst hideSkeletons = () => {\r\n const skeletonGrid = document.getElementById(\"ld-grid-skeletons\");\r\n if (skeletonGrid) {\r\n skeletonGrid.classList.add(\"hidden\");\r\n }\r\n};\r\n\r\nconst showHappyHourBagde = (card: LiveDealerGame): boolean => {\r\n const selectedIds = [\"113241\", \"113320\", \"113242\"];\r\n\r\n if (cardIsDisabled(card)) return false;\r\n if (!selectedIds.includes(card.tableId)) return false;\r\n return true;\r\n};\r\n\r\nconst START_HOUR = 20;\r\nconst END_HOUR = 2;\r\nconst isHappyHourTime = ref(false);\r\n\r\nconst calculateHappyHourTime = () => {\r\n const localDate = dayjs();\r\n const day = localDate.day();\r\n const hours = localDate.hour();\r\n\r\n const isTuesday = (day == 2 && hours >= START_HOUR) || (day == 3 && hours < END_HOUR);\r\n const isThursday = (day == 4 && hours >= START_HOUR) || (day == 5 && hours < END_HOUR);\r\n const isSunday = (day == 0 && hours >= START_HOUR) || (day == 1 && hours < END_HOUR);\r\n\r\n isHappyHourTime.value = isTuesday || isThursday || isSunday;\r\n};\r\n\r\ncalculateHappyHourTime();\r\nconst timer = setInterval(calculateHappyHourTime, 5000);\r\n\r\nwatch(loading, (newVal) => {\r\n if (!newVal) {\r\n hideSkeletons();\r\n }\r\n});\r\n\r\nconst getEmptySeats = (card: LiveDealerGame) => {\r\n if (typeof card.tableSeats !== \"number\" || typeof card.liveData?.playersCount !== \"number\") {\r\n return null;\r\n }\r\n return `${card.tableSeats - card.liveData.playersCount}`;\r\n};\r\n\r\nwatch(isLoggedIn, async (newVal) => {\r\n if (newVal) {\r\n console.log(\"USER IS NOT LOGGED IN, DISCONNECTING FROM PUBLIC HUB\");\r\n await publicHub.disconnect();\r\n } else {\r\n console.log(\"USER IS LOGGED IN, CONNECTING TO PUBLIC HUB\");\r\n await publicHub.connect();\r\n await publicHub.subscribe(ServerSubscribeArguments.LiveDealer);\r\n publicHub.listen<LiveDealerTablesDto>(\"LiveDealerTables\", (data) => {\r\n console.log(\"NEW 'LiveDealerTables' DATA FROM PUBLIC HUB:\", data);\r\n updateCards(data.tables);\r\n });\r\n }\r\n});\r\n\r\nonMounted(async () => {\r\n if (!isLoggedIn.value) {\r\n console.log(\"CONNECTING TO PUBLIC HUB\");\r\n await publicHub.connect();\r\n await publicHub.subscribe(ServerSubscribeArguments.LiveDealer);\r\n publicHub.listen<LiveDealerTablesDto>(\"LiveDealerTables\", (data) => {\r\n console.log(\"NEW 'LiveDealerTables' DATA FROM PUBLIC HUB:\", data);\r\n updateCards(data.tables);\r\n });\r\n }\r\n});\r\n\r\nonUnmounted(() => {\r\n clearInterval(timer);\r\n});\r\n\r\nonbeforeunload = () => {\r\n console.log(\"PAGE UNLOADING, DISCONNECTING FROM PUBLIC HUB\");\r\n publicHub.disconnect();\r\n};\r\n\r\nconst handleAnalytics = (card: LiveDealerGame, position: number) => {\r\n LiveDealerAnalytics.pushGameCardClickFeed(card, position.toString(), getEmptySeats(card));\r\n};\r\n</script>\r\n","import script from \"./_ld-product-cards.vue?vue&type=script&lang=ts&setup=true\"\nexport * from \"./_ld-product-cards.vue?vue&type=script&lang=ts&setup=true\"\n\nconst __exports__ = script;\n\nexport default __exports__"],"names":["t","e","module","exports","this","n","r","i","s","u","a","o","c","f","h","d","l","$","y","M","name","weekdays","split","months","ordinal","m","String","length","Array","join","v","z","utcOffset","Math","abs","floor","date","year","month","clone","add","ceil","p","w","D","ms","Q","toLowerCase","replace","g","S","_","O","args","arguments","b","locale","$L","utc","$u","x","$x","$offset","parse","prototype","$d","Date","NaN","test","match","substring","UTC","init","$y","getFullYear","$M","getMonth","$D","getDate","$W","getDay","$H","getHours","$m","getMinutes","$s","getSeconds","$ms","getMilliseconds","$utils","isValid","toString","isSame","startOf","endOf","isAfter","isBefore","$g","set","unix","valueOf","getTime","toDate","apply","slice","$locale","weekStart","$set","min","daysInMonth","get","Number","round","subtract","format","invalidDate","meridiem","monthsShort","weekdaysMin","weekdaysShort","getTimezoneOffset","diff","toJSON","toISOString","toUTCString","k","forEach","extend","$i","isDayjs","en","Ls","default","yearStart","formats","LT","LTS","L","LL","LLL","LLLL","relativeTime","future","past","mm","hh","dd","MM","yy","LiveDealerAnalytics","pushPageReady","window","dataLayer","push","page","type","kind","verticalCode","LiveDealerAvailability","pushGameCardClickFeed","game","position","emptySeats","_game$codeName","_game$maxWager$toStri","_game$maxWager","_game$minWager$toStri","_game$minWager","_game$liveData$dealer","_game$liveData","_game$name","_game$provider","_game$tableSeats$toSt","_game$tableSeats","_game$liveData$player","_game$liveData2","_game$availableFrom","_game$availableTo","event","action","show","products","gameCode","codeName","placement","maxBet","maxWager","minBet","minWager","availability","isAvailableNonstop","fulltime","bounded","croupierName","liveData","dealerName","tableCapacity","tableName","tableProvider","provider","tableSeats","tablePlayers","playersCount","operationHoursStart","availableFrom","operationHoursEnd","availableTo","pushGameCardClick","pushCloseOnboardingTutorial","pushNavigationClick","click","eventProperty2","pushClickGame","pushClickMoreGames","pushPlayVideo","pushBannerImpression","codeName1","height1","creative1","codeName2","height2","creative2","impress","promos","id","creative","pushBannerClick","height","cards","ref","useLiveDealerCards","updateCards","tables","tableUpdate","matchingCard","value","find","card","tableId","_tableUpdate$dealerNa","_tableUpdate$isCurren","_tableUpdate$playersC","_tableUpdate$tableRes","isCurrentlyAvailable","tableResults","useDayjs","dayjs","StringUtils","stringReverse","str","reverse","getPlainTextFromHtml","htmlText","tempDiv","document","createElement","innerHTML","textContent","innerText","sanitizeString","input","trim","formatNumber","useNbsp","toFixed","preComma","postComma","formatCurrency","isNaN","limitTextLength","text","limit","liveDealerHttpClient","axios","create","baseURL","async","fetchLiveDealerGames","response","data","usePublicHub","client","connected","connect","NotificationServerClient","appSettings","HubEndpoint","Public","environment","env","console","log","err","error","disconnect","subscribe","invoke","serverArgument","listen","method","callback","warn","_hoisted_1","class","_defineComponent","__name","props","setup","__props","capacityIconIsActive","_card$liveData","_card$liveData2","isAvailable","isEnabled","_ctx","_cache","_openBlock","_createElementBlock","_Fragment","_renderList","_createBlock","DsIcon","key","width","_normalizeClass","__exports__","numbers","numberedItems","computed","map","num","index","number","getRouletteColor","parseInt","item","_toDisplayString","_hoisted_2","_hoisted_3","_hoisted_4","_hoisted_5","_hoisted_6","_hoisted_7","_hoisted_8","_hoisted_9","_hoisted_10","_hoisted_11","_hoisted_12","_hoisted_13","_hoisted_14","_hoisted_15","_hoisted_16","_hoisted_17","_hoisted_18","START_HOUR","END_HOUR","isLoggedIn","useNgSession","publicHub","loading","cardIsDisabled","undefined","fetchGames","_await$fetchLiveDeale","showAlert","title","subText","hideSkeletons","skeletonGrid","getElementById","classList","showHappyHourBagde","selectedIds","includes","isHappyHourTime","calculateHappyHourTime","localDate","day","hours","hour","isTuesday","isThursday","isSunday","timer","setInterval","watch","newVal","getEmptySeats","ServerSubscribeArguments","LiveDealer","onMounted","onUnmounted","clearInterval","onbeforeunload","handleAnalytics","_createCommentVNode","_unref","_card$liveData$dealer","_card$liveData3","_card$liveData4","_card$liveData5","_card$liveData6","_card$liveData7","_card$liveData8","href","url","externalId","onClick","$event","_createElementVNode","src","teaserImage","alt","_createVNode","_createTextVNode","LdProductCardCapacity","LdProductCardRoulette","disabledTableText","unavailableTableText"],"sourceRoot":""}