{"version":3,"names":["$","document","ready","length","pageId","attr","avglimit","Domain","location","hostname","VisitorId","Language","PH6Code","country","ratingData","ajax","type","url","dataType","contentType","data","JSON","stringify","success","status","xhr","Object","keys","userRating","UserRating","avgRating","AverageRating","totalsubmissions","TotalSubmissions","toArray","reverse","Math","round","checked","css","inputstars","i","text","isShowrate","avrate","pagerate","show","x","input_star","k","console","warn","error","window","jQuery","$starRatingContent","$ratingStars","$starLabels","$avgRatingText","$totalSubmissions","$ratingPageId","$ratingLimitId","$visitorId","$contextLangId","$productName","$productCountry","$ratingStarsTitle","$ratingStarsAverageWrap","$ratingStarsAverageNumber","on","$element","bodyObj","this","Rating","parseInt","val","PageUrl","pathname","SiteDomain","PageItemId","PageLanguage","toLowerCase","Name","Country"],"sources":["assets/feature/RatingsReviews/Rating/js/_displayRating.js"],"sourcesContent":["(function ($) {\r\n $(document).ready(function () {\r\n // Check if either of the rating sections is present\r\n if ($('.star-rating-content').length > 0 || $('.rating-stars').length > 0) {\r\n\r\n // Define API URL and other data for the request\r\n var apiUrl = '/api/rating/GetRating';\r\n var pageId = $('#ratingpageID').attr('data-rating');\r\n var avglimit = $('#ratingLimitID').attr('data-average');\r\n var Domain = document.location.hostname;\r\n var VisitorId = $('#visitorID').attr('data-visitor');\r\n var Language = $('#contextLangID').attr('data-clang');\r\n var PH6Code = $(\"#productName\").attr(\"data-product\");\r\n var country = $(\"#productCountry\").attr(\"data-product\");\r\n\r\n // Prepare the request data\r\n var ratingData = {\r\n Domain: Domain,\r\n VisitorId: VisitorId,\r\n Language: Language,\r\n pageId: pageId,\r\n country: country,\r\n PH6Code: PH6Code\r\n };\r\n\r\n // Make AJAX request to fetch the rating data\r\n $.ajax({\r\n type: 'POST',\r\n url: apiUrl,\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n data: JSON.stringify(ratingData),\r\n success: function (data, status, xhr) {\r\n if (!data || Object.keys(data).length === 0) {\r\n console.warn(\"Empty or missing response from server.\");\r\n return;\r\n }\r\n // Handle if there is a .star-rating-content section\r\n if ($('.star-rating-content').length > 0) {\r\n var userRating = data.UserRating;\r\n var avgRating = data.AverageRating;\r\n var totalsubmissions = data.TotalSubmissions;\r\n\r\n // Check if the visitor has already rated\r\n if (data.VisitorId === VisitorId) {\r\n if (userRating !== 0) {\r\n var stars = $(\".star-rating input.star\").toArray().reverse();\r\n var rating = Math.round(avgRating);\r\n stars[rating - 1].checked = true;\r\n $(\".star-rating label\").css(\"pointer-events\", \"none\");\r\n }\r\n } else {\r\n // Reset all star ratings if not the same visitor\r\n var inputstars = $(\".star-rating input.star\");\r\n for (var i = 0; i < inputstars.length; i++) {\r\n inputstars[i].checked = false;\r\n }\r\n }\r\n\r\n // Update average rating and submission count\r\n $('.avg-rating').text(avgRating);\r\n $('.total-submissions').text(totalsubmissions);\r\n }\r\n // Handle if there is a .rating-stars section\r\n else {\r\n var isShowrate = false;\r\n var avrate = data.AverageRating;\r\n var pagerate = data.UserRating;\r\n var votelimit = data.TotalSubmissions;\r\n\r\n // Show rating if submissions are above the limit\r\n if (votelimit >= avglimit) {\r\n isShowrate = true;\r\n }\r\n\r\n if (isShowrate) {\r\n $(\".rating-stars__average-wrap\").show();\r\n $(\".rating-stars__average-number\").text(avrate);\r\n }\r\n\r\n // Check if the current visitor has rated this page\r\n if (VisitorId === data.VisitorId) {\r\n var x = $(\"input.star\").toArray().reverse();\r\n if (pagerate !== 0) {\r\n x[pagerate - 1].checked = true;\r\n }\r\n $(\".star__label\").css(\"pointer-events\", \"none\");\r\n $(\".rating-stars__title\").text($(\".rating-stars__title\").data(\"confirmation-message\"));\r\n } else {\r\n // Reset all star ratings if not the same visitor\r\n var input_star = $(\"input.star\");\r\n for (var k = 0; k < input_star.length; k++) {\r\n input_star[k].checked = false;\r\n }\r\n }\r\n }\r\n },\r\n error: function (xhr, status, error) {\r\n console.error(\"Error fetching rating data: \" + error);\r\n }\r\n });\r\n }\r\n });\r\n}(window.jQuery));\r\n\r\n\r\n(function ($) {\r\n $(document).ready(function () {\r\n // Cache DOM elements to avoid repeated queries\r\n var $starRatingContent = $('.star-rating-content');\r\n var $ratingStars = $('.rating-stars');\r\n var $starLabels = $('.star__label');\r\n var $avgRatingText = $('.avg-rating');\r\n var $totalSubmissions = $('.total-submissions');\r\n var $ratingPageId = $('#ratingpageID');\r\n var $ratingLimitId = $('#ratingLimitID');\r\n var $visitorId = $('#visitorID');\r\n var $contextLangId = $('#contextLangID');\r\n var $productName = $(\"#productName\");\r\n var $productCountry = $(\"#productCountry\");\r\n var $ratingStarsTitle = $(\".rating-stars__title\");\r\n var $ratingStarsAverageWrap = $(\".rating-stars__average-wrap\");\r\n var $ratingStarsAverageNumber = $(\".rating-stars__average-number\");\r\n\r\n // Function to attach the click event to the rating elements\r\n function attachRatingEvent() {\r\n $('.star-rating input[type=radio], .star__label').on('click', function () {\r\n addRating($(this));\r\n });\r\n }\r\n\r\n function addRating($element) {\r\n // Calculate the rating value (6 - the value of the clicked rating)\r\n var ratingValue = 6 - parseInt($element.val() || $element.attr('data-rating'));\r\n\r\n // Collect all required data into the bodyObj\r\n var bodyObj = {\r\n Rating: ratingValue,\r\n PageUrl: document.location.pathname,\r\n SiteDomain: document.location.hostname,\r\n PageItemId: $ratingPageId.data('rating'),\r\n VisitorId: $visitorId.data('visitor'),\r\n PageLanguage: $contextLangId.data('clang').toLowerCase(),\r\n Name: $productName.data('product'),\r\n Country: $productCountry.data('product')\r\n };\r\n\r\n // Send the rating data via AJAX\r\n $.ajax({\r\n type: 'POST',\r\n url: '/api/rating/AddRating',\r\n dataType: \"json\",\r\n contentType: \"application/json\",\r\n data: JSON.stringify(bodyObj),\r\n success: function (data) {\r\n if (!data || Object.keys(data).length === 0) {\r\n console.warn(\"Empty or missing response from server.\");\r\n return;\r\n }\r\n\r\n if ($starRatingContent.length > 0) {\r\n // Update the average rating and total submissions\r\n $avgRatingText.text(data.AverageRating);\r\n $totalSubmissions.text(data.TotalSubmissions);\r\n $(\".star-rating label\").css(\"pointer-events\", \"none\");\r\n } else if ($ratingStars.length > 0) {\r\n // Handle the average rating display\r\n var isShowRate = data.TotalSubmissions >= $ratingLimitId.data('average');\r\n if (isShowRate) {\r\n $ratingStarsAverageWrap.show();\r\n $ratingStarsAverageNumber.text(data.AverageRating);\r\n }\r\n $starLabels.css(\"pointer-events\", \"none\");\r\n $ratingStarsTitle.text($ratingStarsTitle.data(\"confirmation-message\"));\r\n }\r\n },\r\n error: function (xhr, status, error) {\r\n console.error(\"Error submitting rating:\", error);\r\n }\r\n });\r\n }\r\n\r\n // Attach event listeners when document is ready\r\n if ($starRatingContent.length > 0 || $ratingStars.length > 0) {\r\n attachRatingEvent();\r\n }\r\n });\r\n}(window.jQuery));"],"mappings":"CAAC,SAAUA,GACPA,EAAEC,UAAUC,OAAM,WAEd,GAAIF,EAAE,wBAAwBG,OAAS,GAAKH,EAAE,iBAAiBG,OAAS,EAAG,CAGvE,IACIC,EAASJ,EAAE,iBAAiBK,KAAK,eACjCC,EAAWN,EAAE,kBAAkBK,KAAK,gBACpCE,EAASN,SAASO,SAASC,SAC3BC,EAAYV,EAAE,cAAcK,KAAK,gBACjCM,EAAWX,EAAE,kBAAkBK,KAAK,cACpCO,EAAUZ,EAAE,gBAAgBK,KAAK,gBACjCQ,EAAUb,EAAE,mBAAmBK,KAAK,gBAGpCS,EAAa,CACbP,OAAQA,EACRG,UAAWA,EACXC,SAAUA,EACVP,OAAQA,EACRS,QAASA,EACTD,QAASA,GAIbZ,EAAEe,KAAK,CACHC,KAAM,OACNC,IAtBS,wBAuBTC,SAAU,OACVC,YAAa,mBACbC,KAAMC,KAAKC,UAAUR,GACrBS,QAAS,SAAUH,EAAMI,EAAQC,GAC7B,GAAKL,GAAqC,IAA7BM,OAAOC,KAAKP,GAAMjB,OAK/B,GAAIH,EAAE,wBAAwBG,OAAS,EAAG,CACtC,IAAIyB,EAAaR,EAAKS,WAClBC,EAAYV,EAAKW,cACjBC,EAAmBZ,EAAKa,iBAG5B,GAAIb,EAAKV,YAAcA,GACnB,GAAmB,IAAfkB,EACY5B,EAAE,2BAA2BkC,UAAUC,UACtCC,KAAKC,MAAMP,GACT,GAAGQ,SAAU,EAC5BtC,EAAE,sBAAsBuC,IAAI,iBAAkB,aAKlD,IADA,IAAIC,EAAaxC,EAAE,2BACVyC,EAAI,EAAGA,EAAID,EAAWrC,OAAQsC,IACnCD,EAAWC,GAAGH,SAAU,EAKhCtC,EAAE,eAAe0C,KAAKZ,GACtB9B,EAAE,sBAAsB0C,KAAKV,EACjC,KAEK,CACD,IAAIW,GAAa,EACbC,EAASxB,EAAKW,cACdc,EAAWzB,EAAKS,WAcpB,GAbgBT,EAAKa,kBAGJ3B,IACbqC,GAAa,GAGbA,IACA3C,EAAE,+BAA+B8C,OACjC9C,EAAE,iCAAiC0C,KAAKE,IAIxClC,IAAcU,EAAKV,UAAW,CAC9B,IAAIqC,EAAI/C,EAAE,cAAckC,UAAUC,UACjB,IAAbU,IACAE,EAAEF,EAAW,GAAGP,SAAU,GAE9BtC,EAAE,gBAAgBuC,IAAI,iBAAkB,QACxCvC,EAAE,wBAAwB0C,KAAK1C,EAAE,wBAAwBoB,KAAK,wBAClE,MAGI,IADA,IAAI4B,EAAahD,EAAE,cACViD,EAAI,EAAGA,EAAID,EAAW7C,OAAQ8C,IACnCD,EAAWC,GAAGX,SAAU,CAGpC,MA7DIY,QAAQC,KAAK,yCA8DrB,EACAC,MAAO,SAAU3B,EAAKD,EAAQ4B,GAC1BF,QAAQE,MAAM,+BAAiCA,EACnD,GAER,CACJ,GACJ,CAvGA,CAuGEC,OAAOC,QAGR,SAAUtD,GACPA,EAAEC,UAAUC,OAAM,WAEd,IAAIqD,EAAqBvD,EAAE,wBACvBwD,EAAexD,EAAE,iBACjByD,EAAczD,EAAE,gBAChB0D,EAAiB1D,EAAE,eACnB2D,EAAoB3D,EAAE,sBACtB4D,EAAgB5D,EAAE,iBAClB6D,EAAiB7D,EAAE,kBACnB8D,EAAa9D,EAAE,cACf+D,EAAiB/D,EAAE,kBACnBgE,EAAehE,EAAE,gBACjBiE,EAAkBjE,EAAE,mBACpBkE,EAAoBlE,EAAE,wBACtBmE,EAA0BnE,EAAE,+BAC5BoE,EAA4BpE,EAAE,kCA6D9BuD,EAAmBpD,OAAS,GAAKqD,EAAarD,OAAS,IAzDvDH,EAAE,gDAAgDqE,GAAG,SAAS,WAKlE,IAAmBC,EAKXC,EALWD,EAJDtE,EAAEwE,MASZD,EAAU,CACVE,OAJc,EAAIC,SAASJ,EAASK,OAASL,EAASjE,KAAK,gBAK3DuE,QAAS3E,SAASO,SAASqE,SAC3BC,WAAY7E,SAASO,SAASC,SAC9BsE,WAAYnB,EAAcxC,KAAK,UAC/BV,UAAWoD,EAAW1C,KAAK,WAC3B4D,aAAcjB,EAAe3C,KAAK,SAAS6D,cAC3CC,KAAMlB,EAAa5C,KAAK,WACxB+D,QAASlB,EAAgB7C,KAAK,YAIlCpB,EAAEe,KAAK,CACHC,KAAM,OACNC,IAAK,wBACLC,SAAU,OACVC,YAAa,mBACbC,KAAMC,KAAKC,UAAUiD,GACrBhD,QAAS,SAAUH,GACVA,GAAqC,IAA7BM,OAAOC,KAAKP,GAAMjB,OAK3BoD,EAAmBpD,OAAS,GAE5BuD,EAAehB,KAAKtB,EAAKW,eACzB4B,EAAkBjB,KAAKtB,EAAKa,kBAC5BjC,EAAE,sBAAsBuC,IAAI,iBAAkB,SACvCiB,EAAarD,OAAS,IAEZiB,EAAKa,kBAAoB4B,EAAezC,KAAK,aAE1D+C,EAAwBrB,OACxBsB,EAA0B1B,KAAKtB,EAAKW,gBAExC0B,EAAYlB,IAAI,iBAAkB,QAClC2B,EAAkBxB,KAAKwB,EAAkB9C,KAAK,0BAjB9C8B,QAAQC,KAAK,yCAmBrB,EACAC,MAAO,SAAU3B,EAAKD,EAAQ4B,GAC1BF,QAAQE,MAAM,2BAA4BA,EAC9C,GAlDJ,GA0DR,GACJ,CAjFA,CAiFEC,OAAOC","ignoreList":[]}