UNPKG

jiku-ui

Version:

A Component Library for Vue.js.

2 lines (1 loc) 7.52 kB
module.exports=function(t){var e={};function r(i){if(e[i])return e[i].exports;var a=e[i]={i:i,l:!1,exports:{}};return t[i].call(a.exports,a,a.exports,r),a.l=!0,a.exports}return r.m=t,r.c=e,r.d=function(t,e,i){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:i})},r.r=function(t){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(t,"__esModule",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&"object"==typeof t&&t&&t.__esModule)return t;var i=Object.create(null);if(r.r(i),Object.defineProperty(i,"default",{enumerable:!0,value:t}),2&e&&"string"!=typeof t)for(var a in t)r.d(i,a,function(e){return t[e]}.bind(null,a));return i},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,"a",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p="",r(r.s=125)}({0:function(t,e,r){"use strict";function i(t,e,r,i,a,n,s,o){var l,u="function"==typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=r,u._compiled=!0),i&&(u.functional=!0),n&&(u._scopeId="data-v-"+n),s?(l=function(t){(t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext)||"undefined"==typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),a&&a.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(s)},u._ssrRegister=l):a&&(l=o?function(){a.call(this,(u.functional?this.parent:this).$root.$options.shadowRoot)}:a),l)if(u.functional){u._injectStyles=l;var c=u.render;u.render=function(t,e){return l.call(e),c(t,e)}}else{var h=u.beforeCreate;u.beforeCreate=h?[].concat(h,l):[l]}return{exports:t,options:u}}r.d(e,"a",(function(){return i}))},10:function(t,e){t.exports=require("jiku-ui/lib/mixins/migrating")},125:function(t,e,r){"use strict";r.r(e);var i=function(){var t=this,e=t.$createElement,r=t._self._c||e;return r("div",{staticClass:"hn-rate",attrs:{role:"slider","aria-valuenow":t.currentValue,"aria-valuetext":t.text,"aria-valuemin":"0","aria-valuemax":t.max,tabindex:"0"},on:{keydown:t.handleKey}},[t._l(t.max,(function(e,i){return r("span",{key:i,staticClass:"hn-rate__item",style:{cursor:t.rateDisabled?"auto":"pointer"},on:{mousemove:function(r){return t.setCurrentValue(e,r)},mouseleave:t.resetCurrentValue,click:function(r){return t.selectValue(e)}}},[r("i",{staticClass:"hn-rate__icon",class:[t.classes[e-1],{hover:t.hoverIndex===e}],style:t.getIconStyle(e)},[t.showDecimalIcon(e)?r("i",{staticClass:"hn-rate__decimal",class:t.decimalIconClass,style:t.decimalStyle}):t._e()])])})),t.showText||t.showScore?r("span",{staticClass:"hn-rate__text",style:{color:t.textColor}},[t._v(t._s(t.text))]):t._e()],2)};i._withStripped=!0;var a=r(2),n=r(16),s=r(10),o={name:"HnRate",mixins:[r.n(s).a],inject:{hnForm:{default:""}},data:function(){return{pointerAtLeftHalf:!0,currentValue:this.value,hoverIndex:-1}},props:{value:{type:Number,default:0},lowThreshold:{type:Number,default:2},highThreshold:{type:Number,default:4},max:{type:Number,default:5},colors:{type:[Array,Object],default:function(){return["#F7BA2A","#F7BA2A","#F7BA2A"]}},voidColor:{type:String,default:"#C6D1DE"},disabledVoidColor:{type:String,default:"#EFF2F7"},iconClasses:{type:[Array,Object],default:function(){return["hn-icon-star-on","hn-icon-star-on","hn-icon-star-on"]}},voidIconClass:{type:String,default:"hn-icon-star-off"},disabledVoidIconClass:{type:String,default:"hn-icon-star-on"},disabled:{type:Boolean,default:!1},allowHalf:{type:Boolean,default:!1},showText:{type:Boolean,default:!1},showScore:{type:Boolean,default:!1},textColor:{type:String,default:"#1f2d3d"},texts:{type:Array,default:function(){return["极差","失望","一般","满意","惊喜"]}},scoreTemplate:{type:String,default:"{value}"}},computed:{text:function(){var t="";return this.showScore?t=this.scoreTemplate.replace(/\{\s*value\s*\}/,this.rateDisabled?this.value:this.currentValue):this.showText&&(t=this.texts[Math.ceil(this.currentValue)-1]),t},decimalStyle:function(){var t="";return this.rateDisabled?t=this.valueDecimal+"%":this.allowHalf&&(t="50%"),{color:this.activeColor,width:t}},valueDecimal:function(){return 100*this.value-100*Math.floor(this.value)},classMap:function(){var t;return Array.isArray(this.iconClasses)?((t={})[this.lowThreshold]=this.iconClasses[0],t[this.highThreshold]={value:this.iconClasses[1],excluded:!0},t[this.max]=this.iconClasses[2],t):this.iconClasses},decimalIconClass:function(){return this.getValueFromMap(this.value,this.classMap)},voidClass:function(){return this.rateDisabled?this.disabledVoidIconClass:this.voidIconClass},activeClass:function(){return this.getValueFromMap(this.currentValue,this.classMap)},colorMap:function(){var t;return Array.isArray(this.colors)?((t={})[this.lowThreshold]=this.colors[0],t[this.highThreshold]={value:this.colors[1],excluded:!0},t[this.max]=this.colors[2],t):this.colors},activeColor:function(){return this.getValueFromMap(this.currentValue,this.colorMap)},classes:function(){var t=[],e=0,r=this.currentValue;for(this.allowHalf&&this.currentValue!==Math.floor(this.currentValue)&&r--;e<r;e++)t.push(this.activeClass);for(;e<this.max;e++)t.push(this.voidClass);return t},rateDisabled:function(){return this.disabled||(this.hnForm||{}).disabled}},watch:{value:function(t){this.currentValue=t,this.pointerAtLeftHalf=this.value!==Math.floor(this.value)}},methods:{getMigratingConfig:function(){return{props:{"text-template":"text-template is renamed to score-template."}}},getValueFromMap:function(t,e){var r=Object.keys(e).filter((function(r){var i=e[r];return!!Object(n.isObject)(i)&&i.excluded?t<r:t<=r})).sort((function(t,e){return t-e})),i=e[r[0]];return Object(n.isObject)(i)?i.value:i||""},showDecimalIcon:function(t){var e=this.rateDisabled&&this.valueDecimal>0&&t-1<this.value&&t>this.value,r=this.allowHalf&&this.pointerAtLeftHalf&&t-.5<=this.currentValue&&t>this.currentValue;return e||r},getIconStyle:function(t){var e=this.rateDisabled?this.disabledVoidColor:this.voidColor;return{color:t<=this.currentValue?this.activeColor:e}},selectValue:function(t){this.rateDisabled||(this.allowHalf&&this.pointerAtLeftHalf?(this.$emit("input",this.currentValue),this.$emit("change",this.currentValue)):(this.$emit("input",t),this.$emit("change",t)))},handleKey:function(t){if(!this.rateDisabled){var e=this.currentValue,r=t.keyCode;38===r||39===r?(this.allowHalf?e+=.5:e+=1,t.stopPropagation(),t.preventDefault()):37!==r&&40!==r||(this.allowHalf?e-=.5:e-=1,t.stopPropagation(),t.preventDefault()),e=(e=e<0?0:e)>this.max?this.max:e,this.$emit("input",e),this.$emit("change",e)}},setCurrentValue:function(t,e){if(!this.rateDisabled){if(this.allowHalf){var r=e.target;Object(a.hasClass)(r,"hn-rate__item")&&(r=r.querySelector(".hn-rate__icon")),Object(a.hasClass)(r,"hn-rate__decimal")&&(r=r.parentNode),this.pointerAtLeftHalf=2*e.offsetX<=r.clientWidth,this.currentValue=this.pointerAtLeftHalf?t-.5:t}else this.currentValue=t;this.hoverIndex=t}},resetCurrentValue:function(){this.rateDisabled||(this.allowHalf&&(this.pointerAtLeftHalf=this.value!==Math.floor(this.value)),this.currentValue=this.value,this.hoverIndex=-1)}},created:function(){this.value||this.$emit("input",0)}},l=r(0),u=Object(l.a)(o,i,[],!1,null,null,null);u.options.__file="packages/rate/src/main.vue";var c=u.exports;c.install=function(t){t.component(c.name,c)};e.default=c},16:function(t,e){t.exports=require("jiku-ui/lib/utils/types")},2:function(t,e){t.exports=require("jiku-ui/lib/utils/dom")}}).default;