{"version":3,"file":"js/4513.20ebcff049f6d6e9.js","mappings":"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","sources":["webpack://@sazka/web/./js/app/search/_show-more.ts","webpack://@sazka/web/../../libs/utils/debounce.ts"],"sourcesContent":["import { WebpHelper } from \"@sazka/utils/webp-helper\";\r\nimport $ from \"jquery\";\r\nimport { BaseSearchResult } from \"./model/base-search-result\";\r\nimport { GameSearchResult } from \"./model/game-search-result\";\r\nimport { debounce } from \"@sazka/utils/debounce\";\r\n\r\n$(() => {\r\n initShowMore();\r\n});\r\n\r\nfunction alignShowMoreButtonHeight() {\r\n const last = $(\".search-box-other-wrapper\").last();\r\n\r\n if (!last) return;\r\n\r\n let h = last.height() - 60;\r\n\r\n if (h < 60) h = 60;\r\n\r\n const container = $(\"#show-more-items-container\");\r\n container.height(h).removeClass(\"left\").removeClass(\"right\");\r\n\r\n if ($(\".search-box-other-wrapper\").length % 2 == 0) {\r\n container.addClass(\"left\");\r\n } else {\r\n container.addClass(\"right\");\r\n }\r\n}\r\n\r\nfunction addQueryParameter(url, parameterName, parameterValue, atStart = null) {\r\n const replaceDuplicates = true;\r\n let urlhash;\r\n let cl;\r\n if (url.indexOf(\"#\") > 0) {\r\n cl = url.indexOf(\"#\");\r\n urlhash = url.substring(url.indexOf(\"#\"), url.length);\r\n } else {\r\n urlhash = \"\";\r\n cl = url.length;\r\n }\r\n const sourceUrl = url.substring(0, cl);\r\n\r\n const urlParts = sourceUrl.split(\"?\");\r\n let newQueryString = \"\";\r\n\r\n if (urlParts.length > 1) {\r\n const parameters = urlParts[1].split(\"&\");\r\n for (let i = 0; i < parameters.length; i++) {\r\n const parameterParts = parameters[i].split(\"=\");\r\n if (!(replaceDuplicates && parameterParts[0] == parameterName)) {\r\n if (newQueryString == \"\") newQueryString = \"?\";\r\n else newQueryString += \"&\";\r\n newQueryString += parameterParts[0] + \"=\" + (parameterParts[1] ? parameterParts[1] : \"\");\r\n }\r\n }\r\n }\r\n if (newQueryString == \"\") newQueryString = \"?\";\r\n\r\n if (atStart) {\r\n newQueryString =\r\n \"?\" +\r\n parameterName +\r\n \"=\" +\r\n parameterValue +\r\n (newQueryString.length > 1 ? \"&\" + newQueryString.substring(1) : \"\");\r\n } else {\r\n if (newQueryString !== \"\" && newQueryString != \"?\") newQueryString += \"&\";\r\n newQueryString += parameterName + \"=\" + (parameterValue ? parameterValue : \"\");\r\n }\r\n return urlParts[0] + newQueryString + urlhash;\r\n}\r\n\r\nfunction getQueryVariable(variable) {\r\n const query = window.location.search.substring(1);\r\n const vars = query.split(\"&\");\r\n for (let i = 0; i < vars.length; i++) {\r\n const pair = vars[i].split(\"=\");\r\n if (pair[0] == variable) {\r\n return pair[1];\r\n }\r\n }\r\n return null;\r\n}\r\n\r\nfunction initShowMore() {\r\n const nextPageItemsContainer = $(\"#show-more-items-container\");\r\n if (nextPageItemsContainer.length) {\r\n let currentPage = 1;\r\n\r\n nextPageItemsContainer.append(\r\n '<button type=\"button\" class=\"btn-more\" id=\"more-items\">NaÄŤĂst dalšĂ<span class=\"btn btn-outline-light ico-arrow-down\"></span></button>'\r\n );\r\n alignShowMoreButtonHeight();\r\n window.addEventListener(\r\n \"resize\",\r\n debounce(() => {\r\n alignShowMoreButtonHeight();\r\n }, 100)\r\n );\r\n\r\n $(\"#more-items\").click(function () {\r\n let url = \"api/search/other\";\r\n const pageSize = 9;\r\n //if (url.indexOf(\"?\") < 0)\r\n // url += \"?\";\r\n\r\n url = url.replace(/page=[0-9]+/, \"\");\r\n currentPage++;\r\n //url += \"&page=\" + currentPage;\r\n url = addQueryParameter(url, \"searchText\", getQueryVariable(\"searchtext\"));\r\n url = addQueryParameter(url, \"pageSize\", pageSize);\r\n url = addQueryParameter(url, \"pageNumber\", currentPage);\r\n\r\n $.getJSON(url, function (response) {\r\n // response received\r\n if (!response.hasMoreResults) {\r\n // last page - no more results\r\n $(\"#more-items\").hide();\r\n }\r\n const html = response.data.map((x) => baseTemplate(x)).join(\"\");\r\n // add data\r\n const el = $(\"<div/>\").html(html).contents();\r\n el.parent().find(\".item\").css({ opacity: 0 });\r\n const $container = $(\".items-results .search-box-other-wrapper\").last();\r\n $container.after(el);\r\n alignShowMoreButtonHeight();\r\n });\r\n return false;\r\n });\r\n }\r\n\r\n const nextPageGamesContainer = $(\"#show-more-games-container\");\r\n if (nextPageGamesContainer.length) {\r\n let currentGamePage = 1;\r\n\r\n nextPageGamesContainer.append(\r\n '<button type=\"button\" class=\"btn-more\" id=\"more-games\">NaÄŤĂst dalšĂ<span class=\"btn btn-outline-light ico-arrow-down\"></span></button>'\r\n );\r\n\r\n $(\"#more-games\").click(function () {\r\n let url = \"api/search/games\";\r\n const pageSize = 5;\r\n //if (url.indexOf(\"?\") < 0)\r\n // url += \"?\";\r\n\r\n url = url.replace(/page=[0-9]+/, \"\");\r\n currentGamePage++;\r\n //url += \"&page=\" + currentGamePage;\r\n url = addQueryParameter(url, \"searchText\", getQueryVariable(\"searchtext\"));\r\n url = addQueryParameter(url, \"pageSize\", pageSize);\r\n url = addQueryParameter(url, \"pageNumber\", currentGamePage);\r\n\r\n $.getJSON(url, function (response) {\r\n // response received\r\n if (!response.hasMoreResults) {\r\n // last page - no more results\r\n $(\"#more-games\").hide();\r\n }\r\n\r\n // add data\r\n const html = response.data.map((x) => gameTemplate(x)).join(\"\");\r\n const el = $(\"<div/>\").html(html).contents();\r\n el.parent().find(\".item\").css({ opacity: 0 });\r\n const $container = $(\".games-results .search-box\").last();\r\n $container.after(el);\r\n });\r\n return false;\r\n });\r\n }\r\n}\r\n\r\nfunction baseTemplate(result: BaseSearchResult) {\r\n return `\r\n <div class=\"search-box-other-wrapper\">\r\n <a class=\"search-box\" href=\"${result.searchUrl}\">\r\n <div class=\"search-box-type\">\r\n <span class=\"tag-inner\">${result.searchTag}</span>\r\n </div>\r\n\r\n <div class=\"search-box-content\">\r\n <h3 class=\"search-box-name\">${result.searchTitle}</h3>\r\n ${result.searchContent ?? \"\"}\r\n </div>\r\n </a>\r\n </div>`;\r\n}\r\n\r\nfunction gameTemplate(result: GameSearchResult) {\r\n return `\r\n <div class=\"search-box search-box--no-hover search-box--lottery ${\r\n result.isCasinoGame ? \" search-box--casino\" : \"\"\r\n }\">\r\n <div class=\"search-box__content\">\r\n <a href=\"${result.searchUrl}\" id=\"${result.codeName}-banner\" class=\"product-card lottery\">\r\n <div class=\"inner plc-bg\">\r\n ${\r\n result.searchImageSmall\r\n ? WebpHelper.createPictureTag(\r\n result.searchImageSmall,\r\n `${result.searchImageName} - obrázek`,\r\n \"background-image-big\"\r\n )\r\n : \"\"\r\n }\r\n ${WebpHelper.createPictureTag(\r\n result.searchImage,\r\n `${result.searchImageName} - obrázek`,\r\n \"background-image-big\"\r\n )}\r\n\r\n <div class=\"background-gradient\"></div>\r\n\r\n <div class=\"content-tag\">\r\n\r\n <h3 class=\"title\">${result.searchImageName}</h3>\r\n ${\r\n result.isLottery\r\n ? `\r\n <span class=\"prize-text\">${result.jackpotLabel}</span>\r\n <strong class=\"prize-row\">${result.jackpotText}</strong>\r\n `\r\n : \"\"\r\n }\r\n </div>\r\n </div>\r\n </a>\r\n\r\n <div class=\"search-game-box-content\">\r\n <div class='search-box-type'>\r\n <span class='tag-inner'>${result.searchTag}</span>\r\n </div>\r\n <div class=\"search-game-box-text\">\r\n <h3 class=\"search-box-name\">${result.searchTitle}</h3>\r\n ${result.searchContent ?? \"\"}\r\n </div>\r\n </div>\r\n </div>\r\n\r\n ${result.links?.length ? '<div class=\"search-links\"><div class=\"search-links__links\">' : \"\"}\r\n ${result.links?.length ? result.links.map((x) => `<a class=\"link\" href=\"${x.url}\">${x.text}</a>`).join(\"\") : \"\"}\r\n ${result.links?.length ? \"</div></div>\" : \"\"}\r\n </div>`;\r\n}\r\n","/**\r\n * Debounce function - use like this:\r\n * var handler = debounce(function(){ do the work}, 100);\r\n * $(window).scroll(handler);\r\n * @param func callback function\r\n * @param wait time in milliseconds to wait\r\n * @param immediate\r\n */\r\n\r\ntype CallbackFunction = (...args: any[]) => any;\r\n\r\nexport function debounce<T extends CallbackFunction>(func: T, wait: number, immediate = false) {\r\n let timeout: number | null;\r\n\r\n return function (this: ThisParameterType<T>, ...args: Parameters<T>) {\r\n /* eslint-disable @typescript-eslint/no-this-alias */\r\n const context = this;\r\n const later = function () {\r\n timeout = null;\r\n if (!immediate) func.apply(context, args);\r\n };\r\n const callNow = immediate && !timeout;\r\n clearTimeout(timeout as number);\r\n timeout = window.setTimeout(later, wait);\r\n if (callNow) func.apply(context, args);\r\n };\r\n}\r\n"],"names":["alignShowMoreButtonHeight","last","$","h","height","container","removeClass","length","addClass","addQueryParameter","url","parameterName","parameterValue","atStart","replaceDuplicates","urlhash","cl","indexOf","substring","sourceUrl","urlParts","split","newQueryString","parameters","i","parameterParts","getQueryVariable","variable","query","window","location","search","vars","pair","initShowMore","nextPageItemsContainer","currentPage","append","addEventListener","debounce","click","pageSize","replace","response","hasMoreResults","hide","html","data","map","x","baseTemplate","join","el","contents","parent","find","css","opacity","$container","after","nextPageGamesContainer","currentGamePage","gameTemplate","result","_result$searchContent","searchUrl","searchTag","searchTitle","searchContent","_result$searchContent2","_result$links","_result$links2","_result$links3","isCasinoGame","codeName","searchImageSmall","WebpHelper","createPictureTag","searchImageName","searchImage","isLottery","jackpotLabel","jackpotText","links","text","func","wait","immediate","timeout","args","context","this","later","apply","callNow","clearTimeout","setTimeout"],"sourceRoot":""}