36 lines
4.0 KiB
JavaScript
36 lines
4.0 KiB
JavaScript
import{At as e,Nt as t,U as n,W as r,Xt as i,at as a,ct as o,f as s,m as c,nt as l,ot as u,rt as d,st as f,vn as p,xn as m,xt as h}from"./client-DrrW410h.js";import{t as g}from"./use-merged-state-CIQwNmUb.js";import{c as _,l as v}from"./_plugin-vue_export-helper-2ZWAS1ss.js";import{n as y}from"./use-form-item-CNQ45NOh.js";import{Q as b}from"./index-CvfVA1ID.js";function x(e){let{railColor:t}=e;return{itemColor:t,itemColorActive:`#FFCC33`,sizeSmall:`16px`,sizeMedium:`20px`,sizeLarge:`24px`}}var S={name:`Rate`,common:s,self:x},C=()=>t(`svg`,{viewBox:`0 0 512 512`},t(`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=d(`rate`,{display:`inline-flex`,flexWrap:`nowrap`},[l(`&:hover`,[a(`item`,`
|
|
transition:
|
|
transform .1s var(--n-bezier),
|
|
color .3s var(--n-bezier);
|
|
`)]),a(`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);
|
|
`,[l(`&:not(:first-child)`,`
|
|
margin-left: 6px;
|
|
`),u(`active`,`
|
|
color: var(--n-item-color-active);
|
|
`)]),f(`readonly`,`
|
|
cursor: pointer;
|
|
`,[a(`item`,[l(`&:hover`,`
|
|
transform: scale(1.05);
|
|
`),l(`&:active`,`
|
|
transform: scale(0.96);
|
|
`)])]),a(`half`,`
|
|
display: flex;
|
|
transition: inherit;
|
|
position: absolute;
|
|
top: 0;
|
|
left: 0;
|
|
bottom: 0;
|
|
width: 50%;
|
|
overflow: hidden;
|
|
color: rgba(255, 255, 255, 0);
|
|
`,[u(`active`,`
|
|
color: var(--n-item-color-active);
|
|
`)])]),T=e({name:`Rate`,props:Object.assign(Object.assign({},c.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(e){let{mergedClsPrefixRef:t,inlineThemeDisabled:i,mergedComponentPropsRef:a}=r(e),s=c(`Rate`,`-rate`,w,S,e,t),l=m(e,`value`),u=p(e.defaultValue),d=p(null),f=y(e,{mergedSize(t){if(e.size!==void 0)return e.size;if(t)return t.mergedSize.value;let n=a?.value?.Rate?.size;return n===void 0?`medium`:n}}),b=g(l,u);function x(t){let{"onUpdate:value":n,onUpdateValue:r}=e,{nTriggerFormChange:i,nTriggerFormInput:a}=f;n&&_(n,t),r&&_(r,t),u.value=t,i(),a()}function C(t,n){return e.allowHalf?n.offsetX>=Math.floor(n.currentTarget.offsetWidth/2)?t+1:t+.5:t+1}let T=!1;function E(e,t){T||(d.value=C(e,t))}function D(){d.value=null}function O(t,n){var r;let{clearable:i}=e,a=C(t,n);i&&a===b.value?(T=!0,(r=e.onClear)==null||r.call(e),d.value=null,x(null)):x(a)}function k(){T=!1}let{mergedSizeRef:A}=f,j=h(()=>{let e=A.value,{self:t}=s.value;return typeof e==`number`?`${e}px`:t[o(`size`,e)]}),M=h(()=>{let{common:{cubicBezierEaseInOut:t},self:n}=s.value,{itemColor:r,itemColorActive:i}=n,{color:a}=e;return{"--n-bezier":t,"--n-item-color":r,"--n-item-color-active":a||i,"--n-item-size":j.value}}),N=i?n(`rate`,h(()=>{let t=j.value,{color:n}=e,r=``;return t&&(r+=t[0]),n&&(r+=v(n)),r}),M,e):void 0;return{mergedClsPrefix:t,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:n,mergedValue:r,mergedClsPrefix:a,onRender:o,$slots:{default:s}}=this;return o?.(),t(`div`,{class:[`${a}-rate`,{[`${a}-rate--readonly`]:e},this.themeClass],style:this.cssVars,onMouseleave:this.handleMouseLeave},i(this.count,(i,o)=>{let c=s?s({index:o}):t(b,{clsPrefix:a},{default:C}),l=n===null?o+1<=(r||0):o+1<=n;return t(`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?t(`div`,{class:[`${a}-rate__half`,{[`${a}-rate__half--active`]:!l&&n!==null?o+.5<=n:o+.5<=(r||0)}]},c):null)}))}});export{T as t}; |