UNPKG

@farris/ui-vue

Version:

Farris Vue, a Farris Design based Vue3 component library.

2 lines (1 loc) 5.89 kB
(function(r,c){typeof exports=="object"&&typeof module<"u"?c(exports,require("../../components/rate/index.umd.js"),require("../../components/common/index.umd.js"),require("vue"),require("../../components/designer-canvas/index.umd.js"),require("../../components/dynamic-resolver/index.umd.js")):typeof define=="function"&&define.amd?define(["exports","../../components/rate/index.umd.js","../../components/common/index.umd.js","vue","../../components/designer-canvas/index.umd.js","../../components/dynamic-resolver/index.umd.js"],c):(r=typeof globalThis<"u"?globalThis:r||self,c(r.rate={},r.FRate,r.common,r.Vue,r.designerCanvas,r.dynamicResolver))})(this,function(r,c,q,e,R,T){"use strict";const w={size:{type:String,default:"large"},enableHalf:{type:Boolean,default:!1},enableClear:{type:Boolean,default:!1},disabled:{type:Boolean,default:!1},pointSystem:{type:Number,default:5},lightColor:{type:String,default:""},darkColor:{type:String,default:""},iconClass:{type:String,default:"f-icon-star"},numOfStar:{type:Number,default:5},toolTipDisabled:{type:Boolean,default:!0},toolTipContents:{type:Array,default:["很不满意","不满意","一般","满意","非常满意"]},enableScore:{type:Boolean,default:!0},enableSatisfaction:{type:Boolean,default:!1},modelValue:{type:Number,default:0}},m=e.defineComponent({name:"FRateDesign",props:w,emits:["selectedValue"],setup(n,i){const a=e.ref(n.size),S=e.ref(n.enableHalf),F=e.ref(n.enableClear),L=e.ref(n.disabled),P=e.ref(n.pointSystem),z=e.ref(n.lightColor),H=e.ref(n.darkColor),N=e.ref(n.iconClass),C=e.ref(n.numOfStar),W=e.ref(n.toolTipDisabled),V=e.ref(n.toolTipContents),X=e.ref(n.enableScore),$=e.ref(n.enableSatisfaction);let s;const d=e.ref(1);let u=0;const f=e.ref(0),l=e.ref(0);let p=1,g,y,v;const x=4,j=e.ref(),_=e.inject("design-item-context"),k=R.useDesignerComponent(j,_);e.onMounted(()=>{j.value.componentInstance=k}),i.expose(k.value),e.onMounted(()=>{});function E(){const t=C.value;v=[];for(let o=1;o<=t;o++)v.push({id:o})}function Y(){let t;S.value?t=Math.ceil(l.value/p):t=l.value,u=(s*l.value+Math.floor(l.value)*x)/p,g=V.value[t-1]}function G(){switch(a.value){case"small":s=14;break;case"middle":s=16;break;case"large":s=18;break;case"extraLarge":s=24;break}E(),C.value&&(p=P.value/C.value),l.value&&Y()}G();function J(t){return t.className.indexOf("f-icon")!==-1}function K(){return d.value===u&&F&&u!==0?(u=0,l.value=0,y=null,d.value=0,f.value=0,i.emit("selectedValue",l.value),!0):!1}function Q(t,o,M){if(t.movementX||t.movementY){if(L.value)return;$.value&&(g=V.value[o-1]),t.offsetX<s/2&&S.value===!0?(d.value=s*o-s/2+x*(o-1),f.value=p*o-p/2):(d.value=s*o+x*(o-1),f.value=p*o)}if(M===!0){if(K())return;l.value=f.value,u=d.value,y=g,i.emit("selectedValue",l.value)}}function b(t,o){if(J(t.target)&&t.target){const M=parseInt(t.target.id);Q(t,M,o)}}const U=e.computed(()=>f.value?f.value+"分":l.value+"分"),Z=e.computed(()=>({width:(d.value||u)+"px"}));return()=>e.createVNode("div",{class:"farris-star-rating",ref:j,onMouseover:e.withModifiers(t=>b(t,!1),["prevent"]),onMousemove:e.withModifiers(t=>b(t,!1),["prevent"]),onMouseout:e.withModifiers(t=>b(t,!1),["prevent"]),onClick:e.withModifiers(t=>b(t,!0),["prevent"])},[e.createVNode("div",{class:"star-light-area",style:Z.value},[v.map(t=>e.createVNode("span",{class:["f-icon default-light-color ",N.value,{"f-star-sm":a.value==="small"},{"f-star-md":a.value==="middle"},{"f-star-lg":a.value==="large"},{"f-star-exlarge":a.value==="extraLarge"},{disabled:W.value}],id:t.id,style:{color:z.value}},null))]),e.createVNode("div",{class:["star-dark-area",{small:a.value==="small"},{middle:a.value==="middle"},{large:a.value==="large"}]},[v.map(t=>e.createVNode("span",{class:["f-icon default-dark-color",N.value,{"f-star-sm":a.value==="small"},{"f-star-md":a.value==="middle"},{"f-star-lg":a.value==="large"},{"f-star-exlarge":a.value==="extraLarge"}],id:t.id,style:{color:H.value}},null))]),e.createVNode("div",{class:["f-utils-fill",{"font-small":a.value==="small"},{"font-middle":a.value==="middle"},{"font-large":a.value==="large"},{"font-exlarge":a.value==="extraLarge"}]},[X.value&&e.createVNode("span",null,[e.createTextVNode(" "),U.value,e.createTextVNode(" ")]),$.value&&(y||g)&&e.createVNode("span",null,[e.createTextVNode(" "),g||y])])])}}),D=new Map([["appearance",T.resolveAppearance]]);function O(n,i,a){return i}const B={$schema:"https://json-schema.org/draft/2020-12/schema",$id:"https://farris-design.gitee.io/rate.schema.json",title:"rate",description:"A Farris Component",type:"object",properties:{id:{description:"The unique identifier for rate",type:"string"},type:{description:"The type string of rate",type:"string",default:"rate"},appearance:{description:"",type:"object",properties:{class:{type:"string"},style:{type:"string"}},default:{}},binding:{description:"",type:"object",default:{}},disable:{type:"string",default:!1},editable:{description:"",type:"boolean",default:!0},placeholder:{description:"",type:"string",default:""},readonly:{description:"",type:"boolean",default:!1},require:{description:"",type:"boolean",default:!1},tabindex:{description:"",type:"number",default:-1},visible:{description:"",type:"boolean",default:!0}},required:["id","type"],ignore:["id","appearance","binding"]},I={title:"rate",description:"A Farris Component",type:"object",categories:{basic:{description:"Basic Infomation",title:"基本信息",properties:{id:{description:"组件标识",title:"标识",type:"string",readonly:!0},type:{description:"组件类型",title:"控件类型",type:"select",editor:{type:"waiting for modification",enum:[]}}}}}},h=T.createPropsResolver(c.rateProps,B,D,O,I);m.register=(n,i,a,S)=>{n.rate=c,i.rate=h},m.registerDesigner=(n,i,a)=>{n.rate=m,i.rate=h};const A=q.withInstall(m);r.FRateDesign=m,r.default=A,r.propsResolver=h,Object.defineProperties(r,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});