36 lines
4.0 KiB
JavaScript
36 lines
4.0 KiB
JavaScript
import{H as e,Jt as t,Mt as n,U as r,at as i,bt as a,d as o,gn as s,it as c,kt as l,nt as u,ot as d,p as f,st as p,tt as m,yn as h}from"./client-lOiq7Q_J.js";import{t as g}from"./use-merged-state-DtwURtxQ.js";import{c as _,l as v}from"./_plugin-vue_export-helper-DFB8HrqU.js";import{n as y}from"./use-form-item-Bx8Y8eAa.js";import{J as b}from"./index-C3-4MRIk.js";function x(e){let{railColor:t}=e;return{itemColor:t,itemColorActive:`#FFCC33`,sizeSmall:`16px`,sizeMedium:`20px`,sizeLarge:`24px`}}var S={name:`Rate`,common:o,self:x},C=()=>n(`svg`,{viewBox:`0 0 512 512`},n(`path`,{d:`M394 480a16 16 0 01-9.39-3L256 383.76 127.39 477a16 16 0 01-24.55-18.08L153 310.35 23 221.2a16 16 0 019-29.2h160.38l48.4-148.95a16 16 0 0130.44 0l48.4 149H480a16 16 0 019.05 29.2L359 310.35l50.13 148.53A16 16 0 01394 480z`})),w=u(`rate`,{display:`inline-flex`,flexWrap:`nowrap`},[m(`&:hover`,[c(`item`,`
|
|
transition:
|
|
transform .1s var(--n-bezier),
|
|
color .3s var(--n-bezier);
|
|
`)]),c(`item`,`
|
|
position: relative;
|
|
display: flex;
|
|
transition:
|
|
transform .1s var(--n-bezier),
|
|
color .3s var(--n-bezier);
|
|
transform: scale(1);
|
|
font-size: var(--n-item-size);
|
|
color: var(--n-item-color);
|
|
`,[m(`&:not(:first-child)`,`
|
|
margin-left: 6px;
|
|
`),i(`active`,`
|
|
color: var(--n-item-color-active);
|
|
`)]),d(`readonly`,`
|
|
cursor: pointer;
|
|
`,[c(`item`,[m(`&:hover`,`
|
|
transform: scale(1.05);
|
|
`),m(`&:active`,`
|
|
transform: scale(0.96);
|
|
`)])]),c(`half`,`
|
|
display: flex;
|
|
transition: inherit;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
bottom: 0;
|
|
width: 50%;
|
|
overflow: hidden;
|
|
color: rgba(255, 255, 255, 0);
|
|
`,[i(`active`,`
|
|
color: var(--n-item-color-active);
|
|
`)])]),T=l({name:`Rate`,props:Object.assign(Object.assign({},f.props),{allowHalf:Boolean,count:{type:Number,default:5},value:Number,defaultValue:{type:Number,default:null},readonly:Boolean,size:[String,Number],clearable:Boolean,color:String,onClear:Function,"onUpdate:value":[Function,Array],onUpdateValue:[Function,Array]}),setup(t){let{mergedClsPrefixRef:n,inlineThemeDisabled:i,mergedComponentPropsRef:o}=r(t),c=f(`Rate`,`-rate`,w,S,t,n),l=h(t,`value`),u=s(t.defaultValue),d=s(null),m=y(t,{mergedSize(e){if(t.size!==void 0)return t.size;if(e)return e.mergedSize.value;let n=o?.value?.Rate?.size;return n===void 0?`medium`:n}}),b=g(l,u);function x(e){let{"onUpdate:value":n,onUpdateValue:r}=t,{nTriggerFormChange:i,nTriggerFormInput:a}=m;n&&_(n,e),r&&_(r,e),u.value=e,i(),a()}function C(e,n){return t.allowHalf?n.offsetX>=Math.floor(n.currentTarget.offsetWidth/2)?e+1:e+.5:e+1}let T=!1;function E(e,t){T||(d.value=C(e,t))}function D(){d.value=null}function O(e,n){var r;let{clearable:i}=t,a=C(e,n);i&&a===b.value?(T=!0,(r=t.onClear)==null||r.call(t),d.value=null,x(null)):x(a)}function k(){T=!1}let{mergedSizeRef:A}=m,j=a(()=>{let e=A.value,{self:t}=c.value;return typeof e==`number`?`${e}px`:t[p(`size`,e)]}),M=a(()=>{let{common:{cubicBezierEaseInOut:e},self:n}=c.value,{itemColor:r,itemColorActive:i}=n,{color:a}=t;return{"--n-bezier":e,"--n-item-color":r,"--n-item-color-active":a||i,"--n-item-size":j.value}}),N=i?e(`rate`,a(()=>{let e=j.value,{color:n}=t,r=``;return e&&(r+=e[0]),n&&(r+=v(n)),r}),M,t):void 0;return{mergedClsPrefix:n,mergedValue:b,hoverIndex:d,handleMouseMove:E,handleClick:O,handleMouseLeave:D,handleMouseEnterSomeStar:k,cssVars:i?void 0:M,themeClass:N?.themeClass,onRender:N?.onRender}},render(){let{readonly:e,hoverIndex:r,mergedValue:i,mergedClsPrefix:a,onRender:o,$slots:{default:s}}=this;return o?.(),n(`div`,{class:[`${a}-rate`,{[`${a}-rate--readonly`]:e},this.themeClass],style:this.cssVars,onMouseleave:this.handleMouseLeave},t(this.count,(t,o)=>{let c=s?s({index:o}):n(b,{clsPrefix:a},{default:C}),l=r===null?o+1<=(i||0):o+1<=r;return n(`div`,{key:o,class:[`${a}-rate__item`,l&&`${a}-rate__item--active`],onClick:e?void 0:e=>{this.handleClick(o,e)},onMouseenter:this.handleMouseEnterSomeStar,onMousemove:e?void 0:e=>{this.handleMouseMove(o,e)}},c,this.allowHalf?n(`div`,{class:[`${a}-rate__half`,{[`${a}-rate__half--active`]:!l&&r!==null?o+.5<=r:o+.5<=(i||0)}]},c):null)}))}});export{T as t}; |