thedrummeraki/tanoshimu

View on GitHub
public/js/rating.min.js

Summary

Maintainability
A
0 mins
Test Coverage
!function(){"use strict";function t(t,i,n,e){function r(t,i){for(var n=0;n<t.length;n++){var e=t[n];i(e,n)}}function a(t){s(t),o(t),u(t)}function s(t){t.addEventListener("mouseover",function(i){r(f,function(i,n){n<=parseInt(t.getAttribute("data-index"))?i.classList.add("is-active"):i.classList.remove("is-active")})})}function o(t){t.addEventListener("mouseout",function(t){-1===f.indexOf(t.relatedTarget)&&c(null,!1)})}function u(t){t.addEventListener("click",function(i){i.preventDefault(),c(parseInt(t.getAttribute("data-index"))+1,!0)})}function c(t,a){t&&0>t||t>n||(void 0===a&&(a=!0),i=t||i,r(f,function(t,n){i>n?t.classList.add("is-active"):t.classList.remove("is-active")}),e&&a&&e(d()))}function d(){return i}var f=[];return function(){if(!t)throw Error("No element supplied.");if(!n)throw Error("No max rating supplied.");if(i||(i=0),0>i||i>n)throw Error("Current rating is out of bounds.");for(var e=0;n>e;e++){var r=document.createElement("li");r.classList.add("c-rating__item"),r.setAttribute("data-index",e),i>e&&r.classList.add("is-active"),t.appendChild(r),f.push(r),a(r)}}(),{setRating:c,getRating:d}}window.rating=t}();