accessibleprimevue
Version:
Note: This is the forked version of the Primefaces/PrimeVue repository. Since V3 has reached its EOL this is use to fix identified accessibility bugs in the v3 version of primevue. PrimeVue is an open source UI library for Vue featuring a rich set of 80+
2 lines (1 loc) • 4.42 kB
JavaScript
"use strict";var e=require("primevue/basecomponent"),t=require("primevue/metergroup/style"),l=require("vue");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=n(e),a={name:"MeterGroup",extends:r.default,props:{value:{type:Array,default:null},min:{type:Number,default:0},max:{type:Number,default:100},orientation:{type:String,default:"horizontal"},labelPosition:{type:String,default:"end"},labelOrientation:{type:String,default:"horizontal"}},style:n(t).default,provide:function(){return{$parentInstance:this}}},o={name:"MeterGroupLabel",hostName:"MeterGroup",extends:r.default,inheritAttrs:!1,props:{value:{type:Array,default:null},labelPosition:{type:String,default:"end"},labelOrientation:{type:String,default:"horizontal"}}};o.render=function(e,t,n,r,a,o){return l.openBlock(),l.createElementBlock("ol",l.mergeProps({class:e.cx("labellist")},e.ptm("labellist")),[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(n.value,(function(t,n){return l.openBlock(),l.createElementBlock("li",l.mergeProps({key:n+"_label",class:e.cx("labellistitem")},e.ptm("labellistitem")),[l.renderSlot(e.$slots,"icon",{value:t,class:l.normalizeClass(e.cx("labelicon"))},(function(){return[t.icon?(l.openBlock(),l.createElementBlock("i",l.mergeProps({key:0,class:[t.icon,e.cx("labelicon")],style:{color:t.color}},e.ptm("labelicon")),null,16)):(l.openBlock(),l.createElementBlock("span",l.mergeProps({key:1,class:e.cx("labellisttype"),style:{backgroundColor:t.color}},e.ptm("labellisttype")),null,16))]})),l.createElementVNode("span",l.mergeProps({class:e.cx("label")},e.ptm("label")),l.toDisplayString(t.label)+" ("+l.toDisplayString(e.$parentInstance.percentValue(t.value))+")",17)],16)})),128))],16)};var i={name:"MeterGroup",extends:a,inheritAttrs:!1,methods:{getPTOptions:function(e,t,l){return this.ptm(e,{context:{value:t,index:l}})},percent:function(){return Math.round(Math.max(0,Math.min(100,((arguments.length>0&&void 0!==arguments[0]?arguments[0]:0)-this.min)/(this.max-this.min)*100)))},percentValue:function(e){return this.percent(e)+"%"},meterCalculatedStyles:function(e){return{backgroundColor:e.color,width:"horizontal"===this.orientation&&this.percentValue(e.value),height:"vertical"===this.orientation&&this.percentValue(e.value)}}},computed:{totalPercent:function(){return this.percent(this.value.reduce((function(e,t){return e+t.value}),0))},percentages:function(){var e=0,t=[];return this.value.forEach((function(l){t.push(e+=l.value)})),t}},components:{MeterGroupLabel:o}},u=["aria-valuemin","aria-valuemax","aria-valuenow"];i.render=function(e,t,n,r,a,o){var i=l.resolveComponent("MeterGroupLabel");return l.openBlock(),l.createElementBlock("div",l.mergeProps({class:e.cx("root"),role:"meter","aria-valuemin":e.min,"aria-valuemax":e.max,"aria-valuenow":o.totalPercent},e.ptmi("root")),["start"===e.labelPosition?l.renderSlot(e.$slots,"label",{key:0,value:e.value,totalPercent:o.totalPercent,percentages:o.percentages},(function(){return[l.createVNode(i,{value:e.value,labelPosition:e.labelPosition,labelOrientation:e.labelOrientation,unstyled:e.unstyled,pt:e.pt},null,8,["value","labelPosition","labelOrientation","unstyled","pt"])]})):l.createCommentVNode("",!0),l.renderSlot(e.$slots,"start",{value:e.value,totalPercent:o.totalPercent,percentages:o.percentages}),l.createElementVNode("div",l.mergeProps({class:e.cx("metercontainer")},e.ptm("metercontainer")),[(l.openBlock(!0),l.createElementBlock(l.Fragment,null,l.renderList(e.value,(function(t,n){return l.renderSlot(e.$slots,"meter",{key:n,value:t,index:n,class:l.normalizeClass(e.cx("meter")),orientation:e.orientation,size:o.percentValue(t.value),totalPercent:o.totalPercent},(function(){return[o.percent(t.value)?(l.openBlock(),l.createElementBlock("span",l.mergeProps({key:0,class:e.cx("meter"),style:o.meterCalculatedStyles(t)},o.getPTOptions("meter",t,n)),null,16)):l.createCommentVNode("",!0)]}))})),128))],16),l.renderSlot(e.$slots,"end",{value:e.value,totalPercent:o.totalPercent,percentages:o.percentages}),"end"===e.labelPosition?l.renderSlot(e.$slots,"label",{key:1,value:e.value,totalPercent:o.totalPercent,percentages:o.percentages},(function(){return[l.createVNode(i,{value:e.value,labelPosition:e.labelPosition,labelOrientation:e.labelOrientation,unstyled:e.unstyled,pt:e.pt},null,8,["value","labelPosition","labelOrientation","unstyled","pt"])]})):l.createCommentVNode("",!0)],16,u)},module.exports=i;