UNPKG

primevue

Version:

[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT) [![npm version](https://badge.fury.io/js/primevue.svg)](https://badge.fury.io/js/primevue) [![Discord Chat](https://img.shields.io/discord/55794023

2 lines (1 loc) 4.96 kB
"use strict";var e=require("primevue/basecomponent"),n=require("primevue/icons/ban"),t=require("primevue/icons/star"),o=require("primevue/icons/starfill"),a=require("primevue/utils"),l=require("vue");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=i(e),c=i(n),s=i(t),d=i(o),p={name:"Rating",extends:r.default,emits:["update:modelValue","change","focus","blur"],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},onIcon:{type:String,default:void 0},offIcon:{type:String,default:void 0},cancelIcon:{type:String,default:void 0}},data(){return{name:this.$attrs.name,focusedOptionIndex:-1}},watch:{"$attrs.name":function(e){this.name=e||a.UniqueComponentId()}},mounted(){this.name=this.name||a.UniqueComponentId()},methods:{getPTOptions(e,n){return this.ptm(n,{context:{active:e<=this.modelValue,focused:e===this.focusedOptionIndex}})},onOptionClick(e,n){if(!this.readonly&&!this.disabled){this.onOptionSelect(e,n);const t=a.DomHandler.getFirstFocusableElement(e.currentTarget);t&&a.DomHandler.focus(t)}},onFocus(e,n){this.focusedOptionIndex=n,this.$emit("focus",e)},onBlur(e){this.focusedOptionIndex=-1,this.$emit("blur",e)},onChange(e,n){this.onOptionSelect(e,n)},onOptionSelect(e,n){this.focusedOptionIndex=n,this.updateModel(e,n||null)},updateModel(e,n){this.$emit("update:modelValue",n),this.$emit("change",{originalEvent:e,value:n})},cancelAriaLabel(){return this.$primevue.config.locale.clear},starAriaLabel(e){return 1===e?this.$primevue.config.locale.aria.star:this.$primevue.config.locale.aria.stars.replace(/{star}/g,e)}},computed:{containerClass(){return["p-rating",{"p-readonly":this.readonly,"p-disabled":this.disabled}]}},components:{StarFillIcon:d.default,StarIcon:s.default,BanIcon:c.default}};const u=["name","checked","disabled","readonly","aria-label"],m=["onClick"],f=["value","name","checked","disabled","readonly","aria-label","onFocus","onChange"];!function(e,n){void 0===n&&(n={});var t=n.insertAt;if(e&&"undefined"!=typeof document){var o=document.head||document.getElementsByTagName("head")[0],a=document.createElement("style");a.type="text/css","top"===t&&o.firstChild?o.insertBefore(a,o.firstChild):o.appendChild(a),a.styleSheet?a.styleSheet.cssText=e:a.appendChild(document.createTextNode(e))}}("\n.p-rating {\n position: relative;\n display: flex;\n align-items: center;\n}\n.p-rating-item {\n display: inline-flex;\n align-items: center;\n cursor: pointer;\n}\n.p-rating.p-readonly .p-rating-item {\n cursor: default;\n}\n"),p.render=function(e,n,t,o,a,i){return l.openBlock(),l.createElementBlock("div",l.mergeProps({class:i.containerClass},e.ptm("root")),[t.cancel?(l.openBlock(),l.createElementBlock("div",l.mergeProps({key:0,class:["p-rating-item p-rating-cancel-item",{"p-focus":0===a.focusedOptionIndex}],onClick:n[3]||(n[3]=e=>i.onOptionClick(e,0))},e.ptm("cancelItem")),[l.createElementVNode("span",l.mergeProps({class:"p-hidden-accessible"},e.ptm("hiddenCancelInputWrapper")),[l.createElementVNode("input",l.mergeProps({type:"radio",value:"0",name:a.name,checked:0===t.modelValue,disabled:t.disabled,readonly:t.readonly,"aria-label":i.cancelAriaLabel(),onFocus:n[0]||(n[0]=e=>i.onFocus(e,0)),onBlur:n[1]||(n[1]=(...e)=>i.onBlur&&i.onBlur(...e)),onChange:n[2]||(n[2]=e=>i.onChange(e,0))},e.ptm("hiddenCancelInput")),null,16,u)],16),l.renderSlot(e.$slots,"cancelicon",{},(()=>[(l.openBlock(),l.createBlock(l.resolveDynamicComponent(t.cancelIcon?"span":"BanIcon"),l.mergeProps({class:["p-rating-icon p-rating-cancel",t.cancelIcon]},e.ptm("cancelIcon")),null,16,["class"]))]))],16)):l.createCommentVNode("",!0),(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(t.stars,(o=>(l.openBlock(),l.createElementBlock("div",l.mergeProps({key:o,class:["p-rating-item",{"p-rating-item-active":o<=t.modelValue,"p-focus":o===a.focusedOptionIndex}],onClick:e=>i.onOptionClick(e,o)},i.getPTOptions(o,"item")),[l.createElementVNode("span",l.mergeProps({class:"p-hidden-accessible"},e.ptm("hiddenItemInputWrapper")),[l.createElementVNode("input",l.mergeProps({type:"radio",value:o,name:a.name,checked:t.modelValue===o,disabled:t.disabled,readonly:t.readonly,"aria-label":i.starAriaLabel(o),onFocus:e=>i.onFocus(e,o),onBlur:n[4]||(n[4]=(...e)=>i.onBlur&&i.onBlur(...e)),onChange:e=>i.onChange(e,o)},e.ptm("hiddenItemInput")),null,16,f)],16),o<=t.modelValue?l.renderSlot(e.$slots,"onicon",{key:0,value:o},(()=>[(l.openBlock(),l.createBlock(l.resolveDynamicComponent(t.onIcon?"span":"StarFillIcon"),l.mergeProps({class:["p-rating-icon",t.onIcon]},e.ptm("onIcon")),null,16,["class"]))])):l.renderSlot(e.$slots,"officon",{key:1,value:o},(()=>[(l.openBlock(),l.createBlock(l.resolveDynamicComponent(t.offIcon?"span":"StarIcon"),l.mergeProps({class:["p-rating-icon",t.offIcon]},e.ptm("offIcon")),null,16,["class"]))]))],16,m)))),128))],16)},module.exports=p;