primevue
Version:
[](https://opensource.org/licenses/MIT) [](https://badge.fury.io/js/primevue) [ • 1.92 kB
JavaScript
import{openBlock as e,createElementBlock as n,normalizeClass as t,createCommentVNode as a,Fragment as l,renderList as i,withKeys as d,withModifiers as o}from"vue";var s={name:"Rating",emits:["update:modelValue","change"],props:{modelValue:{type:Number,default:null},disabled:{type:Boolean,default:!1},readonly:{type:Boolean,default:!1},stars:{type:Number,default:5},cancel:{type:Boolean,default:!0}},methods:{onStarClick(e,n){this.readonly||this.disabled||this.updateModel(e,n)},onCancelClick(e){this.readonly||this.disabled||this.updateModel(e,null)},updateModel(e,n){this.$emit("update:modelValue",n),this.$emit("change",{originalEvent:e,value:n})}},computed:{containerClass(){return["p-rating",{"p-readonly":this.readonly,"p-disabled":this.disabled}]},focusIndex(){return this.disabled||this.readonly?null:"0"}}};const r=["tabindex"],c=["onClick","tabindex","onKeydown"];!function(e,n){void 0===n&&(n={});var t=n.insertAt;if(e&&"undefined"!=typeof document){var a=document.head||document.getElementsByTagName("head")[0],l=document.createElement("style");l.type="text/css","top"===t&&a.firstChild?a.insertBefore(l,a.firstChild):a.appendChild(l),l.styleSheet?l.styleSheet.cssText=e:l.appendChild(document.createTextNode(e))}}("\n.p-rating-icon {\n cursor: pointer;\n}\n.p-rating.p-rating-readonly .p-rating-icon {\n cursor: default;\n}\n"),s.render=function(s,u,p,h,m,y){return e(),n("div",{class:t(y.containerClass)},[p.cancel?(e(),n("span",{key:0,class:"p-rating-icon p-rating-cancel pi pi-ban",tabindex:y.focusIndex,onClick:u[0]||(u[0]=(...e)=>y.onCancelClick&&y.onCancelClick(...e))},null,8,r)):a("",!0),(e(!0),n(l,null,i(p.stars,(a=>(e(),n("span",{key:a,onClick:e=>y.onStarClick(e,a),tabindex:y.focusIndex,onKeydown:d(o((e=>y.onStarClick(e,a)),["prevent"]),["enter"]),class:t(["p-rating-icon",{"pi pi-star":a>p.modelValue,"pi pi-star-fill":a<=p.modelValue}])},null,42,c)))),128))],2)};export{s as default};